@kamino-finance/klend-sdk
Version:
Typescript SDK for interacting with the Kamino Lending (klend) protocol
478 lines (411 loc) • 13.4 kB
text/typescript
export type CustomError =
| IntegerOverflow
| ConversionFailed
| StakePoolError
| InvalidStakePoolAccounts
| StakePoolDeserializeError
| InvalidStakePoolProgram
| InvalidStakePoolSize
| InvalidStakeAccountProgram
| InvalidStakeAccountSize
| InvalidStakeAccountCandidate
| UnexpectedSolToDestake
| UnexpectedSolToCollect
| InvalidStakedSolProgram
| CannotDepositZeroStakedSol
| CannotMintZeroShares
| CannotBurnZeroShares
| CannotCollectZeroSol
| NotEnoughWsol
| NotEnoughSharesIssued
| NotEnoughSharesInTicket
| NotEnoughStakedSolToDeposit
| PoolFeeCannotBe100Percent
| LessSharesThanExpected
| LessWsolThanExpected
| InvalidFeeAccount
| UnsupportedFeeAccountExtension
| CannotBurnBeforeTicketAllows
| WrongTicketAuthority
| InvalidPendingAdmin
| CollectingMoreThanUnstaking
| CannotSplitZeroShares
| WrongTicketPoolState
export class IntegerOverflow extends Error {
static readonly code = 8000
readonly code = 8000
readonly name = "IntegerOverflow"
readonly msg = "IntegerOverflow"
constructor(readonly logs?: string[]) {
super("8000: IntegerOverflow")
}
}
export class ConversionFailed extends Error {
static readonly code = 8001
readonly code = 8001
readonly name = "ConversionFailed"
readonly msg = "ConversionFailed"
constructor(readonly logs?: string[]) {
super("8001: ConversionFailed")
}
}
export class StakePoolError extends Error {
static readonly code = 8002
readonly code = 8002
readonly name = "StakePoolError"
readonly msg = "Stake pool specific error"
constructor(readonly logs?: string[]) {
super("8002: Stake pool specific error")
}
}
export class InvalidStakePoolAccounts extends Error {
static readonly code = 8003
readonly code = 8003
readonly name = "InvalidStakePoolAccounts"
readonly msg = "Passed stake pool accounts are not valid"
constructor(readonly logs?: string[]) {
super("8003: Passed stake pool accounts are not valid")
}
}
export class StakePoolDeserializeError extends Error {
static readonly code = 8004
readonly code = 8004
readonly name = "StakePoolDeserializeError"
readonly msg = "Stake pool deserialization error"
constructor(readonly logs?: string[]) {
super("8004: Stake pool deserialization error")
}
}
export class InvalidStakePoolProgram extends Error {
static readonly code = 8005
readonly code = 8005
readonly name = "InvalidStakePoolProgram"
readonly msg = "Stake pool invalid program"
constructor(readonly logs?: string[]) {
super("8005: Stake pool invalid program")
}
}
export class InvalidStakePoolSize extends Error {
static readonly code = 8006
readonly code = 8006
readonly name = "InvalidStakePoolSize"
readonly msg = "Stake pool invalid size"
constructor(readonly logs?: string[]) {
super("8006: Stake pool invalid size")
}
}
export class InvalidStakeAccountProgram extends Error {
static readonly code = 8007
readonly code = 8007
readonly name = "InvalidStakeAccountProgram"
readonly msg = "Stake account invalid program"
constructor(readonly logs?: string[]) {
super("8007: Stake account invalid program")
}
}
export class InvalidStakeAccountSize extends Error {
static readonly code = 8008
readonly code = 8008
readonly name = "InvalidStakeAccountSize"
readonly msg = "Stake account invalid size"
constructor(readonly logs?: string[]) {
super("8008: Stake account invalid size")
}
}
export class InvalidStakeAccountCandidate extends Error {
static readonly code = 8009
readonly code = 8009
readonly name = "InvalidStakeAccountCandidate"
readonly msg = "Stake account candidates should be uninitialized accounts"
constructor(readonly logs?: string[]) {
super("8009: Stake account candidates should be uninitialized accounts")
}
}
export class UnexpectedSolToDestake extends Error {
static readonly code = 8010
readonly code = 8010
readonly name = "UnexpectedSolToDestake"
readonly msg =
"Simulation and actual cpi call have different results for withdrawing sol from stake pool"
constructor(readonly logs?: string[]) {
super(
"8010: Simulation and actual cpi call have different results for withdrawing sol from stake pool"
)
}
}
export class UnexpectedSolToCollect extends Error {
static readonly code = 8011
readonly code = 8011
readonly name = "UnexpectedSolToCollect"
readonly msg =
"Simulation and actual cpi call have different results for collecting sol from stake account"
constructor(readonly logs?: string[]) {
super(
"8011: Simulation and actual cpi call have different results for collecting sol from stake account"
)
}
}
export class InvalidStakedSolProgram extends Error {
static readonly code = 8012
readonly code = 8012
readonly name = "InvalidStakedSolProgram"
readonly msg = "Staked sol program not support"
constructor(readonly logs?: string[]) {
super("8012: Staked sol program not support")
}
}
export class CannotDepositZeroStakedSol extends Error {
static readonly code = 8013
readonly code = 8013
readonly name = "CannotDepositZeroStakedSol"
readonly msg = "Cannot deposit 0 staked sol"
constructor(readonly logs?: string[]) {
super("8013: Cannot deposit 0 staked sol")
}
}
export class CannotMintZeroShares extends Error {
static readonly code = 8014
readonly code = 8014
readonly name = "CannotMintZeroShares"
readonly msg = "Cannot mint 0 shares"
constructor(readonly logs?: string[]) {
super("8014: Cannot mint 0 shares")
}
}
export class CannotBurnZeroShares extends Error {
static readonly code = 8015
readonly code = 8015
readonly name = "CannotBurnZeroShares"
readonly msg = "Cannot burn 0 shares"
constructor(readonly logs?: string[]) {
super("8015: Cannot burn 0 shares")
}
}
export class CannotCollectZeroSol extends Error {
static readonly code = 8016
readonly code = 8016
readonly name = "CannotCollectZeroSol"
readonly msg = "Cannot collect 0"
constructor(readonly logs?: string[]) {
super("8016: Cannot collect 0")
}
}
export class NotEnoughWsol extends Error {
static readonly code = 8017
readonly code = 8017
readonly name = "NotEnoughWsol"
readonly msg = "Not enough wsol in vault"
constructor(readonly logs?: string[]) {
super("8017: Not enough wsol in vault")
}
}
export class NotEnoughSharesIssued extends Error {
static readonly code = 8018
readonly code = 8018
readonly name = "NotEnoughSharesIssued"
readonly msg = "Not enough shares issued"
constructor(readonly logs?: string[]) {
super("8018: Not enough shares issued")
}
}
export class NotEnoughSharesInTicket extends Error {
static readonly code = 8019
readonly code = 8019
readonly name = "NotEnoughSharesInTicket"
readonly msg = "Not enough shares left for ticket"
constructor(readonly logs?: string[]) {
super("8019: Not enough shares left for ticket")
}
}
export class NotEnoughStakedSolToDeposit extends Error {
static readonly code = 8020
readonly code = 8020
readonly name = "NotEnoughStakedSolToDeposit"
readonly msg =
"Not enough staked sol to deposit (must be at least equivalent to minimum pool delegation)"
constructor(readonly logs?: string[]) {
super(
"8020: Not enough staked sol to deposit (must be at least equivalent to minimum pool delegation)"
)
}
}
export class PoolFeeCannotBe100Percent extends Error {
static readonly code = 8021
readonly code = 8021
readonly name = "PoolFeeCannotBe100Percent"
readonly msg = "We cannot compute the inverse with fee when value is 100%"
constructor(readonly logs?: string[]) {
super("8021: We cannot compute the inverse with fee when value is 100%")
}
}
export class LessSharesThanExpected extends Error {
static readonly code = 8022
readonly code = 8022
readonly name = "LessSharesThanExpected"
readonly msg = "Received less shares than minimum expected"
constructor(readonly logs?: string[]) {
super("8022: Received less shares than minimum expected")
}
}
export class LessWsolThanExpected extends Error {
static readonly code = 8023
readonly code = 8023
readonly name = "LessWsolThanExpected"
readonly msg = "Received less wsol than minimum expected"
constructor(readonly logs?: string[]) {
super("8023: Received less wsol than minimum expected")
}
}
export class InvalidFeeAccount extends Error {
static readonly code = 8024
readonly code = 8024
readonly name = "InvalidFeeAccount"
readonly msg =
"Manager fee account passed is not valid (wrong token program / account not initialized / wrong mint)"
constructor(readonly logs?: string[]) {
super(
"8024: Manager fee account passed is not valid (wrong token program / account not initialized / wrong mint)"
)
}
}
export class UnsupportedFeeAccountExtension extends Error {
static readonly code = 8025
readonly code = 8025
readonly name = "UnsupportedFeeAccountExtension"
readonly msg =
"Manager fee account passed has unsupported extensions by standard stake pool"
constructor(readonly logs?: string[]) {
super(
"8025: Manager fee account passed has unsupported extensions by standard stake pool"
)
}
}
export class CannotBurnBeforeTicketAllows extends Error {
static readonly code = 8026
readonly code = 8026
readonly name = "CannotBurnBeforeTicketAllows"
readonly msg = "Cannot burn shares before unstake ticket allows"
constructor(readonly logs?: string[]) {
super("8026: Cannot burn shares before unstake ticket allows")
}
}
export class WrongTicketAuthority extends Error {
static readonly code = 8027
readonly code = 8027
readonly name = "WrongTicketAuthority"
readonly msg =
"Cannot burn shares from a ticket if user is not the burn authority"
constructor(readonly logs?: string[]) {
super(
"8027: Cannot burn shares from a ticket if user is not the burn authority"
)
}
}
export class InvalidPendingAdmin extends Error {
static readonly code = 8028
readonly code = 8028
readonly name = "InvalidPendingAdmin"
readonly msg = "Invalid pending admin"
constructor(readonly logs?: string[]) {
super("8028: Invalid pending admin")
}
}
export class CollectingMoreThanUnstaking extends Error {
static readonly code = 8029
readonly code = 8029
readonly name = "CollectingMoreThanUnstaking"
readonly msg = "We are trying to collect more SOL than there is unstaking"
constructor(readonly logs?: string[]) {
super("8029: We are trying to collect more SOL than there is unstaking")
}
}
export class CannotSplitZeroShares extends Error {
static readonly code = 8030
readonly code = 8030
readonly name = "CannotSplitZeroShares"
readonly msg = "Cannot split 0 shares"
constructor(readonly logs?: string[]) {
super("8030: Cannot split 0 shares")
}
}
export class WrongTicketPoolState extends Error {
static readonly code = 8031
readonly code = 8031
readonly name = "WrongTicketPoolState"
readonly msg =
"Cannot burn shares from a ticket if it's not linked to the pool"
constructor(readonly logs?: string[]) {
super(
"8031: Cannot burn shares from a ticket if it's not linked to the pool"
)
}
}
export function fromCode(code: number, logs?: string[]): CustomError | null {
switch (code) {
case 8000:
return new IntegerOverflow(logs)
case 8001:
return new ConversionFailed(logs)
case 8002:
return new StakePoolError(logs)
case 8003:
return new InvalidStakePoolAccounts(logs)
case 8004:
return new StakePoolDeserializeError(logs)
case 8005:
return new InvalidStakePoolProgram(logs)
case 8006:
return new InvalidStakePoolSize(logs)
case 8007:
return new InvalidStakeAccountProgram(logs)
case 8008:
return new InvalidStakeAccountSize(logs)
case 8009:
return new InvalidStakeAccountCandidate(logs)
case 8010:
return new UnexpectedSolToDestake(logs)
case 8011:
return new UnexpectedSolToCollect(logs)
case 8012:
return new InvalidStakedSolProgram(logs)
case 8013:
return new CannotDepositZeroStakedSol(logs)
case 8014:
return new CannotMintZeroShares(logs)
case 8015:
return new CannotBurnZeroShares(logs)
case 8016:
return new CannotCollectZeroSol(logs)
case 8017:
return new NotEnoughWsol(logs)
case 8018:
return new NotEnoughSharesIssued(logs)
case 8019:
return new NotEnoughSharesInTicket(logs)
case 8020:
return new NotEnoughStakedSolToDeposit(logs)
case 8021:
return new PoolFeeCannotBe100Percent(logs)
case 8022:
return new LessSharesThanExpected(logs)
case 8023:
return new LessWsolThanExpected(logs)
case 8024:
return new InvalidFeeAccount(logs)
case 8025:
return new UnsupportedFeeAccountExtension(logs)
case 8026:
return new CannotBurnBeforeTicketAllows(logs)
case 8027:
return new WrongTicketAuthority(logs)
case 8028:
return new InvalidPendingAdmin(logs)
case 8029:
return new CollectingMoreThanUnstaking(logs)
case 8030:
return new CannotSplitZeroShares(logs)
case 8031:
return new WrongTicketPoolState(logs)
}
return null
}