В Части 2 [ССЫЛКА] мы взаимодействовали с нашим контрактом и готовили наш контент для чеканки. Здесь мы собираемся завершить процесс и чеканить NFT.

Что такое плата за газ?

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

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

Цена для меня, чтобы отчеканить 1000 NFT в основной сети Ethereum, должна была стоить мне эквивалент 3000 фунтов стерлингов, я сразу понял, что это выходит за рамки моего бюджета для простого домашнего проекта, поэтому я посмотрел дальше. .

Теперь это выходит за рамки этой статьи, но я решил создать свои NFT в основной сети Polygon (см. [ЗДЕСЬ], чтобы узнать, что это такое). Цена, в которую мне обошлась чеканка всех NFT на Polygon, составила 0,30 фунта стерлингов, буквально 30 пенсов! 🚀

Так что будьте осторожны при выполнении такой задачи и всегда сначала экспериментируйте с [TestNets].

Чеканка вашего контента

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

Вам нужно будет создать сценарий, а затем запустить его с помощью [TRUFFLE CLI], вот команда, которую я использую для запуска моего сценария минтинга из командной строки:

truffle exec src/utils/mint.js --network polygon

Флаг — сетевой полигон указывает на детали сети для полигональной сети, которые я добавил в свой truffle-config.js.

это будет выглядеть примерно так:

...
polygon: {
 provider: () =>
 new HDWalletProvider(
 privateKeys.split(","),
 `https://polygon-mainnet.infura.io/v3/${process.env.INFURA_PROJECT_ID}`
),
 network_id: 137,
 confirmations: 2,
 timeoutBlocks: 200,
 skipDryRun: true,
 chainId: 137,
},
...

Вам нужно будет зарегистрироваться в [INFURA] или подобном, чтобы получить Идентификатор проекта для узла ethereum в нужной сети.

Вот действительный пример скрипта монетного двора, который вы можете вызвать из приведенной выше команды:

//THIS IS THE PATH TO YOUR ABI FILE
const NFT = artifacts.require("NFT");
module.exports = async function (callback) {
   // THIS IS CHECKING THAT THE SCRIPT CAN FIND YOUR CONTRACT
   const nft = await NFT.deployed();

   //THIS WILL MINT AN NFT
   try {
       await nft.mint(PATH_TO_UR_METADATA_FILE_ON_IPFS);
    } catch (e) {
       console.log("failed", e);
    }
}

Вау!, как это было просто 🦄.

Покупка NFT

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

Если они находятся в сети, в которой не развернут ваш контракт, они получат сообщение об ошибке.

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

const buyNFT = async (account, contract, showModal) => {
  //THE TOKEN ID TO PURCHASE
  const tokenID = 1;
  const accountAddress = THE_USERS_WALLET_ADDRESS;
  // ONE THING TO NOTE THE PRICE WILL BE IN WEI 
  // -> 18 DECIMAL PLACES
  // THE BELOW WORKS OUT AT 0.021 Eth
  const price = 21000000000000000;
  //THE ACTUAL CALL TO THE CONTRACT FOR PURCHASE
  await contract.methods
  .buy(id)
  .send({ from: accountAddress, value: price })
  .on("receipt", async () => {
     console.log(`You've received the NFT with ID: ${id}`);
  }
  .on("error", (error) => {
     console.log(`error in purchase- ${error}`);
  }
}

Подтверждение владения NFT

Отлично, мы на последнем рубеже.

Как вы можете подтвердить право собственности на NFT? Ну, мы на самом деле уже прошли через это.

Взгляните на фрагмент кода, которым я поделился в [PART2]. Функция, на которую следует обратить внимание:

const owner = await contract.methods.ownerOf(tokenID).call();

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

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

Крипто Гулз

Для исследования этой темы я создал свой собственный веб-сайт на основе блокчейна в сети полигонов, который позволяет пользователям покупать NFT, проверять его и, если вы чувствуете себя остро, купить один из моих NFT. https://cryptoghulz.com.

Если у вас есть какие-либо вопросы, связанные с Crypto Ghoulz, свяжитесь с нами через Twitter.

Код проекта

Если вы хотите начать с этого, вы можете найти репозиторий шаблонов [ЗДЕСЬ].

Это хороший проект, который может помочь вам получить реальное представление о том, как все работает.

Резюме

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

Присоединяйтесь к Каналу Coinmonks Telegram и узнайте о криптотрейдинге и инвестировании.

Также прочтите