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')"