sp_domains_fraud_proof::storage_proof

Trait BasicStorageProof

source
pub trait BasicStorageProof<Block: BlockT>:
    Into<StorageProof>
    + From<StorageProof>
    + Clone {
    type StorageValue: Decode;
    type Key = ();

    // Required method
    fn storage_key_request(
        key: Self::Key,
    ) -> FraudProofStorageKeyRequest<NumberFor<Block>>;

    // Provided methods
    fn generate<PP: ProofProvider<Block>, SKPI: FraudProofStorageKeyProviderInstance<NumberFor<Block>>>(
        proof_provider: &PP,
        block_hash: Block::Hash,
        key: Self::Key,
        storage_key_provider: &SKPI,
    ) -> Result<Self, GenerationError> { ... }
    fn verify<SKP: FraudProofStorageKeyProvider<NumberFor<Block>>>(
        self,
        key: Self::Key,
        state_root: &Block::Hash,
    ) -> Result<Self::StorageValue, VerificationError> { ... }
}

Required Associated Types§

source

type StorageValue: Decode

Provided Associated Types§

source

type Key = ()

Required Methods§

source

fn storage_key_request( key: Self::Key, ) -> FraudProofStorageKeyRequest<NumberFor<Block>>

Provided Methods§

source

fn generate<PP: ProofProvider<Block>, SKPI: FraudProofStorageKeyProviderInstance<NumberFor<Block>>>( proof_provider: &PP, block_hash: Block::Hash, key: Self::Key, storage_key_provider: &SKPI, ) -> Result<Self, GenerationError>

source

fn verify<SKP: FraudProofStorageKeyProvider<NumberFor<Block>>>( self, key: Self::Key, state_root: &Block::Hash, ) -> Result<Self::StorageValue, VerificationError>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

source§

impl<Block: BlockT> BasicStorageProof<Block> for BlockDigestProof

source§

type StorageValue = Digest

source§

impl<Block: BlockT> BasicStorageProof<Block> for BlockRandomnessProof

source§

type StorageValue = Randomness

source§

impl<Block: BlockT> BasicStorageProof<Block> for ConsensusTransactionByteFeeProof

source§

type StorageValue = BlockTransactionByteFee<u128>

source§

impl<Block: BlockT> BasicStorageProof<Block> for DomainChainsAllowlistUpdateStorageProof

source§

type StorageValue = DomainAllowlistUpdates

source§

type Key = DomainId

source§

impl<Block: BlockT> BasicStorageProof<Block> for DomainRuntimeCodeProof

source§

type StorageValue = RuntimeObject<<<Block as Block>::Header as Header>::Number, <Block as Block>::Hash>

source§

type Key = u32

source§

impl<Block: BlockT> BasicStorageProof<Block> for DomainSudoCallStorageProof

source§

type StorageValue = DomainSudoCall

source§

type Key = DomainId

source§

impl<Block: BlockT> BasicStorageProof<Block> for DynamicCostOfStorageProof

source§

impl<Block: BlockT> BasicStorageProof<Block> for SuccessfulBundlesProof

source§

type StorageValue = Vec<H256>

source§

type Key = DomainId

source§

impl<Block: BlockT> BasicStorageProof<Block> for TimestampStorageProof

source§

impl<Block: BlockT, MmrHash: Decode + Clone> BasicStorageProof<Block> for MmrRootStorageProof<MmrHash>

source§

type StorageValue = MmrHash

source§

type Key = <<Block as Block>::Header as Header>::Number