NFT
September 23, 2021

ENVELOP: работа с протоколом в BSC (Binance Smart Chain). Часть V. Перевод обёрнутого NFT (wNFT) и разворачивание

Итак, краткое содержание предыдущих серий:

  1. https://teletype.in/@menaskop/envelop-bsc-part-1: создаём NFT на стороннем ресурсе.
  2. https://teletype.in/@menaskop/envelop-bsc-part-2: выдаём разрешение Протоколу.
  3. https://teletype.in/@menaskop/envelop-bsc-part-3: оборачиваем NFT посредством Протокола.
  4. https://teletype.in/@menaskop/envelop-bsc-part-4: вкладываем в залоговый накопитель нативные и иные токены.

А теперь? Теперь попробуем wNFT со всем обеспечением кому-нибудь передать. И в конце - развернуть

Дисклеймеры

Первое: в данном случае вам придётся работать с боевой сетью (mainet), поэтому, если вы не чувствуете за собой достаточного опыта / понимания / знания, то делайте всё на страх и риск собственный.

Второе: в любом случае вам придётся действовать самостоятельно, используя свои средсства, навыки, кошельки и всё прочее. Мы нести ответственность за это не можем никаким образом.

Третье: блокчейн-технологии всё ещё молоды и уж мы точно не можем отвечать за стабильность сети, её обновления и прочие объективные моменты.

Четвёртое: помните, что главный принцип любого теста: "не навреди".

Удачи!

Перевод обёрнутого NFT другому пользователю

Шаг №36. Возвращаемся на вкладку Write Contract. Находим метод transferFrom. Указываем значения входных параметров:

  • from - адрес отправителя. В нашем случаем это 0x989FA3062bc4329B2E3c5907c48Ea48a38437fB7. Это адрес, для которого мы оборачивали NFT и чьим ключом подписывали транзакции в MetaMask.
  • to - адрес получателя. В нашем случае это 0xbD7E5fB7525ED8583893ce1B1f93E21CC0cf02F6.
  • tokenId - id обёрнутого NFT. В нашем случае 2.

Итого: мы переводим с адреса 0x989FA3062bc4329B2E3c5907c48Ea48a38437fB7 на адрес 0xbD7E5fB7525ED8583893ce1B1f93E21CC0cf02F6 обёрнутый NFT с id 2, где отправитель транзакции адрес 0x989FA3062bc4329B2E3c5907c48Ea48a38437fB7.

Нажимаем Write. MetaMask попросит подтвердить транзакцию. Подтверждаем:

Шаг №37. Теперь обёрнутый NFT принадлежит владельцу кошелька по адресу 0xbD7E5fB7525ED8583893ce1B1f93E21CC0cf02F6. Проверим это.

Шаг №38. Переключаемся на вкладку Read Contract. Находим метод ownerOf. Указываем значение входного параметра tokenId. В нашем случае это 2. Нажимаем Query. Метод вернёт нам владельца обёрнутого NFT:

Вот и всё! Теперь попробует wNFT развернуть обратно?

Разворачивание обёрнутого NFT

Шаг №39. Для разворачивания обёрнутого NFT нам нужно в MetaMask переключиться на кошелек, который сейчас владеет обёрнутым NFT. Обновляем страницу: https://bscscan.com/address/0xc2571eBbc8F2af4f832bB8a2D3A4b0932Ce24773#writeContract.

Нажимаем Connect to Web3.

MetaMask предложит выбрать кошелек, к которому производится подключение и подтвердить это действие. Находим метод unWrap721. Указываем методу id обернутого NFT. В нашем случае это 2. Нажимаем кнопку Write. MetaMask попросит подтвердить транзакцию. Подтверждаем:

Шаг №40. Проверяем, что у обёрнутый NFT был сожжён. Переключаемся на вкладку Read Contract. Находим метод ownerOf. Указываем значение входного параметра tokenId. В нашем случае это 2. Нажимаем Query. Метод вернёт нам ошибку:

Шаг №41. Кроме того, в MetaMask увеличился баланс BNB токенов: ведь у обёрнутого NFT было обеспечение нативными токенами. Увеличился и остаток токенов DAI: ведь у обёрнутого NFT было обеспечение и этими токенами тоже.

Шаг №42. Сам оригинальный NFT принадлежит теперь адресу 0xbD7E5fB7525ED8583893ce1B1f93E21CC0cf02F6 - тому, кто последним владел обёрнутым NFT и его разворачивал.

Шаг №43. Проверим это. Перейдём на страницу контракта https://bscscan.com/address/0x9aebad71667dc4ce400e4c7369b1eb71d3027788#readContract. Находим метод ownerOf. Указываем значение входного параметра tokenId. В нашем случае это 434. Нажимаем Query. Метод вернёт нам адрес текущего владельца:

Шаг №44. Всё! Тестирование завершено: с чем вас и поздравляю -

До!

P.S. Все вопросы можете задавать в нашем общем чате, а ещё лучше - чате bounty-кампании (у Александра Агаджанова под ником alexamuek).