Openzeppelin

_setupDecimals() – 未定義的標識符

  • January 7, 2022

我正在嘗試使用 OpenZeppelin 指定令牌的小數位數。這將導致編譯錯誤:

import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
  //........

  constructor() ERC20("my token", "a")  {
      // _mint(..... )
    _setupDecimals(4); //  – undefined identifier
}

//.........

怎麼了?

_setupDecimals不是普通 OpenZepplin ERC20 合約的功能。

要更改小數,您可以覆蓋該decimals函式並返回另一個值。

編輯: ERC20 合約的建構子文件中也提到了這一點:

{decimals} 的預設值為 18。要為 {decimals} 選擇不同的值,您應該重載它。

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