Solidity

我應該為 ERC-721 令牌 ID 使用 totalSupply() 還是自定義計數器?

  • April 20, 2022

我正在關注 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

引用自:https://ethereum.stackexchange.com/questions/117678