@@ -509,14 +509,10 @@ fn finalize_block_and_wait_for_beefy(
509509 let ( best_blocks, versioned_finality_proof) = get_beefy_streams ( & mut net. lock ( ) , peers. clone ( ) ) ;
510510
511511 for block in finalize_targets {
512- let finalize = BlockId :: number ( * block) ;
513512 peers. clone ( ) . for_each ( |( index, _) | {
514- net. lock ( )
515- . peer ( index)
516- . client ( )
517- . as_client ( )
518- . finalize_block ( finalize, None )
519- . unwrap ( ) ;
513+ let client = net. lock ( ) . peer ( index) . client ( ) . as_client ( ) ;
514+ let finalize = client. expect_block_hash_from_id ( & BlockId :: number ( * block) ) . unwrap ( ) ;
515+ client. finalize_block ( & finalize, None ) . unwrap ( ) ;
520516 } )
521517 }
522518
@@ -604,17 +600,23 @@ fn lagging_validators() {
604600 ) ;
605601
606602 // Alice finalizes #25, Bob lags behind
607- let finalize = BlockId :: number ( 25 ) ;
603+ let finalize = net
604+ . lock ( )
605+ . peer ( 0 )
606+ . client ( )
607+ . as_client ( )
608+ . expect_block_hash_from_id ( & BlockId :: number ( 25 ) )
609+ . unwrap ( ) ;
608610 let ( best_blocks, versioned_finality_proof) = get_beefy_streams ( & mut net. lock ( ) , peers. clone ( ) ) ;
609- net. lock ( ) . peer ( 0 ) . client ( ) . as_client ( ) . finalize_block ( finalize, None ) . unwrap ( ) ;
611+ net. lock ( ) . peer ( 0 ) . client ( ) . as_client ( ) . finalize_block ( & finalize, None ) . unwrap ( ) ;
610612 // verify nothing gets finalized by BEEFY
611613 let timeout = Some ( Duration :: from_millis ( 250 ) ) ;
612614 streams_empty_after_timeout ( best_blocks, & net, & mut runtime, timeout) ;
613615 streams_empty_after_timeout ( versioned_finality_proof, & net, & mut runtime, None ) ;
614616
615617 // Bob catches up and also finalizes #25
616618 let ( best_blocks, versioned_finality_proof) = get_beefy_streams ( & mut net. lock ( ) , peers. clone ( ) ) ;
617- net. lock ( ) . peer ( 1 ) . client ( ) . as_client ( ) . finalize_block ( finalize, None ) . unwrap ( ) ;
619+ net. lock ( ) . peer ( 1 ) . client ( ) . as_client ( ) . finalize_block ( & finalize, None ) . unwrap ( ) ;
618620 // expected beefy finalizes block #17 from diff-power-of-two
619621 wait_for_best_beefy_blocks ( best_blocks, & net, & mut runtime, & [ 23 , 24 , 25 ] ) ;
620622 wait_for_beefy_signed_commitments ( versioned_finality_proof, & net, & mut runtime, & [ 23 , 24 , 25 ] ) ;
@@ -628,16 +630,22 @@ fn lagging_validators() {
628630
629631 // Alice finalizes session-boundary mandatory block #60, Bob lags behind
630632 let ( best_blocks, versioned_finality_proof) = get_beefy_streams ( & mut net. lock ( ) , peers. clone ( ) ) ;
631- let finalize = BlockId :: number ( 60 ) ;
632- net. lock ( ) . peer ( 0 ) . client ( ) . as_client ( ) . finalize_block ( finalize, None ) . unwrap ( ) ;
633+ let finalize = net
634+ . lock ( )
635+ . peer ( 0 )
636+ . client ( )
637+ . as_client ( )
638+ . expect_block_hash_from_id ( & BlockId :: number ( 60 ) )
639+ . unwrap ( ) ;
640+ net. lock ( ) . peer ( 0 ) . client ( ) . as_client ( ) . finalize_block ( & finalize, None ) . unwrap ( ) ;
633641 // verify nothing gets finalized by BEEFY
634642 let timeout = Some ( Duration :: from_millis ( 250 ) ) ;
635643 streams_empty_after_timeout ( best_blocks, & net, & mut runtime, timeout) ;
636644 streams_empty_after_timeout ( versioned_finality_proof, & net, & mut runtime, None ) ;
637645
638646 // Bob catches up and also finalizes #60 (and should have buffered Alice's vote on #60)
639647 let ( best_blocks, versioned_finality_proof) = get_beefy_streams ( & mut net. lock ( ) , peers) ;
640- net. lock ( ) . peer ( 1 ) . client ( ) . as_client ( ) . finalize_block ( finalize, None ) . unwrap ( ) ;
648+ net. lock ( ) . peer ( 1 ) . client ( ) . as_client ( ) . finalize_block ( & finalize, None ) . unwrap ( ) ;
641649 // verify beefy skips intermediary votes, and successfully finalizes mandatory block #60
642650 wait_for_best_beefy_blocks ( best_blocks, & net, & mut runtime, & [ 60 ] ) ;
643651 wait_for_beefy_signed_commitments ( versioned_finality_proof, & net, & mut runtime, & [ 60 ] ) ;
@@ -681,24 +689,16 @@ fn correct_beefy_payload() {
681689 get_beefy_streams ( & mut net. lock ( ) , [ ( 0 , BeefyKeyring :: Alice ) ] . into_iter ( ) ) ;
682690
683691 // now 2 good validators and 1 bad one are voting
684- net. lock ( )
692+ let hashof11 = net
693+ . lock ( )
685694 . peer ( 0 )
686695 . client ( )
687696 . as_client ( )
688- . finalize_block ( BlockId :: number ( 11 ) , None )
689- . unwrap ( ) ;
690- net. lock ( )
691- . peer ( 1 )
692- . client ( )
693- . as_client ( )
694- . finalize_block ( BlockId :: number ( 11 ) , None )
695- . unwrap ( ) ;
696- net. lock ( )
697- . peer ( 3 )
698- . client ( )
699- . as_client ( )
700- . finalize_block ( BlockId :: number ( 11 ) , None )
697+ . expect_block_hash_from_id ( & BlockId :: number ( 11 ) )
701698 . unwrap ( ) ;
699+ net. lock ( ) . peer ( 0 ) . client ( ) . as_client ( ) . finalize_block ( & hashof11, None ) . unwrap ( ) ;
700+ net. lock ( ) . peer ( 1 ) . client ( ) . as_client ( ) . finalize_block ( & hashof11, None ) . unwrap ( ) ;
701+ net. lock ( ) . peer ( 3 ) . client ( ) . as_client ( ) . finalize_block ( & hashof11, None ) . unwrap ( ) ;
702702
703703 // verify consensus is _not_ reached
704704 let timeout = Some ( Duration :: from_millis ( 250 ) ) ;
@@ -708,12 +708,7 @@ fn correct_beefy_payload() {
708708 // 3rd good validator catches up and votes as well
709709 let ( best_blocks, versioned_finality_proof) =
710710 get_beefy_streams ( & mut net. lock ( ) , [ ( 0 , BeefyKeyring :: Alice ) ] . into_iter ( ) ) ;
711- net. lock ( )
712- . peer ( 2 )
713- . client ( )
714- . as_client ( )
715- . finalize_block ( BlockId :: number ( 11 ) , None )
716- . unwrap ( ) ;
711+ net. lock ( ) . peer ( 2 ) . client ( ) . as_client ( ) . finalize_block ( & hashof11, None ) . unwrap ( ) ;
717712
718713 // verify consensus is reached
719714 wait_for_best_beefy_blocks ( best_blocks, & net, & mut runtime, & [ 11 ] ) ;
@@ -923,12 +918,9 @@ fn on_demand_beefy_justification_sync() {
923918
924919 let ( dave_best_blocks, _) =
925920 get_beefy_streams ( & mut net. lock ( ) , [ ( dave_index, BeefyKeyring :: Dave ) ] . into_iter ( ) ) ;
926- net. lock ( )
927- . peer ( dave_index)
928- . client ( )
929- . as_client ( )
930- . finalize_block ( BlockId :: number ( 1 ) , None )
931- . unwrap ( ) ;
921+ let client = net. lock ( ) . peer ( dave_index) . client ( ) . as_client ( ) ;
922+ let hashof1 = client. expect_block_hash_from_id ( & BlockId :: number ( 1 ) ) . unwrap ( ) ;
923+ client. finalize_block ( & hashof1, None ) . unwrap ( ) ;
932924 // Give Dave task some cpu cycles to process the finality notification,
933925 run_for ( Duration :: from_millis ( 100 ) , & net, & mut runtime) ;
934926 // freshly spun up Dave now needs to listen for gossip to figure out the state of his peers.
0 commit comments