Skip to content
Draft
Show file tree
Hide file tree
Changes from 61 commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
3c0f4b0
prague initial commit
gurukamath Jan 21, 2025
9ca93fd
changes for prague
gurukamath Apr 23, 2024
4916e4a
Implement EIP-7702
gurukamath Jan 23, 2025
ab1bf03
Implement EIP-2537
gurukamath Jan 23, 2025
647fcc6
Implement EIP-6110
gurukamath Jan 23, 2025
5f188de
Implement EIP-7002
gurukamath Jan 23, 2025
78828a7
Implement EIP-7251
gurukamath Jan 23, 2025
14ed750
Implement EIP-2935
gurukamath Jan 23, 2025
d9f70f9
Implement EIP-7623
gurukamath Jan 23, 2025
66a935b
Implement EIP-7691
gurukamath Jan 23, 2025
90b1834
run tests
gurukamath Jan 23, 2025
6d42547
catch invalid signatures
gurukamath Jan 23, 2025
ed4d89d
add state test flag
gurukamath Jan 23, 2025
3f6a717
run only prague tests
gurukamath Jan 23, 2025
3d6fa3c
re-factor validate_transaction
gurukamath Jan 24, 2025
98c9a47
change type of branch node subnodes (#1066) (#1095)
SamWilsn Jan 27, 2025
7fe0097
update storage trie type (#1070 #1071)
SamWilsn Jan 25, 2025
57b8ad3
port #1098 and #1011 to `forks/prague` (#1102)
gurukamath Feb 3, 2025
5c74ce0
update EXTCODE* behavior in 7702 (#1094)
gurukamath Jan 30, 2025
39125dc
Update EIP-2935, EIP-7002, EIP-7251 system contract addresses (#1100)
marioevz Jan 30, 2025
6911362
run [email protected] tests
gurukamath Feb 5, 2025
6a2d809
Backport changes from prague (#1113)
gurukamath Feb 11, 2025
eb8c3a7
Prepare to release
SamWilsn Feb 11, 2025
0d5af71
Remove unused file
SamWilsn Feb 13, 2025
0d3aaa8
Bump ethash to 1.1.0
SamWilsn Feb 13, 2025
5f2d661
fix: check y_parity value (#1107)
SamWilsn Feb 12, 2025
24de924
Refactor Environment (#1131)
gurukamath Mar 5, 2025
d55fca7
add state test flag
gurukamath Mar 10, 2025
efe7bfd
output traces to correct location
gurukamath Mar 10, 2025
8f8fb21
update ethereum tests to latest
gurukamath Mar 11, 2025
fd4f4bc
validate_transaction now raises InvalidTransaction exception (#1138)
Shashwat-Nautiyal Mar 12, 2025
8f89be5
default to empty accesslist when unavailable (#1151)
gurukamath Mar 13, 2025
b22a46a
Simplified validate_header func in post-merge forks (#1163)
Antrikshgwal Mar 27, 2025
586b03b
Update the type for `blob_gas_used` (#1161)
Shashwat-Nautiyal Apr 1, 2025
ce310e4
EELS Update: Update EIP-6110 (#1143)
gurukamath Apr 7, 2025
408a907
added address after checks (#1129)
Shashwat-Nautiyal Apr 7, 2025
114c063
Update codecov
Carsons-Eels Apr 8, 2025
5108203
delete only select files
gurukamath Apr 7, 2025
8707c28
Refactored AccessListTransaction by hoisting complex class member
Carsons-Eels Apr 8, 2025
d9a7ee2
Use py_ecc for alt_bn128 (#1187)
gurukamath Apr 14, 2025
4cf63ec
EOAs that delegate to a precompile (#1191)
gurukamath Apr 19, 2025
5f1a9cd
t8n: Return `InvalidBlock` exception in `result.blockException`
marioevz Apr 15, 2025
e3d0743
fix: Update result on error
marioevz Apr 15, 2025
9a6b298
Split run_blockchain_test in two
SamWilsn Apr 22, 2025
936ec94
Bump version
SamWilsn Apr 22, 2025
b8fd8aa
process deposit requests after txs
gurukamath Apr 17, 2025
f78853d
store receipt keys instead of receipts
gurukamath Apr 22, 2025
e8b8988
backport to older forks
gurukamath Apr 23, 2025
8e0ed34
Add test for changing evm_trace (#994)
SamWilsn Apr 22, 2025
b1edd6b
Fix changing evm_trace after import (closes #994)
SamWilsn Apr 22, 2025
001a057
Use type alias instead of raw type
DistributedDoge Mar 3, 2024
d54528e
More `bytes` -> `Bytes` changes
SamWilsn Apr 25, 2025
4c991a5
compute_header_hash() removed
Shashwat-Nautiyal Apr 23, 2025
5de14b5
remove empty account handling code (#1160)
gurukamath May 1, 2025
ab9058e
Disallow unused arguments (closes #962)
SamWilsn Jun 24, 2024
32b7326
fix docc
SamWilsn May 2, 2025
f524bae
Import Extended type directly instead of using rlp.Extended
ClementWalter Dec 6, 2024
7ee2734
feat: add initial EIP-7805 impl
jacobkaufmann May 5, 2025
4efe764
osaka initial commit
gurukamath Mar 25, 2025
e8155d2
Revert "feat: add initial EIP-7805 impl"
jacobkaufmann May 6, 2025
c1d9c2f
implement EIP-7805
jacobkaufmann May 6, 2025
92c7e87
Revert "implement EIP-7805"
jacobkaufmann May 14, 2025
4a78374
Revert "osaka initial commit"
jacobkaufmann May 14, 2025
f918332
osaka initial commit
gurukamath May 8, 2025
1d623fb
update specific osaka refs
gurukamath May 8, 2025
0550bf3
implement eip7805
jacobkaufmann May 29, 2025
ab0967b
Merge remote-tracking branch 'upstream/eips/osaka/eip-7805' into eips…
jacobkaufmann May 29, 2025
ecfb525
fix: remove leftover merge artifact
jacobkaufmann May 29, 2025
5e268b0
remove debug print statement from t8n
jacobkaufmann May 29, 2025
441801e
add fix from pr 1233
jacobkaufmann May 29, 2025
5be6965
fix: validate IL in blockchain test
jacobkaufmann May 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Ethereum Execution Client Specifications

[![GitPOAP Badge](https://public-api.gitpoap.io/v1/repo/ethereum/execution-specs/badge)](https://www.gitpoap.io/gh/ethereum/execution-specs)
[![codecov](https://codecov.io/gh/ethereum/execution-specs/graph/badge.svg?token=0LQZO56RTM)](https://codecov.io/gh/ethereum/execution-specs)

## Description

Expand Down
6 changes: 6 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ markers = [
"evm_tools: marks tests as evm_tools (deselect with '-m \"not evm_tools\"')",
]

[tool.coverage.run]
omit = [
"*/ethereum/*_glacier/*",
"*/ethereum/dao_fork/*",
]

[tool.docc]
context = [
"docc.references.context",
Expand Down
29 changes: 24 additions & 5 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = ethereum
description = Ethereum specification, provided as a Python package for tooling and testing
name = ethereum-execution
description = Ethereum execution layer specification, provided as a Python package for tooling and testing
long_description = file: README.md
long_description_content_type = text/markdown
version = attr: ethereum.__version__
Expand All @@ -9,6 +9,12 @@ license_files =
LICENSE.md
classifiers =
License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
Programming Language :: Python :: 3
Programming Language :: Python :: 3.10
Programming Language :: Python :: Implementation :: PyPy
Programming Language :: Python :: Implementation :: CPython
Intended Audience :: Developers
Natural Language :: English

[options]
packages =
Expand Down Expand Up @@ -104,6 +110,12 @@ packages =
ethereum/cancun/vm
ethereum/cancun/vm/instructions
ethereum/cancun/vm/precompiled_contracts
ethereum/prague
ethereum/prague/utils
ethereum/prague/vm
ethereum/prague/vm/instructions
ethereum/prague/vm/precompiled_contracts
ethereum/prague/vm/precompiled_contracts/bls12_381


package_dir =
Expand All @@ -113,8 +125,8 @@ python_requires = >=3.10
install_requires =
pycryptodome>=3,<4
coincurve>=20,<21
typing_extensions>=4.2
py-ecc >= 8.0.0b2, < 9
typing_extensions>=4.4
py-ecc>=8.0.0b2,<9
ethereum-types>=0.2.1,<0.3
ethereum-rlp>=0.1.1,<0.2

Expand Down Expand Up @@ -169,6 +181,7 @@ lint =
flake8-bugbear==23.12.2
flake8-docstrings==1.7.0
flake8-spellcheck==0.28.0
flake8-unused-arguments==0.0.13

tools =
platformdirs>=4.2,<5
Expand All @@ -179,12 +192,13 @@ doc =

optimized =
rust-pyspec-glue>=0.0.9,<0.1.0
ethash @ git+https://github.com/chfast/ethash.git@e08bd0fadb8785f7ccf1e2fb07b75f54fe47f92e
ethash>=1.1.0,<2

[flake8]
dictionaries=en_US,python,technical
docstring-convention = all
extend-ignore =
U101
E203
D107
D200
Expand All @@ -209,4 +223,9 @@ extend-exclude =
per-file-ignores =
tests/*:D100,D101,D103,D104,E501,SC100,SC200

unused-arguments-ignore-abstract-functions = true
unused-arguments-ignore-override-functions = true
unused-arguments-ignore-overload-functions = true
unused-arguments-ignore-dunder = true

# vim: set ft=dosini:
2 changes: 1 addition & 1 deletion src/ethereum/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"""
import sys

__version__ = "0.1.0"
__version__ = "1.17.0rc6"

#
# Ensure we can reach 1024 frames of recursion
Expand Down
33 changes: 31 additions & 2 deletions src/ethereum/arrow_glacier/blocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,19 @@
from dataclasses import dataclass
from typing import Tuple, Union

from ethereum_rlp import rlp
from ethereum_types.bytes import Bytes, Bytes8, Bytes32
from ethereum_types.frozen import slotted_freezable
from ethereum_types.numeric import U256, Uint

from ..crypto.hash import Hash32
from .fork_types import Address, Bloom, Root
from .transactions import LegacyTransaction
from .transactions import (
AccessListTransaction,
FeeMarketTransaction,
LegacyTransaction,
Transaction,
)


@slotted_freezable
Expand Down Expand Up @@ -66,7 +72,7 @@ class Log:

address: Address
topics: Tuple[Hash32, ...]
data: bytes
data: Bytes


@slotted_freezable
Expand All @@ -80,3 +86,26 @@ class Receipt:
cumulative_gas_used: Uint
bloom: Bloom
logs: Tuple[Log, ...]


def encode_receipt(tx: Transaction, receipt: Receipt) -> Union[Bytes, Receipt]:
"""
Encodes a receipt.
"""
if isinstance(tx, AccessListTransaction):
return b"\x01" + rlp.encode(receipt)
elif isinstance(tx, FeeMarketTransaction):
return b"\x02" + rlp.encode(receipt)
else:
return receipt


def decode_receipt(receipt: Union[Bytes, Receipt]) -> Receipt:
"""
Decodes a receipt.
"""
if isinstance(receipt, Bytes):
assert receipt[0] in (1, 2)
return rlp.decode_to(Receipt, receipt[1:])
else:
return receipt
3 changes: 2 additions & 1 deletion src/ethereum/arrow_glacier/bloom.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

from typing import Tuple

from ethereum_types.bytes import Bytes
from ethereum_types.numeric import Uint

from ethereum.crypto.hash import keccak256
Expand All @@ -26,7 +27,7 @@
from .fork_types import Bloom


def add_to_bloom(bloom: bytearray, bloom_entry: bytes) -> None:
def add_to_bloom(bloom: bytearray, bloom_entry: Bytes) -> None:
"""
Add a bloom entry to the bloom filter (`bloom`).

Expand Down
Loading
Loading