@@ -45,48 +45,21 @@ pub enum L1Finalized {
45
45
Timestamp { timestamp : Timestamp } ,
46
46
}
47
47
48
- /// Helper type to deal with TOML keys that are u64 but represented as strings
49
- #[ derive( Clone , Copy , Debug , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
50
- pub struct TomlKeyU64 ( u64 ) ;
51
-
52
- impl < ' de > Deserialize < ' de > for TomlKeyU64 {
53
- fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
54
- where
55
- D : serde:: Deserializer < ' de > ,
56
- {
57
- tracing:: warn!( "Using TomlKeyU64::deserialize" ) ;
58
- let s = String :: deserialize ( deserializer) ?;
59
-
60
- let n = s
61
- . parse :: < u64 > ( )
62
- . map_err ( |_| serde:: de:: Error :: custom ( "invalid epoch" ) ) ?;
63
-
64
- std:: result:: Result :: Ok ( TomlKeyU64 ( n) )
65
- }
66
- }
67
-
68
- impl Serialize for TomlKeyU64 {
69
- fn serialize < S > ( & self , serializer : S ) -> Result < S :: Ok , S :: Error >
70
- where
71
- S : serde:: Serializer ,
72
- {
73
- serializer. serialize_str ( & self . 0 . to_string ( ) )
74
- }
75
- }
76
-
77
- impl From < & TomlKeyU64 > for u64 {
78
- fn from ( val : & TomlKeyU64 ) -> Self {
79
- val. 0
80
- }
81
- }
82
-
83
48
#[ derive( Clone , Debug , Deserialize , Serialize ) ]
84
49
pub struct PeerConfigData {
85
50
pub stake_table_key : <SeqTypes as NodeType >:: SignatureKey ,
86
51
pub state_ver_key : <SeqTypes as NodeType >:: StateSignatureKey ,
87
52
pub stake : u64 ,
88
53
}
89
54
55
+ #[ derive( Clone , Debug , Deserialize , Serialize ) ]
56
+ pub struct VersionedDaCommittee {
57
+ #[ serde( with = "version_ser" ) ]
58
+ pub start_version : Version ,
59
+ pub start_epoch : u64 ,
60
+ pub committee : Vec < PeerConfigData > ,
61
+ }
62
+
90
63
/// Genesis of an Espresso chain.
91
64
#[ derive( Clone , Debug , Deserialize , Serialize ) ]
92
65
pub struct Genesis {
@@ -111,7 +84,7 @@ pub struct Genesis {
111
84
#[ serde( default ) ]
112
85
pub upgrades : BTreeMap < Version , Upgrade > ,
113
86
#[ serde( default ) ]
114
- pub da_committees : Option < BTreeMap < Version , BTreeMap < TomlKeyU64 , Vec < PeerConfigData > > > > ,
87
+ pub da_committees : Option < Vec < VersionedDaCommittee > > ,
115
88
}
116
89
117
90
impl Genesis {
0 commit comments