July 23, 2022
CW20 в Sei. Экспресс-гайд
Хочу поблагодарить наших лучших братьев индусов, за проявленную находчивость, благодаря которой пишется этот гайд.
Также отдельное спасибо участнику нашего чата @Snow873 за то что навел меня на этих индусов, без этого я копался бы еще неделю.
Гайд экспресс это потому что я устал и писать тонны текста не хочу. В дальнейшем, когда тема будет разобрана и усвоена окончательно, планируется полномастабный гайд с картинками, объяснениями и, как говорится, с блекджеком и прочим.
Погнали #2 🧑🦽
Во-первых, нам понадобится свой токен cw20 в сети Juno. Минтим токен:
- Переходим по адресу: JunoMint - connect keplr > Juno Testnet > апрувим добавление сети UNI.
- Потребуется оплатить газ за минт, поэтому пополняемся тестовыми ujunox в дискорде (прошлый кран пересох) в ветке #faucet https://discord.gg/zbxZuQ7p
- Собственно минт, заполняем отмеченные поля - Confirm. Дважды апрувим в кеплере (сам минт + добавление токена в Кеплер)
- В результате получаем результат минта, кликаем адрес контракта (Contract Address) и он открывается соседней вкладке. Запоминаем, где она, скоро понадобится (!)
- Поскольку мы не создавали непосредственно cw20-ics20 контракт, воспользуемся готовым, идем по ссылке: https://blueprints.juno.giansalex.dev/#/contracts/juno16gckhheyql9f85r9ydmazdccc0pnwxx5xxxrwltygtx3kxjg57ksamkpym, и логинимся кеплером.
- копируем код ниже, вместо
<token_contract>вставляем свой адрес контракта который мы получили выше
{
"allow": {
"contract": "<token_contract>"
}
}- Вставляем код с нашим контрактом в поле
Execute..и запускаем. Тем самым мы разрешаем проведение нашего токена по контракту cw20-ics20
- Апрувим операцию в кеплере и дожидаемся появления ответа (Response)
- Через некоторое время внизу страницы появляется наша транза (ориентиром что она наша будет адрес отправителя), закрываем вкладку дабы не плодить лишнего.
- Открываем страницу енкодера/декодера: https://www.base64encode.org/ на вкладке encode (подсветится белым)
{"channel":"channel-79","remote_address":"<sei_addr>"}- Вписываем свой адрес Sei (адрес валидатора) вместо
<sei_addr> - Нажимаем Encode и копируем hex который нам заенкодили, или порсто оставляем страницу отурытой и идем дальше
- Переходим на вкладку с нашим конрактом которую мы держим после создания токена, адрес будет выглядеть вот так:
https://blueprints.juno.giansalex.dev/#/contracts/<здесь адрес вашего контракта>, говорю об этом потому что сам запутался в первый раз ) - Логинимся кеплером (без скрина, уж большую синюю кнопку login найдут все)
- Ищем и нажимаем Write Contract
- Копируем приведенный ниже код в поле Execute Message (все что там было по умолчанию - удаляем). В этом поле находится какой-то хитроумный парсер, который прилично так тупит, поэтому после удаления надо подождать пока исчезнут номера строк и только потом вставлять код из выноски ниже. Также, после вставки могут появиться варны по поводу неправильного синтаксиса, или служебные теги из телетайпа. Теги надо убрать и привести Message к тому виду какой имеем тут ниже. По поводу варнов за синтаксис можно попробовать аккуратно (! поскольку поведение этого парсера довольно непредсказуемо) удалить пробел, например перед словом
"send", после этого все должно встать куда надо и варны исчезнут.
{
"send": {
"contract": "juno16gckhheyql9f85r9ydmazdccc0pnwxx5xxxrwltygtx3kxjg57ksamkpym",
"amount": "100000000",
"msg": "<encoded-message>"
}
}- Далее вставляем hex с предыдущей страницы в
"msg": "<encoded-message>"вместо, естественно,<encoded message>.Получится примерно такое:
- Все готово к отправке. Если кнопка 'Execute contract' неактивна, проверяем логин, если мы долго возимся происходит автоматическое закрытие сессии и надо перелогиниться. Нажимаем кнопку 'Execute..', апрувим в кеплере, и ждем пока появится текст в поле
Response(+ у меня приходится закрывать окно с транзой кеплера руками, это можно делать когда получили response)
- Крутим в самый низ до этого момента, немного времени спустя появляется наша транза, примерно понять что это именно наша можно по высоте блока:
- Щелкаем по последней (вашей)
Transaction IDи попадаем на страницу с подробностями транзакции. Здесь нас интересует так назывемыйIBC Acknowledge Tx, чтобы увидеть его надо пролистать опять же в самый низ, и ждать. Ждать, потому что появляется он только после определнного количества подтвердений в сети, и може занять прилично времению Так что не теряем веры и спамим кнопку F5.
- Полученный хеш можем проверить в нашем же эксплорере Juno (не зря все-таки его держим), если раскодировать
hexстроку вкладки data при проверке транзакции в эксплорере (https://www.base64decode.org) мы увидим подробности транзакции
- Что с этим хешем делать дальше - личное дело каждого. Я скопировал и отправил его в форму по заданию, сделав примечание что это хеш в сети Juno (uni-3).
- Чуть не забыл самое главное, проверка баланса, чекнуть можно в экплорере Nodes.guru или в Кеплере
На этом все, невыполнимая, на первый взгляд миссия, выполнена ✌️