pub enum TunaError {
Show 63 variants
TypeCastOverflow = 6_500,
MathOverflow = 6_501,
MathUnderflow = 6_502,
VaultNotInitialized = 6_559,
WithdrawRequestExceedsUserBalance = 6_560,
ZeroPriceRange = 6_561,
AmountSlippageExceeded = 6_600,
BadDebt = 6_601,
InvalidRemainingAccountsLength = 6_602,
InvalidInstructionArguments = 6_603,
InvalidMarketMaker = 6_604,
InvalidAccountDiscriminator = 6_605,
InvalidAccountOwner = 6_606,
InvalidPool = 6_607,
InvalidVault = 6_608,
InsufficientLiquidity = 6_609,
InterestRateIsOutOfRange = 6_610,
LeverageIsOutOfRange = 6_611,
LeftoversExceeded = 6_612,
LiquidationFeeIsOutOfRange = 6_613,
LiquidationThresholdIsOutOfRange = 6_614,
MarketDisabled = 6_615,
MarketDebtLimitExceeded = 6_616,
NoExtraAccountsForTransferHook = 6_617,
OracleStalePrice = 6_618,
OraclePriceDeviationThresholdExceeded = 6_619,
OraclePriceDeviationThresholdOutOfRange = 6_620,
PositionIsHealthy = 6_622,
PositionIsLiquidated = 6_623,
PositionIsUnhealthy = 6_624,
PositionNotEmpty = 6_625,
PositionIsEmpty = 6_626,
PositionIsAutoRebalanceable = 6_627,
PositionSizeLimitExceeded = 6_628,
ProtocolFeeIsOutOfRange = 6_640,
RebalanceConditionsNotMet = 6_641,
RemainingAccountsDuplicatedAccountsType = 6_642,
RemainingAccountsInvalidSlice = 6_643,
RemainingAccountsInvalidSliceLength = 6_644,
RemainingAccountsInsufficient = 6_645,
RequiredRemainingAccountNotProvided = 6_646,
SolverFailedToFindRoot = 6_647,
SupplyLimitExceeded = 6_648,
Suspended = 6_649,
SwapSlippageExceeded = 6_650,
SwapSlippageIsOutOfRange = 6_651,
SwapToPositionRatioEstimationFailed = 6_652,
SwapQuoteNotEqualToActualSwapAmount = 6_653,
TransferFeeCalculationError = 6_654,
UnableToLoadAccountData = 6_655,
UnableToDeserializeAccountData = 6_656,
UnexpectedValue = 6_657,
UnsupportedTokenMint = 6_658,
ZeroYield = 6_662,
ZeroAmount = 6_663,
IncorrectPositionDirection = 6_670,
RecipientAccountIsNotSet = 6_671,
MAPriceDeviationThresholdExceeded = 6_672,
InvalidJupiterRoute = 6_673,
InsufficientSwapOutputAmount = 6_674,
IncorrectSwapInputAmount = 6_675,
IncorrectSwapOutputAmount = 6_676,
AccountNotInitialized = 6_677,
}Variants§
TypeCastOverflow = 6_500
6500 - Type cast overflow
MathOverflow = 6_501
6501 - Math overflow
MathUnderflow = 6_502
6502 - Math underflow
VaultNotInitialized = 6_559
6559 - Lending vault is not initialized
WithdrawRequestExceedsUserBalance = 6_560
6560 - Withdraw request the exceeds user balance
ZeroPriceRange = 6_561
6561 - Zero price range: the lower price is equal to upper price)
AmountSlippageExceeded = 6_600
6600 - Amount slippage exceeded
BadDebt = 6_601
6601 - Bad debt is not allowed for the executed instruction
InvalidRemainingAccountsLength = 6_602
6602 - Invalid number of remaining accounts
InvalidInstructionArguments = 6_603
6603 - Invalid instruction arguments
InvalidMarketMaker = 6_604
6604 - Invalid market maker
InvalidAccountDiscriminator = 6_605
6605 - Invalid account discriminator
InvalidAccountOwner = 6_606
6606 - Invalid account owner
InvalidPool = 6_607
6607 - Invalid Fusion or Orca pool
InvalidVault = 6_608
6608 - Vault address is invalid
InsufficientLiquidity = 6_609
6609 - Insufficient liquidity
InterestRateIsOutOfRange = 6_610
6610 - Interest rate is out of range
LeverageIsOutOfRange = 6_611
6611 - Leverage is out or range
LeftoversExceeded = 6_612
6612 - Leftovers percentage exceeded the maximum allowed value
LiquidationFeeIsOutOfRange = 6_613
6613 - Liquidation fee is out of range
LiquidationThresholdIsOutOfRange = 6_614
6614 - Liquidation threshold is out of range
MarketDisabled = 6_615
6615 - Market is disabled
MarketDebtLimitExceeded = 6_616
6616 - Exceed the maximum allowed debt for the market
NoExtraAccountsForTransferHook = 6_617
6617 - Unable to call transfer hook without extra accounts
OracleStalePrice = 6_618
6618 - Oracle price is stale
OraclePriceDeviationThresholdExceeded = 6_619
6619 - Oracle price deviation threshold exceeded
OraclePriceDeviationThresholdOutOfRange = 6_620
6620 - Oracle price deviation threshold out of range
PositionIsHealthy = 6_622
6622 - Position is healthy
PositionIsLiquidated = 6_623
6623 - Position is already liquidated
PositionIsUnhealthy = 6_624
6624 - Position is unhealthy
PositionNotEmpty = 6_625
6625 - Position is not empty
PositionIsEmpty = 6_626
6626 - Position is empty
PositionIsAutoRebalanceable = 6_627
6627 - Unable to claim yield for auto re-balanceable positions
PositionSizeLimitExceeded = 6_628
6628 - Position size exceeds the maximum allowed value
ProtocolFeeIsOutOfRange = 6_640
6640 - Protocol fee is out of range
RebalanceConditionsNotMet = 6_641
6641 - Rebalance conditions are not met
RemainingAccountsDuplicatedAccountsType = 6_642
6642 - Same accounts type is provided more than once
RemainingAccountsInvalidSlice = 6_643
6643 - Invalid remaining accounts
RemainingAccountsInvalidSliceLength = 6_644
6644 - Invalid remaining accounts slice length
RemainingAccountsInsufficient = 6_645
6645 - Insufficient remaining accounts
RequiredRemainingAccountNotProvided = 6_646
6646 - Required remaining account is not provided
SolverFailedToFindRoot = 6_647
6647 - Swap equation solver failed to t find the root
SupplyLimitExceeded = 6_648
6648 - Lending vault supply limit exceeded
Suspended = 6_649
6649 - Instruction is suspended
SwapSlippageExceeded = 6_650
6650 - Maximum allowed swap slippage is exceeded
SwapSlippageIsOutOfRange = 6_651
6651 - Provided swap slippage value is out of range
SwapToPositionRatioEstimationFailed = 6_652
6652 - Swap to position ratio estimation failed
SwapQuoteNotEqualToActualSwapAmount = 6_653
6653 - Swap quote amount is not equal to the actual swap amount
TransferFeeCalculationError = 6_654
6654 - Transfer fee calculation failed
UnableToLoadAccountData = 6_655
6655 - Unable to load the account data
UnableToDeserializeAccountData = 6_656
6656 - Unable to deserialize the account data
UnexpectedValue = 6_657
6657 - Unexpected value
UnsupportedTokenMint = 6_658
6658 - Token mint has unsupported attributes
ZeroYield = 6_662
6662 - Collected yield is zero
ZeroAmount = 6_663
6663 - Position amount is zero
IncorrectPositionDirection = 6_670
6670 - Incorrect position direction
RecipientAccountIsNotSet = 6_671
6671 - Optional recipient account is not set
MAPriceDeviationThresholdExceeded = 6_672
6672 - Moving Average price deviation threshold exceeded
InvalidJupiterRoute = 6_673
6673 - Invalid jupiter route data
InsufficientSwapOutputAmount = 6_674
6674 - Insufficient swap output amount
IncorrectSwapInputAmount = 6_675
6675 - Incorrect swap input amount
IncorrectSwapOutputAmount = 6_676
6676 - Incorrect swap output amount
AccountNotInitialized = 6_677
6677 - Account is not initialized
Trait Implementations§
Source§impl Error for TunaError
impl Error for TunaError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<TunaError> for ProgramError
impl From<TunaError> for ProgramError
Source§impl FromPrimitive for TunaError
impl FromPrimitive for TunaError
Source§fn from_i64(n: i64) -> Option<Self>
fn from_i64(n: i64) -> Option<Self>
i64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u64(n: u64) -> Option<Self>
fn from_u64(n: u64) -> Option<Self>
u64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_isize(n: isize) -> Option<Self>
fn from_isize(n: isize) -> Option<Self>
isize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i8(n: i8) -> Option<Self>
fn from_i8(n: i8) -> Option<Self>
i8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i16(n: i16) -> Option<Self>
fn from_i16(n: i16) -> Option<Self>
i16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i32(n: i32) -> Option<Self>
fn from_i32(n: i32) -> Option<Self>
i32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i128(n: i128) -> Option<Self>
fn from_i128(n: i128) -> Option<Self>
i128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreSource§fn from_usize(n: usize) -> Option<Self>
fn from_usize(n: usize) -> Option<Self>
usize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u8(n: u8) -> Option<Self>
fn from_u8(n: u8) -> Option<Self>
u8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u16(n: u16) -> Option<Self>
fn from_u16(n: u16) -> Option<Self>
u16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u32(n: u32) -> Option<Self>
fn from_u32(n: u32) -> Option<Self>
u32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u128(n: u128) -> Option<Self>
fn from_u128(n: u128) -> Option<Self>
u128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreimpl Eq for TunaError
impl StructuralPartialEq for TunaError
Auto Trait Implementations§
impl Freeze for TunaError
impl RefUnwindSafe for TunaError
impl Send for TunaError
impl Sync for TunaError
impl Unpin for TunaError
impl UnwindSafe for TunaError
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.