#ethereum #solidity #smartcontracts #web3 #web3js
#ethereum #надежность #smartcontracts #web3js
Вопрос:
Я пытаюсь выполнить deposit
и withdraw
функционировать yDAI (yearn.finance)
из одной транзакции, используя web3 encodeFunctionCall. 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]);
Сообщений об ошибках нет.
Вот код и abi для yDAI (yearn.finance)
.
https://etherscan.io/address/0xACd43E627e64355f1861cEC6d3a6688B31a6F952#code
Кто-нибудь может помочь мне решить эту головоломку?