github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/dev/wasm/test/test.sh (about) 1 #!/bin/bash 2 set -o errexit -o nounset -o pipefail 3 4 DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" 5 6 fbchaincli keys add fred 7 echo "0-----------------------" 8 fbchaincli tx send captain $(fbchaincli keys show fred -a) 1000fibo --fees 0.001fibo -y -b block 9 10 echo "1-----------------------" 11 echo "## Add new CosmWasm contract" 12 RESP=$(fbchaincli tx wasm store "$DIR/../../../x/wasm/keeper/testdata/hackatom.wasm" \ 13 --from captain --fees 0.001fibo --gas 1500000 -y --node=http://localhost:26657 -b block -o json) 14 15 CODE_ID=$(echo "$RESP" | jq -r '.logs[0].events[1].attributes[-1].value') 16 echo "* Code id: $CODE_ID" 17 echo "* Download code" 18 TMPDIR=$(mktemp -t fbchaincliXXXXXX) 19 fbchaincli q wasm code "$CODE_ID" "$TMPDIR" 20 rm -f "$TMPDIR" 21 echo "-----------------------" 22 echo "## List code" 23 fbchaincli query wasm list-code --node=http://localhost:26657 -o json | jq 24 25 echo "2-----------------------" 26 echo "## Create new contract instance" 27 INIT="{\"verifier\":\"$(fbchaincli keys show captain -a)\", \"beneficiary\":\"$(fbchaincli keys show fred -a)\"}" 28 fbchaincli tx wasm instantiate "$CODE_ID" "$INIT" --admin="$(fbchaincli keys show captain -a)" \ 29 --from captain --fees 0.001fibo --amount="100fibo" --label "local0.1.0" \ 30 --gas 1000000 -y -b block -o json | jq 31 32 CONTRACT=$(fbchaincli query wasm list-contract-by-code "$CODE_ID" -o json | jq -r '.contracts[-1]') 33 echo "* Contract address: $CONTRACT" 34 echo "### Query all" 35 RESP=$(fbchaincli query wasm contract-state all "$CONTRACT" -o json) 36 echo "$RESP" | jq 37 echo "### Query smart" 38 fbchaincli query wasm contract-state smart "$CONTRACT" '{"verifier":{}}' -o json | jq 39 echo "### Query raw" 40 KEY=$(echo "$RESP" | jq -r ".models[0].key") 41 fbchaincli query wasm contract-state raw "$CONTRACT" "$KEY" -o json | jq 42 43 echo "3-----------------------" 44 echo "## Execute contract $CONTRACT" 45 MSG='{"release":{}}' 46 fbchaincli tx wasm execute "$CONTRACT" "$MSG" \ 47 --from captain \ 48 --gas 1000000 --fees 0.001fibo -y -b block -o json | jq 49 50 echo "4-----------------------" 51 echo "## Set new admin" 52 echo "### Query old admin: $(fbchaincli q wasm contract "$CONTRACT" -o json | jq -r '.contract_info.admin')" 53 echo "### Update contract" 54 fbchaincli tx wasm set-contract-admin "$CONTRACT" "$(fbchaincli keys show fred -a)" \ 55 --from captain --fees 0.001fibo -y -b block -o json | jq 56 echo "### Query new admin: $(fbchaincli q wasm contract "$CONTRACT" -o json | jq -r '.contract_info.admin')" 57 58 echo "5-----------------------" 59 echo "## Migrate contract" 60 echo "### Upload new code" 61 RESP=$(fbchaincli tx wasm store "$DIR/../../../x/wasm/keeper/testdata/burner.wasm" \ 62 --from captain --fees 0.001fibo --gas 1000000 -y --node=http://localhost:26657 -b block -o json) 63 64 BURNER_CODE_ID=$(echo "$RESP" | jq -r '.logs[0].events[1].attributes[-1].value') 65 echo "### Migrate to code id: $BURNER_CODE_ID" 66 67 DEST_ACCOUNT=$(fbchaincli keys show fred -a) 68 fbchaincli tx wasm migrate "$CONTRACT" "$BURNER_CODE_ID" "{\"payout\": \"$DEST_ACCOUNT\"}" --from fred --fees 0.001fibo \ 69 -b block -y -o json | jq 70 71 echo "### Query destination account: $BURNER_CODE_ID" 72 fbchaincli q account "$DEST_ACCOUNT" -o json | jq 73 echo "### Query contract meta data: $CONTRACT" 74 fbchaincli q wasm contract "$CONTRACT" -o json | jq 75 76 echo "### Query contract meta history: $CONTRACT" 77 fbchaincli q wasm contract-history "$CONTRACT" -o json | jq 78 79 echo "6-----------------------" 80 echo "## Clear contract admin" 81 echo "### Query old admin: $(fbchaincli q wasm contract "$CONTRACT" -o json | jq -r '.contract_info.admin')" 82 echo "### Update contract" 83 fbchaincli tx wasm clear-contract-admin "$CONTRACT" --fees 0.001fibo \ 84 --from fred -y -b block -o json | jq 85 echo "### Query new admin: $(fbchaincli q wasm contract "$CONTRACT" -o json | jq -r '.contract_info.admin')"