我應該為 ERC-721 令牌 ID 使用 totalSupply() 還是自定義計數器?
我正在關注 OpenZeppelin ERC721 指南。他們對 tokenId 使用計數器 (
Counters.Counter
)。我的契約繼承自ERC721Enumerable
所以我totalSupply()
開箱即用。我想知道我是否可以在鑄造代幣時使用
totalSupply()
而不是使用counter.current()
它,這是否是個好主意。
實際上,
totalSupply()
只是 ERC 721 中的約定函式名稱為返回totalSupply
. 您可以覆蓋它以返回counter.current()
或使用不同的方法/值。在 OpenZeppelin 儲存庫中查看此範例:https ://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/extensions/ERC721Enumerable.sol#L45
較高和較低的汽油費契約之間的區別在於使用了 OpenZeppelin 的 ERC721Enumerable。該合約是 ERC721 標準的擴展,具有一些附加功能。深入研究,我們匹配以下模式: 較高費用的鑄幣合約是: 使用 ERC721Enumerable 或將其導入他們的合約之一 鑄幣時呼叫繼承的 totalSupply() 函式。這是效率低下的標誌,但在某些情況下,合約實現了 Enumerable Library 而沒有利用 totalSupply() 較低費用的鑄幣合約是: 使用基本的 ERC721 實現跟踪代幣數量和索引!
這裡是連結頁面-> https://shiny.mirror.xyz/OUampBbIz9ebEicfGnQf5At_ReMHlZy0tB4glb9xQ0E