mithril_stm::stm

Struct StmClerk

source
pub struct StmClerk<D: Clone + Digest> { /* private fields */ }
Expand description

StmClerk can verify and aggregate StmSigs and verify StmMultiSigs. Clerks can only be generated with the registration closed. This avoids that a Merkle Tree is computed before all parties have registered.

Implementations§

source§

impl<D: Digest + Clone + FixedOutput> StmClerk<D>

source

pub fn from_registration( params: &StmParameters, closed_reg: &ClosedKeyReg<D>, ) -> Self

Create a new Clerk from a closed registration instance.

source

pub fn from_signer(signer: &StmSigner<D>) -> Self

Create a Clerk from a signer.

source

pub fn aggregate( &self, sigs: &[StmSig], msg: &[u8], ) -> Result<StmAggrSig<D>, AggregationError>

Aggregate a set of signatures for their corresponding indices.

This function first deduplicates the repeated signatures, and if there are enough signatures, it collects the merkle tree indexes of unique signatures. The list of merkle tree indexes is used to create a batch proof, to prove that all signatures are from eligible signers.

It returns an instance of StmAggrSig.

source

pub fn compute_avk(&self) -> StmAggrVerificationKey<D>

Compute the StmAggrVerificationKey related to the used registration.

source

pub fn get_reg_party( &self, party_index: &Index, ) -> Option<(StmVerificationKey, Stake)>

Get the (VK, stake) of a party given its index.

Trait Implementations§

source§

impl<D: Clone + Clone + Digest> Clone for StmClerk<D>

source§

fn clone(&self) -> StmClerk<D>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<D: Debug + Clone + Digest> Debug for StmClerk<D>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<D> Freeze for StmClerk<D>

§

impl<D> RefUnwindSafe for StmClerk<D>
where D: RefUnwindSafe,

§

impl<D> Send for StmClerk<D>
where D: Sync + Send,

§

impl<D> Sync for StmClerk<D>
where D: Sync + Send,

§

impl<D> Unpin for StmClerk<D>

§

impl<D> UnwindSafe for StmClerk<D>
where D: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.