31
31
from chia .util .hash import std_hash
32
32
from chia .util .ints import uint8 , uint32 , uint64 , uint128
33
33
from chia .util .prev_transaction_block import get_prev_transaction_block
34
- from chia .util .recursive_replace import recursive_replace
35
34
36
35
log = logging .getLogger (__name__ )
37
36
@@ -452,7 +451,6 @@ def unfinished_block_to_full_block(
452
451
is_transaction_block = True
453
452
new_weight = uint128 (difficulty )
454
453
new_height = uint32 (0 )
455
- new_foliage = unfinished_block .foliage
456
454
new_foliage_transaction_block = unfinished_block .foliage_transaction_block
457
455
new_tx_info = unfinished_block .transactions_info
458
456
new_generator = unfinished_block .transactions_generator
@@ -462,44 +460,54 @@ def unfinished_block_to_full_block(
462
460
new_weight = uint128 (prev_block .weight + difficulty )
463
461
new_height = uint32 (prev_block .height + 1 )
464
462
if is_transaction_block :
465
- new_fbh = unfinished_block .foliage .foliage_transaction_block_hash
466
- new_fbs = unfinished_block .foliage .foliage_transaction_block_signature
467
463
new_foliage_transaction_block = unfinished_block .foliage_transaction_block
468
464
new_tx_info = unfinished_block .transactions_info
469
465
new_generator = unfinished_block .transactions_generator
470
466
new_generator_ref_list = unfinished_block .transactions_generator_ref_list
471
467
else :
472
- new_fbh = None
473
- new_fbs = None
474
468
new_foliage_transaction_block = None
475
469
new_tx_info = None
476
470
new_generator = None
477
471
new_generator_ref_list = []
472
+ reward_chain_block = RewardChainBlock (
473
+ new_weight ,
474
+ new_height ,
475
+ unfinished_block .reward_chain_block .total_iters ,
476
+ unfinished_block .reward_chain_block .signage_point_index ,
477
+ unfinished_block .reward_chain_block .pos_ss_cc_challenge_hash ,
478
+ unfinished_block .reward_chain_block .proof_of_space ,
479
+ unfinished_block .reward_chain_block .challenge_chain_sp_vdf ,
480
+ unfinished_block .reward_chain_block .challenge_chain_sp_signature ,
481
+ cc_ip_vdf ,
482
+ unfinished_block .reward_chain_block .reward_chain_sp_vdf ,
483
+ unfinished_block .reward_chain_block .reward_chain_sp_signature ,
484
+ rc_ip_vdf ,
485
+ icc_ip_vdf ,
486
+ is_transaction_block ,
487
+ )
488
+ if prev_block is None :
489
+ new_foliage = replace (
490
+ unfinished_block .foliage ,
491
+ reward_block_hash = reward_chain_block .get_hash (),
492
+ )
493
+ else :
494
+ if is_transaction_block :
495
+ new_fbh = unfinished_block .foliage .foliage_transaction_block_hash
496
+ new_fbs = unfinished_block .foliage .foliage_transaction_block_signature
497
+ else :
498
+ new_fbh = None
499
+ new_fbs = None
478
500
assert (new_fbh is None ) == (new_fbs is None )
479
501
new_foliage = replace (
480
502
unfinished_block .foliage ,
503
+ reward_block_hash = reward_chain_block .get_hash (),
481
504
prev_block_hash = prev_block .header_hash ,
482
505
foliage_transaction_block_hash = new_fbh ,
483
506
foliage_transaction_block_signature = new_fbs ,
484
507
)
485
508
ret = FullBlock (
486
509
finished_sub_slots ,
487
- RewardChainBlock (
488
- new_weight ,
489
- new_height ,
490
- unfinished_block .reward_chain_block .total_iters ,
491
- unfinished_block .reward_chain_block .signage_point_index ,
492
- unfinished_block .reward_chain_block .pos_ss_cc_challenge_hash ,
493
- unfinished_block .reward_chain_block .proof_of_space ,
494
- unfinished_block .reward_chain_block .challenge_chain_sp_vdf ,
495
- unfinished_block .reward_chain_block .challenge_chain_sp_signature ,
496
- cc_ip_vdf ,
497
- unfinished_block .reward_chain_block .reward_chain_sp_vdf ,
498
- unfinished_block .reward_chain_block .reward_chain_sp_signature ,
499
- rc_ip_vdf ,
500
- icc_ip_vdf ,
501
- is_transaction_block ,
502
- ),
510
+ reward_chain_block ,
503
511
unfinished_block .challenge_chain_sp_proof ,
504
512
cc_ip_proof ,
505
513
unfinished_block .reward_chain_sp_proof ,
@@ -511,9 +519,4 @@ def unfinished_block_to_full_block(
511
519
new_generator ,
512
520
new_generator_ref_list ,
513
521
)
514
- ret = recursive_replace (
515
- ret ,
516
- "foliage.reward_block_hash" ,
517
- ret .reward_chain_block .get_hash (),
518
- )
519
522
return ret
0 commit comments