@@ -45,20 +45,30 @@ pub struct StateMachineTester {
45
45
}
46
46
47
47
impl StateMachineTester {
48
- pub async fn init ( ) -> Self {
48
+ pub async fn init ( signers_with_stake : & [ SignerWithStake ] ) -> Result < Self > {
49
+ let selected_signer_with_stake = signers_with_stake. first ( ) . ok_or_else ( || {
50
+ TestError :: AssertFailed ( "there should be at least one signer with stakes" . to_string ( ) )
51
+ } ) ?;
52
+ let selected_signer_party_id = selected_signer_with_stake. party_id . clone ( ) ;
53
+ let selected_signer_temp_dir =
54
+ tests_setup:: setup_temp_directory_for_signer ( & selected_signer_party_id, false ) ;
49
55
let config = Config {
50
56
aggregator_endpoint : "http://0.0.0.0:8000" . to_string ( ) ,
51
57
cardano_cli_path : PathBuf :: new ( ) ,
52
58
cardano_node_socket_path : PathBuf :: new ( ) ,
53
59
db_directory : PathBuf :: new ( ) ,
54
60
network : "devnet" . to_string ( ) ,
55
61
network_magic : Some ( 42 ) ,
56
- party_id : Some ( "99999999999999999999999999999999" . to_string ( ) ) ,
62
+ party_id : Some ( selected_signer_party_id ) ,
57
63
run_interval : 5000 ,
58
64
data_stores_directory : PathBuf :: new ( ) ,
59
65
store_retention_limit : None ,
60
- kes_secret_key_path : None ,
61
- operational_certificate_path : None ,
66
+ kes_secret_key_path : selected_signer_temp_dir
67
+ . as_ref ( )
68
+ . map ( |dir| dir. join ( "kes.sk" ) ) ,
69
+ operational_certificate_path : selected_signer_temp_dir
70
+ . as_ref ( )
71
+ . map ( |dir| dir. join ( "opcert.cert" ) ) ,
62
72
} ;
63
73
64
74
let decorator = slog_term:: PlainDecorator :: new ( slog_term:: TestStdoutWriter ) ;
@@ -103,22 +113,9 @@ impl StateMachineTester {
103
113
stake_store : stake_store. clone ( ) ,
104
114
} ;
105
115
// set up stake distribution
106
- let protocol_parameters = tests_setup:: setup_protocol_parameters ( ) ;
107
- let mut signers: Vec < SignerWithStake > =
108
- tests_setup:: setup_signers ( 10 , & protocol_parameters)
109
- . into_iter ( )
110
- . map ( |( signer_with_stake, _, _) | signer_with_stake)
111
- . collect ( ) ;
112
- signers. push ( SignerWithStake {
113
- party_id : "99999999999999999999999999999999" . to_string ( ) ,
114
- stake : 999 ,
115
- verification_key : "" . to_string ( ) ,
116
- verification_key_signature : None ,
117
- operational_certificate : None ,
118
- kes_period : None ,
119
- } ) ;
120
-
121
- chain_observer. set_signers ( signers) . await ;
116
+ chain_observer
117
+ . set_signers ( signers_with_stake. to_owned ( ) )
118
+ . await ;
122
119
123
120
let runner = Box :: new ( SignerRunner :: new ( config, services) ) ;
124
121
@@ -128,7 +125,7 @@ impl StateMachineTester {
128
125
Duration :: from_secs ( 5 ) ,
129
126
) ;
130
127
131
- StateMachineTester {
128
+ Ok ( StateMachineTester {
132
129
state_machine,
133
130
immutable_observer,
134
131
chain_observer,
@@ -137,7 +134,7 @@ impl StateMachineTester {
137
134
stake_store,
138
135
comment_no : 0 ,
139
136
_logs_guard : logs_guard,
140
- }
137
+ } )
141
138
}
142
139
143
140
fn assert ( & mut self , condition : bool , description : String ) -> Result < & mut Self > {
@@ -279,11 +276,11 @@ impl StateMachineTester {
279
276
}
280
277
281
278
/// register the signer in the certificate handler
282
- pub async fn register_signers ( & mut self , count : u64 ) -> Result < & mut Self > {
283
- let protocol_parameters = tests_setup :: setup_protocol_parameters ( ) ;
284
- for ( signer_with_stake , _signer , _protocol_initializer ) in
285
- tests_setup :: setup_signers ( count , & protocol_parameters )
286
- {
279
+ pub async fn register_signers (
280
+ & mut self ,
281
+ signers_with_stake : & [ SignerWithStake ] ,
282
+ ) -> Result < & mut Self > {
283
+ for signer_with_stake in signers_with_stake {
287
284
self . certificate_handler
288
285
. register_signer ( & signer_with_stake. to_owned ( ) . into ( ) )
289
286
. await
0 commit comments