NFT交易合约核心功能的实现思路

通常我们买到数字藏品,除了收藏,还是希望能通过交易进行变现。

一个去中心化的交易平台,仅使用智能合约就可以实现其核心功能。

上架NFT、更新和下架NFT、购买NFT、获取所有上架的NFT信息,以及获取卖家当前状态。

上架:

上架就是把手中的NFT托管给智能合约,并表名价格。因此需要以下信息。

哪一款NFT,它的tokenID是什么,准备卖几个(为1155合约标准提供,721一般就是1个),准备卖多少钱,准备卖哪种钱。

函数原型如下:

我们可以使用这个结构体来存储商品信息:

 新建个变量来保存每一单的信息:

 根据NFT合约类型,将想要上架的商品托管给交易合约:

最后保存订单信息以及卖家钱包地址,并通过日志讲上架时间记录到区块链上: 

下架:

下架就是发现一段时间没有将NFT交易出去,想要从交易合约撤回商品

只需要提供该商品的编号,卖家信息将从msg.sender变量中自动获得

函数原型如下:

首先根据id和卖家钱包地址,检测商品是否还在货架上:

 然后将NFT退还给卖家,并删除商品信息:

购买

购买需要提供产品id以及卖家信息,用于提取商品信息

函数原型如下:

首先计算版权费及手续费,然后分发给权益相关人员,平台方、版权人、卖家等:

然后根据NFT类型,给买家发放藏品:

最后将合约拥有的藏品数量更新(因为是一个一个买走的,不一定一次买光):

以上实现了一个单独的NFT交易合约的核心功能的思路。

如果某藏品(NFT合约)自带交易功能,则可以将代码调整,无需通过transferFrom的方法实现所有权的转移。直接标记owner即可。

拍卖相关的功能,将在下一篇文章中介绍。

猜你喜欢

转载自blog.csdn.net/2301_76642277/article/details/129705230
今日推荐