Submit a Cosmwasm Governance Proposal
The following is a quick guide to provide a basic example on how submit a wasm binary proposal in Osmosis. This particular example will be with localOsmosis but it can also be used with testnet.
Localosmosis
The easiest way to setup your localOsmosis is by downloading the automated installer. You can learn more about localOsmosis by reading the README in the official repo.
Run the following and choose option #3.
curl -sL https://get.osmosis.zone/install > i.py && python3 i.py
Start localOsmosis
Inside a separate bash window start your localOsmosis which was installed in ~/localosmosis
cd ~/localosmosis
docker-compose up
You will start seeing LocalOsmosis block activity in your terminal. Keep LocalOsmosis running while you perform the next steps in a new terminal window.
If you had previously installed localOsmosis, it's a good idea to start fresh and delete ~/localosmosis rm -rf ~/localosmosis
before installing it again.
Download sample contract
curl -s -L -O https://github.com/CosmWasm/cw-plus/releases/download/v0.12.1/cw20_base.wasm
Define variables
CHAIN_ID=localosmosis
CONTRACT=cw20_base
Define proposal ID
We cannot really do this programmatically. Proposal 1
will come out after submitting it for the first time on a new chain. You can always update this manually when testing multiple times on the same state.
PROPOSAL=1
Create local wallet from seed
Note that this seed is already part of localOsmosis as shown here.
echo "satisfy adjust timber high purchase tuition stool faith fine install that you unaware feed domain license impose boss human eager hat rent enjoy dawn" | osmosisd keys add validator --keyring-backend test --recover
VAL=$(osmosisd keys show -a validator --keyring-backend test)
Submit proposal
osmosisd tx gov submit-proposal wasm-store $CONTRACT.wasm --title "Add $CONTRACT" \
--description "Let's upload this contract" --run-as $VAL \
--from validator --keyring-backend test --chain-id $CHAIN_ID -y -b block \
--gas 9000000 --gas-prices 0.025uosmo
Query proposal
osmosisd query gov proposal $PROPOSAL
Deposit on proposal
osmosisd tx gov deposit $PROPOSAL 10000000uosmo --from validator --keyring-backend test \
--chain-id $CHAIN_ID -y -b block --gas 6000000 --gas-prices 0.025uosmo
Vote
osmosisd tx gov vote $PROPOSAL yes --from validator --keyring-backend test \
--chain-id $CHAIN_ID -y -b block --gas 600000 --gas-prices 0.025uosmo
Check the results
Wait 1 or two minutes for the results to show up.
osmosisd query wasm list-code
Learn more:
https://github.com/CosmWasm/wasmd/blob/main/x/wasm/Governance.md