Усе, що вам потрібно знати про створення NFT на Velas
Створення NFT на Velas може дати командам різні переваги. До них належать використання смарт-контрактів, сумісних з Ethereum, насолода блискавичною швидкістю транзакцій, відсутність високих комісій за газ тощо.
Содержание:
Вступ
NFT — це революційна технологія, яка може принести користувачам різну користь. Наприклад, він надає користувачам докази власності на їхні цифрові активи, як ніколи раніше. Крім того, NFT можуть привести до абсолютно нової економіки творців.
З усіма перевагами, які приносять NFT, усі говорять про розширення можливостей своїх проектів за допомогою NFT. Але чи знаєте ви, як розробляти смарт-контракти з підтримкою NFT? Не хвилюйтеся, якщо ні, оскільки ця стаття проведе вас через усі етапи створення смарт-контрактів NFT у Velas Testnet.
Майте на увазі, що цей підручник покаже вам, як створити окремий NFT замість колекції. Отже, цей смарт-контракт дозволить користувачам карбувати будь-які свої фотографії чи відео як NFT.
Чому Велас?
Існує багато доступних протоколів блокчейну. Але розробники все ще стикаються з проблемами при їх використанні. Наприклад, Ethereum бореться з високою комісією за газ і повільною обробкою транзакцій, тоді як інші блокчейни вимагають від розробників використання незнайомих мов, таких як Rust.
з Свічки, більшість цих проблем не існує. Рішення Velas успадковує найкращу ДНК технології Solana та доповнює його додатковими функціями для підтримки сумісності з EVM. Це дає користувачам і розробникам ідеальну платформу, яка гарантує чудову взаємодію з користувачем із швидшим часом транзакцій. Крім того, це спрощує процес розробки завдяки підтримці Solidity.
Передумови
Щоб слідувати, у вас повинен бути Node plus Yarn, менеджер пакетів. Крім того, ви повинні мати базові знання про Solidity. Отже, якщо ви не знайомі з цим, будь ласка, оснастіть себе основами Solidity та Каска спочатку.
Setup
Щоб налаштувати наш проект, виконайте наступну команду в терміналі.
npx hardhat
Ви побачите наступний вихід, якщо у вас не встановлено Hardhat.
тип y і натисніть кнопку вводити, і він перейде до встановлення каски. Однак, якщо у вас уже є Hardhat, він не покаже вам підказку для встановлення Hardhat. Замість цього він поставить кілька запитань про те, як ви хочете налаштувати проект.
Нам потрібен базовий проект Javascript у нашій поточній папці, тому просто натисніть вводити за все.
Потім нам потрібно встановити наші залежності для проекту. Щоб встановити їх, ми використаємо наступну команду.
npm install --save-dev "^2.10.1" "@nomicfoundation/^1.0.1" "@openzeppelin/contracts" "dotenv"
Оскільки ми використовуємо Yarn, нам потрібно встановити бібліотеки, які використовує hardhat-toolbox.
yarn add --dev @nomicfoundation/hardhat-toolbox @nomicfoundation/hardhat-network-helpers @nomicfoundation/hardhat-chai-matchers @nomiclabs/hardhat-ethers @nomiclabs/hardhat-etherscan chai ethers hardhat-gas-reporter solidity-coverage @typechain/hardhat typechain @typechain/ethers-v5 @ethersproject/abi @ethersproject/providers
Якщо ви використовуєте npm версії 7 або новішої версії, ці бібліотеки буде встановлено безпосередньо.
Варто зазначити, що нам потрібно зробити ще один крок, перш ніж писати смарт-контракт. Тобто видалити будь-яку .sol файли, які ви бачите в папці контрактів, і створіть новий файл під назвою ВЕЛАСНФТ.сол. Це папка, де ми будемо писати наш договір.
Як написати смарт-контракт NFT
Конструктор
Для початку ми створимо базовий смарт-контракт, де визначимо версію надійності та створимо порожнє тіло смарт-контракту.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9; contract VELASNFT { }
Нам потрібно імпортувати базовий смарт-контракт і комунальний смарт-контракт. Зокрема, це контракти, які використовуватимуться для створення нашого смарт-контракту NFT. Базовий договір є Зберігання ERC721URIS, реалізація ERC721 із керуванням URI маркерів на основі сховища.
Лічильники — це контракт на корисність, який використовуватиметься для підрахунку кількості викарбуваних NFT.
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
Наш контракт успадкує базовий контракт. Це дозволить користувачам отримати доступ до всіх функцій базового контракту та наших смарт-контрактів.
contract VELASNFT is ERC721URIStorage { }
Тепер ми можемо написати конструктор для нашого контракту. Примітно, що наш конструктор не матиме жодних аргументів, але ви повинні передати назву та символ конструктору ERC721.
constructor() ERC721("VELASNFT", "VN") {}
Наприкінці цього кроку ваш смарт-контракт має виглядати так.
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol"; contract VELASNFT is ERC721URIStorage { constructor() ERC721("VELASNFT", "VN") {} }
Написання функції mint
Для функції монетного двору нам спочатку потрібно налаштувати лічильник. Вставте наступний фрагмент у контракт над конструктором.
using Counters for Counters.Counter; Counters.Counter private _tokenIds;
ми призначаємо всі функції бібліотеки Counters структурі Counter. Потім ми створимо приватну змінну під назвою _tokenIds.
Тепер приступимо до розробки функції. Буде потрібно один аргумент: tokenURI, і це буде URL-адреса файлу json, який зберігає всі метадані. Ми докладніше розглянемо метадані в наступних розділах. Функція mint буде загальнодоступною та повертатиме ідентифікатор карбованого NFT, який матиме тип uint256.
function mint(string memory tokenURI) public returns (uint256) { }
Усередині функції ми спочатку отримаємо поточний підрахунок лічильника.
Щоб карбувати NFT, ми будемо використовувати _м'ята функція, яка приймає адресу та ID як аргументи. Для адреси ми будемо використовувати адресу абонента, а ID буде поточним підрахунком. Після цього ми повинні зберегти tokenURI.
Для цього ми повинні _setTokenURI, який збереже URI з відповідним ідентифікатором як ключ. Зрештою, ми збільшимо лічильник, а потім ідентифікатор створеного NFT.
function mint(string memory tokenURI) public returns (uint256) { uint256 newItemId = _tokenIds.current(); _mint(minter, newItemId); _setTokenURI(newItemId, tokenURI); _tokenIds.increment(); return newItemId; }
Щиро вітаю! Тепер ваш смарт-контракт може карбувати NFT! Ось огляд усього контракту.
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.9; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
import "@openzeppelin/contracts/utils/Counters.sol"; contract VELASNFT is ERC721URIStorage { using Counters for Counters.Counter; Counters.Counter private _tokenIds; constructor() ERC721("VELASNFT", "VN") {} function mint(string memory tokenURI) public returns (uint256) { uint256 newItemId = _tokenIds.current(); _mint(msg.sender, newItemId); _setTokenURI(newItemId, tokenURI); _tokenIds.increment(); return newItemId; }
}
Як розгорнути договір
Ми створили смарт-контракт NFT. Ось і настає захоплюючий крок, розгортання. Але перед розгортанням контракту нам потрібно скомпілювати його та написати сценарій, який розгортає контракт. Щоб скомпілювати контракт, виконайте наступну команду в терміналі.
npx hardhat compile
Ви побачите наступний результат.
Тепер давайте перейдемо до наступного етапу, написання сценарію для розгортання цього смарт-контракту. Для цього ми перейдемо до папки scripts і відкриємо файл deploy.js. Потім видаліть весь вміст і вставте наступний фрагмент у цей файл.
const hre = require("hardhat"); async function main () { // We get the contract to deploy const VELASNFT = await hre.ethers.getContractFactory('VELASNFT'); console.log("Deploying NFT contract..."); const velasnft = await VELASNFT.deploy(); await velasnft.deployed(); console.log('NFT contract deployed to:', velasnft.address); } main() .then(() => process.exit(0)) .catch(error => { console.error(error); process.exit(1);
});
Перед розгортанням контракту ми маємо додати деталі про тестову мережу Velas у файл hardhat.config.js. Відкрийте файл і додайте конфігурацію тестової мережі Velas.
require("@nomicfoundation/hardhat-toolbox");
const dotenv = require('dotenv');
dotenv.config(); /** @type import('hardhat/config').HardhatUserConfig */
module.exports = { solidity: "0.8.9", networks: { velastestnet: { url: `https://evmexplorer.testnet.velas.com/rpc`, accounts: [process.env.PRIVATE_KEY] } }
};
Варто також зазначити, що перед розгортанням контракту ви повинні додати приватні ключі для свого гаманця у файл .env і мати в гаманці певний токен testnet VLX. Ви можете отримати токени testnet з тут.
Тепер, коли ми все налаштували, виконайте наступну команду в терміналі.
npx hardhat run scripts/deploy.js --network velastestnet
Якщо команда виконана успішно, ви побачите результат, схожий на показаний нижче у вашому терміналі.
Монтуйте NFT
Коли смарт-контракт розгортається, ми можемо карбувати NFT з терміналу. Для цього спочатку запустіть консоль hardhat за допомогою такої команди.
npx hardhat console --network velastestnet
Результати показані нижче.
Потім ми створимо змінну контракту під назвою «velasnft», getContractAt метод повертає об’єкт контракту.
const velasnft = await ethers.getContractAt("VELASNFT", '0x587133187DEC8E1D5a964254B42FF3627a649313')
Будь ласка, зверніться до результату, показаного нижче.
Щоб карбувати NFT, ми будемо використовувати метод карбування velasnft змінна. Ми також повинні передати посилання на метадані методу. Ви можете прочитати більше про стандарти метаданих ТУТ.
await velasnft.mint("https://metadatastorage.com/velasnft/0")
Перегляньте вихідні дані нижче.
Тепер настав час перевірити власника NFT. Оскільки ми карбували за допомогою ownerOf тепер давайте передамо індекс NFT, який ми карбували.
await velasnft.ownerOf(0)
Ось як ми отримуємо результат власника NFT.
Висновок
У статті ми дізналися, як написати смарт-контракт NFT, який дозволяє користувачам карбувати NFT. Крім того, нам вдалося розгорнути його в тестовій мережі Velas. Тепер ви можете розробляти нові програми на базі NFT і досліджувати динамічну екосистему Velas.
Ви також можете перевірити, як створити DAO на Velas за цим посиланням.
Velas хоче надати можливості тим, хто прагне прискорити розвиток Web3. Тому Velas запустив грантову програму на 100 мільйонів доларів для виконання цієї місії. Тим часом ця програма також спрямована на підтримку розширення екосистеми Velas.
З грантовою програмою Velas, розробники можуть ефективніше втілювати свої захоплюючі ідеї в життя. Кожен проект має можливість отримати фінансування до 100,000 XNUMX доларів США. Крім того, відібрані команди матимуть доступ до інших ресурсів для сприяння розвитку своїх проектів, включаючи маркетинг, технічних консультантів тощо.
Програма грантів охоплює широкий спектр категорій, включаючи, але не обмежуючись, DeFi, NFT, ігри на основі блокчейну тощо.
Якщо ви зацікавлені в прискоренні масового впровадження криптовалют і блокчейну, подайте заявку зараз, щоб приєднатися до екосистеми Velas, що постійно розвивається.
Дізнайтеся більше про Velas:
відмова — Це спонсорська стаття. DappRadar не підтримує будь-який вміст або продукти на цій сторінці. DappRadar прагне надати точну інформацію, але читачі завжди повинні самостійно досліджувати, перш ніж діяти. Статті DappRadar не можна вважати інвестиційними порадами.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://dappradar.com/blog/how-to-create-nft-on-velas
- $ 100 мільйонів
- 000
- 1
- 10
- 7
- 9
- a
- МЕНЮ
- вище
- прискорення
- доступ
- Рахунки
- точний
- дію
- доповнення
- Додатковий
- адреса
- Прийняття
- рада
- після
- Цілі
- ВСІ
- дозволяє
- вже
- завжди
- та
- застосування
- аргумент
- аргументація
- стаття
- статті
- Активи
- доступний
- чекати
- база
- основний
- Основи
- оскільки
- перед тим
- буття
- нижче
- користь
- Переваги
- КРАЩЕ
- blockchain
- блокчейна
- блокчейни
- тіло
- приносити
- будувати
- побудований
- званий
- гість
- Може отримати
- категорії
- перевірка
- збір
- сумісність
- сумісний
- Турбота
- висновок
- конфігурація
- вважається
- Консоль
- Консультанти
- зміст
- контракт
- контрактів
- Відповідний
- Counter
- лічильники
- Обкладинки
- створювати
- створений
- створення
- творець
- Економіка творця
- cryptocurrencies
- Поточний
- DAO
- dappradar
- дані
- Defi
- розгортання
- розгорнути
- розгортання
- розгортання
- розгортає
- деталі
- розвивати
- розробників
- розробка
- цифровий
- Цифрові активи
- безпосередньо
- ДНК
- Не знаю
- динамічний
- кожен
- економіка
- екосистема
- продуктивно
- уповноважувати
- уповноважують
- включіть
- схвалювати
- повністю
- ERC721
- помилка
- Ефіріума
- все
- все
- приклад
- відмінно
- захоплюючий
- виконувати
- розширення
- досвід
- дослідити
- експорт
- Face
- знайомий
- ШВИДКО
- швидше
- риси
- Інформація про оплату
- філе
- Файли
- Перший
- стежити
- після
- Сприяти
- Безкоштовна
- від
- функція
- Функції
- фінансування
- Games
- ГАЗ
- газові збори
- отримати
- Давати
- дає
- Go
- надавати
- гранти
- гарантії
- тут
- Високий
- Як
- How To
- Однак
- HTTPS
- ідеальний
- ідеї
- реалізація
- імпорт
- in
- включати
- У тому числі
- індекс
- інформація
- встановлювати
- замість
- зацікавлений
- Вступ
- інвестиції
- питання
- IT
- JavaScript
- приєднатися
- json
- ключ
- ключі
- Знати
- знання
- мови
- запущений
- вести
- вчений
- використання
- libraries
- бібліотека
- життя
- обмеженою
- LINK
- подивитися
- виглядає як
- головний
- вдалося
- управління
- менеджер
- багато
- Маркетинг
- Маса
- Масове усиновлення
- макс-ширина
- Між тим
- середа
- пам'ять
- метадані
- метод
- мільйона
- м'ята
- карбувати
- Місія
- MIT
- Модулі
- більше
- найбільш
- рухатися
- ім'я
- Необхідність
- мереж
- Нові
- наступний
- НФТ
- Смарт-контракти NFT
- NFT
- вузол
- особливо
- номер
- об'єкт
- ONE
- відкрити
- OpenSea
- Можливість
- Інше
- огляд
- власний
- власник
- власність
- пакет
- надбавки
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- будь ласка
- плюс
- передумови
- Presentation
- приватний
- Приватні ключі
- процес
- обробка
- Product
- програма
- проект
- проектів
- доказ
- захищений
- протоколи
- забезпечувати
- громадськість
- питань
- діапазон
- Читати
- читачі
- отримати
- видаляти
- вимагати
- дослідження
- ресурси
- результат
- повертати
- Умови повернення
- революційний
- прогін
- Іржа
- зберегти
- scripts
- розділам
- обраний
- комплект
- установка
- Повинен
- Показувати
- показаний
- аналогічний
- з
- сповільнювати
- розумний
- розумний контракт
- Спритні контракти
- So
- SOL
- солідність
- рішення
- деякі
- швидкість
- Рекламні
- Стажування
- стандартів
- старт
- Крок
- заходи
- Як і раніше
- магазинів
- прагнути
- сутички
- Успішно
- підтримка
- символ
- Приймати
- приймає
- взяття
- говорити
- команди
- технічний
- Технологія
- термінал
- тест-мережа
- Команда
- Основи
- їх
- Там.
- отже
- речі
- через
- час
- до
- знак
- Жетони
- угода
- швидкість транзакції
- правда
- підручник
- незнайомий
- URL
- використання
- користувач
- User Experience
- користувачі
- утиліта
- різний
- Свічки
- версія
- через
- Відео
- видимість
- W3
- Wallet
- способи
- Web3
- webp
- який
- в той час як
- ВООЗ
- широкий
- Широкий діапазон
- волі
- вартість
- запис
- лист
- Ти
- вашу
- себе
- зефірнет