Contract attribution
Here, we describe how to attribute a label to specific contracts of the trace.
TOD definitions
- write-write conflict: use the contract from the SSTORE instruction
- write-read conflict: use the contract from the SLOAD/... instruction
- instruction changes: use the contracts from all instructions between the SLOAD/... instruction and the CALL/... instruction
Alternative ideas
If the SLOAD
is within a contract and the sink (call/log change) is in the parent contract, we would currently take both contracts. We could also only take the parent contract and say that the CALL
was the problem, yielding a different output and taking it as a source (ignoring the inner workings of the CALL). However, the other way around, this does not work (An SLOAD
is in the parent and the LOG
is in the child).