Nibiru
ITN2
Я предлагаю сделать обычный текстовый proposal, который не влияет на блокчейн, а является просто информационным. Для создания нам будет необходима установленная нода, с которой будет отправлена транзакция. Также можно использовать чужую RPC для транзакции - в этом случае нет необходимости иметь собственную синхронизированную ноду
# создать proposal nibid tx gov submit-proposal --title="Randomly reward" --description="Reward 10 testnet participants who completed more than 3 tasks" --type="Text" --deposit="10000000unibi" --from=<name_wallet> --fees 5000unibi
# проголосовать за proposal nibid tx gov vote 1 yes --from <name_wallet> --fees 5000unibi
Smart Contract Tasks (+300)
В официальном гайде присутствуют следующие задачи:
- Deploy a smart contract on Nibiru
- Instantiate a smart contract on Nibiru
- Successfully broadcast an
ExecuteContracttransaction
Deploy a smart contract
Для выполнения данной задачи я взял отдельный сервер с обычными параметрами для Cosmos
# обновляем репозитории apt update && apt upgrade -y # устанавливаем необходимые утилиты apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y
curl -s https://get.nibiru.fi/! | bash
nibid version --long | grep -e version -e commit # v0.19.2 # commit: 2cf3ede4c61f68a32b9cf585563f4fce19c79334
Вы можете использовать RPC из данного списка:
http://144.76.97.251:40657
http://65.108.233.102:27657
http://182.42.82.11:26657
http://65.21.197.233:46657
http://195.201.61.112:26657
http://146.158.65.215:26657
http://116.202.114.46:26657
http://135.181.116.223:36657
http://65.109.65.210:33657
http://95.217.35.186:46657
http://146.158.65.215:26657
http://121.11.105.171:26657
http://213.136.84.176:11657
http://148.251.87.24:26657
http://164.90.228.2:12657
http://157.90.4.172:36657
http://65.108.108.52:11657
http://94.130.132.22:36657
http://95.217.105.224:36657
http://78.46.99.59:36657
http://144.91.78.94:56657
http://94.130.131.217:36657
http://149.102.136.149:26657
http://135.181.222.190:36657
но рпц ниже работала на момент создание гайда
nibid config node https://nibiru-testnet.nodejumper.io:443 nibid config chain-id nibiru-itn-1 nibid config broadcast-mode block nibid config keyring-backend os
nibid keys add wallet --recover
mkdir -p $HOME/wasm && cd $HOME/wasm wget https://github.com/NibiruChain/cw-nibiru/raw/main/artifacts-cw-plus/cw20_base.wasm
nibid tx wasm store $HOME/wasm/cw20_base.wasm --from wallet --gas 8000000 --fees 200000unibi
Записываем свои значения code_id и txhash. В нашем примере это:
txhash 4FF2EA71F74531295F269E3962AE07840994A9B9074625B1A1B08A624C6C3A9D
Теперь мы можем узнать наш code_id через txhash
nibid q tx 4FF2EA71F74531295F269E3962AE07840994A9B9074625B1A1B08A624C6C3A9D | grep raw_log
nibid query wasm code-info 787
Instantiate a smart contract
Теперь мы создадим экземпляр нашего контракта и создадим определенное количество cw20 токенов, которые в следующем разделе отправим на другой адрес
Зададим переменные. Замените name, symbol, address, minter на свои значения!
init='{"name":"name_coin","symbol":"NCN","decimals":6,"initial_balances":[{"address":"nibi1m2mm7kzvw6m3464h94ryqg8xvr6tyeyywa9c6n","amount":"13000000"}],"mint":{"minter":"nibi1m2mm7kzvw6m3464h94ryqg8xvr6tyeyywa9c6n"},"marketing":{}}'Отправим транзакцию. Замените 787 на свое значение сode_id
nibid tx wasm instantiate 787 $init --label "NCN cw20_base" --no-admin --from wallet --gas 8000000 --fees 200000unibi -y
Записываем свои значения contract_address и txhash. В нашем примере это:
contract_addressnibi173uce9fau3rx5q66rjau2rn344ep8ljc5nw7zjnvj6lnw2x83vqqchn8jp
txhashAF2A475F583EBEA49BB122B87ED01243A624125EC5DAD7C952DFDB8F5CDFC3CD
Successfully broadcast an ExecuteContract transaction
Теперь мы можем попробовать отправить наши токены cw20 на другой кошелек. Но сначала проверим наш баланс. Замените contract и address на свои значения
contract=nibi173uce9fau3rx5q66rjau2rn344ep8ljc5nw7zjnvj6lnw2x83vqqchn8jp
balance='{"balance": {"address": "nibi1m2mm7kzvw6m3464h94ryqg8xvr6tyeyywa9c6n"}}'nibid query wasm contract-state smart $contract "$balance" --output json
# {"data":{"balance":"13000000"}}Задаем переменную для нового кошелька, куда мы намереваемся отправить токены. Замените recipient на свое значение
transfer='{"transfer":{"recipient":"nibi15xa3kcsq8mnvv6lqsgtaa7kmhl6938lmrthufw","amount":"130"}}'
nibid tx wasm execute $contract $transfer --from wallet --gas 8000000 --fees 200000unibi -yЗаписываем значение txhash. В нашем примере это:
txhash 96BCB8A9AC3AB1EBFF0B5485482F176B66D7BDC1645DFC9F1F40F12C76956FF9
Теперь можем снова проверить баланс и убедиться, что баланс уменьшился
nibid query wasm contract-state smart $contract "$balance" --output json
# {"data":{"balance":"12999870"}}