Web3js
自主合約呼叫 erc20 代幣的 transferFrom 以獲取已批准金額的問題
嘗試使用 ERC20 代幣句柄轉移資金並呼叫“transferFrom”。假設具體金額由所有者賬戶預先批准“MyContract”合約地址。
contract StandardToken { function transferFrom(address from, address to, uint value); } contract MyContract{ address _addrToken; function MyContract(address addrToken){ _addrToken = addrToken; } event FundAcquired(address owner, uint256 amount); function acquireFund(address owner, uint256 amount){ StandardToken token = StandardToken(tokenAddr); token.transferFrom(owner, this, amount); FundAcquired(owner, amount); } }
通過 web3js 呼叫時,函式 ‘acquireFund’ 結果會出現以下錯誤。
異常:錯誤:處理事務時出現 VM 異常:還原
有人可以指導我解決什麼問題嗎?
更改
tokenAddr
為_addrToken
。
我認為你應該先執行 Token.Approve(MyContract.address) 來設置津貼,這樣合約就可以從所有者那里花費代幣。