Skip to content

feat: v83#62

Merged
greged93 merged 76 commits intoscrollfrom
feat/v83
Jul 29, 2025
Merged

feat: v83#62
greged93 merged 76 commits intoscrollfrom
feat/v83

Conversation

@greged93
Copy link

No description provided.

klkvr and others added 30 commits June 20, 2025 20:19
* fix: implement PartialEq for JumpTable correctly

* fix: implement PartialEq for JumpTable correctly

* fmt
* feat: optional_eip3541

* fmt
* feat: impl tx for either

* fix bounds

---------

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
* chore: lints for examples

* feat: Use TxEnv builder

* wip optx builder

* builder for OpTx

* compile

* fix parts of it

* revert runner changes

* fix clippy
* refactor: statetest runner cleanup

* move function to statetest-types

* clippy
This unifies the documentation of all revm crates into the `revm`
documentation. Main benefit is the searchbox of the `revm` crate
actually search into all crates.
* chore: cargo +nightly clippy --fix --all

* clippy second try

* clippy in tests
* feat: implement Database traits for either::Either

Adds Database, DatabaseCommit, and DatabaseRef trait implementations
for the either::Either type, allowing it to be used as a database
abstraction that can hold one of two different database types.

* zepter
* feat: blake2 avx2

* cleanup

* clippy

* cleanup

* clippy

* runtime check

* test

* test

* test

* fix compilation

* cleanup
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* fix: OpTransactionBuilder dont override envelope

* relax builder for known tx type
* bump: v80 revm v27.0.1

* main changelog
* feat: add custom precompile with journal access example

This example demonstrates how to create a custom precompile that can
access and modify the journal (state). Key features:

- CustomPrecompileProvider that extends EthPrecompiles
- Precompile at address 0x0100 with journal access
- Storage read/write operations using journal.sload/sstore
- Balance transfers using journal.transfer
- Proper gas accounting and error handling

The example shows how to integrate custom precompiles with existing
Ethereum precompiles and provides clear documentation on usage patterns.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* follow up

* fix: resolve compilation errors and apply clippy suggestions in custom precompile journal example

- Fix Handler::mainnet() API usage by using MainnetHandler::default()
- Add missing imports for ContextSetters, EVMError, and InvalidTransaction
- Fix output.data() pattern matching from optional to direct access
- Add proper type annotations with error type alias
- Correct mutable borrowing patterns for database access
- Apply clippy suggestions for inline format args
- Ensure clean compilation with no warnings

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* style: apply cargo fmt to custom precompile journal example

- Format multi-line println\! statements to single lines where appropriate
- Ensure consistent code formatting across the codebase

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
…luealloy#2678)

* docs(book): document external state transitions for EIP-4788 and EIP-2935

* Update SUMMARY.md

* docs: add rustdoc about external state transitions for EIP-2935 and EIP-4788

* Update system_call.rs

* Update system_call.rs

* Update external_state_transitions.md
* fix(inspector): revert pointer before calling step_end

* test that opcode will not panic
* test: add comprehensive tests for TxEnvBuilder

Add comprehensive test coverage for TxEnvBuilder including:
- Valid configurations for all transaction types (Legacy, EIP-2930, EIP-1559, EIP-4844, EIP-7702)
- Error cases for missing required fields
- build_fill() method auto-filling behavior
- Transaction type derivation logic
- Contract creation transactions
- Custom transaction types
- Method chaining verification

Total: 24 new tests covering all build() and build_fill() scenarios

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* cargo fmt

---------

Co-authored-by: Claude <noreply@anthropic.com>
rkrasiuk and others added 25 commits July 21, 2025 16:57
* feat(precompile): update osaka modexp gas divisor

* chore(tests): update expected osaka gas cost
…Is (bluealloy#2705)

* feat(precompile): add byte-oriented API for cryptographic precompiles

* feat(precompile): add byte-oriented MSM functions for BLS12-381

* update kzg_point_evaluation to use byte arrays

* bls12-381 byte API

* pull out `verify_signature` bytes API

* remove references

* clippy

* clippy

* small formatting

* commit secp256k1

* remove padding from cryptography code

* clippy

* most methods are now private

* cargo fmt

* fix todo

* add test for point at infinity

* debug_assert_eq -> assert_eq

* Update crates/precompile/src/bls12_381/g1_msm.rs

Co-authored-by: rakita <rakita@users.noreply.github.com>

* fix: error is infallible

* fix

Co-authored-by: rakita <rakita@users.noreply.github.com>

* fmt

* expect -> unwrap

Co-authored-by: rakita <rakita@users.noreply.github.com>

* use B256 and B512

Co-authored-by: rakita <rakita@users.noreply.github.com>

* avoid vector allocation in bls12-381 msm

---------

Co-authored-by: rakita <rakita@users.noreply.github.com>
* add benchmarks

* add 100K and 200K

* unwrap
* blake2 refactor

* blake2 bench

* refactor benchmarks

* fmt

* add 100K and 200K

* blackbox

* unwrap

* refactor g
…oy#2745)

* chore: remove legacytests submodule and download dynamically

- Remove legacytests git submodule
- Update run-tests.sh to clone legacytests repo on demand
- Add automatic cleanup of legacytests directory
- Update GitHub Actions workflow to use run-tests.sh for legacytests
- Maintain same test execution flow with dynamic repo fetching

This change simplifies dependency management by removing the git submodule
and instead cloning the legacytests repository when needed during test runs.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: move legacytests directory inside test-fixtures

- Change LEGACY_DIR to be inside FIXTURES_DIR for better organization
- Remove redundant cleanup of LEGACY_DIR (cleaned with parent dir)
- Ensure LEGACY_DIR is created during fixtures setup

This keeps all test fixtures organized under a single parent directory.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: improve legacytests repository cloning logic

- Clone into temporary directory to avoid git confusion
- Verify correct repository URL before pulling
- Re-clone if incorrect repository is found
- Preserve working directory during operations
- Handle edge cases where directory exists but isn't a git repo

This ensures the script reliably clones the ethereum/legacytests
repository instead of accidentally using the parent repository.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* simplify: streamline legacytests repository cloning

- Remove complex temporary directory and validation logic
- Use simple direct clone similar to stable/develop fixtures
- Clone directly into LEGACY_DIR path
- Maintain same functionality with much cleaner code

The script now follows the same simple pattern used for other
test fixtures, making it easier to understand and maintain.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
* feat(osaka): update EIP-7825 constant

* patch test
* chore: bump develop to devnet-3

* PeerDas introduced tx level blob max cnt

* remove removal of test
…loy#2762)

Currently the instruction table is always initialized at runtime on the
stack, which bloats the stack of functions that create an EVM and is
generally slower.

With this change the table gets compiled into a static and memcpy'd
at runtime into the instruction table's Box.
Remove vec! allocation when padding; clean up docs and instantiation flow.
* perf: move interpreter to first field in InstructionContext

It's more accessed than host, and when calling a function that
takes interpreter as the first argument, no registers have to change.

* perf: mark halt as cold

This function massively bloats all callsites because it can drop
the previous action.

* perf: use push_slice again

We want to write directly into the maybe-uninitialized memory
of the stack. We cannot do this using existing APIs, so we must
add `push_slice` to `StackTr`.

* perf: reintroduce resize_memory fn

Reintroduce bluealloy#1361.

* perf: workaround rust#144329

The compiler does not elide the "not Some" check after inlining
`popn_top`. See rust-lang/rust#144329.

* perf: remove RefCell overhead in memory

Move runtime checks to debug mode only.
We don't need to check the other fields in trait implementations.
…y#2736)

* use encoded_point

* clippy

* decode using untagged bytes
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* migration guide

* chore: bump v83 revm v27.1.0
fix: Context implementation for Host
@greged93 greged93 merged commit 9cd9896 into scroll Jul 29, 2025
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.