pub enum TransactionError {
Show 13 variants InsufficientCellCapacity { inner: TransactionErrorSource, index: usize, occupied_capacity: Capacity, capacity: Capacity, }, OutputsSumOverflow { inputs_sum: Capacity, outputs_sum: Capacity, }, Empty { inner: TransactionErrorSource, }, DuplicateCellDeps { out_point: OutPoint, }, DuplicateHeaderDeps { hash: Byte32, }, OutputsDataLengthMismatch { outputs_len: usize, outputs_data_len: usize, }, InvalidSince { index: usize, }, Immature { index: usize, }, CellbaseImmaturity { inner: TransactionErrorSource, index: usize, }, MismatchedVersion { expected: Version, actual: Version, }, ExceededMaximumBlockBytes { limit: u64, actual: u64, }, Compatible { feature: &'static str, }, Internal { description: String, },
}
Expand description

The error types to transactions.

Variants§

§

InsufficientCellCapacity

Fields

§inner: TransactionErrorSource

The transaction field that causes error. It should always be TransactionErrorSource::Outputs.

§index: usize

The index of that erroneous output.

§occupied_capacity: Capacity

The occupied capacity of that erroneous output.

§capacity: Capacity

The capacity of that erroneous output.

There is an erroneous output that its occupied capacity is greater than its capacity (output.occupied_capacity() > output.capacity()).

§

OutputsSumOverflow

Fields

§inputs_sum: Capacity

The total capacity of inputs.

§outputs_sum: Capacity

The total capacity of outputs.

The total capacity of outputs is less than the total capacity of inputs (SUM([o.capacity for o in outputs]) > SUM([i.capacity for i in inputs]).

§

Empty

Fields

§inner: TransactionErrorSource

The transaction field that causes the error. It should be TransactionErrorSource::Inputs or TransactionErrorSource::Outputs.

Either inputs or outputs of the transaction are empty (inputs.is_empty() || outputs.is_empty()).

§

DuplicateCellDeps

Fields

§out_point: OutPoint

The out-point of that duplicated CellDep.

There are duplicated CellDeps within the same transaction.

§

DuplicateHeaderDeps

Fields

§hash: Byte32

The block hash of that duplicated HeaderDep.

There are duplicated HeaderDep within the same transaction.

§

OutputsDataLengthMismatch

Fields

§outputs_len: usize

The length of outputs.

§outputs_data_len: usize

The length of outputs-data.

The length of outputs is not equal to the length of outputs-data (outputs.len() != outputs_data.len()).

§

InvalidSince

Fields

§index: usize

The index of input with invalid since field

Error dues to the the fact that the since rule is not respected.

See also 0017-tx-valid-since.

§

Immature

Fields

§index: usize

The index of input with immature since field.

The transaction is not mature yet, according to the since rule.

See also 0017-tx-valid-since.

§

CellbaseImmaturity

Fields

§inner: TransactionErrorSource

The transaction field that causes the error. It should be TransactionErrorSource::Inputs or TransactionErrorSource::CellDeps. It does not allow using an immature cell as input out-point and dependency out-point.

§index: usize

The index of immature input out-point or dependency out-point.

The transaction is not mature yet, according to the cellbase maturity rule.

§

MismatchedVersion

Fields

§expected: Version

The expected transaction version.

§actual: Version

The actual transaction version.

The transaction version does not match with the system expected.

§

ExceededMaximumBlockBytes

Fields

§limit: u64

The limited transaction size.

§actual: u64

The actual transaction size.

The transaction size exceeds limit.

§

Compatible

Fields

§feature: &'static str

The feature name.

The compatible error.

§

Internal

Fields

§description: String

The error description

The internal error.

Implementations§

source§

impl TransactionError

source

pub fn is_malformed_tx(&self) -> bool

Returns whether this transaction error indicates that the transaction is malformed.

Trait Implementations§

source§

impl Clone for TransactionError

source§

fn clone(&self) -> TransactionError

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 Debug for TransactionError

source§

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

Formats the value using the given formatter. Read more
source§

impl Display for TransactionError

source§

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

Formats the value using the given formatter. Read more
source§

impl Error for TransactionError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl From<TransactionError> for Error

source§

fn from(error: TransactionError) -> Self

Converts to this type from the input type.
source§

impl PartialEq<TransactionError> for TransactionError

source§

fn eq(&self, other: &TransactionError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for TransactionError

source§

impl StructuralEq for TransactionError

source§

impl StructuralPartialEq for TransactionError

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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<E> Provider for Ewhere E: Error + ?Sized,

source§

fn provide<'a>(&'a self, demand: &mut Demand<'a>)

🔬This is a nightly-only experimental API. (provide_any)
Data providers should implement this method to provide all values they are able to provide by using demand. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

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> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

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 Twhere U: TryFrom<T>,

§

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.
§

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

§

fn vzip(self) -> V