@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,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.oracle = exports.OracleService = void 0;
|
|
4
|
+
const kit_1 = require("@solana/kit");
|
|
5
|
+
const common_1 = require("common");
|
|
6
|
+
const pyth_1 = require("./constants/pyth");
|
|
7
|
+
const switchboard_1 = require("./constants/switchboard");
|
|
8
|
+
const jupiter_1 = require("./feeds/jupiter");
|
|
9
|
+
const pyth_2 = require("./feeds/pyth");
|
|
10
|
+
const switchboard_2 = require("./feeds/switchboard");
|
|
11
|
+
const custom_1 = require("./feeds/custom");
|
|
12
|
+
const utils_1 = require("./utils");
|
|
13
|
+
class OracleService {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.jupiter = new jupiter_1.JupiterPrices();
|
|
16
|
+
this.pyth = new pyth_2.PythPrices();
|
|
17
|
+
this.switchboard = new switchboard_2.SwitchboardPrices();
|
|
18
|
+
this.custom = new custom_1.CustomPrices();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Register a custom oracle for a given mint.
|
|
22
|
+
* Custom-registered mints take priority over all other oracle sources.
|
|
23
|
+
*/
|
|
24
|
+
registerCustomOracle(mint, oracle) {
|
|
25
|
+
this.custom.registerCustomOracle(mint, oracle);
|
|
26
|
+
}
|
|
27
|
+
getOracleData(mint) {
|
|
28
|
+
const customOracle = this.custom.getCustomOracle(mint);
|
|
29
|
+
if (customOracle) {
|
|
30
|
+
return {
|
|
31
|
+
oracle: customOracle.oracle,
|
|
32
|
+
oracleType: customOracle.oracleType,
|
|
33
|
+
secondaryOracle: customOracle.secondaryOracle,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const symbol = common_1.mints.get(mint)?.symbol;
|
|
37
|
+
const pythSymbol = symbol ? (0, common_1.findKeyIgnoreCase)(pyth_1.PYTH_FEEDS, symbol) : undefined;
|
|
38
|
+
const switchboardSymbol = symbol
|
|
39
|
+
? (0, common_1.findKeyIgnoreCase)(switchboard_1.SWITCHBOARD_PRICE_FEED_IDS, symbol)
|
|
40
|
+
: undefined;
|
|
41
|
+
return {
|
|
42
|
+
oracle: pythSymbol
|
|
43
|
+
? pyth_1.PYTH_FEEDS[pythSymbol].account
|
|
44
|
+
: (0, kit_1.address)(switchboard_1.SWITCHBOARD_PRICE_FEED_IDS[switchboardSymbol].feedId),
|
|
45
|
+
oracleType: pythSymbol ? common_1.OracleType.Pyth : common_1.OracleType.Switchboard,
|
|
46
|
+
secondaryOracle: undefined,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
clearCache() {
|
|
50
|
+
this.jupiter.dataCache.clearAllCache();
|
|
51
|
+
this.pyth.dataCache.clearAllCache();
|
|
52
|
+
this.switchboard.dataCache.clearAllCache();
|
|
53
|
+
this.custom.dataCache.clearAllCache();
|
|
54
|
+
}
|
|
55
|
+
async fetchPrices(mints, mode, bypassCache, environment = common_1.ENVIRONMENT) {
|
|
56
|
+
if (!mints.length) {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
const rpcUrl = (0, common_1.getRpcUrl)(environment);
|
|
60
|
+
const customMints = [];
|
|
61
|
+
const pythMints = [];
|
|
62
|
+
const switchboardMints = [];
|
|
63
|
+
const jupiterMints = [];
|
|
64
|
+
for (const mint of mints) {
|
|
65
|
+
if (this.custom.hasCustomOracle(mint)) {
|
|
66
|
+
customMints.push(mint);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const symbol = common_1.mints.get(mint)?.symbol;
|
|
70
|
+
if (symbol && (0, common_1.findKeyIgnoreCase)(pyth_1.PYTH_FEEDS, symbol)) {
|
|
71
|
+
pythMints.push(mint);
|
|
72
|
+
}
|
|
73
|
+
else if (symbol && (0, common_1.findKeyIgnoreCase)(switchboard_1.SWITCHBOARD_PRICE_FEED_IDS, symbol)) {
|
|
74
|
+
switchboardMints.push(mint);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
jupiterMints.push(mint);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const [customPrices, pythPrices, switchboardPrices, jupiterPrices] = await Promise.all([
|
|
82
|
+
customMints.length ? this.custom.fetchPrices(customMints, bypassCache, { rpcUrl }) : {},
|
|
83
|
+
pythMints.length ? this.pyth.fetchPrices(pythMints, bypassCache) : {},
|
|
84
|
+
switchboardMints.length ? this.switchboard.fetchPrices(switchboardMints, bypassCache) : {},
|
|
85
|
+
jupiterMints.length ? this.jupiter.fetchPrices(jupiterMints, bypassCache) : {},
|
|
86
|
+
]);
|
|
87
|
+
const toNumber = (result) => mode === "realtime" ? result.realtimePrice : (result.emaPrice ?? result.realtimePrice);
|
|
88
|
+
const prices = {};
|
|
89
|
+
for (const mint of mints) {
|
|
90
|
+
const price = toNumber(customPrices[mint] ??
|
|
91
|
+
pythPrices[mint] ??
|
|
92
|
+
switchboardPrices[mint] ??
|
|
93
|
+
jupiterPrices[mint]);
|
|
94
|
+
const isStablecoin = common_1.mints.get(mint)?.assetType === "Stablecoin";
|
|
95
|
+
prices[mint] = isStablecoin ? Math.min(price, 1) : price;
|
|
96
|
+
}
|
|
97
|
+
return prices;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.OracleService = OracleService;
|
|
101
|
+
exports.oracle = new OracleService();
|
|
102
|
+
(0, utils_1.registerUsdStarOracle)(exports.oracle);
|
|
103
|
+
(0, utils_1.registerUsdStarJuniorOracle)(exports.oracle);
|
|
104
|
+
(0, utils_1.registerDfdvSolOracle)(exports.oracle);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { OracleService } from "../oracle";
|
|
2
|
+
import { SplStakeLstConfig } from "../feeds/splStake";
|
|
3
|
+
export declare function pythRequest(feedIds: string[]): Promise<Response>;
|
|
4
|
+
export declare function registerUsdStarOracle(oracle: OracleService): void;
|
|
5
|
+
/**
|
|
6
|
+
* Register the Perena USD*-J oracle on an OracleService instance.
|
|
7
|
+
*/
|
|
8
|
+
export declare function registerUsdStarJuniorOracle(oracle: OracleService): void;
|
|
9
|
+
/**
|
|
10
|
+
* Register an SPL-stake LST oracle (e.g. dfdvSOL) on an OracleService instance.
|
|
11
|
+
*
|
|
12
|
+
* Prices the LST as `min(stake_rate × SOL/USD, 1.1 × SOL/USD)`, matching
|
|
13
|
+
* Kamino/Scope and the on-chain `PythSplStake` oracle. The primary oracle is
|
|
14
|
+
* the Pyth SOL/USD feed; the SPL stake pool account is the secondary oracle.
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerSplStakeLstOracle(oracle: OracleService, config: SplStakeLstConfig): void;
|
|
17
|
+
/**
|
|
18
|
+
* Register the dfdvSOL oracle on an OracleService instance.
|
|
19
|
+
*/
|
|
20
|
+
export declare function registerDfdvSolOracle(oracle: OracleService): void;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pythRequest = pythRequest;
|
|
4
|
+
exports.registerUsdStarOracle = registerUsdStarOracle;
|
|
5
|
+
exports.registerUsdStarJuniorOracle = registerUsdStarJuniorOracle;
|
|
6
|
+
exports.registerSplStakeLstOracle = registerSplStakeLstOracle;
|
|
7
|
+
exports.registerDfdvSolOracle = registerDfdvSolOracle;
|
|
8
|
+
const perena_helpers_1 = require("perena-helpers");
|
|
9
|
+
const common_1 = require("common");
|
|
10
|
+
const splStake_1 = require("../feeds/splStake");
|
|
11
|
+
const pyth_1 = require("../constants/pyth");
|
|
12
|
+
const splStake_2 = require("../constants/splStake");
|
|
13
|
+
async function pythRequest(feedIds) {
|
|
14
|
+
return await (0, common_1.fetchWithRetry)(`https://hermes.pyth.network/v2/updates/price/latest?${feedIds
|
|
15
|
+
.map((x) => `ids%5B%5D=${x}`)
|
|
16
|
+
.join("&")}`);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Register the Perena USD* oracle on an OracleService instance.
|
|
20
|
+
*/
|
|
21
|
+
/** Static Perena oracle account addresses (PDAs; independent of RPC endpoint). */
|
|
22
|
+
const perenaOracleAccounts = new perena_helpers_1.PerenaClient((0, common_1.getMainnetRpcUrl)());
|
|
23
|
+
function registerUsdStarOracle(oracle) {
|
|
24
|
+
oracle.registerCustomOracle("USD*", {
|
|
25
|
+
priceFetcher: (rpcUrl) => new perena_helpers_1.PerenaClient(rpcUrl).getLatestBankMintUiPrice(),
|
|
26
|
+
oracle: (0, common_1.fromWeb3Pk)(perenaOracleAccounts.sdkClient.bank),
|
|
27
|
+
oracleType: common_1.OracleType.PerenaBank,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Register the Perena USD*-J oracle on an OracleService instance.
|
|
32
|
+
*/
|
|
33
|
+
function registerUsdStarJuniorOracle(oracle) {
|
|
34
|
+
oracle.registerCustomOracle("USD*-J", {
|
|
35
|
+
priceFetcher: (rpcUrl) => new perena_helpers_1.PerenaClient(rpcUrl).getLatestJuniorMintUiPrice(),
|
|
36
|
+
oracle: (0, common_1.fromWeb3Pk)(perenaOracleAccounts.sdkClient.tranche),
|
|
37
|
+
oracleType: common_1.OracleType.PerenaTranche,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Register an SPL-stake LST oracle (e.g. dfdvSOL) on an OracleService instance.
|
|
42
|
+
*
|
|
43
|
+
* Prices the LST as `min(stake_rate × SOL/USD, 1.1 × SOL/USD)`, matching
|
|
44
|
+
* Kamino/Scope and the on-chain `PythSplStake` oracle. The primary oracle is
|
|
45
|
+
* the Pyth SOL/USD feed; the SPL stake pool account is the secondary oracle.
|
|
46
|
+
*/
|
|
47
|
+
function registerSplStakeLstOracle(oracle, config) {
|
|
48
|
+
oracle.registerCustomOracle(config.mint, {
|
|
49
|
+
priceFetcher: (rpcUrl) => (0, splStake_1.getSplStakeLstUiPrice)(rpcUrl, config),
|
|
50
|
+
oracle: config.pythSolFeed.account,
|
|
51
|
+
oracleType: common_1.OracleType.PythSplStake,
|
|
52
|
+
secondaryOracle: config.stakePool,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Register the dfdvSOL oracle on an OracleService instance.
|
|
57
|
+
*/
|
|
58
|
+
function registerDfdvSolOracle(oracle) {
|
|
59
|
+
const dfdvSol = common_1.mints.get("dfdvSOL");
|
|
60
|
+
registerSplStakeLstOracle(oracle, {
|
|
61
|
+
mint: dfdvSol.address,
|
|
62
|
+
stakePool: splStake_2.DFDVSOL_STAKE_POOL,
|
|
63
|
+
pythSolFeed: pyth_1.PYTH_FEEDS.SOL,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./general";
|
|
@@ -0,0 +1,17 @@
|
|
|
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
|
+
__exportStar(require("./general"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Address } from "@solana/kit";
|
|
2
|
+
import type { PerenaClient } from "./client";
|
|
3
|
+
/**
|
|
4
|
+
* Derives the ATA that holds locked junior shares during unstaking, owned
|
|
5
|
+
* by the tranche state PDA.
|
|
6
|
+
*/
|
|
7
|
+
export declare function getLockedJuniorSharesAta(perenaClient: PerenaClient): Promise<Address>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLockedJuniorSharesAta = getLockedJuniorSharesAta;
|
|
4
|
+
const common_1 = require("common");
|
|
5
|
+
/**
|
|
6
|
+
* Derives the ATA that holds locked junior shares during unstaking, owned
|
|
7
|
+
* by the tranche state PDA.
|
|
8
|
+
*/
|
|
9
|
+
async function getLockedJuniorSharesAta(perenaClient) {
|
|
10
|
+
const trancheOwner = (0, common_1.fromWeb3Pk)(perenaClient.sdkClient.bankineco.tranchePDA(perenaClient.sdkClient.bank));
|
|
11
|
+
return (0, common_1.getAtaAddress)(perenaClient.juniorMint, trancheOwner, common_1.mints.get("USD*").tokenProgram);
|
|
12
|
+
}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
import { BN } from "@anchor-lang/core";
|
|
2
|
+
import type { Address } from "@solana/kit";
|
|
3
|
+
import { UsdStarClient, type YieldingToBankMintQuoteRes, type BankMintToYieldingQuoteRes, type FetchUnstakeFeeRes } from "@perena/bankineco-sdk";
|
|
4
|
+
import { RoutableSwapClient, SwapQuoteParams, SwapQuote, SwapQuoteCoveringMinOutputParams, SwapInstructionOptions, type TransactionCacheInvalidation, type TokenProtocolClient, type TokenProtocolInfo, CpiData } from "common";
|
|
5
|
+
/**
|
|
6
|
+
* Raw quote data from Perena SDK.
|
|
7
|
+
*
|
|
8
|
+
* Discriminated by `operation`:
|
|
9
|
+
* - `mint`: yielding → USD* (e.g. USDC → USD*)
|
|
10
|
+
* - `burn`: USD* → yielding (e.g. USD* → USDC)
|
|
11
|
+
* - `stake`: USD* → USD*-J
|
|
12
|
+
* - `unstake`: USD*-J → USD* or yielding (instant, single-tx)
|
|
13
|
+
* - `request_unstake`: USD*-J → withdrawal queue (lockup period)
|
|
14
|
+
* - `fulfill_unstake`: withdrawal queue → USD* or yielding (after lockup)
|
|
15
|
+
*/
|
|
16
|
+
export type PerenaRawQuote = {
|
|
17
|
+
operation: "mint";
|
|
18
|
+
yieldingMint: Address;
|
|
19
|
+
sdkQuote: YieldingToBankMintQuoteRes;
|
|
20
|
+
} | {
|
|
21
|
+
operation: "burn";
|
|
22
|
+
yieldingMint: Address;
|
|
23
|
+
sdkQuote: BankMintToYieldingQuoteRes;
|
|
24
|
+
} | {
|
|
25
|
+
operation: "stake";
|
|
26
|
+
} | {
|
|
27
|
+
operation: "unstake";
|
|
28
|
+
targetMint?: Address;
|
|
29
|
+
unstakeFee: FetchUnstakeFeeRes;
|
|
30
|
+
} | {
|
|
31
|
+
operation: "request_unstake";
|
|
32
|
+
targetMint?: Address;
|
|
33
|
+
unstakeFee: FetchUnstakeFeeRes;
|
|
34
|
+
queueId: number;
|
|
35
|
+
payer: Address;
|
|
36
|
+
} | {
|
|
37
|
+
operation: "fulfill_unstake";
|
|
38
|
+
withdrawalQueue: Address;
|
|
39
|
+
queuePayer: Address;
|
|
40
|
+
owner: Address;
|
|
41
|
+
targetMint?: Address;
|
|
42
|
+
};
|
|
43
|
+
/** Perena-specific swap quote with typed rawQuote */
|
|
44
|
+
export type PerenaSwapQuote = SwapQuote<PerenaRawQuote>;
|
|
45
|
+
/** Parameters for building a request_unstake_junior CPI. */
|
|
46
|
+
export interface RequestUnstakeParams {
|
|
47
|
+
/** Number of junior shares to lock */
|
|
48
|
+
shares: BN | number;
|
|
49
|
+
/** Queue slot id (0–255), unique per user per bank */
|
|
50
|
+
queueId: number;
|
|
51
|
+
/** Address that acts as the user/signer for the unstake */
|
|
52
|
+
userPublicKey: Address;
|
|
53
|
+
/** Address that pays rent for the withdrawal queue PDA (often same as user) */
|
|
54
|
+
payer: Address;
|
|
55
|
+
/** Optional yielding mint to receive upon fulfillment. Defaults to USD*. */
|
|
56
|
+
targetMint?: Address;
|
|
57
|
+
}
|
|
58
|
+
/** Parameters for building a fulfill_unstake_junior CPI. */
|
|
59
|
+
export interface FulfillUnstakeParams {
|
|
60
|
+
/** Address of the withdrawal queue PDA */
|
|
61
|
+
withdrawalQueue: Address;
|
|
62
|
+
/** The signer executing the fulfillment (queue owner or fulfiller) */
|
|
63
|
+
signer: Address;
|
|
64
|
+
/** The original payer who funded the queue rent (receives refund) */
|
|
65
|
+
queuePayer: Address;
|
|
66
|
+
/** The queue owner (needed to derive owner_bank_mint_ata) */
|
|
67
|
+
owner: Address;
|
|
68
|
+
/** Optional yielding mint — if the queue's target_mint is a yielding mint */
|
|
69
|
+
targetMint?: Address;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Perena USD* client implementing RoutableSwapClient and TokenProtocolClient.
|
|
73
|
+
*
|
|
74
|
+
* Provides a unified API for:
|
|
75
|
+
* - Minting and burning USD*
|
|
76
|
+
* - Querying protocol capabilities and info (YieldProtocolClient interface)
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* import { PerenaClient } from "perena-helpers";
|
|
81
|
+
* import { defaultMints } from "common/services/mints";
|
|
82
|
+
*
|
|
83
|
+
* const client = new PerenaClient(rpcUrl);
|
|
84
|
+
* const usdc = defaultMints.get("USDC")!;
|
|
85
|
+
* const usdStar = defaultMints.get("USD*")!;
|
|
86
|
+
*
|
|
87
|
+
* // Mint: USDC → USD*
|
|
88
|
+
* const mintQuote = await client.getQuote({
|
|
89
|
+
* inputMint: usdc.address,
|
|
90
|
+
* outputMint: usdStar.address,
|
|
91
|
+
* amount: 10_000_000, // 10 USDC
|
|
92
|
+
* slippageBps: 100,
|
|
93
|
+
* });
|
|
94
|
+
*
|
|
95
|
+
* // Burn: USD* → USDC
|
|
96
|
+
* const burnQuote = await client.getQuote({
|
|
97
|
+
* inputMint: usdStar.address,
|
|
98
|
+
* outputMint: usdc.address,
|
|
99
|
+
* amount: 10_000_000, // 10 USD*
|
|
100
|
+
* slippageBps: 100,
|
|
101
|
+
* });
|
|
102
|
+
*
|
|
103
|
+
* // Get CPI accounts for instruction
|
|
104
|
+
* const { accounts, programId } = await client.getSwapCpiData(
|
|
105
|
+
* mintQuote,
|
|
106
|
+
* userPda
|
|
107
|
+
* );
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare class PerenaClient implements RoutableSwapClient<PerenaRawQuote>, TokenProtocolClient {
|
|
111
|
+
readonly sdkClient: UsdStarClient;
|
|
112
|
+
private readonly cache;
|
|
113
|
+
/**
|
|
114
|
+
* The bank mint (USD*).
|
|
115
|
+
*/
|
|
116
|
+
readonly bankMint: Address;
|
|
117
|
+
/**
|
|
118
|
+
* The junior tranche token (USD*-J).
|
|
119
|
+
*/
|
|
120
|
+
readonly juniorMint: Address;
|
|
121
|
+
/**
|
|
122
|
+
* Mints that can appear on either side of a Perena-routed swap (USD*, USD*-J,
|
|
123
|
+
* and idle vault yielding mints). Same reference as {@link outputMints}.
|
|
124
|
+
*/
|
|
125
|
+
readonly inputMints: readonly Address[];
|
|
126
|
+
/**
|
|
127
|
+
* Same as {@link inputMints} — Perena routes are symmetric in terms of
|
|
128
|
+
* allowed mints; {@link routeAnchorMints} encodes the “must touch USD* or USD*-J” rule.
|
|
129
|
+
*/
|
|
130
|
+
readonly outputMints: readonly Address[];
|
|
131
|
+
/**
|
|
132
|
+
* A valid route must involve at least one of USD* or USD*-J (prevents e.g. USDC↔USDT).
|
|
133
|
+
*/
|
|
134
|
+
readonly routeAnchorMints: readonly Address[];
|
|
135
|
+
/**
|
|
136
|
+
* Creates a new Perena client.
|
|
137
|
+
*
|
|
138
|
+
* @param rpcUrl - Solana RPC URL
|
|
139
|
+
*/
|
|
140
|
+
constructor(rpcUrl: string);
|
|
141
|
+
/**
|
|
142
|
+
* Get mints that can directly mint USD*.
|
|
143
|
+
*/
|
|
144
|
+
getSupportedSourceMints(): Promise<Address[]>;
|
|
145
|
+
/**
|
|
146
|
+
* Get current protocol info for a source mint.
|
|
147
|
+
* @param sourceMint - The source mint to get info for (i.e. USDC, USDT, etc.)
|
|
148
|
+
* @returns Protocol info including fees and limits
|
|
149
|
+
* @throws Error if sourceMint is not supported by Perena
|
|
150
|
+
*/
|
|
151
|
+
getProtocolInfo(sourceMint: Address): Promise<TokenProtocolInfo>;
|
|
152
|
+
/**
|
|
153
|
+
* Get the latest USD* price in UI units (e.g. dollars).
|
|
154
|
+
*
|
|
155
|
+
* @returns The current bank mint price as a number
|
|
156
|
+
*/
|
|
157
|
+
getLatestBankMintUiPrice(): Promise<number>;
|
|
158
|
+
/**
|
|
159
|
+
* Get the latest USD*-J price in UI units (e.g. dollars).
|
|
160
|
+
*
|
|
161
|
+
* @returns The current junior mint price as a number
|
|
162
|
+
*/
|
|
163
|
+
getLatestJuniorMintUiPrice(): Promise<number>;
|
|
164
|
+
/**
|
|
165
|
+
* Size a USD* burn so the routed yielding output (e.g. USDC) is at least
|
|
166
|
+
* `minYieldingOut` base units, without scanning inputs.
|
|
167
|
+
*
|
|
168
|
+
* Perena's `bankMintToYieldingQuote` is linear in the burn amount for fixed
|
|
169
|
+
* oracles: bank-mint price, yielding price, burn fee bps, and decimal
|
|
170
|
+
* rescales are all proportional in `amountToBurn`. We take **one** reference
|
|
171
|
+
* quote at exactly 1.0 bank-mint token (10^decimals base units) to read the
|
|
172
|
+
* effective `yieldingOut / bankMintIn` rate implied by the current prices,
|
|
173
|
+
* then `ceil(need * refIn / refOut)` and re-quote once at that input so the
|
|
174
|
+
* returned {@link PerenaSwapQuote} matches the CPI.
|
|
175
|
+
*/
|
|
176
|
+
/**
|
|
177
|
+
* @deprecated Prefer {@link getQuoteCoveringMinOutput} — same behavior with generic param names.
|
|
178
|
+
*/
|
|
179
|
+
getQuoteCoveringYieldingOut(params: {
|
|
180
|
+
inputMint: Address;
|
|
181
|
+
outputMint: Address;
|
|
182
|
+
minYieldingOut: bigint;
|
|
183
|
+
maxBankMintIn: bigint;
|
|
184
|
+
slippageBps?: number;
|
|
185
|
+
}): Promise<PerenaSwapQuote>;
|
|
186
|
+
getQuoteCoveringMinOutput(params: SwapQuoteCoveringMinOutputParams): Promise<PerenaSwapQuote>;
|
|
187
|
+
/**
|
|
188
|
+
* Get a quote for minting/burning USD* or staking/unstaking USD*-J.
|
|
189
|
+
*
|
|
190
|
+
* The operation is determined by the mints:
|
|
191
|
+
* - outputMint is USD*: mint (yielding → USD*)
|
|
192
|
+
* - inputMint is USD*: burn (USD* → yielding)
|
|
193
|
+
* - outputMint is USD*-J: stake (USD* → USD*-J)
|
|
194
|
+
* - inputMint is USD*-J: unstake (USD*-J → USD* or yielding)
|
|
195
|
+
*
|
|
196
|
+
* @param params - Quote parameters
|
|
197
|
+
* @returns Normalized swap quote
|
|
198
|
+
* @throws Error if the mint pair is not supported
|
|
199
|
+
*/
|
|
200
|
+
getQuote(params: SwapQuoteParams): Promise<PerenaSwapQuote>;
|
|
201
|
+
/**
|
|
202
|
+
* Quote for staking USD* → USD*-J.
|
|
203
|
+
*
|
|
204
|
+
* Shares minted = amount × bankMintPrice / sharePrice.
|
|
205
|
+
* Staking has no fee; the on-chain conversion is deterministic.
|
|
206
|
+
*/
|
|
207
|
+
private getStakeQuote;
|
|
208
|
+
/**
|
|
209
|
+
* Quote for unstaking USD*-J → USD* or yielding mint.
|
|
210
|
+
*
|
|
211
|
+
* Uses `fetchUnstakeFee` with `early: true` because instant unstake
|
|
212
|
+
* always applies the early fee.
|
|
213
|
+
*/
|
|
214
|
+
private getUnstakeQuote;
|
|
215
|
+
/**
|
|
216
|
+
* Get CPI accounts for a Perena instruction.
|
|
217
|
+
*
|
|
218
|
+
* Account order matches the IDL for the respective instruction.
|
|
219
|
+
*
|
|
220
|
+
* @param quote - Quote from getQuote()
|
|
221
|
+
* @param userPublicKey - Address that will execute the swap (can be a PDA)
|
|
222
|
+
* @param options - Options on building the CPI
|
|
223
|
+
* @returns CPI accounts, program ID, and serialized instruction data
|
|
224
|
+
*/
|
|
225
|
+
getSwapCpiData(quote: PerenaSwapQuote, userPublicKey: Address, _options?: SwapInstructionOptions): Promise<CpiData>;
|
|
226
|
+
/**
|
|
227
|
+
* Derive the withdrawal queue PDA for a given user and queue slot.
|
|
228
|
+
*/
|
|
229
|
+
deriveWithdrawalQueue(user: Address, queueId: number): Address;
|
|
230
|
+
/**
|
|
231
|
+
* Fetch all active withdrawal queue PDAs owned by `user`.
|
|
232
|
+
*
|
|
233
|
+
* "Active" means the queue account exists, is owned by Perena, and currently
|
|
234
|
+
* holds a non-zero locked amount.
|
|
235
|
+
*/
|
|
236
|
+
getActiveWithdrawalQueues(user: Address): Promise<Address[]>;
|
|
237
|
+
/**
|
|
238
|
+
* Cache invalidation descriptor for the active-withdrawal-queues snapshot of
|
|
239
|
+
* one owner. Use this when a transaction may create, consume, or otherwise
|
|
240
|
+
* mutate Perena withdrawal queues outside this exact client instance.
|
|
241
|
+
*/
|
|
242
|
+
getActiveWithdrawalQueuesCacheInvalidation(owner: Address): TransactionCacheInvalidation;
|
|
243
|
+
private getActiveWithdrawalQueuesInvalidation;
|
|
244
|
+
/**
|
|
245
|
+
* Build CPI data for mint_w_yielding_gen or burn_for_yielding_gen.
|
|
246
|
+
*/
|
|
247
|
+
private getMintBurnCpiData;
|
|
248
|
+
/**
|
|
249
|
+
* Build CPI data for stake_junior.
|
|
250
|
+
*
|
|
251
|
+
* Account order matches the IDL:
|
|
252
|
+
* user, tranche_state, bank_state, bank_mint, junior_mint,
|
|
253
|
+
* user_bank_mint_ata, user_junior_mint_ata, junior_escrow_ata,
|
|
254
|
+
* system_program, token_program, associated_token_program
|
|
255
|
+
*/
|
|
256
|
+
private getStakeCpiData;
|
|
257
|
+
/**
|
|
258
|
+
* Build CPI data for instant_unstake_junior.
|
|
259
|
+
*
|
|
260
|
+
* Account order matches the IDL:
|
|
261
|
+
* user, tranche_state, bank_state, bank_mint, target_mint, junior_mint,
|
|
262
|
+
* user_junior_mint_ata, owner_bank_mint_ata, junior_escrow_ata,
|
|
263
|
+
* locked_junior_shares_ata, token_program,
|
|
264
|
+
* [vault_state, vault_oracle_state, vault_team_state, yielding_mint,
|
|
265
|
+
* yielding_vault_ata, owner_yielding_ta, vault_fee_team_ata,
|
|
266
|
+
* yielding_mint_program] (optional, when unstaking to a yielding mint)
|
|
267
|
+
*/
|
|
268
|
+
private getInstantUnstakeCpiData;
|
|
269
|
+
/**
|
|
270
|
+
* Build CPI data for request_unstake_junior.
|
|
271
|
+
*
|
|
272
|
+
* Account order matches the IDL:
|
|
273
|
+
* user, payer, withdrawal_queue, tranche_state, bank_state, bank_mint,
|
|
274
|
+
* target_mint, junior_mint, user_junior_mint_ata, locked_junior_shares_ata,
|
|
275
|
+
* system_program, token_program
|
|
276
|
+
*/
|
|
277
|
+
getRequestUnstakeCpiData(params: RequestUnstakeParams): Promise<CpiData>;
|
|
278
|
+
/**
|
|
279
|
+
* Build CPI data for fulfill_unstake_junior.
|
|
280
|
+
*
|
|
281
|
+
* Account order matches the IDL:
|
|
282
|
+
* signer, queue_payer, withdrawal_queue, tranche_state, bank_state,
|
|
283
|
+
* bank_mint, junior_mint, owner_bank_mint_ata, junior_escrow_ata,
|
|
284
|
+
* locked_junior_shares_ata, token_program,
|
|
285
|
+
* [vault_state, vault_oracle_state, vault_team_state, yielding_mint,
|
|
286
|
+
* yielding_vault_ata, owner_yielding_ta, vault_fee_team_ata,
|
|
287
|
+
* yielding_mint_program] (optional, when fulfilling to a yielding mint)
|
|
288
|
+
*/
|
|
289
|
+
getFulfillUnstakeCpiData(params: FulfillUnstakeParams): Promise<CpiData>;
|
|
290
|
+
/**
|
|
291
|
+
* Appends the 8 yielding-redemption account slots that `instant_unstake_junior`
|
|
292
|
+
* and `fulfill_unstake_junior` expect after `token_program`.
|
|
293
|
+
*
|
|
294
|
+
* When a yielding mint is involved, real accounts are pushed. Otherwise Anchor
|
|
295
|
+
* still requires all 8 slots to be present — each set to the program ID as the
|
|
296
|
+
* `Option<Account>` sentinel for `None`.
|
|
297
|
+
*/
|
|
298
|
+
private pushYieldingRedemptionAccounts;
|
|
299
|
+
}
|