@kestrelfi/lyc-sdk 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +11 -0
- package/README.md +207 -0
- package/dist/sdks/long-yield-carry/scripts/asyncBurn.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/asyncBurn.js +117 -0
- package/dist/sdks/long-yield-carry/scripts/burnToken.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/burnToken.js +98 -0
- package/dist/sdks/long-yield-carry/scripts/claimIncentives.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/claimIncentives.js +108 -0
- package/dist/sdks/long-yield-carry/scripts/closeCpiPlans.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/closeCpiPlans.js +93 -0
- package/dist/sdks/long-yield-carry/scripts/collectInterest.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/collectInterest.js +164 -0
- package/dist/sdks/long-yield-carry/scripts/collectProtocolFees.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/collectProtocolFees.js +120 -0
- package/dist/sdks/long-yield-carry/scripts/computeOptimalAllocations.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/computeOptimalAllocations.js +84 -0
- package/dist/sdks/long-yield-carry/scripts/createToken.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/createToken.js +76 -0
- package/dist/sdks/long-yield-carry/scripts/createTokenLendingPosition.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/createTokenLendingPosition.js +157 -0
- package/dist/sdks/long-yield-carry/scripts/createYieldingBank.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/createYieldingBank.js +69 -0
- package/dist/sdks/long-yield-carry/scripts/decreaseCarryPositions.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/decreaseCarryPositions.js +247 -0
- package/dist/sdks/long-yield-carry/scripts/depositUnlentCollateral.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/depositUnlentCollateral.js +90 -0
- package/dist/sdks/long-yield-carry/scripts/emergency/deleverageAll.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/emergency/deleverageAll.js +202 -0
- package/dist/sdks/long-yield-carry/scripts/emergency/triggerCircuitBreaker.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/emergency/triggerCircuitBreaker.js +68 -0
- package/dist/sdks/long-yield-carry/scripts/env.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/env.js +8 -0
- package/dist/sdks/long-yield-carry/scripts/findTxs.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/findTxs.js +143 -0
- package/dist/sdks/long-yield-carry/scripts/increaseCarryPositions.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/increaseCarryPositions.js +112 -0
- package/dist/sdks/long-yield-carry/scripts/inspect/format.d.ts +13 -0
- package/dist/sdks/long-yield-carry/scripts/inspect/format.js +363 -0
- package/dist/sdks/long-yield-carry/scripts/inspect.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/inspect.js +108 -0
- package/dist/sdks/long-yield-carry/scripts/localUtils.d.ts +53 -0
- package/dist/sdks/long-yield-carry/scripts/localUtils.js +191 -0
- package/dist/sdks/long-yield-carry/scripts/mintToken.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/mintToken.js +103 -0
- package/dist/sdks/long-yield-carry/scripts/processAsyncBurns.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/processAsyncBurns.js +76 -0
- package/dist/sdks/long-yield-carry/scripts/rebalanceToken.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/rebalanceToken.js +210 -0
- package/dist/sdks/long-yield-carry/scripts/rebalanceYieldingBank.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/rebalanceYieldingBank.js +149 -0
- package/dist/sdks/long-yield-carry/scripts/recollateralizeLoss.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/recollateralizeLoss.js +64 -0
- package/dist/sdks/long-yield-carry/scripts/refresh.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/refresh.js +101 -0
- package/dist/sdks/long-yield-carry/scripts/updateFees.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/updateFees.js +369 -0
- package/dist/sdks/long-yield-carry/scripts/updateGeneralLut.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/updateGeneralLut.js +27 -0
- package/dist/sdks/long-yield-carry/scripts/updateLendingPositionConfig.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/updateLendingPositionConfig.js +127 -0
- package/dist/sdks/long-yield-carry/scripts/updateTokenLuts.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/updateTokenLuts.js +27 -0
- package/dist/sdks/long-yield-carry/scripts/updateTokenMetadata.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/updateTokenMetadata.js +194 -0
- package/dist/sdks/long-yield-carry/scripts/updateYieldingBankConfig.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/updateYieldingBankConfig.js +84 -0
- package/dist/sdks/long-yield-carry/scripts/withdrawUnlentCollateral.d.ts +1 -0
- package/dist/sdks/long-yield-carry/scripts/withdrawUnlentCollateral.js +140 -0
- package/dist/sdks/long-yield-carry/src/client/account.d.ts +152 -0
- package/dist/sdks/long-yield-carry/src/client/account.js +349 -0
- package/dist/sdks/long-yield-carry/src/client/builders/args.d.ts +299 -0
- package/dist/sdks/long-yield-carry/src/client/builders/args.js +2 -0
- package/dist/sdks/long-yield-carry/src/client/builders/asyncBurnBuilder.d.ts +20 -0
- package/dist/sdks/long-yield-carry/src/client/builders/asyncBurnBuilder.js +212 -0
- package/dist/sdks/long-yield-carry/src/client/builders/base.d.ts +77 -0
- package/dist/sdks/long-yield-carry/src/client/builders/base.js +191 -0
- package/dist/sdks/long-yield-carry/src/client/builders/burnTokenBuilder.d.ts +18 -0
- package/dist/sdks/long-yield-carry/src/client/builders/burnTokenBuilder.js +165 -0
- package/dist/sdks/long-yield-carry/src/client/builders/claimIncentivesBuilder.d.ts +9 -0
- package/dist/sdks/long-yield-carry/src/client/builders/claimIncentivesBuilder.js +135 -0
- package/dist/sdks/long-yield-carry/src/client/builders/collectFeesBuilder.d.ts +14 -0
- package/dist/sdks/long-yield-carry/src/client/builders/collectFeesBuilder.js +50 -0
- package/dist/sdks/long-yield-carry/src/client/builders/collectInterestBuilder.d.ts +8 -0
- package/dist/sdks/long-yield-carry/src/client/builders/collectInterestBuilder.js +86 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createCpiPlanBuilder.d.ts +6 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createCpiPlanBuilder.js +22 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createTokenBuilder.d.ts +7 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createTokenBuilder.js +64 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createTokenLendingPositionBuilder.d.ts +10 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createTokenLendingPositionBuilder.js +138 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankAllocationBuilder.d.ts +7 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankAllocationBuilder.js +29 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankBuilder.d.ts +7 -0
- package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankBuilder.js +39 -0
- package/dist/sdks/long-yield-carry/src/client/builders/decreaseCarryPositionBuilder.d.ts +30 -0
- package/dist/sdks/long-yield-carry/src/client/builders/decreaseCarryPositionBuilder.js +99 -0
- package/dist/sdks/long-yield-carry/src/client/builders/depositUnlentCollateralBuilder.d.ts +8 -0
- package/dist/sdks/long-yield-carry/src/client/builders/depositUnlentCollateralBuilder.js +64 -0
- package/dist/sdks/long-yield-carry/src/client/builders/increaseCarryPositionBuilder.d.ts +8 -0
- package/dist/sdks/long-yield-carry/src/client/builders/increaseCarryPositionBuilder.js +73 -0
- package/dist/sdks/long-yield-carry/src/client/builders/index.d.ts +28 -0
- package/dist/sdks/long-yield-carry/src/client/builders/index.js +62 -0
- package/dist/sdks/long-yield-carry/src/client/builders/mintTokenBuilder.d.ts +8 -0
- package/dist/sdks/long-yield-carry/src/client/builders/mintTokenBuilder.js +95 -0
- package/dist/sdks/long-yield-carry/src/client/builders/rebalanceTokenBuilder.d.ts +11 -0
- package/dist/sdks/long-yield-carry/src/client/builders/rebalanceTokenBuilder.js +255 -0
- package/dist/sdks/long-yield-carry/src/client/builders/rebalanceYieldingBankBuilder.d.ts +8 -0
- package/dist/sdks/long-yield-carry/src/client/builders/rebalanceYieldingBankBuilder.js +75 -0
- package/dist/sdks/long-yield-carry/src/client/builders/recollateralizeLossBuilder.d.ts +12 -0
- package/dist/sdks/long-yield-carry/src/client/builders/recollateralizeLossBuilder.js +220 -0
- package/dist/sdks/long-yield-carry/src/client/builders/refreshTokenStateBuilder.d.ts +9 -0
- package/dist/sdks/long-yield-carry/src/client/builders/refreshTokenStateBuilder.js +112 -0
- package/dist/sdks/long-yield-carry/src/client/builders/refreshTokensBuilder.d.ts +9 -0
- package/dist/sdks/long-yield-carry/src/client/builders/refreshTokensBuilder.js +59 -0
- package/dist/sdks/long-yield-carry/src/client/builders/refreshYieldingBankBuilder.d.ts +8 -0
- package/dist/sdks/long-yield-carry/src/client/builders/refreshYieldingBankBuilder.js +29 -0
- package/dist/sdks/long-yield-carry/src/client/builders/resetTokenBurnRateLimitBuilder.d.ts +7 -0
- package/dist/sdks/long-yield-carry/src/client/builders/resetTokenBurnRateLimitBuilder.js +19 -0
- package/dist/sdks/long-yield-carry/src/client/builders/setTokenCircuitBreakerBuilder.d.ts +11 -0
- package/dist/sdks/long-yield-carry/src/client/builders/setTokenCircuitBreakerBuilder.js +31 -0
- package/dist/sdks/long-yield-carry/src/client/builders/setYieldingBankCircuitBreakerBuilder.d.ts +8 -0
- package/dist/sdks/long-yield-carry/src/client/builders/setYieldingBankCircuitBreakerBuilder.js +28 -0
- package/dist/sdks/long-yield-carry/src/client/builders/updateLendingPositionConfigBuilder.d.ts +10 -0
- package/dist/sdks/long-yield-carry/src/client/builders/updateLendingPositionConfigBuilder.js +30 -0
- package/dist/sdks/long-yield-carry/src/client/builders/updateTokenConfigurationBuilder.d.ts +11 -0
- package/dist/sdks/long-yield-carry/src/client/builders/updateTokenConfigurationBuilder.js +47 -0
- package/dist/sdks/long-yield-carry/src/client/builders/updateTokenMetadataBuilder.d.ts +7 -0
- package/dist/sdks/long-yield-carry/src/client/builders/updateTokenMetadataBuilder.js +24 -0
- package/dist/sdks/long-yield-carry/src/client/builders/updateYieldingBankConfigBuilder.d.ts +10 -0
- package/dist/sdks/long-yield-carry/src/client/builders/updateYieldingBankConfigBuilder.js +31 -0
- package/dist/sdks/long-yield-carry/src/client/builders/utils.d.ts +4 -0
- package/dist/sdks/long-yield-carry/src/client/builders/utils.js +20 -0
- package/dist/sdks/long-yield-carry/src/client/client.d.ts +115 -0
- package/dist/sdks/long-yield-carry/src/client/client.js +166 -0
- package/dist/sdks/long-yield-carry/src/client/externalLiquidityResolver.d.ts +13 -0
- package/dist/sdks/long-yield-carry/src/client/externalLiquidityResolver.js +34 -0
- package/dist/sdks/long-yield-carry/src/client/index.d.ts +10 -0
- package/dist/sdks/long-yield-carry/src/client/index.js +33 -0
- package/dist/sdks/long-yield-carry/src/client/lendingPlatformClients.d.ts +19 -0
- package/dist/sdks/long-yield-carry/src/client/lendingPlatformClients.js +33 -0
- package/dist/sdks/long-yield-carry/src/client/pda.d.ts +33 -0
- package/dist/sdks/long-yield-carry/src/client/pda.js +79 -0
- package/dist/sdks/long-yield-carry/src/client/plans/collectInterest.d.ts +24 -0
- package/dist/sdks/long-yield-carry/src/client/plans/collectInterest.js +150 -0
- package/dist/sdks/long-yield-carry/src/client/plans/decreaseCarryPosition.d.ts +12 -0
- package/dist/sdks/long-yield-carry/src/client/plans/decreaseCarryPosition.js +140 -0
- package/dist/sdks/long-yield-carry/src/client/routes/collectInterest.d.ts +13 -0
- package/dist/sdks/long-yield-carry/src/client/routes/collectInterest.js +39 -0
- package/dist/sdks/long-yield-carry/src/client/transaction.d.ts +41 -0
- package/dist/sdks/long-yield-carry/src/client/transaction.js +55 -0
- package/dist/sdks/long-yield-carry/src/client/types/builders.d.ts +18 -0
- package/dist/sdks/long-yield-carry/src/client/types/builders.js +2 -0
- package/dist/sdks/long-yield-carry/src/client/types/enums.d.ts +22 -0
- package/dist/sdks/long-yield-carry/src/client/types/enums.js +48 -0
- package/dist/sdks/long-yield-carry/src/client/types/general.d.ts +98 -0
- package/dist/sdks/long-yield-carry/src/client/types/general.js +2 -0
- package/dist/sdks/long-yield-carry/src/client/types/index.d.ts +6 -0
- package/dist/sdks/long-yield-carry/src/client/types/index.js +22 -0
- package/dist/sdks/long-yield-carry/src/client/types/ix.d.ts +352 -0
- package/dist/sdks/long-yield-carry/src/client/types/ix.js +2 -0
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/collectInterest.d.ts +91 -0
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/collectInterest.js +2 -0
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/common.d.ts +28 -0
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/common.js +2 -0
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/decreaseCarryPosition.d.ts +128 -0
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/decreaseCarryPosition.js +2 -0
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/index.d.ts +3 -0
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/index.js +19 -0
- package/dist/sdks/long-yield-carry/src/client/types/tx.d.ts +339 -0
- package/dist/sdks/long-yield-carry/src/client/types/tx.js +2 -0
- package/dist/sdks/long-yield-carry/src/constants/configs/allocations.d.ts +3 -0
- package/dist/sdks/long-yield-carry/src/constants/configs/allocations.js +23 -0
- package/dist/sdks/long-yield-carry/src/constants/configs/carryTradePresets.d.ts +58 -0
- package/dist/sdks/long-yield-carry/src/constants/configs/carryTradePresets.js +116 -0
- package/dist/sdks/long-yield-carry/src/constants/configs/index.d.ts +2 -0
- package/dist/sdks/long-yield-carry/src/constants/configs/index.js +18 -0
- package/dist/sdks/long-yield-carry/src/constants/general.d.ts +70 -0
- package/dist/sdks/long-yield-carry/src/constants/general.js +107 -0
- package/dist/sdks/long-yield-carry/src/constants/index.d.ts +3 -0
- package/dist/sdks/long-yield-carry/src/constants/index.js +19 -0
- package/dist/sdks/long-yield-carry/src/constants/lycTokenMetadata.d.ts +36 -0
- package/dist/sdks/long-yield-carry/src/constants/lycTokenMetadata.js +41 -0
- package/dist/sdks/long-yield-carry/src/decoders/decodeTransaction.d.ts +86 -0
- package/dist/sdks/long-yield-carry/src/decoders/decodeTransaction.js +230 -0
- package/dist/sdks/long-yield-carry/src/decoders/discriminators.d.ts +8 -0
- package/dist/sdks/long-yield-carry/src/decoders/discriminators.js +11 -0
- package/dist/sdks/long-yield-carry/src/decoders/idlAccounts.d.ts +29 -0
- package/dist/sdks/long-yield-carry/src/decoders/idlAccounts.js +57 -0
- package/dist/sdks/long-yield-carry/src/decoders/index.d.ts +6 -0
- package/dist/sdks/long-yield-carry/src/decoders/index.js +14 -0
- package/dist/sdks/long-yield-carry/src/decoders/innerCpis.d.ts +68 -0
- package/dist/sdks/long-yield-carry/src/decoders/innerCpis.js +225 -0
- package/dist/sdks/long-yield-carry/src/decoders/lycInstructionNames.d.ts +6 -0
- package/dist/sdks/long-yield-carry/src/decoders/lycInstructionNames.js +73 -0
- package/dist/sdks/long-yield-carry/src/decoders/programIds.d.ts +4 -0
- package/dist/sdks/long-yield-carry/src/decoders/programIds.js +11 -0
- package/dist/sdks/long-yield-carry/src/decoders/solana.d.ts +7 -0
- package/dist/sdks/long-yield-carry/src/decoders/solana.js +30 -0
- package/dist/sdks/long-yield-carry/src/decoders/transactionPayload.d.ts +41 -0
- package/dist/sdks/long-yield-carry/src/decoders/transactionPayload.js +6 -0
- package/dist/sdks/long-yield-carry/src/decoders/types.d.ts +58 -0
- package/dist/sdks/long-yield-carry/src/decoders/types.js +2 -0
- package/dist/sdks/long-yield-carry/src/errors.d.ts +69 -0
- package/dist/sdks/long-yield-carry/src/errors.js +183 -0
- package/dist/sdks/long-yield-carry/src/idl/long_yield_carry.d.ts +7327 -0
- package/dist/sdks/long-yield-carry/src/idl/long_yield_carry.js +7323 -0
- package/dist/sdks/long-yield-carry/src/index.d.ts +10 -0
- package/dist/sdks/long-yield-carry/src/index.js +25 -0
- package/dist/sdks/long-yield-carry/src/metrics/index.d.ts +1 -0
- package/dist/sdks/long-yield-carry/src/metrics/index.js +17 -0
- package/dist/sdks/long-yield-carry/src/metrics/protocolMetrics.d.ts +276 -0
- package/dist/sdks/long-yield-carry/src/metrics/protocolMetrics.js +547 -0
- package/dist/sdks/long-yield-carry/src/models/index.d.ts +3 -0
- package/dist/sdks/long-yield-carry/src/models/index.js +7 -0
- package/dist/sdks/long-yield-carry/src/models/lycToken.d.ts +156 -0
- package/dist/sdks/long-yield-carry/src/models/lycToken.js +288 -0
- package/dist/sdks/long-yield-carry/src/models/yieldingBank.d.ts +52 -0
- package/dist/sdks/long-yield-carry/src/models/yieldingBank.js +109 -0
- package/dist/sdks/long-yield-carry/src/services/allocation/allocationService.d.ts +106 -0
- package/dist/sdks/long-yield-carry/src/services/allocation/allocationService.js +589 -0
- package/dist/sdks/long-yield-carry/src/services/allocation/index.d.ts +2 -0
- package/dist/sdks/long-yield-carry/src/services/allocation/index.js +18 -0
- package/dist/sdks/long-yield-carry/src/services/allocation/types.d.ts +25 -0
- package/dist/sdks/long-yield-carry/src/services/allocation/types.js +2 -0
- package/dist/sdks/long-yield-carry/src/services/carry/carryAllocationConfig.d.ts +103 -0
- package/dist/sdks/long-yield-carry/src/services/carry/carryAllocationConfig.js +146 -0
- package/dist/sdks/long-yield-carry/src/services/carry/index.d.ts +2 -0
- package/dist/sdks/long-yield-carry/src/services/carry/index.js +18 -0
- package/dist/sdks/long-yield-carry/src/services/carry/lycLendingPositionManager.d.ts +39 -0
- package/dist/sdks/long-yield-carry/src/services/carry/lycLendingPositionManager.js +100 -0
- package/dist/sdks/long-yield-carry/src/services/index.d.ts +5 -0
- package/dist/sdks/long-yield-carry/src/services/index.js +21 -0
- package/dist/sdks/long-yield-carry/src/services/lendingPosition/index.d.ts +2 -0
- package/dist/sdks/long-yield-carry/src/services/lendingPosition/index.js +5 -0
- package/dist/sdks/long-yield-carry/src/services/lendingPosition/lendingPositionService.d.ts +88 -0
- package/dist/sdks/long-yield-carry/src/services/lendingPosition/lendingPositionService.js +229 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/index.d.ts +2 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/index.js +18 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/token/index.d.ts +1 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/token/index.js +17 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/token/tokenRebalanceService.d.ts +51 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/token/tokenRebalanceService.js +99 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/index.d.ts +3 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/index.js +21 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/planner.d.ts +68 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/planner.js +181 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/strategy.d.ts +26 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/strategy.js +26 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/types.d.ts +40 -0
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/types.js +2 -0
- package/dist/sdks/long-yield-carry/src/services/redemption/index.d.ts +2 -0
- package/dist/sdks/long-yield-carry/src/services/redemption/index.js +5 -0
- package/dist/sdks/long-yield-carry/src/services/redemption/redemptionService.d.ts +139 -0
- package/dist/sdks/long-yield-carry/src/services/redemption/redemptionService.js +532 -0
- package/dist/sdks/long-yield-carry/src/types/enriched.d.ts +168 -0
- package/dist/sdks/long-yield-carry/src/types/enriched.js +2 -0
- package/dist/sdks/long-yield-carry/src/types/index.d.ts +1 -0
- package/dist/sdks/long-yield-carry/src/types/index.js +17 -0
- package/dist/sdks/long-yield-carry/src/utils/cache.d.ts +4 -0
- package/dist/sdks/long-yield-carry/src/utils/cache.js +10 -0
- package/dist/sdks/long-yield-carry/src/utils/data.d.ts +12 -0
- package/dist/sdks/long-yield-carry/src/utils/data.js +59 -0
- package/dist/sdks/long-yield-carry/src/utils/enrichment.d.ts +5 -0
- package/dist/sdks/long-yield-carry/src/utils/enrichment.js +244 -0
- package/dist/sdks/long-yield-carry/src/utils/feeDripMetrics.d.ts +36 -0
- package/dist/sdks/long-yield-carry/src/utils/feeDripMetrics.js +93 -0
- package/dist/sdks/long-yield-carry/src/utils/general.d.ts +28 -0
- package/dist/sdks/long-yield-carry/src/utils/general.js +47 -0
- package/dist/sdks/long-yield-carry/src/utils/index.d.ts +13 -0
- package/dist/sdks/long-yield-carry/src/utils/index.js +29 -0
- package/dist/sdks/long-yield-carry/src/utils/ix.d.ts +83 -0
- package/dist/sdks/long-yield-carry/src/utils/ix.js +165 -0
- package/dist/sdks/long-yield-carry/src/utils/lendingPosition.d.ts +68 -0
- package/dist/sdks/long-yield-carry/src/utils/lendingPosition.js +105 -0
- package/dist/sdks/long-yield-carry/src/utils/lookupTables.d.ts +55 -0
- package/dist/sdks/long-yield-carry/src/utils/lookupTables.js +216 -0
- package/dist/sdks/long-yield-carry/src/utils/lycData.d.ts +66 -0
- package/dist/sdks/long-yield-carry/src/utils/lycData.js +211 -0
- package/dist/sdks/long-yield-carry/src/utils/timelock.d.ts +19 -0
- package/dist/sdks/long-yield-carry/src/utils/timelock.js +37 -0
- package/dist/sdks/long-yield-carry/src/utils/tokenFeeMath.d.ts +11 -0
- package/dist/sdks/long-yield-carry/src/utils/tokenFeeMath.js +24 -0
- package/dist/sdks/long-yield-carry/src/utils/transactions.d.ts +20 -0
- package/dist/sdks/long-yield-carry/src/utils/transactions.js +72 -0
- package/dist/sdks/long-yield-carry/src/utils/yieldingBank.d.ts +24 -0
- package/dist/sdks/long-yield-carry/src/utils/yieldingBank.js +36 -0
- package/dist/shared/common/src/constants/accountMetas.d.ts +3 -0
- package/dist/shared/common/src/constants/accountMetas.js +9 -0
- package/dist/shared/common/src/constants/general.d.ts +21 -0
- package/dist/shared/common/src/constants/general.js +30 -0
- package/dist/shared/common/src/constants/generated/cpi.d.ts +23 -0
- package/dist/shared/common/src/constants/generated/cpi.js +28 -0
- package/dist/shared/common/src/constants/generated/index.d.ts +1 -0
- package/dist/shared/common/src/constants/generated/index.js +17 -0
- package/dist/shared/common/src/constants/index.d.ts +3 -0
- package/dist/shared/common/src/constants/index.js +19 -0
- package/dist/shared/common/src/index.d.ts +4 -0
- package/dist/shared/common/src/index.js +20 -0
- package/dist/shared/common/src/services/baseAccountClient.d.ts +22 -0
- package/dist/shared/common/src/services/baseAccountClient.js +38 -0
- package/dist/shared/common/src/services/baseIxBuilderService.d.ts +27 -0
- package/dist/shared/common/src/services/baseIxBuilderService.js +48 -0
- package/dist/shared/common/src/services/dataCache.d.ts +41 -0
- package/dist/shared/common/src/services/dataCache.js +130 -0
- package/dist/shared/common/src/services/index.d.ts +8 -0
- package/dist/shared/common/src/services/index.js +24 -0
- package/dist/shared/common/src/services/lutManager.d.ts +31 -0
- package/dist/shared/common/src/services/lutManager.js +133 -0
- package/dist/shared/common/src/services/mints/defaults.d.ts +2 -0
- package/dist/shared/common/src/services/mints/defaults.js +152 -0
- package/dist/shared/common/src/services/mints/index.d.ts +4 -0
- package/dist/shared/common/src/services/mints/index.js +20 -0
- package/dist/shared/common/src/services/mints/registry.d.ts +70 -0
- package/dist/shared/common/src/services/mints/registry.js +117 -0
- package/dist/shared/common/src/services/mints/symbols.d.ts +6 -0
- package/dist/shared/common/src/services/mints/symbols.js +13 -0
- package/dist/shared/common/src/services/mints/types.d.ts +30 -0
- package/dist/shared/common/src/services/mints/types.js +2 -0
- package/dist/shared/common/src/services/swap/index.d.ts +4 -0
- package/dist/shared/common/src/services/swap/index.js +20 -0
- package/dist/shared/common/src/services/swap/routableSwapClient.d.ts +36 -0
- package/dist/shared/common/src/services/swap/routableSwapClient.js +2 -0
- package/dist/shared/common/src/services/swap/swapClientBase.d.ts +45 -0
- package/dist/shared/common/src/services/swap/swapClientBase.js +2 -0
- package/dist/shared/common/src/services/swap/swapRouting.d.ts +13 -0
- package/dist/shared/common/src/services/swap/swapRouting.js +28 -0
- package/dist/shared/common/src/services/swap/types.d.ts +77 -0
- package/dist/shared/common/src/services/swap/types.js +2 -0
- package/dist/shared/common/src/services/token/index.d.ts +2 -0
- package/dist/shared/common/src/services/token/index.js +18 -0
- package/dist/shared/common/src/services/token/tokenProtocolClientBase.d.ts +51 -0
- package/dist/shared/common/src/services/token/tokenProtocolClientBase.js +2 -0
- package/dist/shared/common/src/services/token/types.d.ts +19 -0
- package/dist/shared/common/src/services/token/types.js +2 -0
- package/dist/shared/common/src/services/transactionSender.d.ts +24 -0
- package/dist/shared/common/src/services/transactionSender.js +30 -0
- package/dist/shared/common/src/types/cpi.d.ts +34 -0
- package/dist/shared/common/src/types/cpi.js +8 -0
- package/dist/shared/common/src/types/enums.d.ts +59 -0
- package/dist/shared/common/src/types/enums.js +122 -0
- package/dist/shared/common/src/types/general.d.ts +38 -0
- package/dist/shared/common/src/types/general.js +2 -0
- package/dist/shared/common/src/types/index.d.ts +4 -0
- package/dist/shared/common/src/types/index.js +20 -0
- package/dist/shared/common/src/types/solana.d.ts +24 -0
- package/dist/shared/common/src/types/solana.js +2 -0
- package/dist/shared/common/src/utils/accounts/index.d.ts +5 -0
- package/dist/shared/common/src/utils/accounts/index.js +21 -0
- package/dist/shared/common/src/utils/accounts/meta.d.ts +21 -0
- package/dist/shared/common/src/utils/accounts/meta.js +27 -0
- package/dist/shared/common/src/utils/accounts/pda.d.ts +2 -0
- package/dist/shared/common/src/utils/accounts/pda.js +17 -0
- package/dist/shared/common/src/utils/accounts/roles.d.ts +26 -0
- package/dist/shared/common/src/utils/accounts/roles.js +54 -0
- package/dist/shared/common/src/utils/accounts/rpc.d.ts +8 -0
- package/dist/shared/common/src/utils/accounts/rpc.js +30 -0
- package/dist/shared/common/src/utils/accounts/splBalances.d.ts +15 -0
- package/dist/shared/common/src/utils/accounts/splBalances.js +52 -0
- package/dist/shared/common/src/utils/anchor.d.ts +17 -0
- package/dist/shared/common/src/utils/anchor.js +29 -0
- package/dist/shared/common/src/utils/asyncConcurrency.d.ts +5 -0
- package/dist/shared/common/src/utils/asyncConcurrency.js +28 -0
- package/dist/shared/common/src/utils/compat.d.ts +46 -0
- package/dist/shared/common/src/utils/compat.js +72 -0
- package/dist/shared/common/src/utils/cpi/args.d.ts +69 -0
- package/dist/shared/common/src/utils/cpi/args.js +100 -0
- package/dist/shared/common/src/utils/cpi/index.d.ts +2 -0
- package/dist/shared/common/src/utils/cpi/index.js +18 -0
- package/dist/shared/common/src/utils/cpi/refs.d.ts +122 -0
- package/dist/shared/common/src/utils/cpi/refs.js +234 -0
- package/dist/shared/common/src/utils/data.d.ts +20 -0
- package/dist/shared/common/src/utils/data.js +27 -0
- package/dist/shared/common/src/utils/general.d.ts +24 -0
- package/dist/shared/common/src/utils/general.js +95 -0
- package/dist/shared/common/src/utils/index.d.ts +22 -0
- package/dist/shared/common/src/utils/index.js +38 -0
- package/dist/shared/common/src/utils/instruction.d.ts +74 -0
- package/dist/shared/common/src/utils/instruction.js +147 -0
- package/dist/shared/common/src/utils/jito.d.ts +113 -0
- package/dist/shared/common/src/utils/jito.js +178 -0
- package/dist/shared/common/src/utils/json.d.ts +5 -0
- package/dist/shared/common/src/utils/json.js +25 -0
- package/dist/shared/common/src/utils/jsonRpcFetch.d.ts +21 -0
- package/dist/shared/common/src/utils/jsonRpcFetch.js +134 -0
- package/dist/shared/common/src/utils/metadata.d.ts +107 -0
- package/dist/shared/common/src/utils/metadata.js +194 -0
- package/dist/shared/common/src/utils/numbers.d.ts +72 -0
- package/dist/shared/common/src/utils/numbers.js +193 -0
- package/dist/shared/common/src/utils/priorityFee.d.ts +18 -0
- package/dist/shared/common/src/utils/priorityFee.js +63 -0
- package/dist/shared/common/src/utils/retry.d.ts +20 -0
- package/dist/shared/common/src/utils/retry.js +69 -0
- package/dist/shared/common/src/utils/rpc.d.ts +40 -0
- package/dist/shared/common/src/utils/rpc.js +130 -0
- package/dist/shared/common/src/utils/solana.d.ts +23 -0
- package/dist/shared/common/src/utils/solana.js +61 -0
- package/dist/shared/common/src/utils/timeSeries.d.ts +18 -0
- package/dist/shared/common/src/utils/timeSeries.js +40 -0
- package/dist/shared/common/src/utils/token.d.ts +33 -0
- package/dist/shared/common/src/utils/token.js +82 -0
- package/dist/shared/common/src/utils/transaction.d.ts +154 -0
- package/dist/shared/common/src/utils/transaction.js +585 -0
- package/dist/shared/common/src/utils/transactionSplitter.d.ts +85 -0
- package/dist/shared/common/src/utils/transactionSplitter.js +127 -0
- package/dist/shared/common/src/utils/txAccountCoverage.d.ts +49 -0
- package/dist/shared/common/src/utils/txAccountCoverage.js +122 -0
- package/dist/shared/jupiter-helpers/src/api.d.ts +59 -0
- package/dist/shared/jupiter-helpers/src/api.js +130 -0
- package/dist/shared/jupiter-helpers/src/client.d.ts +79 -0
- package/dist/shared/jupiter-helpers/src/client.js +173 -0
- package/dist/shared/jupiter-helpers/src/constants.d.ts +35 -0
- package/dist/shared/jupiter-helpers/src/constants.js +38 -0
- package/dist/shared/jupiter-helpers/src/extract.d.ts +30 -0
- package/dist/shared/jupiter-helpers/src/extract.js +57 -0
- package/dist/shared/jupiter-helpers/src/index.d.ts +5 -0
- package/dist/shared/jupiter-helpers/src/index.js +21 -0
- package/dist/shared/jupiter-helpers/src/routePreInstructions.d.ts +19 -0
- package/dist/shared/jupiter-helpers/src/routePreInstructions.js +61 -0
- package/dist/shared/jupiter-helpers/src/sizeExactInForMinOutput.d.ts +70 -0
- package/dist/shared/jupiter-helpers/src/sizeExactInForMinOutput.js +95 -0
- package/dist/shared/jupiter-helpers/src/types.d.ts +66 -0
- package/dist/shared/jupiter-helpers/src/types.js +2 -0
- package/dist/shared/lending-platforms/src/constants/cache.d.ts +8 -0
- package/dist/shared/lending-platforms/src/constants/cache.js +11 -0
- package/dist/shared/lending-platforms/src/constants/index.d.ts +3 -0
- package/dist/shared/lending-platforms/src/constants/index.js +19 -0
- package/dist/shared/lending-platforms/src/constants/kamino.d.ts +7 -0
- package/dist/shared/lending-platforms/src/constants/kamino.js +83 -0
- package/dist/shared/lending-platforms/src/constants/lendingPosition.d.ts +7 -0
- package/dist/shared/lending-platforms/src/constants/lendingPosition.js +10 -0
- package/dist/shared/lending-platforms/src/data/accounts/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/data/accounts/index.js +18 -0
- package/dist/shared/lending-platforms/src/data/accounts/kamino.d.ts +42 -0
- package/dist/shared/lending-platforms/src/data/accounts/kamino.js +104 -0
- package/dist/shared/lending-platforms/src/data/accounts/lpAccountsBase.d.ts +7 -0
- package/dist/shared/lending-platforms/src/data/accounts/lpAccountsBase.js +9 -0
- package/dist/shared/lending-platforms/src/data/incentive/incentiveBase.d.ts +35 -0
- package/dist/shared/lending-platforms/src/data/incentive/incentiveBase.js +26 -0
- package/dist/shared/lending-platforms/src/data/incentive/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/data/incentive/index.js +18 -0
- package/dist/shared/lending-platforms/src/data/incentive/kamino.d.ts +55 -0
- package/dist/shared/lending-platforms/src/data/incentive/kamino.js +101 -0
- package/dist/shared/lending-platforms/src/data/index.d.ts +6 -0
- package/dist/shared/lending-platforms/src/data/index.js +22 -0
- package/dist/shared/lending-platforms/src/data/instructions/index.d.ts +3 -0
- package/dist/shared/lending-platforms/src/data/instructions/index.js +19 -0
- package/dist/shared/lending-platforms/src/data/instructions/kamino.d.ts +55 -0
- package/dist/shared/lending-platforms/src/data/instructions/kamino.js +630 -0
- package/dist/shared/lending-platforms/src/data/instructions/lpInstructionsBase.d.ts +175 -0
- package/dist/shared/lending-platforms/src/data/instructions/lpInstructionsBase.js +192 -0
- package/dist/shared/lending-platforms/src/data/instructions/types.d.ts +7 -0
- package/dist/shared/lending-platforms/src/data/instructions/types.js +2 -0
- package/dist/shared/lending-platforms/src/data/platform/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/data/platform/index.js +18 -0
- package/dist/shared/lending-platforms/src/data/platform/kamino.d.ts +59 -0
- package/dist/shared/lending-platforms/src/data/platform/kamino.js +206 -0
- package/dist/shared/lending-platforms/src/data/platform/lpDataBase.d.ts +35 -0
- package/dist/shared/lending-platforms/src/data/platform/lpDataBase.js +31 -0
- package/dist/shared/lending-platforms/src/data/reserve/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/data/reserve/index.js +18 -0
- package/dist/shared/lending-platforms/src/data/reserve/kamino.d.ts +45 -0
- package/dist/shared/lending-platforms/src/data/reserve/kamino.js +141 -0
- package/dist/shared/lending-platforms/src/data/reserve/reserveBase.d.ts +114 -0
- package/dist/shared/lending-platforms/src/data/reserve/reserveBase.js +125 -0
- package/dist/shared/lending-platforms/src/data/userPosition/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/data/userPosition/index.js +18 -0
- package/dist/shared/lending-platforms/src/data/userPosition/kamino.d.ts +15 -0
- package/dist/shared/lending-platforms/src/data/userPosition/kamino.js +45 -0
- package/dist/shared/lending-platforms/src/data/userPosition/userPositionBase.d.ts +50 -0
- package/dist/shared/lending-platforms/src/data/userPosition/userPositionBase.js +63 -0
- package/dist/shared/lending-platforms/src/index.d.ts +5 -0
- package/dist/shared/lending-platforms/src/index.js +21 -0
- package/dist/shared/lending-platforms/src/services/client/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/services/client/index.js +18 -0
- package/dist/shared/lending-platforms/src/services/client/kamino.d.ts +53 -0
- package/dist/shared/lending-platforms/src/services/client/kamino.js +142 -0
- package/dist/shared/lending-platforms/src/services/client/lpClientBase.d.ts +66 -0
- package/dist/shared/lending-platforms/src/services/client/lpClientBase.js +19 -0
- package/dist/shared/lending-platforms/src/services/flashLoan/flashLoanBase.d.ts +49 -0
- package/dist/shared/lending-platforms/src/services/flashLoan/flashLoanBase.js +16 -0
- package/dist/shared/lending-platforms/src/services/flashLoan/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/services/flashLoan/index.js +18 -0
- package/dist/shared/lending-platforms/src/services/flashLoan/kamino.d.ts +11 -0
- package/dist/shared/lending-platforms/src/services/flashLoan/kamino.js +85 -0
- package/dist/shared/lending-platforms/src/services/index.d.ts +5 -0
- package/dist/shared/lending-platforms/src/services/index.js +21 -0
- package/dist/shared/lending-platforms/src/services/lendingPosition/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/services/lendingPosition/index.js +18 -0
- package/dist/shared/lending-platforms/src/services/lendingPosition/lendingPositionManager.d.ts +117 -0
- package/dist/shared/lending-platforms/src/services/lendingPosition/lendingPositionManager.js +342 -0
- package/dist/shared/lending-platforms/src/services/lendingPosition/types.d.ts +40 -0
- package/dist/shared/lending-platforms/src/services/lendingPosition/types.js +2 -0
- package/dist/shared/lending-platforms/src/services/leverage/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/services/leverage/index.js +18 -0
- package/dist/shared/lending-platforms/src/services/leverage/leverageService.d.ts +104 -0
- package/dist/shared/lending-platforms/src/services/leverage/leverageService.js +437 -0
- package/dist/shared/lending-platforms/src/services/leverage/types.d.ts +261 -0
- package/dist/shared/lending-platforms/src/services/leverage/types.js +2 -0
- package/dist/shared/lending-platforms/src/services/reservesManager.d.ts +53 -0
- package/dist/shared/lending-platforms/src/services/reservesManager.js +112 -0
- package/dist/shared/lending-platforms/src/types/general.d.ts +37 -0
- package/dist/shared/lending-platforms/src/types/general.js +8 -0
- package/dist/shared/lending-platforms/src/types/index.d.ts +2 -0
- package/dist/shared/lending-platforms/src/types/index.js +18 -0
- package/dist/shared/lending-platforms/src/types/kamino.d.ts +10 -0
- package/dist/shared/lending-platforms/src/types/kamino.js +2 -0
- package/dist/shared/lending-platforms/src/utils/accounts.d.ts +16 -0
- package/dist/shared/lending-platforms/src/utils/accounts.js +36 -0
- package/dist/shared/lending-platforms/src/utils/cache.d.ts +3 -0
- package/dist/shared/lending-platforms/src/utils/cache.js +11 -0
- package/dist/shared/lending-platforms/src/utils/index.d.ts +6 -0
- package/dist/shared/lending-platforms/src/utils/index.js +22 -0
- package/dist/shared/lending-platforms/src/utils/kamino.d.ts +87 -0
- package/dist/shared/lending-platforms/src/utils/kamino.js +190 -0
- package/dist/shared/lending-platforms/src/utils/lendingPlatform.d.ts +6 -0
- package/dist/shared/lending-platforms/src/utils/lendingPlatform.js +16 -0
- package/dist/shared/lending-platforms/src/utils/math.d.ts +47 -0
- package/dist/shared/lending-platforms/src/utils/math.js +123 -0
- package/dist/shared/lending-platforms/src/utils/scope.d.ts +38 -0
- package/dist/shared/lending-platforms/src/utils/scope.js +144 -0
- package/dist/shared/oracle-service/src/constants/index.d.ts +3 -0
- package/dist/shared/oracle-service/src/constants/index.js +19 -0
- package/dist/shared/oracle-service/src/constants/pyth.d.ts +7 -0
- package/dist/shared/oracle-service/src/constants/pyth.js +71 -0
- package/dist/shared/oracle-service/src/constants/splStake.d.ts +2 -0
- package/dist/shared/oracle-service/src/constants/splStake.js +6 -0
- package/dist/shared/oracle-service/src/constants/switchboard.d.ts +7 -0
- package/dist/shared/oracle-service/src/constants/switchboard.js +10 -0
- package/dist/shared/oracle-service/src/feeds/custom.d.ts +30 -0
- package/dist/shared/oracle-service/src/feeds/custom.js +56 -0
- package/dist/shared/oracle-service/src/feeds/jupiter.d.ts +7 -0
- package/dist/shared/oracle-service/src/feeds/jupiter.js +43 -0
- package/dist/shared/oracle-service/src/feeds/priceBase.d.ts +13 -0
- package/dist/shared/oracle-service/src/feeds/priceBase.js +25 -0
- package/dist/shared/oracle-service/src/feeds/pyth.d.ts +8 -0
- package/dist/shared/oracle-service/src/feeds/pyth.js +59 -0
- package/dist/shared/oracle-service/src/feeds/splStake.d.ts +26 -0
- package/dist/shared/oracle-service/src/feeds/splStake.js +99 -0
- package/dist/shared/oracle-service/src/feeds/switchboard.d.ts +6 -0
- package/dist/shared/oracle-service/src/feeds/switchboard.js +11 -0
- package/dist/shared/oracle-service/src/index.d.ts +5 -0
- package/dist/shared/oracle-service/src/index.js +26 -0
- package/dist/shared/oracle-service/src/oracle.d.ts +22 -0
- package/dist/shared/oracle-service/src/oracle.js +104 -0
- package/dist/shared/oracle-service/src/types.d.ts +4 -0
- package/dist/shared/oracle-service/src/types.js +2 -0
- package/dist/shared/oracle-service/src/utils/general.d.ts +20 -0
- package/dist/shared/oracle-service/src/utils/general.js +65 -0
- package/dist/shared/oracle-service/src/utils/index.d.ts +1 -0
- package/dist/shared/oracle-service/src/utils/index.js +17 -0
- package/dist/shared/perena-helpers/src/accounts.d.ts +7 -0
- package/dist/shared/perena-helpers/src/accounts.js +12 -0
- package/dist/shared/perena-helpers/src/client.d.ts +299 -0
- package/dist/shared/perena-helpers/src/client.js +680 -0
- package/dist/shared/perena-helpers/src/constants.d.ts +5 -0
- package/dist/shared/perena-helpers/src/constants.js +8 -0
- package/dist/shared/perena-helpers/src/cpi/burn.d.ts +27 -0
- package/dist/shared/perena-helpers/src/cpi/burn.js +22 -0
- package/dist/shared/perena-helpers/src/cpi/index.d.ts +3 -0
- package/dist/shared/perena-helpers/src/cpi/index.js +19 -0
- package/dist/shared/perena-helpers/src/cpi/mint.d.ts +27 -0
- package/dist/shared/perena-helpers/src/cpi/mint.js +22 -0
- package/dist/shared/perena-helpers/src/cpi/requestUnstake.d.ts +19 -0
- package/dist/shared/perena-helpers/src/cpi/requestUnstake.js +16 -0
- package/dist/shared/perena-helpers/src/index.d.ts +5 -0
- package/dist/shared/perena-helpers/src/index.js +21 -0
- package/dist/shared/perena-helpers/src/utils.d.ts +9 -0
- package/dist/shared/perena-helpers/src/utils.js +54 -0
- package/dist/shared/swap-aggregator/src/aggSwapClient.d.ts +71 -0
- package/dist/shared/swap-aggregator/src/aggSwapClient.js +103 -0
- package/dist/shared/swap-aggregator/src/index.d.ts +1 -0
- package/dist/shared/swap-aggregator/src/index.js +17 -0
- package/docs/launchingToken.md +57 -0
- package/package.json +75 -0
- package/scripts/asyncBurn.ts +155 -0
- package/scripts/burnToken.ts +120 -0
- package/scripts/claimIncentives.ts +125 -0
- package/scripts/closeCpiPlans.ts +113 -0
- package/scripts/collectInterest.ts +194 -0
- package/scripts/collectProtocolFees.ts +144 -0
- package/scripts/computeOptimalAllocations.ts +117 -0
- package/scripts/createToken.ts +100 -0
- package/scripts/createTokenLendingPosition.ts +204 -0
- package/scripts/createYieldingBank.ts +91 -0
- package/scripts/decreaseCarryPositions.ts +359 -0
- package/scripts/depositUnlentCollateral.ts +106 -0
- package/scripts/emergency/deleverageAll.ts +287 -0
- package/scripts/emergency/triggerCircuitBreaker.ts +87 -0
- package/scripts/env.ts +4 -0
- package/scripts/findTxs.ts +169 -0
- package/scripts/increaseCarryPositions.ts +134 -0
- package/scripts/inspect/format.ts +576 -0
- package/scripts/inspect.ts +147 -0
- package/scripts/localUtils.ts +249 -0
- package/scripts/mintToken.ts +126 -0
- package/scripts/processAsyncBurns.ts +89 -0
- package/scripts/rebalanceToken.ts +269 -0
- package/scripts/rebalanceYieldingBank.ts +183 -0
- package/scripts/recollateralizeLoss.ts +79 -0
- package/scripts/refresh.ts +156 -0
- package/scripts/updateFees.ts +486 -0
- package/scripts/updateGeneralLut.ts +36 -0
- package/scripts/updateLendingPositionConfig.ts +172 -0
- package/scripts/updateTokenLuts.ts +36 -0
- package/scripts/updateTokenMetadata.ts +199 -0
- package/scripts/updateYieldingBankConfig.ts +100 -0
- package/scripts/withdrawUnlentCollateral.ts +178 -0
- package/src/client/account.ts +503 -0
- package/src/client/builders/args.ts +381 -0
- package/src/client/builders/asyncBurnBuilder.ts +305 -0
- package/src/client/builders/base.ts +303 -0
- package/src/client/builders/burnTokenBuilder.ts +258 -0
- package/src/client/builders/claimIncentivesBuilder.ts +211 -0
- package/src/client/builders/collectFeesBuilder.ts +52 -0
- package/src/client/builders/collectInterestBuilder.ts +165 -0
- package/src/client/builders/createCpiPlanBuilder.ts +21 -0
- package/src/client/builders/createTokenBuilder.ts +73 -0
- package/src/client/builders/createTokenLendingPositionBuilder.ts +219 -0
- package/src/client/builders/createYieldingBankAllocationBuilder.ts +32 -0
- package/src/client/builders/createYieldingBankBuilder.ts +39 -0
- package/src/client/builders/decreaseCarryPositionBuilder.ts +162 -0
- package/src/client/builders/depositUnlentCollateralBuilder.ts +95 -0
- package/src/client/builders/increaseCarryPositionBuilder.ts +105 -0
- package/src/client/builders/index.ts +37 -0
- package/src/client/builders/mintTokenBuilder.ts +137 -0
- package/src/client/builders/rebalanceTokenBuilder.ts +356 -0
- package/src/client/builders/rebalanceYieldingBankBuilder.ts +109 -0
- package/src/client/builders/recollateralizeLossBuilder.ts +367 -0
- package/src/client/builders/refreshTokenStateBuilder.ts +153 -0
- package/src/client/builders/refreshTokensBuilder.ts +82 -0
- package/src/client/builders/refreshYieldingBankBuilder.ts +42 -0
- package/src/client/builders/resetTokenBurnRateLimitBuilder.ts +21 -0
- package/src/client/builders/setTokenCircuitBreakerBuilder.ts +40 -0
- package/src/client/builders/setYieldingBankCircuitBreakerBuilder.ts +37 -0
- package/src/client/builders/updateLendingPositionConfigBuilder.ts +33 -0
- package/src/client/builders/updateTokenConfigurationBuilder.ts +50 -0
- package/src/client/builders/updateTokenMetadataBuilder.ts +24 -0
- package/src/client/builders/updateYieldingBankConfigBuilder.ts +32 -0
- package/src/client/builders/utils.ts +26 -0
- package/src/client/client.ts +264 -0
- package/src/client/externalLiquidityResolver.ts +54 -0
- package/src/client/index.ts +20 -0
- package/src/client/lendingPlatformClients.ts +50 -0
- package/src/client/pda.ts +102 -0
- package/src/client/plans/collectInterest.ts +207 -0
- package/src/client/plans/decreaseCarryPosition.ts +226 -0
- package/src/client/routes/collectInterest.ts +56 -0
- package/src/client/transaction.ts +106 -0
- package/src/client/types/builders.ts +19 -0
- package/src/client/types/enums.ts +47 -0
- package/src/client/types/general.ts +117 -0
- package/src/client/types/index.ts +6 -0
- package/src/client/types/ix.ts +452 -0
- package/src/client/types/planTypes/collectInterest.ts +97 -0
- package/src/client/types/planTypes/common.ts +31 -0
- package/src/client/types/planTypes/decreaseCarryPosition.ts +134 -0
- package/src/client/types/planTypes/index.ts +3 -0
- package/src/client/types/tx.ts +409 -0
- package/src/constants/configs/allocations.ts +30 -0
- package/src/constants/configs/carryTradePresets.ts +164 -0
- package/src/constants/configs/index.ts +2 -0
- package/src/constants/general.ts +141 -0
- package/src/constants/index.ts +3 -0
- package/src/constants/lycTokenMetadata.ts +52 -0
- package/src/decoders/decodeTransaction.ts +319 -0
- package/src/decoders/discriminators.ts +10 -0
- package/src/decoders/idlAccounts.ts +75 -0
- package/src/decoders/index.ts +15 -0
- package/src/decoders/innerCpis.ts +262 -0
- package/src/decoders/lycInstructionNames.ts +73 -0
- package/src/decoders/programIds.ts +12 -0
- package/src/decoders/solana.ts +25 -0
- package/src/decoders/transactionPayload.ts +41 -0
- package/src/decoders/types.ts +60 -0
- package/src/errors.ts +195 -0
- package/src/idl/long_yield_carry.ts +14648 -0
- package/src/index.ts +10 -0
- package/src/metrics/index.ts +1 -0
- package/src/metrics/protocolMetrics.ts +976 -0
- package/src/models/index.ts +9 -0
- package/src/models/lycToken.ts +380 -0
- package/src/models/yieldingBank.ts +127 -0
- package/src/services/allocation/allocationService.ts +823 -0
- package/src/services/allocation/index.ts +2 -0
- package/src/services/allocation/types.ts +27 -0
- package/src/services/carry/carryAllocationConfig.ts +266 -0
- package/src/services/carry/index.ts +2 -0
- package/src/services/carry/lycLendingPositionManager.ts +167 -0
- package/src/services/index.ts +5 -0
- package/src/services/lendingPosition/index.ts +5 -0
- package/src/services/lendingPosition/lendingPositionService.ts +328 -0
- package/src/services/rebalance/index.ts +2 -0
- package/src/services/rebalance/token/index.ts +1 -0
- package/src/services/rebalance/token/tokenRebalanceService.ts +142 -0
- package/src/services/rebalance/yieldingBank/index.ts +3 -0
- package/src/services/rebalance/yieldingBank/planner.ts +215 -0
- package/src/services/rebalance/yieldingBank/strategy.ts +41 -0
- package/src/services/rebalance/yieldingBank/types.ts +41 -0
- package/src/services/redemption/index.ts +9 -0
- package/src/services/redemption/redemptionService.ts +758 -0
- package/src/types/enriched.ts +187 -0
- package/src/types/index.ts +1 -0
- package/src/utils/cache.ts +12 -0
- package/src/utils/data.ts +65 -0
- package/src/utils/enrichment.ts +330 -0
- package/src/utils/feeDripMetrics.ts +146 -0
- package/src/utils/general.ts +54 -0
- package/src/utils/index.ts +13 -0
- package/src/utils/ix.ts +227 -0
- package/src/utils/lendingPosition.ts +221 -0
- package/src/utils/lookupTables.ts +309 -0
- package/src/utils/lycData.ts +321 -0
- package/src/utils/timelock.ts +63 -0
- package/src/utils/tokenFeeMath.ts +25 -0
- package/src/utils/transactions.ts +109 -0
- package/src/utils/yieldingBank.ts +38 -0
- package/tsconfig.json +11 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Greedy bin-packing splitter for instruction lists that exceed the Solana
|
|
4
|
+
* transaction wire limit (1232 bytes).
|
|
5
|
+
*
|
|
6
|
+
* Instructions are packed left-to-right (preserving caller order) into the
|
|
7
|
+
* fewest bins where each bin compiles to a valid-sized transaction. The
|
|
8
|
+
* result is an ordered array of instruction arrays, each of which can be
|
|
9
|
+
* independently built into a v0 `TransactionMessage`.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SOLANA_TX_SIZE_LIMIT = void 0;
|
|
13
|
+
exports.measureTxBytes = measureTxBytes;
|
|
14
|
+
exports.buildInstructionSegments = buildInstructionSegments;
|
|
15
|
+
exports.splitIntoTransactionBins = splitIntoTransactionBins;
|
|
16
|
+
const kit_1 = require("@solana/kit");
|
|
17
|
+
const transaction_1 = require("./transaction");
|
|
18
|
+
const jito_1 = require("./jito");
|
|
19
|
+
/**
|
|
20
|
+
* Solana's maximum serialized transaction size in bytes. The base64 encoding
|
|
21
|
+
* inflates this to ~1644 chars, but we measure the decoded wire bytes via
|
|
22
|
+
* Kit's `compileTransaction` + `getBase64EncodedWireTransaction` and compare
|
|
23
|
+
* against the decoded length.
|
|
24
|
+
*/
|
|
25
|
+
exports.SOLANA_TX_SIZE_LIMIT = 1232;
|
|
26
|
+
/**
|
|
27
|
+
* Measure the wire size of a compilable transaction message in bytes.
|
|
28
|
+
*/
|
|
29
|
+
function measureTxBytes(msg) {
|
|
30
|
+
const compiled = (0, kit_1.compileTransaction)(msg);
|
|
31
|
+
const b64 = (0, kit_1.getBase64EncodedWireTransaction)(compiled);
|
|
32
|
+
return Math.ceil((b64.length * 3) / 4);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Turn a flat instruction list into indivisible segments for bin-packing.
|
|
36
|
+
*
|
|
37
|
+
* @throws If lengths are invalid or do not partition `instructions`.
|
|
38
|
+
*/
|
|
39
|
+
function buildInstructionSegments(instructions, segmentLengths) {
|
|
40
|
+
if (segmentLengths === undefined || segmentLengths.length === 0) {
|
|
41
|
+
return instructions.map((ix) => [ix]);
|
|
42
|
+
}
|
|
43
|
+
const sum = segmentLengths.reduce((a, b) => a + b, 0);
|
|
44
|
+
if (sum !== instructions.length) {
|
|
45
|
+
throw new Error(`segmentLengths sum (${sum}) must equal instructions.length (${instructions.length}).`);
|
|
46
|
+
}
|
|
47
|
+
if (segmentLengths.some((n) => !Number.isInteger(n) || n <= 0)) {
|
|
48
|
+
throw new Error("segmentLengths entries must be positive integers.");
|
|
49
|
+
}
|
|
50
|
+
const segments = [];
|
|
51
|
+
let offset = 0;
|
|
52
|
+
for (const len of segmentLengths) {
|
|
53
|
+
segments.push(instructions.slice(offset, offset + len));
|
|
54
|
+
offset += len;
|
|
55
|
+
}
|
|
56
|
+
return segments;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Split an instruction list into the minimum number of ordered bins where
|
|
60
|
+
* each bin compiles to a transaction within the wire-size limit (minus
|
|
61
|
+
* `reservedBytes` of headroom for post-split instruction injection).
|
|
62
|
+
*
|
|
63
|
+
* Preserves instruction ordering: segments and instructions are never
|
|
64
|
+
* reordered across bins. Each bin is measured by actually compiling a v0
|
|
65
|
+
* message with the provided fee payer + ALTs, so the measurement accounts for
|
|
66
|
+
* signatures, account tables, and compact-u16 encoding exactly.
|
|
67
|
+
*
|
|
68
|
+
* Throws if:
|
|
69
|
+
* - A single segment cannot fit in one tx (even alone).
|
|
70
|
+
* - The total bins exceed `MAX_BUNDLE_TRANSACTIONS` (Jito's 5-tx limit).
|
|
71
|
+
*/
|
|
72
|
+
async function splitIntoTransactionBins(rpc, payer, instructions, options = {}) {
|
|
73
|
+
const { lookupTables, additionalSigners, blockhash, reservedBytes = 0, segmentLengths, freshBinSegments, } = options;
|
|
74
|
+
const effectiveLimit = exports.SOLANA_TX_SIZE_LIMIT - reservedBytes;
|
|
75
|
+
const freshBinSet = freshBinSegments ? new Set(freshBinSegments) : undefined;
|
|
76
|
+
if (effectiveLimit <= 0) {
|
|
77
|
+
throw new Error(`reservedBytes (${reservedBytes}) is >= the tx size limit (${exports.SOLANA_TX_SIZE_LIMIT}).`);
|
|
78
|
+
}
|
|
79
|
+
const segments = buildInstructionSegments(instructions, segmentLengths);
|
|
80
|
+
const bins = [];
|
|
81
|
+
let currentBin = [];
|
|
82
|
+
const measureCandidate = async (candidate) => {
|
|
83
|
+
const msg = await (0, transaction_1.buildTransactionMessage)(rpc, payer, candidate, lookupTables, additionalSigners, blockhash);
|
|
84
|
+
return measureTxBytes(msg);
|
|
85
|
+
};
|
|
86
|
+
for (let segIdx = 0; segIdx < segments.length; segIdx += 1) {
|
|
87
|
+
const segment = segments[segIdx];
|
|
88
|
+
// If this segment must start a fresh bin, flush the current bin first
|
|
89
|
+
// so the segment lands at the start of a new bin.
|
|
90
|
+
if (freshBinSet?.has(segIdx) && currentBin.length > 0) {
|
|
91
|
+
bins.push(currentBin);
|
|
92
|
+
currentBin = [];
|
|
93
|
+
}
|
|
94
|
+
const candidate = [...currentBin, ...segment];
|
|
95
|
+
const size = await measureCandidate(candidate);
|
|
96
|
+
if (size <= effectiveLimit) {
|
|
97
|
+
currentBin = candidate;
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
// Segment doesn't fit in the current bin. If the bin is non-empty, flush
|
|
101
|
+
// it and start a new bin with the whole segment. If the bin IS empty,
|
|
102
|
+
// the segment is too large on its own — unrecoverable.
|
|
103
|
+
if (currentBin.length === 0) {
|
|
104
|
+
throw new Error(`An indivisible instruction group (${segment.length} instruction(s)) measures ` +
|
|
105
|
+
`${size} bytes, exceeding the ${effectiveLimit}-byte effective tx size limit ` +
|
|
106
|
+
`(${exports.SOLANA_TX_SIZE_LIMIT} - ${reservedBytes} reserved) even with address lookup ` +
|
|
107
|
+
`tables. Cannot split.`);
|
|
108
|
+
}
|
|
109
|
+
bins.push(currentBin);
|
|
110
|
+
currentBin = [...segment];
|
|
111
|
+
const segmentSize = await measureCandidate(currentBin);
|
|
112
|
+
if (segmentSize > effectiveLimit) {
|
|
113
|
+
throw new Error(`An indivisible instruction group (${segment.length} instruction(s)) measures ` +
|
|
114
|
+
`${segmentSize} bytes, exceeding the ${effectiveLimit}-byte effective tx size limit ` +
|
|
115
|
+
`(${exports.SOLANA_TX_SIZE_LIMIT} - ${reservedBytes} reserved) even with address lookup ` +
|
|
116
|
+
`tables. Cannot split.`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (currentBin.length > 0) {
|
|
120
|
+
bins.push(currentBin);
|
|
121
|
+
}
|
|
122
|
+
if (bins.length > jito_1.MAX_BUNDLE_TRANSACTIONS) {
|
|
123
|
+
throw new Error(`Instruction list requires ${bins.length} transactions, but Jito bundles ` +
|
|
124
|
+
`allow at most ${jito_1.MAX_BUNDLE_TRANSACTIONS}.`);
|
|
125
|
+
}
|
|
126
|
+
return { bins };
|
|
127
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diagnostic helpers for inspecting which addresses a transaction references
|
|
3
|
+
* and whether they are covered by the caller's address lookup tables.
|
|
4
|
+
*
|
|
5
|
+
* Useful when bin-packing fails: if a segment is over the per-tx wire limit,
|
|
6
|
+
* the cheapest fix is usually adding addresses to a LUT so the compiler can
|
|
7
|
+
* compress them from 32-byte static keys down to 1-byte indices. This module
|
|
8
|
+
* surfaces the candidates by cross-referencing every account touched by the
|
|
9
|
+
* instruction list against the full contents of every passed LUT.
|
|
10
|
+
*/
|
|
11
|
+
import type { Address, Instruction, Rpc, SolanaRpcApi, TransactionSigner } from "@solana/kit";
|
|
12
|
+
export interface LutUsage {
|
|
13
|
+
/** Addresses pulled from this LUT into the compiled message's writable section. */
|
|
14
|
+
writable: Address[];
|
|
15
|
+
/** Addresses pulled from this LUT into the compiled message's readonly section. */
|
|
16
|
+
readonly: Address[];
|
|
17
|
+
/** Total addresses stored in the LUT (capacity reference). */
|
|
18
|
+
size: number;
|
|
19
|
+
}
|
|
20
|
+
export interface AccountCoverageReport {
|
|
21
|
+
/** Compiled message's static account list (programs, fee payer, anything not LUT'd). */
|
|
22
|
+
staticAccounts: Address[];
|
|
23
|
+
/** Per-LUT: which entries the compiler actually used, plus the LUT's full size. */
|
|
24
|
+
lutUsage: Map<Address, LutUsage>;
|
|
25
|
+
/** All distinct addresses referenced by the instructions (programs + accounts + fee payer). */
|
|
26
|
+
referenced: Address[];
|
|
27
|
+
/** Distinct program IDs across all instructions (forced into static keys). */
|
|
28
|
+
programIds: Address[];
|
|
29
|
+
/** Addresses referenced but NOT present in any caller-supplied LUT. */
|
|
30
|
+
uncoveredByCallerLuts: Address[];
|
|
31
|
+
/**
|
|
32
|
+
* Subset of `uncoveredByCallerLuts` that excludes program IDs and the fee
|
|
33
|
+
* payer — i.e., concrete candidates to add to a LUT for further compression.
|
|
34
|
+
*/
|
|
35
|
+
candidatesToAddToLut: Address[];
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Compile the message with the caller's LUTs, decode the result, and produce
|
|
39
|
+
* a report describing which addresses are static, which came from LUTs, and
|
|
40
|
+
* which referenced addresses are still uncovered.
|
|
41
|
+
*
|
|
42
|
+
* Note: program IDs MUST live in the static account list — the v0 message
|
|
43
|
+
* format does not allow LUT lookup for the program-id slot. The report keeps
|
|
44
|
+
* them in `referenced` and `programIds` but excludes them from
|
|
45
|
+
* `candidatesToAddToLut` since putting a program in a LUT cannot help.
|
|
46
|
+
*/
|
|
47
|
+
export declare function reportAccountCoverage(rpc: Rpc<SolanaRpcApi>, payer: TransactionSigner, instructions: Instruction[], lookupTableAddresses: Address[] | undefined): Promise<AccountCoverageReport>;
|
|
48
|
+
/** Pretty-print a coverage report. Designed for CLI/script diagnostic use. */
|
|
49
|
+
export declare function logAccountCoverage(label: string, report: AccountCoverageReport): void;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Diagnostic helpers for inspecting which addresses a transaction references
|
|
4
|
+
* and whether they are covered by the caller's address lookup tables.
|
|
5
|
+
*
|
|
6
|
+
* Useful when bin-packing fails: if a segment is over the per-tx wire limit,
|
|
7
|
+
* the cheapest fix is usually adding addresses to a LUT so the compiler can
|
|
8
|
+
* compress them from 32-byte static keys down to 1-byte indices. This module
|
|
9
|
+
* surfaces the candidates by cross-referencing every account touched by the
|
|
10
|
+
* instruction list against the full contents of every passed LUT.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.reportAccountCoverage = reportAccountCoverage;
|
|
14
|
+
exports.logAccountCoverage = logAccountCoverage;
|
|
15
|
+
const kit_1 = require("@solana/kit");
|
|
16
|
+
const lutManager_1 = require("../services/lutManager");
|
|
17
|
+
const transaction_1 = require("./transaction");
|
|
18
|
+
/**
|
|
19
|
+
* Compile the message with the caller's LUTs, decode the result, and produce
|
|
20
|
+
* a report describing which addresses are static, which came from LUTs, and
|
|
21
|
+
* which referenced addresses are still uncovered.
|
|
22
|
+
*
|
|
23
|
+
* Note: program IDs MUST live in the static account list — the v0 message
|
|
24
|
+
* format does not allow LUT lookup for the program-id slot. The report keeps
|
|
25
|
+
* them in `referenced` and `programIds` but excludes them from
|
|
26
|
+
* `candidatesToAddToLut` since putting a program in a LUT cannot help.
|
|
27
|
+
*/
|
|
28
|
+
async function reportAccountCoverage(rpc, payer, instructions, lookupTableAddresses) {
|
|
29
|
+
// Fetch the FULL contents of every caller-supplied LUT (regardless of which
|
|
30
|
+
// entries the compiler ends up referencing) so we can answer "is this
|
|
31
|
+
// address in any of MY LUTs?" — the actionable question for tightening
|
|
32
|
+
// coverage.
|
|
33
|
+
const callerLuts = lookupTableAddresses?.length
|
|
34
|
+
? await lutManager_1.lutManager.getLookupTableInputs(rpc, lookupTableAddresses)
|
|
35
|
+
: [];
|
|
36
|
+
const callerLutAddressSet = new Set(callerLuts.flatMap((l) => l.addresses));
|
|
37
|
+
// Compile the message with LUTs to see what actually got compressed and
|
|
38
|
+
// what spilled into the static account list.
|
|
39
|
+
const msg = await (0, transaction_1.buildTransactionMessage)(rpc, payer, instructions, lookupTableAddresses);
|
|
40
|
+
const compiled = (0, kit_1.compileTransaction)(msg);
|
|
41
|
+
const decoded = (0, kit_1.getCompiledTransactionMessageDecoder)().decode(compiled.messageBytes);
|
|
42
|
+
const staticAccounts = (decoded.staticAccounts ?? []);
|
|
43
|
+
const altLookups = "addressTableLookups" in decoded ? (decoded.addressTableLookups ?? []) : [];
|
|
44
|
+
const lutUsage = new Map();
|
|
45
|
+
for (const lut of callerLuts) {
|
|
46
|
+
lutUsage.set(lut.address, { writable: [], readonly: [], size: lut.addresses.length });
|
|
47
|
+
}
|
|
48
|
+
for (const lookup of altLookups) {
|
|
49
|
+
const fullAddrs = callerLuts.find((l) => l.address === lookup.lookupTableAddress)?.addresses;
|
|
50
|
+
const usage = lutUsage.get(lookup.lookupTableAddress) ?? {
|
|
51
|
+
writable: [],
|
|
52
|
+
readonly: [],
|
|
53
|
+
size: fullAddrs?.length ?? 0,
|
|
54
|
+
};
|
|
55
|
+
if (fullAddrs) {
|
|
56
|
+
usage.writable = lookup.writableIndexes.map((i) => fullAddrs[i]);
|
|
57
|
+
usage.readonly = lookup.readonlyIndexes.map((i) => fullAddrs[i]);
|
|
58
|
+
}
|
|
59
|
+
lutUsage.set(lookup.lookupTableAddress, usage);
|
|
60
|
+
}
|
|
61
|
+
const referencedSet = new Set();
|
|
62
|
+
const programSet = new Set();
|
|
63
|
+
referencedSet.add(payer.address);
|
|
64
|
+
for (const ix of instructions) {
|
|
65
|
+
referencedSet.add(ix.programAddress);
|
|
66
|
+
programSet.add(ix.programAddress);
|
|
67
|
+
for (const acc of ix.accounts ?? []) {
|
|
68
|
+
referencedSet.add(acc.address);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const referenced = [...referencedSet];
|
|
72
|
+
const programIds = [...programSet];
|
|
73
|
+
const uncoveredByCallerLuts = referenced.filter((a) => !callerLutAddressSet.has(a));
|
|
74
|
+
const candidatesToAddToLut = uncoveredByCallerLuts.filter((a) => a !== payer.address && !programSet.has(a));
|
|
75
|
+
return {
|
|
76
|
+
staticAccounts,
|
|
77
|
+
lutUsage,
|
|
78
|
+
referenced,
|
|
79
|
+
programIds,
|
|
80
|
+
uncoveredByCallerLuts,
|
|
81
|
+
candidatesToAddToLut,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/** Pretty-print a coverage report. Designed for CLI/script diagnostic use. */
|
|
85
|
+
function logAccountCoverage(label, report) {
|
|
86
|
+
console.log(`\n── Account coverage: ${label} ──`);
|
|
87
|
+
console.log(`Compiled static accounts (${report.staticAccounts.length}) — programs, fee payer, and uncompressed:`);
|
|
88
|
+
report.staticAccounts.forEach((a, i) => console.log(` [${i}] ${a}`));
|
|
89
|
+
console.log(`\nCaller-supplied LUTs (${report.lutUsage.size}):`);
|
|
90
|
+
if (report.lutUsage.size === 0) {
|
|
91
|
+
console.log(" (none)");
|
|
92
|
+
}
|
|
93
|
+
for (const [lut, usage] of report.lutUsage) {
|
|
94
|
+
const used = usage.writable.length + usage.readonly.length;
|
|
95
|
+
console.log(` ${lut} size=${usage.size} used=${used}`);
|
|
96
|
+
if (usage.writable.length > 0) {
|
|
97
|
+
console.log(` writable (${usage.writable.length}): ${usage.writable.join(", ")}`);
|
|
98
|
+
}
|
|
99
|
+
if (usage.readonly.length > 0) {
|
|
100
|
+
console.log(` readonly (${usage.readonly.length}): ${usage.readonly.join(", ")}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
console.log(`\nReferenced addresses: ${report.referenced.length} ` +
|
|
104
|
+
`(${report.programIds.length} program ID${report.programIds.length === 1 ? "" : "s"})`);
|
|
105
|
+
console.log(`\nReferenced but NOT in any caller LUT (${report.uncoveredByCallerLuts.length}):`);
|
|
106
|
+
if (report.uncoveredByCallerLuts.length === 0) {
|
|
107
|
+
console.log(" (none — every referenced address is in at least one caller LUT)");
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
for (const a of report.uncoveredByCallerLuts) {
|
|
111
|
+
const tag = report.programIds.includes(a) ? " [PROGRAM — must be static]" : "";
|
|
112
|
+
console.log(` ${a}${tag}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
console.log(`\nCandidates to add to a LUT (excludes programs + fee payer; ${report.candidatesToAddToLut.length}):`);
|
|
116
|
+
if (report.candidatesToAddToLut.length === 0) {
|
|
117
|
+
console.log(" (none — uncovered addresses are all programs or the fee payer)");
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
report.candidatesToAddToLut.forEach((a) => console.log(` ${a}`));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { Address, Transaction } from "@solana/kit";
|
|
2
|
+
import type { QuoteResponse } from "@jup-ag/api";
|
|
3
|
+
import type { JupiterQuoteParams, JupiterSwapParams } from "./types";
|
|
4
|
+
/**
|
|
5
|
+
* Get a Jupiter swap quote.
|
|
6
|
+
*
|
|
7
|
+
* @param params - Quote parameters
|
|
8
|
+
* @returns Quote response from Jupiter API
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const quote = await getJupiterQuote({
|
|
13
|
+
* inputMint: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
|
|
14
|
+
* outputMint: address("So11111111111111111111111111111111111111112"),
|
|
15
|
+
* amount: 1000_000, // 1 USDC (6 decimals)
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function getJupiterQuote(params: JupiterQuoteParams): Promise<QuoteResponse>;
|
|
20
|
+
/**
|
|
21
|
+
* Build a Jupiter swap transaction from a quote.
|
|
22
|
+
*
|
|
23
|
+
* @param params - Swap parameters including quote and user public key
|
|
24
|
+
* @returns Kit Transaction ready for signing or instruction extraction
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const quote = await getJupiterQuote({ ... });
|
|
29
|
+
* const tx = await buildJupiterSwapTransaction({
|
|
30
|
+
* quote,
|
|
31
|
+
* userPublicKey: myPdaAddress, // Can be a PDA for CPI
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildJupiterSwapTransaction(params: JupiterSwapParams): Promise<Transaction>;
|
|
36
|
+
/**
|
|
37
|
+
* Convenience function to get quote and build transaction in one call.
|
|
38
|
+
*
|
|
39
|
+
* @param quoteParams - Quote parameters
|
|
40
|
+
* @param userPublicKey - Address that will execute the swap
|
|
41
|
+
* @param swapOptions - Additional swap options
|
|
42
|
+
* @returns Quote response and Kit transaction
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const { quote, transaction } = await getJupiterSwapTransaction(
|
|
47
|
+
* {
|
|
48
|
+
* inputMint: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
|
|
49
|
+
* outputMint: address("So11111111111111111111111111111111111111112"),
|
|
50
|
+
* amount: 1000_000,
|
|
51
|
+
* },
|
|
52
|
+
* myPdaAddress
|
|
53
|
+
* );
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function getJupiterSwapTransaction(quoteParams: JupiterQuoteParams, userPublicKey: Address, swapOptions?: Omit<JupiterSwapParams, "quote" | "userPublicKey">): Promise<{
|
|
57
|
+
quote: QuoteResponse;
|
|
58
|
+
transaction: Transaction;
|
|
59
|
+
}>;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getJupiterQuote = getJupiterQuote;
|
|
4
|
+
exports.buildJupiterSwapTransaction = buildJupiterSwapTransaction;
|
|
5
|
+
exports.getJupiterSwapTransaction = getJupiterSwapTransaction;
|
|
6
|
+
const kit_1 = require("@solana/kit");
|
|
7
|
+
const api_1 = require("@jup-ag/api");
|
|
8
|
+
const constants_1 = require("./constants");
|
|
9
|
+
/**
|
|
10
|
+
* Get a Jupiter swap quote.
|
|
11
|
+
*
|
|
12
|
+
* @param params - Quote parameters
|
|
13
|
+
* @returns Quote response from Jupiter API
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const quote = await getJupiterQuote({
|
|
18
|
+
* inputMint: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
|
|
19
|
+
* outputMint: address("So11111111111111111111111111111111111111112"),
|
|
20
|
+
* amount: 1000_000, // 1 USDC (6 decimals)
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
async function getJupiterQuote(params) {
|
|
25
|
+
const jupiterApi = (0, api_1.createJupiterApiClient)({ basePath: constants_1.JUPITER_API_URL });
|
|
26
|
+
const amount = typeof params.amount === "bigint" ? Number(params.amount) : params.amount;
|
|
27
|
+
const request = {
|
|
28
|
+
inputMint: params.inputMint,
|
|
29
|
+
outputMint: params.outputMint,
|
|
30
|
+
amount,
|
|
31
|
+
slippageBps: params.slippageBps ?? constants_1.DEFAULT_SLIPPAGE_BPS,
|
|
32
|
+
swapMode: params.swapMode,
|
|
33
|
+
maxAccounts: params.maxAccounts,
|
|
34
|
+
dexes: params.dexes,
|
|
35
|
+
// When `dexes` is set it acts as a whitelist and `excludeDexes` is irrelevant.
|
|
36
|
+
// Otherwise the caller's exclusions are merged with the global list.
|
|
37
|
+
excludeDexes: params.dexes
|
|
38
|
+
? undefined
|
|
39
|
+
: [...new Set([...constants_1.ALWAYS_EXCLUDED_DEXES, ...(params.excludeDexes ?? [])])],
|
|
40
|
+
onlyDirectRoutes: params.onlyDirectRoutes,
|
|
41
|
+
};
|
|
42
|
+
try {
|
|
43
|
+
return await jupiterApi.quoteGet(request);
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
throw await enrichJupiterHttpError(err, request);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The OpenAPI client throws `ResponseError` with a generic message; the real reason
|
|
51
|
+
* is usually in the HTTP body (e.g. no route, validation).
|
|
52
|
+
*/
|
|
53
|
+
async function enrichJupiterHttpError(err, request) {
|
|
54
|
+
if (!(err instanceof Error) || !("response" in err)) {
|
|
55
|
+
return err instanceof Error ? err : new Error(String(err));
|
|
56
|
+
}
|
|
57
|
+
const res = err.response;
|
|
58
|
+
if (!res || res.ok || typeof res.text !== "function") {
|
|
59
|
+
return err;
|
|
60
|
+
}
|
|
61
|
+
let body = "";
|
|
62
|
+
try {
|
|
63
|
+
body = (await res.text()).slice(0, 2000);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
body = "<failed to read response body>";
|
|
67
|
+
}
|
|
68
|
+
return new Error(`Jupiter quoteGet http=${res.status} ${res.statusText} request=${JSON.stringify(request)} body=${body} (was: ${err.message})`);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Build a Jupiter swap transaction from a quote.
|
|
72
|
+
*
|
|
73
|
+
* @param params - Swap parameters including quote and user public key
|
|
74
|
+
* @returns Kit Transaction ready for signing or instruction extraction
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* const quote = await getJupiterQuote({ ... });
|
|
79
|
+
* const tx = await buildJupiterSwapTransaction({
|
|
80
|
+
* quote,
|
|
81
|
+
* userPublicKey: myPdaAddress, // Can be a PDA for CPI
|
|
82
|
+
* });
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
async function buildJupiterSwapTransaction(params) {
|
|
86
|
+
const jupiterApi = (0, api_1.createJupiterApiClient)({ basePath: constants_1.JUPITER_API_URL });
|
|
87
|
+
const swapResult = await jupiterApi.swapPost({
|
|
88
|
+
swapRequest: {
|
|
89
|
+
quoteResponse: params.quote,
|
|
90
|
+
userPublicKey: params.userPublicKey,
|
|
91
|
+
wrapAndUnwrapSol: params.wrapAndUnwrapSol ?? false, // Default false for CPI
|
|
92
|
+
dynamicComputeUnitLimit: params.dynamicComputeUnitLimit ?? true,
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
// Jupiter returns a base64-encoded serialized transaction
|
|
96
|
+
// In Kit, "encoder" converts string -> bytes, "decoder" converts bytes -> string
|
|
97
|
+
const base64Encoder = (0, kit_1.getBase64Encoder)();
|
|
98
|
+
const transactionBytes = base64Encoder.encode(swapResult.swapTransaction);
|
|
99
|
+
const transactionDecoder = (0, kit_1.getTransactionDecoder)();
|
|
100
|
+
return transactionDecoder.decode(transactionBytes);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Convenience function to get quote and build transaction in one call.
|
|
104
|
+
*
|
|
105
|
+
* @param quoteParams - Quote parameters
|
|
106
|
+
* @param userPublicKey - Address that will execute the swap
|
|
107
|
+
* @param swapOptions - Additional swap options
|
|
108
|
+
* @returns Quote response and Kit transaction
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* const { quote, transaction } = await getJupiterSwapTransaction(
|
|
113
|
+
* {
|
|
114
|
+
* inputMint: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
|
|
115
|
+
* outputMint: address("So11111111111111111111111111111111111111112"),
|
|
116
|
+
* amount: 1000_000,
|
|
117
|
+
* },
|
|
118
|
+
* myPdaAddress
|
|
119
|
+
* );
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
async function getJupiterSwapTransaction(quoteParams, userPublicKey, swapOptions) {
|
|
123
|
+
const quote = await getJupiterQuote(quoteParams);
|
|
124
|
+
const transaction = await buildJupiterSwapTransaction({
|
|
125
|
+
quote,
|
|
126
|
+
userPublicKey,
|
|
127
|
+
...swapOptions,
|
|
128
|
+
});
|
|
129
|
+
return { quote, transaction };
|
|
130
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type Address, type Rpc, type SolanaRpcApi } from "@solana/kit";
|
|
2
|
+
import type { QuoteResponse } from "@jup-ag/api";
|
|
3
|
+
import type { JupiterSwapClientConfig } from "./types";
|
|
4
|
+
import { CpiData, RoutableSwapClient, SwapQuoteParams, SwapQuote, SwapQuoteCoveringMinOutputParams, SwapInstructionOptions } from "common";
|
|
5
|
+
/** Jupiter-specific swap quote with typed rawQuote */
|
|
6
|
+
export type JupiterSwapQuote = SwapQuote<QuoteResponse>;
|
|
7
|
+
/**
|
|
8
|
+
* Jupiter swap client implementing RoutableSwapClient (see `common`).
|
|
9
|
+
*
|
|
10
|
+
* Provides a simplified API for getting quotes and building swap instructions
|
|
11
|
+
* from Jupiter aggregator for use in CPI calls.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const client = new JupiterSwapClient(rpc);
|
|
16
|
+
*
|
|
17
|
+
* // Get a quote
|
|
18
|
+
* const quote = await client.getQuote({
|
|
19
|
+
* inputMint: USDC_MINT,
|
|
20
|
+
* outputMint: WSOL_MINT,
|
|
21
|
+
* amount: 10_000_000, // 10 USDC
|
|
22
|
+
* slippageBps: 500, // 5%
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Build instruction for CPI
|
|
26
|
+
* const { data, accounts, programId } = await client.getSwapCpiData(
|
|
27
|
+
* quote,
|
|
28
|
+
* swapAuthorityPda
|
|
29
|
+
* );
|
|
30
|
+
*
|
|
31
|
+
* // Use in your Anchor program
|
|
32
|
+
* await program.methods
|
|
33
|
+
* .executeSwap(Buffer.from(data))
|
|
34
|
+
* .remainingAccounts(accounts.map(toWeb3AccountMeta))
|
|
35
|
+
* .rpc();
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare class JupiterSwapClient implements RoutableSwapClient<QuoteResponse> {
|
|
39
|
+
private rpc;
|
|
40
|
+
private readonly config;
|
|
41
|
+
/**
|
|
42
|
+
* Empty lists mean any route for aggregate routing (Jupiter quotes arbitrary
|
|
43
|
+
* pairs via the API).
|
|
44
|
+
*/
|
|
45
|
+
readonly inputMints: readonly Address[];
|
|
46
|
+
readonly outputMints: readonly Address[];
|
|
47
|
+
readonly routeAnchorMints: readonly Address[];
|
|
48
|
+
/**
|
|
49
|
+
* Creates a new Jupiter swap client.
|
|
50
|
+
*
|
|
51
|
+
* @param rpc - Solana RPC client for resolving address lookup tables
|
|
52
|
+
* @param config - Optional default quote policy applied to every Jupiter quote
|
|
53
|
+
*/
|
|
54
|
+
constructor(rpc: Rpc<SolanaRpcApi>, config?: JupiterSwapClientConfig);
|
|
55
|
+
/**
|
|
56
|
+
* Get a swap quote from Jupiter.
|
|
57
|
+
*
|
|
58
|
+
* @param params - Quote parameters
|
|
59
|
+
* @returns Normalized swap quote with Jupiter's QuoteResponse as rawQuote
|
|
60
|
+
*/
|
|
61
|
+
getQuote(params: SwapQuoteParams): Promise<JupiterSwapQuote>;
|
|
62
|
+
/**
|
|
63
|
+
* Use Jupiter `ExactOut` quoting: desired output is `minOutputAmount`; reject if implied
|
|
64
|
+
* input exceeds `maxInputAmount`.
|
|
65
|
+
*/
|
|
66
|
+
getQuoteCoveringMinOutput(params: SwapQuoteCoveringMinOutputParams): Promise<JupiterSwapQuote>;
|
|
67
|
+
/**
|
|
68
|
+
* Build Jupiter swap instruction for CPI.
|
|
69
|
+
*
|
|
70
|
+
* This fetches a swap transaction from Jupiter API, decompiles it,
|
|
71
|
+
* and extracts the instruction data and accounts needed for CPI.
|
|
72
|
+
*
|
|
73
|
+
* @param quote - Quote from getQuote()
|
|
74
|
+
* @param userPublicKey - Address executing the swap (typically a PDA)
|
|
75
|
+
* @param options - Swap options
|
|
76
|
+
* @returns Instruction data, accounts, and Jupiter program ID
|
|
77
|
+
*/
|
|
78
|
+
getSwapCpiData(quote: JupiterSwapQuote, userPublicKey: Address, options?: SwapInstructionOptions): Promise<CpiData>;
|
|
79
|
+
}
|