Source mapping in traces was broken due to the fact that simply matching by code hash is not robust. This is because we strip bytecode metadata before hashing in SolContract and contracts have code hash unstripped. The findSrc function already handles this. findSrc is unfortunately also bugged for contracts with immutables and SolContract probably shouldn't strip metadata before hashing but that's for another PR.
This PR also implements indexed event arguments and improves display by showing argument names.
Description
Source mapping in traces was broken due to the fact that simply matching by code hash is not robust. This is because we strip bytecode metadata before hashing in
SolContract
and contracts have code hash unstripped. ThefindSrc
function already handles this.findSrc
is unfortunately also bugged for contracts with immutables andSolContract
probably shouldn't strip metadata before hashing but that's for another PR.This PR also implements indexed event arguments and improves display by showing argument names.
Related issue https://github.com/crytic/echidna/issues/886.
Checklist