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§
type StorageValue: Decode
Provided Associated Types§
Required Methods§
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>
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.