通常我们买到数字藏品,除了收藏,还是希望能通过交易进行变现。
一个去中心化的交易平台,仅使用智能合约就可以实现其核心功能。
上架NFT、更新和下架NFT、购买NFT、获取所有上架的NFT信息,以及获取卖家当前状态。
上架:
上架就是把手中的NFT托管给智能合约,并表名价格。因此需要以下信息。
哪一款NFT,它的tokenID是什么,准备卖几个(为1155合约标准提供,721一般就是1个),准备卖多少钱,准备卖哪种钱。
函数原型如下:
我们可以使用这个结构体来存储商品信息:
新建个变量来保存每一单的信息:
根据NFT合约类型,将想要上架的商品托管给交易合约:
最后保存订单信息以及卖家钱包地址,并通过日志讲上架时间记录到区块链上:
下架:
下架就是发现一段时间没有将NFT交易出去,想要从交易合约撤回商品
只需要提供该商品的编号,卖家信息将从msg.sender变量中自动获得
函数原型如下:
首先根据id和卖家钱包地址,检测商品是否还在货架上:
然后将NFT退还给卖家,并删除商品信息:
购买
购买需要提供产品id以及卖家信息,用于提取商品信息
函数原型如下:
首先计算版权费及手续费,然后分发给权益相关人员,平台方、版权人、卖家等:
然后根据NFT类型,给买家发放藏品:
最后将合约拥有的藏品数量更新(因为是一个一个买走的,不一定一次买光):
以上实现了一个单独的NFT交易合约的核心功能的思路。
如果某藏品(NFT合约)自带交易功能,则可以将代码调整,无需通过transferFrom的方法实现所有权的转移。直接标记owner即可。
拍卖相关的功能,将在下一篇文章中介绍。
网友评论