Skip to content
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

Update to latest #5

Open
wants to merge 1,047 commits into
base: master
Choose a base branch
from
Open

Update to latest #5

wants to merge 1,047 commits into from

Conversation

JacekGlen
Copy link

No description provided.

pdobacz and others added 30 commits June 4, 2024 12:41
The first 32 bytes of inputs to bn254's ecadd and ecmul precompiles
are stored in a hash256 object but never used.
This fixes a copy&paste typo.
Disable the "readability-redundant-inline-specifier" check.
It is actually nice, but clang actually treats the inline keyword
as the inlining hint, so this must be investigated further.
Upgrade compilers: GCC 14 and clang 18.
Alongside, tune clang-tidy config and fix small build warning/errors.
- Clean up test assert messages.
- Do not modify the post state (e.g. with storage with map [] operator).
- Better handle non-existent accounts.
This decouples the `state::State` for transaction execution from
the state object for test definitions and asserts.

The `state::State` (also called "intra state") has some constructs
and data related to transaction execution only (like "current" and
"original" storage values). These should not be exposed to tests
and make test definitions more complicated.

This separation should also help with adding new public API
for EVM with transaction-level execution granularity.
Disallow truncated data section in toplevel containers. This is now
only allowed in some subcontainers.

Co-authored-by: Paweł Bylica <[email protected]>
The check is now part of validation of toplevel container. For creation transaction this is still required to be checked before validation to find out container/input data split.
This change only affects what is allowed in tests. Truncated data
sections are not allowed at top level now, to check truncated data
rules, tests should put it into subcontainers.
When running unit tests via ctest -j the profile data files seems to
be overwritten by execution processes and the coverage information
is incomplete. Set the LLVM_PROFILE_FILE environment variable
for CTest registered unit tests and order the process number be
a part of the profile file name.
Parametrize execution-spec-tests job with release and suffix and execute EOF pre-releases of execution-spec-tests.
The test coverage is available under `eof_execution_spec_tests` tag.
Setting `"to": null` has the same meaning as `"to": ""` or just omitting the field: it is a creation transaction.

Fixes #923.
Refactor validation API to include a parameter for required container kind of the top-level container.
Make container kind configurable in validation tests.
chfast and others added 30 commits January 8, 2025 13:24
This improves the quality of the `has_full_data()` EOF helper
implementation.
This introduces `struct TransactionProperties` for values computed
during the transaction validation needed for transaction execution.

Later, the EIP-7623 will one more field to it.
Intruduce new transaction type 4 "set code" from EIP-7702. This allows
us to recognize such transaction in tests prior full implementation.

Co-authored-by: Andrei Maiboroda <[email protected]>
Use C++20 ability to generate all comparison operators for the
`CodeParams` benchmarking utility class.
Apply suggestions by the clang-tidy's modernize-use-ranges check.
clang-tidy guarantees that the readability-redundant-inline-specifier
check in the default non-strict mode will only report inline specifiers
not affecting the generated machine code.

Enable this check and fix reported issues.
This sets the internal linkage of functions which should have it.
`inline` nor `constexpr` functions don't have internal linkage so use
`static` or put them in the anonymous namespace.

These issues are found with clang-tidy's misc-use-internal-linkage.
Run EEST tests [email protected] alongside the devnet-4 tests. This
allows migrating to the devnet-5 specs EIP-by-EIP. In this PR we just
enable example devnet-5 tests which happen to pass in the devnet-4
implementation.

Co-authored-by: Andrei Maiboroda <[email protected]>
- Compute transaction data cost using "token" count from EIP-7623.
- Clean up related constants.
- Treat creation as additional cost (`TX_CREATE_COST`).
This implements [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623).
In effect, during transaction validation we compute minimal transaction
gas cost. After transaction execution the amount of gas used is
increased to this value if lower.
Skip state tests having EIP-7702 (type 4) transactions. These are not
supported yet what prevents clearly testing other new features.
This implements [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623).
In effect, during transaction validation we compute minimal transaction
gas cost. After transaction execution the amount of gas used is
increased to this value if lower.

Requires #1107 #1108
This updates the gas costs of BLS precompiles.
Discounts tables for MSMs are now split between G1 and G2 variants.
Remove redundant G1/G2 MUL precompiles easily replaceable with MSMs.
Spec update: ethereum/EIPs#8945.
Apply recent [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) spec
updates:
- update gas costs:
  - ethereum/EIPs#9097
  - ethereum/EIPs#9098
  - ethereum/EIPs#9116
- remove redundant MUL precompiles:
  - ethereum/EIPs#8945
The [pectra-devnet-5 specs] includes an [update to EIP-2935]'s system
contract and its address.

To pass blockchain tests the
#1094 is required, but we are
going to merge this change first.

[pectra-devnet-5 specs]:
https://notes.ethereum.org/@ethpandaops/pectra-devnet-5
[update to EIP-2935]: ethereum/EIPs#9144
Apply the [EIP-7685 update] included in [pectra-devnet-5].

[EIP-7685 update]: ethereum/EIPs#8989
[pectra-devnet-5]: https://notes.ethereum.org/@ethpandaops/pectra-devnet-5
Apply the [EIP-7685 update] included in [pectra-devnet-5].

[EIP-7685 update]: ethereum/EIPs#8989
[pectra-devnet-5]:
https://notes.ethereum.org/@ethpandaops/pectra-devnet-5

This requires a fix in tests for calldata repricing logic according to
ethereum/EIPs#9227
This PR improves state test functionality by allowing filtering by test
case name defined inside JSON test file.
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.

9 participants