@@ -9440,50 +9440,49 @@ pub mod test {
9440
9440
assert_block_stored_not_staging ( & mut chainstate, & consensus_hashes[ 0 ] , blocks[ 0 ] ) ;
9441
9441
9442
9442
// process and store blocks 1 and N, as well as microblocks in-between
9443
- let len = blocks. len ( ) ;
9444
- for i in 1 ..len {
9443
+ for ( i, block) in blocks. iter ( ) . enumerate ( ) . skip ( 1 ) {
9445
9444
// this is what happens at the end of append_block()
9446
9445
// store block to staging and process it
9447
9446
assert ! ( StacksChainState :: load_staging_block_data(
9448
9447
chainstate. db( ) ,
9449
9448
& chainstate. blocks_path,
9450
9449
& consensus_hashes[ i] ,
9451
- & blocks [ i ] . block_hash( )
9450
+ & block . block_hash( )
9452
9451
)
9453
9452
. unwrap( )
9454
9453
. is_none( ) ) ;
9455
9454
store_staging_block (
9456
9455
& mut chainstate,
9457
9456
& consensus_hashes[ i] ,
9458
- blocks [ i ] ,
9457
+ block ,
9459
9458
& consensus_hashes[ 0 ] ,
9460
9459
1 ,
9461
9460
2 ,
9462
9461
) ;
9463
- assert_block_staging_not_processed ( & mut chainstate, & consensus_hashes[ i] , blocks [ i ] ) ;
9462
+ assert_block_staging_not_processed ( & mut chainstate, & consensus_hashes[ i] , block ) ;
9464
9463
9465
9464
set_block_processed (
9466
9465
& mut chainstate,
9467
9466
& consensus_hashes[ i] ,
9468
- & blocks [ i ] . block_hash ( ) ,
9467
+ & block . block_hash ( ) ,
9469
9468
true ,
9470
9469
) ;
9471
9470
9472
9471
// set different parts of this stream as confirmed
9473
9472
set_microblocks_processed (
9474
9473
& mut chainstate,
9475
9474
& consensus_hashes[ i] ,
9476
- & blocks [ i ] . block_hash ( ) ,
9477
- & blocks [ i ] . header . parent_microblock ,
9475
+ & block . block_hash ( ) ,
9476
+ & block . header . parent_microblock ,
9478
9477
) ;
9479
9478
9480
- assert_block_stored_not_staging ( & mut chainstate, & consensus_hashes[ i] , blocks [ i ] ) ;
9479
+ assert_block_stored_not_staging ( & mut chainstate, & consensus_hashes[ i] , block ) ;
9481
9480
9482
9481
let mblocks_confirmed = StacksChainState :: load_processed_microblock_stream_fork (
9483
9482
chainstate. db ( ) ,
9484
9483
& consensus_hashes[ 0 ] ,
9485
9484
& blocks[ 0 ] . block_hash ( ) ,
9486
- & blocks [ i ] . header . parent_microblock ,
9485
+ & block . header . parent_microblock ,
9487
9486
)
9488
9487
. unwrap ( )
9489
9488
. unwrap ( ) ;
@@ -9559,24 +9558,24 @@ pub mod test {
9559
9558
}
9560
9559
9561
9560
// store blocks to staging
9562
- for i in 0 .. blocks. len ( ) {
9561
+ for ( i , block ) in blocks. iter ( ) . enumerate ( ) {
9563
9562
assert ! ( StacksChainState :: load_staging_block_data(
9564
9563
chainstate. db( ) ,
9565
9564
& chainstate. blocks_path,
9566
9565
& consensus_hashes[ i] ,
9567
- & blocks [ i ] . block_hash( )
9566
+ & block . block_hash( )
9568
9567
)
9569
9568
. unwrap( )
9570
9569
. is_none( ) ) ;
9571
9570
store_staging_block (
9572
9571
& mut chainstate,
9573
9572
& consensus_hashes[ i] ,
9574
- & blocks [ i ] ,
9573
+ & block ,
9575
9574
& parent_consensus_hashes[ i] ,
9576
9575
1 ,
9577
9576
2 ,
9578
9577
) ;
9579
- assert_block_staging_not_processed ( & mut chainstate, & consensus_hashes[ i] , & blocks [ i ] ) ;
9578
+ assert_block_staging_not_processed ( & mut chainstate, & consensus_hashes[ i] , & block ) ;
9580
9579
}
9581
9580
9582
9581
// reject block 1
@@ -9588,16 +9587,16 @@ pub mod test {
9588
9587
) ;
9589
9588
9590
9589
// destroy all descendants
9591
- for i in 0 .. blocks. len ( ) {
9590
+ for ( i , block ) in blocks. iter ( ) . enumerate ( ) {
9592
9591
// confirm that block i is deleted, as are its microblocks
9593
- assert_block_stored_rejected ( & mut chainstate, & consensus_hashes[ i] , & blocks [ i ] ) ;
9592
+ assert_block_stored_rejected ( & mut chainstate, & consensus_hashes[ i] , block ) ;
9594
9593
9595
9594
// block i's microblocks should all be marked as processed, orphaned, and deleted
9596
- for mblock in microblocks[ i] . iter ( ) {
9595
+ for mblock in & microblocks[ i] {
9597
9596
assert ! ( StacksChainState :: load_staging_microblock(
9598
9597
chainstate. db( ) ,
9599
9598
& consensus_hashes[ i] ,
9600
- & blocks [ i ] . block_hash( ) ,
9599
+ & block . block_hash( ) ,
9601
9600
& mblock. block_hash( )
9602
9601
)
9603
9602
. unwrap( )
@@ -9611,30 +9610,31 @@ pub mod test {
9611
9610
. is_none( ) ) ;
9612
9611
}
9613
9612
9614
- if i + 1 < blocks. len ( ) {
9613
+ // Check block i+1 if it exists
9614
+ if let Some ( next_block) = blocks. get ( i + 1 ) {
9615
9615
// block i+1 should be marked as an orphan, but its data should still be there
9616
9616
assert ! ( StacksChainState :: load_staging_block(
9617
9617
chainstate. db( ) ,
9618
9618
& chainstate. blocks_path,
9619
9619
& consensus_hashes[ i + 1 ] ,
9620
- & blocks [ i + 1 ] . block_hash( )
9620
+ & next_block . block_hash( )
9621
9621
)
9622
9622
. unwrap( )
9623
9623
. is_none( ) ) ;
9624
9624
assert ! ( !StacksChainState :: load_block_bytes(
9625
9625
& chainstate. blocks_path,
9626
9626
& consensus_hashes[ i + 1 ] ,
9627
- & blocks [ i + 1 ] . block_hash( )
9627
+ & next_block . block_hash( )
9628
9628
)
9629
9629
. unwrap( )
9630
9630
. unwrap( )
9631
9631
. is_empty( ) ) ;
9632
9632
9633
- for mblock in microblocks[ i + 1 ] . iter ( ) {
9633
+ for mblock in & microblocks[ i + 1 ] {
9634
9634
let staging_mblock = StacksChainState :: load_staging_microblock (
9635
9635
chainstate. db ( ) ,
9636
9636
& consensus_hashes[ i + 1 ] ,
9637
- & blocks [ i + 1 ] . block_hash ( ) ,
9637
+ & next_block . block_hash ( ) ,
9638
9638
& mblock. block_hash ( ) ,
9639
9639
)
9640
9640
. unwrap ( )
0 commit comments