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

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

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

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

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

Returns a stack backtrace, if available, of where this error occurred. Read more

👎 Deprecated since 1.42.0:

use the Display impl or to_string()

👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

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

Provides type based access to context intended for error reports. Read more

Converts to this type from the input type.

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

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

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

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

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.