solana/scripts/wallet-sanity.sh

75 lines
1.6 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
2018-07-02 14:14:34 -07:00
#
# Wallet sanity test
#
2018-11-11 09:25:59 -08:00
set -e
2018-07-02 14:14:34 -07:00
cd "$(dirname "$0")"/..
2018-07-02 14:14:34 -07:00
# shellcheck source=multinode-demo/common.sh
source multinode-demo/common.sh
if [[ -z $1 ]]; then # no network argument, use default
entrypoint=()
2018-07-13 22:10:39 -07:00
else
entrypoint=("$@")
2018-07-13 22:10:39 -07:00
fi
2018-07-02 14:14:34 -07:00
# Tokens transferred to this address are lost forever...
garbage_address=vS3ngn1TfQmpsW1Z4NkLuqNAQFF3dYQw8UZ6TCx9bmq
check_balance_output() {
2018-08-16 15:11:58 -07:00
declare expected_output="$1"
2018-08-16 14:33:14 -07:00
exec 42>&1
2018-11-01 10:08:50 -07:00
attempts=3
while [[ $attempts -gt 0 ]]; do
output=$($solana_wallet "${entrypoint[@]}" balance | tee >(cat - >&42))
if [[ "$output" =~ $expected_output ]]; then
break
else
sleep 1
(( attempts=attempts-1 ))
if [[ $attempts -eq 0 ]]; then
echo "Balance is incorrect. Expected: $expected_output"
exit 1
fi
fi
done
2018-07-02 14:14:34 -07:00
}
2018-07-02 17:40:17 -07:00
pay_and_confirm() {
exec 42>&1
signature=$($solana_wallet "${entrypoint[@]}" pay "$@" | tee >(cat - >&42))
$solana_wallet "${entrypoint[@]}" confirm "$signature"
2018-07-02 17:40:17 -07:00
}
2018-11-10 17:07:31 -08:00
$solana_keygen
2019-01-16 16:00:12 -08:00
node_readiness=false
timeout=60
while [[ $timeout -gt 0 ]]; do
output=$($solana_wallet "${entrypoint[@]}" get-transaction-count)
if [[ -n $output ]]; then
2019-01-16 16:00:12 -08:00
node_readiness=true
break
fi
sleep 2
(( timeout=timeout-2 ))
done
2019-01-16 16:00:12 -08:00
if ! "$node_readiness"; then
echo "Timed out waiting for cluster to start"
exit 1
fi
$solana_wallet "${entrypoint[@]}" address
check_balance_output "0 lamports"
$solana_wallet "${entrypoint[@]}" airdrop 60
check_balance_output "60 lamports"
$solana_wallet "${entrypoint[@]}" airdrop 40
check_balance_output "100 lamports"
pay_and_confirm $garbage_address 99
check_balance_output "1 lamport"
2018-07-02 14:14:34 -07:00
echo PASS
exit 0