使用OpenZeppelin ERC721库,如何查询代币铸造次数?
OpenZeppelin ERC721 代币铸造次数查询说明
- OpenZeppelin官方的ERC721核心库没有内置记录单枚代币铸造次数的映射或函数。标准ERC721协议仅聚焦代币所有权管理,原生不支持追踪这类自定义属性。
- 如果需要实现单枚代币铸造次数查询功能,得自行扩展合约:
- 添加一个映射来存储计数:
mapping(uint256 => uint256) public tokenMintCount; - 重写
_mint函数,每次铸造时更新对应tokenId的计数:function _mint(address to, uint256 tokenId) internal virtual override { super._mint(to, tokenId); tokenMintCount[tokenId]++; } - 若合约包含批量铸造、重新铸造等特殊逻辑,需同步在对应逻辑里更新这个计数。
- 添加一个映射来存储计数:
- 额外说明:如果是想查询合约的总铸造代币数量,可以使用ERC721Enumerable扩展库中的
totalSupply()函数,它能返回当前已铸造的代币总数,但这和单枚代币的铸造次数不是同一概念。
内容的提问来源于stack exchange,提问作者Professor
相关产品推荐
相关产品推荐

