Trait DaSpec

Source
pub trait DaSpec:
    'static
    + Debug
    + PartialEq
    + Eq {
    type SlotHash: BlockHashTrait;
    type BlockHeader: BlockHeaderTrait<Hash = Self::SlotHash>;
    type BlobTransaction: BlobReaderTrait<Address = Self::Address>;
    type Address: BasicAddress;
    type ValidityCondition: ValidityCondition;
    type InclusionMultiProof: Serialize + DeserializeOwned;
    type CompletenessProof: Serialize + DeserializeOwned;
    type ChainParams;
}
Expand description

A specification for the types used by a DA layer.

Required Associated Types§

Source

type SlotHash: BlockHashTrait

The hash of a DA layer block

Source

type BlockHeader: BlockHeaderTrait<Hash = Self::SlotHash>

The block header type used by the DA layer

Source

type BlobTransaction: BlobReaderTrait<Address = Self::Address>

The transaction type used by the DA layer.

Source

type Address: BasicAddress

The type used to represent addresses on the DA layer.

Source

type ValidityCondition: ValidityCondition

Any conditions imposed by the DA layer which need to be checked outside of the SNARK

Source

type InclusionMultiProof: Serialize + DeserializeOwned

A proof that each tx in a set of blob transactions is included in a given block.

Source

type CompletenessProof: Serialize + DeserializeOwned

A proof that a claimed set of transactions is complete. For example, this could be a range proof demonstrating that the provided BlobTransactions represent the entire contents of Celestia namespace in a given block

Source

type ChainParams

The parameters of the rollup which are baked into the state-transition function. For example, this could include the namespace of the rollup on Celestia.

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§