@@ -24,6 +24,7 @@ extern crate alloc;
2424use crate :: block_tree:: { Error as BlockTreeError , verify_execution_receipt} ;
2525use crate :: bundle_storage_fund:: { charge_bundle_storage_fee, storage_fund_account} ;
2626use crate :: domain_registry:: { DomainConfig , Error as DomainRegistryError } ;
27+ use crate :: migrations:: execution_receipt:: get_block_tree_node;
2728use crate :: runtime_registry:: into_complete_raw_genesis;
2829use crate :: staking:: OperatorStatus ;
2930#[ cfg( feature = "runtime-benchmarks" ) ]
@@ -227,6 +228,7 @@ mod pallet {
227228 DomainConfigParams , DomainObject , Error as DomainRegistryError , do_instantiate_domain,
228229 do_update_domain_allow_list,
229230 } ;
231+ use crate :: migrations:: execution_receipt:: get_block_tree_node;
230232 use crate :: runtime_registry:: {
231233 DomainRuntimeUpgradeEntry , Error as RuntimeRegistryError , ScheduledRuntimeUpgrade ,
232234 do_register_runtime, do_schedule_runtime_upgrade, do_upgrade_runtimes,
@@ -704,15 +706,11 @@ mod pallet {
704706
705707 /// Storage to hold all the domain's latest confirmed block.
706708 #[ pallet:: storage]
707- #[ pallet:: getter( fn latest_confirmed_domain_execution_receipt) ]
708- // TODO: migration
709709 pub type LatestConfirmedDomainExecutionReceipt < T : Config > =
710710 StorageMap < _ , Identity , DomainId , ExecutionReceiptOf < T > , OptionQuery > ;
711711
712712 /// Storage to hold all the domain's genesis execution receipt.
713713 #[ pallet:: storage]
714- #[ pallet:: getter( fn domain_genesis_block_execution_receipt) ]
715- // TODO: migration
716714 pub type DomainGenesisBlockExecutionReceipt < T : Config > =
717715 StorageMap < _ , Identity , DomainId , ExecutionReceiptOf < T > , OptionQuery > ;
718716
@@ -1345,7 +1343,7 @@ mod pallet {
13451343 let domain_id = fraud_proof. domain_id ( ) ;
13461344 let bad_receipt_hash = fraud_proof. targeted_bad_receipt_hash ( ) ;
13471345 let head_receipt_number = HeadReceiptNumber :: < T > :: get ( domain_id) ;
1348- let bad_receipt_number = * BlockTreeNodes :: < T > :: get ( bad_receipt_hash)
1346+ let bad_receipt_number = * get_block_tree_node :: < T > ( bad_receipt_hash)
13491347 . ok_or :: < Error < T > > ( FraudProofError :: BadReceiptNotFound . into ( ) ) ?
13501348 . execution_receipt
13511349 . domain_block_number ( ) ;
@@ -1720,7 +1718,7 @@ mod pallet {
17201718 ) ;
17211719
17221720 let head_receipt_number = HeadReceiptNumber :: < T > :: get ( domain_id) ;
1723- let bad_receipt_number = * BlockTreeNodes :: < T > :: get ( bad_receipt_hash)
1721+ let bad_receipt_number = * get_block_tree_node :: < T > ( bad_receipt_hash)
17241722 . ok_or :: < Error < T > > ( FraudProofError :: BadReceiptNotFound . into ( ) ) ?
17251723 . execution_receipt
17261724 . domain_block_number ( ) ;
@@ -2200,7 +2198,7 @@ impl<T: Config> Pallet<T> {
22002198 }
22012199
22022200 pub fn genesis_state_root ( domain_id : DomainId ) -> Option < H256 > {
2203- DomainGenesisBlockExecutionReceipt :: < T > :: get ( domain_id)
2201+ crate :: migrations :: execution_receipt :: domain_genesis_block_execution_receipt :: < T > ( domain_id)
22042202 . map ( |er| ( * er. final_state_root ( ) ) . into ( ) )
22052203 }
22062204
@@ -2486,7 +2484,7 @@ impl<T: Config> Pallet<T> {
24862484 ) -> Result < ( DomainId , TransactionPriority ) , FraudProofError > {
24872485 let domain_id = fraud_proof. domain_id ( ) ;
24882486 let bad_receipt_hash = fraud_proof. targeted_bad_receipt_hash ( ) ;
2489- let bad_receipt = BlockTreeNodes :: < T > :: get ( bad_receipt_hash)
2487+ let bad_receipt = get_block_tree_node :: < T > ( bad_receipt_hash)
24902488 . ok_or ( FraudProofError :: BadReceiptNotFound ) ?
24912489 . execution_receipt ;
24922490 let bad_receipt_domain_block_number = * bad_receipt. domain_block_number ( ) ;
@@ -2562,7 +2560,7 @@ impl<T: Config> Pallet<T> {
25622560 digest_storage_proof,
25632561 } ) => {
25642562 let parent_receipt =
2565- BlockTreeNodes :: < T > :: get ( bad_receipt. parent_domain_block_receipt_hash ( ) )
2563+ get_block_tree_node :: < T > ( * bad_receipt. parent_domain_block_receipt_hash ( ) )
25662564 . ok_or ( FraudProofError :: ParentReceiptNotFound ) ?
25672565 . execution_receipt ;
25682566 verify_invalid_domain_block_hash_fraud_proof :: <
@@ -2615,7 +2613,7 @@ impl<T: Config> Pallet<T> {
26152613 fraud_proof. maybe_domain_runtime_code_proof . clone ( ) ,
26162614 ) ?;
26172615 let bad_receipt_parent =
2618- BlockTreeNodes :: < T > :: get ( bad_receipt. parent_domain_block_receipt_hash ( ) )
2616+ get_block_tree_node :: < T > ( * bad_receipt. parent_domain_block_receipt_hash ( ) )
26192617 . ok_or ( FraudProofError :: ParentReceiptNotFound ) ?
26202618 . execution_receipt ;
26212619
@@ -2638,7 +2636,7 @@ impl<T: Config> Pallet<T> {
26382636 ) ?;
26392637
26402638 let bad_receipt_parent =
2641- BlockTreeNodes :: < T > :: get ( bad_receipt. parent_domain_block_receipt_hash ( ) )
2639+ get_block_tree_node :: < T > ( * bad_receipt. parent_domain_block_receipt_hash ( ) )
26422640 . ok_or ( FraudProofError :: ParentReceiptNotFound ) ?
26432641 . execution_receipt ;
26442642
@@ -2775,16 +2773,20 @@ impl<T: Config> Pallet<T> {
27752773 /// Returns the latest confirmed domain block number for a given domain
27762774 /// Zero block is always a default confirmed block.
27772775 pub fn latest_confirmed_domain_block_number ( domain_id : DomainId ) -> DomainBlockNumberFor < T > {
2778- LatestConfirmedDomainExecutionReceipt :: < T > :: get ( domain_id)
2779- . map ( |er| * er. domain_block_number ( ) )
2780- . unwrap_or_default ( )
2776+ crate :: migrations:: execution_receipt:: latest_confirmed_domain_execution_receipt :: < T > (
2777+ domain_id,
2778+ )
2779+ . map ( |er| * er. domain_block_number ( ) )
2780+ . unwrap_or_default ( )
27812781 }
27822782
27832783 pub fn latest_confirmed_domain_block (
27842784 domain_id : DomainId ,
27852785 ) -> Option < ( DomainBlockNumberFor < T > , T :: DomainHash ) > {
2786- LatestConfirmedDomainExecutionReceipt :: < T > :: get ( domain_id)
2787- . map ( |er| ( * er. domain_block_number ( ) , * er. domain_block_hash ( ) ) )
2786+ crate :: migrations:: execution_receipt:: latest_confirmed_domain_execution_receipt :: < T > (
2787+ domain_id,
2788+ )
2789+ . map ( |er| ( * er. domain_block_number ( ) , * er. domain_block_hash ( ) ) )
27882790 }
27892791
27902792 /// Returns the domain bundle limit of the given domain
@@ -2895,7 +2897,7 @@ impl<T: Config> Pallet<T> {
28952897 }
28962898
28972899 pub fn execution_receipt ( receipt_hash : ReceiptHashFor < T > ) -> Option < ExecutionReceiptOf < T > > {
2898- BlockTreeNodes :: < T > :: get ( receipt_hash) . map ( |db| db. execution_receipt )
2900+ get_block_tree_node :: < T > ( receipt_hash) . map ( |db| db. execution_receipt )
28992901 }
29002902
29012903 pub fn receipt_hash (
@@ -3047,7 +3049,7 @@ impl<T: Config> Pallet<T> {
30473049 // that used to derive `receipt` we need to use runtime code at `parent_receipt.consensus_block_number`
30483050 let at = {
30493051 let parent_receipt =
3050- BlockTreeNodes :: < T > :: get ( receipt. parent_domain_block_receipt_hash ( ) )
3052+ get_block_tree_node :: < T > ( * receipt. parent_domain_block_receipt_hash ( ) )
30513053 . ok_or ( FraudProofError :: ParentReceiptNotFound ) ?
30523054 . execution_receipt ;
30533055 * parent_receipt. consensus_block_number ( )
@@ -3172,6 +3174,14 @@ impl<T: Config> Pallet<T> {
31723174 ) -> Option < sp_domains:: PermissionedActionAllowedBy < EthereumAccountId > > {
31733175 EvmDomainContractCreationAllowedByCalls :: < T > :: get ( domain_id) . maybe_call
31743176 }
3177+
3178+ pub fn latest_confirmed_domain_execution_receipt (
3179+ domain_id : DomainId ,
3180+ ) -> Option < ExecutionReceiptOf < T > > {
3181+ crate :: migrations:: execution_receipt:: latest_confirmed_domain_execution_receipt :: < T > (
3182+ domain_id,
3183+ )
3184+ }
31753185}
31763186
31773187impl < T : Config > sp_domains:: DomainOwner < T :: AccountId > for Pallet < T > {
0 commit comments