Integrate wasmcli into wasmd

This commit is contained in:
Alex Peters
2020-11-13 15:49:20 +01:00
parent 93761eac33
commit ca040da925
16 changed files with 118 additions and 237 deletions

View File

@@ -1,18 +1,18 @@
#!/bin/bash
set -o errexit -o nounset -o pipefail
BASE_ACCOUNT=$(wasmcli keys show validator -a)
wasmcli q account "$BASE_ACCOUNT" -o json | jq
BASE_ACCOUNT=$(wasmd keys show validator -a)
wasmd q account "$BASE_ACCOUNT" -o json | jq
echo "## Add new account"
wasmcli keys add fred
wasmd keys add fred
echo "## Check balance"
NEW_ACCOUNT=$(wasmcli keys show fred -a)
wasmcli q bank balances "$NEW_ACCOUNT" -o json || true
NEW_ACCOUNT=$(wasmd keys show fred -a)
wasmd q bank balances "$NEW_ACCOUNT" -o json || true
echo "## Transfer tokens"
wasmcli tx send validator "$NEW_ACCOUNT" 1ustake --gas 1000000 -y --chain-id=testing --node=http://localhost:26657 -b block | jq
wasmd tx send validator "$NEW_ACCOUNT" 1ustake --gas 1000000 -y --chain-id=testing --node=http://localhost:26657 -b block | jq
echo "## Check balance again"
wasmcli q bank balances "$NEW_ACCOUNT" -o json | jq
wasmd q bank balances "$NEW_ACCOUNT" -o json | jq

View File

@@ -5,80 +5,80 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
echo "-----------------------"
echo "## Add new CosmWasm contract"
RESP=$(wasmcli tx wasm store "$DIR/../../x/wasm/internal/keeper/testdata/hackatom.wasm" \
RESP=$(wasmd tx wasm store "$DIR/../../x/wasm/internal/keeper/testdata/hackatom.wasm" \
--from validator --gas 1000000 -y --chain-id=testing --node=http://localhost:26657 -b block)
CODE_ID=$(echo "$RESP" | jq -r '.logs[0].events[0].attributes[-1].value')
echo "* Code id: $CODE_ID"
echo "* Download code"
TMPDIR=$(mktemp -t wasmcliXXXX)
wasmcli q wasm code "$CODE_ID" "$TMPDIR"
TMPDIR=$(mktemp -t wasmdXXXX)
wasmd q wasm code "$CODE_ID" "$TMPDIR"
rm -f "$TMPDIR"
echo "-----------------------"
echo "## List code"
wasmcli query wasm list-code --node=http://localhost:26657 --chain-id=testing | jq
wasmd query wasm list-code --node=http://localhost:26657 --chain-id=testing | jq
echo "-----------------------"
echo "## Create new contract instance"
INIT="{\"verifier\":\"$(wasmcli keys show validator -a)\", \"beneficiary\":\"$(wasmcli keys show fred -a)\"}"
wasmcli tx wasm instantiate "$CODE_ID" "$INIT" --admin=$(wasmcli keys show validator -a) \
INIT="{\"verifier\":\"$(wasmd keys show validator -a)\", \"beneficiary\":\"$(wasmd keys show fred -a)\"}"
wasmd tx wasm instantiate "$CODE_ID" "$INIT" --admin=$(wasmd keys show validator -a) \
--from validator --amount="100ustake" --label "local0.1.0" \
--gas 1000000 -y --chain-id=testing -b block | jq
CONTRACT=$(wasmcli query wasm list-contract-by-code "$CODE_ID" -o json | jq -r '.[0].address')
CONTRACT=$(wasmd query wasm list-contract-by-code "$CODE_ID" -o json | jq -r '.[0].address')
echo "* Contract address: $CONTRACT"
echo "### Query all"
RESP=$(wasmcli query wasm contract-state all "$CONTRACT" -o json)
RESP=$(wasmd query wasm contract-state all "$CONTRACT" -o json)
echo "$RESP"
echo "### Query smart"
wasmcli query wasm contract-state smart "$CONTRACT" '{"verifier":{}}' -o json | jq
wasmd query wasm contract-state smart "$CONTRACT" '{"verifier":{}}' -o json | jq
echo "### Query raw"
KEY=$(echo "$RESP" | jq -r ".[0].key")
wasmcli query wasm contract-state raw "$CONTRACT" "$KEY" -o json
wasmd query wasm contract-state raw "$CONTRACT" "$KEY" -o json
echo "-----------------------"
echo "## Execute contract $CONTRACT"
MSG='{"release":{}}'
wasmcli tx wasm execute "$CONTRACT" "$MSG" \
wasmd tx wasm execute "$CONTRACT" "$MSG" \
--from validator \
--gas 1000000 -y --chain-id=testing -b block | jq
echo "-----------------------"
echo "## Set new admin"
echo "### Query old admin: $(wasmcli q wasm contract $CONTRACT -o json | jq -r '.admin')"
echo "### Query old admin: $(wasmd q wasm contract $CONTRACT -o json | jq -r '.admin')"
echo "### Update contract"
wasmcli tx wasm set-contract-admin "$CONTRACT" $(wasmcli keys show fred -a) \
wasmd tx wasm set-contract-admin "$CONTRACT" $(wasmd keys show fred -a) \
--from validator -y --chain-id=testing -b block | jq
echo "### Query new admin: $(wasmcli q wasm contract $CONTRACT -o json | jq -r '.admin')"
echo "### Query new admin: $(wasmd q wasm contract $CONTRACT -o json | jq -r '.admin')"
echo "-----------------------"
echo "## Migrate contract"
echo "### Upload new code"
RESP=$(wasmcli tx wasm store "$DIR/../../x/wasm/internal/keeper/testdata/burner.wasm" \
RESP=$(wasmd tx wasm store "$DIR/../../x/wasm/internal/keeper/testdata/burner.wasm" \
--from validator --gas 1000000 -y --chain-id=testing --node=http://localhost:26657 -b block)
BURNER_CODE_ID=$(echo "$RESP" | jq -r '.logs[0].events[0].attributes[-1].value')
echo "### Migrate to code id: $BURNER_CODE_ID"
DEST_ACCOUNT=$(wasmcli keys show fred -a)
wasmcli tx wasm migrate "$CONTRACT" "$BURNER_CODE_ID" "{\"payout\": \"$DEST_ACCOUNT\"}" --from fred \
DEST_ACCOUNT=$(wasmd keys show fred -a)
wasmd tx wasm migrate "$CONTRACT" "$BURNER_CODE_ID" "{\"payout\": \"$DEST_ACCOUNT\"}" --from fred \
--chain-id=testing -b block -y | jq
echo "### Query destination account: $BURNER_CODE_ID"
wasmcli q bank balances "$DEST_ACCOUNT" -o json | jq
wasmd q bank balances "$DEST_ACCOUNT" -o json | jq
echo "### Query contract meta data: $CONTRACT"
wasmcli q wasm contract "$CONTRACT" -o json | jq
wasmd q wasm contract "$CONTRACT" -o json | jq
echo "### Query contract meta history: $CONTRACT"
wasmcli q wasm contract-history "$CONTRACT" -o json | jq
wasmd q wasm contract-history "$CONTRACT" -o json | jq
echo "-----------------------"
echo "## Clear contract admin"
echo "### Query old admin: $(wasmcli q wasm contract $CONTRACT -o json | jq -r '.admin')"
echo "### Query old admin: $(wasmd q wasm contract $CONTRACT -o json | jq -r '.admin')"
echo "### Update contract"
wasmcli tx wasm clear-contract-admin "$CONTRACT" \
wasmd tx wasm clear-contract-admin "$CONTRACT" \
--from fred -y --chain-id=testing -b block | jq
echo "### Query new admin: $(wasmcli q wasm contract $CONTRACT -o json | jq -r '.admin')"
echo "### Query new admin: $(wasmd q wasm contract $CONTRACT -o json | jq -r '.admin')"

View File

@@ -11,8 +11,8 @@ wasmd init --chain-id "$CHAIN_ID" "$MONIKER"
# staking/governance token is hardcoded in config, change this
## OSX requires: -i.
sed -i. "s/\"stake\"/\"$STAKE\"/" "$HOME"/.wasmd/config/genesis.json
if ! wasmcli keys show validator; then
(echo "$PASSWORD"; echo "$PASSWORD") | wasmcli keys add validator
if ! wasmd keys show validator; then
(echo "$PASSWORD"; echo "$PASSWORD") | wasmd keys add validator
fi
# hardcode the validator account for this instance
echo "$PASSWORD" | wasmd add-genesis-account validator "1000000000$STAKE,1000000000$FEE"