@kamino-finance/klend-sdk 2.12.2 → 2.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/classes/curve.js +3 -3
  2. package/dist/classes/curve.js.map +1 -1
  3. package/dist/classes/jupiterPerps.js +1 -2
  4. package/dist/classes/jupiterPerps.js.map +1 -1
  5. package/dist/classes/market.d.ts +0 -1
  6. package/dist/classes/market.js +5 -5
  7. package/dist/classes/market.js.map +1 -1
  8. package/dist/classes/reserve.d.ts +0 -1
  9. package/dist/classes/reserve.js +1 -1
  10. package/dist/classes/reserve.js.map +1 -1
  11. package/dist/classes/utils.js +5 -5
  12. package/dist/classes/utils.js.map +1 -1
  13. package/dist/idl_codegen/accounts/LendingMarket.d.ts +0 -1
  14. package/dist/idl_codegen/accounts/Obligation.d.ts +0 -1
  15. package/dist/idl_codegen/accounts/ReferrerState.d.ts +0 -1
  16. package/dist/idl_codegen/accounts/ReferrerTokenState.d.ts +0 -1
  17. package/dist/idl_codegen/accounts/Reserve.d.ts +0 -1
  18. package/dist/idl_codegen/accounts/ShortUrl.d.ts +0 -1
  19. package/dist/idl_codegen/accounts/UserMetadata.d.ts +0 -1
  20. package/dist/idl_codegen/accounts/UserState.d.ts +0 -1
  21. package/dist/idl_codegen/errors/anchor.js +2 -2
  22. package/dist/idl_codegen/errors/anchor.js.map +1 -1
  23. package/dist/idl_codegen/errors/custom.js +2 -2
  24. package/dist/idl_codegen/errors/custom.js.map +1 -1
  25. package/dist/idl_codegen/errors/index.js +2 -3
  26. package/dist/idl_codegen/errors/index.js.map +1 -1
  27. package/dist/idl_codegen/instructions/borrowObligationLiquidity.js +2 -2
  28. package/dist/idl_codegen/instructions/borrowObligationLiquidity.js.map +1 -1
  29. package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.js +1 -2
  30. package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.js.map +1 -1
  31. package/dist/idl_codegen/instructions/depositObligationCollateral.js +2 -2
  32. package/dist/idl_codegen/instructions/depositObligationCollateral.js.map +1 -1
  33. package/dist/idl_codegen/instructions/depositReserveLiquidity.js +2 -2
  34. package/dist/idl_codegen/instructions/depositReserveLiquidity.js.map +1 -1
  35. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js +2 -2
  36. package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js.map +1 -1
  37. package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.js +2 -2
  38. package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.js.map +1 -1
  39. package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.js +2 -2
  40. package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.js.map +1 -1
  41. package/dist/idl_codegen/instructions/idlMissingTypes.js +2 -2
  42. package/dist/idl_codegen/instructions/idlMissingTypes.js.map +1 -1
  43. package/dist/idl_codegen/instructions/initFarmsForReserve.js +2 -2
  44. package/dist/idl_codegen/instructions/initFarmsForReserve.js.map +1 -1
  45. package/dist/idl_codegen/instructions/initLendingMarket.js +2 -2
  46. package/dist/idl_codegen/instructions/initLendingMarket.js.map +1 -1
  47. package/dist/idl_codegen/instructions/initObligation.js +2 -2
  48. package/dist/idl_codegen/instructions/initObligation.js.map +1 -1
  49. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js +2 -2
  50. package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js.map +1 -1
  51. package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.js +2 -2
  52. package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.js.map +1 -1
  53. package/dist/idl_codegen/instructions/initReferrerTokenState.js +2 -2
  54. package/dist/idl_codegen/instructions/initReferrerTokenState.js.map +1 -1
  55. package/dist/idl_codegen/instructions/initReserve.js +1 -2
  56. package/dist/idl_codegen/instructions/initReserve.js.map +1 -1
  57. package/dist/idl_codegen/instructions/initUserMetadata.js +2 -2
  58. package/dist/idl_codegen/instructions/initUserMetadata.js.map +1 -1
  59. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js +2 -2
  60. package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js.map +1 -1
  61. package/dist/idl_codegen/instructions/redeemFees.js +1 -2
  62. package/dist/idl_codegen/instructions/redeemFees.js.map +1 -1
  63. package/dist/idl_codegen/instructions/redeemReserveCollateral.js +2 -2
  64. package/dist/idl_codegen/instructions/redeemReserveCollateral.js.map +1 -1
  65. package/dist/idl_codegen/instructions/refreshObligation.js +1 -2
  66. package/dist/idl_codegen/instructions/refreshObligation.js.map +1 -1
  67. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js +2 -2
  68. package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js.map +1 -1
  69. package/dist/idl_codegen/instructions/refreshReserve.js +1 -2
  70. package/dist/idl_codegen/instructions/refreshReserve.js.map +1 -1
  71. package/dist/idl_codegen/instructions/repayObligationLiquidity.js +2 -2
  72. package/dist/idl_codegen/instructions/repayObligationLiquidity.js.map +1 -1
  73. package/dist/idl_codegen/instructions/requestElevationGroup.js +2 -2
  74. package/dist/idl_codegen/instructions/requestElevationGroup.js.map +1 -1
  75. package/dist/idl_codegen/instructions/socializeLoss.js +2 -2
  76. package/dist/idl_codegen/instructions/socializeLoss.js.map +1 -1
  77. package/dist/idl_codegen/instructions/updateEntireReserveConfig.js +2 -2
  78. package/dist/idl_codegen/instructions/updateEntireReserveConfig.js.map +1 -1
  79. package/dist/idl_codegen/instructions/updateLendingMarket.js +2 -2
  80. package/dist/idl_codegen/instructions/updateLendingMarket.js.map +1 -1
  81. package/dist/idl_codegen/instructions/updateLendingMarketOwner.js +1 -2
  82. package/dist/idl_codegen/instructions/updateLendingMarketOwner.js.map +1 -1
  83. package/dist/idl_codegen/instructions/updateReserveConfig.js +2 -2
  84. package/dist/idl_codegen/instructions/updateReserveConfig.js.map +1 -1
  85. package/dist/idl_codegen/instructions/updateSingleReserveConfig.js +2 -2
  86. package/dist/idl_codegen/instructions/updateSingleReserveConfig.js.map +1 -1
  87. package/dist/idl_codegen/instructions/withdrawObligationCollateral.js +2 -2
  88. package/dist/idl_codegen/instructions/withdrawObligationCollateral.js.map +1 -1
  89. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js +2 -2
  90. package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js.map +1 -1
  91. package/dist/idl_codegen/instructions/withdrawProtocolFee.js +2 -2
  92. package/dist/idl_codegen/instructions/withdrawProtocolFee.js.map +1 -1
  93. package/dist/idl_codegen/instructions/withdrawReferrerFees.js +1 -2
  94. package/dist/idl_codegen/instructions/withdrawReferrerFees.js.map +1 -1
  95. package/dist/idl_codegen/types/AssetTier.js +4 -4
  96. package/dist/idl_codegen/types/AssetTier.js.map +1 -1
  97. package/dist/idl_codegen/types/FeeCalculation.js +4 -4
  98. package/dist/idl_codegen/types/FeeCalculation.js.map +1 -1
  99. package/dist/idl_codegen/types/ReserveConfig.d.ts +2 -2
  100. package/dist/idl_codegen/types/ReserveFarmKind.js +4 -4
  101. package/dist/idl_codegen/types/ReserveFarmKind.js.map +1 -1
  102. package/dist/idl_codegen/types/ReserveStatus.js +4 -4
  103. package/dist/idl_codegen/types/ReserveStatus.js.map +1 -1
  104. package/dist/idl_codegen/types/TokenInfo.d.ts +2 -2
  105. package/dist/idl_codegen/types/UpdateConfigMode.js +4 -4
  106. package/dist/idl_codegen/types/UpdateConfigMode.js.map +1 -1
  107. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js +4 -4
  108. package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js.map +1 -1
  109. package/dist/idl_codegen/types/UpdateLendingMarketMode.js +4 -4
  110. package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
  111. package/dist/idl_codegen/zero_padding/ObligationZP.d.ts +0 -1
  112. package/dist/idl_codegen_jupiter_perps/accounts/Pool.d.ts +0 -1
  113. package/dist/lending_operations/repay_with_collateral_calcs.js +2 -3
  114. package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
  115. package/dist/leverage/calcs.js +5 -5
  116. package/dist/leverage/calcs.js.map +1 -1
  117. package/dist/leverage/utils.js +6 -6
  118. package/dist/leverage/utils.js.map +1 -1
  119. package/dist/referrals/instructions.js +1 -1
  120. package/dist/referrals/operations.js +11 -11
  121. package/dist/referrals/operations.js.map +1 -1
  122. package/dist/utils/ObligationType.js +2 -2
  123. package/dist/utils/ObligationType.js.map +1 -1
  124. package/dist/utils/api.js +2 -2
  125. package/dist/utils/api.js.map +1 -1
  126. package/dist/utils/ata.js +8 -8
  127. package/dist/utils/ata.js.map +1 -1
  128. package/dist/utils/constants.js +4 -4
  129. package/dist/utils/constants.js.map +1 -1
  130. package/dist/utils/instruction.js +8 -8
  131. package/dist/utils/instruction.js.map +1 -1
  132. package/dist/utils/kamino.js +1 -2
  133. package/dist/utils/kamino.js.map +1 -1
  134. package/dist/utils/lookupTable.js +4 -4
  135. package/dist/utils/lookupTable.js.map +1 -1
  136. package/dist/utils/oracle.d.ts +0 -1
  137. package/dist/utils/oracle.js +6 -6
  138. package/dist/utils/oracle.js.map +1 -1
  139. package/dist/utils/pubkey.d.ts +0 -1
  140. package/dist/utils/pubkey.js +2 -2
  141. package/dist/utils/pubkey.js.map +1 -1
  142. package/dist/utils/rpc.js +1 -2
  143. package/dist/utils/rpc.js.map +1 -1
  144. package/dist/utils/seeds.js +11 -11
  145. package/dist/utils/seeds.js.map +1 -1
  146. package/dist/utils/slots.js +3 -4
  147. package/dist/utils/slots.js.map +1 -1
  148. package/dist/utils/syncNative.js +1 -2
  149. package/dist/utils/syncNative.js.map +1 -1
  150. package/dist/utils/userMetadata.js +4 -4
  151. package/dist/utils/userMetadata.js.map +1 -1
  152. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"reserve.js","sourceRoot":"","sources":["../../src/classes/reserve.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { AccountInfo, Connection, PublicKey } from '@solana/web3.js';\nimport Decimal from 'decimal.js';\nimport {\n INITIAL_COLLATERAL_RATE,\n ONE_HUNDRED_PCT_IN_BPS,\n SLOTS_PER_DAY,\n SLOTS_PER_SECOND,\n SLOTS_PER_YEAR,\n TokenOracleData,\n U64_MAX,\n} from '../utils';\nimport { ReserveDataType, ReserveStatus } from './shared';\nimport { Reserve, ReserveFields } from '../idl_codegen/accounts';\nimport { CurvePointFields } from '../idl_codegen/types';\nimport { calculateAPYFromAPR, getBorrowRate, parseTokenSymbol } from './utils';\nimport { Fraction } from './fraction';\nimport BN from 'bn.js';\nimport { ActionType } from './action';\n\nexport const DEFAULT_RECENT_SLOT_DURATION_MS = 450;\n\nexport class KaminoReserve {\n state: Reserve;\n address: PublicKey;\n symbol: string;\n\n tokenOraclePrice: TokenOracleData;\n stats: ReserveDataType;\n\n private buffer: AccountInfo<Buffer> | null;\n private connection: Connection;\n private readonly recentSlotDurationMs: number;\n\n constructor(\n state: Reserve,\n address: PublicKey,\n tokenOraclePrice: TokenOracleData,\n connection: Connection,\n recentSlotDurationMs: number\n ) {\n this.state = state;\n this.address = address;\n this.buffer = null;\n this.tokenOraclePrice = tokenOraclePrice;\n this.stats = {} as ReserveDataType;\n this.connection = connection;\n this.symbol = parseTokenSymbol(state.config.tokenInfo.name);\n this.recentSlotDurationMs = recentSlotDurationMs;\n }\n\n static initialize(\n accountData: AccountInfo<Buffer>,\n address: PublicKey,\n state: Reserve,\n tokenOraclePrice: TokenOracleData,\n connection: Connection,\n recentSlotDurationMs: number\n ) {\n const reserve = new KaminoReserve(state, address, tokenOraclePrice, connection, recentSlotDurationMs);\n reserve.setBuffer(accountData);\n reserve.stats = reserve.formatReserveData(state);\n return reserve;\n }\n\n /// GETTERS\n\n /**\n * @returns the parsed token symbol of the reserve\n */\n getTokenSymbol(): string {\n return parseTokenSymbol(this.state.config.tokenInfo.name);\n }\n\n /**\n * @returns the total borrowed amount of the reserve\n */\n getBorrowedAmount(): Decimal {\n return new Fraction(this.state.liquidity.borrowedAmountSf).toDecimal();\n }\n\n /**\n * @returns the available liquidity amount of the reserve\n */\n getLiquidityAvailableAmount(): Decimal {\n return new Decimal(this.state.liquidity.availableAmount.toString());\n }\n\n /**\n *\n * @returns the last cached price stored in the reserve in USD\n */\n getReserveMarketPrice(): Decimal {\n return new Fraction(this.state.liquidity.marketPriceSf).toDecimal();\n }\n\n /**\n * @returns the current market price of the reserve in USD\n */\n getOracleMarketPrice(): Decimal {\n return this.tokenOraclePrice.price;\n }\n\n /**\n * @returns the total accumulated protocol fees of the reserve\n */\n getAccumulatedProtocolFees(): Decimal {\n return new Fraction(this.state.liquidity.accumulatedProtocolFeesSf).toDecimal();\n }\n\n /**\n * @returns the total accumulated referrer fees of the reserve\n */\n getAccumulatedReferrerFees(): Decimal {\n return new Fraction(this.state.liquidity.accumulatedReferrerFeesSf).toDecimal();\n }\n\n /**\n * @returns the total pending referrer fees of the reserve\n */\n getPendingReferrerFees(): Decimal {\n return new Fraction(this.state.liquidity.pendingReferrerFeesSf).toDecimal();\n }\n\n /**\n *\n * @returns the flash loan fee percentage of the reserve\n */\n getFlashLoanFee = (): Decimal => {\n if (this.state.config.fees.flashLoanFeeSf.toString() === U64_MAX) {\n return new Decimal('0');\n }\n return new Fraction(this.state.config.fees.flashLoanFeeSf).toDecimal();\n };\n\n /**\n *\n * @returns the origination fee percentage of the reserve\n */\n getBorrowFee = (): Decimal => {\n return new Fraction(this.state.config.fees.borrowFeeSf).toDecimal();\n };\n\n /**\n *\n * @returns the fixed interest rate allocated to the host\n */\n getFixedHostInterestRate = (): Decimal => {\n return new Decimal(this.state.config.hostFixedInterestRateBps).div(10_000);\n };\n\n /**\n * Use getEstimatedTotalSupply() for the most accurate value\n * @returns the stale total liquidity supply of the reserve from the last refresh\n */\n getTotalSupply(): Decimal {\n return this.getLiquidityAvailableAmount()\n .add(this.getBorrowedAmount())\n .sub(this.getAccumulatedProtocolFees())\n .sub(this.getAccumulatedReferrerFees())\n .sub(this.getPendingReferrerFees());\n }\n\n /**\n * Calculates the total liquidity supply of the reserve\n */\n getEstimatedTotalSupply(slot: number, referralFeeBps: number): Decimal {\n const { totalSupply } = this.getEstimatedDebtAndSupply(slot, referralFeeBps);\n return totalSupply;\n }\n\n /**\n * Use getEstimatedCumulativeBorrowRate() for the most accurate value\n * @returns the stale cumulative borrow rate of the reserve from the last refresh\n */\n getCumulativeBorrowRate(): Decimal {\n let accSf = new BN(0);\n for (const value of this.state.liquidity.cumulativeBorrowRateBsf.value.reverse()) {\n accSf = accSf.add(value);\n accSf.shrn(64);\n }\n return new Fraction(accSf).toDecimal();\n }\n\n /**\n * @Returns estimated cumulative borrow rate of the reserve\n */\n getEstimatedCumulativeBorrowRate(currentSlot: number): Decimal {\n const currentBorrowRate = new Decimal(this.calculateBorrowAPR());\n const slotsElapsed = Math.max(currentSlot - this.state.lastUpdate.slot.toNumber(), 0);\n\n const compoundInterest = this.approximateCompoundedInterest(currentBorrowRate, slotsElapsed);\n\n const previousCumulativeBorrowRate = this.getCumulativeBorrowRate();\n\n return previousCumulativeBorrowRate.mul(compoundInterest);\n }\n\n /**\n * Use getEstimatedCollateralExchangeRate() for the most accurate value\n * @returns the stale exchange rate between the collateral tokens and the liquidity - this is a decimal number scaled by 1e18\n */\n getCollateralExchangeRate(): Decimal {\n const totalSupply = this.getTotalSupply();\n const mintTotalSupply = this.state.collateral.mintTotalSupply;\n if (mintTotalSupply.isZero() || totalSupply.isZero()) {\n return INITIAL_COLLATERAL_RATE;\n } else {\n return new Decimal(mintTotalSupply.toString()).dividedBy(totalSupply.toString());\n }\n }\n\n /**\n *\n * @returns the estimated exchange rate between the collateral tokens and the liquidity - this is a decimal number scaled by 1e18\n */\n getEstimatedCollateralExchangeRate(slot: number, referralFeeBps: number): Decimal {\n const totalSupply = this.getEstimatedTotalSupply(slot, referralFeeBps);\n const mintTotalSupply = this.state.collateral.mintTotalSupply;\n if (mintTotalSupply.isZero() || totalSupply.isZero()) {\n return INITIAL_COLLATERAL_RATE;\n } else {\n return new Decimal(mintTotalSupply.toString()).dividedBy(totalSupply.toString());\n }\n }\n\n /**\n *\n * @returns the total USD value of the existing collateral in the reserve\n */\n getDepositTvl = (): Decimal => {\n return new Decimal(this.getTotalSupply().toString()).mul(this.getOracleMarketPrice()).div(this.getMintFactor());\n };\n\n /**\n *\n * Get the total USD value of the borrowed assets from the reserve\n */\n getBorrowTvl = (): Decimal => {\n return this.getBorrowedAmount().mul(this.getOracleMarketPrice()).div(this.getMintFactor());\n };\n\n /**\n * @returns 10^mint_decimals\n */\n getMintFactor(): Decimal {\n return new Decimal(10).pow(this.state.liquidity.mintDecimals.toNumber());\n }\n\n /**\n * @Returns true if the total liquidity supply of the reserve is greater than the deposit limit\n */\n depositLimitCrossed(): boolean {\n return this.getTotalSupply().gt(new Decimal(this.state.config.depositLimit.toString()));\n }\n\n /**\n * @Returns true if the total borrowed amount of the reserve is greater than the borrow limit\n */\n borrowLimitCrossed(): boolean {\n return this.getBorrowedAmount().gt(new Decimal(this.state.config.borrowLimit.toString()));\n }\n\n /**\n *\n * @returns the max capacity of the daily deposit withdrawal cap\n */\n getDepositWithdrawalCapCapacity(): Decimal {\n return new Decimal(this.state.config.depositWithdrawalCap.configCapacity.toString());\n }\n\n /**\n *\n * @returns the current capacity of the daily deposit withdrawal cap\n */\n getDepositWithdrawalCapCurrent(slot: number): Decimal {\n const slotsElapsed = Math.max(slot - this.state.lastUpdate.slot.toNumber(), 0);\n if (slotsElapsed > SLOTS_PER_DAY) {\n return new Decimal(0);\n } else {\n return new Decimal(this.state.config.depositWithdrawalCap.currentTotal.toString());\n }\n }\n\n /**\n *\n * @returns the max capacity of the daily debt withdrawal cap\n */\n getDebtWithdrawalCapCapacity(): Decimal {\n return new Decimal(this.state.config.debtWithdrawalCap.configCapacity.toString());\n }\n\n /**\n *\n * @returns the borrow limit of the reserve outside the elevation group\n */\n getBorrowLimitOutsideElevationGroup(): Decimal {\n return new Decimal(this.state.config.borrowLimitOutsideElevationGroup.toString());\n }\n\n /**\n *\n * @returns the borrowed amount of the reserve outside the elevation group\n */\n getBorrowedAmountOutsideElevationGroup(): Decimal {\n return new Decimal(this.state.borrowedAmountOutsideElevationGroup.toString());\n }\n\n /**\n *\n * @returns the borrow limit against the collateral reserve in the elevation group\n */\n getBorrowLimitAgainstCollateralInElevationGroup(elevationGroupIndex: number): Decimal {\n return new Decimal(\n this.state.config.borrowLimitAgainstThisCollateralInElevationGroup[elevationGroupIndex].toString()\n );\n }\n\n /**\n *\n * @returns the borrowed amount against the collateral reserve in the elevation group\n */\n getBorrowedAmountAgainstCollateralInElevationGroup(elevationGroupIndex: number): Decimal {\n return new Decimal(this.state.borrowedAmountsAgainstThisReserveInElevationGroups[elevationGroupIndex].toString());\n }\n\n /**\n *\n * @returns the current capacity of the daily debt withdrawal cap\n */\n getDebtWithdrawalCapCurrent(slot: number): Decimal {\n const slotsElapsed = Math.max(slot - this.state.lastUpdate.slot.toNumber(), 0);\n if (slotsElapsed > SLOTS_PER_DAY) {\n return new Decimal(0);\n } else {\n return new Decimal(this.state.config.debtWithdrawalCap.currentTotal.toString());\n }\n }\n\n getBorrowFactor(): Decimal {\n return new Decimal(this.state.config.borrowFactorPct.toString()).div(100);\n }\n\n calculateSupplyAPR() {\n const currentUtilization = this.calculateUtilizationRatio();\n\n const borrowAPR = this.calculateBorrowAPR();\n const protocolTakeRatePct = 1 - this.state.config.protocolTakeRatePct / 100;\n return currentUtilization * borrowAPR * protocolTakeRatePct;\n }\n\n getEstimatedDebtAndSupply(slot: number, referralFeeBps: number): { totalBorrow: Decimal; totalSupply: Decimal } {\n const slotsElapsed = Math.max(slot - this.state.lastUpdate.slot.toNumber(), 0);\n let totalBorrow: Decimal;\n let totalSupply: Decimal;\n if (slotsElapsed === 0) {\n totalBorrow = this.getBorrowedAmount();\n totalSupply = this.getTotalSupply();\n } else {\n const { newDebt, newAccProtocolFees, pendingReferralFees } = this.compoundInterest(slotsElapsed, referralFeeBps);\n const newTotalSupply = this.getLiquidityAvailableAmount()\n .add(newDebt)\n .sub(newAccProtocolFees)\n .sub(this.getAccumulatedReferrerFees())\n .sub(pendingReferralFees);\n totalBorrow = newDebt;\n totalSupply = newTotalSupply;\n }\n return { totalBorrow, totalSupply };\n }\n\n getEstimatedAccumulatedProtocolFees(\n slot: number,\n referralFeeBps: number\n ): { accumulatedProtocolFees: Decimal; compoundedVariableProtocolFee: Decimal; compoundedFixedHostFee: Decimal } {\n const slotsElapsed = Math.max(slot - this.state.lastUpdate.slot.toNumber(), 0);\n let accumulatedProtocolFees: Decimal;\n let compoundedVariableProtocolFee: Decimal;\n let compoundedFixedHostFee: Decimal;\n if (slotsElapsed === 0) {\n accumulatedProtocolFees = this.getAccumulatedProtocolFees();\n compoundedVariableProtocolFee = new Decimal(0);\n compoundedFixedHostFee = new Decimal(0);\n } else {\n const { newAccProtocolFees, variableProtocolFee, fixedHostFee } = this.compoundInterest(\n slotsElapsed,\n referralFeeBps\n );\n accumulatedProtocolFees = newAccProtocolFees;\n compoundedVariableProtocolFee = variableProtocolFee;\n compoundedFixedHostFee = fixedHostFee;\n }\n return { accumulatedProtocolFees, compoundedVariableProtocolFee, compoundedFixedHostFee };\n }\n\n calculateUtilizationRatio() {\n const totalBorrows = this.getBorrowedAmount();\n const totalSupply = this.getTotalSupply();\n if (totalSupply.eq(0)) {\n return 0;\n }\n return totalBorrows.dividedBy(totalSupply).toNumber();\n }\n\n calcSimulatedUtilizationRatio(\n amount: Decimal,\n action: ActionType,\n slot: number,\n referralFeeBps: number,\n outflowAmount?: Decimal\n ): number {\n const { totalBorrow: previousTotalBorrowed, totalSupply: previousTotalSupply } = this.getEstimatedDebtAndSupply(\n slot,\n referralFeeBps\n );\n\n switch (action) {\n case 'deposit': {\n const newTotalSupply = previousTotalSupply.add(amount);\n return previousTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n case 'withdraw': {\n const newTotalSupply = previousTotalSupply.sub(amount);\n if (newTotalSupply.eq(0)) {\n return 0;\n } else {\n return previousTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n }\n case 'borrow': {\n const newTotalBorrowed = previousTotalBorrowed.add(amount);\n return newTotalBorrowed.dividedBy(previousTotalSupply).toNumber();\n }\n case 'repay': {\n const newTotalBorrowed = previousTotalBorrowed.sub(amount);\n return newTotalBorrowed.dividedBy(previousTotalSupply).toNumber();\n }\n case 'depositAndBorrow': {\n const newTotalSupply = previousTotalSupply.add(amount);\n const newTotalBorrowed = previousTotalBorrowed.add(outflowAmount!);\n return newTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n case 'repayAndWithdraw': {\n const newTotalBorrowed = previousTotalBorrowed.sub(amount);\n const newTotalSupply = previousTotalSupply.sub(outflowAmount!);\n if (newTotalSupply.eq(0)) {\n return 0;\n }\n return newTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n case 'mint': {\n const newTotalSupply = previousTotalSupply.add(amount);\n return previousTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n case 'redeem': {\n const newTotalSupply = previousTotalSupply.sub(amount);\n return previousTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n default:\n throw Error(`Invalid action type ${action} for simulatedUtilizationRatio`);\n }\n }\n\n calcSimulatedBorrowAPR(\n amount: Decimal,\n action: ActionType,\n slot: number,\n referralFeeBps: number,\n outflowAmount?: Decimal\n ) {\n const slotAdjustmentFactor = this.slotAdjustmentFactor();\n const newUtilization = this.calcSimulatedUtilizationRatio(amount, action, slot, referralFeeBps, outflowAmount);\n const curve = truncateBorrowCurve(this.state.config.borrowRateCurve.points);\n return getBorrowRate(newUtilization, curve) * slotAdjustmentFactor;\n }\n\n calcSimulatedSupplyAPR(\n amount: Decimal,\n action: ActionType,\n slot: number,\n referralFeeBps: number,\n outflowAmount?: Decimal\n ) {\n const newUtilization = this.calcSimulatedUtilizationRatio(amount, action, slot, referralFeeBps, outflowAmount);\n const simulatedBorrowAPR = this.calcSimulatedBorrowAPR(amount, action, slot, referralFeeBps, outflowAmount);\n const protocolTakeRatePct = 1 - this.state.config.protocolTakeRatePct / 100;\n\n return newUtilization * simulatedBorrowAPR * protocolTakeRatePct;\n }\n\n slotAdjustmentFactor(): number {\n return 1000 / SLOTS_PER_SECOND / this.recentSlotDurationMs;\n }\n\n calculateBorrowAPR() {\n const slotAdjustmentFactor = this.slotAdjustmentFactor();\n const currentUtilization = this.calculateUtilizationRatio();\n const curve = truncateBorrowCurve(this.state.config.borrowRateCurve.points);\n return getBorrowRate(currentUtilization, curve) * slotAdjustmentFactor;\n }\n\n /**\n * @returns the mint of the reserve liquidity token\n */\n getLiquidityMint(): PublicKey {\n return this.state.liquidity.mintPubkey;\n }\n\n /**\n * @returns the token program of the reserve liquidity mint\n */\n getLiquidityTokenProgram(): PublicKey {\n return this.state.liquidity.tokenProgram;\n }\n\n /**\n * @returns the mint of the reserve collateral token , i.e. the cToken minted for depositing the liquidity token\n */\n getCTokenMint(): PublicKey {\n return this.state.collateral.mintPubkey;\n }\n\n setBuffer(buffer: AccountInfo<Buffer> | null) {\n this.buffer = buffer;\n }\n\n async load(tokenOraclePrice: TokenOracleData) {\n if (!this.buffer) {\n this.setBuffer(await this.connection.getAccountInfo(this.address, 'processed'));\n }\n\n if (!this.buffer) {\n throw Error(`Error requesting account info for ${this.symbol}`);\n }\n\n const parsedData = await Reserve.fetch(this.connection, this.address);\n if (!parsedData) {\n throw Error(`Unable to parse data of reserve ${this.symbol}`);\n }\n this.state = parsedData;\n this.tokenOraclePrice = tokenOraclePrice;\n this.stats = this.formatReserveData(parsedData);\n }\n\n totalSupplyAPY() {\n const { stats } = this;\n if (!stats) {\n throw Error('KaminoMarket must call loadRewards.');\n }\n\n const totalAPY = new Decimal(stats.supplyInterestAPY).toNumber();\n\n return {\n interestAPY: stats.supplyInterestAPY,\n totalAPY,\n };\n }\n\n totalBorrowAPY() {\n const { stats } = this;\n if (!stats) {\n throw Error('KaminoMarket must call loadRewards.');\n }\n\n const totalAPY = new Decimal(stats.borrowInterestAPY).toNumber();\n\n return {\n interestAPY: stats.borrowInterestAPY,\n totalAPY,\n };\n }\n\n private formatReserveData(parsedData: ReserveFields): ReserveDataType {\n const mintTotalSupply = new Decimal(parsedData.collateral.mintTotalSupply.toString()).div(this.getMintFactor());\n let reserveStatus = ReserveStatus.Active;\n switch (parsedData.config.status) {\n case 0:\n reserveStatus = ReserveStatus.Active;\n break;\n case 1:\n reserveStatus = ReserveStatus.Obsolete;\n break;\n case 2:\n reserveStatus = ReserveStatus.Hidden;\n break;\n }\n return {\n // Reserve config\n\n status: reserveStatus,\n mintAddress: parsedData.liquidity.mintPubkey,\n borrowCurve: truncateBorrowCurve(parsedData.config.borrowRateCurve.points),\n loanToValuePct: parsedData.config.loanToValuePct / 100,\n maxLiquidationBonus: parsedData.config.maxLiquidationBonusBps / 10000,\n minLiquidationBonus: parsedData.config.minLiquidationBonusBps / 10000,\n liquidationThreshold: parsedData.config.liquidationThresholdPct / 100,\n protocolTakeRate: parsedData.config.protocolTakeRatePct / 100,\n reserveDepositLimit: new Decimal(parsedData.config.depositLimit.toString()),\n reserveBorrowLimit: new Decimal(parsedData.config.borrowLimit.toString()),\n\n // Reserve info\n symbol: parseTokenSymbol(parsedData.config.tokenInfo.name),\n decimals: this.state.liquidity.mintDecimals.toNumber(),\n supplyInterestAPY: calculateAPYFromAPR(this.calculateSupplyAPR()),\n borrowInterestAPY: calculateAPYFromAPR(this.calculateBorrowAPR()),\n accumulatedProtocolFees: this.getAccumulatedProtocolFees().div(this.getMintFactor()),\n mintTotalSupply,\n depositLimitCrossedSlot: parsedData.liquidity.depositLimitCrossedSlot.toNumber(),\n borrowLimitCrossedSlot: parsedData.liquidity.borrowLimitCrossedSlot.toNumber(),\n borrowFactor: parsedData.config.borrowFactorPct.toNumber(),\n };\n }\n\n /**\n * Compound current borrow rate over elapsed slots\n *\n * This also calculates protocol fees, which are taken for all obligations that have borrowed from current reserve.\n *\n * This also calculates referral fees, which are taken into pendingReferralFees.\n *\n * https://github.com/Kamino-Finance/klend/blob/release/1.3.0/programs/klend/src/state/reserve.rs#L517\n *\n * @param slotsElapsed\n * @param referralFeeBps\n */\n private compoundInterest(\n slotsElapsed: number,\n referralFeeBps: number\n ): {\n newDebt: Decimal;\n netNewDebt: Decimal;\n variableProtocolFee: Decimal;\n fixedHostFee: Decimal;\n absoluteReferralFee: Decimal;\n maxReferralFees: Decimal;\n newAccProtocolFees: Decimal;\n pendingReferralFees: Decimal;\n } {\n const currentBorrowRate = this.calculateBorrowAPR();\n const protocolTakeRate = new Decimal(this.state.config.protocolTakeRatePct).div(100);\n const referralRate = new Decimal(referralFeeBps).div(10_000);\n const fixedHostInterestRate = this.getFixedHostInterestRate();\n\n const compoundedInterestRate = this.approximateCompoundedInterest(new Decimal(currentBorrowRate), slotsElapsed);\n const compoundedFixedRate = this.approximateCompoundedInterest(fixedHostInterestRate, slotsElapsed);\n\n const previousDebt = this.getBorrowedAmount();\n const newDebt = previousDebt.mul(compoundedInterestRate);\n const fixedHostFee = previousDebt.mul(compoundedFixedRate).sub(previousDebt);\n\n const netNewDebt = newDebt.sub(previousDebt).sub(fixedHostFee);\n\n const variableProtocolFee = netNewDebt.mul(protocolTakeRate);\n const absoluteReferralFee = protocolTakeRate.mul(referralRate);\n const maxReferralFees = netNewDebt.mul(absoluteReferralFee);\n\n const newAccProtocolFees = variableProtocolFee\n .add(fixedHostFee)\n .sub(maxReferralFees)\n .add(this.getAccumulatedProtocolFees());\n\n const pendingReferralFees = this.getPendingReferrerFees().add(maxReferralFees);\n\n return {\n newDebt,\n netNewDebt,\n variableProtocolFee,\n fixedHostFee,\n absoluteReferralFee,\n maxReferralFees,\n newAccProtocolFees,\n pendingReferralFees,\n };\n }\n\n /**\n * Approximation to match the smart contract calculation\n * https://github.com/Kamino-Finance/klend/blob/release/1.3.0/programs/klend/src/state/reserve.rs#L1026\n * @param rate\n * @param elapsedSlots\n * @private\n */\n private approximateCompoundedInterest(rate: Decimal, elapsedSlots: number): Decimal {\n const base = rate.div(SLOTS_PER_YEAR);\n switch (elapsedSlots) {\n case 0:\n return new Decimal(1);\n case 1:\n return base.add(1);\n case 2:\n return base.add(1).mul(base.add(1));\n case 3:\n return base.add(1).mul(base.add(1)).mul(base.add(1));\n case 4:\n // eslint-disable-next-line no-case-declarations\n const pow2 = base.add(1).mul(base.add(1));\n return pow2.mul(pow2);\n }\n const exp = elapsedSlots;\n const expMinus1 = exp - 1;\n const expMinus2 = exp - 2;\n\n const basePow2 = base.mul(base);\n const basePow3 = basePow2.mul(base);\n\n const firstTerm = base.mul(exp);\n const secondTerm = basePow2.mul(exp).mul(expMinus1).div(2);\n const thirdTerm = basePow3.mul(exp).mul(expMinus1).mul(expMinus2).div(6);\n\n return new Decimal(1).add(firstTerm).add(secondTerm).add(thirdTerm);\n }\n}\n\nconst truncateBorrowCurve = (points: CurvePointFields[]): [number, number][] => {\n const curve: [number, number][] = [];\n for (const { utilizationRateBps, borrowRateBps } of points) {\n curve.push([utilizationRateBps / ONE_HUNDRED_PCT_IN_BPS, borrowRateBps / ONE_HUNDRED_PCT_IN_BPS]);\n\n if (utilizationRateBps === ONE_HUNDRED_PCT_IN_BPS) {\n break;\n }\n }\n return curve;\n};\n"]}
1
+ {"version":3,"file":"reserve.js","sourceRoot":"","sources":["../../src/classes/reserve.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { AccountInfo, Connection, PublicKey } from '@solana/web3.js';\nimport Decimal from 'decimal.js';\nimport {\n INITIAL_COLLATERAL_RATE,\n ONE_HUNDRED_PCT_IN_BPS,\n SLOTS_PER_DAY,\n SLOTS_PER_SECOND,\n SLOTS_PER_YEAR,\n TokenOracleData,\n U64_MAX,\n} from '../utils';\nimport { ReserveDataType, ReserveStatus } from './shared';\nimport { Reserve, ReserveFields } from '../idl_codegen/accounts';\nimport { CurvePointFields } from '../idl_codegen/types';\nimport { calculateAPYFromAPR, getBorrowRate, parseTokenSymbol } from './utils';\nimport { Fraction } from './fraction';\nimport BN from 'bn.js';\nimport { ActionType } from './action';\n\nexport const DEFAULT_RECENT_SLOT_DURATION_MS = 450;\n\nexport class KaminoReserve {\n state: Reserve;\n address: PublicKey;\n symbol: string;\n\n tokenOraclePrice: TokenOracleData;\n stats: ReserveDataType;\n\n private buffer: AccountInfo<Buffer> | null;\n private connection: Connection;\n private readonly recentSlotDurationMs: number;\n\n constructor(\n state: Reserve,\n address: PublicKey,\n tokenOraclePrice: TokenOracleData,\n connection: Connection,\n recentSlotDurationMs: number\n ) {\n this.state = state;\n this.address = address;\n this.buffer = null;\n this.tokenOraclePrice = tokenOraclePrice;\n this.stats = {} as ReserveDataType;\n this.connection = connection;\n this.symbol = parseTokenSymbol(state.config.tokenInfo.name);\n this.recentSlotDurationMs = recentSlotDurationMs;\n }\n\n static initialize(\n accountData: AccountInfo<Buffer>,\n address: PublicKey,\n state: Reserve,\n tokenOraclePrice: TokenOracleData,\n connection: Connection,\n recentSlotDurationMs: number\n ) {\n const reserve = new KaminoReserve(state, address, tokenOraclePrice, connection, recentSlotDurationMs);\n reserve.setBuffer(accountData);\n reserve.stats = reserve.formatReserveData(state);\n return reserve;\n }\n\n /// GETTERS\n\n /**\n * @returns the parsed token symbol of the reserve\n */\n getTokenSymbol(): string {\n return parseTokenSymbol(this.state.config.tokenInfo.name);\n }\n\n /**\n * @returns the total borrowed amount of the reserve\n */\n getBorrowedAmount(): Decimal {\n return new Fraction(this.state.liquidity.borrowedAmountSf).toDecimal();\n }\n\n /**\n * @returns the available liquidity amount of the reserve\n */\n getLiquidityAvailableAmount(): Decimal {\n return new Decimal(this.state.liquidity.availableAmount.toString());\n }\n\n /**\n *\n * @returns the last cached price stored in the reserve in USD\n */\n getReserveMarketPrice(): Decimal {\n return new Fraction(this.state.liquidity.marketPriceSf).toDecimal();\n }\n\n /**\n * @returns the current market price of the reserve in USD\n */\n getOracleMarketPrice(): Decimal {\n return this.tokenOraclePrice.price;\n }\n\n /**\n * @returns the total accumulated protocol fees of the reserve\n */\n getAccumulatedProtocolFees(): Decimal {\n return new Fraction(this.state.liquidity.accumulatedProtocolFeesSf).toDecimal();\n }\n\n /**\n * @returns the total accumulated referrer fees of the reserve\n */\n getAccumulatedReferrerFees(): Decimal {\n return new Fraction(this.state.liquidity.accumulatedReferrerFeesSf).toDecimal();\n }\n\n /**\n * @returns the total pending referrer fees of the reserve\n */\n getPendingReferrerFees(): Decimal {\n return new Fraction(this.state.liquidity.pendingReferrerFeesSf).toDecimal();\n }\n\n /**\n *\n * @returns the flash loan fee percentage of the reserve\n */\n getFlashLoanFee = (): Decimal => {\n if (this.state.config.fees.flashLoanFeeSf.toString() === U64_MAX) {\n return new Decimal('0');\n }\n return new Fraction(this.state.config.fees.flashLoanFeeSf).toDecimal();\n };\n\n /**\n *\n * @returns the origination fee percentage of the reserve\n */\n getBorrowFee = (): Decimal => {\n return new Fraction(this.state.config.fees.borrowFeeSf).toDecimal();\n };\n\n /**\n *\n * @returns the fixed interest rate allocated to the host\n */\n getFixedHostInterestRate = (): Decimal => {\n return new Decimal(this.state.config.hostFixedInterestRateBps).div(10_000);\n };\n\n /**\n * Use getEstimatedTotalSupply() for the most accurate value\n * @returns the stale total liquidity supply of the reserve from the last refresh\n */\n getTotalSupply(): Decimal {\n return this.getLiquidityAvailableAmount()\n .add(this.getBorrowedAmount())\n .sub(this.getAccumulatedProtocolFees())\n .sub(this.getAccumulatedReferrerFees())\n .sub(this.getPendingReferrerFees());\n }\n\n /**\n * Calculates the total liquidity supply of the reserve\n */\n getEstimatedTotalSupply(slot: number, referralFeeBps: number): Decimal {\n const { totalSupply } = this.getEstimatedDebtAndSupply(slot, referralFeeBps);\n return totalSupply;\n }\n\n /**\n * Use getEstimatedCumulativeBorrowRate() for the most accurate value\n * @returns the stale cumulative borrow rate of the reserve from the last refresh\n */\n getCumulativeBorrowRate(): Decimal {\n let accSf = new BN(0);\n for (const value of this.state.liquidity.cumulativeBorrowRateBsf.value.reverse()) {\n accSf = accSf.add(value);\n accSf.shrn(64);\n }\n return new Fraction(accSf).toDecimal();\n }\n\n /**\n * @Returns estimated cumulative borrow rate of the reserve\n */\n getEstimatedCumulativeBorrowRate(currentSlot: number): Decimal {\n const currentBorrowRate = new Decimal(this.calculateBorrowAPR());\n const slotsElapsed = Math.max(currentSlot - this.state.lastUpdate.slot.toNumber(), 0);\n\n const compoundInterest = this.approximateCompoundedInterest(currentBorrowRate, slotsElapsed);\n\n const previousCumulativeBorrowRate = this.getCumulativeBorrowRate();\n\n return previousCumulativeBorrowRate.mul(compoundInterest);\n }\n\n /**\n * Use getEstimatedCollateralExchangeRate() for the most accurate value\n * @returns the stale exchange rate between the collateral tokens and the liquidity - this is a decimal number scaled by 1e18\n */\n getCollateralExchangeRate(): Decimal {\n const totalSupply = this.getTotalSupply();\n const mintTotalSupply = this.state.collateral.mintTotalSupply;\n if (mintTotalSupply.isZero() || totalSupply.isZero()) {\n return INITIAL_COLLATERAL_RATE;\n } else {\n return new Decimal(mintTotalSupply.toString()).dividedBy(totalSupply.toString());\n }\n }\n\n /**\n *\n * @returns the estimated exchange rate between the collateral tokens and the liquidity - this is a decimal number scaled by 1e18\n */\n getEstimatedCollateralExchangeRate(slot: number, referralFeeBps: number): Decimal {\n const totalSupply = this.getEstimatedTotalSupply(slot, referralFeeBps);\n const mintTotalSupply = this.state.collateral.mintTotalSupply;\n if (mintTotalSupply.isZero() || totalSupply.isZero()) {\n return INITIAL_COLLATERAL_RATE;\n } else {\n return new Decimal(mintTotalSupply.toString()).dividedBy(totalSupply.toString());\n }\n }\n\n /**\n *\n * @returns the total USD value of the existing collateral in the reserve\n */\n getDepositTvl = (): Decimal => {\n return new Decimal(this.getTotalSupply().toString()).mul(this.getOracleMarketPrice()).div(this.getMintFactor());\n };\n\n /**\n *\n * Get the total USD value of the borrowed assets from the reserve\n */\n getBorrowTvl = (): Decimal => {\n return this.getBorrowedAmount().mul(this.getOracleMarketPrice()).div(this.getMintFactor());\n };\n\n /**\n * @returns 10^mint_decimals\n */\n getMintFactor(): Decimal {\n return new Decimal(10).pow(this.state.liquidity.mintDecimals.toNumber());\n }\n\n /**\n * @Returns true if the total liquidity supply of the reserve is greater than the deposit limit\n */\n depositLimitCrossed(): boolean {\n return this.getTotalSupply().gt(new Decimal(this.state.config.depositLimit.toString()));\n }\n\n /**\n * @Returns true if the total borrowed amount of the reserve is greater than the borrow limit\n */\n borrowLimitCrossed(): boolean {\n return this.getBorrowedAmount().gt(new Decimal(this.state.config.borrowLimit.toString()));\n }\n\n /**\n *\n * @returns the max capacity of the daily deposit withdrawal cap\n */\n getDepositWithdrawalCapCapacity(): Decimal {\n return new Decimal(this.state.config.depositWithdrawalCap.configCapacity.toString());\n }\n\n /**\n *\n * @returns the current capacity of the daily deposit withdrawal cap\n */\n getDepositWithdrawalCapCurrent(slot: number): Decimal {\n const slotsElapsed = Math.max(slot - this.state.lastUpdate.slot.toNumber(), 0);\n if (slotsElapsed > SLOTS_PER_DAY) {\n return new Decimal(0);\n } else {\n return new Decimal(this.state.config.depositWithdrawalCap.currentTotal.toString());\n }\n }\n\n /**\n *\n * @returns the max capacity of the daily debt withdrawal cap\n */\n getDebtWithdrawalCapCapacity(): Decimal {\n return new Decimal(this.state.config.debtWithdrawalCap.configCapacity.toString());\n }\n\n /**\n *\n * @returns the borrow limit of the reserve outside the elevation group\n */\n getBorrowLimitOutsideElevationGroup(): Decimal {\n return new Decimal(this.state.config.borrowLimitOutsideElevationGroup.toString());\n }\n\n /**\n *\n * @returns the borrowed amount of the reserve outside the elevation group\n */\n getBorrowedAmountOutsideElevationGroup(): Decimal {\n return new Decimal(this.state.borrowedAmountOutsideElevationGroup.toString());\n }\n\n /**\n *\n * @returns the borrow limit against the collateral reserve in the elevation group\n */\n getBorrowLimitAgainstCollateralInElevationGroup(elevationGroupIndex: number): Decimal {\n return new Decimal(\n this.state.config.borrowLimitAgainstThisCollateralInElevationGroup[elevationGroupIndex].toString()\n );\n }\n\n /**\n *\n * @returns the borrowed amount against the collateral reserve in the elevation group\n */\n getBorrowedAmountAgainstCollateralInElevationGroup(elevationGroupIndex: number): Decimal {\n return new Decimal(this.state.borrowedAmountsAgainstThisReserveInElevationGroups[elevationGroupIndex].toString());\n }\n\n /**\n *\n * @returns the current capacity of the daily debt withdrawal cap\n */\n getDebtWithdrawalCapCurrent(slot: number): Decimal {\n const slotsElapsed = Math.max(slot - this.state.lastUpdate.slot.toNumber(), 0);\n if (slotsElapsed > SLOTS_PER_DAY) {\n return new Decimal(0);\n } else {\n return new Decimal(this.state.config.debtWithdrawalCap.currentTotal.toString());\n }\n }\n\n getBorrowFactor(): Decimal {\n return new Decimal(this.state.config.borrowFactorPct.toString()).div(100);\n }\n\n calculateSupplyAPR() {\n const currentUtilization = this.calculateUtilizationRatio();\n\n const borrowAPR = this.calculateBorrowAPR();\n const protocolTakeRatePct = 1 - this.state.config.protocolTakeRatePct / 100;\n return currentUtilization * borrowAPR * protocolTakeRatePct;\n }\n\n getEstimatedDebtAndSupply(slot: number, referralFeeBps: number): { totalBorrow: Decimal; totalSupply: Decimal } {\n const slotsElapsed = Math.max(slot - this.state.lastUpdate.slot.toNumber(), 0);\n let totalBorrow: Decimal;\n let totalSupply: Decimal;\n if (slotsElapsed === 0) {\n totalBorrow = this.getBorrowedAmount();\n totalSupply = this.getTotalSupply();\n } else {\n const { newDebt, newAccProtocolFees, pendingReferralFees } = this.compoundInterest(slotsElapsed, referralFeeBps);\n const newTotalSupply = this.getLiquidityAvailableAmount()\n .add(newDebt)\n .sub(newAccProtocolFees)\n .sub(this.getAccumulatedReferrerFees())\n .sub(pendingReferralFees);\n totalBorrow = newDebt;\n totalSupply = newTotalSupply;\n }\n return { totalBorrow, totalSupply };\n }\n\n getEstimatedAccumulatedProtocolFees(\n slot: number,\n referralFeeBps: number\n ): { accumulatedProtocolFees: Decimal; compoundedVariableProtocolFee: Decimal; compoundedFixedHostFee: Decimal } {\n const slotsElapsed = Math.max(slot - this.state.lastUpdate.slot.toNumber(), 0);\n let accumulatedProtocolFees: Decimal;\n let compoundedVariableProtocolFee: Decimal;\n let compoundedFixedHostFee: Decimal;\n if (slotsElapsed === 0) {\n accumulatedProtocolFees = this.getAccumulatedProtocolFees();\n compoundedVariableProtocolFee = new Decimal(0);\n compoundedFixedHostFee = new Decimal(0);\n } else {\n const { newAccProtocolFees, variableProtocolFee, fixedHostFee } = this.compoundInterest(\n slotsElapsed,\n referralFeeBps\n );\n accumulatedProtocolFees = newAccProtocolFees;\n compoundedVariableProtocolFee = variableProtocolFee;\n compoundedFixedHostFee = fixedHostFee;\n }\n return { accumulatedProtocolFees, compoundedVariableProtocolFee, compoundedFixedHostFee };\n }\n\n calculateUtilizationRatio() {\n const totalBorrows = this.getBorrowedAmount();\n const totalSupply = this.getTotalSupply();\n if (totalSupply.eq(0)) {\n return 0;\n }\n return totalBorrows.dividedBy(totalSupply).toNumber();\n }\n\n calcSimulatedUtilizationRatio(\n amount: Decimal,\n action: ActionType,\n slot: number,\n referralFeeBps: number,\n outflowAmount?: Decimal\n ): number {\n const { totalBorrow: previousTotalBorrowed, totalSupply: previousTotalSupply } = this.getEstimatedDebtAndSupply(\n slot,\n referralFeeBps\n );\n\n switch (action) {\n case 'deposit': {\n const newTotalSupply = previousTotalSupply.add(amount);\n return previousTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n case 'withdraw': {\n const newTotalSupply = previousTotalSupply.sub(amount);\n if (newTotalSupply.eq(0)) {\n return 0;\n } else {\n return previousTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n }\n case 'borrow': {\n const newTotalBorrowed = previousTotalBorrowed.add(amount);\n return newTotalBorrowed.dividedBy(previousTotalSupply).toNumber();\n }\n case 'repay': {\n const newTotalBorrowed = previousTotalBorrowed.sub(amount);\n return newTotalBorrowed.dividedBy(previousTotalSupply).toNumber();\n }\n case 'depositAndBorrow': {\n const newTotalSupply = previousTotalSupply.add(amount);\n const newTotalBorrowed = previousTotalBorrowed.add(outflowAmount!);\n return newTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n case 'repayAndWithdraw': {\n const newTotalBorrowed = previousTotalBorrowed.sub(amount);\n const newTotalSupply = previousTotalSupply.sub(outflowAmount!);\n if (newTotalSupply.eq(0)) {\n return 0;\n }\n return newTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n case 'mint': {\n const newTotalSupply = previousTotalSupply.add(amount);\n return previousTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n case 'redeem': {\n const newTotalSupply = previousTotalSupply.sub(amount);\n return previousTotalBorrowed.dividedBy(newTotalSupply).toNumber();\n }\n default:\n throw Error(`Invalid action type ${action} for simulatedUtilizationRatio`);\n }\n }\n\n calcSimulatedBorrowAPR(\n amount: Decimal,\n action: ActionType,\n slot: number,\n referralFeeBps: number,\n outflowAmount?: Decimal\n ) {\n const slotAdjustmentFactor = this.slotAdjustmentFactor();\n const newUtilization = this.calcSimulatedUtilizationRatio(amount, action, slot, referralFeeBps, outflowAmount);\n const curve = truncateBorrowCurve(this.state.config.borrowRateCurve.points);\n return getBorrowRate(newUtilization, curve) * slotAdjustmentFactor;\n }\n\n calcSimulatedSupplyAPR(\n amount: Decimal,\n action: ActionType,\n slot: number,\n referralFeeBps: number,\n outflowAmount?: Decimal\n ) {\n const newUtilization = this.calcSimulatedUtilizationRatio(amount, action, slot, referralFeeBps, outflowAmount);\n const simulatedBorrowAPR = this.calcSimulatedBorrowAPR(amount, action, slot, referralFeeBps, outflowAmount);\n const protocolTakeRatePct = 1 - this.state.config.protocolTakeRatePct / 100;\n\n return newUtilization * simulatedBorrowAPR * protocolTakeRatePct;\n }\n\n slotAdjustmentFactor(): number {\n return 1000 / SLOTS_PER_SECOND / this.recentSlotDurationMs;\n }\n\n calculateBorrowAPR() {\n const slotAdjustmentFactor = this.slotAdjustmentFactor();\n const currentUtilization = this.calculateUtilizationRatio();\n const curve = truncateBorrowCurve(this.state.config.borrowRateCurve.points);\n return getBorrowRate(currentUtilization, curve) * slotAdjustmentFactor;\n }\n\n /**\n * @returns the mint of the reserve liquidity token\n */\n getLiquidityMint(): PublicKey {\n return this.state.liquidity.mintPubkey;\n }\n\n /**\n * @returns the token program of the reserve liquidity mint\n */\n getLiquidityTokenProgram(): PublicKey {\n return this.state.liquidity.tokenProgram;\n }\n\n /**\n * @returns the mint of the reserve collateral token , i.e. the cToken minted for depositing the liquidity token\n */\n getCTokenMint(): PublicKey {\n return this.state.collateral.mintPubkey;\n }\n\n setBuffer(buffer: AccountInfo<Buffer> | null) {\n this.buffer = buffer;\n }\n\n async load(tokenOraclePrice: TokenOracleData) {\n if (!this.buffer) {\n this.setBuffer(await this.connection.getAccountInfo(this.address, 'processed'));\n }\n\n if (!this.buffer) {\n throw Error(`Error requesting account info for ${this.symbol}`);\n }\n\n const parsedData = await Reserve.fetch(this.connection, this.address);\n if (!parsedData) {\n throw Error(`Unable to parse data of reserve ${this.symbol}`);\n }\n this.state = parsedData;\n this.tokenOraclePrice = tokenOraclePrice;\n this.stats = this.formatReserveData(parsedData);\n }\n\n totalSupplyAPY() {\n const { stats } = this;\n if (!stats) {\n throw Error('KaminoMarket must call loadRewards.');\n }\n\n const totalAPY = new Decimal(stats.supplyInterestAPY).toNumber();\n\n return {\n interestAPY: stats.supplyInterestAPY,\n totalAPY,\n };\n }\n\n totalBorrowAPY() {\n const { stats } = this;\n if (!stats) {\n throw Error('KaminoMarket must call loadRewards.');\n }\n\n const totalAPY = new Decimal(stats.borrowInterestAPY).toNumber();\n\n return {\n interestAPY: stats.borrowInterestAPY,\n totalAPY,\n };\n }\n\n private formatReserveData(parsedData: ReserveFields): ReserveDataType {\n const mintTotalSupply = new Decimal(parsedData.collateral.mintTotalSupply.toString()).div(this.getMintFactor());\n let reserveStatus = ReserveStatus.Active;\n switch (parsedData.config.status) {\n case 0:\n reserveStatus = ReserveStatus.Active;\n break;\n case 1:\n reserveStatus = ReserveStatus.Obsolete;\n break;\n case 2:\n reserveStatus = ReserveStatus.Hidden;\n break;\n }\n return {\n // Reserve config\n\n status: reserveStatus,\n mintAddress: parsedData.liquidity.mintPubkey,\n borrowCurve: truncateBorrowCurve(parsedData.config.borrowRateCurve.points),\n loanToValuePct: parsedData.config.loanToValuePct / 100,\n maxLiquidationBonus: parsedData.config.maxLiquidationBonusBps / 10000,\n minLiquidationBonus: parsedData.config.minLiquidationBonusBps / 10000,\n liquidationThreshold: parsedData.config.liquidationThresholdPct / 100,\n protocolTakeRate: parsedData.config.protocolTakeRatePct / 100,\n reserveDepositLimit: new Decimal(parsedData.config.depositLimit.toString()),\n reserveBorrowLimit: new Decimal(parsedData.config.borrowLimit.toString()),\n\n // Reserve info\n symbol: parseTokenSymbol(parsedData.config.tokenInfo.name),\n decimals: this.state.liquidity.mintDecimals.toNumber(),\n supplyInterestAPY: calculateAPYFromAPR(this.calculateSupplyAPR()),\n borrowInterestAPY: calculateAPYFromAPR(this.calculateBorrowAPR()),\n accumulatedProtocolFees: this.getAccumulatedProtocolFees().div(this.getMintFactor()),\n mintTotalSupply,\n depositLimitCrossedSlot: parsedData.liquidity.depositLimitCrossedSlot.toNumber(),\n borrowLimitCrossedSlot: parsedData.liquidity.borrowLimitCrossedSlot.toNumber(),\n borrowFactor: parsedData.config.borrowFactorPct.toNumber(),\n };\n }\n\n /**\n * Compound current borrow rate over elapsed slots\n *\n * This also calculates protocol fees, which are taken for all obligations that have borrowed from current reserve.\n *\n * This also calculates referral fees, which are taken into pendingReferralFees.\n *\n * https://github.com/Kamino-Finance/klend/blob/release/1.3.0/programs/klend/src/state/reserve.rs#L517\n *\n * @param slotsElapsed\n * @param referralFeeBps\n */\n private compoundInterest(\n slotsElapsed: number,\n referralFeeBps: number\n ): {\n newDebt: Decimal;\n netNewDebt: Decimal;\n variableProtocolFee: Decimal;\n fixedHostFee: Decimal;\n absoluteReferralFee: Decimal;\n maxReferralFees: Decimal;\n newAccProtocolFees: Decimal;\n pendingReferralFees: Decimal;\n } {\n const currentBorrowRate = this.calculateBorrowAPR();\n const protocolTakeRate = new Decimal(this.state.config.protocolTakeRatePct).div(100);\n const referralRate = new Decimal(referralFeeBps).div(10_000);\n const fixedHostInterestRate = this.getFixedHostInterestRate();\n\n const compoundedInterestRate = this.approximateCompoundedInterest(\n new Decimal(currentBorrowRate).plus(fixedHostInterestRate),\n slotsElapsed\n );\n const compoundedFixedRate = this.approximateCompoundedInterest(fixedHostInterestRate, slotsElapsed);\n\n const previousDebt = this.getBorrowedAmount();\n const newDebt = previousDebt.mul(compoundedInterestRate);\n const fixedHostFee = previousDebt.mul(compoundedFixedRate).sub(previousDebt);\n\n const netNewDebt = newDebt.sub(previousDebt).sub(fixedHostFee);\n\n const variableProtocolFee = netNewDebt.mul(protocolTakeRate);\n const absoluteReferralFee = protocolTakeRate.mul(referralRate);\n const maxReferralFees = netNewDebt.mul(absoluteReferralFee);\n\n const newAccProtocolFees = variableProtocolFee\n .add(fixedHostFee)\n .sub(maxReferralFees)\n .add(this.getAccumulatedProtocolFees());\n\n const pendingReferralFees = this.getPendingReferrerFees().add(maxReferralFees);\n\n return {\n newDebt,\n netNewDebt,\n variableProtocolFee,\n fixedHostFee,\n absoluteReferralFee,\n maxReferralFees,\n newAccProtocolFees,\n pendingReferralFees,\n };\n }\n\n /**\n * Approximation to match the smart contract calculation\n * https://github.com/Kamino-Finance/klend/blob/release/1.3.0/programs/klend/src/state/reserve.rs#L1026\n * @param rate\n * @param elapsedSlots\n * @private\n */\n private approximateCompoundedInterest(rate: Decimal, elapsedSlots: number): Decimal {\n const base = rate.div(SLOTS_PER_YEAR);\n switch (elapsedSlots) {\n case 0:\n return new Decimal(1);\n case 1:\n return base.add(1);\n case 2:\n return base.add(1).mul(base.add(1));\n case 3:\n return base.add(1).mul(base.add(1)).mul(base.add(1));\n case 4:\n // eslint-disable-next-line no-case-declarations\n const pow2 = base.add(1).mul(base.add(1));\n return pow2.mul(pow2);\n }\n const exp = elapsedSlots;\n const expMinus1 = exp - 1;\n const expMinus2 = exp - 2;\n\n const basePow2 = base.mul(base);\n const basePow3 = basePow2.mul(base);\n\n const firstTerm = base.mul(exp);\n const secondTerm = basePow2.mul(exp).mul(expMinus1).div(2);\n const thirdTerm = basePow3.mul(exp).mul(expMinus1).mul(expMinus2).div(6);\n\n return new Decimal(1).add(firstTerm).add(secondTerm).add(thirdTerm);\n }\n}\n\nconst truncateBorrowCurve = (points: CurvePointFields[]): [number, number][] => {\n const curve: [number, number][] = [];\n for (const { utilizationRateBps, borrowRateBps } of points) {\n curve.push([utilizationRateBps / ONE_HUNDRED_PCT_IN_BPS, borrowRateBps / ONE_HUNDRED_PCT_IN_BPS]);\n\n if (utilizationRateBps === ONE_HUNDRED_PCT_IN_BPS) {\n break;\n }\n }\n return curve;\n};\n"]}
@@ -3,7 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.calculateAPYFromAPR = exports.positiveOrZero = exports.isEmptyObject = exports.valueOrZero = exports.isSolMint = exports.lamportsToNumberDecimal = exports.numberToLamportsDecimal = exports.sleep = exports.parseTokenSymbol = exports.getBorrowRate = exports.interpolate = exports.estimateCurrentScore = exports.calculateNewScore = void 0;
6
+ exports.positiveOrZero = exports.isEmptyObject = exports.valueOrZero = exports.isSolMint = exports.parseTokenSymbol = exports.getBorrowRate = exports.interpolate = exports.estimateCurrentScore = exports.calculateNewScore = void 0;
7
+ exports.sleep = sleep;
8
+ exports.numberToLamportsDecimal = numberToLamportsDecimal;
9
+ exports.lamportsToNumberDecimal = lamportsToNumberDecimal;
10
+ exports.calculateAPYFromAPR = calculateAPYFromAPR;
7
11
  const utils_1 = require("../utils");
8
12
  const decimal_js_1 = __importDefault(require("decimal.js"));
9
13
  const lib_1 = require("../lib");
@@ -87,17 +91,14 @@ exports.parseTokenSymbol = parseTokenSymbol;
87
91
  function sleep(ms) {
88
92
  return new Promise((resolve) => setTimeout(resolve, ms));
89
93
  }
90
- exports.sleep = sleep;
91
94
  function numberToLamportsDecimal(amount, decimals) {
92
95
  const factor = Math.pow(10, decimals);
93
96
  return new decimal_js_1.default(amount).mul(factor);
94
97
  }
95
- exports.numberToLamportsDecimal = numberToLamportsDecimal;
96
98
  function lamportsToNumberDecimal(amount, decimals) {
97
99
  const factor = Math.pow(10, decimals);
98
100
  return new decimal_js_1.default(amount).div(factor);
99
101
  }
100
- exports.lamportsToNumberDecimal = lamportsToNumberDecimal;
101
102
  const isSolMint = (mint) => {
102
103
  return lib_1.SOL_MINTS.filter((m) => m.equals(mint)).length > 0;
103
104
  };
@@ -125,5 +126,4 @@ function calculateAPYFromAPR(apr) {
125
126
  const apy = Math.pow(new decimal_js_1.default(1).plus(new decimal_js_1.default(apr).dividedBy(utils_1.SLOTS_PER_YEAR)).toNumber(), utils_1.SLOTS_PER_YEAR) - 1;
126
127
  return apy;
127
128
  }
128
- exports.calculateAPYFromAPR = calculateAPYFromAPR;
129
129
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/classes/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { SLOTS_PER_SECOND, SLOTS_PER_YEAR } from '../utils';\nimport Decimal from 'decimal.js';\nimport { PublicKey } from '@solana/web3.js';\nimport { SOL_MINTS } from '../lib';\n\ntype ObligationFarmScoreType = {\n obligationId: string;\n balance: string;\n debt: string;\n score: string;\n lastSlot: number;\n tokenMint: string;\n side: 'supply' | 'borrow';\n};\n\ntype RewardRate = {\n beginningSlot: number;\n rewardRate: string;\n name?: string;\n};\n\nfunction getLatestRewardRate(\n rewardRates: Array<{\n beginningSlot: number;\n rewardRate: string;\n name?: string;\n }>,\n slot: number\n) {\n return rewardRates\n .filter((rr) => slot >= rr.beginningSlot)\n .reduce((v1, v2) => (v1.beginningSlot > v2.beginningSlot ? v1 : v2), {\n beginningSlot: 0,\n rewardRate: '0',\n });\n}\n\nexport const calculateNewScore = (\n rewardStat: {\n lastSlot: number;\n rewardRates: Array<RewardRate>;\n rewardsPerShare: string;\n totalBalance: string;\n },\n pool: ObligationFarmScoreType,\n rewardRate: string,\n endSlot: number,\n startSlot: number\n) => {\n const { balance, debt, score } = pool;\n const { rewardsPerShare, totalBalance } = rewardStat;\n\n const oldDebt = new Decimal(debt);\n const oldScore = new Decimal(score);\n const oldRewardsPerShare = new Decimal(rewardsPerShare);\n const oldBalance = new Decimal(balance);\n const totalBalanceVal = new Decimal(totalBalance);\n\n const newRewardsPerShare = !totalBalanceVal.isZero()\n ? oldRewardsPerShare.plus(\n new Decimal(endSlot)\n .minus(new Decimal(startSlot.toString()))\n .times(new Decimal(rewardRate))\n .div(totalBalanceVal)\n .div(new Decimal(SLOTS_PER_YEAR))\n )\n : new Decimal(0);\n\n return oldScore.plus(newRewardsPerShare.times(oldBalance).minus(oldDebt));\n};\n\nexport const estimateCurrentScore = (\n rewardStat: {\n lastSlot: number;\n rewardRates: Array<RewardRate>;\n rewardsPerShare: string;\n totalBalance: string;\n },\n rewardScore: ObligationFarmScoreType,\n mostRecentSlot: number,\n mostRecentSlotTime: number\n) => {\n const { lastSlot, rewardRates } = rewardStat;\n\n const estimatedCurrentSlot = mostRecentSlot + SLOTS_PER_SECOND * (Date.now() / 1000 - mostRecentSlotTime);\n\n const { rewardRate } = getLatestRewardRate(rewardRates, estimatedCurrentSlot);\n\n const currentScore = calculateNewScore(rewardStat, rewardScore, rewardRate, estimatedCurrentSlot, lastSlot);\n\n return currentScore;\n};\n\nexport const interpolate = (x: number, x0: number, x1: number, y0: number, y1: number) => {\n if (x > x1) {\n throw 'Cannot do extrapolation';\n }\n\n return y0 + ((x - x0) * (y1 - y0)) / (x1 - x0);\n};\n\nexport const getBorrowRate = (currentUtilization: number, curve: [number, number][]): number => {\n let [x0, y0, x1, y1] = [0, 0, 0, 0];\n\n if (curve.length < 2) {\n throw 'Invalid borrow rate curve, only one point';\n }\n\n if (currentUtilization > 1) {\n currentUtilization = 1;\n }\n\n for (let i = 1; i < curve.length; i++) {\n const [pointUtilization, pointRate] = curve[i];\n if (pointUtilization === currentUtilization) {\n return pointRate;\n }\n\n if (currentUtilization <= pointUtilization) {\n x0 = curve[i - 1][0];\n y0 = curve[i - 1][1];\n x1 = curve[i][0];\n y1 = curve[i][1];\n break;\n }\n }\n\n if (x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n console.log('All are 0');\n throw 'Invalid borrow rate curve, could not identify the interpolation points.';\n }\n\n if (x0 >= x1 || y0 > y1) {\n console.log('(x0, y0), (x1, y1)', x0, y0, x1, y1);\n throw 'Invalid borrow rate curve, curve is not uniformly increasing';\n }\n\n return interpolate(currentUtilization, x0, x1, y0, y1);\n};\n\nexport const parseTokenSymbol = (tokenSymbol: number[]): string => {\n return String.fromCharCode(...tokenSymbol.filter((x) => x > 0));\n};\n\nexport function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function numberToLamportsDecimal(amount: Decimal.Value, decimals: number): Decimal {\n const factor = 10 ** decimals;\n return new Decimal(amount).mul(factor);\n}\n\nexport function lamportsToNumberDecimal(amount: Decimal.Value, decimals: number): Decimal {\n const factor = 10 ** decimals;\n return new Decimal(amount).div(factor);\n}\n\nexport const isSolMint = (mint: PublicKey): boolean => {\n return SOL_MINTS.filter((m) => m.equals(mint)).length > 0;\n};\n\nexport const valueOrZero = (value: Decimal): Decimal => {\n const zero = new Decimal(0);\n if (value.isNaN() || !value.isFinite()) {\n return zero;\n } else {\n return value;\n }\n};\n\nexport const isEmptyObject = (obj: any) => {\n return Object.keys(obj).length === 0 && obj.constructor === Object;\n};\n\nexport const positiveOrZero = (value: Decimal): Decimal => {\n const zero = new Decimal(0);\n return Decimal.max(value, zero);\n};\n\nexport function calculateAPYFromAPR(apr: number) {\n const apy = new Decimal(1).plus(new Decimal(apr).dividedBy(SLOTS_PER_YEAR)).toNumber() ** SLOTS_PER_YEAR - 1;\n return apy;\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/classes/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { SLOTS_PER_SECOND, SLOTS_PER_YEAR } from '../utils';\nimport Decimal from 'decimal.js';\nimport { PublicKey } from '@solana/web3.js';\nimport { SOL_MINTS } from '../lib';\n\ntype ObligationFarmScoreType = {\n obligationId: string;\n balance: string;\n debt: string;\n score: string;\n lastSlot: number;\n tokenMint: string;\n side: 'supply' | 'borrow';\n};\n\ntype RewardRate = {\n beginningSlot: number;\n rewardRate: string;\n name?: string;\n};\n\nfunction getLatestRewardRate(\n rewardRates: Array<{\n beginningSlot: number;\n rewardRate: string;\n name?: string;\n }>,\n slot: number\n) {\n return rewardRates\n .filter((rr) => slot >= rr.beginningSlot)\n .reduce((v1, v2) => (v1.beginningSlot > v2.beginningSlot ? v1 : v2), {\n beginningSlot: 0,\n rewardRate: '0',\n });\n}\n\nexport const calculateNewScore = (\n rewardStat: {\n lastSlot: number;\n rewardRates: Array<RewardRate>;\n rewardsPerShare: string;\n totalBalance: string;\n },\n pool: ObligationFarmScoreType,\n rewardRate: string,\n endSlot: number,\n startSlot: number\n) => {\n const { balance, debt, score } = pool;\n const { rewardsPerShare, totalBalance } = rewardStat;\n\n const oldDebt = new Decimal(debt);\n const oldScore = new Decimal(score);\n const oldRewardsPerShare = new Decimal(rewardsPerShare);\n const oldBalance = new Decimal(balance);\n const totalBalanceVal = new Decimal(totalBalance);\n\n const newRewardsPerShare = !totalBalanceVal.isZero()\n ? oldRewardsPerShare.plus(\n new Decimal(endSlot)\n .minus(new Decimal(startSlot.toString()))\n .times(new Decimal(rewardRate))\n .div(totalBalanceVal)\n .div(new Decimal(SLOTS_PER_YEAR))\n )\n : new Decimal(0);\n\n return oldScore.plus(newRewardsPerShare.times(oldBalance).minus(oldDebt));\n};\n\nexport const estimateCurrentScore = (\n rewardStat: {\n lastSlot: number;\n rewardRates: Array<RewardRate>;\n rewardsPerShare: string;\n totalBalance: string;\n },\n rewardScore: ObligationFarmScoreType,\n mostRecentSlot: number,\n mostRecentSlotTime: number\n) => {\n const { lastSlot, rewardRates } = rewardStat;\n\n const estimatedCurrentSlot = mostRecentSlot + SLOTS_PER_SECOND * (Date.now() / 1000 - mostRecentSlotTime);\n\n const { rewardRate } = getLatestRewardRate(rewardRates, estimatedCurrentSlot);\n\n const currentScore = calculateNewScore(rewardStat, rewardScore, rewardRate, estimatedCurrentSlot, lastSlot);\n\n return currentScore;\n};\n\nexport const interpolate = (x: number, x0: number, x1: number, y0: number, y1: number) => {\n if (x > x1) {\n throw 'Cannot do extrapolation';\n }\n\n return y0 + ((x - x0) * (y1 - y0)) / (x1 - x0);\n};\n\nexport const getBorrowRate = (currentUtilization: number, curve: [number, number][]): number => {\n let [x0, y0, x1, y1] = [0, 0, 0, 0];\n\n if (curve.length < 2) {\n throw 'Invalid borrow rate curve, only one point';\n }\n\n if (currentUtilization > 1) {\n currentUtilization = 1;\n }\n\n for (let i = 1; i < curve.length; i++) {\n const [pointUtilization, pointRate] = curve[i];\n if (pointUtilization === currentUtilization) {\n return pointRate;\n }\n\n if (currentUtilization <= pointUtilization) {\n x0 = curve[i - 1][0];\n y0 = curve[i - 1][1];\n x1 = curve[i][0];\n y1 = curve[i][1];\n break;\n }\n }\n\n if (x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n console.log('All are 0');\n throw 'Invalid borrow rate curve, could not identify the interpolation points.';\n }\n\n if (x0 >= x1 || y0 > y1) {\n console.log('(x0, y0), (x1, y1)', x0, y0, x1, y1);\n throw 'Invalid borrow rate curve, curve is not uniformly increasing';\n }\n\n return interpolate(currentUtilization, x0, x1, y0, y1);\n};\n\nexport const parseTokenSymbol = (tokenSymbol: number[]): string => {\n return String.fromCharCode(...tokenSymbol.filter((x) => x > 0));\n};\n\nexport function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function numberToLamportsDecimal(amount: Decimal.Value, decimals: number): Decimal {\n const factor = 10 ** decimals;\n return new Decimal(amount).mul(factor);\n}\n\nexport function lamportsToNumberDecimal(amount: Decimal.Value, decimals: number): Decimal {\n const factor = 10 ** decimals;\n return new Decimal(amount).div(factor);\n}\n\nexport const isSolMint = (mint: PublicKey): boolean => {\n return SOL_MINTS.filter((m) => m.equals(mint)).length > 0;\n};\n\nexport const valueOrZero = (value: Decimal): Decimal => {\n const zero = new Decimal(0);\n if (value.isNaN() || !value.isFinite()) {\n return zero;\n } else {\n return value;\n }\n};\n\nexport const isEmptyObject = (obj: any) => {\n return Object.keys(obj).length === 0 && obj.constructor === Object;\n};\n\nexport const positiveOrZero = (value: Decimal): Decimal => {\n const zero = new Decimal(0);\n return Decimal.max(value, zero);\n};\n\nexport function calculateAPYFromAPR(apr: number) {\n const apy = new Decimal(1).plus(new Decimal(apr).dividedBy(SLOTS_PER_YEAR)).toNumber() ** SLOTS_PER_YEAR - 1;\n return apy;\n}\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { PublicKey, Connection } from "@solana/web3.js";
3
2
  import BN from "bn.js";
4
3
  import * as types from "../types";
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { PublicKey, Connection } from "@solana/web3.js";
3
2
  import BN from "bn.js";
4
3
  import * as types from "../types";
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { PublicKey, Connection } from "@solana/web3.js";
3
2
  export interface ReferrerStateFields {
4
3
  shortUrl: PublicKey;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { PublicKey, Connection } from "@solana/web3.js";
3
2
  import BN from "bn.js";
4
3
  export interface ReferrerTokenStateFields {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { PublicKey, Connection } from "@solana/web3.js";
3
2
  import BN from "bn.js";
4
3
  import * as types from "../types";
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { PublicKey, Connection } from "@solana/web3.js";
3
2
  export interface ShortUrlFields {
4
3
  referrer: PublicKey;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { PublicKey, Connection } from "@solana/web3.js";
3
2
  import BN from "bn.js";
4
3
  export interface UserMetadataFields {
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import { PublicKey, Connection } from "@solana/web3.js";
3
2
  import BN from "bn.js";
4
3
  export interface UserStateFields {
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AccountSysvarMismatch = exports.AccountNotAssociatedTokenAccount = exports.AccountNotProgramData = exports.AccountNotInitialized = exports.AccountNotSystemOwned = exports.AccountNotSigner = exports.InvalidProgramExecutable = exports.InvalidProgramId = exports.AccountOwnedByWrongProgram = exports.AccountNotMutable = exports.AccountNotEnoughKeys = exports.AccountDidNotSerialize = exports.AccountDidNotDeserialize = exports.AccountDiscriminatorMismatch = exports.AccountDiscriminatorNotFound = exports.AccountDiscriminatorAlreadySet = exports.RequireGteViolated = exports.RequireGtViolated = exports.RequireKeysNeqViolated = exports.RequireNeqViolated = exports.RequireKeysEqViolated = exports.RequireEqViolated = exports.RequireViolated = exports.ConstraintAccountIsNone = exports.ConstraintSpace = exports.ConstraintMintDecimals = exports.ConstraintMintFreezeAuthority = exports.ConstraintMintMintAuthority = exports.ConstraintTokenOwner = exports.ConstraintTokenMint = exports.ConstraintZero = exports.ConstraintAddress = exports.ConstraintClose = exports.ConstraintAssociatedInit = exports.ConstraintAssociated = exports.ConstraintState = exports.ConstraintExecutable = exports.ConstraintSeeds = exports.ConstraintRentExempt = exports.ConstraintOwner = exports.ConstraintRaw = exports.ConstraintSigner = exports.ConstraintHasOne = exports.ConstraintMut = exports.IdlInstructionInvalidProgram = exports.IdlInstructionStub = exports.InstructionDidNotSerialize = exports.InstructionDidNotDeserialize = exports.InstructionFallbackNotFound = exports.InstructionMissing = void 0;
4
- exports.fromCode = exports.Deprecated = exports.DeclaredProgramIdMismatch = exports.AccountDuplicateReallocs = exports.AccountReallocExceedsLimit = void 0;
4
+ exports.Deprecated = exports.DeclaredProgramIdMismatch = exports.AccountDuplicateReallocs = exports.AccountReallocExceedsLimit = void 0;
5
+ exports.fromCode = fromCode;
5
6
  class InstructionMissing extends Error {
6
7
  constructor(logs) {
7
8
  super("100: 8 byte instruction identifier not provided");
@@ -709,5 +710,4 @@ function fromCode(code, logs) {
709
710
  }
710
711
  return null;
711
712
  }
712
- exports.fromCode = fromCode;
713
713
  //# sourceMappingURL=anchor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anchor.js","sourceRoot":"","sources":["../../../src/idl_codegen/errors/anchor.ts"],"names":[],"mappings":"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","sourcesContent":["export type AnchorError =\n | InstructionMissing\n | InstructionFallbackNotFound\n | InstructionDidNotDeserialize\n | InstructionDidNotSerialize\n | IdlInstructionStub\n | IdlInstructionInvalidProgram\n | ConstraintMut\n | ConstraintHasOne\n | ConstraintSigner\n | ConstraintRaw\n | ConstraintOwner\n | ConstraintRentExempt\n | ConstraintSeeds\n | ConstraintExecutable\n | ConstraintState\n | ConstraintAssociated\n | ConstraintAssociatedInit\n | ConstraintClose\n | ConstraintAddress\n | ConstraintZero\n | ConstraintTokenMint\n | ConstraintTokenOwner\n | ConstraintMintMintAuthority\n | ConstraintMintFreezeAuthority\n | ConstraintMintDecimals\n | ConstraintSpace\n | ConstraintAccountIsNone\n | RequireViolated\n | RequireEqViolated\n | RequireKeysEqViolated\n | RequireNeqViolated\n | RequireKeysNeqViolated\n | RequireGtViolated\n | RequireGteViolated\n | AccountDiscriminatorAlreadySet\n | AccountDiscriminatorNotFound\n | AccountDiscriminatorMismatch\n | AccountDidNotDeserialize\n | AccountDidNotSerialize\n | AccountNotEnoughKeys\n | AccountNotMutable\n | AccountOwnedByWrongProgram\n | InvalidProgramId\n | InvalidProgramExecutable\n | AccountNotSigner\n | AccountNotSystemOwned\n | AccountNotInitialized\n | AccountNotProgramData\n | AccountNotAssociatedTokenAccount\n | AccountSysvarMismatch\n | AccountReallocExceedsLimit\n | AccountDuplicateReallocs\n | DeclaredProgramIdMismatch\n | Deprecated\n\nexport class InstructionMissing extends Error {\n static readonly code = 100\n readonly code = 100\n readonly name = \"InstructionMissing\"\n readonly msg = \"8 byte instruction identifier not provided\"\n\n constructor(readonly logs?: string[]) {\n super(\"100: 8 byte instruction identifier not provided\")\n }\n}\n\nexport class InstructionFallbackNotFound extends Error {\n static readonly code = 101\n readonly code = 101\n readonly name = \"InstructionFallbackNotFound\"\n readonly msg = \"Fallback functions are not supported\"\n\n constructor(readonly logs?: string[]) {\n super(\"101: Fallback functions are not supported\")\n }\n}\n\nexport class InstructionDidNotDeserialize extends Error {\n static readonly code = 102\n readonly code = 102\n readonly name = \"InstructionDidNotDeserialize\"\n readonly msg = \"The program could not deserialize the given instruction\"\n\n constructor(readonly logs?: string[]) {\n super(\"102: The program could not deserialize the given instruction\")\n }\n}\n\nexport class InstructionDidNotSerialize extends Error {\n static readonly code = 103\n readonly code = 103\n readonly name = \"InstructionDidNotSerialize\"\n readonly msg = \"The program could not serialize the given instruction\"\n\n constructor(readonly logs?: string[]) {\n super(\"103: The program could not serialize the given instruction\")\n }\n}\n\nexport class IdlInstructionStub extends Error {\n static readonly code = 1000\n readonly code = 1000\n readonly name = \"IdlInstructionStub\"\n readonly msg = \"The program was compiled without idl instructions\"\n\n constructor(readonly logs?: string[]) {\n super(\"1000: The program was compiled without idl instructions\")\n }\n}\n\nexport class IdlInstructionInvalidProgram extends Error {\n static readonly code = 1001\n readonly code = 1001\n readonly name = \"IdlInstructionInvalidProgram\"\n readonly msg =\n \"The transaction was given an invalid program for the IDL instruction\"\n\n constructor(readonly logs?: string[]) {\n super(\n \"1001: The transaction was given an invalid program for the IDL instruction\"\n )\n }\n}\n\nexport class ConstraintMut extends Error {\n static readonly code = 2000\n readonly code = 2000\n readonly name = \"ConstraintMut\"\n readonly msg = \"A mut constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2000: A mut constraint was violated\")\n }\n}\n\nexport class ConstraintHasOne extends Error {\n static readonly code = 2001\n readonly code = 2001\n readonly name = \"ConstraintHasOne\"\n readonly msg = \"A has one constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2001: A has one constraint was violated\")\n }\n}\n\nexport class ConstraintSigner extends Error {\n static readonly code = 2002\n readonly code = 2002\n readonly name = \"ConstraintSigner\"\n readonly msg = \"A signer constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2002: A signer constraint was violated\")\n }\n}\n\nexport class ConstraintRaw extends Error {\n static readonly code = 2003\n readonly code = 2003\n readonly name = \"ConstraintRaw\"\n readonly msg = \"A raw constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2003: A raw constraint was violated\")\n }\n}\n\nexport class ConstraintOwner extends Error {\n static readonly code = 2004\n readonly code = 2004\n readonly name = \"ConstraintOwner\"\n readonly msg = \"An owner constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2004: An owner constraint was violated\")\n }\n}\n\nexport class ConstraintRentExempt extends Error {\n static readonly code = 2005\n readonly code = 2005\n readonly name = \"ConstraintRentExempt\"\n readonly msg = \"A rent exemption constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2005: A rent exemption constraint was violated\")\n }\n}\n\nexport class ConstraintSeeds extends Error {\n static readonly code = 2006\n readonly code = 2006\n readonly name = \"ConstraintSeeds\"\n readonly msg = \"A seeds constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2006: A seeds constraint was violated\")\n }\n}\n\nexport class ConstraintExecutable extends Error {\n static readonly code = 2007\n readonly code = 2007\n readonly name = \"ConstraintExecutable\"\n readonly msg = \"An executable constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2007: An executable constraint was violated\")\n }\n}\n\nexport class ConstraintState extends Error {\n static readonly code = 2008\n readonly code = 2008\n readonly name = \"ConstraintState\"\n readonly msg = \"Deprecated Error, feel free to replace with something else\"\n\n constructor(readonly logs?: string[]) {\n super(\"2008: Deprecated Error, feel free to replace with something else\")\n }\n}\n\nexport class ConstraintAssociated extends Error {\n static readonly code = 2009\n readonly code = 2009\n readonly name = \"ConstraintAssociated\"\n readonly msg = \"An associated constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2009: An associated constraint was violated\")\n }\n}\n\nexport class ConstraintAssociatedInit extends Error {\n static readonly code = 2010\n readonly code = 2010\n readonly name = \"ConstraintAssociatedInit\"\n readonly msg = \"An associated init constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2010: An associated init constraint was violated\")\n }\n}\n\nexport class ConstraintClose extends Error {\n static readonly code = 2011\n readonly code = 2011\n readonly name = \"ConstraintClose\"\n readonly msg = \"A close constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2011: A close constraint was violated\")\n }\n}\n\nexport class ConstraintAddress extends Error {\n static readonly code = 2012\n readonly code = 2012\n readonly name = \"ConstraintAddress\"\n readonly msg = \"An address constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2012: An address constraint was violated\")\n }\n}\n\nexport class ConstraintZero extends Error {\n static readonly code = 2013\n readonly code = 2013\n readonly name = \"ConstraintZero\"\n readonly msg = \"Expected zero account discriminant\"\n\n constructor(readonly logs?: string[]) {\n super(\"2013: Expected zero account discriminant\")\n }\n}\n\nexport class ConstraintTokenMint extends Error {\n static readonly code = 2014\n readonly code = 2014\n readonly name = \"ConstraintTokenMint\"\n readonly msg = \"A token mint constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2014: A token mint constraint was violated\")\n }\n}\n\nexport class ConstraintTokenOwner extends Error {\n static readonly code = 2015\n readonly code = 2015\n readonly name = \"ConstraintTokenOwner\"\n readonly msg = \"A token owner constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2015: A token owner constraint was violated\")\n }\n}\n\nexport class ConstraintMintMintAuthority extends Error {\n static readonly code = 2016\n readonly code = 2016\n readonly name = \"ConstraintMintMintAuthority\"\n readonly msg = \"A mint mint authority constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2016: A mint mint authority constraint was violated\")\n }\n}\n\nexport class ConstraintMintFreezeAuthority extends Error {\n static readonly code = 2017\n readonly code = 2017\n readonly name = \"ConstraintMintFreezeAuthority\"\n readonly msg = \"A mint freeze authority constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2017: A mint freeze authority constraint was violated\")\n }\n}\n\nexport class ConstraintMintDecimals extends Error {\n static readonly code = 2018\n readonly code = 2018\n readonly name = \"ConstraintMintDecimals\"\n readonly msg = \"A mint decimals constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2018: A mint decimals constraint was violated\")\n }\n}\n\nexport class ConstraintSpace extends Error {\n static readonly code = 2019\n readonly code = 2019\n readonly name = \"ConstraintSpace\"\n readonly msg = \"A space constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2019: A space constraint was violated\")\n }\n}\n\nexport class ConstraintAccountIsNone extends Error {\n static readonly code = 2020\n readonly code = 2020\n readonly name = \"ConstraintAccountIsNone\"\n readonly msg = \"A required account for the constraint is None\"\n\n constructor(readonly logs?: string[]) {\n super(\"2020: A required account for the constraint is None\")\n }\n}\n\nexport class RequireViolated extends Error {\n static readonly code = 2500\n readonly code = 2500\n readonly name = \"RequireViolated\"\n readonly msg = \"A require expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2500: A require expression was violated\")\n }\n}\n\nexport class RequireEqViolated extends Error {\n static readonly code = 2501\n readonly code = 2501\n readonly name = \"RequireEqViolated\"\n readonly msg = \"A require_eq expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2501: A require_eq expression was violated\")\n }\n}\n\nexport class RequireKeysEqViolated extends Error {\n static readonly code = 2502\n readonly code = 2502\n readonly name = \"RequireKeysEqViolated\"\n readonly msg = \"A require_keys_eq expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2502: A require_keys_eq expression was violated\")\n }\n}\n\nexport class RequireNeqViolated extends Error {\n static readonly code = 2503\n readonly code = 2503\n readonly name = \"RequireNeqViolated\"\n readonly msg = \"A require_neq expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2503: A require_neq expression was violated\")\n }\n}\n\nexport class RequireKeysNeqViolated extends Error {\n static readonly code = 2504\n readonly code = 2504\n readonly name = \"RequireKeysNeqViolated\"\n readonly msg = \"A require_keys_neq expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2504: A require_keys_neq expression was violated\")\n }\n}\n\nexport class RequireGtViolated extends Error {\n static readonly code = 2505\n readonly code = 2505\n readonly name = \"RequireGtViolated\"\n readonly msg = \"A require_gt expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2505: A require_gt expression was violated\")\n }\n}\n\nexport class RequireGteViolated extends Error {\n static readonly code = 2506\n readonly code = 2506\n readonly name = \"RequireGteViolated\"\n readonly msg = \"A require_gte expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2506: A require_gte expression was violated\")\n }\n}\n\nexport class AccountDiscriminatorAlreadySet extends Error {\n static readonly code = 3000\n readonly code = 3000\n readonly name = \"AccountDiscriminatorAlreadySet\"\n readonly msg = \"The account discriminator was already set on this account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3000: The account discriminator was already set on this account\")\n }\n}\n\nexport class AccountDiscriminatorNotFound extends Error {\n static readonly code = 3001\n readonly code = 3001\n readonly name = \"AccountDiscriminatorNotFound\"\n readonly msg = \"No 8 byte discriminator was found on the account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3001: No 8 byte discriminator was found on the account\")\n }\n}\n\nexport class AccountDiscriminatorMismatch extends Error {\n static readonly code = 3002\n readonly code = 3002\n readonly name = \"AccountDiscriminatorMismatch\"\n readonly msg = \"8 byte discriminator did not match what was expected\"\n\n constructor(readonly logs?: string[]) {\n super(\"3002: 8 byte discriminator did not match what was expected\")\n }\n}\n\nexport class AccountDidNotDeserialize extends Error {\n static readonly code = 3003\n readonly code = 3003\n readonly name = \"AccountDidNotDeserialize\"\n readonly msg = \"Failed to deserialize the account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3003: Failed to deserialize the account\")\n }\n}\n\nexport class AccountDidNotSerialize extends Error {\n static readonly code = 3004\n readonly code = 3004\n readonly name = \"AccountDidNotSerialize\"\n readonly msg = \"Failed to serialize the account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3004: Failed to serialize the account\")\n }\n}\n\nexport class AccountNotEnoughKeys extends Error {\n static readonly code = 3005\n readonly code = 3005\n readonly name = \"AccountNotEnoughKeys\"\n readonly msg = \"Not enough account keys given to the instruction\"\n\n constructor(readonly logs?: string[]) {\n super(\"3005: Not enough account keys given to the instruction\")\n }\n}\n\nexport class AccountNotMutable extends Error {\n static readonly code = 3006\n readonly code = 3006\n readonly name = \"AccountNotMutable\"\n readonly msg = \"The given account is not mutable\"\n\n constructor(readonly logs?: string[]) {\n super(\"3006: The given account is not mutable\")\n }\n}\n\nexport class AccountOwnedByWrongProgram extends Error {\n static readonly code = 3007\n readonly code = 3007\n readonly name = \"AccountOwnedByWrongProgram\"\n readonly msg =\n \"The given account is owned by a different program than expected\"\n\n constructor(readonly logs?: string[]) {\n super(\n \"3007: The given account is owned by a different program than expected\"\n )\n }\n}\n\nexport class InvalidProgramId extends Error {\n static readonly code = 3008\n readonly code = 3008\n readonly name = \"InvalidProgramId\"\n readonly msg = \"Program ID was not as expected\"\n\n constructor(readonly logs?: string[]) {\n super(\"3008: Program ID was not as expected\")\n }\n}\n\nexport class InvalidProgramExecutable extends Error {\n static readonly code = 3009\n readonly code = 3009\n readonly name = \"InvalidProgramExecutable\"\n readonly msg = \"Program account is not executable\"\n\n constructor(readonly logs?: string[]) {\n super(\"3009: Program account is not executable\")\n }\n}\n\nexport class AccountNotSigner extends Error {\n static readonly code = 3010\n readonly code = 3010\n readonly name = \"AccountNotSigner\"\n readonly msg = \"The given account did not sign\"\n\n constructor(readonly logs?: string[]) {\n super(\"3010: The given account did not sign\")\n }\n}\n\nexport class AccountNotSystemOwned extends Error {\n static readonly code = 3011\n readonly code = 3011\n readonly name = \"AccountNotSystemOwned\"\n readonly msg = \"The given account is not owned by the system program\"\n\n constructor(readonly logs?: string[]) {\n super(\"3011: The given account is not owned by the system program\")\n }\n}\n\nexport class AccountNotInitialized extends Error {\n static readonly code = 3012\n readonly code = 3012\n readonly name = \"AccountNotInitialized\"\n readonly msg = \"The program expected this account to be already initialized\"\n\n constructor(readonly logs?: string[]) {\n super(\"3012: The program expected this account to be already initialized\")\n }\n}\n\nexport class AccountNotProgramData extends Error {\n static readonly code = 3013\n readonly code = 3013\n readonly name = \"AccountNotProgramData\"\n readonly msg = \"The given account is not a program data account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3013: The given account is not a program data account\")\n }\n}\n\nexport class AccountNotAssociatedTokenAccount extends Error {\n static readonly code = 3014\n readonly code = 3014\n readonly name = \"AccountNotAssociatedTokenAccount\"\n readonly msg = \"The given account is not the associated token account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3014: The given account is not the associated token account\")\n }\n}\n\nexport class AccountSysvarMismatch extends Error {\n static readonly code = 3015\n readonly code = 3015\n readonly name = \"AccountSysvarMismatch\"\n readonly msg = \"The given public key does not match the required sysvar\"\n\n constructor(readonly logs?: string[]) {\n super(\"3015: The given public key does not match the required sysvar\")\n }\n}\n\nexport class AccountReallocExceedsLimit extends Error {\n static readonly code = 3016\n readonly code = 3016\n readonly name = \"AccountReallocExceedsLimit\"\n readonly msg =\n \"The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit\"\n\n constructor(readonly logs?: string[]) {\n super(\n \"3016: The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit\"\n )\n }\n}\n\nexport class AccountDuplicateReallocs extends Error {\n static readonly code = 3017\n readonly code = 3017\n readonly name = \"AccountDuplicateReallocs\"\n readonly msg = \"The account was duplicated for more than one reallocation\"\n\n constructor(readonly logs?: string[]) {\n super(\"3017: The account was duplicated for more than one reallocation\")\n }\n}\n\nexport class DeclaredProgramIdMismatch extends Error {\n static readonly code = 4100\n readonly code = 4100\n readonly name = \"DeclaredProgramIdMismatch\"\n readonly msg = \"The declared program id does not match the actual program id\"\n\n constructor(readonly logs?: string[]) {\n super(\"4100: The declared program id does not match the actual program id\")\n }\n}\n\nexport class Deprecated extends Error {\n static readonly code = 5000\n readonly code = 5000\n readonly name = \"Deprecated\"\n readonly msg = \"The API being used is deprecated and should no longer be used\"\n\n constructor(readonly logs?: string[]) {\n super(\"5000: The API being used is deprecated and should no longer be used\")\n }\n}\n\nexport function fromCode(code: number, logs?: string[]): AnchorError | null {\n switch (code) {\n case 100:\n return new InstructionMissing(logs)\n case 101:\n return new InstructionFallbackNotFound(logs)\n case 102:\n return new InstructionDidNotDeserialize(logs)\n case 103:\n return new InstructionDidNotSerialize(logs)\n case 1000:\n return new IdlInstructionStub(logs)\n case 1001:\n return new IdlInstructionInvalidProgram(logs)\n case 2000:\n return new ConstraintMut(logs)\n case 2001:\n return new ConstraintHasOne(logs)\n case 2002:\n return new ConstraintSigner(logs)\n case 2003:\n return new ConstraintRaw(logs)\n case 2004:\n return new ConstraintOwner(logs)\n case 2005:\n return new ConstraintRentExempt(logs)\n case 2006:\n return new ConstraintSeeds(logs)\n case 2007:\n return new ConstraintExecutable(logs)\n case 2008:\n return new ConstraintState(logs)\n case 2009:\n return new ConstraintAssociated(logs)\n case 2010:\n return new ConstraintAssociatedInit(logs)\n case 2011:\n return new ConstraintClose(logs)\n case 2012:\n return new ConstraintAddress(logs)\n case 2013:\n return new ConstraintZero(logs)\n case 2014:\n return new ConstraintTokenMint(logs)\n case 2015:\n return new ConstraintTokenOwner(logs)\n case 2016:\n return new ConstraintMintMintAuthority(logs)\n case 2017:\n return new ConstraintMintFreezeAuthority(logs)\n case 2018:\n return new ConstraintMintDecimals(logs)\n case 2019:\n return new ConstraintSpace(logs)\n case 2020:\n return new ConstraintAccountIsNone(logs)\n case 2500:\n return new RequireViolated(logs)\n case 2501:\n return new RequireEqViolated(logs)\n case 2502:\n return new RequireKeysEqViolated(logs)\n case 2503:\n return new RequireNeqViolated(logs)\n case 2504:\n return new RequireKeysNeqViolated(logs)\n case 2505:\n return new RequireGtViolated(logs)\n case 2506:\n return new RequireGteViolated(logs)\n case 3000:\n return new AccountDiscriminatorAlreadySet(logs)\n case 3001:\n return new AccountDiscriminatorNotFound(logs)\n case 3002:\n return new AccountDiscriminatorMismatch(logs)\n case 3003:\n return new AccountDidNotDeserialize(logs)\n case 3004:\n return new AccountDidNotSerialize(logs)\n case 3005:\n return new AccountNotEnoughKeys(logs)\n case 3006:\n return new AccountNotMutable(logs)\n case 3007:\n return new AccountOwnedByWrongProgram(logs)\n case 3008:\n return new InvalidProgramId(logs)\n case 3009:\n return new InvalidProgramExecutable(logs)\n case 3010:\n return new AccountNotSigner(logs)\n case 3011:\n return new AccountNotSystemOwned(logs)\n case 3012:\n return new AccountNotInitialized(logs)\n case 3013:\n return new AccountNotProgramData(logs)\n case 3014:\n return new AccountNotAssociatedTokenAccount(logs)\n case 3015:\n return new AccountSysvarMismatch(logs)\n case 3016:\n return new AccountReallocExceedsLimit(logs)\n case 3017:\n return new AccountDuplicateReallocs(logs)\n case 4100:\n return new DeclaredProgramIdMismatch(logs)\n case 5000:\n return new Deprecated(logs)\n }\n\n return null\n}\n"]}
1
+ {"version":3,"file":"anchor.js","sourceRoot":"","sources":["../../../src/idl_codegen/errors/anchor.ts"],"names":[],"mappings":"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","sourcesContent":["export type AnchorError =\n | InstructionMissing\n | InstructionFallbackNotFound\n | InstructionDidNotDeserialize\n | InstructionDidNotSerialize\n | IdlInstructionStub\n | IdlInstructionInvalidProgram\n | ConstraintMut\n | ConstraintHasOne\n | ConstraintSigner\n | ConstraintRaw\n | ConstraintOwner\n | ConstraintRentExempt\n | ConstraintSeeds\n | ConstraintExecutable\n | ConstraintState\n | ConstraintAssociated\n | ConstraintAssociatedInit\n | ConstraintClose\n | ConstraintAddress\n | ConstraintZero\n | ConstraintTokenMint\n | ConstraintTokenOwner\n | ConstraintMintMintAuthority\n | ConstraintMintFreezeAuthority\n | ConstraintMintDecimals\n | ConstraintSpace\n | ConstraintAccountIsNone\n | RequireViolated\n | RequireEqViolated\n | RequireKeysEqViolated\n | RequireNeqViolated\n | RequireKeysNeqViolated\n | RequireGtViolated\n | RequireGteViolated\n | AccountDiscriminatorAlreadySet\n | AccountDiscriminatorNotFound\n | AccountDiscriminatorMismatch\n | AccountDidNotDeserialize\n | AccountDidNotSerialize\n | AccountNotEnoughKeys\n | AccountNotMutable\n | AccountOwnedByWrongProgram\n | InvalidProgramId\n | InvalidProgramExecutable\n | AccountNotSigner\n | AccountNotSystemOwned\n | AccountNotInitialized\n | AccountNotProgramData\n | AccountNotAssociatedTokenAccount\n | AccountSysvarMismatch\n | AccountReallocExceedsLimit\n | AccountDuplicateReallocs\n | DeclaredProgramIdMismatch\n | Deprecated\n\nexport class InstructionMissing extends Error {\n static readonly code = 100\n readonly code = 100\n readonly name = \"InstructionMissing\"\n readonly msg = \"8 byte instruction identifier not provided\"\n\n constructor(readonly logs?: string[]) {\n super(\"100: 8 byte instruction identifier not provided\")\n }\n}\n\nexport class InstructionFallbackNotFound extends Error {\n static readonly code = 101\n readonly code = 101\n readonly name = \"InstructionFallbackNotFound\"\n readonly msg = \"Fallback functions are not supported\"\n\n constructor(readonly logs?: string[]) {\n super(\"101: Fallback functions are not supported\")\n }\n}\n\nexport class InstructionDidNotDeserialize extends Error {\n static readonly code = 102\n readonly code = 102\n readonly name = \"InstructionDidNotDeserialize\"\n readonly msg = \"The program could not deserialize the given instruction\"\n\n constructor(readonly logs?: string[]) {\n super(\"102: The program could not deserialize the given instruction\")\n }\n}\n\nexport class InstructionDidNotSerialize extends Error {\n static readonly code = 103\n readonly code = 103\n readonly name = \"InstructionDidNotSerialize\"\n readonly msg = \"The program could not serialize the given instruction\"\n\n constructor(readonly logs?: string[]) {\n super(\"103: The program could not serialize the given instruction\")\n }\n}\n\nexport class IdlInstructionStub extends Error {\n static readonly code = 1000\n readonly code = 1000\n readonly name = \"IdlInstructionStub\"\n readonly msg = \"The program was compiled without idl instructions\"\n\n constructor(readonly logs?: string[]) {\n super(\"1000: The program was compiled without idl instructions\")\n }\n}\n\nexport class IdlInstructionInvalidProgram extends Error {\n static readonly code = 1001\n readonly code = 1001\n readonly name = \"IdlInstructionInvalidProgram\"\n readonly msg =\n \"The transaction was given an invalid program for the IDL instruction\"\n\n constructor(readonly logs?: string[]) {\n super(\n \"1001: The transaction was given an invalid program for the IDL instruction\"\n )\n }\n}\n\nexport class ConstraintMut extends Error {\n static readonly code = 2000\n readonly code = 2000\n readonly name = \"ConstraintMut\"\n readonly msg = \"A mut constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2000: A mut constraint was violated\")\n }\n}\n\nexport class ConstraintHasOne extends Error {\n static readonly code = 2001\n readonly code = 2001\n readonly name = \"ConstraintHasOne\"\n readonly msg = \"A has one constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2001: A has one constraint was violated\")\n }\n}\n\nexport class ConstraintSigner extends Error {\n static readonly code = 2002\n readonly code = 2002\n readonly name = \"ConstraintSigner\"\n readonly msg = \"A signer constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2002: A signer constraint was violated\")\n }\n}\n\nexport class ConstraintRaw extends Error {\n static readonly code = 2003\n readonly code = 2003\n readonly name = \"ConstraintRaw\"\n readonly msg = \"A raw constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2003: A raw constraint was violated\")\n }\n}\n\nexport class ConstraintOwner extends Error {\n static readonly code = 2004\n readonly code = 2004\n readonly name = \"ConstraintOwner\"\n readonly msg = \"An owner constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2004: An owner constraint was violated\")\n }\n}\n\nexport class ConstraintRentExempt extends Error {\n static readonly code = 2005\n readonly code = 2005\n readonly name = \"ConstraintRentExempt\"\n readonly msg = \"A rent exemption constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2005: A rent exemption constraint was violated\")\n }\n}\n\nexport class ConstraintSeeds extends Error {\n static readonly code = 2006\n readonly code = 2006\n readonly name = \"ConstraintSeeds\"\n readonly msg = \"A seeds constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2006: A seeds constraint was violated\")\n }\n}\n\nexport class ConstraintExecutable extends Error {\n static readonly code = 2007\n readonly code = 2007\n readonly name = \"ConstraintExecutable\"\n readonly msg = \"An executable constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2007: An executable constraint was violated\")\n }\n}\n\nexport class ConstraintState extends Error {\n static readonly code = 2008\n readonly code = 2008\n readonly name = \"ConstraintState\"\n readonly msg = \"Deprecated Error, feel free to replace with something else\"\n\n constructor(readonly logs?: string[]) {\n super(\"2008: Deprecated Error, feel free to replace with something else\")\n }\n}\n\nexport class ConstraintAssociated extends Error {\n static readonly code = 2009\n readonly code = 2009\n readonly name = \"ConstraintAssociated\"\n readonly msg = \"An associated constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2009: An associated constraint was violated\")\n }\n}\n\nexport class ConstraintAssociatedInit extends Error {\n static readonly code = 2010\n readonly code = 2010\n readonly name = \"ConstraintAssociatedInit\"\n readonly msg = \"An associated init constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2010: An associated init constraint was violated\")\n }\n}\n\nexport class ConstraintClose extends Error {\n static readonly code = 2011\n readonly code = 2011\n readonly name = \"ConstraintClose\"\n readonly msg = \"A close constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2011: A close constraint was violated\")\n }\n}\n\nexport class ConstraintAddress extends Error {\n static readonly code = 2012\n readonly code = 2012\n readonly name = \"ConstraintAddress\"\n readonly msg = \"An address constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2012: An address constraint was violated\")\n }\n}\n\nexport class ConstraintZero extends Error {\n static readonly code = 2013\n readonly code = 2013\n readonly name = \"ConstraintZero\"\n readonly msg = \"Expected zero account discriminant\"\n\n constructor(readonly logs?: string[]) {\n super(\"2013: Expected zero account discriminant\")\n }\n}\n\nexport class ConstraintTokenMint extends Error {\n static readonly code = 2014\n readonly code = 2014\n readonly name = \"ConstraintTokenMint\"\n readonly msg = \"A token mint constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2014: A token mint constraint was violated\")\n }\n}\n\nexport class ConstraintTokenOwner extends Error {\n static readonly code = 2015\n readonly code = 2015\n readonly name = \"ConstraintTokenOwner\"\n readonly msg = \"A token owner constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2015: A token owner constraint was violated\")\n }\n}\n\nexport class ConstraintMintMintAuthority extends Error {\n static readonly code = 2016\n readonly code = 2016\n readonly name = \"ConstraintMintMintAuthority\"\n readonly msg = \"A mint mint authority constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2016: A mint mint authority constraint was violated\")\n }\n}\n\nexport class ConstraintMintFreezeAuthority extends Error {\n static readonly code = 2017\n readonly code = 2017\n readonly name = \"ConstraintMintFreezeAuthority\"\n readonly msg = \"A mint freeze authority constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2017: A mint freeze authority constraint was violated\")\n }\n}\n\nexport class ConstraintMintDecimals extends Error {\n static readonly code = 2018\n readonly code = 2018\n readonly name = \"ConstraintMintDecimals\"\n readonly msg = \"A mint decimals constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2018: A mint decimals constraint was violated\")\n }\n}\n\nexport class ConstraintSpace extends Error {\n static readonly code = 2019\n readonly code = 2019\n readonly name = \"ConstraintSpace\"\n readonly msg = \"A space constraint was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2019: A space constraint was violated\")\n }\n}\n\nexport class ConstraintAccountIsNone extends Error {\n static readonly code = 2020\n readonly code = 2020\n readonly name = \"ConstraintAccountIsNone\"\n readonly msg = \"A required account for the constraint is None\"\n\n constructor(readonly logs?: string[]) {\n super(\"2020: A required account for the constraint is None\")\n }\n}\n\nexport class RequireViolated extends Error {\n static readonly code = 2500\n readonly code = 2500\n readonly name = \"RequireViolated\"\n readonly msg = \"A require expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2500: A require expression was violated\")\n }\n}\n\nexport class RequireEqViolated extends Error {\n static readonly code = 2501\n readonly code = 2501\n readonly name = \"RequireEqViolated\"\n readonly msg = \"A require_eq expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2501: A require_eq expression was violated\")\n }\n}\n\nexport class RequireKeysEqViolated extends Error {\n static readonly code = 2502\n readonly code = 2502\n readonly name = \"RequireKeysEqViolated\"\n readonly msg = \"A require_keys_eq expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2502: A require_keys_eq expression was violated\")\n }\n}\n\nexport class RequireNeqViolated extends Error {\n static readonly code = 2503\n readonly code = 2503\n readonly name = \"RequireNeqViolated\"\n readonly msg = \"A require_neq expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2503: A require_neq expression was violated\")\n }\n}\n\nexport class RequireKeysNeqViolated extends Error {\n static readonly code = 2504\n readonly code = 2504\n readonly name = \"RequireKeysNeqViolated\"\n readonly msg = \"A require_keys_neq expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2504: A require_keys_neq expression was violated\")\n }\n}\n\nexport class RequireGtViolated extends Error {\n static readonly code = 2505\n readonly code = 2505\n readonly name = \"RequireGtViolated\"\n readonly msg = \"A require_gt expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2505: A require_gt expression was violated\")\n }\n}\n\nexport class RequireGteViolated extends Error {\n static readonly code = 2506\n readonly code = 2506\n readonly name = \"RequireGteViolated\"\n readonly msg = \"A require_gte expression was violated\"\n\n constructor(readonly logs?: string[]) {\n super(\"2506: A require_gte expression was violated\")\n }\n}\n\nexport class AccountDiscriminatorAlreadySet extends Error {\n static readonly code = 3000\n readonly code = 3000\n readonly name = \"AccountDiscriminatorAlreadySet\"\n readonly msg = \"The account discriminator was already set on this account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3000: The account discriminator was already set on this account\")\n }\n}\n\nexport class AccountDiscriminatorNotFound extends Error {\n static readonly code = 3001\n readonly code = 3001\n readonly name = \"AccountDiscriminatorNotFound\"\n readonly msg = \"No 8 byte discriminator was found on the account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3001: No 8 byte discriminator was found on the account\")\n }\n}\n\nexport class AccountDiscriminatorMismatch extends Error {\n static readonly code = 3002\n readonly code = 3002\n readonly name = \"AccountDiscriminatorMismatch\"\n readonly msg = \"8 byte discriminator did not match what was expected\"\n\n constructor(readonly logs?: string[]) {\n super(\"3002: 8 byte discriminator did not match what was expected\")\n }\n}\n\nexport class AccountDidNotDeserialize extends Error {\n static readonly code = 3003\n readonly code = 3003\n readonly name = \"AccountDidNotDeserialize\"\n readonly msg = \"Failed to deserialize the account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3003: Failed to deserialize the account\")\n }\n}\n\nexport class AccountDidNotSerialize extends Error {\n static readonly code = 3004\n readonly code = 3004\n readonly name = \"AccountDidNotSerialize\"\n readonly msg = \"Failed to serialize the account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3004: Failed to serialize the account\")\n }\n}\n\nexport class AccountNotEnoughKeys extends Error {\n static readonly code = 3005\n readonly code = 3005\n readonly name = \"AccountNotEnoughKeys\"\n readonly msg = \"Not enough account keys given to the instruction\"\n\n constructor(readonly logs?: string[]) {\n super(\"3005: Not enough account keys given to the instruction\")\n }\n}\n\nexport class AccountNotMutable extends Error {\n static readonly code = 3006\n readonly code = 3006\n readonly name = \"AccountNotMutable\"\n readonly msg = \"The given account is not mutable\"\n\n constructor(readonly logs?: string[]) {\n super(\"3006: The given account is not mutable\")\n }\n}\n\nexport class AccountOwnedByWrongProgram extends Error {\n static readonly code = 3007\n readonly code = 3007\n readonly name = \"AccountOwnedByWrongProgram\"\n readonly msg =\n \"The given account is owned by a different program than expected\"\n\n constructor(readonly logs?: string[]) {\n super(\n \"3007: The given account is owned by a different program than expected\"\n )\n }\n}\n\nexport class InvalidProgramId extends Error {\n static readonly code = 3008\n readonly code = 3008\n readonly name = \"InvalidProgramId\"\n readonly msg = \"Program ID was not as expected\"\n\n constructor(readonly logs?: string[]) {\n super(\"3008: Program ID was not as expected\")\n }\n}\n\nexport class InvalidProgramExecutable extends Error {\n static readonly code = 3009\n readonly code = 3009\n readonly name = \"InvalidProgramExecutable\"\n readonly msg = \"Program account is not executable\"\n\n constructor(readonly logs?: string[]) {\n super(\"3009: Program account is not executable\")\n }\n}\n\nexport class AccountNotSigner extends Error {\n static readonly code = 3010\n readonly code = 3010\n readonly name = \"AccountNotSigner\"\n readonly msg = \"The given account did not sign\"\n\n constructor(readonly logs?: string[]) {\n super(\"3010: The given account did not sign\")\n }\n}\n\nexport class AccountNotSystemOwned extends Error {\n static readonly code = 3011\n readonly code = 3011\n readonly name = \"AccountNotSystemOwned\"\n readonly msg = \"The given account is not owned by the system program\"\n\n constructor(readonly logs?: string[]) {\n super(\"3011: The given account is not owned by the system program\")\n }\n}\n\nexport class AccountNotInitialized extends Error {\n static readonly code = 3012\n readonly code = 3012\n readonly name = \"AccountNotInitialized\"\n readonly msg = \"The program expected this account to be already initialized\"\n\n constructor(readonly logs?: string[]) {\n super(\"3012: The program expected this account to be already initialized\")\n }\n}\n\nexport class AccountNotProgramData extends Error {\n static readonly code = 3013\n readonly code = 3013\n readonly name = \"AccountNotProgramData\"\n readonly msg = \"The given account is not a program data account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3013: The given account is not a program data account\")\n }\n}\n\nexport class AccountNotAssociatedTokenAccount extends Error {\n static readonly code = 3014\n readonly code = 3014\n readonly name = \"AccountNotAssociatedTokenAccount\"\n readonly msg = \"The given account is not the associated token account\"\n\n constructor(readonly logs?: string[]) {\n super(\"3014: The given account is not the associated token account\")\n }\n}\n\nexport class AccountSysvarMismatch extends Error {\n static readonly code = 3015\n readonly code = 3015\n readonly name = \"AccountSysvarMismatch\"\n readonly msg = \"The given public key does not match the required sysvar\"\n\n constructor(readonly logs?: string[]) {\n super(\"3015: The given public key does not match the required sysvar\")\n }\n}\n\nexport class AccountReallocExceedsLimit extends Error {\n static readonly code = 3016\n readonly code = 3016\n readonly name = \"AccountReallocExceedsLimit\"\n readonly msg =\n \"The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit\"\n\n constructor(readonly logs?: string[]) {\n super(\n \"3016: The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit\"\n )\n }\n}\n\nexport class AccountDuplicateReallocs extends Error {\n static readonly code = 3017\n readonly code = 3017\n readonly name = \"AccountDuplicateReallocs\"\n readonly msg = \"The account was duplicated for more than one reallocation\"\n\n constructor(readonly logs?: string[]) {\n super(\"3017: The account was duplicated for more than one reallocation\")\n }\n}\n\nexport class DeclaredProgramIdMismatch extends Error {\n static readonly code = 4100\n readonly code = 4100\n readonly name = \"DeclaredProgramIdMismatch\"\n readonly msg = \"The declared program id does not match the actual program id\"\n\n constructor(readonly logs?: string[]) {\n super(\"4100: The declared program id does not match the actual program id\")\n }\n}\n\nexport class Deprecated extends Error {\n static readonly code = 5000\n readonly code = 5000\n readonly name = \"Deprecated\"\n readonly msg = \"The API being used is deprecated and should no longer be used\"\n\n constructor(readonly logs?: string[]) {\n super(\"5000: The API being used is deprecated and should no longer be used\")\n }\n}\n\nexport function fromCode(code: number, logs?: string[]): AnchorError | null {\n switch (code) {\n case 100:\n return new InstructionMissing(logs)\n case 101:\n return new InstructionFallbackNotFound(logs)\n case 102:\n return new InstructionDidNotDeserialize(logs)\n case 103:\n return new InstructionDidNotSerialize(logs)\n case 1000:\n return new IdlInstructionStub(logs)\n case 1001:\n return new IdlInstructionInvalidProgram(logs)\n case 2000:\n return new ConstraintMut(logs)\n case 2001:\n return new ConstraintHasOne(logs)\n case 2002:\n return new ConstraintSigner(logs)\n case 2003:\n return new ConstraintRaw(logs)\n case 2004:\n return new ConstraintOwner(logs)\n case 2005:\n return new ConstraintRentExempt(logs)\n case 2006:\n return new ConstraintSeeds(logs)\n case 2007:\n return new ConstraintExecutable(logs)\n case 2008:\n return new ConstraintState(logs)\n case 2009:\n return new ConstraintAssociated(logs)\n case 2010:\n return new ConstraintAssociatedInit(logs)\n case 2011:\n return new ConstraintClose(logs)\n case 2012:\n return new ConstraintAddress(logs)\n case 2013:\n return new ConstraintZero(logs)\n case 2014:\n return new ConstraintTokenMint(logs)\n case 2015:\n return new ConstraintTokenOwner(logs)\n case 2016:\n return new ConstraintMintMintAuthority(logs)\n case 2017:\n return new ConstraintMintFreezeAuthority(logs)\n case 2018:\n return new ConstraintMintDecimals(logs)\n case 2019:\n return new ConstraintSpace(logs)\n case 2020:\n return new ConstraintAccountIsNone(logs)\n case 2500:\n return new RequireViolated(logs)\n case 2501:\n return new RequireEqViolated(logs)\n case 2502:\n return new RequireKeysEqViolated(logs)\n case 2503:\n return new RequireNeqViolated(logs)\n case 2504:\n return new RequireKeysNeqViolated(logs)\n case 2505:\n return new RequireGtViolated(logs)\n case 2506:\n return new RequireGteViolated(logs)\n case 3000:\n return new AccountDiscriminatorAlreadySet(logs)\n case 3001:\n return new AccountDiscriminatorNotFound(logs)\n case 3002:\n return new AccountDiscriminatorMismatch(logs)\n case 3003:\n return new AccountDidNotDeserialize(logs)\n case 3004:\n return new AccountDidNotSerialize(logs)\n case 3005:\n return new AccountNotEnoughKeys(logs)\n case 3006:\n return new AccountNotMutable(logs)\n case 3007:\n return new AccountOwnedByWrongProgram(logs)\n case 3008:\n return new InvalidProgramId(logs)\n case 3009:\n return new InvalidProgramExecutable(logs)\n case 3010:\n return new AccountNotSigner(logs)\n case 3011:\n return new AccountNotSystemOwned(logs)\n case 3012:\n return new AccountNotInitialized(logs)\n case 3013:\n return new AccountNotProgramData(logs)\n case 3014:\n return new AccountNotAssociatedTokenAccount(logs)\n case 3015:\n return new AccountSysvarMismatch(logs)\n case 3016:\n return new AccountReallocExceedsLimit(logs)\n case 3017:\n return new AccountDuplicateReallocs(logs)\n case 4100:\n return new DeclaredProgramIdMismatch(logs)\n case 5000:\n return new Deprecated(logs)\n }\n\n return null\n}\n"]}
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IntegerOverflow = exports.PriceConfidenceTooWide = exports.PriceIsZero = exports.PriceIsLowerThanHeuristic = exports.PriceIsBiggerThanHeuristic = exports.PriceNotValid = exports.InvalidFlag = exports.GlobalEmergencyMode = exports.InvalidTwapPrice = exports.PriceTooDivergentFromTwap = exports.PriceTooOld = exports.CouldNotDeserializeScope = exports.SwitchboardV2Error = exports.FlashLoansDisabled = exports.MultipleFlashBorrows = exports.FlashRepayCpi = exports.InvalidFlashRepay = exports.NoFlashRepayFound = exports.FlashBorrowCpi = exports.InsufficientProtocolFeesToRedeem = exports.InvalidOracleConfig = exports.NegativeInterestRate = exports.ObligationLiquidityEmpty = exports.ObligationCollateralEmpty = exports.InvalidObligationLiquidity = exports.InvalidObligationCollateral = exports.ObligationBorrowsZero = exports.ObligationDepositsZero = exports.ObligationBorrowsEmpty = exports.ObligationDepositsEmpty = exports.InvalidObligationOwner = exports.ObligationReserveLimit = exports.ObligationStale = exports.ObligationHealthy = exports.LiquidationTooSmall = exports.RepayTooSmall = exports.BorrowTooLarge = exports.BorrowTooSmall = exports.WithdrawTooLarge = exports.WithdrawTooSmall = exports.ReserveStale = exports.InsufficientLiquidity = exports.MathOverflow = exports.InvalidAccountInput = exports.InvalidSigner = exports.InvalidConfig = exports.InvalidAmount = exports.InvalidAccountOwner = exports.InvalidMarketOwner = exports.InvalidMarketAuthority = void 0;
4
4
  exports.LiquidationBorrowFactorPriority = exports.BorrowingAboveUtilizationRateDisabled = exports.ReserveAccountingMismatch = exports.ReserveVaultBalanceMismatch = exports.ReserveTokenBalanceMismatch = exports.LiabilitiesBiggerThanAssets = exports.WorseLTVBlocked = exports.NetValueRemainingTooSmall = exports.BorrowingDisabledOutsideElevationGroup = exports.DepositLimitExceeded = exports.BorrowLimitExceeded = exports.BorrowingDisabled = exports.CollateralNonLiquidatable = exports.UserMetadataOwnerAlreadySet = exports.ReferrerStateOwnerMismatch = exports.ObligationInDeprecatedReserve = exports.ElevationGroupAlreadyActivated = exports.ReserveObsolete = exports.ShortUrlNotAsciiAlphanumeric = exports.CpiDisabled = exports.InsufficientReferralFeesToRedeem = exports.ReferrerAccountMissing = exports.ReferrerAccountReferrerMissmatch = exports.ReferrerAccountWrongAddress = exports.ReferrerAccountMintMissmatch = exports.ReferrerAccountNotInitialized = exports.ReserveDeprecated = exports.ElevationGroupNewLoansDisabled = exports.UnhealthyElevationGroupLtv = exports.InvalidElevationGroupConfig = exports.InvalidElevationGroup = exports.InconsistentElevationGroup = exports.IsolatedAssetTierViolation = exports.LiquidationRewardTooSmall = exports.LastTimestampGreaterThanCurrent = exports.WithdrawalCapReached = exports.ObligationEmpty = exports.CannotSocializeObligationWithCollateral = exports.InvalidUtilizationRate = exports.InvalidBorrowRateCurvePoint = exports.InvalidObligationId = exports.InvalidObligationSeedsValue = exports.ObligationCollateralLtvZero = exports.InvalidScopePriceAccount = exports.InvalidSwitchboardAccount = exports.InvalidPythPriceAccount = exports.InvalidTwapConfig = exports.NoPriceFound = exports.IncorrectInstructionInPosition = exports.NoFarmForReserve = void 0;
5
- exports.fromCode = exports.UnsupportedTokenExtension = exports.ObligationElevationGroupMultipleDebtReserve = exports.ObligationCollateralExceedsElevationGroupLimit = exports.ElevationGroupDebtReserveAsCollateral = exports.ElevationGroupHasAnotherDebtReserve = exports.ElevationGroupMaxCollateralReserveZero = exports.ElevationGroupWithoutDebtReserve = exports.ElevationGroupBorrowLimitExceeded = exports.LiquidationLowestLTVPriority = void 0;
5
+ exports.UnsupportedTokenExtension = exports.ObligationElevationGroupMultipleDebtReserve = exports.ObligationCollateralExceedsElevationGroupLimit = exports.ElevationGroupDebtReserveAsCollateral = exports.ElevationGroupHasAnotherDebtReserve = exports.ElevationGroupMaxCollateralReserveZero = exports.ElevationGroupWithoutDebtReserve = exports.ElevationGroupBorrowLimitExceeded = exports.LiquidationLowestLTVPriority = void 0;
6
+ exports.fromCode = fromCode;
6
7
  class InvalidMarketAuthority extends Error {
7
8
  constructor(logs) {
8
9
  super("6000: Market authority is invalid");
@@ -1425,5 +1426,4 @@ function fromCode(code, logs) {
1425
1426
  }
1426
1427
  return null;
1427
1428
  }
1428
- exports.fromCode = fromCode;
1429
1429
  //# sourceMappingURL=custom.js.map