Выпустить токен PRC-721

Прежде чем начать, вам нужно будет подготовить следующее:

  1. Метамаска кошелек

  2. Иметь как минимум 1 PSC

Добавление файлов в IPFS

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

Ниже приведены шаги для хостинга изображений и файлов метаданных:

Создайте REPO IPFS.Инициализируйте REPO IPFS, набрав следующие в окне терминала

 $ ipfs init

Запустите демон IPFS.Откройте отдельное окно терминала и введите следующее:

$ ipfs daemon

Чтобы добавить изображение на IPFS, перейдите в первое окно терминала и добавьте изображение на IPFS (здесь это art.png).

$ ipfs add art.png

Скопируйте хэш, начиная с QM, и добавьте https://ipfs.io/ipfs/prefix, он должен выглядеть так:https://ipfs.io/ipfs/QmdrswwrbcfPeknN2BRLVmyWbWRsKSC3vSNhV9Gkvhk1mL.

Добавьте файл JSON на IPFS.Создайте файл JSON, NFT.JSON и сохраните его в том же каталоге, что и изображение.Формат файла JSON:

{
    "name": "NFT Art",
    "description": "This image shows the true nature of NFT.",
    "image": "https://ipfs.io/ipfs/QmZzBdKF7sQX1Q49CQGmreuZHxt9sVB3hTc3TTXYcVZ7jC",
}

Теперь добавьте файл JSON:

$ ipfs add nft.json

Скопируйте хэш, начинающийся с Qm, и добавьте префикс https://ipfs.io/ipfs/, он должен выглядеть так: https://ipfs.io/ipfs/QmWKqwMJQHSfpfRFGUVGPFFtkBJ5WkFzhjQpruhSLtLWXB, сохраните этот URL-адрес. Нам нужно это, чтобы чеканить NFT.

Создадим собственный токен

Для удобства и безопасности мы будем использовать контракт 0xcert/ethereum-erc721 для создания нашего контракта NFT. С 0xcert/ethereum-erc721 нам не нужно писать весь интерфейс ERC-721. Вместо этого мы можем импортировать контракт библиотеки и использовать ее функции. Перейдите в IDE Ether Remix, создайте новый файл 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);
  }
 
}

Ниже приведено объяснение кода:

Line 1: Указывает тип лицензии SPDX, который был добавлен после прочности ^ 0,6,8.Эти лицензии могут помочь разрешить / избежать проблем с авторским правом всякий раз, когда исходный код интеллектуального договора доступен для общественности.Если вы не хотите указывать любой тип лицензии, вы можете использовать специальное значение Unlicensed или просто пропустить весь комментарий (он не приведет к ошибке, просто предупреждение).

Line 2: объявляет версию солидности.

Lines 4-5: импортировать контракт 0xcert/ethereum-erc721.

Line 7: Контракт назван Newnft, который наследует NFTOKENTEMADATA и собственные контракты.

Lines 9-12: инициализируйте конструктор и установите символ имени и токена.

Line 14: Объявите Mint функции с тремя параметрами, переменной _TO для адреса, который хранит адрес получателя NFT Token;переменная _tokenid для Uint256, которая будет удерживать идентификатор токена;и переменная _URI для строки, которая будет хранить URI файла JSON.Объявите Mint как внешнюю функцию, к которой можно получить доступ из -за других смарт -контрактов и текущего контракта.

Line 15: Используйте адрес получателя и идентификатор токена, чтобы Mant Tokens.

Line 16: Установите токен URI, используя идентификатор токена и URI файла JSON.

Скомпилируйте Smart Contract и разверните его с помощью введенного Web3 (не забудьте выбрать ROPSTEN TESTNET на метамаске перед составлением договора).Утвердить сделки, приходящие на метамаск.

Если вы получаете сообщение об ошибке перед развертыванием: этот договор может быть абстрактным, убедитесь, что подходящий договор выбран по вкладке Контрактов.Подтвердите транзакцию в метамаске.

Теперь перейдите в раздел развернутых контрактов в ремиксе и расширите развернутые контракты.Вы увидите кучу функций/методов.Разверните функцию Mint и добавьте следующие параметры:

  1. Добавьте свой ропстен адрес на _to.

  2. Введите любое числовое значение в _TokedID (рекомендуется 1, как оно первое).

  3. В поле _URI добавьте URI файла JSON, полученное в предыдущем разделе.

Нажмите на транзакцию и подтвердите транзакцию из метамаска.(Требуется, чтобы у вас уже есть эт на цепочке ропстен)

Вы можете увидеть другие детали, такие как имя, символ, владелец или токенори, введя идентификатор токена, который мы упоминали ранее.

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

Last updated