@@ -57,7 +57,6 @@ pub const MAX_EXTRA_DATA_BYTES: usize = 32;
57
57
58
58
pub const DEPOSIT_PROOF_LENGTH : usize = 33 ;
59
59
60
- pub const ETH1_DATA_VOTES_BOUND : usize = ( EPOCHS_PER_ETH1_VOTING_PERIOD * SLOTS_PER_EPOCH ) as usize ;
61
60
pub const DOMAIN_SYNC_COMMITTEE : DomainType = DomainType :: SyncCommittee ;
62
61
pub const FINALIZED_ROOT_INDEX : u64 = 52 ;
63
62
pub const EXECUTION_PAYLOAD_STATE_ROOT_INDEX : u64 = 18 ;
@@ -73,62 +72,83 @@ pub const EXECUTION_PAYLOAD_INDEX_LOG2: u64 = 5;
73
72
pub const NEXT_SYNC_COMMITTEE_INDEX_LOG2 : u64 = 5 ;
74
73
pub const BLOCK_ROOTS_INDEX_LOG2 : u64 = 5 ;
75
74
pub const HISTORICAL_ROOTS_INDEX_LOG2 : u64 = 5 ;
76
-
77
- #[ cfg( feature = "sepolia" ) ]
78
- pub use sepolia:: * ;
79
-
80
- #[ cfg( feature = "mainnet" ) ]
81
- pub use mainnet:: * ;
75
+ pub const ETH1_DATA_VOTES_BOUND : usize = ( EPOCHS_PER_ETH1_VOTING_PERIOD * 32 ) as usize ;
76
+
77
+ pub trait Config {
78
+ const SLOTS_PER_EPOCH : Slot ;
79
+ const GENESIS_VALIDATORS_ROOT : [ u8 ; 32 ] ;
80
+ const BELLATRIX_FORK_VERSION : Version ;
81
+ const ALTAIR_FORK_VERSION : Version ;
82
+ const GENESIS_FORK_VERSION : Version ;
83
+ const ALTAIR_FORK_EPOCH : Epoch ;
84
+ const BELLATRIX_FORK_EPOCH : Epoch ;
85
+ const CAPELLA_FORK_EPOCH : Epoch ;
86
+ const CAPELLA_FORK_VERSION : Version ;
87
+ const EPOCHS_PER_SYNC_COMMITTEE_PERIOD : Epoch ;
88
+ }
82
89
83
90
use crate :: ssz:: ByteVector ;
84
- #[ cfg( all( not( feature = "mainnet" ) , not( feature = "sepolia" ) ) ) ]
85
- pub use devnet:: * ;
86
91
87
- #[ cfg( feature = "sepolia" ) ]
88
92
pub mod sepolia {
89
93
use super :: * ;
90
- pub const SLOTS_PER_EPOCH : Slot = 32 ;
91
- pub const GENESIS_VALIDATORS_ROOT : [ u8 ; 32 ] =
92
- hex_literal:: hex!( "d8ea171f3c94aea21ebc42a1ed61052acf3f9209c00e4efbaaddac09ed9b8078" ) ;
93
- pub const BELLATRIX_FORK_VERSION : Version = hex_literal:: hex!( "90000071" ) ;
94
- pub const ALTAIR_FORK_VERSION : Version = hex_literal:: hex!( "90000070" ) ;
95
- pub const GENESIS_FORK_VERSION : Version = hex_literal:: hex!( "90000069" ) ;
96
- pub const ALTAIR_FORK_EPOCH : Epoch = 50 ;
97
- pub const BELLATRIX_FORK_EPOCH : Epoch = 100 ;
98
- pub const CAPELLA_FORK_EPOCH : Epoch = 56832 ;
99
- pub const CAPELLA_FORK_VERSION : Version = hex_literal:: hex!( "90000072" ) ;
100
- pub const EPOCHS_PER_SYNC_COMMITTEE_PERIOD : Epoch = 256 ;
94
+
95
+ #[ derive( Default ) ]
96
+ pub struct Sepolia ;
97
+
98
+ impl Config for Sepolia {
99
+ const SLOTS_PER_EPOCH : Slot = 32 ;
100
+ const GENESIS_VALIDATORS_ROOT : [ u8 ; 32 ] =
101
+ hex_literal:: hex!( "d8ea171f3c94aea21ebc42a1ed61052acf3f9209c00e4efbaaddac09ed9b8078" ) ;
102
+ const BELLATRIX_FORK_VERSION : Version = hex_literal:: hex!( "90000071" ) ;
103
+ const ALTAIR_FORK_VERSION : Version = hex_literal:: hex!( "90000070" ) ;
104
+ const GENESIS_FORK_VERSION : Version = hex_literal:: hex!( "90000069" ) ;
105
+ const ALTAIR_FORK_EPOCH : Epoch = 50 ;
106
+ const BELLATRIX_FORK_EPOCH : Epoch = 100 ;
107
+ const CAPELLA_FORK_EPOCH : Epoch = 56832 ;
108
+ const CAPELLA_FORK_VERSION : Version = hex_literal:: hex!( "90000072" ) ;
109
+ const EPOCHS_PER_SYNC_COMMITTEE_PERIOD : Epoch = 256 ;
110
+ }
101
111
}
102
112
103
- #[ cfg( feature = "mainnet" ) ]
104
113
pub mod mainnet {
105
114
use super :: * ;
106
- pub const SLOTS_PER_EPOCH : Slot = 32 ;
107
- pub const GENESIS_VALIDATORS_ROOT : [ u8 ; 32 ] =
108
- hex_literal:: hex!( "4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95" ) ;
109
- pub const BELLATRIX_FORK_VERSION : Version = hex_literal:: hex!( "02000000" ) ;
110
- pub const ALTAIR_FORK_VERSION : Version = hex_literal:: hex!( "01000000" ) ;
111
- pub const GENESIS_FORK_VERSION : Version = hex_literal:: hex!( "00000000" ) ;
112
- pub const ALTAIR_FORK_EPOCH : Epoch = 74240 ;
113
- pub const BELLATRIX_FORK_EPOCH : Epoch = 144896 ;
114
- pub const CAPELLA_FORK_EPOCH : Epoch = 194048 ;
115
- pub const CAPELLA_FORK_VERSION : Version = hex_literal:: hex!( "03000000" ) ;
116
- pub const EPOCHS_PER_SYNC_COMMITTEE_PERIOD : Epoch = 256 ;
115
+
116
+ #[ derive( Default ) ]
117
+ pub struct Mainnet ;
118
+
119
+ impl Config for Mainnet {
120
+ const SLOTS_PER_EPOCH : Slot = 32 ;
121
+ const GENESIS_VALIDATORS_ROOT : [ u8 ; 32 ] =
122
+ hex_literal:: hex!( "4b363db94e286120d76eb905340fdd4e54bfe9f06bf33ff6cf5ad27f511bfe95" ) ;
123
+ const BELLATRIX_FORK_VERSION : Version = hex_literal:: hex!( "02000000" ) ;
124
+ const ALTAIR_FORK_VERSION : Version = hex_literal:: hex!( "01000000" ) ;
125
+ const GENESIS_FORK_VERSION : Version = hex_literal:: hex!( "00000000" ) ;
126
+ const ALTAIR_FORK_EPOCH : Epoch = 74240 ;
127
+ const BELLATRIX_FORK_EPOCH : Epoch = 144896 ;
128
+ const CAPELLA_FORK_EPOCH : Epoch = 194048 ;
129
+ const CAPELLA_FORK_VERSION : Version = hex_literal:: hex!( "03000000" ) ;
130
+ const EPOCHS_PER_SYNC_COMMITTEE_PERIOD : Epoch = 256 ;
131
+ }
117
132
}
118
133
119
- #[ cfg( all( not( feature = "mainnet" ) , not( feature = "sepolia" ) ) ) ]
120
134
pub mod devnet {
121
135
use super :: * ;
122
136
use hex_literal:: hex;
123
- pub const SLOTS_PER_EPOCH : Slot = 6 ;
124
- pub const GENESIS_VALIDATORS_ROOT : [ u8 ; 32 ] =
125
- hex_literal:: hex!( "83431ec7fcf92cfc44947fc0418e831c25e1d0806590231c439830db7ad54fda" ) ;
126
- pub const BELLATRIX_FORK_VERSION : Version = hex ! ( "52525502" ) ;
127
- pub const ALTAIR_FORK_VERSION : Version = hex ! ( "52525501" ) ;
128
- pub const GENESIS_FORK_VERSION : Version = hex ! ( "52525500" ) ;
129
- pub const ALTAIR_FORK_EPOCH : Epoch = 0 ;
130
- pub const BELLATRIX_FORK_EPOCH : Epoch = 0 ;
131
- pub const CAPELLA_FORK_EPOCH : Epoch = 2 ;
132
- pub const CAPELLA_FORK_VERSION : Version = hex ! ( "52525503" ) ;
133
- pub const EPOCHS_PER_SYNC_COMMITTEE_PERIOD : Epoch = 4 ;
137
+
138
+ #[ derive( Default ) ]
139
+ pub struct Devnet ;
140
+
141
+ impl Config for Devnet {
142
+ const SLOTS_PER_EPOCH : Slot = 6 ;
143
+ const GENESIS_VALIDATORS_ROOT : [ u8 ; 32 ] =
144
+ hex_literal:: hex!( "83431ec7fcf92cfc44947fc0418e831c25e1d0806590231c439830db7ad54fda" ) ;
145
+ const BELLATRIX_FORK_VERSION : Version = hex ! ( "52525502" ) ;
146
+ const ALTAIR_FORK_VERSION : Version = hex ! ( "52525501" ) ;
147
+ const GENESIS_FORK_VERSION : Version = hex ! ( "52525500" ) ;
148
+ const ALTAIR_FORK_EPOCH : Epoch = 0 ;
149
+ const BELLATRIX_FORK_EPOCH : Epoch = 0 ;
150
+ const CAPELLA_FORK_EPOCH : Epoch = 2 ;
151
+ const CAPELLA_FORK_VERSION : Version = hex ! ( "52525503" ) ;
152
+ const EPOCHS_PER_SYNC_COMMITTEE_PERIOD : Epoch = 4 ;
153
+ }
134
154
}
0 commit comments