Andrey Petrov

Results 321 comments of Andrey Petrov

Okay, had some time to investigate what's going on here: They have their own custom proxy, selectors are set in [`setImplementation`](https://www.contractreader.io/contract/arbitrum/0x1120dd8772c1cbD4e3F0bC141AB1BC7eeaFbdAf0#augustusswapper-1-15-121) but the selector gets stored in an internal [`mapping(bytes4...

Actually, the proxy selectors aren't in the ABI (since otherwise it would violate the verification). So Etherscan must be grabbing selectors from recent transactions. I could add a helper for...

Heya, just wanted to follow up, thanks again for tracking this! I'm mostly focused on proxy stuff right now but I'd love to dive into the false positives/negatives sometime soon...

Notes for current results: ``` BENCH Summary disassemble with whatsabi - src/__tests__/sevm.bench.ts > bench: whatsabi vs sevm > decompile '0x7a250d5630b4cf539739df2c5dacb4c659f2488d' ('Uniswap v2') 3.15x faster than disassemble with sevm disassemble with...

Reduced with-dependencies bundle size fom 144.73kb to 26kb, still more to do!

12.29 kB with noble as peerDependencies from ethers 6.

I'm assuming the `RETURN` opcode with non-zero size will indicate if a function returns a value, but relying on that means we'd need to construct instruction ranges for each function...

If a function returns a size that is larger than `bytes32`, what's a good strategy for returning an undecoded type to fit it? Like say it's 32+16+32 = 80 bytes...

Started a WIP PR in #14, here are the vibes so far (from PR): > Still in the research phase, trying to find a way to detect output sizes but...