@kamino-finance/klend-sdk 3.2.25 → 4.0.0
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 +1130 -1186
- 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 +131 -158
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/market.d.ts +1 -0
- package/dist/classes/market.d.ts.map +1 -0
- package/dist/classes/market.js +620 -714
- 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 +135 -138
- package/dist/classes/reserve.js.map +1 -1
- package/dist/classes/shared.d.ts +1 -0
- 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 +31 -2
- package/dist/utils/managerTypes.js.map +1 -1
- package/dist/utils/oracle.d.ts +1 -0
- package/dist/utils/oracle.d.ts.map +1 -0
- package/dist/utils/oracle.js +70 -83
- 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 +40 -52
- package/dist/utils/userMetadata.js.map +1 -1
- package/package.json +9 -3
- 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 +338 -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,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
|
};
|
|
@@ -60,7 +51,7 @@ const depositLeverageCalcs = (props) => {
|
|
|
60
51
|
}
|
|
61
52
|
};
|
|
62
53
|
exports.depositLeverageCalcs = depositLeverageCalcs;
|
|
63
|
-
const depositLeverageKtokenCalcs = (props) =>
|
|
54
|
+
const depositLeverageKtokenCalcs = async (props) => {
|
|
64
55
|
const { kamino, strategy, debtTokenMint, depositAmount, depositTokenIsCollToken, depositTokenIsSol, priceDebtToColl, targetLeverage, slippagePct, flashLoanFee, priceAinB, strategyHoldings, } = props;
|
|
65
56
|
const initDepositInSol = depositTokenIsSol ? depositAmount : new decimal_js_1.default(0);
|
|
66
57
|
const slippage = slippagePct.div('100');
|
|
@@ -93,8 +84,8 @@ const depositLeverageKtokenCalcs = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
93
84
|
// Calculate how many A and B tokens we will need to actually mint the desired amount of ktoken collateral
|
|
94
85
|
// The actual amount of ktokens received may be less than the finalColl due to smart proportional contract logic
|
|
95
86
|
// So we use the actualColl as the amount we will deposit
|
|
96
|
-
const [estimatedA, estimatedB, actualColl] =
|
|
97
|
-
const pxAinB =
|
|
87
|
+
const [estimatedA, estimatedB, actualColl] = await (0, calcs_1.simulateMintKToken)(kamino, strategy, finalColl, strategyHoldings);
|
|
88
|
+
const pxAinB = await priceAinB(strategy.strategy.tokenAMint, strategy.strategy.tokenBMint);
|
|
98
89
|
const isTokenADeposit = strategy.strategy.tokenAMint.equals(debtTokenMint);
|
|
99
90
|
// Calculate the amount we need to flash borrow by combining value of A and B into the debt token
|
|
100
91
|
const singleSidedDepositAmount = isTokenADeposit
|
|
@@ -120,7 +111,7 @@ const depositLeverageKtokenCalcs = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
120
111
|
singleSidedDeposit,
|
|
121
112
|
};
|
|
122
113
|
}
|
|
123
|
-
}
|
|
114
|
+
};
|
|
124
115
|
exports.depositLeverageKtokenCalcs = depositLeverageKtokenCalcs;
|
|
125
116
|
const getDepositWithLeverageSwapInputs = (props) => {
|
|
126
117
|
const { depositAmount, priceDebtToColl, slippagePct, targetLeverage, kaminoMarket, selectedTokenMint, debtTokenMint, collTokenMint, } = props;
|
|
@@ -128,7 +119,7 @@ const getDepositWithLeverageSwapInputs = (props) => {
|
|
|
128
119
|
const selectedTokenIsCollToken = selectedTokenMint.equals(collTokenMint);
|
|
129
120
|
const solTokenReserve = kaminoMarket.getReserveByMint(utils_1.WRAPPED_SOL_MINT);
|
|
130
121
|
const depositTokenIsSol = !solTokenReserve ? false : selectedTokenMint.equals(solTokenReserve.getLiquidityMint());
|
|
131
|
-
const flashLoanFee =
|
|
122
|
+
const flashLoanFee = debtReserve?.getFlashLoanFee() || new decimal_js_1.default(0);
|
|
132
123
|
const calcs = (0, exports.depositLeverageCalcs)({
|
|
133
124
|
depositAmount,
|
|
134
125
|
depositTokenIsCollToken: selectedTokenIsCollToken,
|
|
@@ -149,7 +140,7 @@ const getDepositWithLeverageSwapInputs = (props) => {
|
|
|
149
140
|
};
|
|
150
141
|
};
|
|
151
142
|
exports.getDepositWithLeverageSwapInputs = getDepositWithLeverageSwapInputs;
|
|
152
|
-
const getDepositWithLeverageIxns = (props) =>
|
|
143
|
+
const getDepositWithLeverageIxns = async (props) => {
|
|
153
144
|
const { connection, budgetAndPriorityFeeIxns, user, amount, selectedTokenMint, collTokenMint, debtTokenMint, targetLeverage, kaminoMarket, slippagePct, priceDebtToColl, swapper, referrer, isKtoken, priceAinB, kamino, obligationTypeTagOverride = 1, obligation, currentSlot, getTotalKlendAccountsOnly, scopeFeed, } = props;
|
|
154
145
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
155
146
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
@@ -157,8 +148,8 @@ const getDepositWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
157
148
|
const flashLoanFee = collReserve.getFlashLoanFee() || new decimal_js_1.default(0);
|
|
158
149
|
const selectedTokenIsCollToken = selectedTokenMint.equals(collTokenMint);
|
|
159
150
|
const depositTokenIsSol = !solTokenReserve ? false : selectedTokenMint.equals(solTokenReserve.getLiquidityMint());
|
|
160
|
-
const collIsKtoken =
|
|
161
|
-
const strategy = collIsKtoken ? (
|
|
151
|
+
const collIsKtoken = await isKtoken(collTokenMint);
|
|
152
|
+
const strategy = collIsKtoken ? (await kamino.getStrategyByKTokenMint(collTokenMint)) : undefined;
|
|
162
153
|
const calcs = (0, exports.depositLeverageCalcs)({
|
|
163
154
|
depositAmount: amount,
|
|
164
155
|
depositTokenIsCollToken: selectedTokenIsCollToken,
|
|
@@ -170,7 +161,7 @@ const getDepositWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
170
161
|
});
|
|
171
162
|
let calcsKtoken;
|
|
172
163
|
if (collIsKtoken) {
|
|
173
|
-
calcsKtoken =
|
|
164
|
+
calcsKtoken = await (0, exports.depositLeverageKtokenCalcs)({
|
|
174
165
|
kamino: kamino,
|
|
175
166
|
strategy: strategy,
|
|
176
167
|
debtTokenMint,
|
|
@@ -184,9 +175,9 @@ const getDepositWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
184
175
|
priceAinB,
|
|
185
176
|
});
|
|
186
177
|
// Rounding to exact number of decimals so this value is passed through in all calcs without rounding inconsistencies
|
|
187
|
-
calcsKtoken.flashBorrowInDebtToken = calcsKtoken.flashBorrowInDebtToken.toDecimalPlaces(debtReserve
|
|
188
|
-
calcsKtoken.debtTokenToBorrow = calcsKtoken.debtTokenToBorrow.toDecimalPlaces(debtReserve
|
|
189
|
-
calcsKtoken.singleSidedDeposit = calcsKtoken.singleSidedDeposit.toDecimalPlaces(debtReserve
|
|
178
|
+
calcsKtoken.flashBorrowInDebtToken = calcsKtoken.flashBorrowInDebtToken.toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
|
|
179
|
+
calcsKtoken.debtTokenToBorrow = calcsKtoken.debtTokenToBorrow.toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
|
|
180
|
+
calcsKtoken.singleSidedDeposit = calcsKtoken.singleSidedDeposit.toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
|
|
190
181
|
}
|
|
191
182
|
console.log('Ops Calcs', (0, calcs_1.toJson)(!collIsKtoken ? calcs : calcsKtoken));
|
|
192
183
|
console.log('Infos', (0, calcs_1.toJson)({
|
|
@@ -201,7 +192,7 @@ const getDepositWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
201
192
|
const secondTokenAta = strategy.strategy.tokenAMint.equals(debtTokenMint)
|
|
202
193
|
? strategy.strategy.tokenBMint
|
|
203
194
|
: strategy.strategy.tokenAMint;
|
|
204
|
-
const secondTokenTokenProgarm =
|
|
195
|
+
const secondTokenTokenProgarm = strategy?.strategy.tokenAMint.equals(debtTokenMint)
|
|
205
196
|
? strategy.strategy.tokenBTokenProgram.equals(web3_js_1.PublicKey.default)
|
|
206
197
|
? spl_token_1.TOKEN_PROGRAM_ID
|
|
207
198
|
: strategy.strategy.tokenBTokenProgram
|
|
@@ -225,7 +216,7 @@ const getDepositWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
225
216
|
];
|
|
226
217
|
}
|
|
227
218
|
const budgetIxns = budgetAndPriorityFeeIxns || (0, utils_1.getComputeBudgetAndPriorityFeeIxns)(3000000);
|
|
228
|
-
const { atas: [collTokenAta, debtTokenAta], createAtasIxns, closeAtasIxns, } =
|
|
219
|
+
const { atas: [collTokenAta, debtTokenAta], createAtasIxns, closeAtasIxns, } = await (0, utils_1.getAtasWithCreateIxnsIfMissing)(connection, user, mintsToCreateAtas, mintsToCreateAtasTokenPrograms);
|
|
229
220
|
// TODO: this needs to work the other way around also
|
|
230
221
|
// TODO: marius test this with shorting leverage and with leverage looping
|
|
231
222
|
const fillWsolAtaIxns = [];
|
|
@@ -263,7 +254,7 @@ const getDepositWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
263
254
|
throw Error('Obligation type tag not supported for leverage, please use 1 - multiply or 3 - leverage');
|
|
264
255
|
}
|
|
265
256
|
const scopeRefresh = scopeFeed ? { includeScopeRefresh: true, scopeFeed: scopeFeed } : undefined;
|
|
266
|
-
const kaminoDepositAndBorrowAction =
|
|
257
|
+
const kaminoDepositAndBorrowAction = await classes_1.KaminoAction.buildDepositAndBorrowTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(!collIsKtoken ? calcs.collTokenToDeposit : calcsKtoken.collTokenToDeposit, collReserve.stats.decimals)
|
|
267
258
|
.floor()
|
|
268
259
|
.toString(), collTokenMint, (0, classes_2.numberToLamportsDecimal)(!collIsKtoken ? calcs.debtTokenToBorrow : calcsKtoken.debtTokenToBorrow, debtReserve.stats.decimals)
|
|
269
260
|
.ceil()
|
|
@@ -309,13 +300,13 @@ const getDepositWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
309
300
|
if (kamino === undefined) {
|
|
310
301
|
throw Error('Ktoken use as collateral for leverage without Kamino instance');
|
|
311
302
|
}
|
|
312
|
-
depositSwapper =
|
|
303
|
+
depositSwapper = await (0, utils_2.getTokenToKtokenSwapper)(connection, kaminoMarket, kamino, user, swapper, priceAinB, false);
|
|
313
304
|
let futureBalanceInAta = new decimal_js_1.default(0);
|
|
314
305
|
if (debtTokenMint.equals(utils_1.WRAPPED_SOL_MINT)) {
|
|
315
306
|
futureBalanceInAta = futureBalanceInAta.add(!collIsKtoken ? calcs.initDepositInSol : calcsKtoken.initDepositInSol);
|
|
316
307
|
}
|
|
317
308
|
futureBalanceInAta = futureBalanceInAta.add(!collIsKtoken ? calcs.debtTokenToBorrow : calcsKtoken.flashBorrowInDebtToken);
|
|
318
|
-
expectedDebtTokenAtaBalance =
|
|
309
|
+
expectedDebtTokenAtaBalance = await (0, utils_2.getExpectedTokenBalanceAfterBorrow)(connection, debtTokenMint, user, (0, classes_2.numberToLamportsDecimal)(futureBalanceInAta.toDecimalPlaces(debtReserve.stats.decimals), debtReserve.stats.decimals), debtReserve.state.liquidity.mintDecimals.toNumber());
|
|
319
310
|
}
|
|
320
311
|
const swapInputs = {
|
|
321
312
|
inputAmountLamports: (0, classes_2.numberToLamportsDecimal)(!collIsKtoken ? calcs.swapDebtTokenIn : calcsKtoken.singleSidedDeposit, debtReserve.stats.decimals)
|
|
@@ -324,10 +315,10 @@ const getDepositWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
324
315
|
inputMint: debtTokenMint,
|
|
325
316
|
outputMint: collTokenMint,
|
|
326
317
|
};
|
|
327
|
-
const [swapIxns, lookupTablesAddresses] =
|
|
318
|
+
const [swapIxns, lookupTablesAddresses] = await depositSwapper(swapInputs.inputAmountLamports, swapInputs.inputMint, swapInputs.outputMint, slippagePct.toNumber(), expectedDebtTokenAtaBalance);
|
|
328
319
|
if (collIsKtoken) {
|
|
329
|
-
if (strategy
|
|
330
|
-
lookupTablesAddresses.push(strategy
|
|
320
|
+
if (strategy?.strategy.strategyLookupTable) {
|
|
321
|
+
lookupTablesAddresses.push(strategy?.strategy.strategyLookupTable);
|
|
331
322
|
}
|
|
332
323
|
else {
|
|
333
324
|
console.log('Strategy lookup table not found');
|
|
@@ -376,13 +367,13 @@ const getDepositWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
376
367
|
totalKlendAccounts: totalKlendAccounts,
|
|
377
368
|
};
|
|
378
369
|
}
|
|
379
|
-
}
|
|
370
|
+
};
|
|
380
371
|
exports.getDepositWithLeverageIxns = getDepositWithLeverageIxns;
|
|
381
372
|
const getWithdrawWithLeverageSwapInputs = (props) => {
|
|
382
373
|
const { amount, deposited, borrowed, priceCollToDebt, slippagePct, isClosingPosition, kaminoMarket, selectedTokenMint, debtTokenMint, collTokenMint, userObligation, currentSlot, } = props;
|
|
383
374
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
384
375
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
385
|
-
const flashLoanFee =
|
|
376
|
+
const flashLoanFee = debtReserve?.getFlashLoanFee() || new decimal_js_1.default(0);
|
|
386
377
|
const selectedTokenIsCollToken = selectedTokenMint.equals(collTokenMint);
|
|
387
378
|
const { adjustDepositPosition: withdrawAmount, adjustBorrowPosition: initialRepayAmount } = isClosingPosition
|
|
388
379
|
? { adjustDepositPosition: deposited, adjustBorrowPosition: borrowed }
|
|
@@ -396,10 +387,10 @@ const getWithdrawWithLeverageSwapInputs = (props) => {
|
|
|
396
387
|
});
|
|
397
388
|
const irSlippageBpsForDebt = userObligation
|
|
398
389
|
.estimateObligationInterestRate(kaminoMarket, debtReserve, userObligation.state.borrows[0], currentSlot)
|
|
399
|
-
.toDecimalPlaces(debtReserve
|
|
390
|
+
.toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
|
|
400
391
|
const repayAmount = initialRepayAmount
|
|
401
392
|
.mul(irSlippageBpsForDebt.add('0.1').div('10_000').add('1'))
|
|
402
|
-
.toDecimalPlaces(debtReserve
|
|
393
|
+
.toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
|
|
403
394
|
const swapAmountIfWithdrawingColl = repayAmount
|
|
404
395
|
.mul(new decimal_js_1.default(1).plus(flashLoanFee))
|
|
405
396
|
.mul(new decimal_js_1.default(1 + slippagePct / 100))
|
|
@@ -417,12 +408,12 @@ const getWithdrawWithLeverageSwapInputs = (props) => {
|
|
|
417
408
|
};
|
|
418
409
|
};
|
|
419
410
|
exports.getWithdrawWithLeverageSwapInputs = getWithdrawWithLeverageSwapInputs;
|
|
420
|
-
const getWithdrawWithLeverageIxns = (props) =>
|
|
411
|
+
const getWithdrawWithLeverageIxns = async (props) => {
|
|
421
412
|
const { connection, budgetAndPriorityFeeIxns, user, amount, deposited, borrowed, collTokenMint, debtTokenMint, priceCollToDebt, selectedTokenMint, isClosingPosition, kaminoMarket, slippagePct, swapper, referrer, isKtoken, kamino, obligationTypeTagOverride, obligation, currentSlot, getTotalKlendAccountsOnly, scopeFeed, } = props;
|
|
422
413
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
423
414
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
424
|
-
const flashLoanFee =
|
|
425
|
-
const collIsKtoken =
|
|
415
|
+
const flashLoanFee = debtReserve?.getFlashLoanFee() || new decimal_js_1.default(0);
|
|
416
|
+
const collIsKtoken = await isKtoken(collTokenMint);
|
|
426
417
|
const solTokenReserve = kaminoMarket.getReserveByMint(utils_1.WRAPPED_SOL_MINT);
|
|
427
418
|
const selectedTokenIsCollToken = selectedTokenMint.equals(collTokenMint);
|
|
428
419
|
const depositTokenIsSol = !solTokenReserve ? false : selectedTokenMint.equals(solTokenReserve.getLiquidityMint());
|
|
@@ -456,14 +447,14 @@ const getWithdrawWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
456
447
|
// Add slippage for the accrued interest rate amount
|
|
457
448
|
const userObligation = obligation
|
|
458
449
|
? obligation
|
|
459
|
-
:
|
|
450
|
+
: await kaminoMarket.getObligationByAddress(obligationType.toPda(kaminoMarket.getAddress(), user));
|
|
460
451
|
const irSlippageBpsForDebt = userObligation
|
|
461
|
-
.estimateObligationInterestRate(kaminoMarket, debtReserve, userObligation
|
|
462
|
-
.toDecimalPlaces(debtReserve
|
|
452
|
+
.estimateObligationInterestRate(kaminoMarket, debtReserve, userObligation?.state.borrows[0], currentSlot)
|
|
453
|
+
.toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
|
|
463
454
|
// add 0.1 to irSlippageBpsForDebt because we don't want to estimate slightly less than SC and end up not reapying enough
|
|
464
455
|
const repayAmount = initialRepayAmount
|
|
465
456
|
.mul(irSlippageBpsForDebt.add('0.1').div('10_000').add('1'))
|
|
466
|
-
.toDecimalPlaces(debtReserve
|
|
457
|
+
.toDecimalPlaces(debtReserve?.state.liquidity.mintDecimals.toNumber(), decimal_js_1.default.ROUND_CEIL);
|
|
467
458
|
// 6. Get swap ixns
|
|
468
459
|
// 5. Get swap estimations to understand how much we need to borrow from borrow reserve
|
|
469
460
|
// prevent withdrawing more then deposited if we close position
|
|
@@ -481,7 +472,7 @@ const getWithdrawWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
481
472
|
const swapAmountIfWithdrawingDebt = withdrawAmount;
|
|
482
473
|
const collTokenSwapIn = selectedTokenIsCollToken ? swapAmountIfWithdrawingColl : swapAmountIfWithdrawingDebt;
|
|
483
474
|
const debtTokenExpectedSwapOut = collTokenSwapIn.mul(priceCollToDebt).div(new decimal_js_1.default(1 + slippagePct / 100));
|
|
484
|
-
const strategy = collIsKtoken ?
|
|
475
|
+
const strategy = collIsKtoken ? await kamino?.getStrategyByKTokenMint(collTokenMint) : undefined;
|
|
485
476
|
console.log('Expecting to swap', collTokenSwapIn.toString(), 'coll for', debtTokenExpectedSwapOut.toString(), 'debt');
|
|
486
477
|
// 1. Create atas & budget txns & user metadata
|
|
487
478
|
let mintsToCreateAtas = [];
|
|
@@ -490,7 +481,7 @@ const getWithdrawWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
490
481
|
const secondTokenAta = strategy.strategy.tokenAMint.equals(debtTokenMint)
|
|
491
482
|
? strategy.strategy.tokenBMint
|
|
492
483
|
: strategy.strategy.tokenAMint;
|
|
493
|
-
const secondTokenTokenProgarm =
|
|
484
|
+
const secondTokenTokenProgarm = strategy?.strategy.tokenAMint.equals(debtTokenMint)
|
|
494
485
|
? strategy.strategy.tokenBTokenProgram.equals(web3_js_1.PublicKey.default)
|
|
495
486
|
? spl_token_1.TOKEN_PROGRAM_ID
|
|
496
487
|
: strategy.strategy.tokenBTokenProgram
|
|
@@ -513,7 +504,7 @@ const getWithdrawWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
513
504
|
spl_token_1.TOKEN_PROGRAM_ID,
|
|
514
505
|
];
|
|
515
506
|
}
|
|
516
|
-
const { atas: [, debtTokenAta], createAtasIxns, closeAtasIxns, } =
|
|
507
|
+
const { atas: [, debtTokenAta], createAtasIxns, closeAtasIxns, } = await (0, utils_1.getAtasWithCreateIxnsIfMissing)(connection, user, mintsToCreateAtas, mintsToCreateAtasTokenPrograms);
|
|
517
508
|
const closeWsolAtaIxns = [];
|
|
518
509
|
if (depositTokenIsSol || debtTokenMint.equals(utils_1.WRAPPED_SOL_MINT)) {
|
|
519
510
|
const wsolAta = (0, utils_1.getAssociatedTokenAddress)(utils_1.WRAPPED_SOL_MINT, user, false);
|
|
@@ -525,7 +516,7 @@ const getWithdrawWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
525
516
|
// This is here so that we have enough wsol to repay in case the kAB swapped to sol after estimates is not enough
|
|
526
517
|
const fillWsolAtaIxns = [];
|
|
527
518
|
if (debtTokenMint.equals(utils_1.WRAPPED_SOL_MINT)) {
|
|
528
|
-
const halfSolBalance = (
|
|
519
|
+
const halfSolBalance = (await connection.getBalance(user)) / web3_js_1.LAMPORTS_PER_SOL / 2;
|
|
529
520
|
const balanceToWrap = halfSolBalance < 0.1 ? halfSolBalance : 0.1;
|
|
530
521
|
fillWsolAtaIxns.push(...(0, utils_1.getDepositWsolIxns)(user, debtTokenAta, (0, classes_2.numberToLamportsDecimal)(balanceToWrap, solTokenReserve.stats.decimals).ceil()));
|
|
531
522
|
}
|
|
@@ -545,7 +536,7 @@ const getWithdrawWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
545
536
|
programId: kaminoMarket.programId,
|
|
546
537
|
});
|
|
547
538
|
// 6. Repay borrowed tokens and Withdraw tokens from reserve that will be swapped to repay flash loan
|
|
548
|
-
const repayAndWithdrawAction =
|
|
539
|
+
const repayAndWithdrawAction = await classes_1.KaminoAction.buildRepayAndWithdrawTxns(kaminoMarket, isClosingPosition ? utils_1.U64_MAX : (0, classes_2.numberToLamportsDecimal)(repayAmount, debtReserve.stats.decimals).floor().toString(), debtTokenMint, isClosingPosition ? utils_1.U64_MAX : (0, classes_2.numberToLamportsDecimal)(depositTokenWithdrawAmount, collReserve.stats.decimals).ceil().toString(), collTokenMint, user, currentSlot, userObligation ? userObligation : obligationType, 0, false, false, false, // to be checked and created in a setup tx in the UI (won't be the case for withdraw anyway as this would be created in deposit)
|
|
549
540
|
isClosingPosition, referrer, { includeScopeRefresh: true, scopeFeed: scopeFeed });
|
|
550
541
|
const klendIxns = [
|
|
551
542
|
...budgetIxns,
|
|
@@ -581,7 +572,7 @@ const getWithdrawWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
581
572
|
if (kamino === undefined) {
|
|
582
573
|
throw Error('Ktoken use as collateral for leverage without Kamino instance');
|
|
583
574
|
}
|
|
584
|
-
withdrawSwapper =
|
|
575
|
+
withdrawSwapper = await (0, utils_2.getKtokenToTokenSwapper)(kaminoMarket, kamino, user, swapper);
|
|
585
576
|
}
|
|
586
577
|
else {
|
|
587
578
|
withdrawSwapper = swapper;
|
|
@@ -591,11 +582,11 @@ const getWithdrawWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
591
582
|
inputMint: collTokenMint,
|
|
592
583
|
outputMint: debtTokenMint,
|
|
593
584
|
};
|
|
594
|
-
const [swapIxns, lookupTablesAddresses] =
|
|
585
|
+
const [swapIxns, lookupTablesAddresses] = await withdrawSwapper(swapInputs.inputAmountLamports, swapInputs.inputMint, swapInputs.outputMint, slippagePct);
|
|
595
586
|
// TODO MARIUS: remove first instruction that is setBudget ixn
|
|
596
587
|
if (collIsKtoken) {
|
|
597
|
-
if (strategy
|
|
598
|
-
lookupTablesAddresses.push(strategy
|
|
588
|
+
if (strategy?.strategy.strategyLookupTable) {
|
|
589
|
+
lookupTablesAddresses.push(strategy?.strategy.strategyLookupTable);
|
|
599
590
|
}
|
|
600
591
|
else {
|
|
601
592
|
console.log('Strategy lookup table not found');
|
|
@@ -623,13 +614,13 @@ const getWithdrawWithLeverageIxns = (props) => __awaiter(void 0, void 0, void 0,
|
|
|
623
614
|
swapInputs,
|
|
624
615
|
totalKlendAccounts: totalKlendAccounts,
|
|
625
616
|
};
|
|
626
|
-
}
|
|
617
|
+
};
|
|
627
618
|
exports.getWithdrawWithLeverageIxns = getWithdrawWithLeverageIxns;
|
|
628
619
|
const getAdjustLeverageSwapInputs = (props) => {
|
|
629
620
|
const { deposited, borrowed, priceCollToDebt, priceDebtToColl, slippagePct, targetLeverage, kaminoMarket, debtTokenMint, collTokenMint, } = props;
|
|
630
621
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
631
622
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
632
|
-
const flashLoanFee =
|
|
623
|
+
const flashLoanFee = debtReserve?.getFlashLoanFee() || new decimal_js_1.default(0);
|
|
633
624
|
const { adjustDepositPosition, adjustBorrowPosition } = (0, calcs_1.calcAdjustAmounts)({
|
|
634
625
|
currentDepositPosition: deposited,
|
|
635
626
|
currentBorrowPosition: borrowed,
|
|
@@ -669,7 +660,7 @@ const getAdjustLeverageSwapInputs = (props) => {
|
|
|
669
660
|
}
|
|
670
661
|
};
|
|
671
662
|
exports.getAdjustLeverageSwapInputs = getAdjustLeverageSwapInputs;
|
|
672
|
-
const getAdjustLeverageIxns = (props) =>
|
|
663
|
+
const getAdjustLeverageIxns = async (props) => {
|
|
673
664
|
const { connection, budgetAndPriorityFeeIxns, user, kaminoMarket, priceDebtToColl, priceCollToDebt, targetLeverage, slippagePct, depositedLamports, borrowedLamports, collTokenMint, debtTokenMint, swapper, referrer, isKtoken, priceAinB, kamino, obligationTypeTagOverride, obligation, currentSlot, getTotalKlendAccountsOnly, scopeFeed, } = props;
|
|
674
665
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
675
666
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
@@ -677,7 +668,7 @@ const getAdjustLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, funct
|
|
|
677
668
|
const borrowed = (0, classes_1.lamportsToNumberDecimal)(borrowedLamports, debtReserve.stats.decimals);
|
|
678
669
|
const userObligation = obligation
|
|
679
670
|
? obligation
|
|
680
|
-
: (
|
|
671
|
+
: (await kaminoMarket.getUserObligationsByTag(obligationTypeTagOverride, user)).filter((obligation) => obligation.getBorrowByMint(debtReserve.getLiquidityMint()) !== undefined &&
|
|
681
672
|
obligation.getDepositByMint(collReserve.getLiquidityMint()) !== undefined)[0];
|
|
682
673
|
const currentLeverage = userObligation.refreshedStats.leverage;
|
|
683
674
|
const isDepositViaLeverage = targetLeverage.gte(new decimal_js_1.default(currentLeverage));
|
|
@@ -707,7 +698,7 @@ const getAdjustLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, funct
|
|
|
707
698
|
if (isDeposit) {
|
|
708
699
|
console.log('Increasing leaverage');
|
|
709
700
|
// TODO: marius why are we not using both adjustDepositPosition & adjustBorrowPosition
|
|
710
|
-
const res =
|
|
701
|
+
const res = await (0, exports.getIncreaseLeverageIxns)({
|
|
711
702
|
connection,
|
|
712
703
|
budgetAndPriorityFeeIxns,
|
|
713
704
|
user,
|
|
@@ -736,7 +727,7 @@ const getAdjustLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, funct
|
|
|
736
727
|
}
|
|
737
728
|
else {
|
|
738
729
|
console.log('Decreasing leverage');
|
|
739
|
-
const res =
|
|
730
|
+
const res = await (0, exports.getDecreaseLeverageIxns)({
|
|
740
731
|
connection,
|
|
741
732
|
budgetAndPriorityFeeIxns,
|
|
742
733
|
user,
|
|
@@ -767,22 +758,22 @@ const getAdjustLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, funct
|
|
|
767
758
|
swapInputs,
|
|
768
759
|
totalKlendAccounts,
|
|
769
760
|
};
|
|
770
|
-
}
|
|
761
|
+
};
|
|
771
762
|
exports.getAdjustLeverageIxns = getAdjustLeverageIxns;
|
|
772
763
|
/**
|
|
773
764
|
* Deposit and borrow tokens if leverage increased
|
|
774
765
|
*/
|
|
775
|
-
const getIncreaseLeverageIxns = (props) =>
|
|
766
|
+
const getIncreaseLeverageIxns = async (props) => {
|
|
776
767
|
const { connection, budgetAndPriorityFeeIxns, user, kaminoMarket, depositAmount, collTokenMint, debtTokenMint, slippagePct, priceDebtToColl, priceCollToDebt, swapper, referrer, isKtoken, priceAinB, kamino, obligationTypeTagOverride = 1, obligation, currentSlot, getTotalKlendAccountsOnly, scopeFeed, } = props;
|
|
777
768
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
778
769
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
779
|
-
const collIsKtoken =
|
|
770
|
+
const collIsKtoken = await isKtoken(collTokenMint);
|
|
780
771
|
const flashLoanFee = collReserve.getFlashLoanFee() || new decimal_js_1.default(0);
|
|
781
772
|
if (!priceDebtToColl || !priceCollToDebt) {
|
|
782
773
|
throw new Error('Price is not loaded. Please, reload the page and try again');
|
|
783
774
|
}
|
|
784
775
|
// TODO: why are we recalculating here again
|
|
785
|
-
const strategy = collIsKtoken ?
|
|
776
|
+
const strategy = collIsKtoken ? await kamino?.getStrategyByKTokenMint(collTokenMint) : undefined;
|
|
786
777
|
// 1. Create atas & budget txns
|
|
787
778
|
const budgetIxns = budgetAndPriorityFeeIxns || (0, utils_1.getComputeBudgetAndPriorityFeeIxns)(3000000);
|
|
788
779
|
let mintsToCreateAtas = [];
|
|
@@ -791,7 +782,7 @@ const getIncreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
791
782
|
const secondTokenAta = strategy.strategy.tokenAMint.equals(debtTokenMint)
|
|
792
783
|
? strategy.strategy.tokenBMint
|
|
793
784
|
: strategy.strategy.tokenAMint;
|
|
794
|
-
const secondTokenTokenProgarm =
|
|
785
|
+
const secondTokenTokenProgarm = strategy?.strategy.tokenAMint.equals(debtTokenMint)
|
|
795
786
|
? strategy.strategy.tokenBTokenProgram.equals(web3_js_1.PublicKey.default)
|
|
796
787
|
? spl_token_1.TOKEN_PROGRAM_ID
|
|
797
788
|
: strategy.strategy.tokenBTokenProgram
|
|
@@ -814,7 +805,7 @@ const getIncreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
814
805
|
spl_token_1.TOKEN_PROGRAM_ID,
|
|
815
806
|
];
|
|
816
807
|
}
|
|
817
|
-
const { atas: [collTokenAta, debtTokenAta], createAtasIxns, closeAtasIxns, } =
|
|
808
|
+
const { atas: [collTokenAta, debtTokenAta], createAtasIxns, closeAtasIxns, } = await (0, utils_1.getAtasWithCreateIxnsIfMissing)(connection, user, mintsToCreateAtas, mintsToCreateAtasTokenPrograms);
|
|
818
809
|
// 2. Create borrow flash loan instruction
|
|
819
810
|
// used if coll is Ktoken and we borrow debt token instead
|
|
820
811
|
const amountToFashBorrowDebt = depositAmount
|
|
@@ -847,7 +838,7 @@ const getIncreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
847
838
|
else {
|
|
848
839
|
throw Error('Obligation type tag not supported for leverage, please use 1 - multiply or 3 - leverage');
|
|
849
840
|
}
|
|
850
|
-
const depositAction =
|
|
841
|
+
const depositAction = await classes_1.KaminoAction.buildDepositTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(depositAmount, collReserve.stats.decimals).floor().toString(), collTokenMint, user, obligation ? obligation : obligationType, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
851
842
|
referrer, currentSlot, { includeScopeRefresh: true, scopeFeed: scopeFeed });
|
|
852
843
|
// 4. Get swap estimations to understand how much we need to borrow from borrow reserve
|
|
853
844
|
const borrowAmount = depositAmount
|
|
@@ -856,7 +847,7 @@ const getIncreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
856
847
|
.div(priceDebtToColl);
|
|
857
848
|
const _collTokenExpectedSwapOut = depositAmount.mul(new decimal_js_1.default(1).plus(flashLoanFee));
|
|
858
849
|
// 5. Borrow tokens in borrow token reserve that will be swapped to repay flash loan
|
|
859
|
-
const borrowAction =
|
|
850
|
+
const borrowAction = await classes_1.KaminoAction.buildBorrowTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(borrowAmount, debtReserve.stats.decimals).ceil().toString(), debtTokenMint, user, obligation ? obligation : obligationType, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
860
851
|
referrer, currentSlot, { includeScopeRefresh: true, scopeFeed: scopeFeed });
|
|
861
852
|
const klendIxns = [
|
|
862
853
|
...budgetIxns,
|
|
@@ -893,8 +884,8 @@ const getIncreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
893
884
|
if (kamino === undefined) {
|
|
894
885
|
throw Error('Ktoken use as collateral for leverage without Kamino instance');
|
|
895
886
|
}
|
|
896
|
-
depositSwapper =
|
|
897
|
-
expectedDebtTokenAtaBalance =
|
|
887
|
+
depositSwapper = await (0, utils_2.getTokenToKtokenSwapper)(connection, kaminoMarket, kamino, user, swapper, priceAinB, false);
|
|
888
|
+
expectedDebtTokenAtaBalance = await (0, utils_2.getExpectedTokenBalanceAfterBorrow)(connection, debtTokenMint, user, (0, classes_2.numberToLamportsDecimal)(!collIsKtoken ? borrowAmount : amountToFashBorrowDebt, debtReserve.stats.decimals).floor(), debtReserve.state.liquidity.mintDecimals.toNumber());
|
|
898
889
|
}
|
|
899
890
|
else {
|
|
900
891
|
depositSwapper = swapper;
|
|
@@ -906,7 +897,7 @@ const getIncreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
906
897
|
inputMint: debtTokenMint,
|
|
907
898
|
outputMint: collTokenMint,
|
|
908
899
|
};
|
|
909
|
-
const [swapIxns, lookupTablesAddresses] =
|
|
900
|
+
const [swapIxns, lookupTablesAddresses] = await depositSwapper(swapInputs.inputAmountLamports, swapInputs.inputMint, swapInputs.outputMint, slippagePct, expectedDebtTokenAtaBalance);
|
|
910
901
|
const swapInstructions = (0, utils_1.removeBudgetAndAtaIxns)(swapIxns, []);
|
|
911
902
|
const ixns = !collIsKtoken
|
|
912
903
|
? [
|
|
@@ -942,8 +933,8 @@ const getIncreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
942
933
|
});
|
|
943
934
|
// Create and send transaction
|
|
944
935
|
if (collIsKtoken) {
|
|
945
|
-
if (strategy
|
|
946
|
-
lookupTablesAddresses.push(strategy
|
|
936
|
+
if (strategy?.strategy.strategyLookupTable) {
|
|
937
|
+
lookupTablesAddresses.push(strategy?.strategy.strategyLookupTable);
|
|
947
938
|
}
|
|
948
939
|
else {
|
|
949
940
|
console.log('Strategy lookup table not found');
|
|
@@ -955,19 +946,19 @@ const getIncreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
955
946
|
swapInputs,
|
|
956
947
|
totalKlendAccounts,
|
|
957
948
|
};
|
|
958
|
-
}
|
|
949
|
+
};
|
|
959
950
|
exports.getIncreaseLeverageIxns = getIncreaseLeverageIxns;
|
|
960
951
|
/**
|
|
961
952
|
* Withdraw and repay tokens if leverage decreased
|
|
962
953
|
*/
|
|
963
|
-
const getDecreaseLeverageIxns = (props) =>
|
|
954
|
+
const getDecreaseLeverageIxns = async (props) => {
|
|
964
955
|
const { connection, budgetAndPriorityFeeIxns, user, kaminoMarket, withdrawAmount, repayAmount, collTokenMint, debtTokenMint, slippagePct, swapper, referrer, isKtoken, kamino, obligationTypeTagOverride = 1, obligation, currentSlot, getTotalKlendAccountsOnly, scopeFeed, } = props;
|
|
965
956
|
console.log('getDecreaseLeverageIxns', (0, calcs_1.toJson)({ withdrawAmount, repayAmount, collTokenMint, debtTokenMint, slippagePct }));
|
|
966
957
|
const collReserve = kaminoMarket.getReserveByMint(collTokenMint);
|
|
967
958
|
const debtReserve = kaminoMarket.getReserveByMint(debtTokenMint);
|
|
968
|
-
const collIsKtoken =
|
|
969
|
-
const flashLoanFee =
|
|
970
|
-
const strategy = collIsKtoken ?
|
|
959
|
+
const collIsKtoken = await isKtoken(collTokenMint);
|
|
960
|
+
const flashLoanFee = debtReserve?.getFlashLoanFee() || new decimal_js_1.default(0);
|
|
961
|
+
const strategy = collIsKtoken ? await kamino?.getStrategyByKTokenMint(collTokenMint) : undefined;
|
|
971
962
|
// 1. Create atas & budget txns
|
|
972
963
|
const budgetIxns = budgetAndPriorityFeeIxns || (0, utils_1.getComputeBudgetAndPriorityFeeIxns)(3000000);
|
|
973
964
|
let mintsToCreateAtas = [];
|
|
@@ -976,7 +967,7 @@ const getDecreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
976
967
|
const secondTokenAta = strategy.strategy.tokenAMint.equals(debtTokenMint)
|
|
977
968
|
? strategy.strategy.tokenBMint
|
|
978
969
|
: strategy.strategy.tokenAMint;
|
|
979
|
-
const secondTokenTokenProgarm =
|
|
970
|
+
const secondTokenTokenProgarm = strategy?.strategy.tokenAMint.equals(debtTokenMint)
|
|
980
971
|
? strategy.strategy.tokenBTokenProgram.equals(web3_js_1.PublicKey.default)
|
|
981
972
|
? spl_token_1.TOKEN_PROGRAM_ID
|
|
982
973
|
: strategy.strategy.tokenBTokenProgram
|
|
@@ -999,18 +990,18 @@ const getDecreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
999
990
|
spl_token_1.TOKEN_PROGRAM_ID,
|
|
1000
991
|
];
|
|
1001
992
|
}
|
|
1002
|
-
const { atas: [, debtTokenAta], createAtasIxns, closeAtasIxns, } =
|
|
993
|
+
const { atas: [, debtTokenAta], createAtasIxns, closeAtasIxns, } = await (0, utils_1.getAtasWithCreateIxnsIfMissing)(connection, user, mintsToCreateAtas, mintsToCreateAtasTokenPrograms);
|
|
1003
994
|
// TODO: Mihai/Marius check if we can improve this logic and not convert any SOL
|
|
1004
995
|
// This is here so that we have enough wsol to repay in case the kAB swapped to sol after estimates is not enough
|
|
1005
996
|
const closeWsolAtaIxns = [];
|
|
1006
997
|
if (debtTokenMint.equals(utils_1.WRAPPED_SOL_MINT)) {
|
|
1007
|
-
const wsolAta =
|
|
998
|
+
const wsolAta = await (0, utils_1.getAssociatedTokenAddress)(utils_1.WRAPPED_SOL_MINT, user, false);
|
|
1008
999
|
closeWsolAtaIxns.push((0, spl_token_1.createCloseAccountInstruction)(wsolAta, user, user, [], spl_token_1.TOKEN_PROGRAM_ID));
|
|
1009
1000
|
}
|
|
1010
1001
|
closeAtasIxns.push(...closeWsolAtaIxns);
|
|
1011
1002
|
const fillWsolAtaIxns = [];
|
|
1012
1003
|
if (debtTokenMint.equals(utils_1.WRAPPED_SOL_MINT)) {
|
|
1013
|
-
const halfSolBalance = (
|
|
1004
|
+
const halfSolBalance = (await connection.getBalance(user)) / web3_js_1.LAMPORTS_PER_SOL / 2;
|
|
1014
1005
|
const balanceToWrap = halfSolBalance < 0.1 ? halfSolBalance : 0.1;
|
|
1015
1006
|
fillWsolAtaIxns.push(...(0, utils_1.getDepositWsolIxns)(user, debtTokenAta, (0, classes_2.numberToLamportsDecimal)(balanceToWrap, debtReserve.stats.decimals).ceil()));
|
|
1016
1007
|
}
|
|
@@ -1041,13 +1032,13 @@ const getDecreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
1041
1032
|
throw Error('Obligation type tag not supported for leverage, please use 1 - multiply or 3 - leverage');
|
|
1042
1033
|
}
|
|
1043
1034
|
const scopeRefresh = scopeFeed ? { includeScopeRefresh: true, scopeFeed: scopeFeed } : undefined;
|
|
1044
|
-
const repayAction =
|
|
1035
|
+
const repayAction = await classes_1.KaminoAction.buildRepayTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(repayAmount, debtReserve.stats.decimals).floor().toString(), debtTokenMint, user, obligation ? obligation : obligationType, currentSlot, undefined, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
1045
1036
|
referrer, scopeRefresh);
|
|
1046
1037
|
// 6. Withdraw collateral (a little bit more to be able to pay for the slippage on swap)
|
|
1047
1038
|
const withdrawAmountWithSlippageAndFlashLoanFee = withdrawAmount
|
|
1048
1039
|
.mul(new decimal_js_1.default(1).plus(flashLoanFee))
|
|
1049
1040
|
.mul(1 + slippagePct / 100);
|
|
1050
|
-
const withdrawAction =
|
|
1041
|
+
const withdrawAction = await classes_1.KaminoAction.buildWithdrawTxns(kaminoMarket, (0, classes_2.numberToLamportsDecimal)(withdrawAmountWithSlippageAndFlashLoanFee, collReserve.stats.decimals).ceil().toString(), collTokenMint, user, obligation ? obligation : obligationType, 0, false, false, false, // to be checked and create in a setup tx in the UI (won't be the case for adjust anyway as this would be created in deposit)
|
|
1051
1042
|
referrer, currentSlot, { includeScopeRefresh: true, scopeFeed: scopeFeed });
|
|
1052
1043
|
const klendIxns = [
|
|
1053
1044
|
...budgetIxns,
|
|
@@ -1084,7 +1075,7 @@ const getDecreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
1084
1075
|
if (kamino === undefined) {
|
|
1085
1076
|
throw Error('Ktoken use as collateral for leverage without Kamino instance');
|
|
1086
1077
|
}
|
|
1087
|
-
withdrawSwapper =
|
|
1078
|
+
withdrawSwapper = await (0, utils_2.getKtokenToTokenSwapper)(kaminoMarket, kamino, user, swapper);
|
|
1088
1079
|
}
|
|
1089
1080
|
else {
|
|
1090
1081
|
withdrawSwapper = swapper;
|
|
@@ -1097,7 +1088,7 @@ const getDecreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
1097
1088
|
outputMint: debtTokenMint,
|
|
1098
1089
|
};
|
|
1099
1090
|
// 5. Get swap ixns
|
|
1100
|
-
const [swapIxns, lookupTablesAddresses] =
|
|
1091
|
+
const [swapIxns, lookupTablesAddresses] = await withdrawSwapper(swapInputs.inputAmountLamports, swapInputs.inputMint, swapInputs.outputMint, slippagePct);
|
|
1101
1092
|
const swapInstructions = (0, utils_1.removeBudgetAndAtaIxns)(swapIxns, []);
|
|
1102
1093
|
const ixns = [
|
|
1103
1094
|
...budgetIxns,
|
|
@@ -1118,8 +1109,8 @@ const getDecreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
1118
1109
|
console.log(`ixn ${i + 1}: ${ixn.programId.toString()}`);
|
|
1119
1110
|
});
|
|
1120
1111
|
if (collIsKtoken) {
|
|
1121
|
-
if (strategy
|
|
1122
|
-
lookupTablesAddresses.push(strategy
|
|
1112
|
+
if (strategy?.strategy.strategyLookupTable) {
|
|
1113
|
+
lookupTablesAddresses.push(strategy?.strategy.strategyLookupTable);
|
|
1123
1114
|
}
|
|
1124
1115
|
else {
|
|
1125
1116
|
console.log('Strategy lookup table not found');
|
|
@@ -1132,6 +1123,6 @@ const getDecreaseLeverageIxns = (props) => __awaiter(void 0, void 0, void 0, fun
|
|
|
1132
1123
|
swapInputs,
|
|
1133
1124
|
totalKlendAccounts,
|
|
1134
1125
|
};
|
|
1135
|
-
}
|
|
1126
|
+
};
|
|
1136
1127
|
exports.getDecreaseLeverageIxns = getDecreaseLeverageIxns;
|
|
1137
1128
|
//# sourceMappingURL=operations.js.map
|