This repository has been archived by the owner on Oct 25, 2024. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Initial commit for efficient revert experimentation * Add additional unit tests and fix unit test errors, reduce duplicate code, add support for sbundles, expose CLI flag and environment variable to enable multi-tx-snapshots * Update godoc, remove unused getter for access list, add CLI flag to builder flag list, update log level for multi-tx-snap error * Add retry logic for multi-tx-snapshot block build algorithm * Update unit tests to test EnableMultiTxSnap * Change account touch tracer to access list tracer for env changes * Update greedy builder to use passed in algorithm configuration rather than default * Add new multi-transaction snapshot stack to support more than one active snapshot, useful for cases like nested bundle applying and rollback, optional bundle discard, and bundle merging * Clean up code, add comprehensive stack tests with fuzzing, fix edge cases where merge operation for stack commit was not properly updated * Add refund support to efficient revert so state returns to correct refund value on discard Address PR feedback, separate block build function initializing to de-dupe logic, split types into separate definitions Add panic if copy is performed with non-empty stack of snapshots Update env changes method name Fix unit test and update log to trace Remove refund in case it causes bad state * Add unit tests for state comparison, potential fix for gas and root mismatch through snapshot revert and removal of tx rollback * Debug commit * DRY profit logic * Revert commit This rolls back to commit before fc32a84. * Add fuzz state using state smart contract, add Copy method for multi-tx, pass gas limit for test setup, add abigen bindings and abi for compiled state fuzz test smart contract * fix a bug with state reverts of accounts that are not touched according to the journal (#102) * Simplify test * Use different builders instead of configuration switch since major refactor required to handle more dynamic configurations. * Update env changes to reduce redundancy and make control flow easier to follow * Remove debug validation * Update comments, add touch change to state fuzz test smart contract * Add fuzz tests for transient storage and account touch operations * Remove unused code --------- Co-authored-by: Vitaly Drogan <[email protected]>
- Loading branch information