У цій статті ми розглянемо, як реалізувати платформу для децентралізованої торгівлі NFT на основі смарт-контрактів. На відміну від токенів ERC-20, які торгуються через механізм автоматизованого маркет-мейкера, торгівля NFT зазвичай використовує модель订单簿. Ми реалізуємо функціонал децентралізованої торгівлі NFT шляхом написання смарт-контрактів та простих фронтенд-сторінок.
NFT(Нефункціональні токени)дотримуються протоколу ERC-721, кожен токен є унікальним. Через нефункціональність NFT, їх не можна оцінити за допомогою кривої ціни, як це робиться з функціональними токенами. В даний час основним способом торгівлі NFT є використання книги замовлень, що нагадує викладення товарів на полицях супермаркету.
Торгові операції на ордерній книзі в основному мають два режими:
Ціна: продавець встановлює ціну, покупець може купити, якщо вважає її прийнятною.
Запит на покупку: покупець відправляє запит на покупку, продавець вважає, що ціна прийнятна, може продати
Ця стаття зосередиться на реалізації моделі цінових замовлень.
Основні функції платформи NFT
Базова платформа для торгівлі NFT повинна мати такі функції:
Виставлення товарів: дозволяє продавцям встановлювати ціни для розміщення NFT
Купівля товару: дозволяє покупцям купувати NFT за встановленою ціною
Стягнення комісії: відповідно до ціни угоди стягується комісія за торгівлю у відсотковому співвідношенні.
Реалізація смарт-контрактів
Нашому смарт-контракту потрібно реалізувати кілька ключових методів:
1. Виставлення NFT
Продавець викликає цей метод, щоб виставити NFT на продаж:
Солідність
функція listNFT(адреса nftAddress, uint256 tokenId, uint256 price) публічна {
// Перевірка прав власності на NFT
// Додати запис про виставлення на продаж
// Тригер події запуску
}
2. Купівля NFT
Покупець викликає цей метод для придбання вже виставленого на платформу NFT:
солідність
функція purchaseNFT(адреса nftAddress, uint256 tokenId) публічна платіжна {
// Отримати інформацію про виставлення NFT на продаж
// Обчислити та вирахувати комісію
// Перемістити NFT покупцеві
// Переклад для продавця
// Виклик події покупки
}
3. Скасувати лістинг
Продавець може скасувати вже виставлений на продаж NFT:
солідність
функція cancelListing(адреса nftAddress, uint256 tokenId) публічно {
// Перевірка прав виклику
// Позначити статус виставлення на продаж як недійсний
// Виклик події скасування
}
4. Витягти комісію
Власники платформи можуть витягувати накоплені комісії:
Солідність
функція withdrawFees() публічна тількиВласник {
// Перенести комісію з контракту на вказану адресу
}
Розробка фронтенду
Передня частина сторінки в основному містить такі кілька частин:
Підключення гаманця: використання Ant Design Web3 для реалізації функції підключення гаманця
Сторінка Mint: використовується для карбування тестових NFT
Сторінка Портфоліо: демонструє NFT, які має користувач, підтримує операції з виставлення та зняття з продажу.
Сторінка покупки: відображає всі доступні для продажу NFT, підтримує операції покупки
Ми використовуємо Next.js для розробки фронтенду та розгортаємо на платформі Vercel.
За допомогою вищезазначених кроків ми реалізували платформу для децентралізованої торгівлі NFT з базовими функціями. Цей простий демонстраційний проект показує основну логіку торгівлі NFT, закладаючи основу для подальшої розробки більш складної системи торгівлі NFT.
Слід зазначити, що цей матеріал призначений лише для навчальних цілей, у реальних продуктивних середовищах платформи NFT також потрібно враховувати більше факторів безпеки, масштабованості тощо.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 лайків
Нагородити
8
4
Поділіться
Прокоментувати
0/400
faded_wojak.eth
· 07-11 21:31
Керування літаком ing цей урок допоможе мені До місяця
Переглянути оригіналвідповісти на0
TeaTimeTrader
· 07-09 09:42
Пограємо спочатку, а потім поговоримо. Може, навіть втратимо всі гроші.
Побудова NFT платформи децентралізованої торгівлі з нуля: детальний опис смартконтрактів та фронтенд реалізації
Побудова NFT децентралізованої платформи з нуля
У цій статті ми розглянемо, як реалізувати платформу для децентралізованої торгівлі NFT на основі смарт-контрактів. На відміну від токенів ERC-20, які торгуються через механізм автоматизованого маркет-мейкера, торгівля NFT зазвичай використовує модель订单簿. Ми реалізуємо функціонал децентралізованої торгівлі NFT шляхом написання смарт-контрактів та простих фронтенд-сторінок.
! Стартова серія Web3: впровадження NFT DEX з нуля
Особливості торгівлі NFT
NFT(Нефункціональні токени)дотримуються протоколу ERC-721, кожен токен є унікальним. Через нефункціональність NFT, їх не можна оцінити за допомогою кривої ціни, як це робиться з функціональними токенами. В даний час основним способом торгівлі NFT є використання книги замовлень, що нагадує викладення товарів на полицях супермаркету.
Торгові операції на ордерній книзі в основному мають два режими:
Ця стаття зосередиться на реалізації моделі цінових замовлень.
Основні функції платформи NFT
Базова платформа для торгівлі NFT повинна мати такі функції:
Реалізація смарт-контрактів
Нашому смарт-контракту потрібно реалізувати кілька ключових методів:
1. Виставлення NFT
Продавець викликає цей метод, щоб виставити NFT на продаж:
Солідність функція listNFT(адреса nftAddress, uint256 tokenId, uint256 price) публічна { // Перевірка прав власності на NFT // Додати запис про виставлення на продаж
// Тригер події запуску }
2. Купівля NFT
Покупець викликає цей метод для придбання вже виставленого на платформу NFT:
солідність функція purchaseNFT(адреса nftAddress, uint256 tokenId) публічна платіжна { // Отримати інформацію про виставлення NFT на продаж // Обчислити та вирахувати комісію // Перемістити NFT покупцеві // Переклад для продавця // Виклик події покупки
}
3. Скасувати лістинг
Продавець може скасувати вже виставлений на продаж NFT:
солідність функція cancelListing(адреса nftAddress, uint256 tokenId) публічно { // Перевірка прав виклику // Позначити статус виставлення на продаж як недійсний // Виклик події скасування }
4. Витягти комісію
Власники платформи можуть витягувати накоплені комісії:
Солідність функція withdrawFees() публічна тількиВласник { // Перенести комісію з контракту на вказану адресу }
Розробка фронтенду
Передня частина сторінки в основному містить такі кілька частин:
Підключення гаманця: використання Ant Design Web3 для реалізації функції підключення гаманця
Сторінка Mint: використовується для карбування тестових NFT
Сторінка Портфоліо: демонструє NFT, які має користувач, підтримує операції з виставлення та зняття з продажу.
Сторінка покупки: відображає всі доступні для продажу NFT, підтримує операції покупки
Ми використовуємо Next.js для розробки фронтенду та розгортаємо на платформі Vercel.
За допомогою вищезазначених кроків ми реалізували платформу для децентралізованої торгівлі NFT з базовими функціями. Цей простий демонстраційний проект показує основну логіку торгівлі NFT, закладаючи основу для подальшої розробки більш складної системи торгівлі NFT.
Слід зазначити, що цей матеріал призначений лише для навчальних цілей, у реальних продуктивних середовищах платформи NFT також потрібно враховувати більше факторів безпеки, масштабованості тощо.
! Стартова серія Web3: впровадження NFT DEX з нуля
! Стартова серія Web3: впровадження NFT DEX з нуля
! Стартова серія Web3: впровадження NFT DEX з нуля
! Серія Web3 для новачків: впровадження NFT DEX з нуля