问题描述
我正在尝试使用web3 encodefunctionCall在同一事务中从deposit
执行withdraw
和yDAI (yearn.finance)
函数。 deposit
函数有效,但是withdraw
函数失败。但是,如果我单独执行withdraw
函数,那么它将起作用。
let abi1 = web3.eth.abi.encodefunctionCall( { "name": "deposit","type": "function","inputs": [ { "name": "_amount","type": "uint256" } ] },[web3.utils.toWei((1000).toString(),'Ether')] );
let abi2 = web3.eth.abi.encodefunctionCall( {"constant":false,"inputs":[],"name":"withdrawAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},[] );
我将上述内容编码为js文件,然后使用数组调用智能合约中存在的函数。智能合约中存在的代码:
for (uint i = 0; i < _addrs.length; i++)
address(_addrs[i]).call(_bytecode[i]);
没有错误消息。
这是yDAI (yearn.finance)
的代码和abi。
https://etherscan.io/address/0xACd43E627e64355f1861cEC6d3a6688B31a6F952#code
有人可以帮我解决这个难题吗?
关于, ish
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)