OdosErrorCode

Enum OdosErrorCode 

Source
pub enum OdosErrorCode {
Show 53 variants ApiError, NoViablePath, AlgoValidationError, AlgoConnectionError, AlgoTimeout, AlgoInternal, InternalServiceError, ConfigInternal, ConfigConnectionError, ConfigTimeout, TxnAssemblyInternal, TxnAssemblyConnectionError, TxnAssemblyTimeout, ChainDataInternal, ChainDataConnectionError, ChainDataTimeout, PricingInternal, PricingConnectionError, PricingTimeout, GasInternal, GasConnectionError, GasTimeout, GasUnavailable, InvalidRequest, InvalidChainId, InvalidInputTokens, InvalidOutputTokens, InvalidUserAddr, BlockedUserAddr, TooSlippery, SameInputOutput, MultiZapOutput, InvalidTokenCount, InvalidTokenAddr, NonIntegerTokenAmount, NegativeTokenAmount, SameInputOutputTokens, TokenBlacklisted, InvalidTokenProportions, TokenRoutingUnavailable, InvalidReferralCode, InvalidTokenAmount, NonStringTokenAmount, InvalidAssemblyRequest, InvalidAssemblyUserAddr, InvalidReceiverAddr, InvalidSwapRequest, UserAddrRequired, InternalError, SwapUnavailable, PriceCheckFailure, DefaultGasFailure, Unknown(u16),
}
Expand description

Strongly-typed Odos API error codes

Each variant represents a specific error condition documented by Odos. Error codes are grouped by category (1XXX-5XXX ranges).

Variants§

§

ApiError

General API error (1000)

§

NoViablePath

No viable routing path found (2000)

§

AlgoValidationError

Algorithm validation error (2400)

§

AlgoConnectionError

Algorithm connection error (2997)

§

AlgoTimeout

Algorithm timeout (2998)

§

AlgoInternal

Algorithm internal error (2999)

§

InternalServiceError

Internal service error (3000)

§

ConfigInternal

Config service internal error (3100)

§

ConfigConnectionError

Config service connection error (3101)

§

ConfigTimeout

Config service timeout (3102)

§

TxnAssemblyInternal

Transaction assembly internal error (3110)

§

TxnAssemblyConnectionError

Transaction assembly connection error (3111)

§

TxnAssemblyTimeout

Transaction assembly timeout (3112)

§

ChainDataInternal

Chain data internal error (3120)

§

ChainDataConnectionError

Chain data connection error (3121)

§

ChainDataTimeout

Chain data timeout (3122)

§

PricingInternal

Pricing service internal error (3130)

§

PricingConnectionError

Pricing service connection error (3131)

§

PricingTimeout

Pricing service timeout (3132)

§

GasInternal

Gas service internal error (3140)

§

GasConnectionError

Gas service connection error (3141)

§

GasTimeout

Gas service timeout (3142)

§

GasUnavailable

Gas data unavailable (3143)

§

InvalidRequest

Invalid request (4000)

§

InvalidChainId

Invalid chain ID (4001)

§

InvalidInputTokens

Invalid input tokens (4002)

§

InvalidOutputTokens

Invalid output tokens (4003)

§

InvalidUserAddr

Invalid user address (4004)

§

BlockedUserAddr

Blocked user address (4005)

§

TooSlippery

Slippage tolerance too high (4006)

§

SameInputOutput

Same token for input and output (4007)

§

MultiZapOutput

Multiple zap outputs not supported (4008)

§

InvalidTokenCount

Invalid token count (4009)

§

InvalidTokenAddr

Invalid token address (4010)

§

NonIntegerTokenAmount

Non-integer token amount (4011)

§

NegativeTokenAmount

Negative token amount (4012)

§

SameInputOutputTokens

Same tokens in input and output (4013)

§

TokenBlacklisted

Token is blacklisted (4014)

§

InvalidTokenProportions

Invalid token proportions (4015)

§

TokenRoutingUnavailable

Token routing unavailable (4016)

§

InvalidReferralCode

Invalid referral code (4017)

§

InvalidTokenAmount

Invalid token amount (4018)

§

NonStringTokenAmount

Non-string token amount (4019)

§

InvalidAssemblyRequest

Invalid assembly request (4100)

§

InvalidAssemblyUserAddr

Invalid user address in assembly (4101)

§

InvalidReceiverAddr

Invalid receiver address (4102)

§

InvalidSwapRequest

Invalid swap request (4200)

§

UserAddrRequired

User address required (4201)

§

InternalError

Internal error (5000)

§

SwapUnavailable

Swap unavailable (5001)

§

PriceCheckFailure

Price check failure (5002)

§

DefaultGasFailure

Default gas calculation failure (5003)

§

Unknown(u16)

Unknown error code

Implementations§

Source§

impl OdosErrorCode

Source

pub fn code(&self) -> u16

Get the numeric error code value

Source

pub fn category(&self) -> ErrorCategory

Get the error category

Source

pub fn is_general_error(&self) -> bool

Check if this is a general API error

Source

pub fn is_algo_error(&self) -> bool

Check if this is an algorithm/quote error

Source

pub fn is_internal_service_error(&self) -> bool

Check if this is an internal service error

Source

pub fn is_validation_error(&self) -> bool

Check if this is a validation error

Source

pub fn is_internal_error(&self) -> bool

Check if this is an internal error

Source

pub fn is_no_viable_path(&self) -> bool

Check if this specific error is no viable path

Source

pub fn is_invalid_chain_id(&self) -> bool

Check if this is an invalid chain ID error

Source

pub fn is_blocked_user(&self) -> bool

Check if this is a blocked user address error

Source

pub fn is_timeout(&self) -> bool

Check if this is a timeout error (any service)

Source

pub fn is_connection_error(&self) -> bool

Check if this is a connection error (any service)

Source

pub fn is_retryable(&self) -> bool

Check if this error indicates the request should be retried

Retryable errors include:

  • Timeouts (algo, config, assembly, chain data, pricing, gas)
  • Connection errors (all services)
  • Internal errors (algo, services, general)
  • Gas unavailable

Trait Implementations§

Source§

impl Clone for OdosErrorCode

Source§

fn clone(&self) -> OdosErrorCode

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for OdosErrorCode

Source§

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

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

impl Display for OdosErrorCode

Source§

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

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

impl From<OdosErrorCode> for u16

Source§

fn from(error_code: OdosErrorCode) -> Self

Converts to this type from the input type.
Source§

impl From<u16> for OdosErrorCode

Source§

fn from(code: u16) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for OdosErrorCode

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for OdosErrorCode

Source§

impl Eq for OdosErrorCode

Source§

impl StructuralPartialEq for OdosErrorCode

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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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> ToStringFallible for T
where T: Display,

Source§

fn try_to_string(&self) -> Result<String, TryReserveError>

ToString::to_string, but without panic on OOM.

Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more