Type Definition sp_runtime::ApplyExtrinsicResult

source ·
pub type ApplyExtrinsicResult = Result<DispatchOutcome, TransactionValidityError>;
Expand description

The result of applying of an extrinsic.

This type is typically used in the context of BlockBuilder to signal that the extrinsic in question cannot be included.

A block containing extrinsics that have a negative inclusion outcome is invalid. A negative result can only occur during the block production, where such extrinsics are detected and removed from the block that is being created and the transaction pool.

To rehash: every extrinsic in a valid block must return a positive ApplyExtrinsicResult.

Examples of reasons preventing inclusion in a block:

  • More block weight is required to process the extrinsic than is left in the block being built. This doesn’t necessarily mean that the extrinsic is invalid, since it can still be included in the next block if it has enough spare weight available.
  • The sender doesn’t have enough funds to pay the transaction inclusion fee. Including such a transaction in the block doesn’t make sense.
  • The extrinsic supplied a bad signature. This transaction won’t become valid ever.