КАК СОЗДАТЬ ТОКЕН ERC-721?

В связи с растущим спросом на взаимозаменяемые токены, если вы хотите использовать DApp, ERC-721 - правильный выбор.

ERC-721 уже довольно давно является центром притяжения, поскольку он обеспечивает подключение безопасных блокчейн-сетей к онлайн-играм с «криптовалютами». С момента запуска Cryptokitties цифровые предметы коллекционирования, которые совместимы и соответствуют стандарту ERC-721, были довольно популярны, продвигаясь вперед в своем массовом использовании.


В основном токены NFT были созданы с помощью одного из двух стандартов токенов Ethereum, а именно ERC-721 и еще одного чертежа ERC-1155, который Ethereum создал, чтобы позволить разработчикам программного обеспечения удобно развертывать NFT, обеспечивая их совместимость с более широкой экосистемой.

Что такое NFT?

NFT или Non-Fungible Token можно описать как неделимый и отдельный актив криптовалюты. Они не придерживаются атрибута взаимозаменяемости, который можно использовать для продажи на открытом рынке. NFT состоит из идентифицирующей информации, хранящейся в смарт-контрактах. С помощью этой информации появляется реальная возможность различать NFT, что делает каждый NFT незаменимым.


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

NFT поддерживаются двумя конкретными стандартами токенов, а именно «ERC-721» и «ERC-1155». ERC-721 был первым в истории стандартом токенов для поддержки нефункциональных цифровых активов. Он также известен как стандарт смарт-контрактов Solidity, который является наследуемым. Поэтому разработчики могут воспользоваться помощью библиотеки Open Zeppelin для создания новых совместимых контрактов. ERC-1155 - это еще один стандарт для NFT, который дает им полузаменяемость. ERC-1155 также расширяет возможности ERC-721, помогая в создании активов ERC-721 с использованием стандарта ERC-1155.

Что вы понимаете под ERC-721?

Полная форма ERC - это Ethereum Request for Comment, а 721 в «ERC-721» - это числовой идентификатор предложения. ERC - это руководство на уровне приложений в сети Ethereum; его можно использовать для определения спецификаций смарт-контрактов для таких токенов, как ERC-20. Автор ERC несет ответственность за достижение консенсуса в сообществе Ethereum, и после того, как сообщество завершит предложение, оно становится стандартом. ERC-721 был предназначен для облегчения отслеживания и передачи нефидуциарных токенов в смарт-контрактах.


ERC-721 - это открытый стандарт, который определяет, как создавать не взаимозаменяемые токены на блокчейнах, совместимых с EVM (виртуальная машина Ethereum); он также служит стандартным интерфейсом для Non-Fungible Tokens и включает набор правил, упрощающих работу с NFT. Невзаимозаменяемые токены (NFT) не ограничиваются стандартом ERC-721; они также могут быть токенами ERC-1155.


ERC-721 определяет несколько функций, совместимых с ERC-20. Это упрощает процесс отображения базовой информации токенов в существующих кошельках.

Каковы функции ERC-721?

Функции аналогичны ERC-20

  • Name - это поле используется для указания имени токена, которое другие контракты и приложения могут использовать для его идентификации.
  • Symbol - используется для определения сокращенного имени или символа токена.
  • totalSupply - эта функция используется для указания общего количества токенов в цепочке блоков; предложение не должно быть постоянным.
  • balanceOf - возвращает количество NFT, принадлежащих адресу.

Обязанности собственника

  • ownerOf - Эта функция возвращает владельца адреса токена. Поскольку токены ERC-721 не являются взаимозаменяемыми и уникальными, они представлены в цепочке блоков с помощью идентификатора. Этот идентификатор может использоваться другими пользователями, контрактами и приложениями для определения того, кому принадлежит токен.
  • Approve - Эта функция разрешает или утверждает другому лицу право передавать токены от имени владельца.
  • takeOwnership - Это необязательная функция, которая работает аналогично функции вывода, поскольку она может быть вызвана внешней стороной для вывода токенов из учетной записи другого пользователя. Таким образом, takeOwnership можно использовать, когда пользователь получил разрешение на владение определенным количеством токенов и желает вывести эти токены с баланса другого пользователя.
  • transfer - Это еще одна передаточная функция; он позволяет владельцу токена передать его другому пользователю, аналогично тому, как работают другие цифровые токены / монеты.
  • tokenOfOwnerByIndex - Это рекомендуемая, но необязательная функция. Каждый владелец может одновременно владеть несколькими NFT. Однако каждый NFT идентифицируется уникальным идентификатором, и со временем становится трудно отслеживать идентификаторы. В результате контракт сохраняет эти идентификаторы в массиве, а функция tokenOfOwnerByIndex позволяет нам их получить.

Функция метаданных

  • tokenMetadata - Эта дополнительная функция предоставляет интерфейс для обнаружения метаданных или связывания с данными, связанными с токеном.

События

  • Transfer - Это событие запускается, когда право собственности на токен переходит от одного лица к другому. Он передает информацию об учетной записи, которая передала токен, учетной записи, получившей токен, и переданном токене (по идентификатору).
  • Approve - Это событие запускается всякий раз, когда пользователь предоставляет другому пользователю право владения токеном, т. Е. Всякий раз, когда выполняется функция утверждения. Он выдает информацию о том, какая учетная запись в настоящее время владеет токеном, какой учетной записи было предоставлено разрешение на приобретение права собственности на токен в будущем и какому токену (по идентификатору) было предоставлено разрешение на передачу права собственности.

Каковы шаги по созданию и развертыванию токенов ERC-721?

Теперь, когда мы знакомы с концепцией ERC-721, давайте продолжим и разберемся с этапами создания и развертывания токена ERC-721.

Шаг 1. Получение тестового ETH

Мы будем использовать тестовую сеть Ropsten для развертывания нашего контракта. Чтобы начать этот процесс, вам понадобится расширение браузера с именем Metamask из сборщика Ropsten, чтобы создать тестовый ETH и кошелек ETH.


Затем выберите опцию тестовой сети Ropsten (или просто перейдите по адресу faucet.metamask.io), доступную в кошельке Metamask, скопируйте адрес кошелька в следующее указанное поле, а затем нажмите опцию получения тестового эфира.

Шаг 2: добавление файлов в IPFS

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


Начните с загрузки IPFS, а затем установите его в соответствии с операционной системой.


Выполните следующие шаги, чтобы разместить изображение и файл метаданных:

  • Начните с создания репозитория IPFS, набрав нижеупомянутый код в окне cmd / терминала,

$ ipfs init

  • Затем начните с демона IPFS, отдельно открыв окно cmd / terminal, а затем введите код,

$ ipfs daemon

  • Затем добавьте изображение в IPFS, перейдя в первое окно терминала в соответствии с кодом, указанным ниже,

$ ipfs add art.png

Затем скопируйте хеш, начиная с Qm, и добавьте префикс «https://ipfs.io/ipfs/».


  • Затем вам нужно добавить файл JSON в IPFS. Начните с создания файла JSON и сохранения его в том же каталоге в форме изображения.

Ознакомьтесь с форматом файла JSON, упомянутым ниже:


name: NFT Art
description: This image shows accurate nature of NFT
image: https://ipfs.io/ipfs/QmZzBdKF7sQX1Q49CQGmreuZHxt9sVB3hTc3TTXYcVZ7jC
  • Следующим шагом будет добавление как JSON файла,

$ ipfs add nft.json

Затем скопируйте хеш, начиная с Qm, и добавьте префикс «https://ipfs.io/ipfs/». Результат будет выглядеть так:

https://ipfs.io/ipfs/QmUFbUjAifv9GwJo7ufTB5sccnrNqELhDMafoEmZdPPng7

Мы сохраним этот URL-адрес, так как он будет использован позже при чеканке токенов.

Шаг 3: Создание токена

Мы будем использовать контракт ERC-721 для плавного процесса создания NFT. С 0xcert / ethereum-erc721 нам не нужно писать весь интерфейс ERC-721. Вместо этого мы можем импортировать контракт библиотеки и использовать его функции.


Перейдите к IDE Ethereum, а затем создайте файл solidity, например - nft.sol.


Затем начните импортировать нижеупомянутый код в ваш недавно созданный скрипт solidity.


// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;
import https://github.com/0xcert/ethereum-erc721/src/contracts/tokens/nf-token-metadata.sol,
import https://github.com/0xcert/ethereum-erc721/src/contracts/ownership/ownable.sol,
contract newNFT is NFTokenMetadata, Ownable {
constructor() {
nftName = Synth NFT;
nftSymbol = SYN;
}
function mint(address _to, uint256 _tokenId, string calldata _uri) external onlyOwner {
super._mint(_to, _tokenId);
super._setTokenUri(_tokenId, _uri);
}
}

Вышеупомянутый код можно понимать как

  • В строке 1 указан тип лицензии SPDX. Эти лицензии помогут в решении вопросов авторского права.
  • Строка 2 декларирует версию solidity.
  • Строки 4 и 5 команды объясняют импорт контрактов Ethereum ERC-721.
  • Команда в строке 7 сообщает о начале контракта с именем newNFT и, в частности, упоминает, что он расширяет собственные контракты и метаданные токенов NFT.
  • Строка 9-12 сообщает об инициализации символа для токена, конструктора и установке имени.
  • Строка 14 объявляет функцию, созданную с тремя аргументами, переменную _uri типа string, процесс сохранения URI файла JSON, переменную _to типа address, которая поможет сохранить адрес получателя токена NFT, переменную _tokenId of uint256, который будет содержать идентификатор токена.
  • Строка 15 дает команду чеканки токена с помощью идентификатора токена и адреса получателя.
  • В строке 16 говорится о настройке URI токена с помощью URI файла JSON и идентификатора токена.

Скомпилируйте смарт-контракт и разверните его, используя внедренный Web3 (не забудьте выбрать тестовую сеть Ropsten в Metamask перед компиляцией контракта). Подтвердите транзакцию из метамаск.

Если перед развертыванием вы получаете сообщение об ошибке «Этот контракт может быть абстрактным», обязательно выберите соответствующий контракт на вкладке «Контракт».

Подтвердите транзакцию в Metamask
Теперь перейдите в раздел «Развернутые контракты» в Remix и разверните созданный контракт. Вы увидите множество функций / методов.

Разверните функцию выпуска и добавьте следующие детали:
  1. Добавьте свой адрес Ropsten в поле _to.
  2. Введите любое значение большого числа в поле _tokenid (мы предлагаем 1, поскольку оно первое).
  3. Добавьте URI файла JSON в поле _uri, которое мы получили в предыдущем разделе.

Нажмите на транзакцию и подтвердите транзакцию из метамаск. Теперь у вас есть токен в цепочке Ropsten.

Вы можете проверить другие детали, такие как имя, символ, владелец или tokenuri, введя идентификатор токена, который мы упоминали ранее.
Поздравляем с созданием собственного NFT, помогите своим друзьям-художникам поместить свои художественные работы в блокчейн Ethereum или сами станьте художником.

Поддержите блог, перечислив небольшие чаевые

Если у вас нет кошелька MetaMask, вы можете получить его здесь
Made on
Tilda