Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Draft PR implementing support for chain-specific precompiles
Solution
DatabaseExt::get_block_number
method handling NUMBER opcode invocations. Currently it overrides it via l1BlockNumber if we are on arbitrum network.ArbSys
precompile impl (currently onlyarbBlockNumber
method).ForkSpecificPrecompiles
which injects and removes precompiles on fork switches.Impl is not ideal as we'd have to duplicate logic for other chains. This can be made better by only using
Ordinary
precompiles which do not requireDB
generic and thus it will be possible to put custom network logic into some kind of object-safe trait which can be then stored onFork