В Части 1 [LINK] мы познакомились с основными концепциями NFT и с тем, как создать свой собственный контракт, теперь пришло время взаимодействовать с вашим новым контрактом.
Взаимодействие с вашим контрактом 💻
После развертывания контракта вам понадобится способ взаимодействия с ним (не забудьте просмотреть видео [это], если вам нужна помощь в развертывании).
Для взаимодействия вам необходимо подключить свой сайт к блокчейну, это не так страшно, как кажется. Для подключения вашего сайта вам необходимо использовать библиотеку под названием [WEB3JS].
Как вы теперь должны знать, как только вы успешно скомпилируете и перенесете свой контракт с [Truffle], у вас будет файл ABI в формате JSON для вашего контракта.
Это файл abi.json, который вы будете использовать для подключения к своему контракту. Файл ABI содержит всю информацию о вашем контракте. Одна из важных частей информации, которую он имеет, - это его адрес в цепочке блоков.
Без знания адреса нет возможности взаимодействовать.
Web3 JS
Вот готовый пример подключения к вашему контракту с помощью [Web3] с веб-сайта на основе React. (Еще раз, если вы действительно чувствуете себя потерянным, посмотрите видео [это]).
Мне нравится использовать [Web3Modal] вместе с Web3 JS, это позволяет нам легко подключать кошелек пользователей к нашему сайту.
- Ниже приведен фрагмент проекта React с использованием хуков.
- Я прокомментировал код там, где это важно
import React, { useEffect} from "react"; import Web3 from "web3"; import Web3Modal from "web3modal"; import Contract from "../truffle/abis/NFT.json"; const loadWeb3 = async()=>{ //THIS ALLOWS YOU TALK TO BLOCKCHAIN const web3Modal = new Web3Modal({ network: "mainnet", // optional cacheProvider: true, // optional providerOptions: {}, // required }); const provider = await web3Modal.connect(); const web3 = new Web3(provider); const netId = await web3.eth.net.getId(); //THIS WILL LOAD YOUR CONTRACT FROM BLOCKCHAIN const contract = new web3.eth.Contract( Contract.abi, Contract.networks[netId].address ); // FROM HERE YOU CAN NOW QUERY YOUR CONTRACT FOR DATA // HERE ARE A FEW EXAMPLES // THE TOKEN ID YOU WANT TO QUERY const tokenID = 1; // GET THE AMOUNT OF NFTs MINTED const totalSupply = await contract.methods.totalSupply().call(); // GET THE TOKEN URI // THE URI IS THE LINK TO WHERE YOUR JSON DATA LIVES const uri = await contract.methods.tokenURI(tokenID).call(); // GET THE OWNER OF A SPECIFIC TOKEN const owner = await contract.methods.ownerOf(tokenID).call(); // CHECK IF A SPECIFIC TOKEN IS SOLD const sold = await contract.methods.sold(tokenID).call(); // GET PRICE OF A SPECIFIC TOKEN const price = await contract.methods.price(tokenID).call(); } const ExampleComponent = ()=>{ useEffect(()=>{ loadWeb3(); },[]) return (<p>My component</p>) } export default ExampleComponent
IPFS?
«IPFS - это одноранговая (p2p) сеть хранения данных. Контент доступен через одноранговые узлы, расположенные в любой точке мира, которые могут передавать информацию, хранить ее или делать то и другое. IPFS знает, как найти то, что вы просите, используя адрес содержания, а не местонахождение ».
Хорошо, теперь у вас есть код для взаимодействия с вашим контрактом 👆, но на данный момент у вас нет отчеканенных токенов или каких-либо предметов, готовых к чеканке.
Мне нравится использовать [ipfs-http-client], когда я хочу добавить элементы в IPFS, это действительно просто в использовании.
После успешного добавления элемента в IPFS он вернет CID, CID - это ваш уникальный хэш, который позволяет вам найти ваше изображение в IPFS. При желании вы можете закрепить свои CID, это предотвратит сбор мусора и удаление ваших загрузок из IPFS.
Лучшая практика для NFT:
- добавить свое изображение в IPFS
- создать базовый файл JSON, содержащий не менее 3 ключей (имя, описание, изображение)
- Ключ изображения будет полным URL-адресом элемента, который вы добавили в IPFS.
- добавьте свой файл метаданных в IPFS
- Закрепите идентификаторы CID для изображений и загружаемых метаданных
- Создайте путь к файлу метаданных (распространенное заблуждение состоит в том, что вы указываете путь к файлу изображения)
Что такое чеканка?
«Минтинг в основном относится к процессу превращения цифрового искусства в часть блокчейна Ethereum как публичного реестра. … NFT обеспечивают репрезентативность ваших цифровых произведений искусства. В то же время это также гарантирует, что произведения искусства можно будет гибко продавать или покупать на рынке ».
Вы должны чеканить свои NFT, чтобы иметь возможность продать их / передать право собственности.
Подробнее о чеканке читайте в [ЗДЕСЬ].
Файл метаданных 📝
Как упоминалось выше, чеканка представляет собой трехэтапный процесс.
1- Вы загружаете изображение в IPFS
2- Вы создаете и загружаете файл JSON метаданных в IPFS.
3- Вы закрепляете CID, который возвращается для каждого из этих
Я заявил, что ваш файл метаданных будет содержать 3 ключа, но на самом деле их может быть сколько угодно, однако у вас должны быть 3 требуемых ключа.
Вот действительный пример файла метаданных, который я создал для контракта NFT в блокчейне Polygon Mainnet.
{ "name":"Stupid Schaefer", "description":"number 1 of the series 1 low collection", "image":"https://ipfs.infura.io/ipfs/QmPAMRJhbEKSjf6dwM65wqWmw5Jtmwi4jCS5Y78TUZ7YPW", "uid":"0-4-5-29-25-29-59-59-64-86-194-48", "timestamp":1629664820425 }
Как вы можете видеть выше, у меня есть имя, описание и изображение, но у меня также есть идентификатор пользователя и временная метка.
Важно понимать функцию трех обязательных ключевых слов, поэтому вот разбивка.
1- Имя: это имя, которое будет отображаться для вашего уникального токена в таких местах, как [Opensea]
2- Описание: это описание, которое будет отображаться для вашего уникального токена в таких местах, как [Opensea]
3- Изображение: изображение позволит отображать изображение вашего токена в кошельке пользователя и в таких местах, как [Opensea]
Любые дополнительные добавленные ключи можно использовать для ваших собственных целей, количество ключей, которые вы можете добавить, не ограничено.
Крипто-вурдалак
Для исследования этой темы я создал свой собственный веб-сайт, основанный на блокчейне, в многоугольной сети, который позволяет пользователям покупать NFT, проверять их и, если вам нравится, покупать один из моих NFT. Https://cryptoghoulz.com.
Если у вас есть какие-либо вопросы относительно Crypto Ghoulz, свяжитесь с нами через твиттер.
Код проекта
Если вы хотите начать с этого, вы можете найти репозиторий шаблонов [ЗДЕСЬ].
Это хороший проект, который поможет вам по-настоящему почувствовать, как все работает.
Что дальше?
В части 3 мы будем добывать наши NFT, покупать их и проверять право собственности. Нажмите [ЗДЕСЬ], чтобы просмотреть часть 3.
Присоединяйтесь к Coinmonks Telegram Channel и узнайте о криптовалютной торговле и инвестировании.
Также прочтите
- YouHodler vs CoinLoan vs Hodlnaut | Cryptohopper vs HaasBot
- Binance vs Kraken | Торговый бот для усреднения долларовой стоимости
- Как купить биткойн в Индии? | Обзор WazirX | Обзор BitMEX
- Биткойн Taproot | Обзор Bitso | Топ-6 биткойн-кредитных карт
- Близнецы против Coinbase | Coinbase vs Kraken | CoinJar против CoinSpot
- Индийская криптобиржа | Сберегательный счет Биткойн | Paxful Review
- Токен с кредитным плечом | Лучшая криптобиржа | Обзор AscendEX
- Обзор Godex.io | Invity Review | Обзор BitForex | Обзор HitBTC
- Комиссия Binance | Обзор Botcrypto | Альтернативы Crypto.com
- Что такое торговые сигналы? | Bitstamp против Coinbase
- Обзор ProfitFarmers | Как пользоваться торговым ботом Cornix
- Обзор биржи MXC | Пионекс против Binance | Арбитражный бот Pionex
- Мой опыт работы с криптовалютой | Обзор Coinbase
- Обзор CoinFLEX | Обзор биржи AEX | Обзор UPbit
- Маржинальная торговля AscendEx | Bitfinex Staking | Обзор bitFlyer
- Обзор Воробьевой биржи | Обзор нашей биржи