Ethereum 创建新ERC721令牌时添加自定义字段
我正在使用Openzeppelin的ECR721预设智能合约进行学习 我想在创建新令牌以存储字符串(public)时添加一个新字段 目前只有“收件人:地址”字段(下面的屏幕截图) 我确定我需要在mint函数中添加一些内容:Ethereum 创建新ERC721令牌时添加自定义字段,ethereum,solidity,smartcontracts,remix,Ethereum,Solidity,Smartcontracts,Remix,我正在使用Openzeppelin的ECR721预设智能合约进行学习 我想在创建新令牌以存储字符串(public)时添加一个新字段 目前只有“收件人:地址”字段(下面的屏幕截图) 我确定我需要在mint函数中添加一些内容: 在区块链上存储消息的最简单方法是发出事件。事件被永久存储并公开可读 在mint()函数之外定义新的MintMessage事件。我不建议扩展造币过程中使用的默认Transfer事件,因为外部工具(如Etherscan)可能会忽略非标准事件,因此不会显示造币令牌 将新参数添加到
在区块链上存储消息的最简单方法是发出事件。事件被永久存储并公开可读
mint()函数之外定义新的MintMessage
事件。我不建议扩展造币过程中使用的默认Transfer
事件,因为外部工具(如Etherscan)可能会忽略非标准事件,因此不会显示造币令牌
mint()
函数mint()函数中发出MintMessage
事件
不是原始作者:重要的区别在于其他智能合约无法读取事件,它仅在客户端可见。因此,事件的适用性取决于字符串的用例——它是否只是客户端可消费信息,或者智能合约是否会在将来的某个时候检查该字符串。
event MintMessage(string message);
function mint(address to, string message) public virtual {
// keep the rest of your function as is
// add a new line emiting the event to the end of the function
emit MintMessage(message);
}