uplift: Add combined warp package from evm repositories #4156
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.
Why this should be merged
There are packages in subnet-evm and coreth that share a lot of functionality / are mirrored. These packages should be uplifted to AvalancheGo to prevent the duplicative maintenance of two sets of the same code. This is part of that effort. This would close #4129 .
How this works
This code represents the 'merged' difference of
coreth/warp
andsubnet-evm/warp.
The two packages diverged significantly, and deference was given to additions.Key merges:
snowtest.Context()
whensnowctx
is needed (defer tocoreth
)warp/messages
only exists insubnet-evm,
but some of this code was already duplicated tovms/platformvm/warp/message
so I brought validator_uptime.go there, and changed the import pathing for files that needed things from itwarptest/noop_validator_reader.go
only exists in subnet-evm, and we’re taking the code with ittype ValidatorReader
andtype Validator
intonoop_validator_reader.go
, picking them out of thesubnet-evm/plugin/evm/validator
packageValidatorReader
is needed, imported it fromwarptest
verifier_stats.go
fromsubnet-evm
verifier_backend.go
fromsubnet-evm
backend_test.go
fromsubnet-evm
executor.WarpQuorumDenominator
(both 100) rather than the warp precompile contract when the variable is needed.Linting changes can be viewed standalone in [hash]
How this was tested
This is currently 'dead' code; after a new AvalancheGo release is dropped, we can use the code in the evm repositories.
Need to be documented in RELEASES.md?
No