-
Notifications
You must be signed in to change notification settings - Fork 966
feat: BAL EIP-7928 #3070
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
feat: BAL EIP-7928 #3070
Conversation
CodSpeed Performance ReportMerging #3070 will degrade performances by 4.09%Comparing Summary
Benchmarks breakdown
|
8317dff to
a2d66df
Compare
* fix: bal binary search cases * nit(test): generalize BAL binary search test for any threshold * code cleanup --------- Co-authored-by: rakita <dragan0rakita@gmail.com>
mattsse
left a comment
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.
unsure why this integrating bal support on the State type requires changes to the trait.
this now also has a bunch of additional overhead I think, hence the degraded codspeed values
and we wont get this any time soon.
the bal type conversion could be a bit costly, to fully remove this I think we'd also need encode+decode support on this bal type?
how do we validate the bal for execution only without also having to build it?
Had a call to discuss usage of storage_id and perf was worked on and improved in few last commits
|
CI fail on test stable is CI problem, it passed for nightly variant. |
* BAL * WIP * bal wip * bal followup * Database::bal and Bal IndexMap for accounts * bal builder and integration with databases * chore: bump eest tests v5.3.0 * bump bal for caller/beneficiary * bal builder from state on commit, alloy included * cleanup * bal integration in btests * wip sys call * fix few bugs, propagate error * remove bal panic from btest * error handling * cleanup bal tests * skip touching beneficiary if reward is 0 * handle local selfdestruct * feat: dont load access list immediatly * nits fmt * bump output as accounts now have original account info * BalDatabase * nit, rm clone * bump tests, add missing imports, cleanup * reause indexmap from alloy with default hasher * typos * add missing serde propagation * dont skip test * Create BalState and add it inside State so that we dont need to use BalDatabase * nits, and deserialization for Account without original info * propagate feature * fix: add bal_builder.commit to state, small cleanup * fix: bal binary search cases (bluealloy/revm#3139) * fix: bal binary search cases * nit(test): generalize BAL binary search test for any threshold * code cleanup --------- Co-authored-by: rakita <dragan0rakita@gmail.com> * compile tests * Rename BalDatabaseError to EvmDatabaseError * throw error if bal exist but account/storage not * rename storage_id to account_id * rm println * use alloy main, clippy/typo fixes * ark the bytecode * typo * add statis default for Bytecode * use oncelock * try with oncelock * box original acc info
Implementation of EIP-7928
This breaks the
EvmStateserde as it introduces an additional field forAccountanoriginal_info. Original info is used to calculate BAL. Discussion pending, maybe it is fine, but adding custom serde serialisation could work here.