Erc-20
ERC20 Mint 函式返回“未擷取(承諾中)錯誤:交易已被 EVM 還原”
我想在使用者執行操作時允許外部應用程序鑄造令牌。我有一個單獨的合約,它為 ERC20 代幣呼叫“mintTo”函式。這是代幣合約。
contract myToken is ERC20Mintable { constructor() public { symbol = "MYT"; name = "My Token"; decimals = 18; _totalSupply = 50*10**18; //initial supply of 50 tokens balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } /* Mint function from ERC20Mintable */ function mintTo(address _to, uint _amount) public { _totalSupply = safeAdd(_totalSupply, _amount); balances[_to] = safeAdd(balances[_to], _amount); emit Mint(msg.sender, _to, _amount); } }
這是“鑄幣廠”契約。
contract Minter { myToken token; function mintToken() private { address addr = msg.sender; uint _reward = 100 * (10**18); token.mintTo(addr, _reward); } }
為了確保它不是 web3 應用程序,我在 Remix 上測試了“mintToken”函式呼叫並得到以下錯誤:
氣體估計錯誤並顯示以下消息(見下文)。事務執行可能會失敗。
我嘗試了幾種不同的方法,但一直碰到同一堵牆。任何指導將不勝感激!
function mintToken() private
private
意味著該函式只能從合約本身中呼叫,嘗試將其更改為public
orexternal
並且它應該可以工作