@@ -48,6 +48,7 @@ fn to_pbs_config(chain: Chain, pbs_config: PbsConfig, relays: Vec<RelayClient>)
4848 pbs_config : Arc :: new ( pbs_config) ,
4949 signer_client : None ,
5050 event_publisher : None ,
51+ all_relays : relays. clone ( ) ,
5152 relays,
5253 muxes : None ,
5354 }
@@ -204,24 +205,28 @@ async fn test_submit_block_too_large() -> Result<()> {
204205async fn test_mux ( ) -> Result < ( ) > {
205206 setup_test_env ( ) ;
206207 let signer = random_secret ( ) ;
207- let pubkey_1: BlsPublicKey = blst_pubkey_to_alloy ( & signer. sk_to_pk ( ) ) . into ( ) ;
208- let signer_2 = random_secret ( ) ;
209- let pubkey_2: BlsPublicKey = blst_pubkey_to_alloy ( & signer_2. sk_to_pk ( ) ) . into ( ) ;
208+ let pubkey: BlsPublicKey = blst_pubkey_to_alloy ( & signer. sk_to_pk ( ) ) . into ( ) ;
210209
211210 let chain = Chain :: Holesky ;
212211 let port = 3600 ;
213212
214- let mux_relay = generate_mock_relay ( port + 1 , * pubkey_1) ?;
215- let relays = vec ! [ mux_relay. clone( ) , generate_mock_relay( port + 2 , * pubkey_2) ?] ;
213+ let mux_relay_1 = generate_mock_relay ( port + 1 , * pubkey) ?;
214+ let mux_relay_2 = generate_mock_relay ( port + 2 , * pubkey) ?;
215+ let default_relay = generate_mock_relay ( port + 3 , * pubkey) ?;
216+
216217 let mock_state = Arc :: new ( MockRelayState :: new ( chain, signer) ) ;
217218 tokio:: spawn ( start_mock_relay_service ( mock_state. clone ( ) , port + 1 ) ) ;
218219 tokio:: spawn ( start_mock_relay_service ( mock_state. clone ( ) , port + 2 ) ) ;
220+ tokio:: spawn ( start_mock_relay_service ( mock_state. clone ( ) , port + 3 ) ) ;
219221
222+ let relays = vec ! [ default_relay. clone( ) ] ;
220223 let mut config = to_pbs_config ( chain, get_pbs_static_config ( port) , relays) ;
224+ config. all_relays = vec ! [ mux_relay_1. clone( ) , mux_relay_2. clone( ) , default_relay. clone( ) ] ;
225+
221226 let mux = RuntimeMuxConfig {
222227 id : String :: from ( "test" ) ,
223228 config : config. pbs_config . clone ( ) ,
224- relays : vec ! [ mux_relay ] ,
229+ relays : vec ! [ mux_relay_1 , mux_relay_2 ] ,
225230 } ;
226231
227232 let validator_pubkey = blst_pubkey_to_alloy ( & random_secret ( ) . sk_to_pk ( ) ) ;
@@ -239,12 +244,28 @@ async fn test_mux() -> Result<()> {
239244 let res = mock_validator. do_get_header ( None ) . await ;
240245
241246 assert ! ( res. is_ok( ) ) ;
242- assert_eq ! ( mock_state. received_get_header( ) , 2 ) ; // both relays were used
247+ assert_eq ! ( mock_state. received_get_header( ) , 1 ) ; // only default relay was used
243248
244249 info ! ( "Sending get header with mux" ) ;
245250 let res = mock_validator. do_get_header ( Some ( validator_pubkey) ) . await ;
246251
247252 assert ! ( res. is_ok( ) ) ;
248- assert_eq ! ( mock_state. received_get_header( ) , 3 ) ; // only one relay was used
253+ assert_eq ! ( mock_state. received_get_header( ) , 3 ) ; // two mux relays were used
254+
255+ let res = mock_validator. do_get_status ( ) . await ;
256+
257+ assert ! ( res. is_ok( ) ) ;
258+ assert_eq ! ( mock_state. received_get_status( ) , 3 ) ; // default + 2 mux relays were used
259+
260+ let res = mock_validator. do_register_validator ( ) . await ;
261+
262+ assert ! ( res. is_ok( ) ) ;
263+ assert_eq ! ( mock_state. received_register_validator( ) , 3 ) ; // default + 2 mux relays were used
264+
265+ let res = mock_validator. do_submit_block ( ) . await ;
266+
267+ assert ! ( res. is_err( ) ) ;
268+ assert_eq ! ( mock_state. received_submit_block( ) , 3 ) ; // default + 2 mux relays were used
269+
249270 Ok ( ( ) )
250271}
0 commit comments