📢 Gate廣場 #MBG任务挑战# 發帖贏大獎活動火熱開啓!
想要瓜分1,000枚MBG?現在就來參與,展示你的洞察與實操,成爲MBG推廣達人!
💰️ 本期將評選出20位優質發帖用戶,每人可輕鬆獲得50枚MBG!
如何參與:
1️⃣ 調研MBG項目
對MBG的基本面、社區治理、發展目標、代幣經濟模型等方面進行研究,分享你對項目的深度研究。
2️⃣ 參與並分享真實體驗
參與MBG相關活動(包括CandyDrop、Launchpool或現貨交易),並曬出你的參與截圖、收益圖或實用教程。可以是收益展示、簡明易懂的新手攻略、小竅門,也可以是現貨行情點位分析,內容詳實優先。
3️⃣ 鼓勵帶新互動
如果你的帖子吸引到他人參與活動,或者有好友評論“已參與/已交易”,將大幅提升你的獲獎概率!
MBG熱門活動(帖文需附下列活動連結):
Gate第287期Launchpool:MBG — 質押ETH、MBG即可免費瓜分112,500 MBG,每小時領取獎勵!參與攻略見公告:https://www.gate.com/announcements/article/46230
Gate CandyDrop第55期:CandyDrop x MBG — 通過首次交易、交易MBG、邀請好友註冊交易即可分187,500 MBG!參與攻略見公告:https://www.gate.com/announcements
構建NFT去中心化交易平台:從智能合約到前端界面
從零構建一個NFT去中心化交易平台
對於遵循ERC-721協議的NFT來說,如何實現去中心化交易呢?目前主流的NFT交易方式是採用訂單簿模式,類似於將商品陳列在貨架上,買家覺得價格合適就可以購買。本文將通過編寫智能合約和簡單的前端頁面,實現一個基礎的NFT去中心化交易平台。
NFT交易平台的基本功能
一個基礎的NFT交易平台應該具備以下功能:
上架NFT
上架NFT的流程如下:
購買NFT
購買NFT的流程如下:
實現交易平台
1. 創建測試用NFT
可以使用Remix快速部署一個ERC-721協議的NFT合約用於測試。
2. 編寫交易合約
交易合約需要實現以下主要方法:
2.1 上架NFT
solidity function listNFT(address nftAddress, uint256 tokenId, uint256 price) public { // 驗證NFT所有權 // 記錄上架信息
// 觸發上架事件 }
2.2 購買NFT
solidity function purchaseNFT(address nftAddress, uint256 tokenId) public payable { // 獲取NFT上架信息 // 計算並扣除手續費 // 轉移NFT給買家 // 觸發購買事件
}
2.3 取消上架
solidity function cancelListing(address nftAddress, uint256 tokenId) public { // 驗證操作權限 // 設置上架狀態爲無效 // 觸發取消事件 }
2.4 提取手續費
solidity function withdrawFees() public onlyOwner { // 轉移合約中的手續費 }
3. 開發前端界面
使用以下工具開發前端:
前端包含以下主要頁面:
3.1 連接錢包
使用Ant Design Web3的連接組件實現錢包連接功能。
3.2 Mint頁面
調用NFT合約的mint方法創建測試用NFT。
3.3 Portfolio頁面
3.4 Buy頁面
至此,一個基礎的NFT去中心化交易平台就完成了。可以將其部署到Vercel進行測試使用。