build: upgrade REVM to v38.0#1445
Conversation
🦋 Changeset detectedLatest commit: 16a5f0a 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 |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1445 +/- ##
==========================================
+ Coverage 79.31% 79.36% +0.04%
==========================================
Files 445 445
Lines 76416 76465 +49
Branches 76416 76465 +49
==========================================
+ Hits 60612 60687 +75
+ Misses 13679 13646 -33
- Partials 2125 2132 +7 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
e5e3674 to
ea29a3e
Compare
Wodann
left a comment
There was a problem hiding this comment.
Nice work on the improvements!
Approving this pending the change of gas.inner_refunded to gas.final_refunded in 3 call sites.
|
All alerts resolved. Learn more about Socket for GitHub. This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored. Ignoring alerts on:
|
|
Socket warning is triggered by test code. Their analysis:
Ignoring the warning. |
|
@SocketSecurity ignore cargo/hyper-util@0.1.20 |
Upgrade REVM v34 → v38 (tag v107)
Upgrades REVM from v34 (
v103) to v38 (v107), absorbing the API breaks across v104–v107 and the alloy 1.0 → 2.0 migration forced byrevm-inspectors 0.39/foundry-fork-db 0.26/op-revm 19+.1. Dependency version changes
All edits in the workspace root
Cargo.toml([workspace.dependencies]).REVM crates
revmop-revmrevm-bytecoderevm-contextrevm-context-interfacerevm-database-interfacerevm-handlerrevm-inspectorrevm-interpreterrevm-precompilerevm-primitivesrevm-stateEcosystem crates (required by revm 38 /
revm-inspectors 0.39)revm-inspectorsfoundry-fork-dballoy-*meta crates (consensus, eips, network, provider, rpc-client, rpc-types, signer family, transport family, …)alloy-hardforksalloy-node-bindingsalloy-signeralloy-dyn-abi,alloy-json-abi,alloy-primitives,alloy-sol-*towertower-httpreqwestrustlsfeature)New direct deps:
alloy-rpc-types-engine(jwtfeature, for the foundry runtime transport) andalloy-rpc-types-trace(foredr_provider), both2.0.5.2. Upstream breaks absorbed
Bytecodeflattened enum → struct;ExecutionResultgas fields collapsed intogas: ResultGas+ logs added toRevert/Halt;EthPrecompiles/EthInstructionslostDefault; alloy-core fixed-byte maps (AddressMap/B256Map/U256Map);BlockHashCachering buffer;JournalInner::cfg.spec; Amsterdam EIPs (7843/7708/8024); default hardfork → Osaka.EVMError::CustomAny(AnyError);CallInputs::known_bytecodeno longerOption; EIP-8037 state-gas reservoir (initial_total_gas, expandedvalidate_initial_tx_gas);PrecompileinnerPrecompileFnaccessors removed.reservoirplumbing;PrecompileOutput::gas_refundedrestored.TransactionBuildersplit, blob-tx API reshuffle,AnyTransactionReceiptstruct,ChainConfig/BlockHeaderadditions,Claims/JwtSecretmoved toalloy-rpc-types-engine.3. Notable code changes
OverriddenPrecompileProvider::runfor the newPrecompileFnsignature +precompile_output_to_interpreter_result.EvmState/U256Maptyped maps throughDatabaseCommit,StateDiff, and the foundry backend.ExecutionResult→ResultGas(+ logs) across tracing, napi, foundry executors.Defaultbound with anew_precompile_provider(hardfork)constructor; deleted the interimDefaultEthPrecompileswrapper.rustlstofoundry-compilersandaws-lc-rstoalloy-transport-wsto restore TLS for solc downloads andwss://forks.assertEqualTraces: normalizerefund: 0and0x-prefixedmemory/storage(geth v1.17.3+ / revm-inspectors 0.39 wire-format changes).hyper/reqwestinCargo.lock.