Enum grin_chain::ErrorKind[][src]

pub enum ErrorKind {
Show variants Unfit(String), Orphan, DifficultyTooLow, WrongTotalDifficulty, LowEdgebits, InvalidScaling, InvalidPow, OldBlock, InvalidBlockProof(Error), InvalidBlockTime, InvalidBlockHeight, InvalidRoot, InvalidMMRSize, Keychain(Error), Secp(Error), AlreadySpent(Commitment), DuplicateCommitment(Commitment), ImmatureCoinbase, MerkleProof, OutputNotFound, RangeproofNotFound, TxKernelNotFound, OutputSpent, InvalidBlockVersion(HeaderVersion), InvalidTxHashSet(String), StoreErr(ErrorString), FileReadErr(String), SerErr(Error), TxHashSetErr(String), TxLockHeight, NRDRelativeHeight, GenesisBlockRequired, Transaction(Error), Block(Error), Other(String), Committed(Error), Stopped, Bitmap, SyncError(String), SegmentError(SegmentError), SegmenterHeaderMismatch, InvalidSegmentHeight,
}

Chain error definitions

Variants

Unfit(String)

The block doesn’t fit anywhere in our chain

Orphan

Special case of orphan blocks

DifficultyTooLow

Difficulty is too low either compared to ours or the block PoW hash

WrongTotalDifficulty

Addition of difficulties on all previous block is wrong

LowEdgebits

Block header edge_bits is lower than our min

InvalidScaling

Scaling factor between primary and secondary PoW is invalid

InvalidPow

The proof of work is invalid

OldBlock

Peer abusively sending us an old block we already have

InvalidBlockProof(Error)

The block doesn’t sum correctly or a tx signature is invalid

InvalidBlockTime

Block time is too old

InvalidBlockHeight

Block height is invalid (not previous + 1)

InvalidRoot

One of the root hashes in the block is invalid

InvalidMMRSize

One of the MMR sizes in the block header is invalid

Keychain(Error)

Error from underlying keychain impl

Secp(Error)

Error from underlying secp lib

AlreadySpent(Commitment)

One of the inputs in the block has already been spent

DuplicateCommitment(Commitment)

An output with that commitment already exists (should be unique)

ImmatureCoinbase

Attempt to spend a coinbase output before it sufficiently matures.

MerkleProof

Error validating a Merkle proof (coinbase output)

OutputNotFound

Output not found

RangeproofNotFound

Rangeproof not found

TxKernelNotFound

Tx kernel not found

OutputSpent

output spent

InvalidBlockVersion(HeaderVersion)

Invalid block version, either a mistake or outdated software

InvalidTxHashSet(String)

We’ve been provided a bad txhashset

StoreErr(ErrorString)

Internal issue when trying to save or load data from store

FileReadErr(String)

Internal issue when trying to save or load data from append only files

SerErr(Error)

Error serializing or deserializing a type

TxHashSetErr(String)

Error with the txhashset

TxLockHeight

Tx not valid based on lock_height.

NRDRelativeHeight

Tx is not valid due to NRD relative_height restriction.

GenesisBlockRequired

No chain exists and genesis block is required

Transaction(Error)

Error from underlying tx handling

Block(Error)

Error from underlying block handling

Other(String)

Anything else

Committed(Error)

Error from summing and verifying kernel sums via committed trait.

Stopped

We cannot process data once the Grin server has been stopped.

Bitmap

Internal Roaring Bitmap error

SyncError(String)

Error during chain sync

SegmentError(SegmentError)

PIBD segment related error

SegmenterHeaderMismatch

The segmenter is associated to a different block header

InvalidSegmentHeight

Segment height not within allowed range

Trait Implementations

impl Clone for ErrorKind[src]

fn clone(&self) -> ErrorKind[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for ErrorKind[src]

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

Formats the value using the given formatter. Read more

impl Display for ErrorKind[src]

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

Formats the value using the given formatter. Read more

impl Fail for ErrorKind[src]

fn name(&self) -> Option<&str>[src]

Returns the “name” of the error. Read more

fn cause(&self) -> Option<&dyn Fail>[src]

Returns a reference to the underlying cause of this failure, if it is an error that wraps other errors. Read more

fn backtrace(&self) -> Option<&Backtrace>[src]

Returns a reference to the Backtrace carried by this failure, if it carries one. Read more

fn context<D>(self, context: D) -> Context<D> where
    D: Display + Send + Sync + 'static, 
[src]

Provides context for this failure. Read more

fn compat(self) -> Compat<Self>[src]

Wraps this failure in a compatibility wrapper that implements std::error::Error. Read more

impl From<ErrorKind> for Error[src]

fn from(kind: ErrorKind) -> Error[src]

Performs the conversion.

impl PartialEq<ErrorKind> for ErrorKind[src]

fn eq(&self, other: &ErrorKind) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &ErrorKind) -> bool[src]

This method tests for !=.

impl Eq for ErrorKind[src]

impl StructuralEq for ErrorKind[src]

impl StructuralPartialEq for ErrorKind[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> AsFail for T where
    T: Fail
[src]

pub fn as_fail(&self) -> &(dyn Fail + 'static)[src]

Converts a reference to Self into a dynamic trait object of Fail.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> CloneAny for T where
    T: Any + Clone

pub fn clone_any(&self) -> Box<dyn CloneAny + 'static, Global>

pub fn clone_any_send(&self) -> Box<dyn CloneAny + 'static + Send, Global> where
    T: Send

pub fn clone_any_sync(&self) -> Box<dyn CloneAny + 'static + Sync, Global> where
    T: Sync

pub fn clone_any_send_sync(
    &self
) -> Box<dyn CloneAny + 'static + Sync + Send, Global> where
    T: Send + Sync

impl<'a, T> DefaultFeatures<'a> for T where
    T: 'a + Send + Sync + Clone

pub fn clone_boxed(&self) -> Box<dyn DefaultFeatures<'a> + 'a, Global>

Clone this value, and then immediately put it into a Box behind a trait object of this trait. Read more

pub fn self_address_mut(&mut self) -> *mut ()

Returns the address of self. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<'a, T> NonSyncFeatures<'a> for T where
    T: 'a + Clone

pub fn clone_boxed(&self) -> Box<dyn NonSyncFeatures<'a> + 'a, Global>

Clone this value, and then immediately put it into a Box behind a trait object of this trait. Read more

pub fn self_address_mut(&mut self) -> *mut ()

Returns the address of self. Read more

impl<T> SafeBorrow<T> for T where
    T: ?Sized

pub fn borrow_replacement(ptr: &T) -> &T

Given ptr, which was obtained from a prior call to Self::borrow(), return a value with the same nominal lifetime which is guaranteed to survive mutations to Self. Read more

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T> ToString for T where
    T: Display + ?Sized
[src]

pub default fn to_string(&self) -> String[src]

Converts the given value to a String. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V

impl<T> DebugAny for T where
    T: Any + Debug

impl<T> UnsafeAny for T where
    T: Any