pub enum Error {
Show 18 variants
KernelSumMismatch,
InvalidTotalKernelSum,
CoinbaseSumMismatch,
TooHeavy,
InvalidBlockVersion(HeaderVersion),
InvalidBlockTime,
InvalidPow,
KernelLockHeight(u64),
NRDKernelPreHF3,
NRDKernelNotEnabled,
Transaction(Error),
Secp(Error),
Keychain(Error),
MerkleProof,
Committed(Error),
CutThrough,
Serialization(Error),
Other(String),
}
Expand description
Errors thrown by Block validation
Variants§
KernelSumMismatch
The sum of output minus input commitments does not match the sum of kernel commitments
InvalidTotalKernelSum
The total kernel sum on the block header is wrong
CoinbaseSumMismatch
Same as above but for the coinbase part of a block, including reward
TooHeavy
Restrict block total weight.
InvalidBlockVersion(HeaderVersion)
Block version is invalid for a given block height
InvalidBlockTime
Block time is invalid
InvalidPow
Invalid POW
KernelLockHeight(u64)
Kernel not valid due to lock_height exceeding block header height
NRDKernelPreHF3
NRD kernels are not valid prior to HF3.
NRDKernelNotEnabled
NRD kernels are not valid if disabled locally via “feature flag”.
Transaction(Error)
Underlying tx related error
Secp(Error)
Underlying Secp256k1 error (signature validation or invalid public key typically)
Keychain(Error)
Underlying keychain related error
MerkleProof
Underlying Merkle proof error
Committed(Error)
Error when verifying kernel sums via committed trait.
CutThrough
Validation error relating to cut-through. Specifically the tx is spending its own output, which is not valid.
Serialization(Error)
Underlying serialization error.
Other(String)
Other unspecified error condition
Trait Implementations§
source§impl Error for Error
impl Error for Error
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
impl Eq for Error
impl StructuralPartialEq for Error
Auto Trait Implementations§
impl Freeze for Error
impl RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnwindSafe for Error
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.