pub enum StmCircuitError {
Show 26 variants
InvalidCircuitParameters {
quorum: u32,
num_lotteries: u32,
},
WitnessLengthMismatch {
expected_quorum: u32,
actual: u32,
},
LotteryIndexTooLarge {
index: u64,
max_supported: u64,
},
LotteryIndexOutOfBounds {
index: u64,
num_lotteries: u32,
},
MerkleSiblingLengthMismatch {
expected_depth: u32,
actual: u32,
},
MerklePositionLengthMismatch {
expected_depth: u32,
actual: u32,
},
FieldModulusParseFailed,
FieldElementConversionFailed,
InvalidBitDecompositionRange {
num_bits: u32,
field_bits: u32,
},
InvalidMerkleTreeDepth {
depth: u32,
},
InvalidSelectedLeafIndex {
index: u32,
num_leaves: u32,
},
EmptyIndices,
WitnessTooShort {
actual: u32,
},
NoDistinctWitnessEntries,
EmptySignerLeaves,
InvalidSignerFixtureIndex {
index: u32,
num_signers: u32,
},
InvalidChallengeBytes,
ChallengeEndiannessMismatch,
InvalidMerkleRootDigestLength {
actual: u32,
},
NonCanonicalMerkleRootDigest,
MerklePathVerificationFailed,
ParamsAssetsDirCreate,
CircuitKeysCacheLockPoisoned {
operation: &'static str,
},
SignatureGenerationFailed,
SignatureVerificationFailed,
VerificationRejected,
}Expand description
Circuit-scoped errors for Halo2 STM validation and execution.
Variants§
InvalidCircuitParameters
Invalid relation parameters: quorum must be strictly lower than number of lotteries.
WitnessLengthMismatch
Witness vector length does not match the configured quorum.
LotteryIndexTooLarge
Witness lottery index does not fit in the circuit’s 32-bit constraint representation.
LotteryIndexOutOfBounds
Witness lottery index is not a valid in-circuit lottery slot.
MerkleSiblingLengthMismatch
Merkle sibling path length does not match the configured Merkle depth.
MerklePositionLengthMismatch
Merkle position path length does not match the configured Merkle depth.
FieldModulusParseFailed
Failed to parse the prime field modulus while splitting field limbs.
FieldElementConversionFailed
Failed to convert a reduced integer into a prime field element.
InvalidBitDecompositionRange
Bit decomposition range is invalid for the selected prime field.
InvalidMerkleTreeDepth
Merkle tree depth does not fit fixture sizing constraints.
InvalidSelectedLeafIndex
Selected leaf index is out of bounds for the current tree.
EmptyIndices
Empty lottery indices were provided where at least one is required.
WitnessTooShort
Witness must contain at least two entries.
NoDistinctWitnessEntries
No distinct witness entries were found.
EmptySignerLeaves
Tried to build a witness from an empty signer set.
InvalidSignerFixtureIndex
Signer leaf index is out of bounds.
InvalidChallengeBytes
Failed to decode challenge bytes into a base field element.
ChallengeEndiannessMismatch
Challenge bytes decode but do not match native challenge value.
InvalidMerkleRootDigestLength
Merkle root digest has an invalid byte length.
NonCanonicalMerkleRootDigest
Merkle root digest is not a canonical base field element encoding.
MerklePathVerificationFailed
STM Merkle-path verification failed for selected leaf.
ParamsAssetsDirCreate
Failed to create the local assets directory for persisted circuit params.
CircuitKeysCacheLockPoisoned
In-memory circuit key cache lock is poisoned.
SignatureGenerationFailed
Signature generation failed while preparing witness.
SignatureVerificationFailed
Signature verification failed while preparing witness.
VerificationRejected
Proof was generated but rejected by the verifier.
Trait Implementations§
Source§impl Clone for StmCircuitError
impl Clone for StmCircuitError
Source§fn clone(&self) -> StmCircuitError
fn clone(&self) -> StmCircuitError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StmCircuitError
impl Debug for StmCircuitError
Source§impl Display for StmCircuitError
impl Display for StmCircuitError
Source§impl Error for StmCircuitError
impl Error for StmCircuitError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl PartialEq for StmCircuitError
impl PartialEq for StmCircuitError
impl Eq for StmCircuitError
impl StructuralPartialEq for StmCircuitError
Auto Trait Implementations§
impl Freeze for StmCircuitError
impl RefUnwindSafe for StmCircuitError
impl Send for StmCircuitError
impl Sync for StmCircuitError
impl Unpin for StmCircuitError
impl UnwindSafe for StmCircuitError
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> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§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> Pointable for T
impl<T> Pointable for T
§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.