@@ -40,19 +40,38 @@ pub const TEST_BASE_FEE: u64 = 0;
4040
4141/// Creates a reusable chain specification for tests.
4242pub fn create_test_chain_spec ( ) -> Arc < ChainSpec > {
43- create_test_chain_spec_with_base_fee_sink ( None )
43+ create_test_chain_spec_with_extras ( None , None )
4444}
4545
4646/// Creates a reusable chain specification with an optional base fee sink address.
4747pub fn create_test_chain_spec_with_base_fee_sink ( base_fee_sink : Option < Address > ) -> Arc < ChainSpec > {
48+ create_test_chain_spec_with_extras ( base_fee_sink, None )
49+ }
50+
51+ /// Creates a reusable chain specification with a configured mint admin address.
52+ pub fn create_test_chain_spec_with_mint_admin ( mint_admin : Address ) -> Arc < ChainSpec > {
53+ create_test_chain_spec_with_extras ( None , Some ( mint_admin) )
54+ }
55+
56+ fn create_test_chain_spec_with_extras (
57+ base_fee_sink : Option < Address > ,
58+ mint_admin : Option < Address > ,
59+ ) -> Arc < ChainSpec > {
4860 let mut genesis: Genesis =
4961 serde_json:: from_str ( include_str ! ( "../assets/genesis.json" ) ) . expect ( "valid genesis" ) ;
5062
51- if let Some ( sink) = base_fee_sink {
63+ if base_fee_sink. is_some ( ) || mint_admin. is_some ( ) {
64+ let mut extras = serde_json:: Map :: new ( ) ;
65+ if let Some ( sink) = base_fee_sink {
66+ extras. insert ( "baseFeeSink" . to_string ( ) , json ! ( sink) ) ;
67+ }
68+ if let Some ( admin) = mint_admin {
69+ extras. insert ( "mintAdmin" . to_string ( ) , json ! ( admin) ) ;
70+ }
5271 genesis
5372 . config
5473 . extra_fields
55- . insert ( "evolve" . to_string ( ) , json ! ( { "baseFeeSink" : sink } ) ) ;
74+ . insert ( "evolve" . to_string ( ) , serde_json :: Value :: Object ( extras ) ) ;
5675 }
5776
5877 Arc :: new (
0 commit comments