如何将现有的 ERC20(WETH) 转移到我在 Matic 孟买测试网的智能合约中

问题描述

我有一个智能合约,想将现有的 ERC20(WETH) 转移到我的合约中。我成功地将我的合约部署到了孟买测试网 (Matic)。

我的功能如下:

// transfer weth to smart contract
function transferWeth(address acc,address _token,uint256 _amount) public payable{
    ERC20 wethToken1 = ERC20(_token);
    wethToken1.approve(acc,_amount);
    require(wethToken1.transferFrom(acc,address(this),_amount),"Don't have enough balance");
}

但是从松露运行时我遇到了问题:

Uncaught Error: Transaction has been reverted by the EVM:
    at evalmachine.<anonymous>:0:9
    at sigintHandlersWrap (node:vm:274:12)
    at Script.runInContext (node:vm:142:14)
    at runScript (C:\Users\Admin\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\core\lib\console.js:248:1)
    at Console.interpret (C:\Users\Admin\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\core\lib\console.js:263:1)
    at bound (node:domain:416:15)
    at REPLServer.runBound [as eval] (node:domain:427:12)
    at REPLServer.onLine (node:repl:833:10)
    at REPLServer.emit (node:events:379:20)
    at REPLServer.EventEmitter.emit (node:domain:470:12)
    at REPLServer.Interface._onLine (node:readline:364:10)
    at REPLServer.Interface._line (node:readline:700:8)
    at REPLServer.Interface._ttyWrite (node:readline:1045:14)
    at REPLServer.self._ttyWrite (node:repl:925:9)
    at ReadStream.onkeypress (node:readline:235:10)
    at ReadStream.emit (node:events:379:20)
    at ReadStream.EventEmitter.emit (node:domain:470:12)
    at emitKeys (node:internal/readline/utils:358:14)
    at emitKeys.next (<anonymous>)
    at ReadStream.onData (node:readline:1179:36)
    at ReadStream.emit (node:events:379:20)
    at ReadStream.EventEmitter.emit (node:domain:470:12)
    at addChunk (node:internal/streams/readable:313:12)
    at readableAddChunk (node:internal/streams/readable:288:9)
    at ReadStream.Readable.push (node:internal/streams/readable:227:10)
    at TTY.onStreamRead (node:internal/stream_base_commons:190:23)
    at TTY.callbackTrampoline (node:internal/async_hooks:131:14) {
  receipt: {
    blockHash: '0x1ba04a25a36f6c9317099497b234b9df80a66fc16b7bfb1b50d1f1500b548291',blockNumber: 12518868,contractAddress: null,cumulativeGasUsed: 58547,from: '0xfcddff6d80538b0ff8ad3a914996babdcc94fe1a',

我还从一个帐户实现了功能 getbalance of weth 并且此功能运行成功。我的功能如下:

// get balance of weth from account
function getBalanceOfWethA(address _address,address _account) public view returns (uint256) {
    return ERC20(_address).balanceOf(_account);
}

请帮我解决这个问题。 提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)