@kamino-finance/klend-sdk 3.2.26 → 4.0.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.
- package/dist/classes/action.d.ts +1 -0
- package/dist/classes/action.d.ts.map +1 -0
- package/dist/classes/action.js +1132 -1188
- package/dist/classes/action.js.map +1 -1
- package/dist/classes/curve.d.ts +1 -0
- package/dist/classes/curve.d.ts.map +1 -0
- package/dist/classes/curve.js +1 -1
- package/dist/classes/curve.js.map +1 -1
- package/dist/classes/fraction.d.ts +1 -0
- package/dist/classes/fraction.d.ts.map +1 -0
- package/dist/classes/fraction.js +7 -6
- package/dist/classes/fraction.js.map +1 -1
- package/dist/classes/index.d.ts +1 -0
- package/dist/classes/index.d.ts.map +1 -0
- package/dist/classes/index.js.map +1 -1
- package/dist/classes/jupiterPerps.d.ts +1 -0
- package/dist/classes/jupiterPerps.d.ts.map +1 -0
- package/dist/classes/jupiterPerps.js +7 -18
- package/dist/classes/jupiterPerps.js.map +1 -1
- package/dist/classes/manager.d.ts +1 -0
- package/dist/classes/manager.d.ts.map +1 -0
- package/dist/classes/manager.js +132 -159
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/market.d.ts +2 -1
- package/dist/classes/market.d.ts.map +1 -0
- package/dist/classes/market.js +622 -716
- package/dist/classes/market.js.map +1 -1
- package/dist/classes/obligation.d.ts +1 -0
- package/dist/classes/obligation.d.ts.map +1 -0
- package/dist/classes/obligation.js +60 -62
- package/dist/classes/obligation.js.map +1 -1
- package/dist/classes/reserve.d.ts +1 -0
- package/dist/classes/reserve.d.ts.map +1 -0
- package/dist/classes/reserve.js +121 -130
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/shared.d.ts +2 -1
- package/dist/classes/shared.d.ts.map +1 -0
- package/dist/classes/shared.js.map +1 -1
- package/dist/classes/utils.d.ts +1 -0
- package/dist/classes/utils.d.ts.map +1 -0
- package/dist/classes/utils.js +3 -3
- package/dist/classes/utils.js.map +1 -1
- package/dist/classes/vault.d.ts +1 -0
- package/dist/classes/vault.d.ts.map +1 -0
- package/dist/classes/vault.js +334 -354
- package/dist/classes/vault.js.map +1 -1
- package/dist/client_kamino_manager.d.ts +1 -0
- package/dist/client_kamino_manager.d.ts.map +1 -0
- package/dist/client_kamino_manager.js +323 -326
- package/dist/client_kamino_manager.js.map +1 -1
- package/dist/idl_codegen/accounts/LendingMarket.d.ts +1 -0
- package/dist/idl_codegen/accounts/LendingMarket.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/LendingMarket.js +89 -55
- package/dist/idl_codegen/accounts/LendingMarket.js.map +1 -1
- package/dist/idl_codegen/accounts/Obligation.d.ts +1 -0
- package/dist/idl_codegen/accounts/Obligation.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/Obligation.js +87 -56
- package/dist/idl_codegen/accounts/Obligation.js.map +1 -1
- package/dist/idl_codegen/accounts/ReferrerState.d.ts +1 -0
- package/dist/idl_codegen/accounts/ReferrerState.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/ReferrerState.js +22 -33
- package/dist/idl_codegen/accounts/ReferrerState.js.map +1 -1
- package/dist/idl_codegen/accounts/ReferrerTokenState.d.ts +1 -0
- package/dist/idl_codegen/accounts/ReferrerTokenState.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/ReferrerTokenState.js +35 -37
- package/dist/idl_codegen/accounts/ReferrerTokenState.js.map +1 -1
- package/dist/idl_codegen/accounts/Reserve.d.ts +1 -0
- package/dist/idl_codegen/accounts/Reserve.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/Reserve.js +60 -49
- package/dist/idl_codegen/accounts/Reserve.js.map +1 -1
- package/dist/idl_codegen/accounts/ShortUrl.d.ts +1 -0
- package/dist/idl_codegen/accounts/ShortUrl.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/ShortUrl.js +22 -33
- package/dist/idl_codegen/accounts/ShortUrl.js.map +1 -1
- package/dist/idl_codegen/accounts/UserMetadata.d.ts +1 -0
- package/dist/idl_codegen/accounts/UserMetadata.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/UserMetadata.js +34 -37
- package/dist/idl_codegen/accounts/UserMetadata.js.map +1 -1
- package/dist/idl_codegen/accounts/UserState.d.ts +1 -0
- package/dist/idl_codegen/accounts/UserState.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/UserState.js +77 -48
- package/dist/idl_codegen/accounts/UserState.js.map +1 -1
- package/dist/idl_codegen/accounts/index.d.ts +1 -0
- package/dist/idl_codegen/accounts/index.d.ts.map +1 -0
- package/dist/idl_codegen/accounts/index.js.map +1 -1
- package/dist/idl_codegen/errors/anchor.d.ts +1 -0
- package/dist/idl_codegen/errors/anchor.d.ts.map +1 -0
- package/dist/idl_codegen/errors/anchor.js +270 -216
- package/dist/idl_codegen/errors/anchor.js.map +1 -1
- package/dist/idl_codegen/errors/custom.d.ts +1 -0
- package/dist/idl_codegen/errors/custom.d.ts.map +1 -0
- package/dist/idl_codegen/errors/custom.js +560 -448
- package/dist/idl_codegen/errors/custom.js.map +1 -1
- package/dist/idl_codegen/errors/index.d.ts +1 -0
- package/dist/idl_codegen/errors/index.d.ts.map +1 -0
- package/dist/idl_codegen/errors/index.js.map +1 -1
- package/dist/idl_codegen/instructions/borrowObligationLiquidity.d.ts +1 -0
- package/dist/idl_codegen/instructions/borrowObligationLiquidity.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/borrowObligationLiquidity.js.map +1 -1
- package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.d.ts +1 -0
- package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/deleteReferrerStateAndShortUrl.js.map +1 -1
- package/dist/idl_codegen/instructions/depositObligationCollateral.d.ts +1 -0
- package/dist/idl_codegen/instructions/depositObligationCollateral.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/depositObligationCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/depositReserveLiquidity.d.ts +1 -0
- package/dist/idl_codegen/instructions/depositReserveLiquidity.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/depositReserveLiquidity.js.map +1 -1
- package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.d.ts +1 -0
- package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.d.ts +1 -0
- package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/flashBorrowReserveLiquidity.js.map +1 -1
- package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.d.ts +1 -0
- package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/flashRepayReserveLiquidity.js.map +1 -1
- package/dist/idl_codegen/instructions/idlMissingTypes.d.ts +1 -0
- package/dist/idl_codegen/instructions/idlMissingTypes.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/idlMissingTypes.js.map +1 -1
- package/dist/idl_codegen/instructions/index.d.ts +1 -0
- package/dist/idl_codegen/instructions/index.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/index.js.map +1 -1
- package/dist/idl_codegen/instructions/initFarmsForReserve.d.ts +1 -0
- package/dist/idl_codegen/instructions/initFarmsForReserve.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/initFarmsForReserve.js.map +1 -1
- package/dist/idl_codegen/instructions/initLendingMarket.d.ts +1 -0
- package/dist/idl_codegen/instructions/initLendingMarket.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/initLendingMarket.js.map +1 -1
- package/dist/idl_codegen/instructions/initObligation.d.ts +1 -0
- package/dist/idl_codegen/instructions/initObligation.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/initObligation.js.map +1 -1
- package/dist/idl_codegen/instructions/initObligationFarmsForReserve.d.ts +1 -0
- package/dist/idl_codegen/instructions/initObligationFarmsForReserve.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/initObligationFarmsForReserve.js.map +1 -1
- package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.d.ts +1 -0
- package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/initReferrerStateAndShortUrl.js.map +1 -1
- package/dist/idl_codegen/instructions/initReferrerTokenState.d.ts +1 -0
- package/dist/idl_codegen/instructions/initReferrerTokenState.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/initReferrerTokenState.js.map +1 -1
- package/dist/idl_codegen/instructions/initReserve.d.ts +1 -0
- package/dist/idl_codegen/instructions/initReserve.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/initReserve.js.map +1 -1
- package/dist/idl_codegen/instructions/initUserMetadata.d.ts +1 -0
- package/dist/idl_codegen/instructions/initUserMetadata.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/initUserMetadata.js.map +1 -1
- package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.d.ts +1 -0
- package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/redeemFees.d.ts +1 -0
- package/dist/idl_codegen/instructions/redeemFees.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/redeemFees.js.map +1 -1
- package/dist/idl_codegen/instructions/redeemReserveCollateral.d.ts +1 -0
- package/dist/idl_codegen/instructions/redeemReserveCollateral.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/redeemReserveCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/refreshObligation.d.ts +1 -0
- package/dist/idl_codegen/instructions/refreshObligation.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/refreshObligation.js.map +1 -1
- package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.d.ts +1 -0
- package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/refreshObligationFarmsForReserve.js.map +1 -1
- package/dist/idl_codegen/instructions/refreshReserve.d.ts +1 -0
- package/dist/idl_codegen/instructions/refreshReserve.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/refreshReserve.js.map +1 -1
- package/dist/idl_codegen/instructions/refreshReservesBatch.d.ts +1 -0
- package/dist/idl_codegen/instructions/refreshReservesBatch.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/refreshReservesBatch.js.map +1 -1
- package/dist/idl_codegen/instructions/repayObligationLiquidity.d.ts +1 -0
- package/dist/idl_codegen/instructions/repayObligationLiquidity.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/repayObligationLiquidity.js.map +1 -1
- package/dist/idl_codegen/instructions/requestElevationGroup.d.ts +1 -0
- package/dist/idl_codegen/instructions/requestElevationGroup.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/requestElevationGroup.js.map +1 -1
- package/dist/idl_codegen/instructions/socializeLoss.d.ts +1 -0
- package/dist/idl_codegen/instructions/socializeLoss.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/socializeLoss.js.map +1 -1
- package/dist/idl_codegen/instructions/updateEntireReserveConfig.d.ts +1 -0
- package/dist/idl_codegen/instructions/updateEntireReserveConfig.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/updateEntireReserveConfig.js.map +1 -1
- package/dist/idl_codegen/instructions/updateLendingMarket.d.ts +1 -0
- package/dist/idl_codegen/instructions/updateLendingMarket.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/updateLendingMarket.js.map +1 -1
- package/dist/idl_codegen/instructions/updateLendingMarketOwner.d.ts +1 -0
- package/dist/idl_codegen/instructions/updateLendingMarketOwner.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/updateLendingMarketOwner.js.map +1 -1
- package/dist/idl_codegen/instructions/updateReserveConfig.d.ts +1 -0
- package/dist/idl_codegen/instructions/updateReserveConfig.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/updateReserveConfig.js.map +1 -1
- package/dist/idl_codegen/instructions/updateSingleReserveConfig.d.ts +1 -0
- package/dist/idl_codegen/instructions/updateSingleReserveConfig.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/updateSingleReserveConfig.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawObligationCollateral.d.ts +1 -0
- package/dist/idl_codegen/instructions/withdrawObligationCollateral.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/withdrawObligationCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.d.ts +1 -0
- package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawProtocolFee.d.ts +1 -0
- package/dist/idl_codegen/instructions/withdrawProtocolFee.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/withdrawProtocolFee.js.map +1 -1
- package/dist/idl_codegen/instructions/withdrawReferrerFees.d.ts +1 -0
- package/dist/idl_codegen/instructions/withdrawReferrerFees.d.ts.map +1 -0
- package/dist/idl_codegen/instructions/withdrawReferrerFees.js.map +1 -1
- package/dist/idl_codegen/programId.d.ts +1 -0
- package/dist/idl_codegen/programId.d.ts.map +1 -0
- package/dist/idl_codegen/programId.js.map +1 -1
- package/dist/idl_codegen/types/AssetTier.d.ts +1 -0
- package/dist/idl_codegen/types/AssetTier.d.ts.map +1 -0
- package/dist/idl_codegen/types/AssetTier.js +12 -18
- package/dist/idl_codegen/types/AssetTier.js.map +1 -1
- package/dist/idl_codegen/types/BigFractionBytes.d.ts +1 -0
- package/dist/idl_codegen/types/BigFractionBytes.d.ts.map +1 -0
- package/dist/idl_codegen/types/BigFractionBytes.js +2 -0
- package/dist/idl_codegen/types/BigFractionBytes.js.map +1 -1
- package/dist/idl_codegen/types/BorrowRateCurve.d.ts +1 -0
- package/dist/idl_codegen/types/BorrowRateCurve.d.ts.map +1 -0
- package/dist/idl_codegen/types/BorrowRateCurve.js +2 -1
- package/dist/idl_codegen/types/BorrowRateCurve.js.map +1 -1
- package/dist/idl_codegen/types/CurvePoint.d.ts +1 -0
- package/dist/idl_codegen/types/CurvePoint.d.ts.map +1 -0
- package/dist/idl_codegen/types/CurvePoint.js +2 -0
- package/dist/idl_codegen/types/CurvePoint.js.map +1 -1
- package/dist/idl_codegen/types/ElevationGroup.d.ts +1 -0
- package/dist/idl_codegen/types/ElevationGroup.d.ts.map +1 -0
- package/dist/idl_codegen/types/ElevationGroup.js +10 -0
- package/dist/idl_codegen/types/ElevationGroup.js.map +1 -1
- package/dist/idl_codegen/types/FeeCalculation.d.ts +1 -0
- package/dist/idl_codegen/types/FeeCalculation.d.ts.map +1 -0
- package/dist/idl_codegen/types/FeeCalculation.js +8 -12
- package/dist/idl_codegen/types/FeeCalculation.js.map +1 -1
- package/dist/idl_codegen/types/InitObligationArgs.d.ts +1 -0
- package/dist/idl_codegen/types/InitObligationArgs.d.ts.map +1 -0
- package/dist/idl_codegen/types/InitObligationArgs.js +2 -0
- package/dist/idl_codegen/types/InitObligationArgs.js.map +1 -1
- package/dist/idl_codegen/types/LastUpdate.d.ts +1 -0
- package/dist/idl_codegen/types/LastUpdate.d.ts.map +1 -0
- package/dist/idl_codegen/types/LastUpdate.js +7 -0
- package/dist/idl_codegen/types/LastUpdate.js.map +1 -1
- package/dist/idl_codegen/types/ObligationCollateral.d.ts +1 -0
- package/dist/idl_codegen/types/ObligationCollateral.d.ts.map +1 -0
- package/dist/idl_codegen/types/ObligationCollateral.js +14 -0
- package/dist/idl_codegen/types/ObligationCollateral.js.map +1 -1
- package/dist/idl_codegen/types/ObligationLiquidity.d.ts +1 -0
- package/dist/idl_codegen/types/ObligationLiquidity.d.ts.map +1 -0
- package/dist/idl_codegen/types/ObligationLiquidity.js +17 -1
- package/dist/idl_codegen/types/ObligationLiquidity.js.map +1 -1
- package/dist/idl_codegen/types/PriceHeuristic.d.ts +1 -0
- package/dist/idl_codegen/types/PriceHeuristic.d.ts.map +1 -0
- package/dist/idl_codegen/types/PriceHeuristic.js +6 -0
- package/dist/idl_codegen/types/PriceHeuristic.js.map +1 -1
- package/dist/idl_codegen/types/PythConfiguration.d.ts +1 -0
- package/dist/idl_codegen/types/PythConfiguration.d.ts.map +1 -0
- package/dist/idl_codegen/types/PythConfiguration.js +2 -0
- package/dist/idl_codegen/types/PythConfiguration.js.map +1 -1
- package/dist/idl_codegen/types/ReserveCollateral.d.ts +1 -0
- package/dist/idl_codegen/types/ReserveCollateral.d.ts.map +1 -0
- package/dist/idl_codegen/types/ReserveCollateral.js +8 -0
- package/dist/idl_codegen/types/ReserveCollateral.js.map +1 -1
- package/dist/idl_codegen/types/ReserveConfig.d.ts +1 -0
- package/dist/idl_codegen/types/ReserveConfig.d.ts.map +1 -0
- package/dist/idl_codegen/types/ReserveConfig.js +78 -5
- package/dist/idl_codegen/types/ReserveConfig.js.map +1 -1
- package/dist/idl_codegen/types/ReserveFarmKind.d.ts +1 -0
- package/dist/idl_codegen/types/ReserveFarmKind.d.ts.map +1 -0
- package/dist/idl_codegen/types/ReserveFarmKind.js +8 -12
- package/dist/idl_codegen/types/ReserveFarmKind.js.map +1 -1
- package/dist/idl_codegen/types/ReserveFees.d.ts +1 -0
- package/dist/idl_codegen/types/ReserveFees.d.ts.map +1 -0
- package/dist/idl_codegen/types/ReserveFees.js +16 -0
- package/dist/idl_codegen/types/ReserveFees.js.map +1 -1
- package/dist/idl_codegen/types/ReserveLiquidity.d.ts +1 -0
- package/dist/idl_codegen/types/ReserveLiquidity.d.ts.map +1 -0
- package/dist/idl_codegen/types/ReserveLiquidity.js +43 -1
- package/dist/idl_codegen/types/ReserveLiquidity.js.map +1 -1
- package/dist/idl_codegen/types/ReserveStatus.d.ts +1 -0
- package/dist/idl_codegen/types/ReserveStatus.d.ts.map +1 -0
- package/dist/idl_codegen/types/ReserveStatus.js +12 -18
- package/dist/idl_codegen/types/ReserveStatus.js.map +1 -1
- package/dist/idl_codegen/types/ScopeConfiguration.d.ts +1 -0
- package/dist/idl_codegen/types/ScopeConfiguration.d.ts.map +1 -0
- package/dist/idl_codegen/types/ScopeConfiguration.js +6 -0
- package/dist/idl_codegen/types/ScopeConfiguration.js.map +1 -1
- package/dist/idl_codegen/types/SwitchboardConfiguration.d.ts +1 -0
- package/dist/idl_codegen/types/SwitchboardConfiguration.d.ts.map +1 -0
- package/dist/idl_codegen/types/SwitchboardConfiguration.js +3 -0
- package/dist/idl_codegen/types/SwitchboardConfiguration.js.map +1 -1
- package/dist/idl_codegen/types/TokenInfo.d.ts +1 -0
- package/dist/idl_codegen/types/TokenInfo.d.ts.map +1 -0
- package/dist/idl_codegen/types/TokenInfo.js +27 -4
- package/dist/idl_codegen/types/TokenInfo.js.map +1 -1
- package/dist/idl_codegen/types/UpdateConfigMode.d.ts +1 -0
- package/dist/idl_codegen/types/UpdateConfigMode.d.ts.map +1 -0
- package/dist/idl_codegen/types/UpdateConfigMode.js +188 -282
- package/dist/idl_codegen/types/UpdateConfigMode.js.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.d.ts +1 -0
- package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.d.ts.map +1 -0
- package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js +41 -33
- package/dist/idl_codegen/types/UpdateLendingMarketConfigValue.js.map +1 -1
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts +1 -0
- package/dist/idl_codegen/types/UpdateLendingMarketMode.d.ts.map +1 -0
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js +72 -108
- package/dist/idl_codegen/types/UpdateLendingMarketMode.js.map +1 -1
- package/dist/idl_codegen/types/WithdrawalCaps.d.ts +1 -0
- package/dist/idl_codegen/types/WithdrawalCaps.d.ts.map +1 -0
- package/dist/idl_codegen/types/WithdrawalCaps.js +4 -0
- package/dist/idl_codegen/types/WithdrawalCaps.js.map +1 -1
- package/dist/idl_codegen/types/index.d.ts +1 -0
- package/dist/idl_codegen/types/index.d.ts.map +1 -0
- package/dist/idl_codegen/types/index.js.map +1 -1
- package/dist/idl_codegen/zero_padding/ObligationZP.d.ts +1 -0
- package/dist/idl_codegen/zero_padding/ObligationZP.d.ts.map +1 -0
- package/dist/idl_codegen/zero_padding/ObligationZP.js +83 -54
- package/dist/idl_codegen/zero_padding/ObligationZP.js.map +1 -1
- package/dist/idl_codegen/zero_padding/index.d.ts +1 -0
- package/dist/idl_codegen/zero_padding/index.d.ts.map +1 -0
- package/dist/idl_codegen/zero_padding/index.js.map +1 -1
- package/dist/idl_codegen_jupiter_perps/accounts/Pool.d.ts +1 -0
- package/dist/idl_codegen_jupiter_perps/accounts/Pool.d.ts.map +1 -0
- package/dist/idl_codegen_jupiter_perps/accounts/Pool.js +39 -42
- package/dist/idl_codegen_jupiter_perps/accounts/Pool.js.map +1 -1
- package/dist/idl_codegen_jupiter_perps/accounts/index.d.ts +1 -0
- package/dist/idl_codegen_jupiter_perps/accounts/index.d.ts.map +1 -0
- package/dist/idl_codegen_jupiter_perps/accounts/index.js.map +1 -1
- package/dist/idl_codegen_jupiter_perps/programId.d.ts +1 -0
- package/dist/idl_codegen_jupiter_perps/programId.d.ts.map +1 -0
- package/dist/idl_codegen_jupiter_perps/programId.js.map +1 -1
- package/dist/idl_codegen_jupiter_perps/types/Fees.d.ts +1 -0
- package/dist/idl_codegen_jupiter_perps/types/Fees.d.ts.map +1 -0
- package/dist/idl_codegen_jupiter_perps/types/Fees.js +9 -0
- package/dist/idl_codegen_jupiter_perps/types/Fees.js.map +1 -1
- package/dist/idl_codegen_jupiter_perps/types/Limit.d.ts +1 -0
- package/dist/idl_codegen_jupiter_perps/types/Limit.d.ts.map +1 -0
- package/dist/idl_codegen_jupiter_perps/types/Limit.js +3 -0
- package/dist/idl_codegen_jupiter_perps/types/Limit.js.map +1 -1
- package/dist/idl_codegen_jupiter_perps/types/PoolApr.d.ts +1 -0
- package/dist/idl_codegen_jupiter_perps/types/PoolApr.d.ts.map +1 -0
- package/dist/idl_codegen_jupiter_perps/types/PoolApr.js +3 -0
- package/dist/idl_codegen_jupiter_perps/types/PoolApr.js.map +1 -1
- package/dist/idl_codegen_jupiter_perps/types/index.d.ts +1 -0
- package/dist/idl_codegen_jupiter_perps/types/index.d.ts.map +1 -0
- package/dist/idl_codegen_jupiter_perps/types/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/Reserve.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/accounts/Reserve.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/accounts/Reserve.js +58 -47
- package/dist/idl_codegen_kamino_vault/accounts/Reserve.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.js +51 -47
- package/dist/idl_codegen_kamino_vault/accounts/VaultState.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/accounts/index.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/accounts/index.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/accounts/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/anchor.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/errors/anchor.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/errors/anchor.js +270 -216
- package/dist/idl_codegen_kamino_vault/errors/anchor.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/custom.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/errors/custom.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/errors/custom.js +120 -96
- package/dist/idl_codegen_kamino_vault/errors/custom.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/errors/index.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/errors/index.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/errors/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/deposit.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/deposit.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/index.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/index.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/index.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/initVault.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/initVault.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/invest.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/invest.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/updateReserveAllocation.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/instructions/withdraw.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/programId.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/programId.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/programId.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.js +2 -0
- package/dist/idl_codegen_kamino_vault/types/BigFractionBytes.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.js +2 -1
- package/dist/idl_codegen_kamino_vault/types/BorrowRateCurve.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/CurvePoint.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/CurvePoint.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/CurvePoint.js +2 -0
- package/dist/idl_codegen_kamino_vault/types/CurvePoint.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/LastUpdate.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/LastUpdate.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/LastUpdate.js +7 -0
- package/dist/idl_codegen_kamino_vault/types/LastUpdate.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.js +6 -0
- package/dist/idl_codegen_kamino_vault/types/PriceHeuristic.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/PythConfiguration.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/PythConfiguration.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/PythConfiguration.js +2 -0
- package/dist/idl_codegen_kamino_vault/types/PythConfiguration.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.js +8 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveCollateral.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js +77 -5
- package/dist/idl_codegen_kamino_vault/types/ReserveConfig.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveFees.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveFees.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveFees.js +16 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveFees.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js +41 -1
- package/dist/idl_codegen_kamino_vault/types/ReserveLiquidity.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.js +6 -0
- package/dist/idl_codegen_kamino_vault/types/ScopeConfiguration.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.js +3 -0
- package/dist/idl_codegen_kamino_vault/types/SwitchboardConfiguration.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/TokenInfo.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/TokenInfo.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/TokenInfo.js +27 -4
- package/dist/idl_codegen_kamino_vault/types/TokenInfo.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.js +8 -0
- package/dist/idl_codegen_kamino_vault/types/VaultAllocation.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/WithdrawalCaps.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/WithdrawalCaps.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/WithdrawalCaps.js +4 -0
- package/dist/idl_codegen_kamino_vault/types/WithdrawalCaps.js.map +1 -1
- package/dist/idl_codegen_kamino_vault/types/index.d.ts +1 -0
- package/dist/idl_codegen_kamino_vault/types/index.d.ts.map +1 -0
- package/dist/idl_codegen_kamino_vault/types/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lending_operations/index.d.ts +1 -0
- package/dist/lending_operations/index.d.ts.map +1 -0
- package/dist/lending_operations/index.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_calcs.d.ts +1 -0
- package/dist/lending_operations/repay_with_collateral_calcs.d.ts.map +1 -0
- package/dist/lending_operations/repay_with_collateral_calcs.js +1 -1
- package/dist/lending_operations/repay_with_collateral_calcs.js.map +1 -1
- package/dist/lending_operations/repay_with_collateral_operations.d.ts +1 -0
- package/dist/lending_operations/repay_with_collateral_operations.d.ts.map +1 -0
- package/dist/lending_operations/repay_with_collateral_operations.js +15 -24
- package/dist/lending_operations/repay_with_collateral_operations.js.map +1 -1
- package/dist/leverage/calcs.d.ts +1 -0
- package/dist/leverage/calcs.d.ts.map +1 -0
- package/dist/leverage/calcs.js +119 -132
- package/dist/leverage/calcs.js.map +1 -1
- package/dist/leverage/index.d.ts +1 -0
- package/dist/leverage/index.d.ts.map +1 -0
- package/dist/leverage/index.js.map +1 -1
- package/dist/leverage/instructions.d.ts +1 -0
- package/dist/leverage/instructions.d.ts.map +1 -0
- package/dist/leverage/instructions.js.map +1 -1
- package/dist/leverage/operations.d.ts +1 -0
- package/dist/leverage/operations.d.ts.map +1 -0
- package/dist/leverage/operations.js +75 -84
- package/dist/leverage/operations.js.map +1 -1
- package/dist/leverage/utils.d.ts +1 -0
- package/dist/leverage/utils.d.ts.map +1 -0
- package/dist/leverage/utils.js +73 -88
- package/dist/leverage/utils.js.map +1 -1
- package/dist/lib.d.ts +1 -0
- package/dist/lib.d.ts.map +1 -0
- package/dist/lib.js.map +1 -1
- package/dist/referrals/index.d.ts +1 -0
- package/dist/referrals/index.d.ts.map +1 -0
- package/dist/referrals/index.js.map +1 -1
- package/dist/referrals/instructions.d.ts +1 -0
- package/dist/referrals/instructions.d.ts.map +1 -0
- package/dist/referrals/instructions.js +8 -17
- package/dist/referrals/instructions.js.map +1 -1
- package/dist/referrals/operations.d.ts +2 -1
- package/dist/referrals/operations.d.ts.map +1 -0
- package/dist/referrals/operations.js +119 -143
- package/dist/referrals/operations.js.map +1 -1
- package/dist/utils/ObligationType.d.ts +1 -0
- package/dist/utils/ObligationType.d.ts.map +1 -0
- package/dist/utils/ObligationType.js +16 -7
- package/dist/utils/ObligationType.js.map +1 -1
- package/dist/utils/api.d.ts +1 -0
- package/dist/utils/api.d.ts.map +1 -0
- package/dist/utils/api.js +10 -21
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/ata.d.ts +1 -0
- package/dist/utils/ata.d.ts.map +1 -0
- package/dist/utils/ata.js +25 -38
- package/dist/utils/ata.js.map +1 -1
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +1 -1
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/idl.d.ts +1 -0
- package/dist/utils/idl.d.ts.map +1 -0
- package/dist/utils/idl.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/instruction.d.ts +1 -0
- package/dist/utils/instruction.d.ts.map +1 -0
- package/dist/utils/instruction.js +116 -143
- package/dist/utils/instruction.js.map +1 -1
- package/dist/utils/kamino.d.ts +1 -0
- package/dist/utils/kamino.d.ts.map +1 -0
- package/dist/utils/kamino.js +4 -15
- package/dist/utils/kamino.js.map +1 -1
- package/dist/utils/layout.d.ts +1 -0
- package/dist/utils/layout.d.ts.map +1 -0
- package/dist/utils/layout.js.map +1 -1
- package/dist/utils/lookupTable.d.ts +1 -0
- package/dist/utils/lookupTable.d.ts.map +1 -0
- package/dist/utils/lookupTable.js +14 -27
- package/dist/utils/lookupTable.js.map +1 -1
- package/dist/utils/managerTypes.d.ts +1 -0
- package/dist/utils/managerTypes.d.ts.map +1 -0
- package/dist/utils/managerTypes.js +32 -3
- package/dist/utils/managerTypes.js.map +1 -1
- package/dist/utils/oracle.d.ts +2 -1
- package/dist/utils/oracle.d.ts.map +1 -0
- package/dist/utils/oracle.js +71 -85
- package/dist/utils/oracle.js.map +1 -1
- package/dist/utils/pubkey.d.ts +1 -0
- package/dist/utils/pubkey.d.ts.map +1 -0
- package/dist/utils/pubkey.js +7 -9
- package/dist/utils/pubkey.js.map +1 -1
- package/dist/utils/rpc.d.ts +1 -0
- package/dist/utils/rpc.d.ts.map +1 -0
- package/dist/utils/rpc.js +48 -70
- package/dist/utils/rpc.js.map +1 -1
- package/dist/utils/seeds.d.ts +1 -0
- package/dist/utils/seeds.d.ts.map +1 -0
- package/dist/utils/seeds.js.map +1 -1
- package/dist/utils/sendTransactionsUtils.d.ts +1 -0
- package/dist/utils/sendTransactionsUtils.d.ts.map +1 -0
- package/dist/utils/sendTransactionsUtils.js +82 -82
- package/dist/utils/sendTransactionsUtils.js.map +1 -1
- package/dist/utils/slots.d.ts +1 -0
- package/dist/utils/slots.d.ts.map +1 -0
- package/dist/utils/slots.js.map +1 -1
- package/dist/utils/syncNative.d.ts +1 -0
- package/dist/utils/syncNative.d.ts.map +1 -0
- package/dist/utils/syncNative.js.map +1 -1
- package/dist/utils/userMetadata.d.ts +1 -0
- package/dist/utils/userMetadata.d.ts.map +1 -0
- package/dist/utils/userMetadata.js +41 -53
- package/dist/utils/userMetadata.js.map +1 -1
- package/package.json +14 -8
- package/src/classes/action.ts +2884 -0
- package/src/classes/curve.ts +29 -0
- package/src/classes/fraction.ts +65 -0
- package/src/classes/index.ts +10 -0
- package/src/classes/jupiterPerps.ts +14 -0
- package/src/classes/manager.ts +746 -0
- package/src/classes/market.ts +1459 -0
- package/src/classes/obligation.ts +1315 -0
- package/src/classes/reserve.ts +1980 -0
- package/src/classes/shared.ts +57 -0
- package/src/classes/utils.ts +192 -0
- package/src/classes/vault.ts +808 -0
- package/src/client.ts +446 -0
- package/src/client_kamino_manager.ts +791 -0
- package/src/global.d.ts +1 -0
- package/src/idl_codegen/accounts/LendingMarket.ts +364 -0
- package/src/idl_codegen/accounts/Obligation.ts +349 -0
- package/src/idl_codegen/accounts/ReferrerState.ts +97 -0
- package/src/idl_codegen/accounts/ReferrerTokenState.ts +145 -0
- package/src/idl_codegen/accounts/Reserve.ts +248 -0
- package/src/idl_codegen/accounts/ShortUrl.ts +97 -0
- package/src/idl_codegen/accounts/UserMetadata.ts +142 -0
- package/src/idl_codegen/accounts/UserState.ts +301 -0
- package/src/idl_codegen/accounts/index.ts +19 -0
- package/src/idl_codegen/errors/anchor.ts +773 -0
- package/src/idl_codegen/errors/custom.ts +1633 -0
- package/src/idl_codegen/errors/index.ts +62 -0
- package/src/idl_codegen/instructions/borrowObligationLiquidity.ts +82 -0
- package/src/idl_codegen/instructions/deleteReferrerStateAndShortUrl.ts +30 -0
- package/src/idl_codegen/instructions/depositObligationCollateral.ts +62 -0
- package/src/idl_codegen/instructions/depositReserveLiquidity.ts +90 -0
- package/src/idl_codegen/instructions/depositReserveLiquidityAndObligationCollateral.ts +98 -0
- package/src/idl_codegen/instructions/flashBorrowReserveLiquidity.ts +82 -0
- package/src/idl_codegen/instructions/flashRepayReserveLiquidity.ts +83 -0
- package/src/idl_codegen/instructions/idlMissingTypes.ts +62 -0
- package/src/idl_codegen/instructions/index.ts +138 -0
- package/src/idl_codegen/instructions/initFarmsForReserve.ts +62 -0
- package/src/idl_codegen/instructions/initLendingMarket.ts +50 -0
- package/src/idl_codegen/instructions/initObligation.ts +52 -0
- package/src/idl_codegen/instructions/initObligationFarmsForReserve.ts +60 -0
- package/src/idl_codegen/instructions/initReferrerStateAndShortUrl.ts +50 -0
- package/src/idl_codegen/instructions/initReferrerTokenState.ts +46 -0
- package/src/idl_codegen/instructions/initReserve.ts +74 -0
- package/src/idl_codegen/instructions/initUserMetadata.ts +50 -0
- package/src/idl_codegen/instructions/liquidateObligationAndRedeemReserveCollateral.ts +139 -0
- package/src/idl_codegen/instructions/redeemFees.ts +50 -0
- package/src/idl_codegen/instructions/redeemReserveCollateral.ts +94 -0
- package/src/idl_codegen/instructions/refreshObligation.ts +24 -0
- package/src/idl_codegen/instructions/refreshObligationFarmsForReserve.ts +62 -0
- package/src/idl_codegen/instructions/refreshReserve.ts +40 -0
- package/src/idl_codegen/instructions/refreshReservesBatch.ts +29 -0
- package/src/idl_codegen/instructions/repayObligationLiquidity.ts +64 -0
- package/src/idl_codegen/instructions/requestElevationGroup.ts +40 -0
- package/src/idl_codegen/instructions/socializeLoss.ts +48 -0
- package/src/idl_codegen/instructions/updateEntireReserveConfig.ts +45 -0
- package/src/idl_codegen/instructions/updateLendingMarket.ts +43 -0
- package/src/idl_codegen/instructions/updateLendingMarketOwner.ts +28 -0
- package/src/idl_codegen/instructions/updateReserveConfig.ts +52 -0
- package/src/idl_codegen/instructions/updateSingleReserveConfig.ts +48 -0
- package/src/idl_codegen/instructions/withdrawObligationCollateral.ts +68 -0
- package/src/idl_codegen/instructions/withdrawObligationCollateralAndRedeemReserveCollateral.ts +102 -0
- package/src/idl_codegen/instructions/withdrawProtocolFee.ts +62 -0
- package/src/idl_codegen/instructions/withdrawReferrerFees.ts +54 -0
- package/src/idl_codegen/programId.ts +13 -0
- package/src/idl_codegen/types/AssetTier.ts +118 -0
- package/src/idl_codegen/types/BigFractionBytes.ts +67 -0
- package/src/idl_codegen/types/BorrowRateCurve.ts +60 -0
- package/src/idl_codegen/types/CurvePoint.ts +64 -0
- package/src/idl_codegen/types/ElevationGroup.ts +133 -0
- package/src/idl_codegen/types/FeeCalculation.ts +90 -0
- package/src/idl_codegen/types/InitObligationArgs.ts +61 -0
- package/src/idl_codegen/types/LastUpdate.ts +95 -0
- package/src/idl_codegen/types/ObligationCollateral.ts +128 -0
- package/src/idl_codegen/types/ObligationLiquidity.ts +159 -0
- package/src/idl_codegen/types/PriceHeuristic.ts +81 -0
- package/src/idl_codegen/types/PythConfiguration.ts +56 -0
- package/src/idl_codegen/types/ReserveCollateral.ts +104 -0
- package/src/idl_codegen/types/ReserveConfig.ts +467 -0
- package/src/idl_codegen/types/ReserveFarmKind.ts +90 -0
- package/src/idl_codegen/types/ReserveFees.ts +122 -0
- package/src/idl_codegen/types/ReserveLiquidity.ts +286 -0
- package/src/idl_codegen/types/ReserveStatus.ts +120 -0
- package/src/idl_codegen/types/ScopeConfiguration.ts +85 -0
- package/src/idl_codegen/types/SwitchboardConfiguration.ts +67 -0
- package/src/idl_codegen/types/TokenInfo.ts +190 -0
- package/src/idl_codegen/types/UpdateConfigMode.ts +1440 -0
- package/src/idl_codegen/types/UpdateLendingMarketConfigValue.ts +376 -0
- package/src/idl_codegen/types/UpdateLendingMarketMode.ts +570 -0
- package/src/idl_codegen/types/WithdrawalCaps.ts +86 -0
- package/src/idl_codegen/types/index.ts +276 -0
- package/src/idl_codegen/zero_padding/ObligationZP.ts +186 -0
- package/src/idl_codegen/zero_padding/index.ts +1 -0
- package/src/idl_codegen_jupiter_perps/accounts/Pool.ts +155 -0
- package/src/idl_codegen_jupiter_perps/accounts/index.ts +2 -0
- package/src/idl_codegen_jupiter_perps/programId.ts +7 -0
- package/src/idl_codegen_jupiter_perps/types/Fees.ts +130 -0
- package/src/idl_codegen_jupiter_perps/types/Limit.ts +72 -0
- package/src/idl_codegen_jupiter_perps/types/PoolApr.ts +69 -0
- package/src/idl_codegen_jupiter_perps/types/index.ts +6 -0
- package/src/idl_codegen_kamino_vault/accounts/Reserve.ts +221 -0
- package/src/idl_codegen_kamino_vault/accounts/VaultState.ts +214 -0
- package/src/idl_codegen_kamino_vault/accounts/index.ts +4 -0
- package/src/idl_codegen_kamino_vault/errors/anchor.ts +764 -0
- package/src/idl_codegen_kamino_vault/errors/custom.ts +344 -0
- package/src/idl_codegen_kamino_vault/errors/index.ts +49 -0
- package/src/idl_codegen_kamino_vault/instructions/deposit.ts +54 -0
- package/src/idl_codegen_kamino_vault/instructions/index.ts +10 -0
- package/src/idl_codegen_kamino_vault/instructions/initVault.ts +35 -0
- package/src/idl_codegen_kamino_vault/instructions/invest.ts +60 -0
- package/src/idl_codegen_kamino_vault/instructions/updateReserveAllocation.ts +58 -0
- package/src/idl_codegen_kamino_vault/instructions/withdraw.ts +81 -0
- package/src/idl_codegen_kamino_vault/programId.ts +7 -0
- package/src/idl_codegen_kamino_vault/types/BigFractionBytes.ts +61 -0
- package/src/idl_codegen_kamino_vault/types/BorrowRateCurve.ts +55 -0
- package/src/idl_codegen_kamino_vault/types/CurvePoint.ts +61 -0
- package/src/idl_codegen_kamino_vault/types/LastUpdate.ts +90 -0
- package/src/idl_codegen_kamino_vault/types/PriceHeuristic.ts +78 -0
- package/src/idl_codegen_kamino_vault/types/PythConfiguration.ts +56 -0
- package/src/idl_codegen_kamino_vault/types/ReserveCollateral.ts +104 -0
- package/src/idl_codegen_kamino_vault/types/ReserveConfig.ts +426 -0
- package/src/idl_codegen_kamino_vault/types/ReserveFees.ts +118 -0
- package/src/idl_codegen_kamino_vault/types/ReserveLiquidity.ts +268 -0
- package/src/idl_codegen_kamino_vault/types/ScopeConfiguration.ts +85 -0
- package/src/idl_codegen_kamino_vault/types/SwitchboardConfiguration.ts +64 -0
- package/src/idl_codegen_kamino_vault/types/TokenInfo.ts +172 -0
- package/src/idl_codegen_kamino_vault/types/VaultAllocation.ts +115 -0
- package/src/idl_codegen_kamino_vault/types/WithdrawalCaps.ts +86 -0
- package/src/idl_codegen_kamino_vault/types/index.ts +30 -0
- package/src/index.ts +1 -0
- package/src/lending_operations/index.ts +2 -0
- package/src/lending_operations/repay_with_collateral_calcs.ts +71 -0
- package/src/lending_operations/repay_with_collateral_operations.ts +318 -0
- package/src/leverage/calcs.ts +465 -0
- package/src/leverage/index.ts +4 -0
- package/src/leverage/instructions.ts +144 -0
- package/src/leverage/operations.ts +1814 -0
- package/src/leverage/utils.ts +273 -0
- package/src/lib.ts +9 -0
- package/src/referrals/index.ts +2 -0
- package/src/referrals/instructions.ts +114 -0
- package/src/referrals/operations.ts +325 -0
- package/src/utils/ObligationType.ts +171 -0
- package/src/utils/api.ts +59 -0
- package/src/utils/ata.ts +195 -0
- package/src/utils/constants.ts +81 -0
- package/src/utils/idl.ts +4 -0
- package/src/utils/index.ts +16 -0
- package/src/utils/instruction.ts +258 -0
- package/src/utils/kamino.ts +12 -0
- package/src/utils/layout.ts +118 -0
- package/src/utils/lookupTable.ts +55 -0
- package/src/utils/managerTypes.ts +456 -0
- package/src/utils/oracle.ts +337 -0
- package/src/utils/pubkey.ts +261 -0
- package/src/utils/rpc.ts +108 -0
- package/src/utils/seeds.ts +183 -0
- package/src/utils/sendTransactionsUtils.ts +207 -0
- package/src/utils/slots.ts +28 -0
- package/src/utils/syncNative.ts +22 -0
- package/src/utils/userMetadata.ts +401 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/classes/market.ts"],"names":[],"mappings":"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","sourcesContent":["import { AccountInfo, Connection, PublicKey } from '@solana/web3.js';\nimport { KaminoObligation } from './obligation';\nimport { KaminoReserve } from './reserve';\nimport { LendingMarket, Obligation, UserMetadata, ReferrerTokenState, Reserve } from '../idl_codegen/accounts';\nimport {\n lendingMarketAuthPda,\n ObligationType,\n referrerTokenStatePda,\n userMetadataPda,\n getTokenOracleData,\n VanillaObligation,\n LendingObligation,\n MultiplyObligation,\n LeverageObligation,\n isNotNullPubkey,\n getAllOracleAccounts,\n PythPrices,\n cacheOrGetScopePrice,\n cacheOrGetPythPrices,\n cacheOrGetSwitchboardPrice,\n PubkeyHashMap,\n CandidatePrice,\n} from '../utils';\nimport base58 from 'bs58';\nimport { BN } from '@coral-xyz/anchor';\nimport Decimal from 'decimal.js';\nimport { FarmState } from '@hubbleprotocol/farms-sdk';\nimport { PROGRAM_ID } from '../idl_codegen/programId';\nimport bs58 from 'bs58';\nimport { OraclePrices, Scope } from '@hubbleprotocol/scope-sdk';\nimport { Fraction } from './fraction';\nimport { chunks, KaminoPrices, MintToPriceMap } from '@kamino-finance/kliquidity-sdk';\nimport { parseTokenSymbol } from './utils';\nimport SwitchboardProgram from '@switchboard-xyz/sbv2-lite';\nimport { ObligationZP } from '../idl_codegen/zero_padding';\n\nexport interface ReserveRewardInfo {\n rewardsPerSecond: Decimal; // not lamport\n rewardsRemaining: Decimal; // not lamport\n rewardApr: Decimal;\n rewardMint: PublicKey;\n totalInvestmentUsd: Decimal;\n rewardPrice: number;\n}\n\nexport class KaminoMarket {\n private readonly connection: Connection;\n\n readonly address: string;\n\n state: LendingMarket;\n\n reserves: Map<PublicKey, KaminoReserve>;\n\n reservesActive: Map<PublicKey, KaminoReserve>;\n\n readonly programId: PublicKey;\n\n scope: Scope;\n\n private readonly recentSlotDurationMs: number;\n\n private constructor(\n connection: Connection,\n state: LendingMarket,\n marketAddress: string,\n reserves: Map<PublicKey, KaminoReserve>,\n scope: Scope,\n recentSlotDurationMs: number,\n programId: PublicKey = PROGRAM_ID\n ) {\n this.address = marketAddress;\n this.connection = connection;\n this.state = state;\n this.reserves = reserves;\n this.reservesActive = getReservesActive(this.reserves);\n this.programId = programId;\n this.scope = scope;\n this.recentSlotDurationMs = recentSlotDurationMs;\n }\n\n /**\n * Load a new market with all of its associated reserves\n * @param connection\n * @param marketAddress\n * @param programId\n * @param setupLocalTest\n */\n static async load(\n connection: Connection,\n marketAddress: PublicKey,\n recentSlotDurationMs: number,\n programId: PublicKey = PROGRAM_ID,\n setupLocalTest: boolean = false,\n withReserves: boolean = true\n ) {\n const market = await LendingMarket.fetch(connection, marketAddress, programId);\n\n if (market === null) {\n return null;\n }\n let scope: Scope;\n if (!setupLocalTest) {\n scope = new Scope('mainnet-beta', connection);\n } else {\n scope = new Scope('localnet', connection);\n }\n\n const reserves = withReserves\n ? await getReservesForMarket(marketAddress, connection, programId, recentSlotDurationMs)\n : new Map<PublicKey, KaminoReserve>();\n\n return new KaminoMarket(\n connection,\n market,\n marketAddress.toString(),\n reserves,\n scope,\n recentSlotDurationMs,\n programId\n );\n }\n\n async reload(): Promise<void> {\n const market = await LendingMarket.fetch(this.connection, this.getAddress(), this.programId);\n if (market === null) {\n return;\n }\n\n this.state = market;\n this.reserves = await getReservesForMarket(\n this.getAddress(),\n this.connection,\n this.programId,\n this.recentSlotDurationMs\n );\n this.reservesActive = getReservesActive(this.reserves);\n }\n\n async reloadSingleReserve(reservePk: PublicKey, accountData?: AccountInfo<Buffer>): Promise<void> {\n const reserve = await getSingleReserve(reservePk, this.connection, this.recentSlotDurationMs, accountData);\n this.reserves.set(reservePk, reserve);\n this.reservesActive.set(reservePk, reserve);\n }\n\n /**\n * Get the address of this market\n * @return market address public key\n */\n getAddress(): PublicKey {\n return new PublicKey(this.address);\n }\n\n /**\n * Get a list of reserves for this market\n */\n getReserves(): Array<KaminoReserve> {\n return [...this.reserves.values()];\n }\n\n getElevationGroup(elevationGroup: number) {\n return this.state.elevationGroups[elevationGroup - 1];\n }\n\n getMinNetValueObligation(): Decimal {\n return new Fraction(this.state.minNetValueInObligationSf).toDecimal();\n }\n\n /**\n * Get the authority PDA of this market\n * @return market authority public key\n */\n getLendingMarketAuthority(): PublicKey {\n return lendingMarketAuthPda(this.getAddress(), this.programId)[0];\n }\n\n async getObligationDepositByWallet(\n owner: PublicKey,\n mint: PublicKey,\n obligationType: ObligationType\n ): Promise<Decimal> {\n const obligation = await this.getObligationByWallet(owner, obligationType);\n return obligation?.getDepositByMint(mint)?.amount ?? new Decimal(0);\n }\n\n async getObligationBorrowByWallet(\n owner: PublicKey,\n mint: PublicKey,\n obligationType: ObligationType\n ): Promise<Decimal> {\n const obligation = await this.getObligationByWallet(owner, obligationType);\n return obligation?.getBorrowByMint(mint)?.amount ?? new Decimal(0);\n }\n\n getTotalDepositTVL(): Decimal {\n let tvl = new Decimal(0);\n for (const reserve of this.reserves.values()) {\n tvl = tvl.add(reserve.getDepositTvl());\n }\n return tvl;\n }\n\n getTotalBorrowTVL(): Decimal {\n let tvl = new Decimal(0);\n for (const reserve of this.reserves.values()) {\n tvl = tvl.add(reserve.getBorrowTvl());\n }\n return tvl;\n }\n\n getMaxLeverageForPair(collTokenMint: PublicKey, debtTokenMint: PublicKey): number {\n const { maxLtv: maxCollateralLtv, borrowFactor } = this.getMaxAndLiquidationLtvAndBorrowFactorForPair(\n collTokenMint,\n debtTokenMint\n );\n\n const maxLeverage =\n // const ltv = (coll * ltv_factor) / (debt * borrow_factor);\n 1 / (1 - (maxCollateralLtv * 100) / (borrowFactor * 100));\n\n return maxLeverage;\n }\n\n getMaxAndLiquidationLtvAndBorrowFactorForPair(\n collTokenMint: PublicKey,\n debtTokenMint: PublicKey\n ): { maxLtv: number; liquidationLtv: number; borrowFactor: number } {\n const collReserve: KaminoReserve | undefined = this.getReserveByMint(collTokenMint);\n const debtReserve: KaminoReserve | undefined = this.getReserveByMint(debtTokenMint);\n\n if (!collReserve || !debtReserve) {\n throw Error('Could not find one of the reserves.');\n }\n\n const groupsColl = new Set(collReserve.state.config.elevationGroups);\n const groupsDebt = new Set(debtReserve.state.config.elevationGroups);\n const commonElevationGroups = [...groupsColl].filter((item) => groupsDebt.has(item) && item !== 0);\n\n // Ltv factor for coll token\n const maxCollateralLtv =\n commonElevationGroups.length === 0\n ? collReserve.state.config.loanToValuePct\n : this.state.elevationGroups\n .filter((e) => commonElevationGroups.includes(e.id))\n .reduce((acc, elem) => Math.max(acc, elem.ltvPct), 0);\n\n const liquidationLtv =\n commonElevationGroups.length === 0\n ? collReserve.state.config.liquidationThresholdPct\n : this.state.elevationGroups\n .filter((e) => commonElevationGroups.includes(e.id))\n .reduce((acc, elem) => Math.max(acc, elem.liquidationThresholdPct), 0);\n\n const borrowFactor =\n commonElevationGroups.length === 0 ? debtReserve?.state.config.borrowFactorPct.toNumber() / 100 : 1;\n\n return { maxLtv: maxCollateralLtv / 100, liquidationLtv: liquidationLtv / 100, borrowFactor };\n }\n\n async getTotalProductTvl(\n productType: ObligationType\n ): Promise<{ tvl: Decimal; borrows: Decimal; deposits: Decimal; avgLeverage: Decimal }> {\n let obligations = (await this.getAllObligationsForMarket(productType.toArgs().tag)).filter(\n (obligation) =>\n obligation.refreshedStats.userTotalBorrow.gt(0) || obligation.refreshedStats.userTotalDeposit.gt(0)\n );\n\n switch (productType.toArgs().tag) {\n case VanillaObligation.tag: {\n break;\n }\n case LendingObligation.tag: {\n const mint = productType.toArgs().seed1;\n obligations = obligations.filter((obligation) => obligation.getDepositByMint(mint) !== undefined);\n break;\n }\n case MultiplyObligation.tag:\n case LeverageObligation.tag: {\n const collMint = productType.toArgs().seed1;\n const debtMint = productType.toArgs().seed2;\n obligations = obligations.filter(\n (obligation) =>\n obligation.getDepositByMint(collMint) !== undefined && obligation.getBorrowByMint(debtMint) !== undefined\n );\n break;\n }\n default:\n throw new Error('Invalid obligation type');\n }\n\n const deposits = obligations.reduce(\n (acc, obligation) => acc.plus(obligation.refreshedStats.userTotalDeposit),\n new Decimal(0)\n );\n const borrows = obligations.reduce(\n (acc, obligation) => acc.plus(obligation.refreshedStats.userTotalBorrow),\n new Decimal(0)\n );\n const avgLeverage = obligations.reduce(\n (acc, obligations) => acc.plus(obligations.refreshedStats.leverage),\n new Decimal(0)\n );\n return { tvl: deposits.sub(borrows), deposits, borrows, avgLeverage: avgLeverage.div(obligations.length) };\n }\n\n /**\n *\n * @returns Number of active obligations in the market\n */\n async getNumberOfObligations() {\n return (await this.getAllObligationsForMarket())\n .filter(\n (obligation) =>\n obligation.refreshedStats.userTotalBorrow.gt(0) || obligation.refreshedStats.userTotalDeposit.gt(0)\n )\n .reduce((acc, _obligation) => acc + 1, 0);\n }\n\n async getObligationByWallet(publicKey: PublicKey, obligationType: ObligationType): Promise<KaminoObligation | null> {\n const { address } = this;\n if (!address) {\n throw Error('Market must be initialized to call initialize.');\n }\n const obligationAddress = obligationType.toPda(this.getAddress(), publicKey);\n return KaminoObligation.load(this, obligationAddress);\n }\n\n /**\n * @returns The max borrowable amount for leverage positions\n */\n async getMaxLeverageBorrowableAmount(\n collReserve: KaminoReserve,\n debtReserve: KaminoReserve,\n slot: number,\n requestElevationGroup: boolean,\n obligation?: KaminoObligation\n ): Promise<Decimal> {\n return obligation\n ? obligation.getMaxBorrowAmount(this, debtReserve.getLiquidityMint(), slot, requestElevationGroup)\n : debtReserve.getMaxBorrowAmountWithCollReserve(this, collReserve, slot);\n }\n\n async loadReserves() {\n const addresses = [...this.reserves.keys()];\n const reserveAccounts = await this.connection.getMultipleAccountsInfo(addresses, 'processed');\n const deserializedReserves = reserveAccounts.map((reserve, i) => {\n if (reserve === null) {\n // maybe reuse old here\n throw new Error(`Reserve account ${addresses[i].toBase58()} was not found`);\n }\n const reserveAccount = Reserve.decode(reserve.data);\n if (!reserveAccount) {\n throw Error(`Could not parse reserve ${addresses[i].toBase58()}`);\n }\n return reserveAccount;\n });\n const reservesAndOracles = await getTokenOracleData(this.connection, deserializedReserves);\n const kaminoReserves = new PubkeyHashMap<PublicKey, KaminoReserve>();\n reservesAndOracles.forEach(([reserve, oracle], index) => {\n if (!oracle) {\n throw Error(`Could not find oracle for ${parseTokenSymbol(reserve.config.tokenInfo.name)} reserve`);\n }\n const kaminoReserve = KaminoReserve.initialize(\n reserveAccounts[index]!,\n addresses[index],\n reserve,\n oracle,\n this.connection,\n this.recentSlotDurationMs\n );\n kaminoReserves.set(kaminoReserve.address, kaminoReserve);\n });\n this.reserves = kaminoReserves;\n this.reservesActive = getReservesActive(this.reserves);\n }\n\n async refreshAll() {\n const promises = [this.getReserves().every((reserve) => reserve.stats) ? this.loadReserves() : null].filter(\n (x) => x\n );\n\n await Promise.all(promises);\n\n this.reservesActive = getReservesActive(this.reserves);\n }\n\n getReserveByAddress(address: PublicKey) {\n return this.reserves.get(address);\n }\n\n getReserveByMint(address: PublicKey) {\n for (const reserve of this.reserves.values()) {\n if (reserve.getLiquidityMint().equals(address)) {\n return reserve;\n }\n }\n return undefined;\n }\n\n getReserveBySymbol(symbol: string) {\n for (const reserve of this.reserves.values()) {\n if (reserve.symbol === symbol) {\n return reserve;\n }\n }\n return undefined;\n }\n\n getReserveMintBySymbol(symbol: string) {\n return this.getReserveBySymbol(symbol)?.getLiquidityMint();\n }\n\n async getReserveFarmInfo(\n mint: PublicKey,\n getRewardPrice: (mint: PublicKey) => Promise<number>\n ): Promise<{ borrowingRewards: ReserveRewardInfo; depositingRewards: ReserveRewardInfo }> {\n const { address } = this;\n if (!address) {\n throw Error('Market must be initialized to call initialize.');\n }\n if (!this.getReserves().every((reserve) => reserve.stats)) {\n await this.loadReserves();\n }\n\n // Find the reserve\n const kaminoReserve = this.getReserveByMint(mint);\n\n if (!kaminoReserve) {\n throw Error(`Could not find reserve. ${mint}`);\n }\n\n const totalDepositAmount = lamportsToNumberDecimal(\n kaminoReserve.getLiquidityAvailableAmount(),\n kaminoReserve.stats.decimals\n );\n const totalBorrowAmount = lamportsToNumberDecimal(kaminoReserve.getBorrowedAmount(), kaminoReserve.stats.decimals);\n\n const collateralFarmAddress = kaminoReserve.state.farmCollateral;\n const debtFarmAddress = kaminoReserve.state.farmDebt;\n\n const result = {\n borrowingRewards: {\n rewardsPerSecond: new Decimal(0),\n rewardsRemaining: new Decimal(0),\n rewardApr: new Decimal(0),\n rewardMint: PublicKey.default,\n totalInvestmentUsd: new Decimal(0),\n rewardPrice: 0,\n },\n depositingRewards: {\n rewardsPerSecond: new Decimal(0),\n rewardsRemaining: new Decimal(0),\n rewardApr: new Decimal(0),\n rewardMint: PublicKey.default,\n totalInvestmentUsd: new Decimal(0),\n rewardPrice: 0,\n },\n };\n\n if (isNotNullPubkey(collateralFarmAddress)) {\n result.depositingRewards = await this.getRewardInfoForFarm(\n collateralFarmAddress,\n totalDepositAmount,\n getRewardPrice\n );\n }\n if (isNotNullPubkey(debtFarmAddress)) {\n result.depositingRewards = await this.getRewardInfoForFarm(debtFarmAddress, totalBorrowAmount, getRewardPrice);\n }\n\n return result;\n }\n\n async getRewardInfoForFarm(\n farmAddress: PublicKey,\n totalInvestmentUsd: Decimal,\n getRewardPrice: (mint: PublicKey) => Promise<number>\n ): Promise<ReserveRewardInfo> {\n const farmState = await FarmState.fetch(this.connection, farmAddress);\n if (!farmState) {\n throw Error(`Could not parse farm state. ${farmAddress}`);\n }\n const { token, rewardsAvailable, rewardScheduleCurve } = farmState.rewardInfos[0];\n // TODO: marius fix\n const rewardPerSecondLamports = rewardScheduleCurve.points[0].rewardPerTimeUnit.toNumber();\n const { mint, decimals: rewardDecimals } = token;\n const rewardPriceUsd = await getRewardPrice(mint);\n const rewardApr = this.calculateRewardAPR(\n rewardPerSecondLamports,\n rewardPriceUsd,\n totalInvestmentUsd,\n rewardDecimals.toNumber()\n );\n\n return {\n rewardsPerSecond: new Decimal(rewardPerSecondLamports).dividedBy(10 ** rewardDecimals.toNumber()),\n rewardsRemaining: new Decimal(rewardsAvailable.toNumber()).dividedBy(10 ** rewardDecimals.toNumber()),\n rewardApr: rewardsAvailable.toNumber() > 0 ? rewardApr : new Decimal(0),\n rewardMint: mint,\n totalInvestmentUsd,\n rewardPrice: rewardPriceUsd,\n };\n }\n\n calculateRewardAPR(\n rewardPerSecondLamports: number,\n rewardPriceUsd: number,\n totalInvestmentUsd: Decimal,\n rewardDecimals: number\n ): Decimal {\n const rewardsPerYear = new Decimal(rewardPerSecondLamports)\n .dividedBy(10 ** rewardDecimals)\n .times(365 * 24 * 60 * 60)\n .times(rewardPriceUsd);\n\n return rewardsPerYear.dividedBy(totalInvestmentUsd);\n }\n\n /**\n * Get all obligations for lending market, optionally filter by obligation tag\n * This function will likely require an RPC capable of returning more than the default 100k rows in a single scan\n *\n * @param tag\n */\n async getAllObligationsForMarket(tag?: number): Promise<KaminoObligation[]> {\n const { getProgramAccounts } = await import('../utils/rpc');\n const filters = [\n {\n dataSize: Obligation.layout.span + 8,\n },\n {\n memcmp: {\n offset: 32,\n bytes: this.address,\n },\n },\n ];\n\n if (tag !== undefined) {\n filters.push({\n memcmp: {\n offset: 8,\n bytes: base58.encode(new BN(tag).toBuffer()),\n },\n });\n }\n\n const collateralExchangeRates = new PubkeyHashMap<PublicKey, Decimal>();\n const cumulativeBorrowRates = new PubkeyHashMap<PublicKey, Decimal>();\n\n const [slot, obligations] = await Promise.all([\n this.connection.getSlot(),\n getProgramAccounts(this.connection, this.programId, {\n commitment: this.connection.commitment ?? 'processed',\n filters,\n dataSlice: { offset: 0, length: ObligationZP.layout.span + 8 }, // truncate the padding\n }),\n ]);\n\n return obligations.map((obligation) => {\n if (obligation.account === null) {\n throw new Error('Invalid account');\n }\n\n const obligationAccount = ObligationZP.decode(obligation.account.data);\n if (!obligationAccount) {\n throw Error('Could not parse obligation.');\n }\n\n KaminoObligation.addRatesForObligation(\n this,\n obligationAccount,\n collateralExchangeRates,\n cumulativeBorrowRates,\n slot\n );\n return new KaminoObligation(\n this,\n obligation.pubkey,\n obligationAccount,\n collateralExchangeRates,\n cumulativeBorrowRates\n );\n });\n }\n\n /**\n * Get all obligations for lending market from an async generator filled with batches of 100 obligations each\n * @param tag\n * @example\n * const obligationsGenerator = market.batchGetAllObligationsForMarket();\n * for await (const obligations of obligationsGenerator) {\n * console.log('got a batch of # obligations:', obligations.length);\n * }\n */\n async *batchGetAllObligationsForMarket(tag?: number): AsyncGenerator<KaminoObligation[], void, unknown> {\n const filters = [\n {\n dataSize: Obligation.layout.span + 8,\n },\n {\n memcmp: {\n offset: 32,\n bytes: this.address,\n },\n },\n ];\n\n if (tag !== undefined) {\n filters.push({\n memcmp: {\n offset: 8,\n bytes: base58.encode(new BN(tag).toBuffer()),\n },\n });\n }\n\n const collateralExchangeRates = new PubkeyHashMap<PublicKey, Decimal>();\n const cumulativeBorrowRates = new PubkeyHashMap<PublicKey, Decimal>();\n\n const [obligationPubkeys, slot] = await Promise.all([\n this.connection.getProgramAccounts(this.programId, {\n filters,\n dataSlice: { offset: 0, length: 0 },\n }),\n this.connection.getSlot(),\n ]);\n\n for (const batch of chunks(\n obligationPubkeys.map((x) => x.pubkey),\n 100\n )) {\n const obligationAccounts = await this.connection.getMultipleAccountsInfo(batch);\n const obligationsBatch: KaminoObligation[] = [];\n for (let i = 0; i < obligationAccounts.length; i++) {\n const obligation = obligationAccounts[i];\n const pubkey = batch[i];\n if (obligation === null) {\n continue;\n }\n\n const obligationAccount = Obligation.decode(obligation.data);\n\n if (!obligationAccount) {\n throw Error(`Could not decode obligation ${pubkey.toString()}`);\n }\n\n KaminoObligation.addRatesForObligation(\n this,\n obligationAccount,\n collateralExchangeRates,\n cumulativeBorrowRates,\n slot\n );\n obligationsBatch.push(\n new KaminoObligation(this, pubkey, obligationAccount, collateralExchangeRates, cumulativeBorrowRates)\n );\n }\n yield obligationsBatch;\n }\n }\n\n async getAllObligationsByTag(tag: number, market: PublicKey) {\n const [slot, obligations] = await Promise.all([\n this.connection.getSlot(),\n this.connection.getProgramAccounts(this.programId, {\n filters: [\n {\n dataSize: Obligation.layout.span + 8,\n },\n {\n memcmp: {\n offset: 8,\n bytes: base58.encode(new BN(tag).toBuffer()),\n },\n },\n {\n memcmp: {\n offset: 32,\n bytes: market.toBase58(),\n },\n },\n ],\n }),\n ]);\n const collateralExchangeRates = new PubkeyHashMap<PublicKey, Decimal>();\n const cumulativeBorrowRates = new PubkeyHashMap<PublicKey, Decimal>();\n\n return obligations.map((obligation) => {\n if (obligation.account === null) {\n throw new Error('Invalid account');\n }\n if (!obligation.account.owner.equals(this.programId)) {\n throw new Error(\"account doesn't belong to this program\");\n }\n\n const obligationAccount = Obligation.decode(obligation.account.data);\n\n if (!obligationAccount) {\n throw Error('Could not parse obligation.');\n }\n\n KaminoObligation.addRatesForObligation(\n this,\n obligationAccount,\n collateralExchangeRates,\n cumulativeBorrowRates,\n slot\n );\n\n return new KaminoObligation(\n this,\n obligation.pubkey,\n obligationAccount,\n collateralExchangeRates,\n cumulativeBorrowRates\n );\n });\n }\n\n async getAllUserObligations(user: PublicKey) {\n const [currentSlot, obligations] = await Promise.all([\n this.connection.getSlot(),\n this.connection.getProgramAccounts(this.programId, {\n filters: [\n {\n dataSize: Obligation.layout.span + 8,\n },\n {\n memcmp: {\n offset: 0,\n bytes: bs58.encode(Obligation.discriminator),\n },\n },\n {\n memcmp: {\n offset: 64,\n bytes: user.toBase58(),\n },\n },\n {\n memcmp: {\n offset: 32,\n bytes: this.address,\n },\n },\n ],\n }),\n ]);\n\n const collateralExchangeRates = new PubkeyHashMap<PublicKey, Decimal>();\n const cumulativeBorrowRates = new PubkeyHashMap<PublicKey, Decimal>();\n return obligations.map((obligation) => {\n if (obligation.account === null) {\n throw new Error('Invalid account');\n }\n if (!obligation.account.owner.equals(this.programId)) {\n throw new Error(\"account doesn't belong to this program\");\n }\n\n const obligationAccount = Obligation.decode(obligation.account.data);\n\n if (!obligationAccount) {\n throw Error('Could not parse obligation.');\n }\n\n KaminoObligation.addRatesForObligation(\n this,\n obligationAccount,\n collateralExchangeRates,\n cumulativeBorrowRates,\n currentSlot\n );\n return new KaminoObligation(\n this,\n obligation.pubkey,\n obligationAccount,\n collateralExchangeRates,\n cumulativeBorrowRates\n );\n });\n }\n\n async getAllUserObligationsForReserve(user: PublicKey, reserve: PublicKey): Promise<KaminoObligation[]> {\n const obligationAddresses: PublicKey[] = [];\n obligationAddresses.push(new VanillaObligation(this.programId).toPda(this.getAddress(), user));\n const targetReserve = new PubkeyHashMap<PublicKey, KaminoReserve>(Array.from(this.reserves.entries())).get(reserve);\n if (!targetReserve) {\n throw Error('Could not find reserve.');\n }\n for (const [key, kaminoReserve] of this.reserves) {\n if (targetReserve.address.equals(key)) {\n // skip target reserve\n continue;\n }\n obligationAddresses.push(\n new MultiplyObligation(\n targetReserve.getLiquidityMint(),\n kaminoReserve.getLiquidityMint(),\n this.programId\n ).toPda(this.getAddress(), user)\n );\n obligationAddresses.push(\n new MultiplyObligation(\n kaminoReserve.getLiquidityMint(),\n targetReserve.getLiquidityMint(),\n this.programId\n ).toPda(this.getAddress(), user)\n );\n obligationAddresses.push(\n new LeverageObligation(\n targetReserve.getLiquidityMint(),\n kaminoReserve.getLiquidityMint(),\n this.programId\n ).toPda(this.getAddress(), user)\n );\n obligationAddresses.push(\n new LeverageObligation(\n kaminoReserve.getLiquidityMint(),\n targetReserve.getLiquidityMint(),\n this.programId\n ).toPda(this.getAddress(), user)\n );\n }\n const batchSize = 100;\n const finalObligations: KaminoObligation[] = [];\n for (let batchStart = 0; batchStart < obligationAddresses.length; batchStart += batchSize) {\n const obligations = await this.getMultipleObligationsByAddress(\n obligationAddresses.slice(batchStart, batchStart + batchSize)\n );\n obligations.forEach((obligation) => {\n if (obligation !== null) {\n for (const deposits of obligation.deposits.keys()) {\n if (deposits.equals(reserve)) {\n finalObligations.push(obligation);\n }\n }\n for (const borrows of obligation.borrows.keys()) {\n if (borrows.equals(reserve)) {\n finalObligations.push(obligation);\n }\n }\n }\n });\n }\n\n return finalObligations;\n }\n\n async getUserVanillaObligation(user: PublicKey): Promise<KaminoObligation> {\n const vanillaObligationAddress = new VanillaObligation(this.programId).toPda(this.getAddress(), user);\n\n const obligation = await this.getObligationByAddress(vanillaObligationAddress);\n\n if (!obligation) {\n throw new Error('Could not find vanilla obligation.');\n }\n\n return obligation;\n }\n\n isReserveInObligation(obligation: KaminoObligation, reserve: PublicKey): boolean {\n for (const deposits of obligation.deposits.keys()) {\n if (deposits.equals(reserve)) {\n return true;\n }\n }\n for (const borrows of obligation.borrows.keys()) {\n if (borrows.equals(reserve)) {\n return true;\n }\n }\n\n return false;\n }\n\n async getUserObligationsByTag(tag: number, user: PublicKey): Promise<KaminoObligation[]> {\n const [currentSlot, obligations] = await Promise.all([\n this.connection.getSlot(),\n this.connection.getProgramAccounts(this.programId, {\n filters: [\n {\n dataSize: Obligation.layout.span + 8,\n },\n {\n memcmp: {\n offset: 8,\n bytes: base58.encode(new BN(tag).toBuffer()),\n },\n },\n {\n memcmp: {\n offset: 32,\n bytes: this.address,\n },\n },\n {\n memcmp: {\n offset: 64,\n bytes: user.toBase58(),\n },\n },\n ],\n }),\n ]);\n const collateralExchangeRates = new PubkeyHashMap<PublicKey, Decimal>();\n const cumulativeBorrowRates = new PubkeyHashMap<PublicKey, Decimal>();\n return obligations.map((obligation) => {\n if (obligation.account === null) {\n throw new Error('Invalid account');\n }\n if (!obligation.account.owner.equals(this.programId)) {\n throw new Error(\"account doesn't belong to this program\");\n }\n\n const obligationAccount = Obligation.decode(obligation.account.data);\n\n if (!obligationAccount) {\n throw Error('Could not parse obligation.');\n }\n KaminoObligation.addRatesForObligation(\n this,\n obligationAccount,\n collateralExchangeRates,\n cumulativeBorrowRates,\n currentSlot\n );\n return new KaminoObligation(\n this,\n obligation.pubkey,\n obligationAccount,\n collateralExchangeRates,\n cumulativeBorrowRates\n );\n });\n }\n\n async getObligationByAddress(address: PublicKey) {\n if (!this.getReserves().every((reserve) => reserve.stats)) {\n await this.loadReserves();\n }\n return KaminoObligation.load(this, address);\n }\n\n async getMultipleObligationsByAddress(addresses: PublicKey[]) {\n return KaminoObligation.loadAll(this, addresses);\n }\n\n /**\n * Get the user metadata PDA and fetch and return the user metadata state if it exists\n * @return [address, userMetadataState] - The address of the user metadata PDA and the user metadata state, or null if it doesn't exist\n */\n async getUserMetadata(user: PublicKey): Promise<[PublicKey, UserMetadata | null]> {\n const [address, _bump] = userMetadataPda(user, this.programId);\n\n const userMetadata = await UserMetadata.fetch(this.connection, address, this.programId);\n\n return [address, userMetadata];\n }\n\n async getReferrerTokenStateForReserve(\n referrer: PublicKey,\n reserve: PublicKey\n ): Promise<[PublicKey, ReferrerTokenState | null]> {\n const [address, _bump] = referrerTokenStatePda(referrer, reserve, this.programId);\n\n const referrerTokenState = await ReferrerTokenState.fetch(this.connection, address, this.programId);\n\n return [address, referrerTokenState];\n }\n\n async getAllReferrerTokenStates(referrer: PublicKey) {\n const referrerTokenStates = await this.connection.getProgramAccounts(this.programId, {\n filters: [\n {\n dataSize: ReferrerTokenState.layout.span + 8,\n },\n {\n memcmp: {\n offset: 8,\n bytes: referrer.toBase58(),\n },\n },\n ],\n });\n\n const referrerTokenStatesForMints = new PubkeyHashMap<PublicKey, ReferrerTokenState>();\n\n referrerTokenStates.forEach((referrerTokenState) => {\n if (referrerTokenState.account === null) {\n throw new Error('Invalid account');\n }\n if (!referrerTokenState.account.owner.equals(this.programId)) {\n throw new Error(\"account doesn't belong to this program\");\n }\n\n const referrerTokenStateDecoded = ReferrerTokenState.decode(referrerTokenState.account.data);\n\n if (!referrerTokenStateDecoded) {\n throw Error('Could not parse obligation.');\n }\n\n referrerTokenStatesForMints.set(referrerTokenStateDecoded.mint, referrerTokenStateDecoded);\n });\n\n return referrerTokenStatesForMints;\n }\n\n async getAllReferrerFeesUnclaimed(referrer: PublicKey) {\n const referrerTokenStatesForMints = await this.getAllReferrerTokenStates(referrer);\n\n const referrerFeesUnclaimedForMints = new PubkeyHashMap<PublicKey, Decimal>();\n\n for (const mint of referrerTokenStatesForMints.keys()) {\n referrerFeesUnclaimedForMints.set(\n mint,\n new Fraction(referrerTokenStatesForMints.get(mint)!.amountUnclaimedSf).toDecimal()\n );\n }\n\n return referrerFeesUnclaimedForMints;\n }\n\n async getReferrerFeesUnclaimedForReserve(referrer: PublicKey, reserve: KaminoReserve): Promise<Decimal> {\n const [, referrerTokenState] = await this.getReferrerTokenStateForReserve(referrer, reserve.address);\n return referrerTokenState ? new Fraction(referrerTokenState.amountUnclaimedSf).toDecimal() : new Decimal(0);\n }\n\n async getReferrerFeesCumulativeForReserve(referrer: PublicKey, reserve: KaminoReserve): Promise<Decimal> {\n const [, referrerTokenState] = await this.getReferrerTokenStateForReserve(referrer, reserve.address);\n return referrerTokenState ? new Fraction(referrerTokenState.amountCumulativeSf).toDecimal() : new Decimal(0);\n }\n\n async getAllReferrerFeesCumulative(referrer: PublicKey) {\n const referrerTokenStatesForMints = await this.getAllReferrerTokenStates(referrer);\n\n const referrerFeesCumulativeForMints = new PubkeyHashMap<PublicKey, Decimal>();\n\n for (const mint of referrerTokenStatesForMints.keys()) {\n referrerFeesCumulativeForMints.set(\n mint,\n new Fraction(referrerTokenStatesForMints.get(mint)!.amountUnclaimedSf).toDecimal()\n );\n }\n\n return referrerFeesCumulativeForMints;\n }\n\n async getReferrerUrl(baseUrl: string, referrer: PublicKey) {\n return baseUrl + this.encodeReferrer(referrer);\n }\n\n async getReferrerFromUrl(baseUrl: string, url: string) {\n return this.decodeReferrer(url.split(baseUrl)[1]);\n }\n\n async encodeReferrer(referrer: PublicKey) {\n return bs58.encode(referrer.toBuffer());\n }\n\n async decodeReferrer(encoded_referrer: string) {\n const referrer_buffer = bs58.decode(encoded_referrer);\n return new PublicKey(referrer_buffer.toString());\n }\n\n /**\n * Get the underlying connection passed when instantiating this market\n * @return connection\n */\n getConnection() {\n return this.connection;\n }\n\n /**\n * Get all Scope prices used by all the market reserves\n */\n async getAllScopePrices(oraclePrices?: OraclePrices): Promise<KaminoPrices> {\n if (!oraclePrices) {\n oraclePrices = await this.scope.getOraclePrices();\n }\n const spot: MintToPriceMap = {};\n const twaps: MintToPriceMap = {};\n for (const reserve of this.reserves.values()) {\n const tokenMint = reserve.getLiquidityMint().toString();\n const tokenName = reserve.getTokenSymbol();\n const oracle = reserve.state.config.tokenInfo.scopeConfiguration.priceFeed;\n const chain = reserve.state.config.tokenInfo.scopeConfiguration.priceChain;\n const twapChain = reserve.state.config.tokenInfo.scopeConfiguration.twapChain.filter((x) => x > 0);\n if (oracle && isNotNullPubkey(oracle) && chain && Scope.isScopeChainValid(chain)) {\n const spotPrice = await this.scope.getPriceFromChain(chain, oraclePrices);\n spot[tokenMint] = { price: spotPrice.price, name: tokenName };\n }\n if (oracle && isNotNullPubkey(oracle) && twapChain && Scope.isScopeChainValid(twapChain)) {\n const twap = await this.scope.getPriceFromChain(twapChain, oraclePrices);\n twaps[tokenMint] = { price: twap.price, name: tokenName };\n }\n }\n return { spot, twap: twaps };\n }\n\n /**\n * Get all Scope/Pyth/Switchboard prices used by all the market reserves\n */\n async getAllPrices(): Promise<KlendPrices> {\n const klendPrices: KlendPrices = {\n scope: { spot: {}, twap: {} },\n pyth: { spot: {}, twap: {} },\n switchboard: { spot: {}, twap: {} },\n };\n const allOracleAccounts = await getAllOracleAccounts(\n this.connection,\n this.getReserves().map((x) => x.state)\n );\n const pythCache = new PubkeyHashMap<PublicKey, PythPrices>();\n const switchboardCache = new PubkeyHashMap<PublicKey, CandidatePrice>();\n const scopeCache = new PubkeyHashMap<PublicKey, OraclePrices>();\n\n const switchboardV2 = await SwitchboardProgram.loadMainnet(this.connection);\n\n for (const reserve of this.reserves.values()) {\n const tokenMint = reserve.getLiquidityMint().toString();\n const tokenName = reserve.getTokenSymbol();\n const scopeOracle = reserve.state.config.tokenInfo.scopeConfiguration.priceFeed;\n const spotChain = reserve.state.config.tokenInfo.scopeConfiguration.priceChain;\n const twapChain = reserve.state.config.tokenInfo.scopeConfiguration.twapChain.filter((x) => x > 0);\n const pythOracle = reserve.state.config.tokenInfo.pythConfiguration.price;\n const switchboardSpotOracle = reserve.state.config.tokenInfo.switchboardConfiguration.priceAggregator;\n const switchboardTwapOracle = reserve.state.config.tokenInfo.switchboardConfiguration.twapAggregator;\n\n if (isNotNullPubkey(scopeOracle)) {\n const scopePrices = {\n spot: cacheOrGetScopePrice(scopeOracle, scopeCache, allOracleAccounts, spotChain),\n twap: cacheOrGetScopePrice(scopeOracle, scopeCache, allOracleAccounts, twapChain),\n };\n this.setPriceIfExist(klendPrices.scope, scopePrices.spot, scopePrices.twap, tokenMint, tokenName);\n }\n if (isNotNullPubkey(pythOracle)) {\n const pythPrices = cacheOrGetPythPrices(pythOracle, pythCache, allOracleAccounts);\n this.setPriceIfExist(klendPrices.pyth, pythPrices?.spot, pythPrices?.twap, tokenMint, tokenName);\n }\n if (isNotNullPubkey(switchboardSpotOracle)) {\n const switchboardPrices = {\n spot: cacheOrGetSwitchboardPrice(switchboardSpotOracle, switchboardCache, allOracleAccounts, switchboardV2),\n twap: isNotNullPubkey(switchboardTwapOracle)\n ? cacheOrGetSwitchboardPrice(switchboardTwapOracle, switchboardCache, allOracleAccounts, switchboardV2)\n : null,\n };\n this.setPriceIfExist(\n klendPrices.switchboard,\n switchboardPrices.spot,\n switchboardPrices.twap,\n tokenMint,\n tokenName\n );\n }\n }\n return klendPrices;\n }\n\n getCumulativeBorrowRatesByReserve(slot: number): Map<PublicKey, Decimal> {\n const cumulativeBorrowRates = new PubkeyHashMap<PublicKey, Decimal>();\n for (const reserve of this.reserves.values()) {\n cumulativeBorrowRates.set(\n reserve.address,\n reserve.getEstimatedCumulativeBorrowRate(slot, this.state.referralFeeBps)\n );\n }\n return cumulativeBorrowRates;\n }\n\n getCollateralExchangeRatesByReserve(slot: number): Map<PublicKey, Decimal> {\n const collateralExchangeRates = new PubkeyHashMap<PublicKey, Decimal>();\n for (const reserve of this.reserves.values()) {\n collateralExchangeRates.set(\n reserve.address,\n reserve.getEstimatedCollateralExchangeRate(slot, this.state.referralFeeBps)\n );\n }\n return collateralExchangeRates;\n }\n\n private setPriceIfExist(\n prices: KaminoPrices,\n spot: CandidatePrice | null | undefined,\n twap: CandidatePrice | null | undefined,\n mint: string,\n tokenName: string\n ) {\n if (spot) {\n prices.spot[mint] = { price: spot.price, name: tokenName };\n }\n if (twap) {\n prices.twap[mint] = { price: twap.price, name: tokenName };\n }\n }\n\n getRecentSlotDurationMs(): number {\n return this.recentSlotDurationMs;\n }\n\n /* Returns all elevation groups except the default one */\n getMarketElevationGroupDescriptions(): ElevationGroupDescription[] {\n const elevationGroups: ElevationGroupDescription[] = [];\n\n // Partially build\n for (const elevationGroup of this.state.elevationGroups) {\n if (elevationGroup.id === 0) {\n continue;\n }\n elevationGroups.push({\n collateralReserves: [],\n collateralLiquidityMints: [],\n debtReserve: elevationGroup.debtReserve.toString(),\n debtLiquidityMint: '',\n elevationGroup: elevationGroup.id,\n });\n }\n\n // Fill the remaining\n for (const reserve of this.reserves.values()) {\n const reserveLiquidityMint = reserve.getLiquidityMint();\n const reserveAddress = reserve.address.toString();\n const reserveElevationGroups = reserve.state.config.elevationGroups;\n for (const elevationGroupId of reserveElevationGroups) {\n if (elevationGroupId === 0) {\n continue;\n }\n\n const elevationGroupDescription = elevationGroups[elevationGroupId - 1];\n if (elevationGroupDescription) {\n if (reserveAddress === elevationGroupDescription.debtReserve) {\n elevationGroups[elevationGroupId - 1].debtLiquidityMint = reserveLiquidityMint.toString();\n } else {\n elevationGroups[elevationGroupId - 1].collateralReserves.push(reserveAddress);\n elevationGroups[elevationGroupId - 1].collateralLiquidityMints.push(reserveLiquidityMint.toString());\n }\n } else {\n throw new Error(`Invalid elevation group id ${elevationGroupId} at reserve ${reserveAddress}`);\n }\n }\n }\n\n return elevationGroups;\n }\n\n /* Returns all elevation groups for a given combination of liquidity mints, except the default one */\n getElevationGroupsForMintsCombination(\n collLiquidityMints: PublicKey[],\n debtLiquidityMint?: PublicKey\n ): ElevationGroupDescription[] {\n const allElevationGroups = this.getMarketElevationGroupDescriptions();\n\n return allElevationGroups.filter((elevationGroupDescription) => {\n return (\n collLiquidityMints.every((mint) =>\n elevationGroupDescription.collateralLiquidityMints.includes(mint.toString())\n ) &&\n (debtLiquidityMint == undefined || debtLiquidityMint.toString() === elevationGroupDescription.debtLiquidityMint)\n );\n });\n }\n\n /* Returns all elevation groups for a given combination of reserves, except the default one */\n getElevationGroupsForReservesCombination(\n collReserves: PublicKey[],\n debtReserve?: PublicKey\n ): ElevationGroupDescription[] {\n const allElevationGroups = this.getMarketElevationGroupDescriptions();\n\n return allElevationGroups.filter((elevationGroupDescription) => {\n return (\n collReserves.every((mint) => elevationGroupDescription.collateralReserves.includes(mint.toString())) &&\n (debtReserve == undefined || debtReserve.toString() === elevationGroupDescription.debtReserve)\n );\n });\n }\n}\n\nexport type BorrowCapsAndCounters = {\n // Utilization cap\n utilizationCap: Decimal;\n utilizationCurrentValue: Decimal;\n\n // Daily borrow cap\n netWithdrawalCap: Decimal;\n netWithdrawalCurrentValue: Decimal;\n netWithdrawalLastUpdateTs: Decimal;\n netWithdrawalIntervalDurationSeconds: Decimal;\n\n // Global cap\n globalDebtCap: Decimal;\n globalTotalBorrowed: Decimal;\n\n // Debt outside emode cap\n debtOutsideEmodeCap: Decimal;\n borrowedOutsideEmode: Decimal;\n\n // Debt against collateral caps\n debtAgainstCollateralReserveCaps: {\n collateralReserve: PublicKey;\n elevationGroup: number;\n maxDebt: Decimal;\n currentValue: Decimal;\n }[];\n};\n\nexport type ElevationGroupDescription = {\n collateralReserves: string[];\n collateralLiquidityMints: string[];\n debtReserve: string;\n debtLiquidityMint: string;\n elevationGroup: number;\n};\n\nexport type KlendPrices = {\n scope: KaminoPrices;\n pyth: KaminoPrices;\n switchboard: KaminoPrices;\n};\n\nexport async function getReservesForMarket(\n marketAddress: PublicKey,\n connection: Connection,\n programId: PublicKey,\n recentSlotDurationMs: number\n): Promise<Map<PublicKey, KaminoReserve>> {\n const reserves = await connection.getProgramAccounts(programId, {\n filters: [\n {\n dataSize: Reserve.layout.span + 8,\n },\n {\n memcmp: {\n offset: 32,\n bytes: marketAddress.toBase58(),\n },\n },\n ],\n });\n const deserializedReserves = reserves.map((reserve) => {\n if (reserve.account === null) {\n throw new Error(`Reserve account ${reserve.pubkey.toBase58()} does not exist`);\n }\n\n const reserveAccount = Reserve.decode(reserve.account.data);\n\n if (!reserveAccount) {\n throw Error(`Could not parse reserve ${reserve.pubkey.toBase58()}`);\n }\n return reserveAccount;\n });\n const allBuffers = reserves.map((reserve) => reserve.account);\n const reservesAndOracles = await getTokenOracleData(connection, deserializedReserves);\n const reservesByAddress = new PubkeyHashMap<PublicKey, KaminoReserve>();\n reservesAndOracles.forEach(([reserve, oracle], index) => {\n if (!oracle) {\n throw Error(`Could not find oracle for ${parseTokenSymbol(reserve.config.tokenInfo.name)} reserve`);\n }\n const kaminoReserve = KaminoReserve.initialize(\n allBuffers[index],\n reserves[index].pubkey,\n reserve,\n oracle,\n connection,\n recentSlotDurationMs\n );\n reservesByAddress.set(kaminoReserve.address, kaminoReserve);\n });\n return reservesByAddress;\n}\n\nexport async function getSingleReserve(\n reservePk: PublicKey,\n connection: Connection,\n recentSlotDurationMs: number,\n accountData?: AccountInfo<Buffer>\n): Promise<KaminoReserve> {\n const reserve = accountData ? accountData : await connection.getAccountInfo(reservePk);\n\n if (reserve === null) {\n throw new Error(`Reserve account ${reservePk.toBase58()} does not exist`);\n }\n\n const reserveAccount = Reserve.decode(reserve.data);\n\n if (!reserveAccount) {\n throw Error(`Could not parse reserve ${reservePk.toBase58()}`);\n }\n\n const reservesAndOracles = await getTokenOracleData(connection, [reserveAccount]);\n const [reserveState, oracle] = reservesAndOracles[0];\n\n if (!oracle) {\n throw Error(`Could not find oracle for ${parseTokenSymbol(reserveState.config.tokenInfo.name)} reserve`);\n }\n const kaminoReserve = KaminoReserve.initialize(\n reserve,\n reservePk,\n reserveState,\n oracle,\n connection,\n recentSlotDurationMs\n );\n\n return kaminoReserve;\n}\n\nexport function getReservesActive(reserves: Map<PublicKey, KaminoReserve>): Map<PublicKey, KaminoReserve> {\n const reservesActive = new PubkeyHashMap<PublicKey, KaminoReserve>();\n for (const [key, reserve] of reserves) {\n if (reserve.state.config.status === 0) {\n reservesActive.set(key, reserve);\n }\n }\n return reservesActive;\n}\n\nexport async function getReserveFromMintAndMarket(\n connection: Connection,\n market: KaminoMarket,\n mint: string,\n programId: PublicKey = PROGRAM_ID\n): Promise<[PublicKey, AccountInfo<Buffer>]> {\n const reserve = (\n await connection.getProgramAccounts(programId, {\n filters: [\n {\n dataSize: Reserve.layout.span + 8,\n },\n {\n memcmp: {\n offset: 32,\n bytes: market.address,\n },\n },\n {\n memcmp: {\n offset: 128,\n bytes: mint,\n },\n },\n ],\n })\n )[0];\n\n if (reserve.account === null) {\n throw new Error('Invalid account');\n }\n if (!reserve.account.owner.equals(programId)) {\n throw new Error(\"Account doesn't belong to this program\");\n }\n\n return [reserve.pubkey, reserve.account];\n}\n\nconst lamportsToNumberDecimal = (amount: Decimal.Value, decimals: number): Decimal => {\n const factor = 10 ** decimals;\n return new Decimal(amount).div(factor);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/classes/market.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obligation.d.ts","sourceRoot":"","sources":["../../src/classes/obligation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,EACL,oBAAoB,EAEpB,mBAAmB,EAEpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAmB,aAAa,EAAW,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,MAAM,QAAQ,GAAG;IACrB,cAAc,EAAE,SAAS,CAAC;IAC1B,WAAW,EAAE,SAAS,CAAC;IACvB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,mCAAmC,EAAE,OAAO,CAAC;IAC7C,WAAW,EAAE,OAAO,CAAC;IACrB,sBAAsB,EAAE,OAAO,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,6BAA6B,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF,UAAU,WAAW;IACnB,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,mCAAmC,EAAE,OAAO,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,YAAY;IACpB,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0BAA0B,EAAE,OAAO,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,gBAAgB;IAC3B,iBAAiB,EAAE,SAAS,CAAC;IAE7B,KAAK,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEnC;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAElC,cAAc,EAAE,eAAe,CAAC;IAEhC,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;gBAED,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,SAAS,EAC5B,UAAU,EAAE,UAAU,EACtB,uBAAuB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAChD,qBAAqB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;WAkBnC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;WA4BhG,OAAO,CAClB,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,SAAS,EAAE,EAChC,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC;IA2CvC;;OAEG;IACH,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC;IAI7B;;OAEG;IACH,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC;IAI9B;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;OAEG;IACH,sBAAsB,IAAI,OAAO;IAIjC;;OAEG;IACH,gCAAgC,IAAI,OAAO;IAI3C;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;;OAGG;IACH,uBAAuB,IAAI,OAAO;IAIlC;;;OAGG;IACH,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO;IAI7D,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS;IAI5D,mBAAmB,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS;IAI7D,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS;IAStD,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS;IASvD;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAI1D;;;OAGG;IACH,8BAA8B,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAIpE;;OAEG;IACH,WAAW,IAAI,OAAO;IAOtB;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,kBAAkB,CAAC,YAAY,EAAE,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;IAe7D,MAAM,CAAC,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAuBnF,qBAAqB,CACnB,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,SAAS,EACxB,uBAAuB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GAC/C,oBAAoB,EAAE;IAkBzB,oBAAoB,CAClB,iBAAiB,EAAE,mBAAmB,EAAE,EACxC,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,SAAS,GACvB,mBAAmB,EAAE;IAiBxB;;OAEG;IAEH,2BAA2B,CAAC,MAAM,EAAE;QAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,MAAM,EAAE,UAAU,CAAC;QACnB,cAAc,CAAC,EAAE,SAAS,CAAC;QAC3B,QAAQ,CAAC,EAAE,SAAS,CAAC;QACrB,MAAM,EAAE,YAAY,CAAC;QACrB,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACxC,IAAI,EAAE,MAAM,CAAC;QACb,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,GAAG;QACF,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACnC;IAsID,8BAA8B,WACpB,YAAY,WACX,aAAa,UACd,mBAAmB,eACd,MAAM,KAClB,OAAO,CAaR;IAEF,OAAO,CAAC,kBAAkB;WA4DZ,2BAA2B,CACvC,MAAM,EAAE,YAAY,EACpB,kBAAkB,EAAE,oBAAoB,EAAE,EAC1C,uBAAuB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,IAAI,EACvD,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,GACzC,YAAY;WA0DD,0BAA0B,CACtC,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,mBAAmB,EAAE,EACxC,qBAAqB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,IAAI,EACrD,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,GACzC,WAAW;IA+Dd,gCAAgC,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAkCrG,cAAc,CACZ,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,SAAS,EACxB,IAAI,EAAE,MAAM,EACZ,cAAc,GAAE,MAAkC,GACjD,OAAO;IA0EV,oBAAoB,CAClB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,SAAS,EACxB,IAAI,EAAE,MAAM,EACZ,cAAc,GAAE,MAAkC,GACjD,OAAO;IAyBV,+BAA+B,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO;IAqDpG,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,yBAAyB,EAAE;IAelF,kBAAkB,CAChB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,SAAS,EACxB,IAAI,EAAE,MAAM,EACZ,qBAAqB,EAAE,OAAO,GAC7B,OAAO;IAwHV,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAuDvF;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;IAI5D;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO;WAStD,qBAAqB,CACjC,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX;QACD,uBAAuB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,qBAAqB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KAChD;WAkBa,qBAAqB,CACjC,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,uBAAuB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAChD,qBAAqB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAC9C,IAAI,EAAE,MAAM,GACX,IAAI;IAKP,MAAM,CAAC,uCAAuC,CAC5C,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC;IAgB1B,MAAM,CAAC,uCAAuC,CAC5C,YAAY,EAAE,YAAY,EAC1B,uBAAuB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAChD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM;IAed,MAAM,CAAC,qCAAqC,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;IAa7G,MAAM,CAAC,qCAAqC,CAC1C,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,EAC9C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM;IAYd;;;;OAIG;WACW,yBAAyB,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO;IAShG;;;;;OAKG;WACW,gBAAgB,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,MAAM,GACrB;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE;CAiBhD"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -21,6 +12,18 @@ const types_1 = require("../idl_codegen/types");
|
|
|
21
12
|
const utils_1 = require("./utils");
|
|
22
13
|
const utils_2 = require("../utils");
|
|
23
14
|
class KaminoObligation {
|
|
15
|
+
obligationAddress;
|
|
16
|
+
state;
|
|
17
|
+
/**
|
|
18
|
+
* Deposits stored in a map of reserve address to position
|
|
19
|
+
*/
|
|
20
|
+
deposits;
|
|
21
|
+
/**
|
|
22
|
+
* Borrows stored in a map of reserve address to position
|
|
23
|
+
*/
|
|
24
|
+
borrows;
|
|
25
|
+
refreshedStats;
|
|
26
|
+
obligationTag;
|
|
24
27
|
/**
|
|
25
28
|
* Initialise a new Obligation from the deserialized state
|
|
26
29
|
* @param market
|
|
@@ -30,14 +33,6 @@ class KaminoObligation {
|
|
|
30
33
|
* @param cumulativeBorrowRates - rates from the market by reserve address, will be calculated if not provided
|
|
31
34
|
*/
|
|
32
35
|
constructor(market, obligationAddress, obligation, collateralExchangeRates, cumulativeBorrowRates) {
|
|
33
|
-
this.estimateObligationInterestRate = (market, reserve, borrow, currentSlot) => {
|
|
34
|
-
const estimatedCumulativeBorrowRate = reserve.getEstimatedCumulativeBorrowRate(currentSlot, market.state.referralFeeBps);
|
|
35
|
-
const currentCumulativeBorrowRate = KaminoObligation.getCumulativeBorrowRate(borrow);
|
|
36
|
-
if (estimatedCumulativeBorrowRate.gt(currentCumulativeBorrowRate)) {
|
|
37
|
-
return estimatedCumulativeBorrowRate.div(currentCumulativeBorrowRate);
|
|
38
|
-
}
|
|
39
|
-
return new decimal_js_1.default(0);
|
|
40
|
-
};
|
|
41
36
|
this.obligationAddress = obligationAddress;
|
|
42
37
|
this.state = obligation;
|
|
43
38
|
const { borrows, deposits, refreshedStats } = this.calculatePositions(market, obligation.deposits, obligation.borrows, obligation.elevationGroup, collateralExchangeRates, cumulativeBorrowRates);
|
|
@@ -46,50 +41,46 @@ class KaminoObligation {
|
|
|
46
41
|
this.refreshedStats = refreshedStats;
|
|
47
42
|
this.obligationTag = obligation.tag.toNumber();
|
|
48
43
|
}
|
|
49
|
-
static load(kaminoMarket, obligationAddress) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
44
|
+
static async load(kaminoMarket, obligationAddress) {
|
|
45
|
+
const res = await kaminoMarket.getConnection().getAccountInfoAndContext(obligationAddress);
|
|
46
|
+
if (res.value === null) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const accInfo = res.value;
|
|
50
|
+
if (!accInfo.owner.equals(kaminoMarket.programId)) {
|
|
51
|
+
throw new Error("account doesn't belong to this program");
|
|
52
|
+
}
|
|
53
|
+
const obligation = accounts_1.Obligation.decode(accInfo.data);
|
|
54
|
+
if (obligation === null) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const { collateralExchangeRates, cumulativeBorrowRates } = KaminoObligation.getRatesForObligation(kaminoMarket, obligation, res.context.slot);
|
|
58
|
+
return new KaminoObligation(kaminoMarket, obligationAddress, obligation, collateralExchangeRates, cumulativeBorrowRates);
|
|
59
|
+
}
|
|
60
|
+
static async loadAll(kaminoMarket, obligationAddresses, slot) {
|
|
61
|
+
let currentSlot = slot;
|
|
62
|
+
let obligations;
|
|
63
|
+
if (!currentSlot) {
|
|
64
|
+
[currentSlot, obligations] = await Promise.all([
|
|
65
|
+
kaminoMarket.getConnection().getSlot(),
|
|
66
|
+
accounts_1.Obligation.fetchMultiple(kaminoMarket.getConnection(), obligationAddresses, kaminoMarket.programId),
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
obligations = await accounts_1.Obligation.fetchMultiple(kaminoMarket.getConnection(), obligationAddresses, kaminoMarket.programId);
|
|
71
|
+
}
|
|
72
|
+
const cumulativeBorrowRates = new utils_2.PubkeyHashMap();
|
|
73
|
+
const collateralExchangeRates = new utils_2.PubkeyHashMap();
|
|
74
|
+
for (const obligation of obligations) {
|
|
75
|
+
if (obligation !== null) {
|
|
76
|
+
KaminoObligation.addRatesForObligation(kaminoMarket, obligation, collateralExchangeRates, cumulativeBorrowRates, currentSlot);
|
|
58
77
|
}
|
|
59
|
-
|
|
78
|
+
}
|
|
79
|
+
return obligations.map((obligation, i) => {
|
|
60
80
|
if (obligation === null) {
|
|
61
81
|
return null;
|
|
62
82
|
}
|
|
63
|
-
|
|
64
|
-
return new KaminoObligation(kaminoMarket, obligationAddress, obligation, collateralExchangeRates, cumulativeBorrowRates);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
static loadAll(kaminoMarket, obligationAddresses, slot) {
|
|
68
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
let currentSlot = slot;
|
|
70
|
-
let obligations;
|
|
71
|
-
if (!currentSlot) {
|
|
72
|
-
[currentSlot, obligations] = yield Promise.all([
|
|
73
|
-
kaminoMarket.getConnection().getSlot(),
|
|
74
|
-
accounts_1.Obligation.fetchMultiple(kaminoMarket.getConnection(), obligationAddresses, kaminoMarket.programId),
|
|
75
|
-
]);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
obligations = yield accounts_1.Obligation.fetchMultiple(kaminoMarket.getConnection(), obligationAddresses, kaminoMarket.programId);
|
|
79
|
-
}
|
|
80
|
-
const cumulativeBorrowRates = new utils_2.PubkeyHashMap();
|
|
81
|
-
const collateralExchangeRates = new utils_2.PubkeyHashMap();
|
|
82
|
-
for (const obligation of obligations) {
|
|
83
|
-
if (obligation !== null) {
|
|
84
|
-
KaminoObligation.addRatesForObligation(kaminoMarket, obligation, collateralExchangeRates, cumulativeBorrowRates, currentSlot);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return obligations.map((obligation, i) => {
|
|
88
|
-
if (obligation === null) {
|
|
89
|
-
return null;
|
|
90
|
-
}
|
|
91
|
-
return new KaminoObligation(kaminoMarket, obligationAddresses[i], obligation, collateralExchangeRates, cumulativeBorrowRates);
|
|
92
|
-
});
|
|
83
|
+
return new KaminoObligation(kaminoMarket, obligationAddresses[i], obligation, collateralExchangeRates, cumulativeBorrowRates);
|
|
93
84
|
});
|
|
94
85
|
}
|
|
95
86
|
/**
|
|
@@ -240,7 +231,7 @@ class KaminoObligation {
|
|
|
240
231
|
const newDeposits = [];
|
|
241
232
|
for (let i = 0; i < obligationDeposits.length; i++) {
|
|
242
233
|
if (obligationDeposits[i].depositReserve.equals(changeReserve)) {
|
|
243
|
-
const coll =
|
|
234
|
+
const coll = { ...obligationDeposits[i] };
|
|
244
235
|
const exchangeRate = collateralExchangeRates.get(changeReserve);
|
|
245
236
|
const changeInCollateral = new decimal_js_1.default(changeInLamports).mul(exchangeRate);
|
|
246
237
|
const updatedDeposit = new decimal_js_1.default(obligationDeposits[i].depositedAmount.toNumber()).add(changeInCollateral);
|
|
@@ -257,7 +248,7 @@ class KaminoObligation {
|
|
|
257
248
|
const newBorrows = [];
|
|
258
249
|
for (let i = 0; i < obligationBorrows.length; i++) {
|
|
259
250
|
if (obligationBorrows[i].borrowReserve.equals(changeReserve)) {
|
|
260
|
-
const borrow =
|
|
251
|
+
const borrow = { ...obligationBorrows[i] };
|
|
261
252
|
const newBorrowedAmount = new fraction_1.Fraction(borrow.borrowedAmountSf).toDecimal().add(changeInLamports);
|
|
262
253
|
const newBorrowedAmountSf = fraction_1.Fraction.fromDecimal((0, utils_1.positiveOrZero)(newBorrowedAmount)).getValue();
|
|
263
254
|
borrow.borrowedAmountSf = newBorrowedAmountSf;
|
|
@@ -274,11 +265,10 @@ class KaminoObligation {
|
|
|
274
265
|
*/
|
|
275
266
|
// TODO: Shall we set up position limits?
|
|
276
267
|
getSimulatedObligationStats(params) {
|
|
277
|
-
var _a;
|
|
278
268
|
const { amountCollateral, amountDebt, action, mintCollateral, mintDebt, market } = params;
|
|
279
|
-
let newStats =
|
|
269
|
+
let newStats = { ...this.refreshedStats };
|
|
280
270
|
const { collateralExchangeRates, cumulativeBorrowRates } = KaminoObligation.getRatesForObligation(market, this.state, params.slot);
|
|
281
|
-
const elevationGroup =
|
|
271
|
+
const elevationGroup = params.elevationGroupOverride ?? this.state.elevationGroup;
|
|
282
272
|
let newDeposits = new utils_2.PubkeyHashMap([...this.deposits.entries()]);
|
|
283
273
|
let newBorrows = new utils_2.PubkeyHashMap([...this.borrows.entries()]);
|
|
284
274
|
// Any action can impact both deposit stats and borrow stats if elevation group is changed
|
|
@@ -356,6 +346,14 @@ class KaminoObligation {
|
|
|
356
346
|
borrows: newBorrows,
|
|
357
347
|
};
|
|
358
348
|
}
|
|
349
|
+
estimateObligationInterestRate = (market, reserve, borrow, currentSlot) => {
|
|
350
|
+
const estimatedCumulativeBorrowRate = reserve.getEstimatedCumulativeBorrowRate(currentSlot, market.state.referralFeeBps);
|
|
351
|
+
const currentCumulativeBorrowRate = KaminoObligation.getCumulativeBorrowRate(borrow);
|
|
352
|
+
if (estimatedCumulativeBorrowRate.gt(currentCumulativeBorrowRate)) {
|
|
353
|
+
return estimatedCumulativeBorrowRate.div(currentCumulativeBorrowRate);
|
|
354
|
+
}
|
|
355
|
+
return new decimal_js_1.default(0);
|
|
356
|
+
};
|
|
359
357
|
calculatePositions(market, obligationDeposits, obligationBorrows, elevationGroup, collateralExchangeRates, cumulativeBorrowRates) {
|
|
360
358
|
const getOraclePx = (reserve) => reserve.getOracleMarketPrice();
|
|
361
359
|
const depositStatsOraclePrice = KaminoObligation.calculateObligationDeposits(market, obligationDeposits, collateralExchangeRates, elevationGroup, getOraclePx);
|