-
Notifications
You must be signed in to change notification settings - Fork 16
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
build: upgrade to latest REVM #669
Conversation
🦋 Changeset detectedLatest commit: 3fa7969 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
cfc180b
to
52f11b3
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## feat/multichain #669 +/- ##
==================================================
Coverage ? 63.04%
==================================================
Files ? 215
Lines ? 23677
Branches ? 23677
==================================================
Hits ? 14926
Misses ? 7837
Partials ? 914 ☔ View full report in Codecov by Sentry. |
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.
Thanks, LGTM
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.
Thanks for simplifying some of the traits/ADTs! The changes make sense and strictly improve what we have, so I'm fine with landing this if that's possible, left one thread about the naming but that's non-blocking.
For the Rust 1.81, would it be possible to submit a patch that downgrades MSRV for revm to use the std
Error types for now? I looked at the upstream rustc issue and I'm not sure that's going to be backported soon, so it looks like we're stuck on <1.81 for a while.
|
||
const MIN_ETHASH_DIFFICULTY: u64 = 131072; | ||
const MIN_ETHASH_DIFFICULTY: u64 = L1ChainSpec::MIN_ETHASH_DIFFICULTY; |
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.
That's better, thanks!
remainder => TransactionFailureReason::Inner(remainder), | ||
} | ||
fn cast_halt_reason(reason: Self::HaltReason) -> TransactionFailureReason<Self::HaltReason> { | ||
<L1ChainSpec as ProviderSpec<TimerT>>::cast_halt_reason(reason) |
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.
Thanks for simplifying this!
This PR bumps our REVM dependency to Wodann/revm@31771cc, which is the latest commit of REVM with some minor modifications:
trait EvmWiring
into an additionaltrait ChainSpec
such that we can have a compile-time constantChainSpec
without depending on theDatabase
andExternalContext
associated types.NOTE
Support for Rust v1.81 is blocked by a bug introduced in Rust v1.81. Unfortunately, REVM requires v1.81 without the changes made in our fork and EDR, preventing us from reverting to an older version of Rust.
Compiler errors in REVM using Rust v1.80 - without changes
``` error[E0658]: use of unstable library feature 'error_in_core' --> crates/primitives/src/eip7702/bytecode.rs:96:6 | 96 | impl core::error::Error for Eip7702DecodeError {} | ^^^^^^^^^^^^^^^^^^ | = note: see issue #103765 for more informationerror[E0658]: use of unstable library feature 'error_in_core'
--> crates/primitives/src/bytecode.rs:238:6
|
238 | impl core::error::Error for BytecodeDecodeError {}
| ^^^^^^^^^^^^^^^^^^
|
= note: see issue #103765 rust-lang/rust#103765 for more information
error[E0658]: use of unstable library feature 'error_in_core'
--> crates/primitives/src/bytecode/eof.rs:185:6
|
185 | impl core::error::Error for EofDecodeError {}
| ^^^^^^^^^^^^^^^^^^
|
= note: see issue #103765 rust-lang/rust#103765 for more information
error[E0658]: use of unstable library feature 'error_in_core'
--> crates/primitives/src/evm_wiring.rs:21:35
|
21 | type ValidationError: Debug + core::error::Error;
| ^^^^^^^^^^^^^^^^^^
|
= note: see issue #103765 rust-lang/rust#103765 for more information
error[E0658]: use of unstable library feature 'error_in_core'
--> crates/primitives/src/precompile.rs:143:6
|
143 | impl core::error::Error for PrecompileErrors {}
| ^^^^^^^^^^^^^^^^^^
|
= note: see issue #103765 rust-lang/rust#103765 for more information
error[E0658]: use of unstable library feature 'error_in_core'
--> crates/primitives/src/precompile.rs:198:6
|
198 | impl core::error::Error for PrecompileError {}
| ^^^^^^^^^^^^^^^^^^
|
= note: see issue #103765 rust-lang/rust#103765 for more information
error[E0658]: use of unstable library feature 'error_in_core'
--> crates/primitives/src/result.rs:316:6
|
316 | impl core::error::Error for InvalidTransaction {}
| ^^^^^^^^^^^^^^^^^^
|
= note: see issue #103765 rust-lang/rust#103765 for more information
error[E0658]: use of unstable library feature 'error_in_core'
--> crates/primitives/src/result.rs:392:6
|
392 | impl core::error::Error for InvalidHeader {}
| ^^^^^^^^^^^^^^^^^^
|
= note: see issue #103765 rust-lang/rust#103765 for more information