当有人转移时,我如何在 erc721-contract 中写时间戳
how to I write timestamp in erc721-contract when someone transfer it
我想通过每次交易 erc721 代币时存储一个新的时间戳来知道当前所有者何时拥有此代币。
每当执行 transferFrom 和 safeTransferFrom 时,我想在我的合同中存储一个时间戳(例如字符串时间戳 =“20220430”),请告诉我最好的方法。
我的合约继承自 ERC721A(AZUKI 标准)。
我的建议是添加一个事件:
event TransferTimestamp(uint256 tokenId, address from, address to, uint256 timestamp);
并在两种方法中的任何一种上发出它,使用 block.timestamp
获取时间戳:
emit TransferTimestamp(tokenId, msg.sender, to, block.timestamp);
注意:block.timestamp
不准确。矿工无需检查即可直接影响其价值。
或者,您可以使用所有 EIP-721 NFT 中存在的 built-in Transfer
事件。事件列表在发出时有块,然后可以在 DApp 的前端将其转换为时间戳。
我想通过每次交易 erc721 代币时存储一个新的时间戳来知道当前所有者何时拥有此代币。 每当执行 transferFrom 和 safeTransferFrom 时,我想在我的合同中存储一个时间戳(例如字符串时间戳 =“20220430”),请告诉我最好的方法。 我的合约继承自 ERC721A(AZUKI 标准)。
我的建议是添加一个事件:
event TransferTimestamp(uint256 tokenId, address from, address to, uint256 timestamp);
并在两种方法中的任何一种上发出它,使用 block.timestamp
获取时间戳:
emit TransferTimestamp(tokenId, msg.sender, to, block.timestamp);
注意:block.timestamp
不准确。矿工无需检查即可直接影响其价值。
或者,您可以使用所有 EIP-721 NFT 中存在的 built-in Transfer
事件。事件列表在发出时有块,然后可以在 DApp 的前端将其转换为时间戳。