-
Notifications
You must be signed in to change notification settings - Fork 271
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
draft: txe native world state #10478
base: master
Are you sure you want to change the base?
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
f6c3c47
to
c4c75ad
Compare
b97b0e3
to
440e035
Compare
c4c75ad
to
1ac86e6
Compare
440e035
to
d9c7276
Compare
e16a87f
to
88087d0
Compare
d9c7276
to
18a4dd2
Compare
88087d0
to
9bd4ea0
Compare
@@ -17,7 +17,7 @@ where | |||
C: CallInterface<M>, | |||
{ | |||
let target = call_interface.get_contract_address(); | |||
let inputs = cheatcodes::get_private_context_inputs(get_block_number()); | |||
let inputs = cheatcodes::get_private_context_inputs(get_block_number() - 1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Careful!
We used to do this because this.blockNumber
in TXE means "the block I'm currently building" and we set the private context to "-1" so that we could do historical proofs.
Will this change break that flow?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice job! However I think this shows we really need a refactor and have some sort of TXE state machine
that keeps track of the (now a lot more realistic) execution model.
18a4dd2
to
c3063fe
Compare
9bd4ea0
to
1edc61a
Compare
c3063fe
to
9b416fa
Compare
1edc61a
to
e1e9691
Compare
9b416fa
to
5f7d7a0
Compare
e1e9691
to
b5ca51b
Compare
5f7d7a0
to
f68a7fc
Compare
b5ca51b
to
e77b0f1
Compare
e77b0f1
to
a1cf14c
Compare
Pinging @Thunkar, the TXE (and generally)π¨βπ¬.
The biggest difference between old world state and new world state is that during the synching of blocks, the changes made to the trees MUST match the block itself. This gave me a bit of pain because it now has to more accurately model the side effect emission / collection of what happens in a tx.
Particular things to pay attention to: