Solidity
Counters.Counter 與 totalSupply
創建我的第一份契約並查看 Open Zeppelin 嚮導。我注意到它包含一個
Counters.Counter private _tokenIdCounter;
,它跟踪鑄造的代幣數量。當我添加可列舉庫時,當現在有一個totalSupply
似乎跟踪相同值的變數時,它似乎仍然在程式碼中包含該片段。問題:為什麼包含 _tokenIdCounter,它與 totalSupply 變數有什麼區別?似乎 totalSupply 可以正常工作,我應該刪除 _tokenIdCounter。
從表面上看,它們聽起來可能相同。
每個 NFT 通常都有一個唯一的 ID,並且 Counters 用於將下一個可用 ID 分配給新的 NFT。
totalSupply
只要 NFT 被鑄造出來,這一點就齊頭並進。但是,如果有刻錄 NFT 的功能,則計數器不會減少(因為通常不應重複使用 ID),但
totalSupply
會減少。此外,我不確定是否需要這樣的功能,但至少在理論上你可以擁有兩個具有相同 ID 的 NFT——在這種情況下,計數器也不同步
totalSupply
。