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
👎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
This method tests for self and other values to be equal, and is used by ==.
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

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.

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