Nibiru Incentivized Testnet 2
🪓 Telegram канал UTSA 🪓 Telegram чат UTSA
Подробную информацию о Nibiru Incentivized Testnet 2 можно прочитать здесь - https://nibiru.fi/blog/posts/010-itn-2-cosmwasm-governance.html
Если Вы ранее не регистрировались для первой фазы, то зарегистрируйтесь сейчас https://gleam.io/yW6Ho/nibiru-incentivized-testnet-registration
Данный гайд не получился без замечательного гайда от craving-for-knowledge, которому выражаю большую благодарность https://craving-for-knowledge.gitbook.io/craving_for_knowledge/testnets/nibiru/nibiru-incentivized-testnet-2
Governance Tasks (+300)
В официальном гайде присутствуют следующие задачи:
Также в анонсе в дискорде было следующее объявление:
- Governance: Submitting, voting, and passing proposals
- Smart Contracts: Developing and deploying secure, high-quality contracts.
Из чего я делаю вывод что необходимо создать минимум 1 proposal и проголосовать за минимум 4 чужих proposals
UPD - позже получил ответ от команды, что достаточно голосования. Создавать proposal не нужно!!!
Я предлагаю сделать обычный текстовый 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
Более подробную информацию о Governance Вы можете прочитать здесь - https://teletype.in/@lesnik13utsa/ZsT9B6y2k_8
Smart Contract Tasks (+300)
В официальном гайде присутствуют следующие задачи:
- Deploy a smart contract on Nibiru
- Instantiate a smart contract on Nibiru
- Successfully broadcast an
ExecuteContract
transaction
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. Вы можете использовать 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://rpc.itn-1.nibiru.fi:443 nibid config chain-id nibiru-itn-1 nibid config broadcast-mode block nibid config keyring-backend os
Теперь восстанавливаем наш кошелек, который ранее был зарегистрирован в Gleam. На кошельке должны быть монеты
# восстановить кошелек (после команды вставить seed) nibid keys add wallet --recover --keyring-backend os
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":"UTSA_test","symbol":"UTSA","decimals":6,"initial_balances":[{"address":"nibi1m2mm7kzvw6m3464h94ryqg8xvr6tyeyywa9c6n","amount":"13000000"}],"mint":{"minter":"nibi1m2mm7kzvw6m3464h94ryqg8xvr6tyeyywa9c6n"},"marketing":{}}'
Отправим транзакцию. Замените 787 на свое значение сode_id
nibid tx wasm instantiate 787 $init --label "UTSA 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"}}