Decoding logs with bytes data fields broken in 1.2.8 for solc 0.4.x / external #3544
Closed
Description
Expected behavior
Using decodeLogs
should parse logs correctly, see here an example
Actual behavior
Throws with an error like this if there’s a bytes
field in the log:
Error: data out-of-bounds (length=36, offset=64, code=BUFFER_OVERRUN, version=abi/5.0.0-beta.153)
at Logger.makeError (node_modules/@ethersproject/logger/lib/index.js:178:21)
at Logger.throwError (node_modules/@ethersproject/logger/lib/index.js:187:20)
at Reader._peekBytes (node_modules/@ethersproject/abi/lib/coders/abstract-coder.js:135:20)
at Reader.readBytes (node_modules/@ethersproject/abi/lib/coders/abstract-coder.js:146:26)
at BytesCoder.DynamicBytesCoder.decode (node_modules/@ethersproject/abi/lib/coders/bytes.js:30:23)
at BytesCoder.decode (node_modules/@ethersproject/abi/lib/coders/bytes.js:41:81)
at node_modules/@ethersproject/abi/lib/coders/array.js:77:31
at Array.forEach (<anonymous>)
at Object.unpack (node_modules/@ethersproject/abi/lib/coders/array.js:71:12)
at TupleCoder.decode (node_modules/@ethersproject/abi/lib/coders/tuple.js:39:49)
at AbiCoder.decode (node_modules/@ethersproject/abi/lib/abi-coder.js:93:22)
at ABICoder.decodeParameters (node_modules/web3-eth-abi/src/index.js:322:30)
at ABICoder.decodeLog (node_modules/web3-eth-abi/src/index.js:376:52)
at eventLogs.map.log (node_modules/@aragon/contract-helpers-test/events.js:18:20)
at Array.map (<anonymous>)
at decodeEvents (node_modules/@aragon/contract-helpers-test/events.js:16:20)
at getDeepEventLogs (test/lock_and_call.js:9:10)
at getDeepEventArgument (test/lock_and_call.js:12:16)
at checkCallbackLog (test/lock_and_call.js:50:18)
at Context.it (test/lock_and_call.js:59:7)
at process._tickCallback (internal/process/next_tick.js:68:7)
Steps to reproduce the behavior
Call that function mentioned above with a log like this one:
event LogLockCallback(uint256 amount, uint256 allowance, bytes data);
Logs
Copied above.
Environment
npm: 6.13.4
Node: v10.15.0
web3: 1.2.8
OS: PureOS 9.0
Reference
Related issue: aragon/contract-helpers#32