UNPKG

@kamino-finance/klend-sdk

Version:

Typescript SDK for interacting with the Kamino Lending (klend) protocol

541 lines (462 loc) 15.3 kB
export type CustomError = | DepositAmountsZero | SharesIssuedAmountDoesNotMatch | MathOverflow | IntegerOverflow | WithdrawAmountBelowMinimum | TooMuchLiquidityToWithdraw | ReserveAlreadyExists | ReserveNotPartOfAllocations | CouldNotDeserializeAccountAsReserve | ReserveNotProvidedInTheAccounts | ReserveAccountAndKeyMismatch | OutOfRangeOfReserveIndex | CannotFindReserveInAllocations | InvestAmountBelowMinimum | AdminAuthorityIncorrect | BaseVaultAuthorityIncorrect | BaseVaultAuthorityBumpIncorrect | TokenMintIncorrect | TokenMintDecimalsIncorrect | TokenVaultIncorrect | SharesMintDecimalsIncorrect | SharesMintIncorrect | InitialAccountintIncorrect | ReserveIsStale | NotEnoughLiquidityDisinvestedToSendToUser | BPSValueTooBig | DepositAmountBelowMinimum | ReserveSpaceExhausted | CannotWithdrawFromEmptyVault | TokensDepositedAmountDoesNotMatch | AmountToWithdrawDoesNotMatch | LiquidityToWithdrawDoesNotMatch | UserReceivedAmountDoesNotMatch | SharesBurnedAmountDoesNotMatch | DisinvestedLiquidityAmountDoesNotMatch | SharesMintedAmountDoesNotMatch | AUMDecreasedAfterInvest | AUMBelowPendingFees export class DepositAmountsZero extends Error { static readonly code = 6000 readonly code = 6000 readonly name = "DepositAmountsZero" readonly msg = "DepositAmountsZero" constructor(readonly logs?: string[]) { super("6000: DepositAmountsZero") } } export class SharesIssuedAmountDoesNotMatch extends Error { static readonly code = 6001 readonly code = 6001 readonly name = "SharesIssuedAmountDoesNotMatch" readonly msg = "SharesIssuedAmountDoesNotMatch" constructor(readonly logs?: string[]) { super("6001: SharesIssuedAmountDoesNotMatch") } } export class MathOverflow extends Error { static readonly code = 6002 readonly code = 6002 readonly name = "MathOverflow" readonly msg = "MathOverflow" constructor(readonly logs?: string[]) { super("6002: MathOverflow") } } export class IntegerOverflow extends Error { static readonly code = 6003 readonly code = 6003 readonly name = "IntegerOverflow" readonly msg = "IntegerOverflow" constructor(readonly logs?: string[]) { super("6003: IntegerOverflow") } } export class WithdrawAmountBelowMinimum extends Error { static readonly code = 6004 readonly code = 6004 readonly name = "WithdrawAmountBelowMinimum" readonly msg = "Withdrawn amount is below minimum" constructor(readonly logs?: string[]) { super("6004: Withdrawn amount is below minimum") } } export class TooMuchLiquidityToWithdraw extends Error { static readonly code = 6005 readonly code = 6005 readonly name = "TooMuchLiquidityToWithdraw" readonly msg = "TooMuchLiquidityToWithdraw" constructor(readonly logs?: string[]) { super("6005: TooMuchLiquidityToWithdraw") } } export class ReserveAlreadyExists extends Error { static readonly code = 6006 readonly code = 6006 readonly name = "ReserveAlreadyExists" readonly msg = "ReserveAlreadyExists" constructor(readonly logs?: string[]) { super("6006: ReserveAlreadyExists") } } export class ReserveNotPartOfAllocations extends Error { static readonly code = 6007 readonly code = 6007 readonly name = "ReserveNotPartOfAllocations" readonly msg = "ReserveNotPartOfAllocations" constructor(readonly logs?: string[]) { super("6007: ReserveNotPartOfAllocations") } } export class CouldNotDeserializeAccountAsReserve extends Error { static readonly code = 6008 readonly code = 6008 readonly name = "CouldNotDeserializeAccountAsReserve" readonly msg = "CouldNotDeserializeAccountAsReserve" constructor(readonly logs?: string[]) { super("6008: CouldNotDeserializeAccountAsReserve") } } export class ReserveNotProvidedInTheAccounts extends Error { static readonly code = 6009 readonly code = 6009 readonly name = "ReserveNotProvidedInTheAccounts" readonly msg = "ReserveNotProvidedInTheAccounts" constructor(readonly logs?: string[]) { super("6009: ReserveNotProvidedInTheAccounts") } } export class ReserveAccountAndKeyMismatch extends Error { static readonly code = 6010 readonly code = 6010 readonly name = "ReserveAccountAndKeyMismatch" readonly msg = "ReserveAccountAndKeyMismatch" constructor(readonly logs?: string[]) { super("6010: ReserveAccountAndKeyMismatch") } } export class OutOfRangeOfReserveIndex extends Error { static readonly code = 6011 readonly code = 6011 readonly name = "OutOfRangeOfReserveIndex" readonly msg = "OutOfRangeOfReserveIndex" constructor(readonly logs?: string[]) { super("6011: OutOfRangeOfReserveIndex") } } export class CannotFindReserveInAllocations extends Error { static readonly code = 6012 readonly code = 6012 readonly name = "CannotFindReserveInAllocations" readonly msg = "OutOfRangeOfReserveIndex" constructor(readonly logs?: string[]) { super("6012: OutOfRangeOfReserveIndex") } } export class InvestAmountBelowMinimum extends Error { static readonly code = 6013 readonly code = 6013 readonly name = "InvestAmountBelowMinimum" readonly msg = "Invested amount is below minimum" constructor(readonly logs?: string[]) { super("6013: Invested amount is below minimum") } } export class AdminAuthorityIncorrect extends Error { static readonly code = 6014 readonly code = 6014 readonly name = "AdminAuthorityIncorrect" readonly msg = "AdminAuthorityIncorrect" constructor(readonly logs?: string[]) { super("6014: AdminAuthorityIncorrect") } } export class BaseVaultAuthorityIncorrect extends Error { static readonly code = 6015 readonly code = 6015 readonly name = "BaseVaultAuthorityIncorrect" readonly msg = "BaseVaultAuthorityIncorrect" constructor(readonly logs?: string[]) { super("6015: BaseVaultAuthorityIncorrect") } } export class BaseVaultAuthorityBumpIncorrect extends Error { static readonly code = 6016 readonly code = 6016 readonly name = "BaseVaultAuthorityBumpIncorrect" readonly msg = "BaseVaultAuthorityBumpIncorrect" constructor(readonly logs?: string[]) { super("6016: BaseVaultAuthorityBumpIncorrect") } } export class TokenMintIncorrect extends Error { static readonly code = 6017 readonly code = 6017 readonly name = "TokenMintIncorrect" readonly msg = "TokenMintIncorrect" constructor(readonly logs?: string[]) { super("6017: TokenMintIncorrect") } } export class TokenMintDecimalsIncorrect extends Error { static readonly code = 6018 readonly code = 6018 readonly name = "TokenMintDecimalsIncorrect" readonly msg = "TokenMintDecimalsIncorrect" constructor(readonly logs?: string[]) { super("6018: TokenMintDecimalsIncorrect") } } export class TokenVaultIncorrect extends Error { static readonly code = 6019 readonly code = 6019 readonly name = "TokenVaultIncorrect" readonly msg = "TokenVaultIncorrect" constructor(readonly logs?: string[]) { super("6019: TokenVaultIncorrect") } } export class SharesMintDecimalsIncorrect extends Error { static readonly code = 6020 readonly code = 6020 readonly name = "SharesMintDecimalsIncorrect" readonly msg = "SharesMintDecimalsIncorrect" constructor(readonly logs?: string[]) { super("6020: SharesMintDecimalsIncorrect") } } export class SharesMintIncorrect extends Error { static readonly code = 6021 readonly code = 6021 readonly name = "SharesMintIncorrect" readonly msg = "SharesMintIncorrect" constructor(readonly logs?: string[]) { super("6021: SharesMintIncorrect") } } export class InitialAccountintIncorrect extends Error { static readonly code = 6022 readonly code = 6022 readonly name = "InitialAccountintIncorrect" readonly msg = "InitialAccountintIncorrect" constructor(readonly logs?: string[]) { super("6022: InitialAccountintIncorrect") } } export class ReserveIsStale extends Error { static readonly code = 6023 readonly code = 6023 readonly name = "ReserveIsStale" readonly msg = "Reserve is stale and must be refreshed before any operation" constructor(readonly logs?: string[]) { super("6023: Reserve is stale and must be refreshed before any operation") } } export class NotEnoughLiquidityDisinvestedToSendToUser extends Error { static readonly code = 6024 readonly code = 6024 readonly name = "NotEnoughLiquidityDisinvestedToSendToUser" readonly msg = "Not enough liquidity disinvested to send to user" constructor(readonly logs?: string[]) { super("6024: Not enough liquidity disinvested to send to user") } } export class BPSValueTooBig extends Error { static readonly code = 6025 readonly code = 6025 readonly name = "BPSValueTooBig" readonly msg = "BPS value is greater than 10000" constructor(readonly logs?: string[]) { super("6025: BPS value is greater than 10000") } } export class DepositAmountBelowMinimum extends Error { static readonly code = 6026 readonly code = 6026 readonly name = "DepositAmountBelowMinimum" readonly msg = "Deposited amount is below minimum" constructor(readonly logs?: string[]) { super("6026: Deposited amount is below minimum") } } export class ReserveSpaceExhausted extends Error { static readonly code = 6027 readonly code = 6027 readonly name = "ReserveSpaceExhausted" readonly msg = "Vault have no space for new reserves" constructor(readonly logs?: string[]) { super("6027: Vault have no space for new reserves") } } export class CannotWithdrawFromEmptyVault extends Error { static readonly code = 6028 readonly code = 6028 readonly name = "CannotWithdrawFromEmptyVault" readonly msg = "Cannot withdraw from empty vault" constructor(readonly logs?: string[]) { super("6028: Cannot withdraw from empty vault") } } export class TokensDepositedAmountDoesNotMatch extends Error { static readonly code = 6029 readonly code = 6029 readonly name = "TokensDepositedAmountDoesNotMatch" readonly msg = "TokensDepositedAmountDoesNotMatch" constructor(readonly logs?: string[]) { super("6029: TokensDepositedAmountDoesNotMatch") } } export class AmountToWithdrawDoesNotMatch extends Error { static readonly code = 6030 readonly code = 6030 readonly name = "AmountToWithdrawDoesNotMatch" readonly msg = "Amount to withdraw does not match" constructor(readonly logs?: string[]) { super("6030: Amount to withdraw does not match") } } export class LiquidityToWithdrawDoesNotMatch extends Error { static readonly code = 6031 readonly code = 6031 readonly name = "LiquidityToWithdrawDoesNotMatch" readonly msg = "Liquidity to withdraw does not match" constructor(readonly logs?: string[]) { super("6031: Liquidity to withdraw does not match") } } export class UserReceivedAmountDoesNotMatch extends Error { static readonly code = 6032 readonly code = 6032 readonly name = "UserReceivedAmountDoesNotMatch" readonly msg = "User received amount does not match" constructor(readonly logs?: string[]) { super("6032: User received amount does not match") } } export class SharesBurnedAmountDoesNotMatch extends Error { static readonly code = 6033 readonly code = 6033 readonly name = "SharesBurnedAmountDoesNotMatch" readonly msg = "Shares burned amount does not match" constructor(readonly logs?: string[]) { super("6033: Shares burned amount does not match") } } export class DisinvestedLiquidityAmountDoesNotMatch extends Error { static readonly code = 6034 readonly code = 6034 readonly name = "DisinvestedLiquidityAmountDoesNotMatch" readonly msg = "Disinvested liquidity amount does not match" constructor(readonly logs?: string[]) { super("6034: Disinvested liquidity amount does not match") } } export class SharesMintedAmountDoesNotMatch extends Error { static readonly code = 6035 readonly code = 6035 readonly name = "SharesMintedAmountDoesNotMatch" readonly msg = "SharesMintedAmountDoesNotMatch" constructor(readonly logs?: string[]) { super("6035: SharesMintedAmountDoesNotMatch") } } export class AUMDecreasedAfterInvest extends Error { static readonly code = 6036 readonly code = 6036 readonly name = "AUMDecreasedAfterInvest" readonly msg = "AUM decreased after invest" constructor(readonly logs?: string[]) { super("6036: AUM decreased after invest") } } export class AUMBelowPendingFees extends Error { static readonly code = 6037 readonly code = 6037 readonly name = "AUMBelowPendingFees" readonly msg = "AUM is below pending fees" constructor(readonly logs?: string[]) { super("6037: AUM is below pending fees") } } export function fromCode(code: number, logs?: string[]): CustomError | null { switch (code) { case 6000: return new DepositAmountsZero(logs) case 6001: return new SharesIssuedAmountDoesNotMatch(logs) case 6002: return new MathOverflow(logs) case 6003: return new IntegerOverflow(logs) case 6004: return new WithdrawAmountBelowMinimum(logs) case 6005: return new TooMuchLiquidityToWithdraw(logs) case 6006: return new ReserveAlreadyExists(logs) case 6007: return new ReserveNotPartOfAllocations(logs) case 6008: return new CouldNotDeserializeAccountAsReserve(logs) case 6009: return new ReserveNotProvidedInTheAccounts(logs) case 6010: return new ReserveAccountAndKeyMismatch(logs) case 6011: return new OutOfRangeOfReserveIndex(logs) case 6012: return new CannotFindReserveInAllocations(logs) case 6013: return new InvestAmountBelowMinimum(logs) case 6014: return new AdminAuthorityIncorrect(logs) case 6015: return new BaseVaultAuthorityIncorrect(logs) case 6016: return new BaseVaultAuthorityBumpIncorrect(logs) case 6017: return new TokenMintIncorrect(logs) case 6018: return new TokenMintDecimalsIncorrect(logs) case 6019: return new TokenVaultIncorrect(logs) case 6020: return new SharesMintDecimalsIncorrect(logs) case 6021: return new SharesMintIncorrect(logs) case 6022: return new InitialAccountintIncorrect(logs) case 6023: return new ReserveIsStale(logs) case 6024: return new NotEnoughLiquidityDisinvestedToSendToUser(logs) case 6025: return new BPSValueTooBig(logs) case 6026: return new DepositAmountBelowMinimum(logs) case 6027: return new ReserveSpaceExhausted(logs) case 6028: return new CannotWithdrawFromEmptyVault(logs) case 6029: return new TokensDepositedAmountDoesNotMatch(logs) case 6030: return new AmountToWithdrawDoesNotMatch(logs) case 6031: return new LiquidityToWithdrawDoesNotMatch(logs) case 6032: return new UserReceivedAmountDoesNotMatch(logs) case 6033: return new SharesBurnedAmountDoesNotMatch(logs) case 6034: return new DisinvestedLiquidityAmountDoesNotMatch(logs) case 6035: return new SharesMintedAmountDoesNotMatch(logs) case 6036: return new AUMDecreasedAfterInvest(logs) case 6037: return new AUMBelowPendingFees(logs) } return null }