July 22, 2022

NFT кругозор, часть 2

Всем привет! С вами Тёма!

Сегодня я продолжу вам рассказывать об нфт

Начнем

В прошлой статье мы разобрали базу нфт, что они вообще такое и как они отображаются в блокчейне, это была вводная статья, чтобы все поняли что вообще происходит. Теперь мы начинаем погружаться в мир метаданных и запихивания в нфт незапихиваемого!

Почему я в это полез?

Где-то неделю назад в один хороший чат была скинута ссылка на данную нфт ТЫК и мир в тот момент для меня перевернулся! Как это я щас играю в игру прямо на OpenSea???

По итогу я принял решение сделать что-то подобное, при этом идти к этому постепенно (поэтому было 3 минта у меня на канале) + я хотел это сделать все максимально круто, то есть on-chain, так что задачка стояла интересная!

Клеточный автомат

Данную коллекцию можно найти тут - ТЫК

Это была самая сложная для меня коллекция, так как я еще не особо понимал как можно запихнуть js скрипт в нфт, какие Data URL надо использовать и тд. После того как я поигрался с метаданными и понял как они работают я попытался это все посмотреть на OpenSea, но вот не задача, моих нфт там не было, OpenSea просто не видело мои нфт, хотя все метаданные были верны! В этот момент я обратился к более опытному в этих делах @spiridono, который указал мне на ошибку и скинул эту чудесную ссылку ТЫК, с которой я смогу полностью понять возможности нфт

Основная информация из этого руководства представлена в данной таблице, и если вы почитаете каждый пункт, то уверен поймете мое удивление)

Что было для меня самым важным тут? Да то что я пихал html+js страничку закодированную в base64 в поле "image", а оно такой формат не поддерживает, это все надо было пихать в "animation_url", где это все отлично бы прижилось

В итоге сделав эту нфт коллекцию, я понял несколько важных вещей:

  • Data URL
  • Метаданные для OpenSea
  • Поле "image" = картинка когда ты на странице коллекции; поле "animation_url" = картинка когда ты перешел по конкретной нфт
  • В эти метаданные можно запихнуть кучу всего

Интерактивное 3D

Данную коллекцию можно найти тут - ТЫК

На этом этапе все уже казалось очень простым, я взял Three.js, там стырил код первого понравившегося экзампла, чуть-чуть его переделал (сделал импорты через https://cdn.jsdelivr.net) и все, готово! В самом коде изначально был прописан скрипт камеры через данную библиотеку и даже его OpenSea пропустило!

Какие выводы я сделал по данной коллекции:

  • Можно импортировать вообще любые библиотеки через облачные хранилища (да не супер ончейн, он меньшее из зол)
  • Можно очень просто сделать интерактивное нфт, после нажатия по которому будет что-то происходить

Змейка

Данную коллекцию можно найти тут - ТЫК

Ну к этой коллекции я уже подошел на опыте и с знаниями, поэтому ничего не предвещало беды. Я нашел какую-то репу со змейкой на js, она была более менее короткая так что решил выбрать её. После выпила некоторого функционала я пытаюсь задеплоить контракт нфт в сеть, а он не проходит по размеру, и тут начинается веселуха с переписыванием всего контракта на erc721A, выпилом некоторых функций из erc721A, невероятным газ менеджментов (я еще никогда так не запаривался по нему) и как итог - деплой контракта на тестовой сети с газ лимитом 5.500.000!

Какие выводы были сделаны после данной коллекции:

  • Запихнуть даже 400 строк js кода - возможно
  • На практике проверил, что в нфт можно засунуть почти все
  • Js код надо обфусцировать)

Тут я оставлю ссылку на репозиторий, где будут лежать все 3 контракта и все html странички, которые им соответствуют

https://github.com/ortomich/NFT_collections_on-chain

Надеюсь статья была интересной и понятной!

Мой телеграмм канал - https://t.me/ortomich_crypto