@@ -3,7 +3,6 @@ use committable::{Commitment, Committable};
3
3
use ethers:: types:: { Address , U256 } ;
4
4
use itertools:: Either ;
5
5
use serde:: { Deserialize , Serialize } ;
6
- use std:: str:: FromStr ;
7
6
8
7
/// Global variables for an Espresso blockchain.
9
8
#[ derive( Debug , Clone , Copy , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
@@ -110,9 +109,8 @@ impl From<&v0_1::ResolvableChainConfig> for ResolvableChainConfig {
110
109
Either :: Left ( chain_config) => ResolvableChainConfig {
111
110
chain_config : Either :: Left ( ChainConfig :: from ( chain_config) ) ,
112
111
} ,
113
- // TODO does this work? is there a better way?
114
112
Either :: Right ( c) => ResolvableChainConfig {
115
- chain_config : Either :: Right ( Commitment :: from_str ( & c . to_string ( ) ) . unwrap ( ) ) ,
113
+ chain_config : Either :: Right ( Commitment :: from_raw ( * c . as_ref ( ) ) ) ,
116
114
} ,
117
115
}
118
116
}
@@ -173,3 +171,28 @@ impl Default for ChainConfig {
173
171
}
174
172
}
175
173
}
174
+
175
+ #[ cfg( test) ]
176
+ mod test {
177
+ use super :: * ;
178
+
179
+ #[ test]
180
+ fn test_upgrade_chain_config_v3_resolvable_chain_config_from_v1 ( ) {
181
+ let expectation: ResolvableChainConfig = ChainConfig :: default ( ) . into ( ) ;
182
+ let v1_resolvable: v0_1:: ResolvableChainConfig = v0_1:: ChainConfig :: default ( ) . into ( ) ;
183
+ let v3_resolvable: ResolvableChainConfig = ResolvableChainConfig :: from ( & v1_resolvable) ;
184
+ assert_eq ! ( expectation, v3_resolvable) ;
185
+ let expectation: ResolvableChainConfig = ChainConfig :: default ( ) . commit ( ) . into ( ) ;
186
+ let v1_resolvable: v0_1:: ResolvableChainConfig =
187
+ v0_1:: ChainConfig :: default ( ) . commit ( ) . into ( ) ;
188
+ let v3_resolvable: ResolvableChainConfig = ResolvableChainConfig :: from ( & v1_resolvable) ;
189
+ assert_eq ! ( expectation, v3_resolvable) ;
190
+ }
191
+ #[ test]
192
+ fn test_upgrade_chain_config_v1_chain_config_from_v3 ( ) {
193
+ let expectation = v0_1:: ChainConfig :: default ( ) ;
194
+ let v3_chain_config = ChainConfig :: default ( ) ;
195
+ let v1_chain_config = v0_1:: ChainConfig :: from ( v3_chain_config) ;
196
+ assert_eq ! ( expectation, v1_chain_config) ;
197
+ }
198
+ }
0 commit comments