web3 encodeFunctionCall не работает (ну, 2 конкретных вызова функций вместе в 1 транзакции не работают)

#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

Кто-нибудь может помочь мне решить эту головоломку?