@kamino-finance/kliquidity-sdk
Version:
Typescript SDK for interacting with the Kamino Liquidity (kliquidity) protocol
774 lines (663 loc) • 21.4 kB
text/typescript
export type CustomError =
| InvalidEnum
| InvalidStartTick
| TickArrayExistInPool
| TickArrayIndexOutofBounds
| InvalidTickSpacing
| ClosePositionNotEmpty
| DivideByZero
| NumberCastError
| NumberDownCastError
| TickNotFound
| InvalidTickIndex
| SqrtPriceOutOfBounds
| LiquidityZero
| LiquidityTooHigh
| LiquidityOverflow
| LiquidityUnderflow
| LiquidityNetError
| TokenMaxExceeded
| TokenMinSubceeded
| MissingOrInvalidDelegate
| InvalidPositionTokenAmount
| InvalidTimestampConversion
| InvalidTimestamp
| InvalidTickArraySequence
| InvalidTokenMintOrder
| RewardNotInitialized
| InvalidRewardIndex
| RewardVaultAmountInsufficient
| FeeRateMaxExceeded
| ProtocolFeeRateMaxExceeded
| MultiplicationShiftRightOverflow
| MulDivOverflow
| MulDivInvalidInput
| MultiplicationOverflow
| InvalidSqrtPriceLimitDirection
| ZeroTradableAmount
| AmountOutBelowMinimum
| AmountInAboveMaximum
| TickArraySequenceInvalidIndex
| AmountCalcOverflow
| AmountRemainingOverflow
| InvalidIntermediaryMint
| DuplicateTwoHopPool
| InvalidBundleIndex
| BundledPositionAlreadyOpened
| BundledPositionAlreadyClosed
| PositionBundleNotDeletable
| UnsupportedTokenMint
| RemainingAccountsInvalidSlice
| RemainingAccountsInsufficient
| NoExtraAccountsForTransferHook
| IntermediateTokenAmountMismatch
| TransferFeeCalculationError
| RemainingAccountsDuplicatedAccountsType
export class InvalidEnum extends Error {
static readonly code = 6000
readonly code = 6000
readonly name = "InvalidEnum"
readonly msg = "Enum value could not be converted"
constructor(readonly logs?: string[]) {
super("6000: Enum value could not be converted")
}
}
export class InvalidStartTick extends Error {
static readonly code = 6001
readonly code = 6001
readonly name = "InvalidStartTick"
readonly msg = "Invalid start tick index provided."
constructor(readonly logs?: string[]) {
super("6001: Invalid start tick index provided.")
}
}
export class TickArrayExistInPool extends Error {
static readonly code = 6002
readonly code = 6002
readonly name = "TickArrayExistInPool"
readonly msg = "Tick-array already exists in this whirlpool"
constructor(readonly logs?: string[]) {
super("6002: Tick-array already exists in this whirlpool")
}
}
export class TickArrayIndexOutofBounds extends Error {
static readonly code = 6003
readonly code = 6003
readonly name = "TickArrayIndexOutofBounds"
readonly msg = "Attempt to search for a tick-array failed"
constructor(readonly logs?: string[]) {
super("6003: Attempt to search for a tick-array failed")
}
}
export class InvalidTickSpacing extends Error {
static readonly code = 6004
readonly code = 6004
readonly name = "InvalidTickSpacing"
readonly msg = "Tick-spacing is not supported"
constructor(readonly logs?: string[]) {
super("6004: Tick-spacing is not supported")
}
}
export class ClosePositionNotEmpty extends Error {
static readonly code = 6005
readonly code = 6005
readonly name = "ClosePositionNotEmpty"
readonly msg = "Position is not empty It cannot be closed"
constructor(readonly logs?: string[]) {
super("6005: Position is not empty It cannot be closed")
}
}
export class DivideByZero extends Error {
static readonly code = 6006
readonly code = 6006
readonly name = "DivideByZero"
readonly msg = "Unable to divide by zero"
constructor(readonly logs?: string[]) {
super("6006: Unable to divide by zero")
}
}
export class NumberCastError extends Error {
static readonly code = 6007
readonly code = 6007
readonly name = "NumberCastError"
readonly msg = "Unable to cast number into BigInt"
constructor(readonly logs?: string[]) {
super("6007: Unable to cast number into BigInt")
}
}
export class NumberDownCastError extends Error {
static readonly code = 6008
readonly code = 6008
readonly name = "NumberDownCastError"
readonly msg = "Unable to down cast number"
constructor(readonly logs?: string[]) {
super("6008: Unable to down cast number")
}
}
export class TickNotFound extends Error {
static readonly code = 6009
readonly code = 6009
readonly name = "TickNotFound"
readonly msg = "Tick not found within tick array"
constructor(readonly logs?: string[]) {
super("6009: Tick not found within tick array")
}
}
export class InvalidTickIndex extends Error {
static readonly code = 6010
readonly code = 6010
readonly name = "InvalidTickIndex"
readonly msg =
"Provided tick index is either out of bounds or uninitializable"
constructor(readonly logs?: string[]) {
super(
"6010: Provided tick index is either out of bounds or uninitializable"
)
}
}
export class SqrtPriceOutOfBounds extends Error {
static readonly code = 6011
readonly code = 6011
readonly name = "SqrtPriceOutOfBounds"
readonly msg = "Provided sqrt price out of bounds"
constructor(readonly logs?: string[]) {
super("6011: Provided sqrt price out of bounds")
}
}
export class LiquidityZero extends Error {
static readonly code = 6012
readonly code = 6012
readonly name = "LiquidityZero"
readonly msg = "Liquidity amount must be greater than zero"
constructor(readonly logs?: string[]) {
super("6012: Liquidity amount must be greater than zero")
}
}
export class LiquidityTooHigh extends Error {
static readonly code = 6013
readonly code = 6013
readonly name = "LiquidityTooHigh"
readonly msg = "Liquidity amount must be less than i64::MAX"
constructor(readonly logs?: string[]) {
super("6013: Liquidity amount must be less than i64::MAX")
}
}
export class LiquidityOverflow extends Error {
static readonly code = 6014
readonly code = 6014
readonly name = "LiquidityOverflow"
readonly msg = "Liquidity overflow"
constructor(readonly logs?: string[]) {
super("6014: Liquidity overflow")
}
}
export class LiquidityUnderflow extends Error {
static readonly code = 6015
readonly code = 6015
readonly name = "LiquidityUnderflow"
readonly msg = "Liquidity underflow"
constructor(readonly logs?: string[]) {
super("6015: Liquidity underflow")
}
}
export class LiquidityNetError extends Error {
static readonly code = 6016
readonly code = 6016
readonly name = "LiquidityNetError"
readonly msg = "Tick liquidity net underflowed or overflowed"
constructor(readonly logs?: string[]) {
super("6016: Tick liquidity net underflowed or overflowed")
}
}
export class TokenMaxExceeded extends Error {
static readonly code = 6017
readonly code = 6017
readonly name = "TokenMaxExceeded"
readonly msg = "Exceeded token max"
constructor(readonly logs?: string[]) {
super("6017: Exceeded token max")
}
}
export class TokenMinSubceeded extends Error {
static readonly code = 6018
readonly code = 6018
readonly name = "TokenMinSubceeded"
readonly msg = "Did not meet token min"
constructor(readonly logs?: string[]) {
super("6018: Did not meet token min")
}
}
export class MissingOrInvalidDelegate extends Error {
static readonly code = 6019
readonly code = 6019
readonly name = "MissingOrInvalidDelegate"
readonly msg = "Position token account has a missing or invalid delegate"
constructor(readonly logs?: string[]) {
super("6019: Position token account has a missing or invalid delegate")
}
}
export class InvalidPositionTokenAmount extends Error {
static readonly code = 6020
readonly code = 6020
readonly name = "InvalidPositionTokenAmount"
readonly msg = "Position token amount must be 1"
constructor(readonly logs?: string[]) {
super("6020: Position token amount must be 1")
}
}
export class InvalidTimestampConversion extends Error {
static readonly code = 6021
readonly code = 6021
readonly name = "InvalidTimestampConversion"
readonly msg = "Timestamp should be convertible from i64 to u64"
constructor(readonly logs?: string[]) {
super("6021: Timestamp should be convertible from i64 to u64")
}
}
export class InvalidTimestamp extends Error {
static readonly code = 6022
readonly code = 6022
readonly name = "InvalidTimestamp"
readonly msg = "Timestamp should be greater than the last updated timestamp"
constructor(readonly logs?: string[]) {
super("6022: Timestamp should be greater than the last updated timestamp")
}
}
export class InvalidTickArraySequence extends Error {
static readonly code = 6023
readonly code = 6023
readonly name = "InvalidTickArraySequence"
readonly msg = "Invalid tick array sequence provided for instruction."
constructor(readonly logs?: string[]) {
super("6023: Invalid tick array sequence provided for instruction.")
}
}
export class InvalidTokenMintOrder extends Error {
static readonly code = 6024
readonly code = 6024
readonly name = "InvalidTokenMintOrder"
readonly msg = "Token Mint in wrong order"
constructor(readonly logs?: string[]) {
super("6024: Token Mint in wrong order")
}
}
export class RewardNotInitialized extends Error {
static readonly code = 6025
readonly code = 6025
readonly name = "RewardNotInitialized"
readonly msg = "Reward not initialized"
constructor(readonly logs?: string[]) {
super("6025: Reward not initialized")
}
}
export class InvalidRewardIndex extends Error {
static readonly code = 6026
readonly code = 6026
readonly name = "InvalidRewardIndex"
readonly msg = "Invalid reward index"
constructor(readonly logs?: string[]) {
super("6026: Invalid reward index")
}
}
export class RewardVaultAmountInsufficient extends Error {
static readonly code = 6027
readonly code = 6027
readonly name = "RewardVaultAmountInsufficient"
readonly msg =
"Reward vault requires amount to support emissions for at least one day"
constructor(readonly logs?: string[]) {
super(
"6027: Reward vault requires amount to support emissions for at least one day"
)
}
}
export class FeeRateMaxExceeded extends Error {
static readonly code = 6028
readonly code = 6028
readonly name = "FeeRateMaxExceeded"
readonly msg = "Exceeded max fee rate"
constructor(readonly logs?: string[]) {
super("6028: Exceeded max fee rate")
}
}
export class ProtocolFeeRateMaxExceeded extends Error {
static readonly code = 6029
readonly code = 6029
readonly name = "ProtocolFeeRateMaxExceeded"
readonly msg = "Exceeded max protocol fee rate"
constructor(readonly logs?: string[]) {
super("6029: Exceeded max protocol fee rate")
}
}
export class MultiplicationShiftRightOverflow extends Error {
static readonly code = 6030
readonly code = 6030
readonly name = "MultiplicationShiftRightOverflow"
readonly msg = "Multiplication with shift right overflow"
constructor(readonly logs?: string[]) {
super("6030: Multiplication with shift right overflow")
}
}
export class MulDivOverflow extends Error {
static readonly code = 6031
readonly code = 6031
readonly name = "MulDivOverflow"
readonly msg = "Muldiv overflow"
constructor(readonly logs?: string[]) {
super("6031: Muldiv overflow")
}
}
export class MulDivInvalidInput extends Error {
static readonly code = 6032
readonly code = 6032
readonly name = "MulDivInvalidInput"
readonly msg = "Invalid div_u256 input"
constructor(readonly logs?: string[]) {
super("6032: Invalid div_u256 input")
}
}
export class MultiplicationOverflow extends Error {
static readonly code = 6033
readonly code = 6033
readonly name = "MultiplicationOverflow"
readonly msg = "Multiplication overflow"
constructor(readonly logs?: string[]) {
super("6033: Multiplication overflow")
}
}
export class InvalidSqrtPriceLimitDirection extends Error {
static readonly code = 6034
readonly code = 6034
readonly name = "InvalidSqrtPriceLimitDirection"
readonly msg =
"Provided SqrtPriceLimit not in the same direction as the swap."
constructor(readonly logs?: string[]) {
super(
"6034: Provided SqrtPriceLimit not in the same direction as the swap."
)
}
}
export class ZeroTradableAmount extends Error {
static readonly code = 6035
readonly code = 6035
readonly name = "ZeroTradableAmount"
readonly msg = "There are no tradable amount to swap."
constructor(readonly logs?: string[]) {
super("6035: There are no tradable amount to swap.")
}
}
export class AmountOutBelowMinimum extends Error {
static readonly code = 6036
readonly code = 6036
readonly name = "AmountOutBelowMinimum"
readonly msg = "Amount out below minimum threshold"
constructor(readonly logs?: string[]) {
super("6036: Amount out below minimum threshold")
}
}
export class AmountInAboveMaximum extends Error {
static readonly code = 6037
readonly code = 6037
readonly name = "AmountInAboveMaximum"
readonly msg = "Amount in above maximum threshold"
constructor(readonly logs?: string[]) {
super("6037: Amount in above maximum threshold")
}
}
export class TickArraySequenceInvalidIndex extends Error {
static readonly code = 6038
readonly code = 6038
readonly name = "TickArraySequenceInvalidIndex"
readonly msg = "Invalid index for tick array sequence"
constructor(readonly logs?: string[]) {
super("6038: Invalid index for tick array sequence")
}
}
export class AmountCalcOverflow extends Error {
static readonly code = 6039
readonly code = 6039
readonly name = "AmountCalcOverflow"
readonly msg = "Amount calculated overflows"
constructor(readonly logs?: string[]) {
super("6039: Amount calculated overflows")
}
}
export class AmountRemainingOverflow extends Error {
static readonly code = 6040
readonly code = 6040
readonly name = "AmountRemainingOverflow"
readonly msg = "Amount remaining overflows"
constructor(readonly logs?: string[]) {
super("6040: Amount remaining overflows")
}
}
export class InvalidIntermediaryMint extends Error {
static readonly code = 6041
readonly code = 6041
readonly name = "InvalidIntermediaryMint"
readonly msg = "Invalid intermediary mint"
constructor(readonly logs?: string[]) {
super("6041: Invalid intermediary mint")
}
}
export class DuplicateTwoHopPool extends Error {
static readonly code = 6042
readonly code = 6042
readonly name = "DuplicateTwoHopPool"
readonly msg = "Duplicate two hop pool"
constructor(readonly logs?: string[]) {
super("6042: Duplicate two hop pool")
}
}
export class InvalidBundleIndex extends Error {
static readonly code = 6043
readonly code = 6043
readonly name = "InvalidBundleIndex"
readonly msg = "Bundle index is out of bounds"
constructor(readonly logs?: string[]) {
super("6043: Bundle index is out of bounds")
}
}
export class BundledPositionAlreadyOpened extends Error {
static readonly code = 6044
readonly code = 6044
readonly name = "BundledPositionAlreadyOpened"
readonly msg = "Position has already been opened"
constructor(readonly logs?: string[]) {
super("6044: Position has already been opened")
}
}
export class BundledPositionAlreadyClosed extends Error {
static readonly code = 6045
readonly code = 6045
readonly name = "BundledPositionAlreadyClosed"
readonly msg = "Position has already been closed"
constructor(readonly logs?: string[]) {
super("6045: Position has already been closed")
}
}
export class PositionBundleNotDeletable extends Error {
static readonly code = 6046
readonly code = 6046
readonly name = "PositionBundleNotDeletable"
readonly msg = "Unable to delete PositionBundle with open positions"
constructor(readonly logs?: string[]) {
super("6046: Unable to delete PositionBundle with open positions")
}
}
export class UnsupportedTokenMint extends Error {
static readonly code = 6047
readonly code = 6047
readonly name = "UnsupportedTokenMint"
readonly msg = "Token mint has unsupported attributes"
constructor(readonly logs?: string[]) {
super("6047: Token mint has unsupported attributes")
}
}
export class RemainingAccountsInvalidSlice extends Error {
static readonly code = 6048
readonly code = 6048
readonly name = "RemainingAccountsInvalidSlice"
readonly msg = "Invalid remaining accounts"
constructor(readonly logs?: string[]) {
super("6048: Invalid remaining accounts")
}
}
export class RemainingAccountsInsufficient extends Error {
static readonly code = 6049
readonly code = 6049
readonly name = "RemainingAccountsInsufficient"
readonly msg = "Insufficient remaining accounts"
constructor(readonly logs?: string[]) {
super("6049: Insufficient remaining accounts")
}
}
export class NoExtraAccountsForTransferHook extends Error {
static readonly code = 6050
readonly code = 6050
readonly name = "NoExtraAccountsForTransferHook"
readonly msg = "Unable to call transfer hook without extra accounts"
constructor(readonly logs?: string[]) {
super("6050: Unable to call transfer hook without extra accounts")
}
}
export class IntermediateTokenAmountMismatch extends Error {
static readonly code = 6051
readonly code = 6051
readonly name = "IntermediateTokenAmountMismatch"
readonly msg = "Output and input amount mismatch"
constructor(readonly logs?: string[]) {
super("6051: Output and input amount mismatch")
}
}
export class TransferFeeCalculationError extends Error {
static readonly code = 6052
readonly code = 6052
readonly name = "TransferFeeCalculationError"
readonly msg = "Transfer fee calculation failed"
constructor(readonly logs?: string[]) {
super("6052: Transfer fee calculation failed")
}
}
export class RemainingAccountsDuplicatedAccountsType extends Error {
static readonly code = 6053
readonly code = 6053
readonly name = "RemainingAccountsDuplicatedAccountsType"
readonly msg = "Same accounts type is provided more than once"
constructor(readonly logs?: string[]) {
super("6053: Same accounts type is provided more than once")
}
}
export function fromCode(code: number, logs?: string[]): CustomError | null {
switch (code) {
case 6000:
return new InvalidEnum(logs)
case 6001:
return new InvalidStartTick(logs)
case 6002:
return new TickArrayExistInPool(logs)
case 6003:
return new TickArrayIndexOutofBounds(logs)
case 6004:
return new InvalidTickSpacing(logs)
case 6005:
return new ClosePositionNotEmpty(logs)
case 6006:
return new DivideByZero(logs)
case 6007:
return new NumberCastError(logs)
case 6008:
return new NumberDownCastError(logs)
case 6009:
return new TickNotFound(logs)
case 6010:
return new InvalidTickIndex(logs)
case 6011:
return new SqrtPriceOutOfBounds(logs)
case 6012:
return new LiquidityZero(logs)
case 6013:
return new LiquidityTooHigh(logs)
case 6014:
return new LiquidityOverflow(logs)
case 6015:
return new LiquidityUnderflow(logs)
case 6016:
return new LiquidityNetError(logs)
case 6017:
return new TokenMaxExceeded(logs)
case 6018:
return new TokenMinSubceeded(logs)
case 6019:
return new MissingOrInvalidDelegate(logs)
case 6020:
return new InvalidPositionTokenAmount(logs)
case 6021:
return new InvalidTimestampConversion(logs)
case 6022:
return new InvalidTimestamp(logs)
case 6023:
return new InvalidTickArraySequence(logs)
case 6024:
return new InvalidTokenMintOrder(logs)
case 6025:
return new RewardNotInitialized(logs)
case 6026:
return new InvalidRewardIndex(logs)
case 6027:
return new RewardVaultAmountInsufficient(logs)
case 6028:
return new FeeRateMaxExceeded(logs)
case 6029:
return new ProtocolFeeRateMaxExceeded(logs)
case 6030:
return new MultiplicationShiftRightOverflow(logs)
case 6031:
return new MulDivOverflow(logs)
case 6032:
return new MulDivInvalidInput(logs)
case 6033:
return new MultiplicationOverflow(logs)
case 6034:
return new InvalidSqrtPriceLimitDirection(logs)
case 6035:
return new ZeroTradableAmount(logs)
case 6036:
return new AmountOutBelowMinimum(logs)
case 6037:
return new AmountInAboveMaximum(logs)
case 6038:
return new TickArraySequenceInvalidIndex(logs)
case 6039:
return new AmountCalcOverflow(logs)
case 6040:
return new AmountRemainingOverflow(logs)
case 6041:
return new InvalidIntermediaryMint(logs)
case 6042:
return new DuplicateTwoHopPool(logs)
case 6043:
return new InvalidBundleIndex(logs)
case 6044:
return new BundledPositionAlreadyOpened(logs)
case 6045:
return new BundledPositionAlreadyClosed(logs)
case 6046:
return new PositionBundleNotDeletable(logs)
case 6047:
return new UnsupportedTokenMint(logs)
case 6048:
return new RemainingAccountsInvalidSlice(logs)
case 6049:
return new RemainingAccountsInsufficient(logs)
case 6050:
return new NoExtraAccountsForTransferHook(logs)
case 6051:
return new IntermediateTokenAmountMismatch(logs)
case 6052:
return new TransferFeeCalculationError(logs)
case 6053:
return new RemainingAccountsDuplicatedAccountsType(logs)
}
return null
}