Skip to content

Commit d2de2d9

Browse files
committed
refactor(clis,tools,types): Move TransactionReceipt to types
1 parent edbace1 commit d2de2d9

File tree

6 files changed

+61
-48
lines changed

6 files changed

+61
-48
lines changed

src/ethereum_clis/tests/test_execution_specs.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,13 @@ def monkeypatch_path_for_entry_points(monkeypatch):
3434
monkeypatch.setenv("PATH", f"{bin_dir}:{os.environ['PATH']}")
3535

3636

37-
@pytest.mark.parametrize("t8n", [ExecutionSpecsTransitionTool()])
37+
@pytest.fixture
38+
def t8n(request):
39+
"""Fixture for the `t8n` argument."""
40+
return request.param()
41+
42+
43+
@pytest.mark.parametrize("t8n", [ExecutionSpecsTransitionTool], indirect=True)
3844
@pytest.mark.parametrize("fork", [London, Istanbul])
3945
@pytest.mark.parametrize(
4046
"alloc,base_fee,expected_hash",
@@ -150,7 +156,7 @@ def env(test_dir: str) -> Environment:
150156
return Environment.model_validate_json(f.read())
151157

152158

153-
@pytest.mark.parametrize("t8n", [ExecutionSpecsTransitionTool()])
159+
@pytest.mark.parametrize("t8n", [ExecutionSpecsTransitionTool], indirect=True)
154160
@pytest.mark.parametrize("test_dir", os.listdir(path=FIXTURES_ROOT))
155161
def test_evm_t8n(
156162
t8n: TransitionTool,

src/ethereum_clis/types.py

Lines changed: 2 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,49 +4,8 @@
44

55
from pydantic import Field
66

7-
from ethereum_test_base_types import Address, Bloom, Bytes, CamelModel, Hash, HexNumber
8-
from ethereum_test_types import Alloc, Environment, Transaction
9-
10-
11-
class TransactionLog(CamelModel):
12-
"""Transaction log."""
13-
14-
address: Address
15-
topics: List[Hash]
16-
data: Bytes
17-
block_number: HexNumber
18-
transaction_hash: Hash
19-
transaction_index: HexNumber
20-
block_hash: Hash
21-
log_index: HexNumber
22-
removed: bool
23-
24-
25-
class SetCodeDelegation(CamelModel):
26-
"""Set code delegation."""
27-
28-
from_address: Address = Field(..., alias="from")
29-
nonce: HexNumber
30-
target: Address
31-
32-
33-
class TransactionReceipt(CamelModel):
34-
"""Transaction receipt."""
35-
36-
transaction_hash: Hash
37-
gas_used: HexNumber
38-
root: Bytes | None = None
39-
status: HexNumber | None = None
40-
cumulative_gas_used: HexNumber | None = None
41-
logs_bloom: Bloom | None = None
42-
logs: List[TransactionLog] | None = None
43-
contract_address: Address | None = None
44-
effective_gas_price: HexNumber | None = None
45-
block_hash: Hash | None = None
46-
transaction_index: HexNumber | None = None
47-
blob_gas_used: HexNumber | None = None
48-
blob_gas_price: HexNumber | None = None
49-
delegations: List[SetCodeDelegation] | None = None
7+
from ethereum_test_base_types import Bloom, Bytes, CamelModel, Hash, HexNumber
8+
from ethereum_test_types import Alloc, Environment, Transaction, TransactionReceipt
509

5110

5211
class RejectedTransaction(CamelModel):

src/ethereum_test_tools/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
Storage,
5252
TestParameterGroup,
5353
Transaction,
54+
TransactionReceipt,
5455
Withdrawal,
5556
WithdrawalRequest,
5657
add_kzg_version,
@@ -144,6 +145,7 @@
144145
"TestPrivateKey2",
145146
"Transaction",
146147
"TransactionException",
148+
"TransactionReceipt",
147149
"TransactionTest",
148150
"TransactionTestFiller",
149151
"Withdrawal",

src/ethereum_test_types/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
Storage,
2323
Transaction,
2424
TransactionDefaults,
25+
TransactionReceipt,
2526
Withdrawal,
2627
WithdrawalRequest,
2728
keccak256,
@@ -49,6 +50,7 @@
4950
"TestPrivateKey2",
5051
"Transaction",
5152
"TransactionDefaults",
53+
"TransactionReceipt",
5254
"Withdrawal",
5355
"WithdrawalRequest",
5456
"ZeroPaddedHexNumber",

src/ethereum_test_types/helpers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,19 @@ def compute_eofcreate_address(
7878

7979
def add_kzg_version(
8080
b_hashes: List[bytes | SupportsBytes | int | str], kzg_version: int
81-
) -> List[bytes]:
81+
) -> List[Hash]:
8282
"""Add Kzg Version to each blob hash."""
8383
kzg_version_hex = bytes([kzg_version])
8484
kzg_versioned_hashes = []
8585

8686
for b_hash in b_hashes:
8787
b_hash = bytes(Hash(b_hash))
8888
if isinstance(b_hash, int) or isinstance(b_hash, str):
89-
kzg_versioned_hashes.append(kzg_version_hex + b_hash[1:])
89+
kzg_versioned_hashes.append(Hash(kzg_version_hex + b_hash[1:]))
9090
elif isinstance(b_hash, bytes) or isinstance(b_hash, SupportsBytes):
9191
if isinstance(b_hash, SupportsBytes):
9292
b_hash = bytes(b_hash)
93-
kzg_versioned_hashes.append(kzg_version_hex + b_hash[1:])
93+
kzg_versioned_hashes.append(Hash(kzg_version_hex + b_hash[1:]))
9494
else:
9595
raise TypeError("Blob hash must be either an integer, string or bytes")
9696
return kzg_versioned_hashes

src/ethereum_test_types/types.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
AccessList,
2828
Account,
2929
Address,
30+
Bloom,
3031
BLSPublicKey,
3132
BLSSignature,
3233
Bytes,
@@ -558,6 +559,47 @@ def sign(self, private_key: Hash) -> None:
558559
self.s = HexNumber(signature[2])
559560

560561

562+
class TransactionLog(CamelModel):
563+
"""Transaction log."""
564+
565+
address: Address
566+
topics: List[Hash]
567+
data: Bytes
568+
block_number: HexNumber
569+
transaction_hash: Hash
570+
transaction_index: HexNumber
571+
block_hash: Hash
572+
log_index: HexNumber
573+
removed: bool
574+
575+
576+
class ReceiptDelegation(CamelModel):
577+
"""Transaction receipt set-code delegation."""
578+
579+
from_address: Address = Field(..., alias="from")
580+
nonce: HexNumber
581+
target: Address
582+
583+
584+
class TransactionReceipt(CamelModel):
585+
"""Transaction receipt."""
586+
587+
transaction_hash: Hash | None = None
588+
gas_used: HexNumber | None = None
589+
root: Bytes | None = None
590+
status: HexNumber | None = None
591+
cumulative_gas_used: HexNumber | None = None
592+
logs_bloom: Bloom | None = None
593+
logs: List[TransactionLog] | None = None
594+
contract_address: Address | None = None
595+
effective_gas_price: HexNumber | None = None
596+
block_hash: Hash | None = None
597+
transaction_index: HexNumber | None = None
598+
blob_gas_used: HexNumber | None = None
599+
blob_gas_price: HexNumber | None = None
600+
delegations: List[ReceiptDelegation] | None = None
601+
602+
561603
@dataclass
562604
class TransactionDefaults:
563605
"""Default values for transactions."""
@@ -660,6 +702,8 @@ class Transaction(TransactionGeneric[HexNumber], TransactionTransitionToolConver
660702
protected: bool = Field(True, exclude=True)
661703
rlp_override: Bytes | None = Field(None, exclude=True)
662704

705+
expected_receipt: TransactionReceipt | None = Field(None, exclude=True)
706+
663707
wrapped_blob_transaction: bool = Field(False, exclude=True)
664708
blobs: Sequence[Bytes] | None = Field(None, exclude=True)
665709
blob_kzg_commitments: Sequence[Bytes] | None = Field(None, exclude=True)

0 commit comments

Comments
 (0)