ENVELOP: работа с протоколом в BSC (Binance Smart Chain). Часть IV. Добавление нативных токенов в обеспечение обёрнутого NFT
Итак, краткое содержание предыдущих серий:
- https://teletype.in/@menaskop/envelop-bsc-part-1: создаём NFT на стороннем ресурсе.
- https://teletype.in/@menaskop/envelop-bsc-part-2: выдаём разрешение Протоколу.
- https://teletype.in/@menaskop/envelop-bsc-part-3: оборачиваем NFT посредством Протокола.
А теперь? Теперь попробуем в wNFT (обёрнутый NFT) положить нативные токены. Поехали?
Дисклеймеры
Первое: в данном случае вам придётся работать с боевой сетью (mainet), поэтому, если вы не чувствуете за собой достаточного опыта / понимания / знания, то делайте всё на страх и риск собственный.
Второе: в любом случае вам придётся действовать самостоятельно, используя свои средсства, навыки, кошельки и всё прочее. Мы нести ответственность за это не можем никаким образом.
Третье: блокчейн-технологии всё ещё молоды и уж мы точно не можем отвечать за стабильность сети, её обновления и прочие объективные моменты.
Четвёртое: помните, что главный принцип любого теста: "не навреди".
Добавление нативных токенов в обеспечение обёрнутого NFT
Шаг №27. На странице контракта в bscscan.com заходим на вкладку Contract, далее Write Contract. Находим метод addNativeCollateral:
Шаг №28. Заполняем входные параметры:
- payableAmount (BNB) - укажем значение 0.001: так мы добавляем обёрнутому NFT обеспечение нативным токеном BNB в размере 0.001. Разделитель дробной части - точка.
- _wrappedTokenId - указываем значение 2. Это id обёрнутого NFT.
- Нажимаем кнопку Write. MetaMask предложит нам подтвердить транзакцию. Важно! У вас на кошельке должно быть достаточно нативных токенов для внесения его в обеспечение и оплаты транзакции сети.
- На вкладке Read Contract находим метод getTokenValue. Передаём ему номер нашего обёрнутого NFT. В нашем случае это 2.
- Нажимаем кнопку кнопку Query.
Шаг №29. Метод вернёт массив из двух значений:
- Первое значение - количество накопленных нативных токенов обеспечения.
- Второе значение - количество накопленных токенов комиссий.
Но это ещё не всё: теперь попробуем обернуть BEP-20 токены.
Добавление обеспечения в виде BEP-20 токенов
В Протоколе существует белый список адресов контрактов, чьи токены принимаются Протоколом в обеспечение обёрнутого NFT. На текущий момент у пользователя возможности посмотреть весь список разрешённых токенов и их адресов нет: в следующей версии Протокола такая возможность у пользователя появится.
Продемонстрируем, как принимается обеспечение в виде BEP-20 токенов на примере DAI. Внимание! Для проведения теста на кошельке в MetaMask должен быть необходимый остаток токенов DAI.
Шаг №30. Адрес контракта токенов DAI в главной сети BSC 0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3. Проверим, что этот адрес включен в белый список. На вкладке Read Contract находим метод partnersTokenList. Вводим адрес, указанный выше. Нажимаем кнопку Query:
Шаг №31. Значение параметра (должно быть) enabledForCollateral = true, что означает, что данный токен может приниматься в обеспечение обёрнутого NFT .Для того чтобы мы могли положить DAI в обеспечение обёрнутого NFT, необходимо дать разрешение контракту протокола управлять нашими токенами.
Шаг №32. Для этого перейдём на страницу контракта DAI на сайте-сканере: https://bscscan.com/address/0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3#writeContract. Находим метод approve. Указываем методу адрес контракта протокола 0xc2571eBbc8F2af4f832bB8a2D3A4b0932Ce24773 и количество токенов 1000000000000000000 (число уже указано в переведенном формате), которыми разрешаем управлять. Нажимаем Write. MetaMask попросит нас подтвердить транзакцию. Подтверждаем:
Шаг №33. Теперь мы можем добавить обеспечение нашему обёрнутому NFT в DAI. Для этого возвращаемся на страницу контракта протокола (https://bscscan.com/address/0xc2571eBbc8F2af4f832bB8a2D3A4b0932Ce24773#writeContract). Находим метод addERC20Collateral. Указываем значения входных параметров:
- _wrappedTokenId - id обёрнутого NFT. В нашем случае 2.
- _erc20 - адрес контракта DAI, чьи токены мы закладываем в обеспечение. В нашем случае это 0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3.
- _amount - количество токенов DAI. В нашем случае 1000000000000000000.
- Нажимаем Write.
MetaMask предложит нам подтвердить транзакцию. Подтверждаем:
Шаг №34. Проверим, что обеспечение у обёрнутого NFT в виде BEP-20 токенов DAI теперь есть. Для этого переходим на вкладку Read Contract. Находим метод getERC20Collateral. Передаём методу номер нашего обёрнутого NFT. В нашем случае это 2. Нажимаем кнопку Query. Метод вернёт нам массив адресов токенов обеспечения и количество токенов:
Шаг №35. Обратите внимание, что владеет токенами DAI теперь контракт протокола. Баланс токенов DAI в MetaMask должен (у вас) уменьшиться от начального.
Что ж, и эта часть подошла к концу. В следующей (последней) разберём перевод wNFT новому владельцу, а пока -
P.S. Все вопросы можете задавать в нашем общем чате, а ещё лучше - чате bounty-кампании (у Александра Агаджанова под ником alexamuek).