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§
Sourcetype SlotHash: BlockHashTrait
type SlotHash: BlockHashTrait
The hash of a DA layer block
Sourcetype BlockHeader: BlockHeaderTrait<Hash = Self::SlotHash>
type BlockHeader: BlockHeaderTrait<Hash = Self::SlotHash>
The block header type used by the DA layer
Sourcetype BlobTransaction: BlobReaderTrait<Address = Self::Address>
type BlobTransaction: BlobReaderTrait<Address = Self::Address>
The transaction type used by the DA layer.
Sourcetype Address: BasicAddress
type Address: BasicAddress
The type used to represent addresses on the DA layer.
Sourcetype ValidityCondition: ValidityCondition
type ValidityCondition: ValidityCondition
Any conditions imposed by the DA layer which need to be checked outside of the SNARK
Sourcetype InclusionMultiProof: Serialize + DeserializeOwned
type InclusionMultiProof: Serialize + DeserializeOwned
A proof that each tx in a set of blob transactions is included in a given block.
Sourcetype CompletenessProof: Serialize + DeserializeOwned
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
Sourcetype ChainParams
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.