Skip to main content

ErrorReason

Enum ErrorReason 

Source
#[non_exhaustive]
pub enum ErrorReason {
Show 29 variants InsufficientFunds, InvalidExactEvmPayloadAuthorizationValidAfter, InvalidExactEvmPayloadAuthorizationValidBefore, InvalidExactEvmPayloadAuthorizationValueMismatch, InvalidExactEvmPayloadSignature, InvalidExactEvmPayloadRecipientMismatch, InvalidNetwork, InvalidPayload, InvalidPaymentRequirements, InvalidScheme, UnsupportedScheme, InvalidX402Version, InvalidTransactionState, UnexpectedVerifyError, UnexpectedSettleError, SettlementPending, DuplicateSettlement, NonceAlreadyUsed, Permit2AllowanceRequired, InvalidUptoEvmPayloadSettlementExceedsAmount, UptoFacilitatorMismatch, UptoUnauthorizedFacilitator, UptoAmountExceedsPermitted, InvalidExactSolanaPayloadMemoMismatch, InvalidExactSolanaPayloadMemoCount, IncompatibleSettlementMode, SettlementAborted, ExtensionEchoMismatch, Custom(CompactString),
}
Expand description

Canonical error code on the wire when a payment fails.

Unknown codes round-trip through Self::Custom.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

InsufficientFunds

Wire code: insufficient_funds.

§

InvalidExactEvmPayloadAuthorizationValidAfter

Wire code: invalid_exact_evm_payload_authorization_valid_after.

§

InvalidExactEvmPayloadAuthorizationValidBefore

Wire code: invalid_exact_evm_payload_authorization_valid_before.

§

InvalidExactEvmPayloadAuthorizationValueMismatch

Wire code: invalid_exact_evm_payload_authorization_value_mismatch.

§

InvalidExactEvmPayloadSignature

Wire code: invalid_exact_evm_payload_signature.

§

InvalidExactEvmPayloadRecipientMismatch

Wire code: invalid_exact_evm_payload_recipient_mismatch.

§

InvalidNetwork

Wire code: invalid_network.

§

InvalidPayload

Wire code: invalid_payload.

§

InvalidPaymentRequirements

Wire code: invalid_payment_requirements.

§

InvalidScheme

Wire code: invalid_scheme.

§

UnsupportedScheme

Wire code: unsupported_scheme.

§

InvalidX402Version

Wire code: invalid_x402_version.

§

InvalidTransactionState

Wire code: invalid_transaction_state.

§

UnexpectedVerifyError

Wire code: unexpected_verify_error.

§

UnexpectedSettleError

Wire code: unexpected_settle_error.

§

SettlementPending

Wire code: settlement_pending.

Non-terminal. A crate::payment::SettleResponse::Failure with this reason MUST carry a non-empty transaction.

§

DuplicateSettlement

Wire code: duplicate_settlement.

§

NonceAlreadyUsed

Wire code: nonce_already_used.

§

Permit2AllowanceRequired

Wire code: permit2_allowance_required. HTTP mapping: 412.

§

InvalidUptoEvmPayloadSettlementExceedsAmount

Wire code: invalid_upto_evm_payload_settlement_exceeds_amount.

§

UptoFacilitatorMismatch

Wire code: upto_facilitator_mismatch.

§

UptoUnauthorizedFacilitator

Wire code: upto_unauthorized_facilitator.

§

UptoAmountExceedsPermitted

Wire code: upto_amount_exceeds_permitted.

§

InvalidExactSolanaPayloadMemoMismatch

Wire code: invalid_exact_solana_payload_memo_mismatch.

§

InvalidExactSolanaPayloadMemoCount

Wire code: invalid_exact_solana_payload_memo_count.

§

IncompatibleSettlementMode

Wire code: incompatible_settlement_mode. HTTP mapping: 500.

§

SettlementAborted

Wire code: settlement_aborted. HTTP mapping: 402.

§

ExtensionEchoMismatch

Wire code: extension_echo_mismatch.

§

Custom(CompactString)

Unknown wire code, preserved verbatim.

Implementations§

Source§

impl ErrorReason

Source

pub fn as_str(&self) -> &str

Returns the wire-format code (snake_case per spec §9).

Source

pub fn from_wire(code: &str) -> Self

Maps a wire code to a canonical variant, or Self::Custom.

Trait Implementations§

Source§

impl Clone for ErrorReason

Source§

fn clone(&self) -> ErrorReason

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ErrorReason

Source§

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

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

impl<'de> Deserialize<'de> for ErrorReason

Source§

fn deserialize<D: Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error>

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for ErrorReason

Source§

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

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

impl Eq for ErrorReason

Source§

impl From<&str> for ErrorReason

Source§

fn from(value: &str) -> Self

Converts to this type from the input type.
Source§

impl From<CompactString> for ErrorReason

Source§

fn from(value: CompactString) -> Self

Converts to this type from the input type.
Source§

impl From<String> for ErrorReason

Source§

fn from(value: String) -> Self

Converts to this type from the input type.
Source§

impl Hash for ErrorReason

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ErrorReason

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for ErrorReason

Source§

fn serialize<S: Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error>

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ErrorReason

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where 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<T> ToCompactString for T
where T: Display,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

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 T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

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

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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.