Trait filecoin_proofs_api::MerkleTreeTrait[][src]

pub trait MerkleTreeTrait: Send + Sync + Debug {
    type Arity: 'static + PoseidonArity;
    type SubTreeArity: 'static + PoseidonArity;
    type TopTreeArity: 'static + PoseidonArity;
    type Hasher: 'static + Hasher;
    type Store: Store<<Self::Hasher as Hasher>::Domain>;
    type Proof: MerkleProofTrait;
    pub fn display() -> String;
pub fn root(&self) -> <Self::Hasher as Hasher>::Domain;
pub fn gen_proof(&self, index: usize) -> Result<Self::Proof, Error>;
pub fn gen_cached_proof(
        &self,
        i: usize,
        rows_to_discard: Option<usize>
    ) -> Result<Self::Proof, Error>;
pub fn row_count(&self) -> usize;
pub fn leaves(&self) -> usize;
pub fn from_merkle(
        tree: MerkleTree<<Self::Hasher as Hasher>::Domain, <Self::Hasher as Hasher>::Function, Self::Store, Self::Arity, Self::SubTreeArity, Self::TopTreeArity>
    ) -> Self; }

Trait used to abstract over the way Merkle Trees are constructed and stored.

Associated Types

type Arity: 'static + PoseidonArity[src]

type SubTreeArity: 'static + PoseidonArity[src]

type TopTreeArity: 'static + PoseidonArity[src]

type Hasher: 'static + Hasher[src]

type Store: Store<<Self::Hasher as Hasher>::Domain>[src]

type Proof: MerkleProofTrait[src]

Loading content...

Required methods

pub fn display() -> String[src]

Print a unique name for this configuration.

pub fn root(&self) -> <Self::Hasher as Hasher>::Domain[src]

Returns the root hash of the tree.

pub fn gen_proof(&self, index: usize) -> Result<Self::Proof, Error>[src]

Creates a merkle proof of the node at the given index.

pub fn gen_cached_proof(
    &self,
    i: usize,
    rows_to_discard: Option<usize>
) -> Result<Self::Proof, Error>
[src]

pub fn row_count(&self) -> usize[src]

pub fn leaves(&self) -> usize[src]

pub fn from_merkle(
    tree: MerkleTree<<Self::Hasher as Hasher>::Domain, <Self::Hasher as Hasher>::Function, Self::Store, Self::Arity, Self::SubTreeArity, Self::TopTreeArity>
) -> Self
[src]

Loading content...

Implementations on Foreign Types

impl<H, S, U, V, W> MerkleTreeTrait for MerkleTreeWrapper<H, S, U, V, W> where
    S: Store<<H as Hasher>::Domain>,
    W: 'static + PoseidonArity,
    V: 'static + PoseidonArity,
    U: 'static + PoseidonArity,
    H: 'static + Hasher
[src]

type Arity = U

type SubTreeArity = V

type TopTreeArity = W

type Hasher = H

type Store = S

type Proof = MerkleProof<<MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Hasher, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::Arity, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::SubTreeArity, <MerkleTreeWrapper<H, S, U, V, W> as MerkleTreeTrait>::TopTreeArity>

Loading content...

Implementors

Loading content...