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: u32, actual: u32, }, 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: u32

The expected transaction version.

actual: u32

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

TODO(doc): @quake

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

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

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.