Skip to content

Commit 673b565

Browse files
committed
1 parent a3a8cc8 commit 673b565

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

eth/beacon/types/fork_data.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import rlp
2+
3+
from eth.rlp.sedes import (
4+
uint64,
5+
)
6+
7+
8+
class ForkData(rlp.Serializable):
9+
"""
10+
Note: using RLP until we have standardized serialization format.
11+
"""
12+
fields = [
13+
# Previous fork version
14+
('pre_fork_version', uint64),
15+
# Post fork version
16+
('post_fork_version', uint64),
17+
# Fork slot number
18+
('fork_slot_number', uint64)
19+
]
20+
21+
def __init__(self,
22+
pre_fork_version: int,
23+
post_fork_version: int,
24+
fork_slot_number: int) -> None:
25+
super().__init__(
26+
pre_fork_version=pre_fork_version,
27+
post_fork_version=post_fork_version,
28+
fork_slot_number=fork_slot_number,
29+
)

tests/beacon/conftest.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,15 @@ def sample_crosslink_record_params():
118118
}
119119

120120

121+
@pytest.fixture
122+
def sample_fork_data_params():
123+
return {
124+
'pre_fork_version': 0,
125+
'post_fork_version': 0,
126+
'fork_slot_number': 2**64 - 1,
127+
}
128+
129+
121130
@pytest.fixture
122131
def sample_proposal_signed_data_params():
123132
return {

tests/beacon/types/test_fork_data.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from eth.beacon.types.fork_data import (
2+
ForkData,
3+
)
4+
5+
6+
def test_defaults(sample_fork_data_params):
7+
fork_data = ForkData(**sample_fork_data_params)
8+
assert fork_data.pre_fork_version == sample_fork_data_params['pre_fork_version']
9+
assert fork_data.post_fork_version == sample_fork_data_params['post_fork_version']
10+
assert fork_data.fork_slot_number == sample_fork_data_params['fork_slot_number']

0 commit comments

Comments
 (0)