Alert Source Discuss
Standards Track: ERC

ERC-5615: ERC-1155 供应量扩展

一种从 ERC-1155 代币中获取代币供应量数据的简单机制

Authors Gavin John (@Pandapip1)
Created 2023-05-25
Requires EIP-1155

摘要

此 ERC 标准化了一种从 ERC-1155 代币中获取代币供应量数据的现有机制。它添加了一个 totalSupply 函数,用于获取具有给定 id 的代币数量,以及一个 exists 函数,用于检查给定 id 的存在性。

规范

本文档中的关键词“MUST”、“MUST NOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、“MAY”和“OPTIONAL”应按照 RFC 2119 中的描述进行解释。

interface ERC1155Supply is ERC1155 {
  // @notice 这个函数必须返回给定的 token id 是否存在、以前存在或可能存在
  // @param   id 要检查其存在性的 token id
  // @return      给定的 token id 是否存在、以前存在或可能存在
  function exists(uint256 id) external view returns (bool);

  // @notice 这个函数必须返回具有给定 id 的 token 数量。如果 token id 不存在,则必须返回 0。
  // @param   id 要获取总供应量的 token id
  // @return      给定 token id 的总供应量
  function totalSupply(uint256 id) external view returns (uint256);
}

实现 MAY 支持 ERC-165 接口发现,但消费者 MUST NOT 依赖它。

动机

此 ERC 不实现 ERC-165,因为此接口足够简单,额外的复杂性是不必要的,并且会导致与现有实现的不兼容。

totalSupplyexists 函数是仿照 ERC-721ERC-20 建模的。

如果 token ID 不存在,totalSupply 不会回退,因为关心这种情况的合约应该改用 exists(即使 totalSupply 为零,它也可能返回 false)。

包含 exists 是为了区分 totalSupply 可能等于零的两种方式(要么尚未铸造具有给定 ID 的 token,要么永远不会铸造具有给定 ID 的 token)。

向后兼容性

此 ERC 旨在与 OpenZeppelin ERC1155Supply 向后兼容。

安全考虑

无。

版权

通过 CC0 放弃版权和相关权利。

Citation

Please cite this document as:

Gavin John (@Pandapip1), "ERC-5615: ERC-1155 供应量扩展," Ethereum Improvement Proposals, no. 5615, May 2023. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-5615.