ERC721。如何使用erc721标准添加与财产相关的附加信息

sul*_*tan 2 solidity smartcontracts

我对 ERC721 代币标准没有太多经验,目前我正在开发一个房地产 DAPP。我有个问题。如果我想在每次注册新财产时添加与特定财产相关的外部信息,例如位置、价格、财产编号等,那么最好的方法是什么......?但我不希望使用 Solidity Struct,是否可以扩展ERC721 Metadata Interface Contract?? 或者任何其他解决方案?

我几乎尝试了一切,但我想我错过了一些东西。

Pet*_*jda 6

如果你想将数据存储在链上,a mapping (uint256 => Property),其中 是uint256代币 ID,Property是“struct(位置,价格,...)”,包含数据可能是最便宜的选项。

但由于您的问题表明您不想使用结构,因此您可以选择通过一系列映射将数据存储在链上:

mapping (uint256 => string) tokenIdToLocation;
mapping (uint256 => uint64) tokenIdToUsdPrice;
// etc.
Run Code Online (Sandbox Code Playgroud)

您还可以决定将数据存储在链外,并从您的合约链接到该存储。在这种情况下,您将实现tokenURI()该接口的功能ERC721Metadata(均在ERC-721 标准中定义)。将tokenUri()返回链下资源的(字符串)URL,您可以在其中显示(链下)数据。