@kamino-finance/kliquidity-sdk 8.4.5 → 8.4.6
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/@codegen/kliquidity/instructions/addKaminoRewards.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/addKaminoRewards.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/changePool.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/changePool.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/checkExpectedVaultsBalances.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/checkExpectedVaultsBalances.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/closeProgramAccount.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/closeProgramAccount.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/closeStrategy.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/closeStrategy.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/collectFeesAndRewards.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/collectFeesAndRewards.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/deposit.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/deposit.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/depositAndInvest.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/depositAndInvest.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/emergencySwap.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/emergencySwap.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/executiveWithdraw.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/executiveWithdraw.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/flashSwapUnevenVaultsEnd.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/flashSwapUnevenVaultsEnd.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/flashSwapUnevenVaultsStart.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/flashSwapUnevenVaultsStart.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/initializeCollateralInfo.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/initializeCollateralInfo.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/initializeGlobalConfig.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/initializeGlobalConfig.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/initializeKaminoReward.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/initializeKaminoReward.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/initializeSharesMetadata.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/initializeSharesMetadata.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/initializeStrategy.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/initializeStrategy.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/insertCollateralInfo.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/insertCollateralInfo.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/invest.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/invest.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/openLiquidityPosition.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/openLiquidityPosition.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/orcaSwap.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/orcaSwap.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/permisionlessWithdrawFromTreasury.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/permisionlessWithdrawFromTreasury.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/signTerms.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/signTerms.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/singleTokenDepositAndInvestWithMin.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/singleTokenDepositAndInvestWithMin.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/singleTokenDepositWithMin.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/singleTokenDepositWithMin.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/swapRewards.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/swapRewards.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/updateCollateralInfo.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/updateCollateralInfo.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/updateGlobalConfig.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/updateGlobalConfig.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/updateRewardMapping.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/updateRewardMapping.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/updateSharesMetadata.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/updateSharesMetadata.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/updateStrategyAdmin.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/updateStrategyAdmin.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/updateStrategyConfig.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/updateStrategyConfig.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/updateTreasuryFeeVault.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/updateTreasuryFeeVault.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/withdraw.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/withdraw.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/withdrawFromTopup.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/withdrawFromTopup.d.ts.map +1 -1
- package/dist/@codegen/kliquidity/instructions/withdrawFromTreasury.d.ts +2 -2
- package/dist/@codegen/kliquidity/instructions/withdrawFromTreasury.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/addLiquidity.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/addLiquidity.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/addLiquidityByStrategy.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/addLiquidityByStrategy.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/addLiquidityByStrategyOneSide.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/addLiquidityByStrategyOneSide.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/addLiquidityByWeight.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/addLiquidityByWeight.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/addLiquidityOneSide.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/addLiquidityOneSide.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/addLiquidityOneSidePrecise.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/addLiquidityOneSidePrecise.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/claimFee.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/claimFee.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/claimReward.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/claimReward.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/closePosition.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/closePosition.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/closePresetParameter.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/closePresetParameter.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/fundReward.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/fundReward.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/goToABin.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/goToABin.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/increaseOracleLength.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/increaseOracleLength.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/initializeBinArray.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/initializeBinArray.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/initializeBinArrayBitmapExtension.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/initializeBinArrayBitmapExtension.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/initializeLbPair.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/initializeLbPair.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/initializePermissionLbPair.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/initializePermissionLbPair.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/initializePosition.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/initializePosition.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/initializePositionByOperator.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/initializePositionByOperator.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/initializePositionPda.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/initializePositionPda.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/initializePresetParameter.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/initializePresetParameter.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/initializeReward.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/initializeReward.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/migrateBinArray.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/migrateBinArray.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/migratePosition.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/migratePosition.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/removeAllLiquidity.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/removeAllLiquidity.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/removeLiquidity.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/removeLiquidity.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/removeLiquidityByRange.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/removeLiquidityByRange.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/setActivationSlot.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/setActivationSlot.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/setLockReleaseSlot.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/setLockReleaseSlot.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/setPreActivationSlotDuration.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/setPreActivationSlotDuration.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/setPreActivationSwapAddress.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/setPreActivationSwapAddress.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/swap.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/swap.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/togglePairStatus.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/togglePairStatus.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/updateFeeOwner.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/updateFeeOwner.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/updateFeeParameters.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/updateFeeParameters.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/updateFeesAndRewards.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/updateFeesAndRewards.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/updatePositionOperator.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/updatePositionOperator.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/updateRewardDuration.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/updateRewardDuration.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/updateRewardFunder.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/updateRewardFunder.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/updateWhitelistedWallet.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/updateWhitelistedWallet.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/withdrawIneligibleReward.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/withdrawIneligibleReward.d.ts.map +1 -1
- package/dist/@codegen/meteora/instructions/withdrawProtocolFee.d.ts +2 -2
- package/dist/@codegen/meteora/instructions/withdrawProtocolFee.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/closePosition.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/closePosition.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/collectFundFee.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/collectFundFee.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/collectProtocolFee.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/collectProtocolFee.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/collectRemainingRewards.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/collectRemainingRewards.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/createAmmConfig.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/createAmmConfig.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/createOperationAccount.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/createOperationAccount.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/createPool.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/createPool.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/decreaseLiquidity.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/decreaseLiquidity.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/decreaseLiquidityV2.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/decreaseLiquidityV2.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/increaseLiquidity.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/increaseLiquidity.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/increaseLiquidityV2.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/increaseLiquidityV2.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/initializeReward.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/initializeReward.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/openPosition.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/openPosition.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/openPositionV2.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/openPositionV2.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/setRewardParams.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/setRewardParams.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/swap.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/swap.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/swapRouterBaseIn.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/swapRouterBaseIn.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/swapV2.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/swapV2.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/transferRewardOwner.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/transferRewardOwner.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/updateAmmConfig.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/updateAmmConfig.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/updateOperationAccount.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/updateOperationAccount.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/updatePoolStatus.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/updatePoolStatus.d.ts.map +1 -1
- package/dist/@codegen/raydium/instructions/updateRewardInfos.d.ts +2 -2
- package/dist/@codegen/raydium/instructions/updateRewardInfos.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/closeBundledPosition.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/closeBundledPosition.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/closePosition.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/closePosition.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/collectFees.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/collectFees.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/collectFeesV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/collectFeesV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/collectProtocolFees.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/collectProtocolFees.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/collectProtocolFeesV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/collectProtocolFeesV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/collectReward.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/collectReward.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/collectRewardV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/collectRewardV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/decreaseLiquidity.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/decreaseLiquidity.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/decreaseLiquidityV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/decreaseLiquidityV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/deletePositionBundle.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/deletePositionBundle.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/deleteTokenBadge.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/deleteTokenBadge.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/increaseLiquidity.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/increaseLiquidity.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/increaseLiquidityV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/increaseLiquidityV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializeConfig.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializeConfig.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializeConfigExtension.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializeConfigExtension.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializeFeeTier.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializeFeeTier.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializePool.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializePool.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializePoolV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializePoolV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializePositionBundle.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializePositionBundle.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializePositionBundleWithMetadata.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializePositionBundleWithMetadata.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializeReward.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializeReward.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializeRewardV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializeRewardV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializeTickArray.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializeTickArray.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/initializeTokenBadge.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/initializeTokenBadge.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/openBundledPosition.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/openBundledPosition.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/openPosition.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/openPosition.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/openPositionWithMetadata.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/openPositionWithMetadata.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setCollectProtocolFeesAuthority.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setCollectProtocolFeesAuthority.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setConfigExtensionAuthority.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setConfigExtensionAuthority.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setDefaultFeeRate.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setDefaultFeeRate.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setDefaultProtocolFeeRate.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setDefaultProtocolFeeRate.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setFeeAuthority.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setFeeAuthority.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setFeeRate.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setFeeRate.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setProtocolFeeRate.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setProtocolFeeRate.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setRewardAuthority.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setRewardAuthority.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setRewardAuthorityBySuperAuthority.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setRewardAuthorityBySuperAuthority.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setRewardEmissions.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setRewardEmissions.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setRewardEmissionsSuperAuthority.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setRewardEmissionsSuperAuthority.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setRewardEmissionsV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setRewardEmissionsV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/setTokenBadgeAuthority.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/setTokenBadgeAuthority.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/swap.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/swap.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/swapV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/swapV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/twoHopSwap.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/twoHopSwap.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/twoHopSwapV2.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/twoHopSwapV2.d.ts.map +1 -1
- package/dist/@codegen/whirlpools/instructions/updateFeesAndRewards.d.ts +2 -2
- package/dist/@codegen/whirlpools/instructions/updateFeesAndRewards.d.ts.map +1 -1
- package/dist/Kamino.d.ts +35 -39
- package/dist/Kamino.d.ts.map +1 -1
- package/dist/Kamino.js +3 -7
- package/dist/Kamino.js.map +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/services/JupService.d.ts +11 -11
- package/dist/services/JupService.d.ts.map +1 -1
- package/dist/services/JupService.js.map +1 -1
- package/dist/services/MeteoraPoolsResponse.d.ts +60 -0
- package/dist/services/MeteoraPoolsResponse.d.ts.map +1 -0
- package/dist/services/MeteoraPoolsResponse.js +3 -0
- package/dist/services/MeteoraPoolsResponse.js.map +1 -0
- package/dist/services/MeteoraService.d.ts +3 -0
- package/dist/services/MeteoraService.d.ts.map +1 -1
- package/dist/services/MeteoraService.js +55 -0
- package/dist/services/MeteoraService.js.map +1 -1
- package/dist/services/OrcaService.d.ts +1 -2
- package/dist/services/OrcaService.d.ts.map +1 -1
- package/dist/services/OrcaService.js +1 -1
- package/dist/services/OrcaService.js.map +1 -1
- package/dist/services/RaydiumService.d.ts +17 -5
- package/dist/services/RaydiumService.d.ts.map +1 -1
- package/dist/services/RaydiumService.js +245 -9
- package/dist/services/RaydiumService.js.map +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/dist/utils/jupiter.d.ts +3 -3
- package/dist/utils/jupiter.d.ts.map +1 -1
- package/dist/utils/jupiter.js +5 -5
- package/dist/utils/jupiter.js.map +1 -1
- package/dist/utils/tokenUtils.d.ts +8 -3
- package/dist/utils/tokenUtils.d.ts.map +1 -1
- package/dist/utils/tokenUtils.js +27 -5
- package/dist/utils/tokenUtils.js.map +1 -1
- package/dist/utils/transactions.d.ts +5 -5
- package/dist/utils/transactions.d.ts.map +1 -1
- package/dist/utils/transactions.js.map +1 -1
- package/dist/utils/types.d.ts +15 -15
- package/dist/utils/types.d.ts.map +1 -1
- package/dist/utils/types.js.map +1 -1
- package/dist/utils/utils.d.ts +5 -2
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +16 -0
- package/dist/utils/utils.js.map +1 -1
- package/package.json +1 -2
- package/src/Kamino.ts +49 -56
- package/src/constants/index.ts +1 -0
- package/src/services/JupService.ts +17 -12
- package/src/services/MeteoraPoolsResponse.ts +61 -0
- package/src/services/MeteoraService.ts +64 -1
- package/src/services/OrcaService.ts +0 -2
- package/src/services/RaydiumService.ts +334 -18
- package/src/services/index.ts +2 -0
- package/src/utils/jupiter.ts +4 -4
- package/src/utils/tokenUtils.ts +39 -7
- package/src/utils/transactions.ts +9 -9
- package/src/utils/types.ts +15 -15
- package/src/utils/utils.ts +17 -2
package/src/Kamino.ts
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
GetProgramAccountsDatasizeFilter,
|
|
12
12
|
GetProgramAccountsMemcmpFilter,
|
|
13
13
|
getProgramDerivedAddress,
|
|
14
|
-
|
|
14
|
+
Instruction,
|
|
15
15
|
isAddress,
|
|
16
16
|
isSome,
|
|
17
17
|
JsonParsedTokenAccount,
|
|
@@ -345,7 +345,6 @@ import {
|
|
|
345
345
|
} from '@solana-program/address-lookup-table';
|
|
346
346
|
import { fetchMultipleLookupTableAccounts } from './utils/lookupTable';
|
|
347
347
|
import type { AccountInfoBase, AccountInfoWithJsonData, AccountInfoWithPubkey } from '@solana/rpc-types';
|
|
348
|
-
import { Connection } from '@solana/web3.js';
|
|
349
348
|
import { toLegacyPublicKey } from './utils/compat';
|
|
350
349
|
import { IncreaseLiquidityQuoteParam } from '@orca-so/whirlpools';
|
|
351
350
|
|
|
@@ -354,7 +353,6 @@ const addressEncoder = getAddressEncoder();
|
|
|
354
353
|
export class Kamino {
|
|
355
354
|
private readonly _cluster: SolanaCluster;
|
|
356
355
|
private readonly _rpc: Rpc<SolanaRpcApi>;
|
|
357
|
-
private readonly _legacyConnection: Connection;
|
|
358
356
|
readonly _config: HubbleConfig;
|
|
359
357
|
private _globalConfig: Address;
|
|
360
358
|
private readonly _scope: Scope;
|
|
@@ -368,7 +366,6 @@ export class Kamino {
|
|
|
368
366
|
* Create a new instance of the Kamino SDK class.
|
|
369
367
|
* @param cluster Name of the Solana cluster
|
|
370
368
|
* @param rpc Connection to the Solana cluster
|
|
371
|
-
* @param legacyConnection Connection to the Solana cluster
|
|
372
369
|
* @param globalConfig override kamino global config
|
|
373
370
|
* @param programId override kamino program id
|
|
374
371
|
* @param whirlpoolProgramId override whirlpool program id
|
|
@@ -379,7 +376,6 @@ export class Kamino {
|
|
|
379
376
|
constructor(
|
|
380
377
|
cluster: SolanaCluster,
|
|
381
378
|
rpc: Rpc<SolanaRpcApi>,
|
|
382
|
-
legacyConnection: Connection,
|
|
383
379
|
globalConfig?: Address,
|
|
384
380
|
programId?: Address,
|
|
385
381
|
whirlpoolProgramId?: Address,
|
|
@@ -389,7 +385,6 @@ export class Kamino {
|
|
|
389
385
|
) {
|
|
390
386
|
this._cluster = cluster;
|
|
391
387
|
this._rpc = rpc;
|
|
392
|
-
this._legacyConnection = legacyConnection;
|
|
393
388
|
this._config = getConfigByCluster(cluster);
|
|
394
389
|
|
|
395
390
|
if (programId && programId === STAGING_KAMINO_PROGRAM_ID) {
|
|
@@ -401,8 +396,8 @@ export class Kamino {
|
|
|
401
396
|
}
|
|
402
397
|
|
|
403
398
|
this._scope = new Scope(cluster, rpc);
|
|
404
|
-
this._orcaService = new OrcaService(rpc,
|
|
405
|
-
this._raydiumService = new RaydiumService(rpc,
|
|
399
|
+
this._orcaService = new OrcaService(rpc, whirlpoolProgramId);
|
|
400
|
+
this._raydiumService = new RaydiumService(rpc, raydiumProgramId);
|
|
406
401
|
this._meteoraService = new MeteoraService(rpc, meteoraProgramId);
|
|
407
402
|
|
|
408
403
|
if (jupBaseAPI) {
|
|
@@ -412,8 +407,6 @@ export class Kamino {
|
|
|
412
407
|
|
|
413
408
|
getConnection = () => this._rpc;
|
|
414
409
|
|
|
415
|
-
getLegacyConnection = () => this._legacyConnection;
|
|
416
|
-
|
|
417
410
|
getProgramID = () => this._kliquidityProgramId;
|
|
418
411
|
|
|
419
412
|
setGlobalConfig = (globalConfig: Address) => {
|
|
@@ -2770,7 +2763,7 @@ export class Kamino {
|
|
|
2770
2763
|
};
|
|
2771
2764
|
|
|
2772
2765
|
let withdrawIx = withdraw(args, accounts, this.getProgramID());
|
|
2773
|
-
let collectFeesAndRewardsIxns:
|
|
2766
|
+
let collectFeesAndRewardsIxns: Instruction[] = [];
|
|
2774
2767
|
|
|
2775
2768
|
// for Raydium strats we need to collect fees and rewards before withdrawal
|
|
2776
2769
|
// add rewards vaults accounts to withdraw
|
|
@@ -2913,8 +2906,8 @@ export class Kamino {
|
|
|
2913
2906
|
tokenBAta: Address,
|
|
2914
2907
|
sharesMintData: Account<Token> | null,
|
|
2915
2908
|
sharesAta: Address
|
|
2916
|
-
): Promise<
|
|
2917
|
-
const instructions:
|
|
2909
|
+
): Promise<Instruction[]> => {
|
|
2910
|
+
const instructions: Instruction[] = [];
|
|
2918
2911
|
if (!tokenAData) {
|
|
2919
2912
|
const tokenProgramA =
|
|
2920
2913
|
strategyState.strategy.tokenATokenProgram === DEFAULT_PUBLIC_KEY
|
|
@@ -3130,7 +3123,7 @@ export class Kamino {
|
|
|
3130
3123
|
amountA: Decimal,
|
|
3131
3124
|
amountB: Decimal,
|
|
3132
3125
|
owner: TransactionSigner
|
|
3133
|
-
): Promise<
|
|
3126
|
+
): Promise<Instruction> => {
|
|
3134
3127
|
if (amountA.lessThanOrEqualTo(0) && amountB.lessThanOrEqualTo(0)) {
|
|
3135
3128
|
throw Error('Token A and B amount cant be lower than or equal to 0.');
|
|
3136
3129
|
}
|
|
@@ -3350,7 +3343,7 @@ export class Kamino {
|
|
|
3350
3343
|
user: TransactionSigner,
|
|
3351
3344
|
slippageBps: Decimal,
|
|
3352
3345
|
allAccounts: Address[]
|
|
3353
|
-
): Promise<[
|
|
3346
|
+
): Promise<[Instruction[], Address[]]> =>
|
|
3354
3347
|
this.getJupSwapIxsV6(
|
|
3355
3348
|
input,
|
|
3356
3349
|
tokenAMint,
|
|
@@ -3477,8 +3470,8 @@ export class Kamino {
|
|
|
3477
3470
|
tokenBMinPostDepositBalanceLamports
|
|
3478
3471
|
);
|
|
3479
3472
|
|
|
3480
|
-
const cleanupIxs:
|
|
3481
|
-
const createWsolAtasIxns:
|
|
3473
|
+
const cleanupIxs: Instruction[] = [];
|
|
3474
|
+
const createWsolAtasIxns: Instruction[] = [];
|
|
3482
3475
|
|
|
3483
3476
|
if (isSOLMint(strategyState.tokenAMint)) {
|
|
3484
3477
|
// read how much SOL the user has and calculate the amount to deposit and balance based on it
|
|
@@ -3646,13 +3639,13 @@ export class Kamino {
|
|
|
3646
3639
|
|
|
3647
3640
|
const singleSidedDepositIx = singleTokenDepositWithMin(args, accounts, this.getProgramID());
|
|
3648
3641
|
|
|
3649
|
-
let result:
|
|
3642
|
+
let result: Instruction[] = [];
|
|
3650
3643
|
if (includeAtaIxns) {
|
|
3651
3644
|
result.push(...createAtasIxns, ...createWsolAtasIxns);
|
|
3652
3645
|
}
|
|
3653
3646
|
|
|
3654
3647
|
// get all unique accounts in the tx so we can use the remaining space (MAX_ACCOUNTS_PER_TRANSACTION - accounts_used) for the swap
|
|
3655
|
-
const extractKeys = (ixs:
|
|
3648
|
+
const extractKeys = (ixs: Instruction[]) => ixs.flatMap((ix) => ix.accounts?.map((key) => key.address) || []);
|
|
3656
3649
|
|
|
3657
3650
|
const allKeys = [
|
|
3658
3651
|
...extractKeys(result),
|
|
@@ -3715,7 +3708,7 @@ export class Kamino {
|
|
|
3715
3708
|
* @param amountLamports Amount of SOL to deposit into topup vault
|
|
3716
3709
|
* @returns transaction instruction for adding SOL to topup vault
|
|
3717
3710
|
*/
|
|
3718
|
-
upkeepTopupVault = async (owner: TransactionSigner, amountLamports: Decimal): Promise<
|
|
3711
|
+
upkeepTopupVault = async (owner: TransactionSigner, amountLamports: Decimal): Promise<Instruction> => {
|
|
3719
3712
|
if (amountLamports.lessThanOrEqualTo(0)) {
|
|
3720
3713
|
throw Error('Must deposit a positive amount of SOL.');
|
|
3721
3714
|
}
|
|
@@ -3747,7 +3740,7 @@ export class Kamino {
|
|
|
3747
3740
|
* @param amount Amount of SOL to withdraw from the topup vault
|
|
3748
3741
|
* @returns transaction instruction for removing SOL from the topup vault
|
|
3749
3742
|
*/
|
|
3750
|
-
withdrawTopupVault = async (owner: TransactionSigner, amount: Decimal): Promise<
|
|
3743
|
+
withdrawTopupVault = async (owner: TransactionSigner, amount: Decimal): Promise<Instruction> => {
|
|
3751
3744
|
if (amount.lessThanOrEqualTo(0)) {
|
|
3752
3745
|
throw Error('Must withdraw a positive amount of SOL.');
|
|
3753
3746
|
}
|
|
@@ -3785,7 +3778,7 @@ export class Kamino {
|
|
|
3785
3778
|
maxAccounts: number,
|
|
3786
3779
|
profiler: ProfiledFunctionExecution = noopProfiledFunctionExecution,
|
|
3787
3780
|
onlyDirectRoutes?: boolean
|
|
3788
|
-
): Promise<[
|
|
3781
|
+
): Promise<[Instruction[], Address[]]> => {
|
|
3789
3782
|
const jupiterQuote = input.tokenAToSwapAmount.lt(ZERO)
|
|
3790
3783
|
? await profiler(
|
|
3791
3784
|
JupService.getBestRouteV6(
|
|
@@ -3816,7 +3809,7 @@ export class Kamino {
|
|
|
3816
3809
|
[]
|
|
3817
3810
|
);
|
|
3818
3811
|
|
|
3819
|
-
const allJupIxs:
|
|
3812
|
+
const allJupIxs: Instruction[] = [
|
|
3820
3813
|
...(jupiterQuote.tokenLedgerInstruction ? [jupiterQuote.tokenLedgerInstruction] : []),
|
|
3821
3814
|
...removeBudgetAndAtaIxns(jupiterQuote.setupInstructions, [tokenAMint, tokenBMint]),
|
|
3822
3815
|
jupiterQuote.swapInstruction,
|
|
@@ -3849,7 +3842,7 @@ export class Kamino {
|
|
|
3849
3842
|
existingAccounts: Address[],
|
|
3850
3843
|
profiledFunctionExecution: ProfiledFunctionExecution = noopProfiledFunctionExecution,
|
|
3851
3844
|
onlyDirectRoutes?: boolean
|
|
3852
|
-
): Promise<[
|
|
3845
|
+
): Promise<[Instruction[], Address[]]> => {
|
|
3853
3846
|
console.log('getJupSwapIxsV6', JSON.stringify(input));
|
|
3854
3847
|
|
|
3855
3848
|
let extraAccountsBuffer = 5;
|
|
@@ -3896,7 +3889,7 @@ export class Kamino {
|
|
|
3896
3889
|
tokenAAta: Address,
|
|
3897
3890
|
tokenBAta: Address,
|
|
3898
3891
|
expectedTokensBalances?: MaybeTokensBalances
|
|
3899
|
-
): Promise<
|
|
3892
|
+
): Promise<Instruction> => {
|
|
3900
3893
|
const { strategy: strategyState, address: _ } = strategy;
|
|
3901
3894
|
|
|
3902
3895
|
let expectedABalance: Decimal;
|
|
@@ -3956,7 +3949,7 @@ export class Kamino {
|
|
|
3956
3949
|
pool: Address,
|
|
3957
3950
|
owner: TransactionSigner,
|
|
3958
3951
|
dex: Dex
|
|
3959
|
-
): Promise<
|
|
3952
|
+
): Promise<Instruction> => {
|
|
3960
3953
|
let tokenAMint = DEFAULT_PUBLIC_KEY;
|
|
3961
3954
|
let tokenBMint = DEFAULT_PUBLIC_KEY;
|
|
3962
3955
|
if (dex === 'ORCA') {
|
|
@@ -4287,7 +4280,7 @@ export class Kamino {
|
|
|
4287
4280
|
* @param newStrategy public key of the new strategy
|
|
4288
4281
|
* @returns transaction instruction to create the account
|
|
4289
4282
|
*/
|
|
4290
|
-
createStrategyAccount = async (payer: TransactionSigner, newStrategy: TransactionSigner): Promise<
|
|
4283
|
+
createStrategyAccount = async (payer: TransactionSigner, newStrategy: TransactionSigner): Promise<Instruction> => {
|
|
4291
4284
|
const accountSize = BigInt(WhirlpoolStrategy.layout.span + 8);
|
|
4292
4285
|
return this.createAccountRentExempt(payer, newStrategy, accountSize);
|
|
4293
4286
|
};
|
|
@@ -4296,7 +4289,7 @@ export class Kamino {
|
|
|
4296
4289
|
payer: TransactionSigner,
|
|
4297
4290
|
newAccount: TransactionSigner,
|
|
4298
4291
|
size: bigint
|
|
4299
|
-
): Promise<
|
|
4292
|
+
): Promise<Instruction> => {
|
|
4300
4293
|
const lamports = await this._rpc.getMinimumBalanceForRentExemption(size).send();
|
|
4301
4294
|
return getCreateAccountInstruction({
|
|
4302
4295
|
newAccount,
|
|
@@ -4317,7 +4310,7 @@ export class Kamino {
|
|
|
4317
4310
|
collectFeesAndRewards = async (
|
|
4318
4311
|
strategy: Address | StrategyWithAddress,
|
|
4319
4312
|
owner: TransactionSigner
|
|
4320
|
-
): Promise<
|
|
4313
|
+
): Promise<Instruction> => {
|
|
4321
4314
|
const { address: strategyPubkey, strategy: strategyState } = await this.getStrategyStateIfNotFetched(strategy);
|
|
4322
4315
|
|
|
4323
4316
|
const eventAuthority = await this.getEventAuthorityPDA(strategyState.strategyDex);
|
|
@@ -4640,7 +4633,7 @@ export class Kamino {
|
|
|
4640
4633
|
priceLower: Decimal,
|
|
4641
4634
|
priceUpper: Decimal,
|
|
4642
4635
|
status: StrategyStatusKind = new Uninitialized()
|
|
4643
|
-
): Promise<
|
|
4636
|
+
): Promise<Instruction> => {
|
|
4644
4637
|
const { strategy: strategyState, address: strategyAddress } = await this.getStrategyStateIfNotFetched(strategy);
|
|
4645
4638
|
if (!strategyState) {
|
|
4646
4639
|
throw Error(`Could not fetch strategy state with pubkey ${strategy.toString()}`);
|
|
@@ -4765,7 +4758,7 @@ export class Kamino {
|
|
|
4765
4758
|
oldTickArrayLowerOrBaseVaultAuthority: Address,
|
|
4766
4759
|
oldTickArrayUpperOrBaseVaultAuthority: Address,
|
|
4767
4760
|
status: StrategyStatusKind = new Uninitialized()
|
|
4768
|
-
): Promise<
|
|
4761
|
+
): Promise<Instruction> => {
|
|
4769
4762
|
const whirlpool = await Whirlpool.fetch(this._rpc, pool, this._orcaService.getWhirlpoolProgramId());
|
|
4770
4763
|
if (!whirlpool) {
|
|
4771
4764
|
throw Error(`Could not fetch whirlpool state with pubkey ${pool.toString()}`);
|
|
@@ -4893,7 +4886,7 @@ export class Kamino {
|
|
|
4893
4886
|
strategyRewardOVault?: Address,
|
|
4894
4887
|
strategyReward1Vault?: Address,
|
|
4895
4888
|
strategyReward2Vault?: Address
|
|
4896
|
-
): Promise<
|
|
4889
|
+
): Promise<Instruction> => {
|
|
4897
4890
|
const poolState = await PoolState.fetch(this._rpc, pool, this._raydiumService.getRaydiumProgramId());
|
|
4898
4891
|
if (!poolState) {
|
|
4899
4892
|
throw Error(`Could not fetch Raydium pool state with pubkey ${pool.toString()}`);
|
|
@@ -5067,7 +5060,7 @@ export class Kamino {
|
|
|
5067
5060
|
oldTickArrayUpperOrBaseVaultAuthority: Address,
|
|
5068
5061
|
eventAuthority: Option<Address>,
|
|
5069
5062
|
status: StrategyStatusKind = new Uninitialized()
|
|
5070
|
-
): Promise<
|
|
5063
|
+
): Promise<Instruction> => {
|
|
5071
5064
|
const lbPair = await LbPair.fetch(this._rpc, pool, this._meteoraService.getMeteoraProgramId());
|
|
5072
5065
|
if (!lbPair) {
|
|
5073
5066
|
throw Error(`Could not fetch meteora lbpair state with pubkey ${pool.toString()}`);
|
|
@@ -5170,7 +5163,7 @@ export class Kamino {
|
|
|
5170
5163
|
admin: TransactionSigner,
|
|
5171
5164
|
strategy: Address | StrategyWithAddress,
|
|
5172
5165
|
action: ExecutiveWithdrawActionKind
|
|
5173
|
-
): Promise<
|
|
5166
|
+
): Promise<Instruction> => {
|
|
5174
5167
|
const { address: strategyPubkey, strategy: strategyState } = await this.getStrategyStateIfNotFetched(strategy);
|
|
5175
5168
|
const eventAuthority = await this.getEventAuthorityPDA(strategyState.strategyDex);
|
|
5176
5169
|
|
|
@@ -5265,7 +5258,7 @@ export class Kamino {
|
|
|
5265
5258
|
admin: TransactionSigner,
|
|
5266
5259
|
strategy: Address | StrategyWithAddress,
|
|
5267
5260
|
referencePriceType: ReferencePriceTypeKind
|
|
5268
|
-
): Promise<
|
|
5261
|
+
): Promise<Instruction> => {
|
|
5269
5262
|
const { address } = await this.getStrategyStateIfNotFetched(strategy);
|
|
5270
5263
|
|
|
5271
5264
|
return getUpdateStrategyConfigIx(
|
|
@@ -5283,7 +5276,7 @@ export class Kamino {
|
|
|
5283
5276
|
* @param strategy strategy pubkey or object
|
|
5284
5277
|
* @param payer transaction payer
|
|
5285
5278
|
*/
|
|
5286
|
-
invest = async (strategy: Address | StrategyWithAddress, payer: TransactionSigner): Promise<
|
|
5279
|
+
invest = async (strategy: Address | StrategyWithAddress, payer: TransactionSigner): Promise<Instruction> => {
|
|
5287
5280
|
const strategyWithAddress = await this.getStrategyStateIfNotFetched(strategy);
|
|
5288
5281
|
if (!strategyWithAddress || !strategyWithAddress.strategy) {
|
|
5289
5282
|
throw Error(`Could not fetch strategy state with pubkey ${strategy.toString()}`);
|
|
@@ -5335,7 +5328,7 @@ export class Kamino {
|
|
|
5335
5328
|
* @param strategy strategy pubkey or object
|
|
5336
5329
|
* @param payer transaction payer
|
|
5337
5330
|
*/
|
|
5338
|
-
compound = async (strategy: Address | StrategyWithAddress, payer: TransactionSigner): Promise<
|
|
5331
|
+
compound = async (strategy: Address | StrategyWithAddress, payer: TransactionSigner): Promise<Instruction[]> => {
|
|
5339
5332
|
// fetch here so the underlying instructions won't need to fetch
|
|
5340
5333
|
const strategyWithAddress = await this.getStrategyStateIfNotFetched(strategy);
|
|
5341
5334
|
if (!strategyWithAddress) {
|
|
@@ -5435,7 +5428,7 @@ export class Kamino {
|
|
|
5435
5428
|
strategyAdmin: TransactionSigner,
|
|
5436
5429
|
strategy: Address | StrategyWithAddress,
|
|
5437
5430
|
rebalanceFieldInfos: RebalanceFieldInfo[]
|
|
5438
|
-
): Promise<
|
|
5431
|
+
): Promise<Instruction> => {
|
|
5439
5432
|
const rebalanceType = getRebalanceTypeFromRebalanceFields(rebalanceFieldInfos);
|
|
5440
5433
|
const strategyWithAddress = await this.getStrategyStateIfNotFetched(strategy);
|
|
5441
5434
|
if (!strategyWithAddress || !strategyWithAddress.strategy) {
|
|
@@ -5482,7 +5475,7 @@ export class Kamino {
|
|
|
5482
5475
|
rebalanceType?: RebalanceTypeKind,
|
|
5483
5476
|
tokenADecimals?: number,
|
|
5484
5477
|
tokenBDecimals?: number
|
|
5485
|
-
): Promise<
|
|
5478
|
+
): Promise<Instruction> => {
|
|
5486
5479
|
const { address: strategyAddress, strategy: strategyState } = await this.getStrategyStateIfNotFetched(strategy);
|
|
5487
5480
|
if (!rebalanceType) {
|
|
5488
5481
|
rebalanceType = numberToRebalanceType(strategyState.rebalanceType);
|
|
@@ -5520,7 +5513,7 @@ export class Kamino {
|
|
|
5520
5513
|
rebalanceType: RebalanceTypeKind,
|
|
5521
5514
|
tokenADecimals: number,
|
|
5522
5515
|
tokenBDecimals: number
|
|
5523
|
-
): Promise<
|
|
5516
|
+
): Promise<Instruction> => {
|
|
5524
5517
|
const value = buildStrategyRebalanceParams(rebalanceParams, rebalanceType, tokenADecimals, tokenBDecimals);
|
|
5525
5518
|
const args: UpdateStrategyConfigArgs = {
|
|
5526
5519
|
mode: StrategyConfigOption.UpdateRebalanceParams.discriminator,
|
|
@@ -5624,7 +5617,7 @@ export class Kamino {
|
|
|
5624
5617
|
const tokenATokenProgram = await this.getAccountOwner(tokenAMint);
|
|
5625
5618
|
const tokenBTokenProgram = await this.getAccountOwner(tokenBMint);
|
|
5626
5619
|
|
|
5627
|
-
const initStrategyIx:
|
|
5620
|
+
const initStrategyIx: Instruction = await this.createStrategy(strategy, pool, strategyAdmin, dex);
|
|
5628
5621
|
|
|
5629
5622
|
const tokenADecimals = await getMintDecimals(this._rpc, tokenMintA);
|
|
5630
5623
|
const tokenBDecimals = await getMintDecimals(this._rpc, tokenMintB);
|
|
@@ -5662,7 +5655,7 @@ export class Kamino {
|
|
|
5662
5655
|
rebalanceParams
|
|
5663
5656
|
);
|
|
5664
5657
|
|
|
5665
|
-
const openPositionIxs:
|
|
5658
|
+
const openPositionIxs: Instruction[] = [];
|
|
5666
5659
|
const eventAuthority = await this.getEventAuthorityPDA(new BN(dexToNumber(dex)));
|
|
5667
5660
|
if (dex === 'ORCA') {
|
|
5668
5661
|
const whirlpoolWithAddress = await this.getWhirlpoolStateIfNotFetched(pool);
|
|
@@ -6382,7 +6375,7 @@ export class Kamino {
|
|
|
6382
6375
|
}
|
|
6383
6376
|
};
|
|
6384
6377
|
|
|
6385
|
-
getInitLookupTableIx = async (authority: TransactionSigner, slot?: Slot): Promise<[
|
|
6378
|
+
getInitLookupTableIx = async (authority: TransactionSigner, slot?: Slot): Promise<[Instruction, Address]> => {
|
|
6386
6379
|
let recentSlot: Slot;
|
|
6387
6380
|
if (slot) {
|
|
6388
6381
|
recentSlot = slot;
|
|
@@ -6404,7 +6397,7 @@ export class Kamino {
|
|
|
6404
6397
|
authority: TransactionSigner,
|
|
6405
6398
|
lookupTable: Address,
|
|
6406
6399
|
strategy: Address | StrategyWithAddress
|
|
6407
|
-
): Promise<
|
|
6400
|
+
): Promise<Instruction[]> => {
|
|
6408
6401
|
const { strategy: strategyState, address } = await this.getStrategyStateIfNotFetched(strategy);
|
|
6409
6402
|
if (!strategyState) {
|
|
6410
6403
|
throw Error(`Could not fetch strategy state with pubkey ${strategy.toString()}`);
|
|
@@ -6439,9 +6432,9 @@ export class Kamino {
|
|
|
6439
6432
|
authority: TransactionSigner,
|
|
6440
6433
|
lookupTable: Address,
|
|
6441
6434
|
entries: Address[]
|
|
6442
|
-
):
|
|
6435
|
+
): Instruction[] => {
|
|
6443
6436
|
const chunkSize = 20;
|
|
6444
|
-
const txs:
|
|
6437
|
+
const txs: Instruction[] = [];
|
|
6445
6438
|
for (let i = 0; i < entries.length; i += chunkSize) {
|
|
6446
6439
|
const chunk = entries.slice(i, i + chunkSize);
|
|
6447
6440
|
txs.push(
|
|
@@ -6470,9 +6463,9 @@ export class Kamino {
|
|
|
6470
6463
|
slot?: Slot
|
|
6471
6464
|
): Promise<{
|
|
6472
6465
|
lookupTable: Address;
|
|
6473
|
-
createLookupTableIx:
|
|
6474
|
-
populateLookupTableIxs:
|
|
6475
|
-
updateStrategyLookupTableIx:
|
|
6466
|
+
createLookupTableIx: Instruction;
|
|
6467
|
+
populateLookupTableIxs: Instruction[];
|
|
6468
|
+
updateStrategyLookupTableIx: Instruction;
|
|
6476
6469
|
}> => {
|
|
6477
6470
|
const [createLookupTableIx, lookupTable] = await this.getInitLookupTableIx(authority, slot);
|
|
6478
6471
|
const populateLookupTableIxs = await this.getPopulateLookupTableIxs(authority, lookupTable, strategy);
|
|
@@ -6582,11 +6575,11 @@ export class Kamino {
|
|
|
6582
6575
|
newPosition: TransactionSigner,
|
|
6583
6576
|
priceLower: Decimal,
|
|
6584
6577
|
priceUpper: Decimal
|
|
6585
|
-
): Promise<
|
|
6578
|
+
): Promise<Instruction[]> => {
|
|
6586
6579
|
// todo: refactor this to return an object, not a list
|
|
6587
6580
|
const strategyWithAddress = await this.getStrategyStateIfNotFetched(strategy);
|
|
6588
6581
|
|
|
6589
|
-
const ixs:
|
|
6582
|
+
const ixs: Instruction[] = [];
|
|
6590
6583
|
|
|
6591
6584
|
// if there are no invested tokens we don't need to collect fees and rewards
|
|
6592
6585
|
const stratTokenBalances = await this.getStrategyTokensBalances(strategyWithAddress.strategy);
|
|
@@ -7458,7 +7451,7 @@ export class Kamino {
|
|
|
7458
7451
|
* @param owner
|
|
7459
7452
|
* @param signature
|
|
7460
7453
|
*/
|
|
7461
|
-
async getUserTermsSignatureIx(owner: TransactionSigner, signature: Uint8Array): Promise<
|
|
7454
|
+
async getUserTermsSignatureIx(owner: TransactionSigner, signature: Uint8Array): Promise<Instruction> {
|
|
7462
7455
|
const pdaSeed = [Buffer.from('signature'), addressEncoder.encode(owner.address)];
|
|
7463
7456
|
const [signatureStateKey] = await getProgramDerivedAddress({ seeds: pdaSeed, programAddress: this.getProgramID() });
|
|
7464
7457
|
const args: SignTermsArgs = {
|
|
@@ -7702,7 +7695,7 @@ export class Kamino {
|
|
|
7702
7695
|
rebalanceType: Decimal,
|
|
7703
7696
|
withdrawFeeBps?: Decimal,
|
|
7704
7697
|
performanceFeeBps?: Decimal
|
|
7705
|
-
): Promise<
|
|
7698
|
+
): Promise<Instruction[]> => {
|
|
7706
7699
|
const updateRebalanceTypeIx = await getUpdateStrategyConfigIx(
|
|
7707
7700
|
strategyAdmin,
|
|
7708
7701
|
this._globalConfig,
|
|
@@ -7712,7 +7705,7 @@ export class Kamino {
|
|
|
7712
7705
|
this.getProgramID()
|
|
7713
7706
|
);
|
|
7714
7707
|
|
|
7715
|
-
let updateWithdrawalFeeIx:
|
|
7708
|
+
let updateWithdrawalFeeIx: Instruction | null = null;
|
|
7716
7709
|
if (withdrawFeeBps) {
|
|
7717
7710
|
updateWithdrawalFeeIx = await getUpdateStrategyConfigIx(
|
|
7718
7711
|
strategyAdmin,
|
|
@@ -7770,7 +7763,7 @@ export class Kamino {
|
|
|
7770
7763
|
getUpdateRewardsIxs = async (
|
|
7771
7764
|
strategyOwner: TransactionSigner,
|
|
7772
7765
|
strategy: Address | StrategyWithAddress
|
|
7773
|
-
): Promise<[
|
|
7766
|
+
): Promise<[Instruction, TransactionSigner][]> => {
|
|
7774
7767
|
const strategyWithAddress = await this.getStrategyStateIfNotFetched(strategy);
|
|
7775
7768
|
const strategyState = strategyWithAddress.strategy;
|
|
7776
7769
|
if (!strategyState) {
|
|
@@ -7781,7 +7774,7 @@ export class Kamino {
|
|
|
7781
7774
|
throw Error(`Could not fetch global config with pubkey ${strategyState.globalConfig.toString()}`);
|
|
7782
7775
|
}
|
|
7783
7776
|
const collateralInfos = await this.getCollateralInfo(globalConfig.tokenInfos);
|
|
7784
|
-
const result: [
|
|
7777
|
+
const result: [Instruction, TransactionSigner][] = [];
|
|
7785
7778
|
if (strategyState.strategyDex.toNumber() === dexToNumber('ORCA')) {
|
|
7786
7779
|
const whirlpool = await Whirlpool.fetch(this._rpc, strategyState.pool, this._orcaService.getWhirlpoolProgramId());
|
|
7787
7780
|
if (!whirlpool) {
|
package/src/constants/index.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { AccountRole, address, Address,
|
|
1
|
+
import { AccountRole, address, Address, Instruction as SolanaInstruction } from '@solana/kit';
|
|
2
2
|
import axios from 'axios';
|
|
3
3
|
import Decimal from 'decimal.js';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
QuoteResponse,
|
|
6
|
+
SwapInstructionsResponse as JupSwapInstructionsResponse,
|
|
7
|
+
createJupiterApiClient,
|
|
8
|
+
Instruction,
|
|
9
|
+
} from '@jup-ag/api';
|
|
5
10
|
|
|
6
11
|
const USDC_MINT = address('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v');
|
|
7
12
|
|
|
@@ -18,12 +23,12 @@ export type SwapTransactionsResponse = {
|
|
|
18
23
|
cleanupTransaction: string | undefined;
|
|
19
24
|
};
|
|
20
25
|
|
|
21
|
-
interface
|
|
22
|
-
tokenLedgerInstruction?:
|
|
23
|
-
computeBudgetInstructions: Array<
|
|
24
|
-
setupInstructions: Array<
|
|
25
|
-
swapInstruction:
|
|
26
|
-
cleanupInstruction?:
|
|
26
|
+
interface SwapInstructionsResponse {
|
|
27
|
+
tokenLedgerInstruction?: SolanaInstruction;
|
|
28
|
+
computeBudgetInstructions: Array<SolanaInstruction>;
|
|
29
|
+
setupInstructions: Array<SolanaInstruction>;
|
|
30
|
+
swapInstruction: SolanaInstruction;
|
|
31
|
+
cleanupInstruction?: SolanaInstruction;
|
|
27
32
|
addressLookupTableAddresses: Array<Address>;
|
|
28
33
|
}
|
|
29
34
|
|
|
@@ -38,7 +43,7 @@ export class JupService {
|
|
|
38
43
|
asLegacyTransaction?: boolean,
|
|
39
44
|
maxAccounts?: number,
|
|
40
45
|
onlyDirectRoutes?: boolean
|
|
41
|
-
): Promise<
|
|
46
|
+
): Promise<SwapInstructionsResponse> => {
|
|
42
47
|
try {
|
|
43
48
|
// https://lite-api.jup.ag/swap/v1/quote?inputMint=7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj&outputMint=mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So&amount=71101983&slippageBps=10&onlyDirectRoutes=false&asLegacyTransaction=false&maxAccounts=33
|
|
44
49
|
|
|
@@ -60,7 +65,7 @@ export class JupService {
|
|
|
60
65
|
},
|
|
61
66
|
});
|
|
62
67
|
|
|
63
|
-
const swapIxs:
|
|
68
|
+
const swapIxs: SwapInstructionsResponse = {
|
|
64
69
|
tokenLedgerInstruction: ixsResponse.tokenLedgerInstruction
|
|
65
70
|
? transformResponseIx(ixsResponse.tokenLedgerInstruction)
|
|
66
71
|
: undefined,
|
|
@@ -115,7 +120,7 @@ export class JupService {
|
|
|
115
120
|
quote: QuoteResponse,
|
|
116
121
|
wrapUnwrapSOL = true,
|
|
117
122
|
asLegacyTransaction?: boolean
|
|
118
|
-
): Promise<
|
|
123
|
+
): Promise<JupSwapInstructionsResponse> => {
|
|
119
124
|
try {
|
|
120
125
|
return await jupiterSwapApi.swapInstructionsPost({
|
|
121
126
|
swapRequest: {
|
|
@@ -196,7 +201,7 @@ export class JupService {
|
|
|
196
201
|
};
|
|
197
202
|
}
|
|
198
203
|
|
|
199
|
-
export function transformResponseIx(ix: Instruction):
|
|
204
|
+
export function transformResponseIx(ix: Instruction): SolanaInstruction {
|
|
200
205
|
return {
|
|
201
206
|
data: ix.data ? Buffer.from(ix.data, 'base64') : undefined,
|
|
202
207
|
programAddress: address(ix.programId),
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export interface MeteoraPoolsResponse {
|
|
2
|
+
pairs: MeteoraPoolAPI[];
|
|
3
|
+
total: number;
|
|
4
|
+
meta?: {
|
|
5
|
+
cursor?: {
|
|
6
|
+
previous: string | null;
|
|
7
|
+
next: string | null;
|
|
8
|
+
};
|
|
9
|
+
total?: number;
|
|
10
|
+
page?: number;
|
|
11
|
+
size?: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export interface MeteoraPoolAPI {
|
|
16
|
+
address: string;
|
|
17
|
+
name: string;
|
|
18
|
+
mint_x: string;
|
|
19
|
+
mint_y: string;
|
|
20
|
+
bin_step: number;
|
|
21
|
+
base_fee_percentage: string;
|
|
22
|
+
max_fee_percentage: string;
|
|
23
|
+
protocol_fee_percentage: string;
|
|
24
|
+
liquidity: string;
|
|
25
|
+
reward_fee_percentage: string;
|
|
26
|
+
fees_24h: string;
|
|
27
|
+
today_fees: string;
|
|
28
|
+
trade_volume_24h: string;
|
|
29
|
+
cumulative_trade_volume: string;
|
|
30
|
+
cumulative_fee_volume: string;
|
|
31
|
+
current_price: string;
|
|
32
|
+
apr: string;
|
|
33
|
+
apy: string;
|
|
34
|
+
farm_apr: string;
|
|
35
|
+
farm_apy: string;
|
|
36
|
+
hide: boolean;
|
|
37
|
+
pair_point_data?: {
|
|
38
|
+
pool_address: string;
|
|
39
|
+
total_point: string;
|
|
40
|
+
point_per_second: string;
|
|
41
|
+
updated_at: string;
|
|
42
|
+
};
|
|
43
|
+
token_x?: MeteoraTokenAPI;
|
|
44
|
+
token_y?: MeteoraTokenAPI;
|
|
45
|
+
active_bin?: {
|
|
46
|
+
bin_id: number;
|
|
47
|
+
price: string;
|
|
48
|
+
liquidity_x: string;
|
|
49
|
+
liquidity_y: string;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface MeteoraTokenAPI {
|
|
54
|
+
address: string;
|
|
55
|
+
name: string;
|
|
56
|
+
symbol: string;
|
|
57
|
+
decimals: number;
|
|
58
|
+
logo_uri?: string;
|
|
59
|
+
coingecko_id?: string;
|
|
60
|
+
tags?: string[];
|
|
61
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { address, Address, Base58EncodedBytes, Rpc, SolanaRpcApi } from '@solana/kit';
|
|
2
2
|
import Decimal from 'decimal.js';
|
|
3
|
+
import axios from 'axios';
|
|
3
4
|
import { WhirlpoolStrategy } from '../@codegen/kliquidity/accounts';
|
|
4
5
|
import {
|
|
5
6
|
aprToApy,
|
|
@@ -16,7 +17,7 @@ import { PROGRAM_ID as METEORA_PROGRAM_ID } from '../@codegen/meteora/programId'
|
|
|
16
17
|
import { getPriceOfBinByBinIdWithDecimals } from '../utils/meteora';
|
|
17
18
|
import { DEFAULT_PUBLIC_KEY } from '../constants/pubkeys';
|
|
18
19
|
import { decompress } from 'fzstd';
|
|
19
|
-
|
|
20
|
+
import { MeteoraPoolAPI, MeteoraPoolsResponse } from './MeteoraPoolsResponse';
|
|
20
21
|
|
|
21
22
|
export interface MeteoraPool {
|
|
22
23
|
key: Address;
|
|
@@ -26,10 +27,12 @@ export interface MeteoraPool {
|
|
|
26
27
|
export class MeteoraService {
|
|
27
28
|
private readonly _rpc: Rpc<SolanaRpcApi>;
|
|
28
29
|
private readonly _meteoraProgramId: Address;
|
|
30
|
+
private readonly _meteoraApiUrl: string;
|
|
29
31
|
|
|
30
32
|
constructor(rpc: Rpc<SolanaRpcApi>, meteoraProgramId: Address = METEORA_PROGRAM_ID) {
|
|
31
33
|
this._rpc = rpc;
|
|
32
34
|
this._meteoraProgramId = meteoraProgramId;
|
|
35
|
+
this._meteoraApiUrl = 'https://dlmm-api.meteora.ag';
|
|
33
36
|
}
|
|
34
37
|
|
|
35
38
|
getMeteoraProgramId(): Address {
|
|
@@ -67,6 +70,66 @@ export class MeteoraService {
|
|
|
67
70
|
return pools;
|
|
68
71
|
}
|
|
69
72
|
|
|
73
|
+
// Fetch all Meteora pools from their API with pagination support
|
|
74
|
+
async getMeteoraPoolsFromAPI(tokens: Address[] = [], maxPages = 300, maxPageSize = 100): Promise<MeteoraPoolAPI[]> {
|
|
75
|
+
const allPoolsAPI: MeteoraPoolAPI[] = [];
|
|
76
|
+
let offset = 0;
|
|
77
|
+
let hasMore = true;
|
|
78
|
+
let pageCount = 0;
|
|
79
|
+
|
|
80
|
+
// First, fetch all pool data from the API
|
|
81
|
+
while (hasMore && pageCount < maxPages) {
|
|
82
|
+
pageCount++;
|
|
83
|
+
const url = new URL(`${this._meteoraApiUrl}/pair/all_with_pagination`);
|
|
84
|
+
url.searchParams.set('limit', maxPageSize.toString());
|
|
85
|
+
url.searchParams.set('offset', offset.toString());
|
|
86
|
+
|
|
87
|
+
// Add token filtering if provided
|
|
88
|
+
if (tokens.length === 1) {
|
|
89
|
+
url.searchParams.set('token', tokens[0]);
|
|
90
|
+
} else if (tokens.length === 2) {
|
|
91
|
+
url.searchParams.set('token_x', tokens[0]);
|
|
92
|
+
url.searchParams.set('token_y', tokens[1]);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const response = await axios.get<MeteoraPoolsResponse>(url.toString());
|
|
96
|
+
const data = response.data;
|
|
97
|
+
|
|
98
|
+
// Add pools from this page to our collection
|
|
99
|
+
// The Meteora API returns { pairs: [...pools...], total: number }
|
|
100
|
+
if (data.pairs && Array.isArray(data.pairs) && data.pairs.length > 0) {
|
|
101
|
+
allPoolsAPI.push(...data.pairs);
|
|
102
|
+
offset += data.pairs.length;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Check if there are more pages
|
|
106
|
+
const responseLength = data.pairs ? data.pairs.length : 0;
|
|
107
|
+
if (responseLength < maxPageSize) {
|
|
108
|
+
hasMore = false;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Check total if available
|
|
112
|
+
if (data.total && allPoolsAPI.length >= data.total) {
|
|
113
|
+
hasMore = false;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Check pagination metadata if available
|
|
117
|
+
if (data.meta) {
|
|
118
|
+
if (data.meta.cursor && !data.meta.cursor.next) {
|
|
119
|
+
hasMore = false;
|
|
120
|
+
}
|
|
121
|
+
if (data.meta.total && allPoolsAPI.length >= data.meta.total) {
|
|
122
|
+
hasMore = false;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (pageCount >= maxPages) {
|
|
128
|
+
throw new Error(`Reached maximum page limit (${maxPages}). There might be more pools available.`);
|
|
129
|
+
}
|
|
130
|
+
return allPoolsAPI;
|
|
131
|
+
}
|
|
132
|
+
|
|
70
133
|
async getStrategyMeteoraPoolAprApy(strategy: WhirlpoolStrategy): Promise<WhirlpoolAprApy> {
|
|
71
134
|
const position = await this.getPosition(strategy.position);
|
|
72
135
|
|
|
@@ -21,7 +21,6 @@ import {
|
|
|
21
21
|
import { PROGRAM_ID as WHIRLPOOLS_PROGRAM_ID } from '../@codegen/whirlpools/programId';
|
|
22
22
|
import { CollateralInfo } from '../@codegen/kliquidity/types';
|
|
23
23
|
import { KaminoPrices } from '../models';
|
|
24
|
-
import { Connection } from '@solana/web3.js';
|
|
25
24
|
import { priceToTickIndex } from '@orca-so/whirlpools-core';
|
|
26
25
|
|
|
27
26
|
export class OrcaService {
|
|
@@ -31,7 +30,6 @@ export class OrcaService {
|
|
|
31
30
|
|
|
32
31
|
constructor(
|
|
33
32
|
rpc: Rpc<SolanaRpcApi>,
|
|
34
|
-
legacyConnection: Connection,
|
|
35
33
|
whirlpoolProgramId: Address = WHIRLPOOLS_PROGRAM_ID
|
|
36
34
|
) {
|
|
37
35
|
this._rpc = rpc;
|