Ethereum 如何在ERC721令牌中添加自定义属性(链上)?
我正在使用Openzeppelin框架学习solidity 目前我正在使用ERC721预设合同() 我想为每个铸造的令牌添加自定义属性,以便在区块链上存储一些重要数据(对于某些属性,我不会使用REST API,但我更喜欢在链上编写它们) 每个令牌将具有不同的数据Ethereum 如何在ERC721令牌中添加自定义属性(链上)?,ethereum,solidity,smartcontracts,Ethereum,Solidity,Smartcontracts,我正在使用Openzeppelin框架学习solidity 目前我正在使用ERC721预设合同() 我想为每个铸造的令牌添加自定义属性,以便在区块链上存储一些重要数据(对于某些属性,我不会使用REST API,但我更喜欢在链上编写它们) 每个令牌将具有不同的数据 string: Name string: Surname bytes32: 0x63383a61613a62323a30373a63383a323020 是否可以创建一些新函数(不编辑mint函数),只允许具有minter角色的地址?
string: Name
string: Surname
bytes32: 0x63383a61613a62323a30373a63383a323020
是否可以创建一些新函数(不编辑mint函数),只允许具有minter角色的地址?是
您可以在tokenId和您想要的任何内容之间创建映射。让我们把它命名为name
映射(uint256=>字符串)名称代码>
如果有很多属性,可以对结构进行映射
struct Character {
uint256 strength;
uint256 dexterity;
uint256 constitution;
uint256 intelligence;
uint256 wisdom;
uint256 charisma;
uint256 experience;
string name;
}
Character[] public characters;
mapping(uint256 => uint256) tokenIdToCharacterIndex;
然后,只需确保更新您的tokenURI以包含链上属性,以便它们在NFT marketplaces中显示。非常感谢@patrick collins的回复。我只是在我的合同中添加了你的代码,但我不知道在我创建了一个新的令牌之后如何向这个结构添加数据。这是一个单独的问题,请随意下一个问题。