@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { Kamino, StrategyWithAddress } from '@kamino-finance/kliquidity-sdk';\nimport { KaminoMarket, KaminoReserve, lamportsToNumberDecimal } from '../classes';\nimport { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';\nimport { PriceAinBProvider, SwapIxnsProvider } from './operations';\nimport Decimal from 'decimal.js';\nimport { getTokenAccountBalanceDecimal } from '../utils';\nimport { numberToLamportsDecimal } from '../classes/utils';\nimport BN from 'bn.js';\n\nexport interface KaminoSwapperIxBuilder {\n (\n input: DepositAmountsForSwap,\n tokenAMint: PublicKey,\n tokenBMint: PublicKey,\n owner: PublicKey,\n slippage: Decimal,\n allKeys: PublicKey[]\n ): Promise<[TransactionInstruction[], PublicKey[]]>;\n}\n\nexport interface DepositAmountsForSwap {\n requiredAAmountToDeposit: Decimal;\n requiredBAmountToDeposit: Decimal;\n tokenAToSwapAmount: Decimal;\n tokenBToSwapAmount: Decimal;\n}\n\nexport const getTokenToKtokenSwapper = async (\n connection: Connection,\n kaminoMarket: KaminoMarket,\n kamino: Kamino,\n depositor: PublicKey,\n swapper: SwapIxnsProvider,\n priceAinB: PriceAinBProvider,\n includeAtaIxns: boolean = true\n): Promise<SwapIxnsProvider> => {\n return async (\n amountInLamports: number,\n amountInMint: PublicKey,\n amountOutMint: PublicKey,\n slippage: number,\n amountDebtAtaBalance?: Decimal\n ) => {\n const slippageBps = new Decimal(slippage).mul('100');\n const mintInDecimals = kaminoMarket.getReserveByMint(amountInMint)!.state.liquidity.mintDecimals.toNumber();\n const amountIn = lamportsToNumberDecimal(amountInLamports, mintInDecimals);\n console.debug('Depositing token', amountInMint.toString(), ' for ', amountOutMint.toString(), 'ktoken');\n if (amountDebtAtaBalance === undefined) {\n throw Error('Amount in debt ATA balance is undefined for leverage ktoken deposit');\n }\n\n const ixWithLookup = (await getKtokenDepositIxs(\n connection,\n kamino,\n depositor,\n amountInMint,\n amountOutMint,\n amountIn,\n slippageBps,\n amountDebtAtaBalance,\n swapper,\n priceAinB,\n includeAtaIxns\n ))!;\n return [ixWithLookup.instructions, ixWithLookup.lookupTablesAddresses];\n };\n};\n\nexport async function getKtokenDepositIxs(\n connection: Connection,\n kamino: Kamino,\n depositor: PublicKey,\n depositTokenMint: PublicKey,\n ktokenMint: PublicKey,\n amountToDeposit: Decimal,\n slippageBps: Decimal,\n amountExpectedDepositAtaBalance: Decimal,\n swapper: SwapIxnsProvider,\n priceAinB: PriceAinBProvider,\n includeAtaIxns: boolean = true\n) {\n const kaminoStrategy = await kamino.getStrategyByKTokenMint(ktokenMint);\n const tokenAMint = kaminoStrategy?.strategy.tokenAMint!;\n const tokenBMint = kaminoStrategy?.strategy.tokenBMint!;\n const priceAinBDecimal = await priceAinB(tokenAMint, tokenBMint);\n\n if (tokenAMint.equals(depositTokenMint)) {\n const bBalance = await getTokenAccountBalanceDecimal(connection, tokenBMint, depositor);\n const tokensBalances = { a: amountExpectedDepositAtaBalance, b: bBalance };\n console.log('amountToDeposit', amountToDeposit);\n return await kamino.singleSidedDepositTokenA(\n kaminoStrategy!,\n amountToDeposit,\n depositor,\n slippageBps,\n undefined,\n swapProviderToKaminoSwapProvider(swapper),\n tokensBalances,\n priceAinBDecimal,\n includeAtaIxns\n );\n } else if (tokenBMint.equals(depositTokenMint)) {\n const aBalance = await getTokenAccountBalanceDecimal(connection, tokenAMint, depositor);\n const tokensBalances = { a: aBalance, b: amountExpectedDepositAtaBalance };\n return await kamino.singleSidedDepositTokenB(\n kaminoStrategy!,\n amountToDeposit,\n depositor,\n slippageBps,\n undefined,\n swapProviderToKaminoSwapProvider(swapper),\n tokensBalances,\n priceAinBDecimal,\n includeAtaIxns\n );\n } else {\n throw Error('Deposit token is neither A nor B in the strategy');\n }\n}\n\nexport const getKtokenToTokenSwapper = async (\n kaminoMarket: KaminoMarket,\n kamino: Kamino,\n depositor: PublicKey,\n swapper: SwapIxnsProvider\n): Promise<SwapIxnsProvider> => {\n return async (amountInLamports: number, amountInMint: PublicKey, amountOutMint: PublicKey, slippage: number) => {\n const amountInDecimals = kaminoMarket.getReserveByMint(amountInMint)!.state.liquidity.mintDecimals.toNumber();\n const amountToWithdraw = lamportsToNumberDecimal(amountInLamports, amountInDecimals);\n const kaminoStrategy = await kamino.getStrategyByKTokenMint(amountInMint);\n\n console.log('Withdrawing ktoken', amountInMint.toString(), ' for ', amountOutMint.toString(), 'token');\n\n const ixWithdraw = (await getKtokenWithdrawIxs(kamino, depositor, kaminoStrategy!, amountToWithdraw))!;\n\n const [estimatedAOut, estimatedBOut] = await getKtokenWithdrawEstimatesAndPrice(\n kamino,\n kaminoStrategy!,\n amountToWithdraw\n );\n\n if (amountOutMint.equals(kaminoStrategy?.strategy.tokenAMint!)) {\n const [swapIxs, swapLookupTables] = await swapper(\n estimatedBOut.toNumber(),\n kaminoStrategy?.strategy.tokenBMint!,\n kaminoStrategy?.strategy.tokenAMint!,\n slippage\n );\n\n return [[...ixWithdraw.prerequisiteIxs, ixWithdraw.withdrawIx, ...swapIxs], swapLookupTables];\n } else if (amountOutMint.equals(kaminoStrategy?.strategy.tokenBMint!)) {\n const [swapIxs, swapLookupTables] = await swapper(\n estimatedAOut.toNumber(),\n kaminoStrategy?.strategy.tokenAMint!,\n kaminoStrategy?.strategy.tokenBMint!,\n slippage\n );\n\n return [[...ixWithdraw.prerequisiteIxs, ixWithdraw.withdrawIx, ...swapIxs], swapLookupTables];\n } else {\n throw Error('Deposit token is neither A nor B in the strategy');\n }\n };\n};\n\nexport async function getKtokenWithdrawIxs(\n kamino: Kamino,\n withdrawer: PublicKey,\n kaminoStrategy: StrategyWithAddress,\n amountToWithdraw: Decimal\n) {\n return await kamino.withdrawShares(kaminoStrategy!, amountToWithdraw, withdrawer);\n}\n\nexport async function getKtokenWithdrawEstimatesAndPrice(\n kamino: Kamino,\n kaminoStrategy: StrategyWithAddress,\n amountToWithdraw: Decimal\n) {\n const sharesData = await kamino.getStrategyShareData(kaminoStrategy);\n const withdrawPct = amountToWithdraw\n .div(\n lamportsToNumberDecimal(\n new Decimal(kaminoStrategy.strategy.sharesIssued.toString()),\n kaminoStrategy.strategy.sharesMintDecimals.toNumber()\n )\n )\n .toDecimalPlaces(18);\n\n const withdrawFee = new Decimal(10_000).sub(new Decimal(kaminoStrategy.strategy.withdrawFee.toString()));\n\n // TODO: Mihai/Marius improve - currently subtracting due to decimal accuracy issues compared to yvaults SC\n // for both A and B op: .sub(0.000002)\n\n const estimatedAOut = sharesData.balance.computedHoldings.invested.a\n .add(sharesData.balance.computedHoldings.available.a)\n .mul(withdrawPct)\n .toDecimalPlaces(kaminoStrategy.strategy.tokenAMintDecimals.toNumber(), 1)\n .sub(0.000002)\n .mul(withdrawFee)\n .div(10_000)\n .toDecimalPlaces(kaminoStrategy.strategy.tokenAMintDecimals.toNumber());\n\n const estimatedAOutDecimal = numberToLamportsDecimal(\n estimatedAOut,\n kaminoStrategy.strategy.tokenAMintDecimals.toNumber()\n ).floor();\n\n const estimatedBOut = sharesData.balance.computedHoldings.invested.b\n .add(sharesData.balance.computedHoldings.available.b)\n .mul(withdrawPct)\n .toDecimalPlaces(kaminoStrategy.strategy.tokenBMintDecimals.toNumber(), 1)\n .sub(0.000002)\n .mul(withdrawFee)\n .div(10_000)\n .toDecimalPlaces(kaminoStrategy.strategy.tokenAMintDecimals.toNumber());\n\n const estimatedBOutDecimal = numberToLamportsDecimal(\n estimatedBOut,\n kaminoStrategy.strategy.tokenBMintDecimals.toNumber()\n ).floor();\n\n console.log('a-out', estimatedAOutDecimal.toString());\n console.log('b-out', estimatedBOut.toString());\n return [estimatedAOutDecimal, estimatedBOutDecimal];\n}\n\nexport function swapProviderToKaminoSwapProvider(swapper: SwapIxnsProvider): KaminoSwapperIxBuilder {\n return async (\n input: DepositAmountsForSwap,\n tokenAMint: PublicKey,\n tokenBMint: PublicKey,\n _owner: PublicKey,\n slippageBps: Decimal,\n _allKeys: PublicKey[]\n ): Promise<[TransactionInstruction[], PublicKey[]]> => {\n if (input.tokenBToSwapAmount.lt(0)) {\n return await swapper(\n input.tokenBToSwapAmount.abs().toNumber(),\n tokenBMint,\n tokenAMint,\n slippageBps.toNumber() / 100\n );\n } else if (input.tokenAToSwapAmount.lt(0)) {\n return await swapper(\n input.tokenAToSwapAmount.abs().toNumber(),\n tokenAMint,\n tokenBMint,\n slippageBps.toNumber() / 100\n );\n } else {\n throw Error('Nothing to swap');\n }\n };\n}\n\nexport const getExpectedTokenBalanceAfterBorrow = async (\n connection: Connection,\n mint: PublicKey,\n owner: PublicKey,\n amountToBorrowLamports: Decimal,\n amountToBorrowmintDecimals: number\n) => {\n const initialUserTokenABalance = await getTokenAccountBalanceDecimal(connection, mint, owner);\n\n return initialUserTokenABalance\n .add(lamportsToNumberDecimal(amountToBorrowLamports, amountToBorrowmintDecimals))\n .toDecimalPlaces(amountToBorrowmintDecimals);\n};\n\nexport const isBorrowingEnabled = (reserve: KaminoReserve) => {\n return reserve.state.config.borrowLimit.gt(new BN(0));\n};\n"]}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/lib.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC"}
|
package/dist/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,uDAAqC"
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,uDAAqC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/referrals/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/referrals/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/referrals/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/referrals/instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqC,sBAAsB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU1C,eAAO,MAAM,gCAAgC,gCAG1C;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;CAC5B,sCAqCA,CAAC;AAEF,eAAO,MAAM,mCAAmC,uCAI7C;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;CACtB,2BAsBA,CAAC;AAGF,eAAO,MAAM,qCAAqC,yCAI/C;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;CACtB,oCAgBA,CAAC"}
|
|
@@ -1,29 +1,20 @@
|
|
|
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
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.getDeleteReferrerStateAndShortUrlIxns = exports.getInitReferrerStateAndShortUrlIxns = exports.getInitAllReferrerTokenStateIxns = void 0;
|
|
13
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
14
5
|
const utils_1 = require("../utils");
|
|
15
6
|
const lib_1 = require("../lib");
|
|
16
|
-
const getInitAllReferrerTokenStateIxns =
|
|
7
|
+
const getInitAllReferrerTokenStateIxns = async ({ referrer, kaminoMarket, }) => {
|
|
17
8
|
if (referrer.equals(web3_js_1.PublicKey.default)) {
|
|
18
9
|
throw new Error('Referrer not set');
|
|
19
10
|
}
|
|
20
|
-
|
|
11
|
+
await kaminoMarket.loadReserves();
|
|
21
12
|
const initReferrerTokenStateIxns = [];
|
|
22
13
|
const tokenStatesToCreate = [];
|
|
23
14
|
for (const reserve of kaminoMarket.reserves.values()) {
|
|
24
15
|
const referrerTokenStateAddress = (0, utils_1.referrerTokenStatePda)(referrer, reserve.address, kaminoMarket.programId)[0];
|
|
25
|
-
if (!(
|
|
26
|
-
tokenStatesToCreate.push([referrerTokenStateAddress, reserve
|
|
16
|
+
if (!(await (0, utils_1.checkIfAccountExists)(kaminoMarket.getConnection(), referrerTokenStateAddress))) {
|
|
17
|
+
tokenStatesToCreate.push([referrerTokenStateAddress, reserve?.address]);
|
|
27
18
|
}
|
|
28
19
|
}
|
|
29
20
|
tokenStatesToCreate.forEach(([referrerTokenStateAddress, reserveAddress]) => {
|
|
@@ -40,7 +31,7 @@ const getInitAllReferrerTokenStateIxns = (_a) => __awaiter(void 0, [_a], void 0,
|
|
|
40
31
|
initReferrerTokenStateIxns.push(initReferrerTokenStateIx);
|
|
41
32
|
});
|
|
42
33
|
return initReferrerTokenStateIxns;
|
|
43
|
-
}
|
|
34
|
+
};
|
|
44
35
|
exports.getInitAllReferrerTokenStateIxns = getInitAllReferrerTokenStateIxns;
|
|
45
36
|
const getInitReferrerStateAndShortUrlIxns = ({ referrer, shortUrl, programId = lib_1.PROGRAM_ID, }) => {
|
|
46
37
|
const [referrerStateAddress] = (0, utils_1.referrerStatePda)(referrer, programId);
|
|
@@ -60,9 +51,9 @@ const getInitReferrerStateAndShortUrlIxns = ({ referrer, shortUrl, programId = l
|
|
|
60
51
|
};
|
|
61
52
|
exports.getInitReferrerStateAndShortUrlIxns = getInitReferrerStateAndShortUrlIxns;
|
|
62
53
|
// TODO: 1 thing left before adding program id
|
|
63
|
-
const getDeleteReferrerStateAndShortUrlIxns =
|
|
54
|
+
const getDeleteReferrerStateAndShortUrlIxns = async ({ referrer, connection, programId = lib_1.PROGRAM_ID, }) => {
|
|
64
55
|
const [referrerStateAddress] = (0, utils_1.referrerStatePda)(referrer, programId);
|
|
65
|
-
const referrerState =
|
|
56
|
+
const referrerState = await lib_1.ReferrerState.fetch(connection, referrerStateAddress, programId);
|
|
66
57
|
const initReferrerStateAndShortUrlIx = (0, lib_1.deleteReferrerStateAndShortUrl)({
|
|
67
58
|
referrer: referrer,
|
|
68
59
|
referrerState: referrerStateAddress,
|
|
@@ -71,6 +62,6 @@ const getDeleteReferrerStateAndShortUrlIxns = (_a) => __awaiter(void 0, [_a], vo
|
|
|
71
62
|
systemProgram: web3_js_1.SystemProgram.programId,
|
|
72
63
|
}, programId);
|
|
73
64
|
return initReferrerStateAndShortUrlIx;
|
|
74
|
-
}
|
|
65
|
+
};
|
|
75
66
|
exports.getDeleteReferrerStateAndShortUrlIxns = getDeleteReferrerStateAndShortUrlIxns;
|
|
76
67
|
//# sourceMappingURL=instructions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/referrals/instructions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/referrals/instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,6 +92,7 @@ export declare function getReferralsRanking(connection: Connection, kaminoMarket
|
|
|
92
92
|
* Get ReferralRank array of all referrers ordered by how much they've earned in USD
|
|
93
93
|
* @param connection
|
|
94
94
|
* @param user
|
|
95
|
-
* @param
|
|
95
|
+
* @param kaminoMarket
|
|
96
96
|
*/
|
|
97
97
|
export declare function getUserReferralRanking(connection: Connection, user: PublicKey, kaminoMarket: KaminoMarket): Promise<number | undefined>;
|
|
98
|
+
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/referrals/operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa1C,OAAO,EAAc,YAAY,EAA2B,MAAM,QAAQ,CAAC;AAC3E,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,gCAGpC;IACD,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,oBAQA,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,mDAKxC;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,oBAQA,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,sDAKxC;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,oBAkBA,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,CAAC,SAAS,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAO5C;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,SAAS,CAAC,CAIpB;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CA+BzB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAyBzB;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAuCrH;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B"}
|
|
@@ -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
|
};
|
|
@@ -31,12 +22,12 @@ const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
|
31
22
|
* @param referrer
|
|
32
23
|
* @param kaminoMarket
|
|
33
24
|
*/
|
|
34
|
-
const initAllReferrerTokenStates =
|
|
35
|
-
const ixns =
|
|
36
|
-
const tx =
|
|
25
|
+
const initAllReferrerTokenStates = async ({ referrer, kaminoMarket, }) => {
|
|
26
|
+
const ixns = await (0, instructions_1.getInitAllReferrerTokenStateIxns)({ referrer: referrer.publicKey, kaminoMarket });
|
|
27
|
+
const tx = await (0, utils_1.buildVersionedTransaction)(kaminoMarket.getConnection(), referrer.publicKey, ixns);
|
|
37
28
|
console.log('Init Referral Token States');
|
|
38
|
-
return
|
|
39
|
-
}
|
|
29
|
+
return await (0, utils_1.buildAndSendTxnWithLogs)(kaminoMarket.getConnection(), tx, referrer, [referrer]);
|
|
30
|
+
};
|
|
40
31
|
exports.initAllReferrerTokenStates = initAllReferrerTokenStates;
|
|
41
32
|
/**
|
|
42
33
|
* Initialize referrer state and short url
|
|
@@ -44,12 +35,12 @@ exports.initAllReferrerTokenStates = initAllReferrerTokenStates;
|
|
|
44
35
|
* @param referrer
|
|
45
36
|
* @param shortUrl
|
|
46
37
|
*/
|
|
47
|
-
const createReferrerStateAndShortUrl =
|
|
38
|
+
const createReferrerStateAndShortUrl = async ({ connection, referrer, shortUrl, programId = lib_1.PROGRAM_ID, }) => {
|
|
48
39
|
const ixn = (0, instructions_1.getInitReferrerStateAndShortUrlIxns)({ referrer: referrer.publicKey, shortUrl, programId });
|
|
49
|
-
const tx =
|
|
40
|
+
const tx = await (0, utils_1.buildVersionedTransaction)(connection, referrer.publicKey, [ixn]);
|
|
50
41
|
console.log('Init ReferrerState for referrer ' + referrer.publicKey.toBase58() + ' and shortUrl ' + shortUrl);
|
|
51
|
-
return
|
|
52
|
-
}
|
|
42
|
+
return await (0, utils_1.buildAndSendTxnWithLogs)(connection, tx, referrer, [referrer]);
|
|
43
|
+
};
|
|
53
44
|
exports.createReferrerStateAndShortUrl = createReferrerStateAndShortUrl;
|
|
54
45
|
/**
|
|
55
46
|
* Initialize referrer state and short url
|
|
@@ -57,8 +48,8 @@ exports.createReferrerStateAndShortUrl = createReferrerStateAndShortUrl;
|
|
|
57
48
|
* @param referrer
|
|
58
49
|
* @param newShortUrl
|
|
59
50
|
*/
|
|
60
|
-
const updateReferrerStateAndShortUrl =
|
|
61
|
-
const deleteIxn =
|
|
51
|
+
const updateReferrerStateAndShortUrl = async ({ connection, referrer, newShortUrl, programId = lib_1.PROGRAM_ID, }) => {
|
|
52
|
+
const deleteIxn = await (0, instructions_1.getDeleteReferrerStateAndShortUrlIxns)({
|
|
62
53
|
referrer: referrer.publicKey,
|
|
63
54
|
connection,
|
|
64
55
|
programId,
|
|
@@ -68,10 +59,10 @@ const updateReferrerStateAndShortUrl = (_a) => __awaiter(void 0, [_a], void 0, f
|
|
|
68
59
|
shortUrl: newShortUrl,
|
|
69
60
|
programId,
|
|
70
61
|
});
|
|
71
|
-
const tx =
|
|
62
|
+
const tx = await (0, utils_1.buildVersionedTransaction)(connection, referrer.publicKey, [deleteIxn, initIxn]);
|
|
72
63
|
console.log('Update ReferrerState for referrer ' + referrer.publicKey.toBase58() + ' and shortUrl ' + newShortUrl);
|
|
73
|
-
return
|
|
74
|
-
}
|
|
64
|
+
return await (0, utils_1.buildAndSendTxnWithLogs)(connection, tx, referrer, [referrer]);
|
|
65
|
+
};
|
|
75
66
|
exports.updateReferrerStateAndShortUrl = updateReferrerStateAndShortUrl;
|
|
76
67
|
/**
|
|
77
68
|
* Check if short URL available - also checks if short URL is valid (ascii-alphanumeric plus '_' '-', max 32 chars)
|
|
@@ -79,18 +70,16 @@ exports.updateReferrerStateAndShortUrl = updateReferrerStateAndShortUrl;
|
|
|
79
70
|
* @param shortUrl
|
|
80
71
|
* @param programId
|
|
81
72
|
*/
|
|
82
|
-
function isShortUrlAvailable(
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return info === null;
|
|
93
|
-
});
|
|
73
|
+
async function isShortUrlAvailable(connection, shortUrl, programId = lib_1.PROGRAM_ID) {
|
|
74
|
+
if (shortUrl.length > 32) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
if (!/^[a-zA-Z0-9-_]+$/.test(shortUrl)) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const [shortUrlAddress] = (0, utils_1.shortUrlPda)(shortUrl, programId);
|
|
81
|
+
const info = await connection.getAccountInfo(shortUrlAddress);
|
|
82
|
+
return info === null;
|
|
94
83
|
}
|
|
95
84
|
/**
|
|
96
85
|
* Get referrer short URL address and shortUrl
|
|
@@ -98,15 +87,13 @@ function isShortUrlAvailable(connection_1, shortUrl_1) {
|
|
|
98
87
|
* @param referrer
|
|
99
88
|
* @param programId
|
|
100
89
|
*/
|
|
101
|
-
function getReferrerShortUrl(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return [shortUrlAddress, shortUrl];
|
|
109
|
-
});
|
|
90
|
+
async function getReferrerShortUrl(connection, referrer, programId = lib_1.PROGRAM_ID) {
|
|
91
|
+
const [referrerStateAddress] = (0, utils_1.referrerStatePda)(referrer, programId);
|
|
92
|
+
const referrerState = await lib_1.ReferrerState.fetch(connection, referrerStateAddress, programId);
|
|
93
|
+
const shortUrlState = await lib_1.ShortUrl.fetch(connection, referrerState.shortUrl, programId);
|
|
94
|
+
const shortUrlAddress = referrerState ? referrerState.shortUrl : null;
|
|
95
|
+
const shortUrl = shortUrlState ? shortUrlState.shortUrl : null;
|
|
96
|
+
return [shortUrlAddress, shortUrl];
|
|
110
97
|
}
|
|
111
98
|
/**
|
|
112
99
|
* Get referrer for a given Short URL
|
|
@@ -114,12 +101,10 @@ function getReferrerShortUrl(connection_1, referrer_1) {
|
|
|
114
101
|
* @param shortUrl
|
|
115
102
|
* @param programId
|
|
116
103
|
*/
|
|
117
|
-
function getReferrerForShortUrl(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return shortUrlState.referrer;
|
|
122
|
-
});
|
|
104
|
+
async function getReferrerForShortUrl(connection, shortUrl, programId = lib_1.PROGRAM_ID) {
|
|
105
|
+
const [shortUrlAddress] = (0, utils_1.shortUrlPda)(shortUrl, programId);
|
|
106
|
+
const shortUrlState = await lib_1.ShortUrl.fetch(connection, shortUrlAddress, programId);
|
|
107
|
+
return shortUrlState.referrer;
|
|
123
108
|
}
|
|
124
109
|
/**
|
|
125
110
|
* Get referrer all UserMetadata user accounts linked to a given referrer
|
|
@@ -127,34 +112,32 @@ function getReferrerForShortUrl(connection_1, shortUrl_1) {
|
|
|
127
112
|
* @param referrer
|
|
128
113
|
* @param programId
|
|
129
114
|
*/
|
|
130
|
-
function getUserMetadatasByReferrer(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
115
|
+
async function getUserMetadatasByReferrer(connection, referrer, programId = lib_1.PROGRAM_ID) {
|
|
116
|
+
const userMetadatas = await connection.getProgramAccounts(programId, {
|
|
117
|
+
filters: [
|
|
118
|
+
{
|
|
119
|
+
dataSize: lib_1.UserMetadata.layout.span + 8,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
memcmp: {
|
|
123
|
+
offset: 8,
|
|
124
|
+
bytes: referrer.toBase58(),
|
|
136
125
|
},
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const userMetadataAccount = lib_1.UserMetadata.decode(userMetadata.account.data);
|
|
153
|
-
if (!userMetadataAccount) {
|
|
154
|
-
throw Error('Could not parse obligation.');
|
|
155
|
-
}
|
|
156
|
-
return userMetadataAccount;
|
|
157
|
-
});
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
});
|
|
129
|
+
return userMetadatas.map((userMetadata) => {
|
|
130
|
+
if (userMetadata.account === null) {
|
|
131
|
+
throw new Error('Invalid account');
|
|
132
|
+
}
|
|
133
|
+
if (!userMetadata.account.owner.equals(programId)) {
|
|
134
|
+
throw new Error("account doesn't belong to this program");
|
|
135
|
+
}
|
|
136
|
+
const userMetadataAccount = lib_1.UserMetadata.decode(userMetadata.account.data);
|
|
137
|
+
if (!userMetadataAccount) {
|
|
138
|
+
throw Error('Could not parse obligation.');
|
|
139
|
+
}
|
|
140
|
+
return userMetadataAccount;
|
|
158
141
|
});
|
|
159
142
|
}
|
|
160
143
|
/**
|
|
@@ -163,28 +146,26 @@ function getUserMetadatasByReferrer(connection_1, referrer_1) {
|
|
|
163
146
|
* @param referrer
|
|
164
147
|
* @param programId
|
|
165
148
|
*/
|
|
166
|
-
function getAllUserMetadatas(
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
return userMetadataAccount;
|
|
187
|
-
});
|
|
149
|
+
async function getAllUserMetadatas(connection, programId = lib_1.PROGRAM_ID) {
|
|
150
|
+
const userMetadatas = await connection.getProgramAccounts(programId, {
|
|
151
|
+
filters: [
|
|
152
|
+
{
|
|
153
|
+
dataSize: lib_1.UserMetadata.layout.span + 8,
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
});
|
|
157
|
+
return userMetadatas.map((userMetadata) => {
|
|
158
|
+
if (userMetadata.account === null) {
|
|
159
|
+
throw new Error('Invalid account');
|
|
160
|
+
}
|
|
161
|
+
if (!userMetadata.account.owner.equals(programId)) {
|
|
162
|
+
throw new Error("account doesn't belong to this program");
|
|
163
|
+
}
|
|
164
|
+
const userMetadataAccount = lib_1.UserMetadata.decode(userMetadata.account.data);
|
|
165
|
+
if (!userMetadataAccount) {
|
|
166
|
+
throw Error('Could not parse obligation.');
|
|
167
|
+
}
|
|
168
|
+
return userMetadataAccount;
|
|
188
169
|
});
|
|
189
170
|
}
|
|
190
171
|
/**
|
|
@@ -193,66 +174,61 @@ function getAllUserMetadatas(connection_1) {
|
|
|
193
174
|
* @param referrer
|
|
194
175
|
* @param programId
|
|
195
176
|
*/
|
|
196
|
-
function getTotalUsersReferred(
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
return userMetadatas.length;
|
|
200
|
-
});
|
|
177
|
+
async function getTotalUsersReferred(connection, referrer, programId = lib_1.PROGRAM_ID) {
|
|
178
|
+
const userMetadatas = await getUserMetadatasByReferrer(connection, referrer, programId);
|
|
179
|
+
return userMetadatas.length;
|
|
201
180
|
}
|
|
202
181
|
/**
|
|
203
182
|
* Get ReferralRank array of all referrers ordered by how much they've earned in USD
|
|
204
183
|
* @param connection
|
|
205
184
|
* @param kaminoMarket
|
|
206
185
|
*/
|
|
207
|
-
function getReferralsRanking(connection, kaminoMarket) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
referrersUsersReferred.set(referrer, 1);
|
|
220
|
-
}
|
|
186
|
+
async function getReferralsRanking(connection, kaminoMarket) {
|
|
187
|
+
const referrersUsersReferred = new utils_1.PublicKeyMap();
|
|
188
|
+
// counting users referred for each referrer
|
|
189
|
+
const userMetadatas = await getAllUserMetadatas(connection, kaminoMarket.programId);
|
|
190
|
+
for (const userMetadata of userMetadatas) {
|
|
191
|
+
const referrer = userMetadata.referrer;
|
|
192
|
+
const usersReferred = referrersUsersReferred.get(referrer);
|
|
193
|
+
if (usersReferred) {
|
|
194
|
+
referrersUsersReferred.set(referrer, usersReferred + 1);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
referrersUsersReferred.set(referrer, 1);
|
|
221
198
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
referralsRankArray.push({
|
|
231
|
-
referrer: new web3_js_1.PublicKey(referrer),
|
|
232
|
-
totalUsersReferred: referrersUsersReferred.get(referrer),
|
|
233
|
-
totalEarningsUsd: totalEarningsUsd,
|
|
234
|
-
});
|
|
199
|
+
}
|
|
200
|
+
const referralsRankArray = [];
|
|
201
|
+
for (const referrer of referrersUsersReferred.keys()) {
|
|
202
|
+
const referrerTokenStates = await kaminoMarket.getAllReferrerFeesCumulative(referrer);
|
|
203
|
+
let totalEarningsUsd = new decimal_js_1.default(0);
|
|
204
|
+
// calculating earnings for each referrer
|
|
205
|
+
for (const reserve of kaminoMarket.reserves.values()) {
|
|
206
|
+
totalEarningsUsd = totalEarningsUsd.add(referrerTokenStates.get(reserve.getLiquidityMint()).mul(reserve.getOracleMarketPrice()));
|
|
235
207
|
}
|
|
236
|
-
referralsRankArray.
|
|
237
|
-
|
|
208
|
+
referralsRankArray.push({
|
|
209
|
+
referrer: new web3_js_1.PublicKey(referrer),
|
|
210
|
+
totalUsersReferred: referrersUsersReferred.get(referrer),
|
|
211
|
+
totalEarningsUsd: totalEarningsUsd,
|
|
238
212
|
});
|
|
239
|
-
|
|
213
|
+
}
|
|
214
|
+
referralsRankArray.sort((a, b) => {
|
|
215
|
+
return b.totalEarningsUsd.comparedTo(a.totalEarningsUsd);
|
|
240
216
|
});
|
|
217
|
+
return referralsRankArray;
|
|
241
218
|
}
|
|
242
219
|
/**
|
|
243
220
|
* Get ReferralRank array of all referrers ordered by how much they've earned in USD
|
|
244
221
|
* @param connection
|
|
245
222
|
* @param user
|
|
246
|
-
* @param
|
|
223
|
+
* @param kaminoMarket
|
|
247
224
|
*/
|
|
248
|
-
function getUserReferralRanking(connection, user, kaminoMarket) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
return index + 1;
|
|
254
|
-
}
|
|
225
|
+
async function getUserReferralRanking(connection, user, kaminoMarket) {
|
|
226
|
+
const referralsRanking = await getReferralsRanking(connection, kaminoMarket);
|
|
227
|
+
for (let index = 0; index < referralsRanking.length; index++) {
|
|
228
|
+
if (user.equals(referralsRanking[index].referrer)) {
|
|
229
|
+
return index + 1;
|
|
255
230
|
}
|
|
256
|
-
}
|
|
231
|
+
}
|
|
232
|
+
return undefined;
|
|
257
233
|
}
|
|
258
234
|
//# sourceMappingURL=operations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/referrals/operations.ts"],"names":[],"mappings":"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","sourcesContent":["import { Connection, Keypair, PublicKey } from '@solana/web3.js';\nimport { KaminoMarket } from '../classes';\nimport {\n PublicKeyMap,\n buildAndSendTxnWithLogs,\n buildVersionedTransaction,\n referrerStatePda,\n shortUrlPda,\n} from '../utils';\nimport {\n getDeleteReferrerStateAndShortUrlIxns,\n getInitAllReferrerTokenStateIxns,\n getInitReferrerStateAndShortUrlIxns,\n} from './instructions';\nimport { PROGRAM_ID, UserMetadata, ReferrerState, ShortUrl } from '../lib';\nimport Decimal from 'decimal.js';\n\n/**\n * Initialize all referrer token states for a given referrer\n * @param referrer\n * @param kaminoMarket\n */\nexport const initAllReferrerTokenStates = async ({\n referrer,\n kaminoMarket,\n}: {\n referrer: Keypair;\n kaminoMarket: KaminoMarket;\n}) => {\n const ixns = await getInitAllReferrerTokenStateIxns({ referrer: referrer.publicKey, kaminoMarket });\n\n const tx = await buildVersionedTransaction(kaminoMarket.getConnection(), referrer.publicKey, ixns);\n\n console.log('Init Referral Token States');\n\n return await buildAndSendTxnWithLogs(kaminoMarket.getConnection(), tx, referrer, [referrer]);\n};\n\n/**\n * Initialize referrer state and short url\n * @param connection\n * @param referrer\n * @param shortUrl\n */\nexport const createReferrerStateAndShortUrl = async ({\n connection,\n referrer,\n shortUrl,\n programId = PROGRAM_ID,\n}: {\n connection: Connection;\n referrer: Keypair;\n shortUrl: string;\n programId?: PublicKey;\n}) => {\n const ixn = getInitReferrerStateAndShortUrlIxns({ referrer: referrer.publicKey, shortUrl, programId });\n\n const tx = await buildVersionedTransaction(connection, referrer.publicKey, [ixn]);\n\n console.log('Init ReferrerState for referrer ' + referrer.publicKey.toBase58() + ' and shortUrl ' + shortUrl);\n\n return await buildAndSendTxnWithLogs(connection, tx, referrer, [referrer]);\n};\n\n/**\n * Initialize referrer state and short url\n * @param connection\n * @param referrer\n * @param newShortUrl\n */\nexport const updateReferrerStateAndShortUrl = async ({\n connection,\n referrer,\n newShortUrl,\n programId = PROGRAM_ID,\n}: {\n connection: Connection;\n referrer: Keypair;\n newShortUrl: string;\n programId?: PublicKey;\n}) => {\n const deleteIxn = await getDeleteReferrerStateAndShortUrlIxns({\n referrer: referrer.publicKey,\n connection,\n programId,\n });\n\n const initIxn = getInitReferrerStateAndShortUrlIxns({\n referrer: referrer.publicKey,\n shortUrl: newShortUrl,\n programId,\n });\n\n const tx = await buildVersionedTransaction(connection, referrer.publicKey, [deleteIxn, initIxn]);\n\n console.log('Update ReferrerState for referrer ' + referrer.publicKey.toBase58() + ' and shortUrl ' + newShortUrl);\n\n return await buildAndSendTxnWithLogs(connection, tx, referrer, [referrer]);\n};\n\n/**\n * Check if short URL available - also checks if short URL is valid (ascii-alphanumeric plus '_' '-', max 32 chars)\n * @param connection\n * @param shortUrl\n * @param programId\n */\nexport async function isShortUrlAvailable(\n connection: Connection,\n shortUrl: string,\n programId: PublicKey = PROGRAM_ID\n): Promise<boolean> {\n if (shortUrl.length > 32) {\n return false;\n }\n\n if (!/^[a-zA-Z0-9-_]+$/.test(shortUrl)) {\n return false;\n }\n\n const [shortUrlAddress] = shortUrlPda(shortUrl, programId);\n const info = await connection.getAccountInfo(shortUrlAddress);\n return info === null;\n}\n\n/**\n * Get referrer short URL address and shortUrl\n * @param connection\n * @param referrer\n * @param programId\n */\nexport async function getReferrerShortUrl(\n connection: Connection,\n referrer: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Promise<[PublicKey | null, string | null]> {\n const [referrerStateAddress] = referrerStatePda(referrer, programId);\n const referrerState = await ReferrerState.fetch(connection, referrerStateAddress, programId);\n const shortUrlState = await ShortUrl.fetch(connection, referrerState!.shortUrl, programId);\n const shortUrlAddress = referrerState ? referrerState.shortUrl : null;\n const shortUrl = shortUrlState ? shortUrlState.shortUrl : null;\n return [shortUrlAddress, shortUrl];\n}\n\n/**\n * Get referrer for a given Short URL\n * @param connection\n * @param shortUrl\n * @param programId\n */\nexport async function getReferrerForShortUrl(\n connection: Connection,\n shortUrl: string,\n programId: PublicKey = PROGRAM_ID\n): Promise<PublicKey> {\n const [shortUrlAddress] = shortUrlPda(shortUrl, programId);\n const shortUrlState = await ShortUrl.fetch(connection, shortUrlAddress, programId);\n return shortUrlState!.referrer;\n}\n\n/**\n * Get referrer all UserMetadata user accounts linked to a given referrer\n * @param connection\n * @param referrer\n * @param programId\n */\nexport async function getUserMetadatasByReferrer(\n connection: Connection,\n referrer: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Promise<UserMetadata[]> {\n const userMetadatas = await connection.getProgramAccounts(programId, {\n filters: [\n {\n dataSize: UserMetadata.layout.span + 8,\n },\n {\n memcmp: {\n offset: 8,\n bytes: referrer.toBase58(),\n },\n },\n ],\n });\n\n return userMetadatas.map((userMetadata) => {\n if (userMetadata.account === null) {\n throw new Error('Invalid account');\n }\n if (!userMetadata.account.owner.equals(programId)) {\n throw new Error(\"account doesn't belong to this program\");\n }\n\n const userMetadataAccount = UserMetadata.decode(userMetadata.account.data);\n\n if (!userMetadataAccount) {\n throw Error('Could not parse obligation.');\n }\n\n return userMetadataAccount;\n });\n}\n\n/**\n * Get referrer all UserMetadata user accounts\n * @param connection\n * @param referrer\n * @param programId\n */\nexport async function getAllUserMetadatas(\n connection: Connection,\n programId: PublicKey = PROGRAM_ID\n): Promise<UserMetadata[]> {\n const userMetadatas = await connection.getProgramAccounts(programId, {\n filters: [\n {\n dataSize: UserMetadata.layout.span + 8,\n },\n ],\n });\n\n return userMetadatas.map((userMetadata) => {\n if (userMetadata.account === null) {\n throw new Error('Invalid account');\n }\n if (!userMetadata.account.owner.equals(programId)) {\n throw new Error(\"account doesn't belong to this program\");\n }\n\n const userMetadataAccount = UserMetadata.decode(userMetadata.account.data);\n\n if (!userMetadataAccount) {\n throw Error('Could not parse obligation.');\n }\n\n return userMetadataAccount;\n });\n}\n\n/**\n * Get referrer all UserMetadata user accounts linked to a given referrer\n * @param connection\n * @param referrer\n * @param programId\n */\nexport async function getTotalUsersReferred(\n connection: Connection,\n referrer: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Promise<number> {\n const userMetadatas = await getUserMetadatasByReferrer(connection, referrer, programId);\n return userMetadatas.length;\n}\n\nexport type ReferralRank = {\n referrer: PublicKey;\n totalUsersReferred: number;\n totalEarningsUsd: Decimal;\n};\n\n/**\n * Get ReferralRank array of all referrers ordered by how much they've earned in USD\n * @param connection\n * @param kaminoMarket\n */\nexport async function getReferralsRanking(connection: Connection, kaminoMarket: KaminoMarket): Promise<ReferralRank[]> {\n const referrersUsersReferred = new PublicKeyMap<PublicKey, number>();\n\n // counting users referred for each referrer\n const userMetadatas = await getAllUserMetadatas(connection, kaminoMarket.programId);\n for (const userMetadata of userMetadatas) {\n const referrer = userMetadata.referrer;\n const usersReferred = referrersUsersReferred.get(referrer);\n if (usersReferred) {\n referrersUsersReferred.set(referrer, usersReferred + 1);\n } else {\n referrersUsersReferred.set(referrer, 1);\n }\n }\n\n const referralsRankArray: ReferralRank[] = [];\n\n for (const referrer of referrersUsersReferred.keys()) {\n const referrerTokenStates = await kaminoMarket.getAllReferrerFeesCumulative(referrer);\n let totalEarningsUsd = new Decimal(0);\n // calculating earnings for each referrer\n for (const reserve of kaminoMarket.reserves.values()) {\n totalEarningsUsd = totalEarningsUsd.add(\n referrerTokenStates.get(reserve.getLiquidityMint())!.mul(reserve.getOracleMarketPrice())\n );\n }\n\n referralsRankArray.push({\n referrer: new PublicKey(referrer),\n totalUsersReferred: referrersUsersReferred.get(referrer)!,\n totalEarningsUsd: totalEarningsUsd,\n });\n }\n\n referralsRankArray.sort((a, b) => {\n return b.totalEarningsUsd.comparedTo(a.totalEarningsUsd);\n });\n\n return referralsRankArray;\n}\n\n/**\n * Get ReferralRank array of all referrers ordered by how much they've earned in USD\n * @param connection\n * @param user\n * @param programId\n */\nexport async function getUserReferralRanking(connection: Connection, user: PublicKey, kaminoMarket: KaminoMarket) {\n const referralsRanking = await getReferralsRanking(connection, kaminoMarket);\n\n for (let index = 0; index < referralsRanking.length; index++) {\n if (user.equals(referralsRanking[index].referrer)) {\n return index + 1;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/referrals/operations.ts"],"names":[],"mappings":"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"}
|