Как написать смарт контракт для nft

Содержание
  1. Put your NFT Minter to work!
  2. Поддержите блог, перечислив небольшие чаевые
  3. Каковы шаги по созданию и развертыванию токенов ERC-721?
  4. Шаг 1. Получение тестового ETH
  5. Шаг 2: добавление файлов в IPFS
  6. Шаг 3: Создание токена
  7. Поддержите блог, перечислив небольшие чаевые
  8. Стек технологий, необходимый для создания торговой площадки NFT
  9. Prerequisites
  10. Withdraw balance function
  11. Ончейн и оффчейн NFT
  12. Идея
  13. Три разновидности смарт-контрактов
  14. Smart Legal Contract
  15. Decentralized Autonomous Organizations (DAO)
  16. Viewing our NFTs on OpenSea
  17. Шаг 3. Настройте свой кошелек Ethereum
  18. Скачать Metamask
  19. Добавить эфир из сборщика
  20. Проверьте свой баланс
  21. Mint NFTs function
  22. Take the blockchain world by storm
  23. Создание NFT 101
  24. Getting all tokens owned by a particular account
  25. Use Pinata to pin your metadata to IPFS
  26. Create your Pinata API key
  27. Create a .env file
  28. Implement pinJSONToIPFS
  29. Writing the Smart Contract
  30. Проверка контракта в проводнике блокчейна
  31. Loot Royale NFT в тестовой сети Open sea
  32. Verifying our contract on Etherscan
  33. Следующие шаги
  34. Создание NFT с помощью смарт-контрактов
  35. Стандарты смарт-контрактов для создания NFT
  36. Смарт-контракты, NFT и метавселенная
  37. Создание смарт-контракта без опыта работы с блокчейном
  38. Reserve NFTs function
  39. Как работает торговая площадка NFT?

Put your NFT Minter to work!

Ready to mint an NFT using your minter? Check out this demo video!

NOTE: The transactions sent through Metamask will use Metamask’s default provider (not necessarily your Alchemy endpoint). If you’d like to send those transactions through Alchemy to unlock debugging tools and the Alchemy Notify suite, check out this guide for connecting Metamask to Alchemy.

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

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

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

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

Как написать смарт контракт для nft

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

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

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

Как написать смарт контракт для nft

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

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

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

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

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

$ ipfs init

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

$ ipfs daemon

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

$ ipfs add art.png

  • Затем вам нужно добавить файл 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

Мы сохраним этот 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 перед компиляцией контракта). Подтвердите транзакцию из метамаск.

Как написать смарт контракт для nft

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

Подтвердите транзакцию в Metamask

Как написать смарт контракт для nft

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

Разверните функцию выпуска и добавьте следующие детали:

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

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

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

Как написать смарт контракт для nft

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

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

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

Стек технологий, необходимый для создания торговой площадки NFT

Как написать смарт контракт для nft

  • Ethereum (Ethereum — одна из самых популярных платформ, когда дело доходит до рынка NFT или разработки невзаимозаменяемых токенов. Поскольку история транзакций и метаданные токенов доступны для публичной проверки в Ethereum, легче доказать историю владения. Поскольку все продукты Ethereum имеют общий бэкэнд, NFT становятся переносимыми между продуктами. Кроме того, Ethereum никогда не падает; следовательно, токены всегда будут доступны для продажи.)
  • Flow (Flow — это быстрый и децентрализованный блокчейн, разработанный для нового поколения цифровых активов, приложений и игр. Платформа широко используется для создания как торговых площадок NFT, так и NFT с использованием языка программирования Cadence.)
  • Tezos (Tezos — это блокчейн-платформа с открытым исходным кодом для приложений и ресурсов, поддерживаемая сообществом разработчиков, исследователей и валидаторов. Используя предварительно скомпилированный контракт FA2 NFT, написанный на языке смарт-контрактов LIGO, Tezos поддерживает развитие торговых площадок NFT.)
  • Cardano (Cardano — это блокчейн-платформа с технологиями и инструментами, необходимыми для обеспечения непревзойденной безопасности и устойчивости децентрализованных систем и приложений. Он также поддерживает развитие NFT и других цифровых активов.)
Про NFT:  Крупнейший NFT-маркетплейс OpenSea сократит 20 % персонала

  • IPFS — это одноранговый гипермедийный протокол, предназначенный для децентрализованного хранения медиаконтента. Поскольку медиафайл, связанный с NFT, не может храниться непосредственно в цепочке блоков, IPFS может хранить все эти данные.
  • Filecoin — это децентрализованная сеть хранения, разработанная специально для хранения самой важной информации, такой как медиафайлы. Платформа хранения включает в себя все, что потребуется разработчику для начала работы с децентрализованным хранилищем для NFT. Зная о своих преимуществах, Truffle Suite также запустил шаблон разработки NFT с Filecoin Box.
  • Pinata также является одной из популярных платформ для загрузки файлов и управления ими в IPFS. Он предоставляет безопасные и проверяемые файлы для NFT.

  • ERC-721
  • ERC-1155
  • FA2
  • dGoods
  • TRC-721

  • React
  • Angular
  • Vue

В этой статье демонстрируется пример создания торговой площадки NFT с использованием цепочки блоков Flow и сети IPFS Pinata.

Prerequisites

Withdraw balance function

All the effort we’ve put in so far would go to waste if we are not able to withdraw the ether that has been sent to the contract.

Let us write a function that allows us to withdraw the contract’s entire balance. This will obviously be marked as onlyOwner.

Ончейн и оффчейн NFT

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

Пример URL-адреса изображения IPFS выглядит следующим образом:

Вы можете открыть это прямо в храбром браузере — булавка, которую я нарисовал в мобильном приложении Art Flow давным-давно.

Если бы нам пришлось создавать NFT вне сети, как бы выглядел код?

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

Есть две переменные

  • Базовый URI — фактический URI для NFT

  • Слепой URI — пока мы не раскроем NFT, это изображение или видео будет одинаковым для всех отчеканенных NFT.

URI, который мы должны установить, будет выглядеть так: ipfs://QmV3yGkzx2Uw3NHPZV9SAMLA58j7LvCFLFYtyfCMBAvstF/

Когда мы запрашиваем, наш идентификатор токена добавляется к нему, и Open Sea или любой другой рынок может найти и отобразить его.

Начальные шаги — активировать контракт, а затем установить слепой URI. Как только все NFT отчеканены, вы можете показать отчеканенные NFT.

Вывод метода tokenURI будет выглядеть так:

«name»: «Королевская добыча 1»,

«description» : «Некоторое описание»

Идея

Идея создания NFT DApp вдохновлена ​​проектом добычи, но я также хочу добавить к нему свои собственные творческие способности и понять работу смарт-контрактов в процессе.

Три разновидности смарт-контрактов

Смарт-контракты обычно делят на три типа. Давайте изучим их, чтобы узнать, какую пользу они могут принести.

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

Большинство существующих смарт-контрактов — это Smart Legal Contract. Они лежат в основе криптовалютных бирж, DeFi-проектов, GameFi-проектов и самых разных платформ на основе блокчейна — от NFT-маркетплейсов до метавселенных и площадок для токенизации и купли-продажи реальной недвижимости.

Decentralized Autonomous Organizations (DAO)

Децентрализованные автономные организации, или DAO можно определить как сообщества, которые управляются набором правил, принятых и кодифицированных с использованием смарт-контрактов. После принятия этих правил работа смарт-контрактов DAO будет заключаться в обеспечении их соблюдения и предоставлении механизмов правовой защиты, а также наказании нарушителей. Другими словами, смарт-контракты DAO — это законы и «цифровая» бюрократия.

Viewing our NFTs on OpenSea

Believe it or not, our NFT collection is now already available on OpenSea without us having to upload it explicitly. Go to testnets.opensea.io and search for your contract address.

This is what our collection looks like:

Шаг 3. Настройте свой кошелек Ethereum

Чтобы пользователи могли взаимодействовать с вашим смарт-контрактом, им необходимо подключить свой кошелек Ethereum к вашему dApp.

Скачать Metamask

Как написать смарт контракт для nft

Образец кошелька Metamask

Добавить эфир из сборщика

Проверьте свой баланс

Чтобы дважды проверить наш баланс, давайте сделаем запрос eth_getBalance с помощью инструмента композитора Alchemy . Это вернет количество Eth в нашем кошельке. После того, как вы введете адрес своей учетной записи Metamask и нажмете «Отправить запрос», вы должны увидеть такой ответ:

{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}

ПРИМЕЧАНИЕ. Это результат в wei, а не в eth. Вэй используется как наименьшее обозначение эфира. Преобразование wei в eth: 1 eth = 10¹⁸ wei. Итак, если мы преобразуем 0xde0b6b3a7640000 в десятичное число, мы получим 1 * 10¹⁸, что равно 1 eth.

Уф! Все наши фальшивые деньги!

Mint NFTs function

Since they’re sending ether to this function, we have to mark it as payable.

We need to make three checks before we allow the mint to take place:

  1. There are enough NFTs left in the collection for the caller to mint the requested amount.
  2. The caller has requested to mint more than 0 and less than the maximum number of NFTs allowed per transaction.
  3. The caller has sent enough ether to mint the requested number of NFTs.
 require(
totalMinted.add(_count) <= MAX_SUPPLY, "Not enough NFTs!"
);
require(
_count > 0 && _count <= MAX_PER_MINT,
"Cannot mint specified number of NFTs."
);
require(
msg.value >= PRICE.mul(_count),
"Not enough ether to purchase NFTs."
);

Take the blockchain world by storm

JK, you made it to the end of the tutorial! To recap, by building an NFT minter, you successfully learned how to:

  • Connect to Metamask via your frontend project
  • Call smart contract methods from your frontend
  • Sign transactions using Metamask

Presumably, you’d like to be able to show off the NFTs minted via your dApp in your wallet — so be sure to check out our quick tutorial How to View Your NFT in Your Wallet!
And, as always, if you have any questions, we’re here to help in the Alchemy Discord. We can’t wait to see how you apply the concepts from this tutorial to your future projects!

Создание NFT 101

Прежде чем мы даже начнем изучать какой-либо код, важно понять, как работает NFT. Он состоит из двух этапов:
1) Вы публикуете смарт-контракт NFT в блокчейне Ethereum. Обычно это смарт-контракт ERC-721 или ERC-1155.

Про NFT:  Откройте для себя возможности NFT в Яндекс Дзен: подробный обзор

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

2) Вы вызываете функцию чеканки смарт-контракта NFT для чеканки NFT.

Минтинг — это просто акт публикации уникального экземпляра вашего невзаимозаменяемого токена в блокчейне.

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

Метаданные NFT — это действительно то, что оживляет их, позволяя им иметь такие свойства, как имя, описание, изображение (или другой цифровой актив) и другие атрибуты. Вот пример tokenURI, который содержит метаданные NFT.

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

Вот ссылка на ERC-721 NFT смарт контракта мы будем называть в этом учебнике. Если вы хотите узнать, как мы сделали это, мы настоятельно рекомендуем вам проверить наш другой учебник, «Как создать NFT»

Круто, теперь, когда мы понимаем, как работает NFT, давайте клонируем наши стартовые файлы!

Getting all tokens owned by a particular account

Let’s write a simple function that returns all IDs owned by a particular holder. This is made super simple by ERC721Enumerable ‘s balanceOf and tokenOfOwnerByIndex functions. The former tells us how many tokens a particular owner holds, and the latter can be used to get all the IDs that an owner owns.

Use Pinata to pin your metadata to IPFS

If you don’t have a Pinata account, sign up for a free account here and complete the steps to verify your email and account.

Create your Pinata API key

Как написать смарт контракт для nft

Create your Pinata API key

You’ll then be shown a popup with your API info. Make sure to put this somewhere safe.

Как написать смарт контракт для nft

Make sure to save your API key and secret in a safe place

Now that our key is set up, let’s add it to our project so we can use it.

Create a .env file

npm install dotenv --save

This will pop open your .env file in vim (a text editor). To save it hit «esc» + «:» + «q» on your keyboard in that order.
Next, in VSCode, navigate to your .env file and add your Pinata API key and API secret to it, like so:

REACT_APP_PINATA_KEY = <pinata-api-key>
REACT_APP_PINATA_SECRET = <pinata-api-secret>

Save the file, and then you’re ready to start writing the function to upload your JSON metadata to IPFS!

Implement pinJSONToIPFS

Fortunately for us, Pinata has an API specifically for uploading JSON data to IPFS and a convenient JavaScript with axios example that we can use, with some slight modifications.
In your utils folder, let’s create another file called pinata.js and then import our Pinata secret and key from the .env file like so:

require('dotenv').config();
const key = process.env.REACT_APP_PINATA_KEY;
const secret = process.env.REACT_APP_PINATA_SECRET;

Next, paste the additional code from below into your pinata.js file. Don’t worry, we’ll break down what everything means!

require('dotenv').config();
const key = process.env.REACT_APP_PINATA_KEY;
const secret = process.env.REACT_APP_PINATA_SECRET;
const axios = require('axios');
export const pinJSONToIPFS = async(JSONBody) => { const url = `https://api.pinata.cloud/pinning/pinJSONToIPFS`; //making axios POST request to Pinata ⬇️ return axios .post(url, JSONBody, { headers: { pinata_api_key: key, pinata_secret_api_key: secret, } }) .then(function (response) { return { success: true, pinataUrl: "https://gateway.pinata.cloud/ipfs/" + response.data.IpfsHash }; }) .catch(function (error) { console.log(error) return { success: false, message: error.message, } });
};
  • If this POST request is successful, then our function returns an JSON object with the success boolean as true and the pinataUrl where our metadata was pinned. We will use this pinataUrl returned as the tokenURI input to our smart contract’s mint function.
  • If this post request fails, then our function returns an JSON object with the success boolean as false and a message string that relays our error.

As with our connectWalletfunction return types, we’re returning JSON objects so we can use their parameters to update our state variables and UI.

Writing the Smart Contract

In this section, we are going to write a smart contract in Solidity that allows anyone to mint a certain number of NFTs by paying the required amount of ether + gas.

In the contracts folder of your project, create a new file called NFTCollectible.sol.

In addition to the above, we will also use OpenZeppelin’s SafeMath and Counters libraries to safely deal with unsigned integer arithmetic (by preventing overflows) and token IDs respectively.

This is what the skeleton of our contract looks like:

//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

Проверка контракта в проводнике блокчейна

Теперь давайте проверим контракт в проводнике блокчейна и взаимодействуем с ним из самого проводника.

  • Откройте адреса контрактов библиотеки дизайна карт на одной вкладке (нам нужен этот адрес). Откройте адрес контракта Loot Royale на другой вкладке, как показано ниже.

Как написать смарт контракт для nft

  • Нажмите «Подтвердить» и «Опубликовать» и заполните данные ниже. Я использовал 8.7 в качестве версии компилятора при развертывании из ремикса, поэтому я использую то же самое здесь. Нажмите «Продолжить».

Как написать смарт контракт для nft

  • Скопируйте код из remix IDE и вставьте часть кода. Удалите строку из части конструктора, как показано ниже.

Как написать смарт контракт для nft

  • Введите адрес библиотеки, как показано ниже, и подтвердите, что вы не робот, и нажмите «Подтвердить и опубликовать».

Как написать смарт контракт для nft

Теперь наш контракт проверен. Это выглядит как на изображении ниже. Вы должны увидеть функции для чтения и записи в блокчейн.

Как написать смарт контракт для nft

Перейдите в раздел записи контракта и нажмите «Подключиться к web3», вам будет предложено подключиться к провайдеру, как показано ниже.

Как написать смарт контракт для nft

Нажмите на Metamask, он предложит вам подключиться. Нажмите «Подключиться к web3» еще раз, и вы сможете подключить проводник к Metamask, как показано ниже.

Как написать смарт контракт для nft

Теперь нажмите на функцию mintSingle, это будет NFT. Введите 0,01 в качестве цены NFT, как показано ниже.

Как написать смарт контракт для nft

Поздравляем. Вы успешно выпустили NFT. Теперь давайте просмотрим URI токена.

Как написать смарт контракт для nft

Вы можете перейти на testnets.opensea.io, подключить свой кошелек, и вы сможете увидеть свои NFT Loot Royale.

Loot Royale NFT в тестовой сети Open sea

Как написать смарт контракт для nft

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

Спасибо за прочтение!!


Verifying our contract on Etherscan

We have come a LONG way in this article but there is one final thing we’d like to do before we go.

Before we can do this, we will need an Etherscan API key. Sign up for a free account here and access your API keys here.

Про NFT:  Пополните свою коллекцию NFT: сайт Singular предлагает эксклюзивные произведения искусства и многое другое

Let’s add this API key to our .env file.

ETHERSCAN_API = "<--YOUR ETHERSCAN API KEY-->"

Next, make adjustments to hardhat.config.js so it looks like this:

npx hardhat cleannpx hardhat verify --network rinkeby DEPLOYED_CONTRACT_ADDRESS "BASE_TOKEN_URI"

In our case, the second command looked like this:

npx hardhat verify --network rinkeby 0x355638a4eCcb777794257f22f50c289d4189F245 "ipfs://QmZbWNKJPAjxXuNFSEaksCJVd1M6DaKQViJBYPK2BdpDEP/"

Try this out yourself.

Connect the account that you used to deploy the contract and call the withdraw function from etherscan. You should be able to transfer the 0.03 ETH in the contract to your wallet. Also, ask one of your friends to connect their wallet and mint a few NFTs by calling the mintNFTs function.

Следующие шаги

  • Скопируйте контракт в вашу IDE для ремикса. Это должно выглядеть так, как показано ниже.

Как написать смарт контракт для nft

  • Вы можете выбрать версию компилятора на любую версию выше 8.0, но помните эту версию, которую вы использовали для компиляции. Это необходимо при проверке контракта в обозревателе блоков.
  • Перейдите на вкладку компилятора и нажмите «Компилировать». Вы должны увидеть зеленую галочку, как показано ниже.

Как написать смарт контракт для nft

  • Перейдите на вкладку развертывания. Вы должны выбрать контракт как BattleRoyale.sol

  • По умолчанию среда будет Javascript VM. Все транзакции будут выполняться в блокчейне песочницы в браузере. Это означает, что при перезагрузке страницы ничего не сохранится. Виртуальная машина Javascript является собственной цепочкой блоков, и при каждой перезагрузке она запускает новую цепочку блоков, старая не сохраняется.

Как написать смарт контракт для nft

  • Вам необходимо выбрать Injected Web3 в качестве среды, которая позволит нам внедрить метамаску и выполнить развертывание в сети, выбранной в метамаске. Вы должны увидеть свою учетную запись метамаски и баланс в разделе учетных записей.

  • Когда вы нажмете «Развернуть», вам будет предложено дважды. Сначала развертывается библиотека CardDesign, а затем наш смарт-контракт.

  • Вы получите два уведомления о метамасках после развертывания контрактов. Нажмите на них, и вы будете перенаправлены в обозреватель блоков Ropsten. Вы также можете просмотреть транзакции на вкладке активности в метамаске.

  • Поздравляем, теперь запущен смарт-контракт On-chain NFT — loot royale.

Но как мы с ним взаимодействуем? Позже я подробно объясню, как взаимодействовать с ним из нашего пользовательского интерфейса реагирования. Давайте посмотрим, как взаимодействовать с контрактом из обозревателя блоков.

К вашему сведению, обозреватель блоков также является децентрализованным приложением.

Создание NFT с помощью смарт-контрактов

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

Для смарт-контрактов было разработано несколько стандартов для удобного взаимодействия NFT с приложениями. Например, существует несколько блокчейнов с инструментами для создания NFT, таких как TRON, EOS и Tezos. Без единого стандарта кода для смарт-контрактов и, непосредственно, NFT, NFT, созданные на разных платформах, не смогут торговаться на одном и том же NFT-маркетплейсе

Стандарты смарт-контрактов для создания NFT

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

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

Смарт-контракты, NFT и метавселенная

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

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

Создание смарт-контракта без опыта работы с блокчейном

Само собой разумеется, что существует множество технических деталей, которые входят в смарт-контракты. Чаще всего смарт-контракт развертывается с использованием Solidity и OpenZeppelin или чего-то вроде Minty. В этой статье мы в первую очередь сосредоточимся на инструментах с низким уровнем кода, чтобы избежать необходимости писать код самостоятельно.

Читать еще: Руководство для начинающих по технологии блокчейн

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

Reserve NFTs function

As the creator of the project, you probably want to reserve a few NFTs of the collection for yourself, your team, and for events like giveaways.

Let’s write a function that allows us to mint a certain number of NFTs (in this case, ten) for free. Since anyone calling this function only has to pay gas, we will obviously mark it as onlyOwner so that only the owner of the contract will be able to call it.

 require(
totalMinted.add(10) < MAX_SUPPLY, "Not enough NFTs"
);

We check the total number of NFTs minted so far by calling tokenIds.current(). We then check if there are enough NFTs left in the collection for us to reserve. If yes, we proceed to mint 10 NFTs by calling _mintSingleNFT ten times.

It is in the _mintSingleNFT function that the real magic happens. We will look into this a little later.

Как работает торговая площадка NFT?

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

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