Solidity

覆蓋 ERC20 的 _mint 函式

  • November 17, 2021

我正在嘗試根據需要覆蓋 ERC20.sol 的 _mint 函式。不幸的是,我收到一個錯誤,我將在下面附上。

有誰知道我該如何克服這個問題?

這是我的函式,旨在為 ERC20.sol 的原始 _mint 函式添加一些規則

function _mint(address _owner, uint _amount) override public pure{
   
   if (_amount > 0 && isContained[_owner] == false) {
       tokenHolders.push(_owner);
       isContained[_owner] = true;
   }
   
   _mint(_owner, _amount);
}

這是我得到的錯誤

在此處輸入圖像描述

該錯誤是不言自明的。

您要覆蓋以下功能:

function _mint(address account, uint256 amount) internal virtual
{...}

但你的定義是:

function _mint(address _owner, uint256 _amount) override public pure
{...}

您的函式也需要是內部的(匹配它覆蓋的函式的簽名和可見性)

試試這樣:

function _mint(address _owner, uint256 _amount) internal virtual override
{...}

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