Open weiqiushi opened 2 months ago
因为XLayer上并没有太多的NFT项目,所以我的想法是可以做一个新的,符合ERC7585规范的NFT合约。
看了一下openzeppelin的ERC721实现,由于标准ERC721的token id是uint256,因此我们可以直接将我们的bytes32映射到uint256。
基本的实现思路如下:
是否需要增加burn功能?openzeppelin的ERC721实现了burn功能,但没有开放给外部使用
可以支持burn,比如有版权争议的nft,最后的结果是可以burn掉。不过,这需要nft的owner调用。
合约代码已完成,简介如下:
我对目前的合约实现有如下疑问
参照最新的公共数据产品的设计,每个公共数据都会有一个meta信息,该信息包含作者,版权,文件列表等可读信息
由于公共数据合约要求,链上数据必须符合ERC7585规范,即可以通过接口
function getDataOwner(bytes32 dataHash) external view returns (address);
查询到链上owner的地址因此,我们有链上的桥合约DataBridge,用来保存datahash和owner address之间的关系
再考虑将meta信息也上链,保存在桥合约里。桥合约本身的设计就类似:
这里的数据结构和get接口都比较明确,set接口的权限问题是需要进一步讨论的: 谁有权限set owner和mets数据?
@waterflier