Arsenii Kulikov
Arsenii Kulikov
@novaknole when delegatecall tries to use entire gas limit of a proxy call, EVM wouldn't let you forward all left gas, and will instead only let you use 63/64th of...
This is because the gas reduction is performed after the opcode is being invoked. So if gas limit of 100.000 is passed to the opcode, the delegatecall frame will start...
Added tracking of inputs and ouputs as well. It is currently not able to decode user-defined types such as structs and enums, tracking those would probably require smarter AST analysis....
Added `TraceMode` enum which specifies which kind of traces we want: https://github.com/foundry-rs/foundry/blob/a725b2873752cdea3faea759d8b59e23ec367a23/crates/evm/traces/src/lib.rs#L407-L419 After filtering only `JUMP`s and `JUMPDEST`s memory usage is now better (not OOMing anymore on my machine when...
This is pretty much ready. Memory usage is still very high when running a complex test suite with `--decode-internal`, but with filters it is not more than for debugger. `cast...
> What do reverts look like? Is it able to give you the line you reverted on? Current approach relies on solc source map keys of jump type. For JUMPs...
Updated `--decode-internal` flag to accept a regex similar to `--debug`. On large suites `--decode-internal` easily results in OOM, so I think it's better to restrict its usage in such way
> Maybe we can disable memory decoding by default to avoid the memory consumption issue? Yeah, I though about disabling memory tracking if more than one test matched filters. Though...
Updated `forge test --decode-internal` flag to only accept test function parameter optionally: ``` --decode-internal [] Whether to identify internal functions in traces. If no argument is passed to this flag,...
@Philogy it's hard to tell, I've definitely seen situations in which source maps would point to completely unrelated chunck of code for some of the instructions after optimizations. However, I...