pub enum Error<T> {
Show 62 variants
UnableToCalculateFee,
FailedToCalculatePriceWithoutImpact,
UnableToGetBalance,
ImpossibleToDecideAssetPairAmounts,
PoolPairRatioAndPairSwapRatioIsDifferent,
PairSwapActionFeeIsSmallerThanRecommended,
SourceBalanceIsNotLargeEnough,
TargetBalanceIsNotLargeEnough,
UnableToDeriveFeeAccount,
FeeAccountIsInvalid,
SourceAndClientAccountDoNotMatchAsEqual,
AssetsMustNotBeSame,
ImpossibleToDecideDepositLiquidityAmounts,
InvalidDepositLiquidityBasicAssetAmount,
InvalidDepositLiquidityTargetAssetAmount,
PairSwapActionMinimumLiquidityIsSmallerThanRecommended,
DestinationAmountOfLiquidityIsNotLargeEnough,
SourceBaseAmountIsNotLargeEnough,
TargetBaseAmountIsNotLargeEnough,
PoolIsInvalid,
PoolIsEmpty,
ZeroValueInAmountParameter,
AccountBalanceIsInvalid,
InvalidDepositLiquidityDestinationAmount,
InitialLiqudityDepositRatioMustBeDefined,
TechAssetIsNotRepresentable,
UnableToDecideMarkerAsset,
UnableToGetAssetRepr,
ImpossibleToDecideWithdrawLiquidityAmounts,
InvalidWithdrawLiquidityBasicAssetAmount,
InvalidWithdrawLiquidityTargetAssetAmount,
SourceBaseAmountIsTooLarge,
SourceBalanceOfLiquidityTokensIsNotLargeEnough,
DestinationBaseBalanceIsNotLargeEnough,
DestinationTargetBalanceIsNotLargeEnough,
InvalidAssetForLiquidityMarking,
AssetDecodingError,
CalculatedValueIsOutOfDesiredBounds,
BaseAssetIsNotMatchedWithAnyAssetArguments,
DestinationAmountMustBeSame,
SourceAmountMustBeSame,
PoolInitializationIsInvalid,
PoolIsAlreadyInitialized,
InvalidMinimumBoundValueOfBalance,
ImpossibleToDecideValidPairValuesFromRangeForThisPool,
RangeValuesIsInvalid,
CalculatedValueIsNotMeetsRequiredBoundaries,
GettingFeeFromDestinationIsImpossible,
FixedWrapperCalculationFailed,
ThisCaseIsNotSupported,
PoolBecameInvalidAfterOperation,
UnableToConvertAssetToTechAssetId,
UnableToGetXORPartFromMarkerAsset,
PoolTokenSupplyOverflow,
IncRefError,
UnableToDepositXorLessThanMinimum,
UnsupportedQuotePath,
NotEnoughUnlockedLiquidity,
UnableToCreatePoolWithIndivisibleAssets,
UnableToOperateWithIndivisibleAssets,
NotEnoughLiquidityOutOfFarming,
TargetAssetIsRestricted,
// some variants omitted
}
Expand description
Custom dispatch errors of this pallet.
Variants§
UnableToCalculateFee
It is impossible to calculate fee for some pair swap operation, or other operation.
FailedToCalculatePriceWithoutImpact
Failure while calculating price ignoring non-linearity of liquidity source.
UnableToGetBalance
Is is impossible to get balance.
ImpossibleToDecideAssetPairAmounts
Impossible to decide asset pair amounts.
PoolPairRatioAndPairSwapRatioIsDifferent
Pool pair ratio and pair swap ratio are different.
PairSwapActionFeeIsSmallerThanRecommended
Pair swap action fee is smaller than recommended.
SourceBalanceIsNotLargeEnough
Source balance is not large enough.
TargetBalanceIsNotLargeEnough
Target balance is not large enough.
UnableToDeriveFeeAccount
It is not possible to derive fee account.
FeeAccountIsInvalid
The fee account is invalid.
SourceAndClientAccountDoNotMatchAsEqual
Source and client accounts do not match as equal.
AssetsMustNotBeSame
In this case assets must not be same.
ImpossibleToDecideDepositLiquidityAmounts
Impossible to decide deposit liquidity amounts.
InvalidDepositLiquidityBasicAssetAmount
Invalid deposit liquidity base asset amount.
InvalidDepositLiquidityTargetAssetAmount
Invalid deposit liquidity target asset amount.
PairSwapActionMinimumLiquidityIsSmallerThanRecommended
Pair swap action minimum liquidity is smaller than recommended.
DestinationAmountOfLiquidityIsNotLargeEnough
Destination amount of liquidity is not large enough.
SourceBaseAmountIsNotLargeEnough
Source base amount is not large enough.
TargetBaseAmountIsNotLargeEnough
Target base amount is not large enough.
PoolIsInvalid
The balance structure of pool is invalid.
PoolIsEmpty
The pool has empty liquidity.
ZeroValueInAmountParameter
Amount parameter has zero value, it is invalid.
AccountBalanceIsInvalid
The account balance is invalid.
InvalidDepositLiquidityDestinationAmount
Invalid deposit liquidity destination amount.
InitialLiqudityDepositRatioMustBeDefined
Initial liquidity deposit ratio must be defined.
TechAssetIsNotRepresentable
Technical asset is not representable.
UnableToDecideMarkerAsset
Unable or impossible to decide marker asset.
UnableToGetAssetRepr
Unable or impossible to get asset representation.
ImpossibleToDecideWithdrawLiquidityAmounts
Impossible to decide withdraw liquidity amounts.
InvalidWithdrawLiquidityBasicAssetAmount
Invalid withdraw liquidity base asset amount.
InvalidWithdrawLiquidityTargetAssetAmount
Invalid withdraw liquidity target asset amount.
SourceBaseAmountIsTooLarge
Source base amount is too large.
SourceBalanceOfLiquidityTokensIsNotLargeEnough
Source balance of liquidity is not large enough.
DestinationBaseBalanceIsNotLargeEnough
Destination base balance is not large enough.
DestinationTargetBalanceIsNotLargeEnough
Destination base balance is not large enough.
InvalidAssetForLiquidityMarking
Asset for liquidity marking is invalid.
AssetDecodingError
Error in asset decoding.
CalculatedValueIsOutOfDesiredBounds
Calculated value is out of desired bounds.
BaseAssetIsNotMatchedWithAnyAssetArguments
The base asset is not matched with any asset arguments.
DestinationAmountMustBeSame
Some values need to be same, the destination amount must be same.
SourceAmountMustBeSame
Some values need to be same, the source amount must be same.
PoolInitializationIsInvalid
The pool initialization is invalid and has failed.
PoolIsAlreadyInitialized
The pool is already initialized.
InvalidMinimumBoundValueOfBalance
The minimum bound values of balance are invalid.
ImpossibleToDecideValidPairValuesFromRangeForThisPool
It is impossible to decide valid pair values from range for this pool.
RangeValuesIsInvalid
This range values is not validy by rules of correct range.
CalculatedValueIsNotMeetsRequiredBoundaries
The values that is calculated is out out of required bounds.
GettingFeeFromDestinationIsImpossible
In this case getting fee from destination is impossible.
FixedWrapperCalculationFailed
Math calculation with fixed number has failed to complete.
ThisCaseIsNotSupported
This case if not supported by logic of pool of validation code.
PoolBecameInvalidAfterOperation
Pool becomes invalid after operation.
UnableToConvertAssetToTechAssetId
Unable to convert asset to tech asset id.
UnableToGetXORPartFromMarkerAsset
Unable to get XOR part from marker asset.
PoolTokenSupplyOverflow
Pool token supply has reached limit of data type.
IncRefError
Couldn’t increase reference counter for the account that adds liquidity. It is expected to never happen because if the account has funds to add liquidity, it has a provider from balances.
UnableToDepositXorLessThanMinimum
Unable to provide liquidity because its XOR part is lesser than the minimum value (0.007)
UnsupportedQuotePath
Attempt to quote via unsupported path, i.e. both output and input tokens are not XOR.
NotEnoughUnlockedLiquidity
Not enough unlocked liquidity to withdraw
UnableToCreatePoolWithIndivisibleAssets
Cannot create a pool with indivisible assets
UnableToOperateWithIndivisibleAssets
Unable to proceed operation with indivisible assets
NotEnoughLiquidityOutOfFarming
Not enough liquidity out of farming to withdraw
TargetAssetIsRestricted
Cannot create a pool with restricted target asset
Trait Implementations§
source§impl<T> Decode for Error<T>
impl<T> Decode for Error<T>
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy ) -> Result<Self, Error>
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>( input: &mut I, dst: &mut MaybeUninit<Self> ) -> Result<DecodeFinished, Error>where I: Input,
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where I: Input,
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
source§impl<T> Encode for Error<T>
impl<T> Encode for Error<T>
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy )
§fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere F: FnOnce(&[u8]) -> R,
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
source§impl<T> PalletError for Error<T>
impl<T> PalletError for Error<T>
source§const MAX_ENCODED_SIZE: usize = 1usize
const MAX_ENCODED_SIZE: usize = 1usize
source§impl<T> TypeInfo for Error<T>where
PhantomData<T>: TypeInfo + 'static,
T: 'static,
impl<T> TypeInfo for Error<T>where PhantomData<T>: TypeInfo + 'static, T: 'static,
impl<T> EncodeLike<Error<T>> for Error<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Error<T>where T: RefUnwindSafe,
impl<T> Send for Error<T>where T: Send,
impl<T> Sync for Error<T>where T: Sync,
impl<T> Unpin for Error<T>where T: Unpin,
impl<T> UnwindSafe for Error<T>where T: UnwindSafe,
Blanket Implementations§
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where Self: TryInto<T>,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Self
and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere T: Decode,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,
§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere T: Codec,
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>
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere T: Codec,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_mut()
into the pipe
function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<A> PureOrWrapped<A> for A
impl<A> PureOrWrapped<A> for A
§fn is_wrapped_regular(&self) -> bool
fn is_wrapped_regular(&self) -> bool
Regular
.§fn is_wrapped(&self) -> bool
fn is_wrapped(&self) -> bool
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T
. Read more§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.