@@ -99,10 +99,14 @@ impl MithrilProverService {
99
99
block_ranges : & [ BlockRange ] ,
100
100
) -> StdResult < HashMap < BlockRange , Vec < CardanoTransaction > > > {
101
101
let mut block_ranges_map = HashMap :: new ( ) ;
102
- let transactions = self
103
- . transaction_retriever
104
- . get_by_block_ranges ( block_ranges. to_vec ( ) )
105
- . await ?;
102
+ let mut transactions = vec ! [ ] ;
103
+ for block_range in block_ranges {
104
+ let block_range_transactions = self
105
+ . transaction_retriever
106
+ . get_by_block_ranges ( vec ! [ block_range. clone( ) ] )
107
+ . await ?;
108
+ transactions. extend ( block_range_transactions) ;
109
+ }
106
110
for transaction in transactions {
107
111
let block_range = BlockRange :: from_block_number ( transaction. block_number ) ;
108
112
let block_range_transactions: & mut Vec < _ > =
@@ -374,21 +378,24 @@ mod tests {
374
378
test_data:: filter_transactions_for_indices ( & [ 1 , 2 , 4 ] , & transactions) ;
375
379
let test_data = test_data:: build_test_data ( & transactions_to_prove, & transactions) ;
376
380
let prover = build_prover (
377
- |retriever_mock | {
381
+ |transaction_retriever_mock | {
378
382
let transaction_hashes_to_prove = test_data. transaction_hashes_to_prove . clone ( ) ;
379
383
let transactions_to_prove = transactions_to_prove. clone ( ) ;
380
- retriever_mock
384
+ transaction_retriever_mock
381
385
. expect_get_by_hashes ( )
382
386
. with ( eq ( transaction_hashes_to_prove) )
383
387
. return_once ( move |_| Ok ( transactions_to_prove) ) ;
384
388
385
389
let block_ranges_to_prove = test_data. block_ranges_to_prove . clone ( ) ;
386
- let all_transactions_in_block_ranges_to_prove =
387
- test_data. all_transactions_in_block_ranges_to_prove . clone ( ) ;
388
- retriever_mock
389
- . expect_get_by_block_ranges ( )
390
- . with ( eq ( block_ranges_to_prove) )
391
- . return_once ( move |_| Ok ( all_transactions_in_block_ranges_to_prove) ) ;
390
+ for block_range_to_prove in block_ranges_to_prove {
391
+ let block_ranges = vec ! [ block_range_to_prove. clone( ) ] ;
392
+ let transactions_in_block_range_to_prove =
393
+ test_data. block_ranges_map [ & block_range_to_prove] . clone ( ) ;
394
+ transaction_retriever_mock
395
+ . expect_get_by_block_ranges ( )
396
+ . with ( eq ( block_ranges) )
397
+ . return_once ( move |_| Ok ( transactions_in_block_range_to_prove) ) ;
398
+ }
392
399
} ,
393
400
|block_range_root_retriever_mock| {
394
401
let block_ranges_map = test_data. block_ranges_map . clone ( ) ;
@@ -428,21 +435,24 @@ mod tests {
428
435
let mut test_data = test_data:: build_test_data ( & transactions_to_prove, & transactions) ;
429
436
test_data. transaction_hashes_to_prove = vec ! [ "tx-unknown-123" . to_string( ) ] ;
430
437
let prover = build_prover (
431
- |retriever_mock | {
438
+ |transaction_retriever_mock | {
432
439
let transaction_hashes_to_prove = test_data. transaction_hashes_to_prove . clone ( ) ;
433
440
let transactions_to_prove = transactions_to_prove. clone ( ) ;
434
- retriever_mock
441
+ transaction_retriever_mock
435
442
. expect_get_by_hashes ( )
436
443
. with ( eq ( transaction_hashes_to_prove) )
437
444
. return_once ( move |_| Ok ( transactions_to_prove) ) ;
438
445
439
446
let block_ranges_to_prove = test_data. block_ranges_to_prove . clone ( ) ;
440
- let all_transactions_in_block_ranges_to_prove =
441
- test_data. all_transactions_in_block_ranges_to_prove . clone ( ) ;
442
- retriever_mock
443
- . expect_get_by_block_ranges ( )
444
- . with ( eq ( block_ranges_to_prove) )
445
- . return_once ( move |_| Ok ( all_transactions_in_block_ranges_to_prove) ) ;
447
+ for block_range_to_prove in block_ranges_to_prove {
448
+ let block_ranges = vec ! [ block_range_to_prove. clone( ) ] ;
449
+ let transactions_in_block_range_to_prove =
450
+ test_data. block_ranges_map [ & block_range_to_prove] . clone ( ) ;
451
+ transaction_retriever_mock
452
+ . expect_get_by_block_ranges ( )
453
+ . with ( eq ( block_ranges) )
454
+ . return_once ( move |_| Ok ( transactions_in_block_range_to_prove) ) ;
455
+ }
446
456
} ,
447
457
|block_range_root_retriever_mock| {
448
458
let block_ranges_map = test_data. block_ranges_map . clone ( ) ;
@@ -485,21 +495,24 @@ mod tests {
485
495
]
486
496
. concat ( ) ;
487
497
let prover = build_prover (
488
- |retriever_mock | {
498
+ |transaction_retriever_mock | {
489
499
let transaction_hashes_to_prove = test_data. transaction_hashes_to_prove . clone ( ) ;
490
500
let transactions_to_prove = transactions_to_prove. clone ( ) ;
491
- retriever_mock
501
+ transaction_retriever_mock
492
502
. expect_get_by_hashes ( )
493
503
. with ( eq ( transaction_hashes_to_prove) )
494
504
. return_once ( move |_| Ok ( transactions_to_prove) ) ;
495
505
496
506
let block_ranges_to_prove = test_data. block_ranges_to_prove . clone ( ) ;
497
- let all_transactions_in_block_ranges_to_prove =
498
- test_data. all_transactions_in_block_ranges_to_prove . clone ( ) ;
499
- retriever_mock
500
- . expect_get_by_block_ranges ( )
501
- . with ( eq ( block_ranges_to_prove) )
502
- . return_once ( move |_| Ok ( all_transactions_in_block_ranges_to_prove) ) ;
507
+ for block_range_to_prove in block_ranges_to_prove {
508
+ let block_ranges = vec ! [ block_range_to_prove. clone( ) ] ;
509
+ let transactions_in_block_range_to_prove =
510
+ test_data. block_ranges_map [ & block_range_to_prove] . clone ( ) ;
511
+ transaction_retriever_mock
512
+ . expect_get_by_block_ranges ( )
513
+ . with ( eq ( block_ranges) )
514
+ . return_once ( move |_| Ok ( transactions_in_block_range_to_prove) ) ;
515
+ }
503
516
} ,
504
517
|block_range_root_retriever_mock| {
505
518
let block_ranges_map = test_data. block_ranges_map . clone ( ) ;
@@ -539,8 +552,8 @@ mod tests {
539
552
test_data:: filter_transactions_for_indices ( & [ 1 , 2 , 4 ] , & transactions) ;
540
553
let test_data = test_data:: build_test_data ( & transactions_to_prove, & transactions) ;
541
554
let prover = build_prover (
542
- |retriever_mock | {
543
- retriever_mock
555
+ |transaction_retriever_mock | {
556
+ transaction_retriever_mock
544
557
. expect_get_by_hashes ( )
545
558
. returning ( |_| Err ( anyhow ! ( "Error" ) ) ) ;
546
559
} ,
@@ -570,17 +583,22 @@ mod tests {
570
583
test_data:: filter_transactions_for_indices ( & [ 1 , 2 , 4 ] , & transactions) ;
571
584
let test_data = test_data:: build_test_data ( & transactions_to_prove, & transactions) ;
572
585
let prover = build_prover (
573
- |retriever_mock | {
586
+ |transaction_retriever_mock | {
574
587
let transactions_to_prove = transactions_to_prove. clone ( ) ;
575
- retriever_mock
588
+ transaction_retriever_mock
576
589
. expect_get_by_hashes ( )
577
590
. return_once ( move |_| Ok ( transactions_to_prove) ) ;
578
591
579
- let all_transactions_in_block_ranges_to_prove =
580
- test_data. all_transactions_in_block_ranges_to_prove . clone ( ) ;
581
- retriever_mock
582
- . expect_get_by_block_ranges ( )
583
- . return_once ( move |_| Ok ( all_transactions_in_block_ranges_to_prove) ) ;
592
+ let block_ranges_to_prove = test_data. block_ranges_to_prove . clone ( ) ;
593
+ for block_range_to_prove in block_ranges_to_prove {
594
+ let block_ranges = vec ! [ block_range_to_prove. clone( ) ] ;
595
+ let transactions_in_block_range_to_prove =
596
+ test_data. block_ranges_map [ & block_range_to_prove] . clone ( ) ;
597
+ transaction_retriever_mock
598
+ . expect_get_by_block_ranges ( )
599
+ . with ( eq ( block_ranges) )
600
+ . return_once ( move |_| Ok ( transactions_in_block_range_to_prove) ) ;
601
+ }
584
602
} ,
585
603
|block_range_root_retriever_mock| {
586
604
block_range_root_retriever_mock
0 commit comments