Solidity

Counters.Counter 與 totalSupply

  • January 21, 2022

創建我的第一份契約並查看 Open Zeppelin 嚮導。我注意到它包含一個 Counters.Counter private _tokenIdCounter;,它跟踪鑄造的代幣數量。當我添加可列舉庫時,當現在有一個totalSupply似乎跟踪相同值的變數時,它似乎仍然在程式碼中包含該片段。

問題:為什麼包含 _tokenIdCounter,它與 totalSupply 變數有什麼區別?似乎 totalSupply 可以正常工作,我應該刪除 _tokenIdCounter。

從表面上看,它們聽起來可能相同。

每個 NFT 通常都有一個唯一的 ID,並且 Counters 用於將下一個可用 ID 分配給新的 NFT。totalSupply只要 NFT 被鑄造出來,這一點就齊頭並進。

但是,如果有刻錄 NFT 的功能,則計數器不會減少(因為通常不應重複使用 ID),但totalSupply會減少。

此外,我不確定是否需要這樣的功能,但至少在理論上你可以擁有兩個具有相同 ID 的 NFT——在這種情況下,計數器也不同步totalSupply

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