This continues the work in #427 and addresses one problem: CREATE and CREATE2 required memory dumps to obtain the relevant contract code and code_hash for call stack simulation, and we opted instead to fail over to simulation, since memory dumps were slow.
This branch introduces the following changes:
[x] Reinstantiate the match case for CREATE and CREATE2, but ignore code and code_hash.
[x] Prove only the current context. The old version generates all Jumpdest proofs in the very first context. This meant that the witness had to provide the relevant mapping between code_hash and context. This change means two things: current_code and current_code_hash is always available, so we do away with the mapping in the witness, essentially simplifying it to a mapping ctx->[offset].
[ ] Simplify the witness including removal of the tracking of code and code_hash in the Jumpdest generation.
Status: The first 100 blocks on testchain2 succeed, but there are still many errors later.
This continues the work in #427 and addresses one problem:
CREATE
andCREATE2
required memory dumps to obtain the relevant contractcode
andcode_hash
for call stack simulation, and we opted instead to fail over to simulation, since memory dumps were slow.This branch introduces the following changes:
CREATE
andCREATE2
, but ignorecode
andcode_hash
.code_hash
andcontext
. This change means two things:current_code
andcurrent_code_hash
is always available, so we do away with the mapping in the witness, essentially simplifying it to a mappingctx->[offset]
.code
andcode_hash
in the Jumpdest generation.Status: The first 100 blocks on testchain2 succeed, but there are still many errors later.