You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ethereum: Fix adapter to filter proxy calls (#3219)
* ethereum: Fix adapter to filter proxy calls
Without this the line that does `function_abi.decode_input(&call.input.0[4..])`
was failing with the Err(InvalidData).
For some reason some of the OpenSea Proxy contracts don't get recognized
as DELEGATECALL, instead they are seen as CALLs, but you can identify
them by the input having the wrong size since it's a fallback function
call.
A scenario to exemplify the problem, can be seen in this transaction:
0x4499dc75facb4cd27894196aac00bcb0ffbe3d64de87105878451d5637662f90
We would get the traces for the block 14043345 (0xD648D1) for the
contract 0x7Be8076f4EA4A4AD08075C2508e481d6C946D12b. Then we would
find two CALLs for the `atomicMatch_` function. However the first one
would have the wrong size (fail at decoding) and the second one would be
correct.
That's because of the proxy and because of how fallbacks are compiled
from Solidity (omitting the function signature, aka a feel bytes less).
* ethereum: Apply code review suggestions for the adapter
* ethereum: Elaborate/improve comment about call input size
0 commit comments