🎉 Gate xStocks 交易開啓啦,現貨、合約、Alpha齊上線!
📝 在Gate廣場發帖,曬出你的交易體驗或精彩截圖,瓜分$1,000大獎池!
🎁 廣場優質創作者5名,每人獨享$100合約體驗券!
🎉 帖文同步分享到X(推特),瀏覽量前十再得$50獎勵!
參與方式:
1️⃣ 關注 @Gate廣場_Official
2️⃣ 帶 #Gate xStocks 交易体验# ,原創發帖(不少於20字,僅用活動標籤)
3️⃣ 若分享到推特,請將連結提交表單:https://www.gate.com/questionnaire/6854
注:表單可多次提交,發布更多帖文可提升獲獎機會!
📅 7月3日16:00—7月9日24:00(UTC+8)
詳情:https://www.gate.com/announcements/article/45926
每一條體驗,都有機會贏取大獎!快在Gate廣場show出你的操作吧!
零基礎搭建NFT去中心化交易平台全攻略
從零實現一個NFT去中心化交易平台
對於ERC-721協議的NFT來說,如何實現去中心化交易呢?目前主流的NFT交易所多採用掛單方式進行交易,類似於將商品陳列在超市貨架上,買家覺得價格合適就可以購買。
本文將通過編寫智能合約和簡單前端頁面,實現NFT的去中心化交易。需要注意的是,本文內容僅供學習參考,不適合直接用於生產環境。
NFT(Non-Fungible Token)簡介
NFT即非同質化代幣,遵循ERC-721協議,每個Token都是獨一無二的。NFT在錢包中通常會展示不同的圖片,並且每組NFT都有唯一的ID用於區分。
由於NFT的特性,無法像ERC-20代幣那樣通過價格曲線設定價格。因此,目前比較常見的交易方式是採用訂單簿的形式。
訂單簿交易模式
訂單簿模式下,商品價格由人爲設定,不同於某些DEX通過價格曲線計算價格的方式。訂單簿一般分爲兩種交易模式:
定價單:賣家設定出售價格,買家覺得合適即可購買。
求購單:買家發出求購訂單,賣家覺得價格合適即可出售。
通常求購單的價格會低於定價單。本文主要介紹定價單交易方式。
NFT去中心化交易平台的基本功能
一個基礎的NFT去中心化交易平台應該包含以下功能:
上架商品流程
合約中需要維護用戶上架商品價格的映射表。這部分數據也可以存儲在中心化服務中以減輕合約負擔,但本文將其維護在合約內。
購買商品流程
實現NFT去中心化交易平台
本節將從零開始實現一個NFT去中心化交易平台。
1. 創建NFT合約
爲測試需要,我們可以使用Remix快速部署一個ERC-721協議的NFT合約。當然也可以直接使用已準備好的NFT合約。
2. 編寫交易平台合約
交易平台合約應包含以下主要方法:
2.1 賣家上架NFT
上架流程:
上架方法需要:
2.2 買家購買NFT
購買流程:
2.3 取消上架
將listings中對應NFT的isActive字段設爲false即可。
2.4 提取手續費
將合約中累積的手續費提取到指定地址。
3. 開發交易平台前端
使用的主要工具:
前端應包含Mint、Buy和Portfolio三個頁面。
3.1 連接錢包
使用Ant Design Web3的連接組件實現錢包連接功能。
3.2 Mint頁面
用於鑄造測試用NFT,調用wagmi的useWriteContract方法與合約交互。
3.3 Portfolio頁面
管理用戶NFT,實現上架和下架功能。使用opensea API獲取用戶NFT列表,調用合約判斷NFT上架狀態。
3.4 Buy頁面
展示所有上架NFT,實現購買功能。調用合約的purchaseNFT方法完成交易。
完成以上步驟後,一個基礎的NFT去中心化交易平台就實現了。可將其部署到Vercel等平台進行訪問使用。