Solidity

如何以 1 開始 NFT 代幣計數器

  • October 15, 2022

我正在編寫一個 nft 智能合約,我需要設置第一個 tokenId = 1,第二個 tokenId = 2 等。我使用庫 Counters.sol(https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master /contracts/utils/Counters.sol)。問題是預設情況下 _value = 0 並且無法更改它(它會給出錯誤)。我怎麼解決這個問題?任何建議對我都很重要👾

您可以tokenId.increment()在部署合約時呼叫合約的建構子。像這樣:

import "@openzeppelin/contracts/utils/Counters.sol";

pragma solidity ^0.8.15;


contract Example  {
 using Counters for Counters.Counter;
 Counters.Counter  public tokenId;
   constructor () {
     tokenId.increment();
   }

}

將其導入 Remix 並進行部署。您會看到,當您點擊tokenId按鈕時,它將根據需要返回 1。希望我幫助了你哥們。

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