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