@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,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Long Yield Carry program client.
|
|
3
|
+
*
|
|
4
|
+
* Composes PDA derivation, account fetching, instruction building, and
|
|
5
|
+
* transaction composition behind a single entry point.
|
|
6
|
+
*
|
|
7
|
+
* The Anchor program ID flows through to all sub-clients — no global state
|
|
8
|
+
* required.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* const client = new LongYieldCarryClient(provider, "local");
|
|
12
|
+
* const [pda, bump] = client.pda.token(mintAddress);
|
|
13
|
+
* const ix = await client.tx.createToken.getIx({
|
|
14
|
+
* mint,
|
|
15
|
+
* collateralMint,
|
|
16
|
+
* params,
|
|
17
|
+
* });
|
|
18
|
+
* const data = await client.account.token(pda);
|
|
19
|
+
* const tx = await client.tx.collectInterest.getTx({ manager: manager, token: token, params: { yieldingBank } });
|
|
20
|
+
*/
|
|
21
|
+
import { AnchorProvider } from "@anchor-lang/core";
|
|
22
|
+
import { type Instruction, type Rpc, type Signature, type SolanaRpcApi, type TransactionSigner } from "@solana/kit";
|
|
23
|
+
import { LendingPlatform, type Environment, type SendTransactionOptionsWithPostSuccess, type SwapClient, type TransactionPlan } from "common";
|
|
24
|
+
import { KaminoClient, type LendingPlatformClientBase, type LendingPlatformData, type OutstandingIncentive } from "lending-platforms";
|
|
25
|
+
import { PdaClient } from "./pda";
|
|
26
|
+
import { AccountClient } from "./account";
|
|
27
|
+
import type { LongYieldCarryTransactionPlan } from "./types";
|
|
28
|
+
import type { LYCToken, TokenLendingPositionData } from "../models/lycToken";
|
|
29
|
+
import { LendingPlatformClientRegistry, type SupportedLendingPlatformClients } from "./lendingPlatformClients";
|
|
30
|
+
import { TransactionClient } from "./transaction";
|
|
31
|
+
export interface LongYieldCarryClientOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Swap client override. Replaces the default `AggSwapClient` for all swaps
|
|
34
|
+
* (including collect_interest). Useful in tests that need a restricted routing
|
|
35
|
+
* client (e.g. Surfpool direct-route-only client).
|
|
36
|
+
*/
|
|
37
|
+
swapClient?: SwapClient;
|
|
38
|
+
/**
|
|
39
|
+
* Optional overrides for internally managed lending platform clients.
|
|
40
|
+
* These are primarily useful in tests.
|
|
41
|
+
*/
|
|
42
|
+
lendingPlatformClients?: Partial<SupportedLendingPlatformClients>;
|
|
43
|
+
}
|
|
44
|
+
/** Claimable incentives keyed by the token's lending position index. */
|
|
45
|
+
export type OutstandingIncentivesByPosition = Map<number, OutstandingIncentive[]>;
|
|
46
|
+
export declare class LongYieldCarryClient {
|
|
47
|
+
/**
|
|
48
|
+
* Deployment tier for this client (`local`, `test`, `prod`) — drives program ID,
|
|
49
|
+
* RPC URL, and authority constants passed into transaction builders.
|
|
50
|
+
*/
|
|
51
|
+
readonly environment: Environment;
|
|
52
|
+
/** Shared RPC client used by SDK send helpers */
|
|
53
|
+
readonly rpc: Rpc<SolanaRpcApi>;
|
|
54
|
+
/** PDA derivation utilities */
|
|
55
|
+
readonly pda: PdaClient;
|
|
56
|
+
/** On-chain account fetchers */
|
|
57
|
+
readonly account: AccountClient;
|
|
58
|
+
/** Transaction/instruction builders */
|
|
59
|
+
readonly tx: TransactionClient;
|
|
60
|
+
/** Aggregated swap client (Perena for USD* pairs, Jupiter fallback) */
|
|
61
|
+
readonly swap: SwapClient;
|
|
62
|
+
/** Shared registry of protocol-specific lending clients */
|
|
63
|
+
readonly lendingPlatformClients: LendingPlatformClientRegistry;
|
|
64
|
+
/**
|
|
65
|
+
* @param provider - Anchor provider (connection + wallet)
|
|
66
|
+
* @param environment - Optional environment override ("local", "test", "prod").
|
|
67
|
+
* Determines which program ID and RPC URL to use. Defaults to the IDL address.
|
|
68
|
+
* @param options - Optional configuration overrides (e.g. custom swap client for tests).
|
|
69
|
+
*/
|
|
70
|
+
/**
|
|
71
|
+
* Create a read-only client with a throwaway keypair.
|
|
72
|
+
*
|
|
73
|
+
* Use this for services that only need to read on-chain state (e.g. the
|
|
74
|
+
* price ingestion Lambda) and never sign transactions.
|
|
75
|
+
*/
|
|
76
|
+
static readOnly(env: Environment): LongYieldCarryClient;
|
|
77
|
+
constructor(provider: AnchorProvider, environment?: Environment, options?: LongYieldCarryClientOptions);
|
|
78
|
+
/**
|
|
79
|
+
* Sign, send, and confirm a transaction, then apply any post-success cache
|
|
80
|
+
* invalidations embedded in the transaction plan.
|
|
81
|
+
*/
|
|
82
|
+
sendTransaction(payer: TransactionSigner, instructionsOrPlan: Instruction[] | TransactionPlan, options?: SendTransactionOptionsWithPostSuccess): Promise<Signature>;
|
|
83
|
+
/**
|
|
84
|
+
* Returns currently claimable lending incentives keyed by lending position
|
|
85
|
+
* index. Each value contains that position's claimable incentive entries as
|
|
86
|
+
* reported by the underlying lending-platform client.
|
|
87
|
+
*
|
|
88
|
+
* `minUiAmount` filters out dust rewards (UI-denominated, per reward token);
|
|
89
|
+
* defaults to {@link DEFAULT_MIN_INCENTIVE_UI_AMOUNT} so harvesting never pays
|
|
90
|
+
* a transaction fee for an economically negligible balance.
|
|
91
|
+
*/
|
|
92
|
+
getOutstandingIncentives(token: LYCToken, minUiAmount?: number, log?: (msg: string) => void): Promise<OutstandingIncentivesByPosition>;
|
|
93
|
+
/**
|
|
94
|
+
* Drops every cached entry across all sub-clients (account data, Kamino
|
|
95
|
+
* lending data, swap quotes). The next read through any sub-client will
|
|
96
|
+
* hit the RPC / API fresh.
|
|
97
|
+
*
|
|
98
|
+
* Use this between sequential phases that mutate on-chain state so that
|
|
99
|
+
* the later phase doesn't operate on stale snapshots.
|
|
100
|
+
*/
|
|
101
|
+
clearAllCache(): void;
|
|
102
|
+
/**
|
|
103
|
+
* Clears cached data that a confirmed transaction has made stale.
|
|
104
|
+
*
|
|
105
|
+
* Call this after a transaction built from a `LongYieldCarryTransactionPlan`
|
|
106
|
+
* has been confirmed by an external sender (e.g. the backend
|
|
107
|
+
* `TransactionService`). The built-in `sendTransaction` applies these
|
|
108
|
+
* automatically; this method exists for callers that sign/send through a
|
|
109
|
+
* different path.
|
|
110
|
+
*/
|
|
111
|
+
applyCacheInvalidations(plan: LongYieldCarryTransactionPlan): void;
|
|
112
|
+
getLendingPlatformClient(position: TokenLendingPositionData): LendingPlatformClientBase<LendingPlatformData>;
|
|
113
|
+
getLendingPlatformClientByPlatform(platform: LendingPlatform.Kamino): KaminoClient;
|
|
114
|
+
getLendingPlatformClientByPlatform(platform: LendingPlatform): LendingPlatformClientBase<LendingPlatformData>;
|
|
115
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Long Yield Carry program client.
|
|
4
|
+
*
|
|
5
|
+
* Composes PDA derivation, account fetching, instruction building, and
|
|
6
|
+
* transaction composition behind a single entry point.
|
|
7
|
+
*
|
|
8
|
+
* The Anchor program ID flows through to all sub-clients — no global state
|
|
9
|
+
* required.
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* const client = new LongYieldCarryClient(provider, "local");
|
|
13
|
+
* const [pda, bump] = client.pda.token(mintAddress);
|
|
14
|
+
* const ix = await client.tx.createToken.getIx({
|
|
15
|
+
* mint,
|
|
16
|
+
* collateralMint,
|
|
17
|
+
* params,
|
|
18
|
+
* });
|
|
19
|
+
* const data = await client.account.token(pda);
|
|
20
|
+
* const tx = await client.tx.collectInterest.getTx({ manager: manager, token: token, params: { yieldingBank } });
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.LongYieldCarryClient = void 0;
|
|
24
|
+
const core_1 = require("@anchor-lang/core");
|
|
25
|
+
const kit_1 = require("@solana/kit");
|
|
26
|
+
const common_1 = require("common");
|
|
27
|
+
const lending_platforms_1 = require("lending-platforms");
|
|
28
|
+
const swap_aggregator_1 = require("swap-aggregator");
|
|
29
|
+
const long_yield_carry_1 = require("../idl/long_yield_carry");
|
|
30
|
+
const general_1 = require("../constants/general");
|
|
31
|
+
const pda_1 = require("./pda");
|
|
32
|
+
const account_1 = require("./account");
|
|
33
|
+
const lendingPlatformClients_1 = require("./lendingPlatformClients");
|
|
34
|
+
const externalLiquidityResolver_1 = require("./externalLiquidityResolver");
|
|
35
|
+
const transaction_1 = require("./transaction");
|
|
36
|
+
class LongYieldCarryClient {
|
|
37
|
+
/**
|
|
38
|
+
* @param provider - Anchor provider (connection + wallet)
|
|
39
|
+
* @param environment - Optional environment override ("local", "test", "prod").
|
|
40
|
+
* Determines which program ID and RPC URL to use. Defaults to the IDL address.
|
|
41
|
+
* @param options - Optional configuration overrides (e.g. custom swap client for tests).
|
|
42
|
+
*/
|
|
43
|
+
/**
|
|
44
|
+
* Create a read-only client with a throwaway keypair.
|
|
45
|
+
*
|
|
46
|
+
* Use this for services that only need to read on-chain state (e.g. the
|
|
47
|
+
* price ingestion Lambda) and never sign transactions.
|
|
48
|
+
*/
|
|
49
|
+
static readOnly(env) {
|
|
50
|
+
return new LongYieldCarryClient((0, common_1.createReadOnlyAnchorProvider)(env), env);
|
|
51
|
+
}
|
|
52
|
+
constructor(provider, environment, options) {
|
|
53
|
+
const env = environment ?? "local";
|
|
54
|
+
this.environment = env;
|
|
55
|
+
const rpcUrl = (0, common_1.getRpcUrl)(env);
|
|
56
|
+
const rpcUrls = (0, common_1.getRpcUrls)(env);
|
|
57
|
+
const idl = environment ? { ...long_yield_carry_1.IDL, address: general_1.PROGRAM_ID[environment] } : long_yield_carry_1.IDL;
|
|
58
|
+
const program = new core_1.Program(idl, provider);
|
|
59
|
+
this.rpc = (0, common_1.createRpc)(env);
|
|
60
|
+
this.pda = new pda_1.PdaClient((0, kit_1.address)(program.programId.toBase58()));
|
|
61
|
+
this.account = new account_1.AccountClient(program, this.pda, this.rpc);
|
|
62
|
+
const kaminoClient = options?.lendingPlatformClients?.kamino ?? new lending_platforms_1.KaminoClient(rpcUrl, rpcUrls);
|
|
63
|
+
this.lendingPlatformClients = new lendingPlatformClients_1.LendingPlatformClientRegistry({
|
|
64
|
+
kamino: kaminoClient,
|
|
65
|
+
});
|
|
66
|
+
this.swap = options?.swapClient ?? (0, swap_aggregator_1.createAggSwapClient)(rpcUrl, env);
|
|
67
|
+
const externalLiquidityResolver = new externalLiquidityResolver_1.LongYieldCarryExternalLiquidityResolver(rpcUrl);
|
|
68
|
+
this.tx = new transaction_1.TransactionClient({
|
|
69
|
+
rpc: this.rpc,
|
|
70
|
+
program,
|
|
71
|
+
account: this.account,
|
|
72
|
+
pda: this.pda,
|
|
73
|
+
swap: this.swap,
|
|
74
|
+
externalLiquidityResolver,
|
|
75
|
+
environment: environment ?? "local",
|
|
76
|
+
lendingPlatformClients: this.lendingPlatformClients,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Sign, send, and confirm a transaction, then apply any post-success cache
|
|
81
|
+
* invalidations embedded in the transaction plan.
|
|
82
|
+
*/
|
|
83
|
+
async sendTransaction(payer, instructionsOrPlan, options) {
|
|
84
|
+
const plan = Array.isArray(instructionsOrPlan)
|
|
85
|
+
? undefined
|
|
86
|
+
: instructionsOrPlan;
|
|
87
|
+
return (0, common_1.signSendAndConfirmTransaction)(this.rpc, payer, instructionsOrPlan, {
|
|
88
|
+
...options,
|
|
89
|
+
onSuccess: () => {
|
|
90
|
+
if (plan)
|
|
91
|
+
this.applyCacheInvalidations(plan);
|
|
92
|
+
options?.onSuccess?.();
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Returns currently claimable lending incentives keyed by lending position
|
|
98
|
+
* index. Each value contains that position's claimable incentive entries as
|
|
99
|
+
* reported by the underlying lending-platform client.
|
|
100
|
+
*
|
|
101
|
+
* `minUiAmount` filters out dust rewards (UI-denominated, per reward token);
|
|
102
|
+
* defaults to {@link DEFAULT_MIN_INCENTIVE_UI_AMOUNT} so harvesting never pays
|
|
103
|
+
* a transaction fee for an economically negligible balance.
|
|
104
|
+
*/
|
|
105
|
+
async getOutstandingIncentives(token, minUiAmount = general_1.DEFAULT_MIN_INCENTIVE_UI_AMOUNT, log) {
|
|
106
|
+
const positionIncentives = await Promise.all(token.activeLendingPositions.map(async ({ index, data: position }) => {
|
|
107
|
+
log?.(`\n[getOutstandingIncentives] position #${index} userAcc=${(0, common_1.fromWeb3Pk)(position.protocolUserAcc).slice(0, 6)}…`);
|
|
108
|
+
const incentives = await this.lendingPlatformClients
|
|
109
|
+
.getForPosition(position)
|
|
110
|
+
.getOutstandingIncentives((0, common_1.fromWeb3Pk)(position.protocolUserAcc), minUiAmount, log);
|
|
111
|
+
return { index, incentives };
|
|
112
|
+
}));
|
|
113
|
+
const incentivesByPosition = new Map();
|
|
114
|
+
for (const { index, incentives } of positionIncentives) {
|
|
115
|
+
const known = incentives.filter((i) => common_1.mints.get(i.mint) !== undefined);
|
|
116
|
+
const unknown = incentives.filter((i) => common_1.mints.get(i.mint) === undefined);
|
|
117
|
+
if (unknown.length > 0) {
|
|
118
|
+
log?.(` position #${index}: ${unknown.length} incentive(s) skipped — mint not in registry: ${unknown.map((i) => i.mint.slice(0, 6) + "…").join(", ")}`);
|
|
119
|
+
}
|
|
120
|
+
if (known.length > 0) {
|
|
121
|
+
incentivesByPosition.set(index, known);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return incentivesByPosition;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Drops every cached entry across all sub-clients (account data, Kamino
|
|
128
|
+
* lending data, swap quotes). The next read through any sub-client will
|
|
129
|
+
* hit the RPC / API fresh.
|
|
130
|
+
*
|
|
131
|
+
* Use this between sequential phases that mutate on-chain state so that
|
|
132
|
+
* the later phase doesn't operate on stale snapshots.
|
|
133
|
+
*/
|
|
134
|
+
clearAllCache() {
|
|
135
|
+
this.account.dataCache.clearAllCache();
|
|
136
|
+
for (const lpClient of this.lendingPlatformClients.getAll()) {
|
|
137
|
+
lpClient.data.clearCache();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Clears cached data that a confirmed transaction has made stale.
|
|
142
|
+
*
|
|
143
|
+
* Call this after a transaction built from a `LongYieldCarryTransactionPlan`
|
|
144
|
+
* has been confirmed by an external sender (e.g. the backend
|
|
145
|
+
* `TransactionService`). The built-in `sendTransaction` applies these
|
|
146
|
+
* automatically; this method exists for callers that sign/send through a
|
|
147
|
+
* different path.
|
|
148
|
+
*/
|
|
149
|
+
applyCacheInvalidations(plan) {
|
|
150
|
+
const invalidations = plan.postSuccessCacheInvalidations ?? [];
|
|
151
|
+
for (const lpClient of this.lendingPlatformClients.getAll()) {
|
|
152
|
+
lpClient.applyPostSuccessCacheInvalidations(invalidations);
|
|
153
|
+
}
|
|
154
|
+
(0, common_1.applyDataCacheTransactionInvalidations)(this.account.dataCache, invalidations, {
|
|
155
|
+
tokenPdaCategory: account_1.LYC_TOKEN_CACHE_CATEGORY,
|
|
156
|
+
yieldingBankPdaCategory: account_1.YIELDING_BANK_CACHE_CATEGORY,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
getLendingPlatformClient(position) {
|
|
160
|
+
return this.lendingPlatformClients.getForPosition(position);
|
|
161
|
+
}
|
|
162
|
+
getLendingPlatformClientByPlatform(platform) {
|
|
163
|
+
return this.lendingPlatformClients.getByPlatform(platform);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.LongYieldCarryClient = LongYieldCarryClient;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Address } from "@solana/kit";
|
|
2
|
+
import { type CpiData, type TransactionCacheInvalidation } from "common";
|
|
3
|
+
import type { YieldingBankExternalLiquiditySource } from "./types";
|
|
4
|
+
import type { AccountClient } from "./account";
|
|
5
|
+
export interface YieldingBankRefreshExternalLiquidity {
|
|
6
|
+
externalLiquiditySources: YieldingBankExternalLiquiditySource[];
|
|
7
|
+
postSuccessCacheInvalidations: TransactionCacheInvalidation[];
|
|
8
|
+
}
|
|
9
|
+
export declare class LongYieldCarryExternalLiquidityResolver {
|
|
10
|
+
private readonly perena;
|
|
11
|
+
constructor(rpcUrl: string);
|
|
12
|
+
resolveYieldingBankRefreshExternalLiquidity(accountClient: AccountClient, yieldingBank: Address, cpiData?: readonly CpiData[]): Promise<YieldingBankRefreshExternalLiquidity>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LongYieldCarryExternalLiquidityResolver = void 0;
|
|
4
|
+
const common_1 = require("common");
|
|
5
|
+
const perena_helpers_1 = require("perena-helpers");
|
|
6
|
+
class LongYieldCarryExternalLiquidityResolver {
|
|
7
|
+
constructor(rpcUrl) {
|
|
8
|
+
this.perena = new perena_helpers_1.PerenaClient(rpcUrl);
|
|
9
|
+
}
|
|
10
|
+
async resolveYieldingBankRefreshExternalLiquidity(accountClient, yieldingBank, cpiData = []) {
|
|
11
|
+
const usdStarJuniorMint = common_1.mints.get("USD*-J");
|
|
12
|
+
if (!usdStarJuniorMint) {
|
|
13
|
+
return { externalLiquiditySources: [], postSuccessCacheInvalidations: [] };
|
|
14
|
+
}
|
|
15
|
+
const bank = await accountClient.fetchYieldingBank(yieldingBank);
|
|
16
|
+
if (!bank.findAssetHolding(usdStarJuniorMint.address)) {
|
|
17
|
+
return { externalLiquiditySources: [], postSuccessCacheInvalidations: [] };
|
|
18
|
+
}
|
|
19
|
+
const withdrawalQueues = (0, common_1.dedupeOrderedAddresses)([
|
|
20
|
+
...(await this.perena.getActiveWithdrawalQueues(yieldingBank)),
|
|
21
|
+
...(0, perena_helpers_1.getPerenaWithdrawalQueueAddressesFromCpiData)(cpiData),
|
|
22
|
+
]);
|
|
23
|
+
return {
|
|
24
|
+
externalLiquiditySources: withdrawalQueues.map((account) => ({
|
|
25
|
+
mint: usdStarJuniorMint.address,
|
|
26
|
+
account,
|
|
27
|
+
})),
|
|
28
|
+
postSuccessCacheInvalidations: withdrawalQueues.length
|
|
29
|
+
? [this.perena.getActiveWithdrawalQueuesCacheInvalidation(yieldingBank)]
|
|
30
|
+
: [],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.LongYieldCarryExternalLiquidityResolver = LongYieldCarryExternalLiquidityResolver;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { LongYieldCarryClient, type LongYieldCarryClientOptions } from "./client";
|
|
2
|
+
export * from "./transaction";
|
|
3
|
+
export { LendingPlatformClientRegistry, type SupportedLendingPlatformClients, } from "./lendingPlatformClients";
|
|
4
|
+
export { assertCollectInterestPlanHasPositiveRedemptions, buildCollectInterestPlan, } from "./plans/collectInterest";
|
|
5
|
+
export { buildDecreaseCarryPositionPlan } from "./plans/decreaseCarryPosition";
|
|
6
|
+
export * from "./types";
|
|
7
|
+
export { LYCToken } from "../models/lycToken";
|
|
8
|
+
export type { TokenAccountData, TokenCarryPositionData, IndexedCarryPosition, } from "../models/lycToken";
|
|
9
|
+
export { LYCYieldingBank } from "../models/yieldingBank";
|
|
10
|
+
export * from "../types";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.LYCYieldingBank = exports.LYCToken = exports.buildDecreaseCarryPositionPlan = exports.buildCollectInterestPlan = exports.assertCollectInterestPlanHasPositiveRedemptions = exports.LendingPlatformClientRegistry = exports.LongYieldCarryClient = void 0;
|
|
18
|
+
var client_1 = require("./client");
|
|
19
|
+
Object.defineProperty(exports, "LongYieldCarryClient", { enumerable: true, get: function () { return client_1.LongYieldCarryClient; } });
|
|
20
|
+
__exportStar(require("./transaction"), exports);
|
|
21
|
+
var lendingPlatformClients_1 = require("./lendingPlatformClients");
|
|
22
|
+
Object.defineProperty(exports, "LendingPlatformClientRegistry", { enumerable: true, get: function () { return lendingPlatformClients_1.LendingPlatformClientRegistry; } });
|
|
23
|
+
var collectInterest_1 = require("./plans/collectInterest");
|
|
24
|
+
Object.defineProperty(exports, "assertCollectInterestPlanHasPositiveRedemptions", { enumerable: true, get: function () { return collectInterest_1.assertCollectInterestPlanHasPositiveRedemptions; } });
|
|
25
|
+
Object.defineProperty(exports, "buildCollectInterestPlan", { enumerable: true, get: function () { return collectInterest_1.buildCollectInterestPlan; } });
|
|
26
|
+
var decreaseCarryPosition_1 = require("./plans/decreaseCarryPosition");
|
|
27
|
+
Object.defineProperty(exports, "buildDecreaseCarryPositionPlan", { enumerable: true, get: function () { return decreaseCarryPosition_1.buildDecreaseCarryPositionPlan; } });
|
|
28
|
+
__exportStar(require("./types"), exports);
|
|
29
|
+
var lycToken_1 = require("../models/lycToken");
|
|
30
|
+
Object.defineProperty(exports, "LYCToken", { enumerable: true, get: function () { return lycToken_1.LYCToken; } });
|
|
31
|
+
var yieldingBank_1 = require("../models/yieldingBank");
|
|
32
|
+
Object.defineProperty(exports, "LYCYieldingBank", { enumerable: true, get: function () { return yieldingBank_1.LYCYieldingBank; } });
|
|
33
|
+
__exportStar(require("../types"), exports);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { LendingPlatform } from "common";
|
|
2
|
+
import type { KaminoClient, LendingPlatformClientBase, LendingPlatformData } from "lending-platforms";
|
|
3
|
+
import type { TokenLendingPositionData } from "../models/lycToken";
|
|
4
|
+
export interface SupportedLendingPlatformClients {
|
|
5
|
+
kamino: KaminoClient;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Central registry for protocol-specific lending clients used throughout the
|
|
9
|
+
* long-yield-carry SDK.
|
|
10
|
+
*/
|
|
11
|
+
export declare class LendingPlatformClientRegistry {
|
|
12
|
+
private readonly kaminoClient;
|
|
13
|
+
constructor(clients: SupportedLendingPlatformClients);
|
|
14
|
+
getAll(): LendingPlatformClientBase<LendingPlatformData>[];
|
|
15
|
+
getPlatformForPosition(position: TokenLendingPositionData): LendingPlatform;
|
|
16
|
+
getForPosition(position: TokenLendingPositionData): LendingPlatformClientBase<LendingPlatformData>;
|
|
17
|
+
getByPlatform(platform: LendingPlatform.Kamino): KaminoClient;
|
|
18
|
+
getByPlatform(platform: LendingPlatform): LendingPlatformClientBase<LendingPlatformData>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LendingPlatformClientRegistry = void 0;
|
|
4
|
+
const common_1 = require("common");
|
|
5
|
+
/**
|
|
6
|
+
* Central registry for protocol-specific lending clients used throughout the
|
|
7
|
+
* long-yield-carry SDK.
|
|
8
|
+
*/
|
|
9
|
+
class LendingPlatformClientRegistry {
|
|
10
|
+
constructor(clients) {
|
|
11
|
+
this.kaminoClient = clients.kamino;
|
|
12
|
+
}
|
|
13
|
+
getAll() {
|
|
14
|
+
return [this.kaminoClient];
|
|
15
|
+
}
|
|
16
|
+
getPlatformForPosition(position) {
|
|
17
|
+
return (0, common_1.lendingPlatformToEnum)(position.platform);
|
|
18
|
+
}
|
|
19
|
+
getForPosition(position) {
|
|
20
|
+
return this.getByPlatform(this.getPlatformForPosition(position));
|
|
21
|
+
}
|
|
22
|
+
getByPlatform(platform) {
|
|
23
|
+
switch (platform) {
|
|
24
|
+
case common_1.LendingPlatform.None:
|
|
25
|
+
throw new Error("Lending position does not have an active lending platform");
|
|
26
|
+
case common_1.LendingPlatform.Kamino:
|
|
27
|
+
return this.kaminoClient;
|
|
28
|
+
default:
|
|
29
|
+
throw new Error(`Unsupported lending platform client: ${platform}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.LendingPlatformClientRegistry = LendingPlatformClientRegistry;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Address, type ProgramDerivedAddressBump } from "@solana/kit";
|
|
2
|
+
/**
|
|
3
|
+
* PDA derivation for the long_yield_carry program.
|
|
4
|
+
*
|
|
5
|
+
* The program ID is injected via constructor — no global state.
|
|
6
|
+
*/
|
|
7
|
+
export declare class PdaClient {
|
|
8
|
+
private readonly programAddress;
|
|
9
|
+
constructor(programAddress: Address);
|
|
10
|
+
/**
|
|
11
|
+
* Derives the Token PDA for a given mint and ID.
|
|
12
|
+
*
|
|
13
|
+
* Seeds: ["TOKEN", mint_pubkey, id]
|
|
14
|
+
*
|
|
15
|
+
* @param mintAddress - The yToken mint address
|
|
16
|
+
* @param id - The token ID (u8)
|
|
17
|
+
* @returns Tuple of [PDA address, bump seed]
|
|
18
|
+
*/
|
|
19
|
+
deriveTokenPda(mintAddress: Address, id: number): Promise<readonly [Address, ProgramDerivedAddressBump]>;
|
|
20
|
+
/**
|
|
21
|
+
* Derives the YieldingBank PDA for a given base mint and yielding ID.
|
|
22
|
+
*
|
|
23
|
+
* Seeds: ["YIELDING_BANK", base_mint_pubkey, id_le_bytes]
|
|
24
|
+
*
|
|
25
|
+
* @param baseMint - The base mint address
|
|
26
|
+
* @param yieldingId - The yielding bank ID (u8)
|
|
27
|
+
* @returns Tuple of [PDA address, bump seed]
|
|
28
|
+
*/
|
|
29
|
+
deriveYieldingBankPda(baseMint: Address, yieldingId: number): Promise<readonly [Address, ProgramDerivedAddressBump]>;
|
|
30
|
+
deriveRedemptionEpochPda(token: Address, epochId: bigint | number): Promise<readonly [Address, ProgramDerivedAddressBump]>;
|
|
31
|
+
deriveAsyncBurnRequestPda(token: Address, epochId: bigint | number, sequence: bigint | number): Promise<readonly [Address, ProgramDerivedAddressBump]>;
|
|
32
|
+
deriveCpiPlanPda(uniqueId: Address, createdTs: bigint | number): Promise<readonly [Address, ProgramDerivedAddressBump]>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PdaClient = void 0;
|
|
4
|
+
const kit_1 = require("@solana/kit");
|
|
5
|
+
const addressEncoder = (0, kit_1.getAddressEncoder)();
|
|
6
|
+
function u64LeBytes(value) {
|
|
7
|
+
const bytes = new Uint8Array(8);
|
|
8
|
+
const view = new DataView(bytes.buffer);
|
|
9
|
+
view.setBigUint64(0, BigInt(value), true);
|
|
10
|
+
return bytes;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* PDA derivation for the long_yield_carry program.
|
|
14
|
+
*
|
|
15
|
+
* The program ID is injected via constructor — no global state.
|
|
16
|
+
*/
|
|
17
|
+
class PdaClient {
|
|
18
|
+
constructor(programAddress) {
|
|
19
|
+
this.programAddress = programAddress;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Derives the Token PDA for a given mint and ID.
|
|
23
|
+
*
|
|
24
|
+
* Seeds: ["TOKEN", mint_pubkey, id]
|
|
25
|
+
*
|
|
26
|
+
* @param mintAddress - The yToken mint address
|
|
27
|
+
* @param id - The token ID (u8)
|
|
28
|
+
* @returns Tuple of [PDA address, bump seed]
|
|
29
|
+
*/
|
|
30
|
+
async deriveTokenPda(mintAddress, id) {
|
|
31
|
+
return await (0, kit_1.getProgramDerivedAddress)({
|
|
32
|
+
programAddress: this.programAddress,
|
|
33
|
+
seeds: [Buffer.from("TOKEN"), addressEncoder.encode(mintAddress), new Uint8Array([id])],
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Derives the YieldingBank PDA for a given base mint and yielding ID.
|
|
38
|
+
*
|
|
39
|
+
* Seeds: ["YIELDING_BANK", base_mint_pubkey, id_le_bytes]
|
|
40
|
+
*
|
|
41
|
+
* @param baseMint - The base mint address
|
|
42
|
+
* @param yieldingId - The yielding bank ID (u8)
|
|
43
|
+
* @returns Tuple of [PDA address, bump seed]
|
|
44
|
+
*/
|
|
45
|
+
async deriveYieldingBankPda(baseMint, yieldingId) {
|
|
46
|
+
return await (0, kit_1.getProgramDerivedAddress)({
|
|
47
|
+
programAddress: this.programAddress,
|
|
48
|
+
seeds: [
|
|
49
|
+
Buffer.from("YIELDING_BANK"),
|
|
50
|
+
addressEncoder.encode(baseMint),
|
|
51
|
+
new Uint8Array([yieldingId]),
|
|
52
|
+
],
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
async deriveRedemptionEpochPda(token, epochId) {
|
|
56
|
+
return await (0, kit_1.getProgramDerivedAddress)({
|
|
57
|
+
programAddress: this.programAddress,
|
|
58
|
+
seeds: [Buffer.from("REDEMPTION_EPOCH"), addressEncoder.encode(token), u64LeBytes(epochId)],
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async deriveAsyncBurnRequestPda(token, epochId, sequence) {
|
|
62
|
+
return await (0, kit_1.getProgramDerivedAddress)({
|
|
63
|
+
programAddress: this.programAddress,
|
|
64
|
+
seeds: [
|
|
65
|
+
Buffer.from("ASYNC_BURN_REQUEST"),
|
|
66
|
+
addressEncoder.encode(token),
|
|
67
|
+
u64LeBytes(epochId),
|
|
68
|
+
u64LeBytes(sequence),
|
|
69
|
+
],
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
async deriveCpiPlanPda(uniqueId, createdTs) {
|
|
73
|
+
return await (0, kit_1.getProgramDerivedAddress)({
|
|
74
|
+
programAddress: this.programAddress,
|
|
75
|
+
seeds: [Buffer.from("cpi plan"), addressEncoder.encode(uniqueId), u64LeBytes(createdTs)],
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.PdaClient = PdaClient;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Address } from "@solana/kit";
|
|
2
|
+
import type { AccountClient } from "../account";
|
|
3
|
+
import type { CollectInterestPlan, CollectInterestPlanParams } from "../types";
|
|
4
|
+
/**
|
|
5
|
+
* Ensures the planner produced at least one positive redemption leg. Without this,
|
|
6
|
+
* routing would fail or build an empty CPI list even though share math passed.
|
|
7
|
+
*/
|
|
8
|
+
export declare function assertCollectInterestPlanHasPositiveRedemptions(plan: CollectInterestPlan): void;
|
|
9
|
+
/**
|
|
10
|
+
* Derive deterministic collect-interest values from fresh token and bank state.
|
|
11
|
+
* This intentionally excludes route / venue selection.
|
|
12
|
+
*
|
|
13
|
+
* @param account - Account client used to fetch fresh token and yielding-bank state.
|
|
14
|
+
* @param token - Token PDA whose carry position should collect accrued interest.
|
|
15
|
+
* @param params - Yielding bank to redeem from.
|
|
16
|
+
* @returns Deterministic collect-interest plan without swap routing attached.
|
|
17
|
+
*
|
|
18
|
+
* @throws {NoInterestToCollectError} When carry/debt math rules out collection.
|
|
19
|
+
*
|
|
20
|
+
* Before swap routing, run `assertCollectInterestPlanHasPositiveRedemptions` on the
|
|
21
|
+
* returned plan (the `getCollectInterestTx` transaction builder does this) so rounding
|
|
22
|
+
* cannot yield an empty redemption list.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildCollectInterestPlan(account: AccountClient, token: Address, params: CollectInterestPlanParams): Promise<CollectInterestPlan>;
|