Directual
Menu

Выполняйте операции с NFT с помощью no-code на Directual

Полноценный функционал web3 теперь у вас под рукой. Узнайте всё о смарт-контрактах, NFT и о том, как самостоятельно создавать полноценные блокчейн-проекты, используя no-code (иногда — low-code) подход Directual.

Выполняйте операции с NFT с помощью no-code на Directual

Наконец-то этот момент настал, причём как раз вовремя. Теперь, когда вы знаете, как Directual может помочь вам создавать dApps без кода, давайте посмотрим, как Directual теперь может обрабатывать смарт-контракты — на примере NFT.

Что такое смарт-контракты?

Представьте на минуту, что смарт-контракты — это обычные бумажные контракты из реального мира. Теперь представьте, что эти бумаги обладают юридической силой без какой-либо стороны, обеспечивающей их исполнение. Это и есть смарт-контракты.

По сути, это программа с набором процедур, которые нельзя изменить после развёртывания. Любые инструкции внутри смарт-контракта будут выполнены без какой-либо третьей стороны, обеспечивающей выполнение условий, и без места для споров.

Говоря о смарт-контрактах Ethereum, есть пара токенов с заметным отличием: ERC-20 (Ethereum Request-for-Comments #20) и ERC-721 (Ethereum Request-for-Comments #721). ERC-20 — это взаимозаменяемый токен (подробнее об этом ниже), который также широко используется для криптовалюты. ERC-721, напротив, невзаимозаменяемый — это NFT, то есть он уникален.

Смарт-контракты могут быть невероятно сложными — в виде одного контракта можно написать целые программы. Они могут работать непрерывно, выполняя роль логики для целой платформы. Например, криптовалютная биржа OasisDEX — это всего лишь один большой смарт-контракт. Вы можете быть уверены: если вы за что-то заплатили, вы это получите.

Более того, они являются фундаментальной частью децентрализованных финансов и NFT.

Bored Ape Yacht Club (BAYC) удалось добиться огромного успеха, выпуская NFT, и знаете как? Смарт-контракты и хайп.

Кстати говоря.

Что такое NFT?

NFT — это невзаимозаменяемый токен. Что вообще означает «взаимозаменяемый»? Коротко говоря, взаимозаменяемость означает, что вещь можно без проблем заменить чем-то эквивалентным. Вы уронили банку колы, и она взорвалась — вы берёте точно такую же, и она стоит столько же. Это взаимозаменяемо!

Невзаимозаменяемое — это то, что нельзя заменить. Вот эта шерстяная шапка, которую вам когда-то давно связала бабушка. Нет другой такой шапки, и никогда больше не будет. Она хранит воспоминания об очень важном для вас человеке. Конечно, вы можете купить похожую шапку, но это будет уже не то самое.

Но как это работает с цифровыми медиа?

Технически цифровые медиа бесконечно взаимозаменяемы, если только это не JPEG-изображение, которое всё равно со временем деградирует из-за сжатия. Отсюда и мемы: просто сделай скриншот NFT — и готово! Это довольно забавно, но упускает саму суть NFT.

Вот это — самый первый твит в истории. Продан как NFT на благотворительном аукционе за 2,5 миллиона долларов.

Владение. Вот почему здесь нужен блокчейн: он помогает отслеживать, кому что принадлежит. У вас может быть ограниченный тираж из 200 электронных книг, и если их выпустить как NFT, все владельцы получат настоящее право собственности на оригиналы. Вы можете скопировать цифровой объект, но не можете скопировать его ценность. Таким образом, копия, которой вы владеете, особенная и уникальная.

NFT может создать кто угодно, и это невероятно интересная технология не только для искусства, но и скоро для многих других вещей. Например, ваш билет в кино может быть NFT.

В любом случае, хватит теории. Перейдём к созданию.

Пример: раздача NFT-подарков первым 10 подписчикам!

Если вы хотите увидеть весь процесс в действии, мы подготовили для вас удобное видео, где показан процесс создания раздачи NFT-подарков для первых 10 подписчиков.

Если вы предпочитаете читать, продолжайте:

Пошаговая инструкция

Для начала нам нужно создать собственную коллекцию NFT. Это легко сделать с помощью различных сервисов, таких как:

  • Rarible (интерфейс приятный, личное мнение)
  • Appypie (у меня почему-то не сработал)
  • Autominter (простой, но справляется со своей задачей)

Шаг 1: Генерация коллекции NFT

Для простоты воспользуемся Autominter. Сгенерируйте NFT и не забудьте выпустить (mint) их в свой собственный кошелёк. Затем нажмите кнопку View on Etherscan и выберите Token Tracker — нам всё-таки нужно знать адрес нашего NFT.

Здесь мы видим, что все только что выпущенные NFT находятся в нашем кошельке.

Здесь tokenID варьируется от 0 до 9, а адрес контракта — 0xf6cb5BDaD75356D65E57060EF56bB79aE2806c1F.

Шаг 2: Перенос данных в Directual

Теперь эти данные должны стать частью вашей базы данных в Directual. Именно так мы сможем автоматизировать логику распределения токенов. Для начала создадим таблицу под названием nft_airdrop с полями contract_address, token_id и is_owner.

…и заполним её!

Затем мы можем создать страницу с авторизацией пользователя через MetaMask. Для этого подключим модуль MetaMask:

И настроим доступ только для авторизованных пользователей на нашей главной странице:

Шаг 3: Дождь из NFT!

Наконец, нам нужно настроить сценарий, который будет распределять NFT при регистрации пользователя. Для этого нужно подключить плагин NFT. Затем мы собираем простой сценарий, который будет запускаться при появлении любых новых событий в таблице AppUser.

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

Вот как работает сценарий:

  1. Ищет записи структуры nft_airdrop с условием is_owner == true (так мы узнаём, кому дарить)
  2. Проверяет, выполнены ли все условия
  3. Берёт первый элемент массива для отправки после завершения поиска
  4. Передаёт NFT пользователю WebUser (ну да), на его ID кошелька
  5. Помечает этот NFT в nft_airdrop как is_owner = false (NFT подарен, так что мы больше не будем его искать)

Вот и всё!

Как Directual взаимодействует со смарт-контрактами

Вы можете пропустить эту часть, если не хотите иметь дело с кодом :)

Directual уже был отличным выбором для разработчиков dApp, а теперь вы можете вызывать любую функцию блокчейна (например, на Ethereum или Polygon) с помощью модуля SDK.

Вот короткий пример перевода токена USDT из одного кошелька в другой. По сути, это выполнение функции transfer на основе стандарта ERC-20:

Послесловие

Наше любимое сообщество уже давно просило о смарт-контрактах, и мы очень рады наконец-то это реализовать. Извлеките максимум пользы из функционала Web3 в вашем dApp! Если возникнут вопросы, напишите нам на hello@directual.com. Всегда рады услышать от коллег-no-coders!

Никита Навалихин
Сооснователь и технический директор Directual
← Назад к списку