Solidity

我可以在合約上鑄造多少代幣有限制嗎?

  • February 7, 2022

我正在為市場創建 ERC1155 契約。市場將部署一份合約,然後任何通過市場鑄造 NFT 的人都將通過該合約進行。

因此,隨著時間的推移,這份合約最終可能會映射到數百萬個代幣。

單個合約可以消耗的儲存/數據總量是否存在理論上的限制?

例如,在這個合約中, balanceOf 映射可能有數百萬個條目。我們還有額外的映射來儲存特定於每個鑄造代幣的元數據——同樣,會有數百萬個。

我只是想確保我們有正確的契約策略。任何輸入將不勝感激。謝謝!

ERC1155 的核心是使用映射來儲存代幣餘額(參見此處的程式碼:https ://github.com/OpenZeppelin/openzeppelin-contracts/blob/defcf20042479d995a0688bdfd019e44c9e79d76/contracts/token/ERC1155/ERC1155.sol#L24 ) . 如您所見,它使用 auint256來表示代幣類型和地址所具有的餘額,因此,您可以安全地擁有代115792089237316195423570985008687907853269984665640564039457584007913129639935幣類型,並且單個地址將能夠將該金額作為單個代幣的餘額. 該值是 a 的最大值(有關更多上下文,uint256請參見函式 uint256 參數的最大輸入值是多少? )。

長話短說,如果您期望擁有數百萬種代幣類型,那麼您遠遠低於您的上限,您提出的方法應該很好。

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