Deployment
Step 1: Deploy the wasm binary to the testnet
Use the wasmd Go CLI
or CosmJS Node Console
.
To upload the code to the blockchain:
wasmd query wasm list-code $NODE
Alternative for uninitialized environment variables:
wasmd query wasm list-code --node https://rpc.malaga-420.cosmwasm.com:443
Step 2: Store the bytecode on-chain and get the Code Id.
RES=$(wasmd tx wasm store artifacts/cw_nameservice.wasm --from wallet --other-options...)
echo $RES
CODE_ID=$(echo $RES | jq -r '.logs[0].events[-1].attributes[0].value')
Step 3: Check instantiated contracts using the Code Id.
wasmd query wasm list-contract-by-code $CODE_ID $NODE --output json
Step 4: Verify the uploaded wasm binary.
wasmd query wasm code $CODE_ID $NODE download.wasm
diff artifacts/cw_nameservice.wasm download.wasm
Step 5: Instantiate the wasm contract:
wasmd tx wasm instantiate $CODE_ID "$INIT" --from wallet --other-options...
To interact with a contract
Register a name:
wasmd tx wasm execute $CONTRACT "$REGISTER" --amount 100umlg --from wallet --other-options...
Transfer the name record to another address:
wasmd tx wasm execute $CONTRACT "$TRANSFER" --amount 999umlg --from wallet --other-options...
Using CosmJS Node Console for deployment:
Initialize a CosmJS CLI session:
npx @cosmjs/cli@^0.28.1 --init https://raw.githubusercontent.com/InterWasm/cw-plus-helpers/main/base.ts
Import necessary utilities and upload the wasm binary.
Instantiate the Contract in CosmJS:
Define default fees, create an instance using the code id, and get the contract address.
Contract Interaction in CosmJS:
Register a name and transfer ownership to another address.
Last updated