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

问题描述

我对 ERC721 代币标准没有太多经验,目前我正在开发一个房地产 DAPP。我有个问题。如果我想在每次注册新房产时添加与特定房产相关的外部信息,如位置、价格、房产编号等,那么最好的方法是什么..??但我不希望这个具有solidity Struct,是否可以扩展(highest + lowest) * ((1+highest-lowest)/2??或任何其他解决方案??

我几乎尝试了所有方法,但我想我错过了一些东西。

解决方法

如果你想将数据存储在链上,一个 mapping (uint256 => Property),其中 uint256 是代币 ID,Property 是 "struct(location,price,...) ",包含数据可能是最便宜的选择。

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

mapping (uint256 => string) tokenIdToLocation;
mapping (uint256 => uint64) tokenIdToUsdPrice;
// etc.

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