pub struct StmClerk<D: Clone + Digest> { /* private fields */ }Expand description
Clerk can verify and aggregate SingleSignatures and verify AggregateSignatures.
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 + Send + Sync> Clerk<D>
impl<D: Digest + Clone + FixedOutput + Send + Sync> Clerk<D>
Sourcepub fn new_clerk_from_closed_key_registration(
params: &Parameters,
closed_reg: &ClosedKeyRegistration<D>,
) -> Self
pub fn new_clerk_from_closed_key_registration( params: &Parameters, closed_reg: &ClosedKeyRegistration<D>, ) -> Self
Create a new Clerk from a closed registration instance.
Sourcepub fn from_registration(
params: &Parameters,
closed_reg: &ClosedKeyRegistration<D>,
) -> Self
👎Deprecated since 0.5.0: Use new_clerk_from_closed_key_registration instead
pub fn from_registration( params: &Parameters, closed_reg: &ClosedKeyRegistration<D>, ) -> Self
new_clerk_from_closed_key_registration insteadCreate a new Clerk from a closed registration instance.
Sourcepub fn new_clerk_from_signer(signer: &Signer<D>) -> Self
pub fn new_clerk_from_signer(signer: &Signer<D>) -> Self
Create a Clerk from a signer.
Sourcepub fn from_signer(signer: &Signer<D>) -> Self
👎Deprecated since 0.5.0: Use new_clerk_from_signer instead
pub fn from_signer(signer: &Signer<D>) -> Self
new_clerk_from_signer insteadCreate a Clerk from a signer.
Sourcepub fn aggregate_signatures(
&self,
sigs: &[SingleSignature],
msg: &[u8],
) -> StmResult<AggregateSignature<D>>
👎Deprecated since 0.5.3: Use aggregate_signatures_with_type instead
pub fn aggregate_signatures( &self, sigs: &[SingleSignature], msg: &[u8], ) -> StmResult<AggregateSignature<D>>
aggregate_signatures_with_type insteadAggregate a set of signatures.
Sourcepub fn aggregate_signatures_with_type(
&self,
sigs: &[SingleSignature],
msg: &[u8],
aggregate_signature_type: AggregateSignatureType,
) -> StmResult<AggregateSignature<D>>
pub fn aggregate_signatures_with_type( &self, sigs: &[SingleSignature], msg: &[u8], aggregate_signature_type: AggregateSignatureType, ) -> StmResult<AggregateSignature<D>>
Aggregate a set of signatures with a given proof type.
Sourcepub fn aggregate(
&self,
sigs: &[SingleSignature],
msg: &[u8],
) -> StmResult<AggregateSignature<D>>
👎Deprecated since 0.5.0: Use aggregate_signatures instead
pub fn aggregate( &self, sigs: &[SingleSignature], msg: &[u8], ) -> StmResult<AggregateSignature<D>>
aggregate_signatures insteadAggregate 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 AggregateSignature.
Sourcepub fn compute_aggregate_verification_key(&self) -> AggregateVerificationKey<D>
pub fn compute_aggregate_verification_key(&self) -> AggregateVerificationKey<D>
Compute the AggregateVerificationKey related to the used registration.
Sourcepub fn compute_avk(&self) -> AggregateVerificationKey<D>
👎Deprecated since 0.5.0: Use compute_aggregate_verification_key instead
pub fn compute_avk(&self) -> AggregateVerificationKey<D>
compute_aggregate_verification_key insteadCompute the AggregateVerificationKey related to the used registration.
Sourcepub fn get_registered_party_for_index(
&self,
party_index: &Index,
) -> Option<(VerificationKey, Stake)>
pub fn get_registered_party_for_index( &self, party_index: &Index, ) -> Option<(VerificationKey, Stake)>
Get the (VK, stake) of a party given its index.
Sourcepub fn get_reg_party(
&self,
party_index: &Index,
) -> Option<(VerificationKey, Stake)>
👎Deprecated since 0.5.0: Use get_registered_party_for_index instead
pub fn get_reg_party( &self, party_index: &Index, ) -> Option<(VerificationKey, Stake)>
get_registered_party_for_index insteadGet the (VK, stake) of a party given its index.
Trait Implementations§
Auto Trait Implementations§
impl<D> Freeze for Clerk<D>
impl<D> RefUnwindSafe for Clerk<D>where
D: RefUnwindSafe,
impl<D> Send for Clerk<D>
impl<D> Sync for Clerk<D>
impl<D> Unpin for Clerk<D>
impl<D> UnwindSafe for Clerk<D>where
D: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.