Closed
Description
(Cross-reporting from web3 3544. Apologies in advance if this has already been reported here.)
Using the v5 ABI package, this error
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)
...
is thrown when decoding events with bytes
params when
- contracts are compiled with solc 0.4.x
- emitting methods have
external
visibility
pragma solidity ^0.4.24;
contract A {
event lockCallback(uint256 amount, uint256 allowance, bytes data);
// Fine
function public_fireEvent(bytes sig) public {
emit lockCallback(5,5, sig);
}
// Errors
function external_fireEvent(bytes sig) external {
emit lockCallback(5,5, sig);
}
}
Example data for contract above
public_fireEvent
0x
0000000000000000000000000000000000000000000000000000000000000005
0000000000000000000000000000000000000000000000000000000000000005
0000000000000000000000000000000000000000000000000000000000000060
0000000000000000000000000000000000000000000000000000000000000004
abe985cb00000000000000000000000000000000000000000000000000000000
external_fireEvent
0x
0000000000000000000000000000000000000000000000000000000000000028
0000000000000000000000000000000000000000000000000000000000000078
0000000000000000000000000000000000000000000000000000000000000060
0000000000000000000000000000000000000000000000000000000000000004
abe985cb
external
's bytes data is not right-padded due to a bug reported in ethereum/solidity#3493. The fix shipped with solc 0.5.x.
@ricmoo Do you have any views about what could/should be done for this case? 🙂
Metadata
Metadata
Assignees
Labels
No labels