From f9b3865f0a919b0ecad9de422ec62eeebed85cc5 Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Wed, 23 Aug 2023 12:21:41 +0200 Subject: [PATCH 1/2] Fix features --- dip-template/runtimes/dip-consumer/src/origin_adapter.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dip-template/runtimes/dip-consumer/src/origin_adapter.rs b/dip-template/runtimes/dip-consumer/src/origin_adapter.rs index afb428e509..b9d008e5c8 100644 --- a/dip-template/runtimes/dip-consumer/src/origin_adapter.rs +++ b/dip-template/runtimes/dip-consumer/src/origin_adapter.rs @@ -32,6 +32,12 @@ impl EnsureOrigin for EnsureDipOriginAdapter { fn try_origin(o: RuntimeOrigin) -> Result { EnsureDipOrigin::try_origin(o).map(DipOriginAdapter) } + + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin() -> Result { + // TODO: Replace with actual DIP origin upon benchmarking + Ok(RuntimeOrigin::root()) + } } #[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo, MaxEncodedLen)] From 5dd8f427f3351df552e69655777e175fa1f63881 Mon Sep 17 00:00:00 2001 From: Antonio Antonino Date: Wed, 20 Sep 2023 13:25:16 +0200 Subject: [PATCH 2/2] Add last fixes based on demo feedback --- crates/kilt-dip-support/src/lib.rs | 58 +++++++++++++++--------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/crates/kilt-dip-support/src/lib.rs b/crates/kilt-dip-support/src/lib.rs index b19daada83..c14037fd3b 100644 --- a/crates/kilt-dip-support/src/lib.rs +++ b/crates/kilt-dip-support/src/lib.rs @@ -56,11 +56,11 @@ pub struct SiblingParachainDipStateProof< RelayBlockHeight, DipMerkleProofBlindedValues, DipMerkleProofRevealedLeaf, - DipProviderBlockNumber, + LocalBlockNumber, > { para_state_root: ParachainRootStateProof, dip_identity_commitment: Vec>, - did: DipMerkleProofAndDidSignature, + did: DipMerkleProofAndDidSignature, } #[derive(Encode, Decode, PartialEq, Eq, PartialOrd, Ord, RuntimeDebug, TypeInfo, Clone)] @@ -250,22 +250,21 @@ impl< #[derive(Encode, Decode, Clone, PartialEq, Eq, RuntimeDebug, TypeInfo)] pub struct ChildParachainDipStateProof< - RelayBlockHeight: Copy + Into + TryFrom, - RelayBlockHasher: Hash, + ParentBlockHeight: Copy + Into + TryFrom, + ParentBlockHasher: Hash, DipMerkleProofBlindedValues, DipMerkleProofRevealedLeaf, - DipProviderBlockNumber, > { - para_state_root: ParachainRootStateProof, - relay_header: Header, + para_state_root: ParachainRootStateProof, + relay_header: Header, dip_identity_commitment: Vec>, - did: DipMerkleProofAndDidSignature, + did: DipMerkleProofAndDidSignature, } pub struct DipChildProviderStateProofVerifier< RelayChainInfo, - SiblingProviderParachainId, - SiblingProviderStateInfo, + ChildProviderParachainId, + ChildProviderStateInfo, TxSubmitter, ProviderDipMerkleHasher, ProviderDidKeyId, @@ -280,8 +279,8 @@ pub struct DipChildProviderStateProofVerifier< #[allow(clippy::type_complexity)] PhantomData<( RelayChainInfo, - SiblingProviderParachainId, - SiblingProviderStateInfo, + ChildProviderParachainId, + ChildProviderStateInfo, TxSubmitter, ProviderDipMerkleHasher, ProviderDidKeyId, @@ -297,8 +296,8 @@ impl< Call, Subject, RelayChainInfo, - SiblingProviderParachainId, - SiblingProviderStateInfo, + ChildProviderParachainId, + ChildProviderStateInfo, TxSubmitter, ProviderDipMerkleHasher, ProviderDidKeyId, @@ -312,8 +311,8 @@ impl< > IdentityProofVerifier for DipChildProviderStateProofVerifier< RelayChainInfo, - SiblingProviderParachainId, - SiblingProviderStateInfo, + ChildProviderParachainId, + ChildProviderStateInfo, TxSubmitter, ProviderDipMerkleHasher, ProviderDidKeyId, @@ -346,17 +345,17 @@ impl< + Codec, RelayChainInfo::Key: AsRef<[u8]>, - SiblingProviderParachainId: Get, + ChildProviderParachainId: Get, - SiblingProviderStateInfo: - ProviderParachainStateInfo, - OutputOf: Ord + From::Hasher>>, - SiblingProviderStateInfo::BlockNumber: Encode + Clone, - SiblingProviderStateInfo::Commitment: Decode, - SiblingProviderStateInfo::Key: AsRef<[u8]>, + ChildProviderStateInfo: ProviderParachainStateInfo, + OutputOf: Ord + From::Hasher>>, + ChildProviderStateInfo::BlockNumber: Encode + Clone, + ChildProviderStateInfo::Commitment: Decode, + ChildProviderStateInfo::Key: AsRef<[u8]>, - LocalContextProvider: DidSignatureVerifierContext, - LocalContextProvider::BlockNumber: Encode + CheckedSub + From + PartialOrd, + LocalContextProvider: + DidSignatureVerifierContext::BlockNumber>, + LocalContextProvider::BlockNumber: CheckedSub + From, LocalContextProvider::Hash: Encode, LocalContextProvider::SignedExtra: Encode, LocalDidDetails: Bump + Default + Encode, @@ -375,16 +374,15 @@ impl< Vec>, RevealedDidMerkleProofLeaf< ProviderDidKeyId, - SiblingProviderStateInfo::BlockNumber, + ChildProviderStateInfo::BlockNumber, ProviderWeb3Name, ProviderLinkedAccountId, >, - LocalContextProvider::BlockNumber, >; type Submitter = TxSubmitter; type VerificationResult = RevealedDidMerkleProofLeaves< ProviderDidKeyId, - SiblingProviderStateInfo::BlockNumber, + ChildProviderStateInfo::BlockNumber, ProviderWeb3Name, ProviderLinkedAccountId, MAX_REVEALED_KEYS_COUNT, @@ -413,14 +411,14 @@ impl< // 2. Verify relay chain proof let provider_parachain_header = ParachainHeadProofVerifier::::verify_proof_for_parachain_with_root( - &SiblingProviderParachainId::get(), + &ChildProviderParachainId::get(), &state_root_at_height, proof.para_state_root.proof, )?; // 3. Verify parachain state proof. let subject_identity_commitment = - DipIdentityCommitmentProofVerifier::::verify_proof_for_identifier( + DipIdentityCommitmentProofVerifier::::verify_proof_for_identifier( subject, provider_parachain_header.state_root.into(), proof.dip_identity_commitment,