@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
package/.env.example
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Copy to .env and fill in real values.
|
|
2
|
+
# Loaded by SDK scripts (create-token, mint-token, etc.) via localUtils.ts.
|
|
3
|
+
|
|
4
|
+
# =============================================================================
|
|
5
|
+
# RPC (at least one required for test/prod environments)
|
|
6
|
+
# =============================================================================
|
|
7
|
+
# Resolution order: IRONFORGE_API_KEY > RPC_URL > HELIUS_API_KEY.
|
|
8
|
+
|
|
9
|
+
# RPC_URL=https://your-rpc-endpoint.com
|
|
10
|
+
IRONFORGE_API_KEY=your_ironforge_api_key
|
|
11
|
+
HELIUS_API_KEY=your_helius_api_key
|
package/README.md
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# Long Yield Carry TypeScript SDK
|
|
2
|
+
|
|
3
|
+
Client for the **long_yield_carry** Anchor program: PDA derivation, account decoding, instruction builders, and high-level transaction plans. The main entry point is **`LongYieldCarryClient`** (the “LYC client”).
|
|
4
|
+
|
|
5
|
+
## Installation and import
|
|
6
|
+
|
|
7
|
+
In this monorepo, depend on the workspace package and use the `long-yield-carry` path alias (see root `tsconfig.json`):
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
import { LongYieldCarryClient } from "@kestrelfi/lyc-sdk";
|
|
11
|
+
import { BN } from "@anchor-lang/core";
|
|
12
|
+
import { address, type Address } from "@solana/kit";
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Constructing the client
|
|
16
|
+
|
|
17
|
+
You need an Anchor `AnchorProvider` (connection + wallet). The second argument selects the deployment environment and thus the program ID and RPC URL used by the SDK:
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import { AnchorProvider } from "@anchor-lang/core";
|
|
21
|
+
import { LongYieldCarryClient } from "@kestrelfi/lyc-sdk";
|
|
22
|
+
|
|
23
|
+
const client = new LongYieldCarryClient(provider, "local");
|
|
24
|
+
// or "test" | "prod"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Optional third argument: `LongYieldCarryClientOptions` — e.g. `swapClient` or a `lendingPlatformClients` override for tests or custom routing.
|
|
28
|
+
|
|
29
|
+
### What hangs off the client
|
|
30
|
+
|
|
31
|
+
| Property | Role |
|
|
32
|
+
| ------------------------------------------------ | -------------------------------------------------------------------- |
|
|
33
|
+
| `client.pda` | Derive Token and YieldingBank PDAs |
|
|
34
|
+
| `client.account` | Fetch and cache on-chain accounts (`LYCToken`, `LYCYieldingBank`) |
|
|
35
|
+
| `client.ix` | Build single Kit `Instruction`s |
|
|
36
|
+
| `client.tx` | Build composed transaction plans (ATAs, wraps, refreshes, CPI pools) |
|
|
37
|
+
| `client.rpc` | Shared RPC used by send helpers |
|
|
38
|
+
| `client.swap` | Aggregate swap client (used by manager flows and some planners) |
|
|
39
|
+
| `client.getLendingPlatformClient(...)` | Resolve the lending client for an on-chain lending position |
|
|
40
|
+
| `client.getLendingPlatformClientByPlatform(...)` | Resolve a lending client when only the platform enum is known |
|
|
41
|
+
| `client.sendTransaction(...)` | Sign, send, confirm, and apply plan cache invalidations |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Minting yTokens (`mint_token`)
|
|
46
|
+
|
|
47
|
+
### Recommended: `client.tx.mintToken.getTx(...)`
|
|
48
|
+
|
|
49
|
+
Use this for end-user flows. It prepends, when needed:
|
|
50
|
+
|
|
51
|
+
- **SOL collateral:** create the user’s wSOL ATA (if missing), transfer lamports from the signer, `sync_native`.
|
|
52
|
+
- **yToken:** idempotent ATA creation for the user’s receipt account.
|
|
53
|
+
|
|
54
|
+
Then it appends `mint_token`. The signer must be the wallet that owns the collateral and will receive minted yTokens.
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
import { BN } from "@anchor-lang/core";
|
|
58
|
+
import { address } from "@solana/kit";
|
|
59
|
+
|
|
60
|
+
const signer = address(walletAddress);
|
|
61
|
+
const tokenPda = address("…"); // Token PDA
|
|
62
|
+
|
|
63
|
+
const mintPlan = await client.tx.mintToken.getTx({
|
|
64
|
+
signer,
|
|
65
|
+
token: tokenPda,
|
|
66
|
+
params: {
|
|
67
|
+
depositAmount: new BN(1_000_000_000), // base units, e.g. lamports
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
await client.sendTransaction(walletSigner, mintPlan);
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Burning yTokens (`burn_token`)
|
|
74
|
+
|
|
75
|
+
### Recommended: `client.tx.burnToken.getTx(...)`
|
|
76
|
+
|
|
77
|
+
`burn_token` redeems from unlent collateral when balances suffice at execution time.
|
|
78
|
+
Without `asyncFallback`, the SDK sends `BurnTokenParams.sync`; insufficient unlent
|
|
79
|
+
balance surfaces as `InsufficientUnlentCollateral`. Pass `asyncFallback` (epoch/request
|
|
80
|
+
PDAs + `BurnTokenParams.async`) when the same transaction should create or extend an
|
|
81
|
+
async redemption queue instead.
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
const burnPlan = await client.tx.burnToken.getTx({
|
|
85
|
+
signer,
|
|
86
|
+
token: tokenPda,
|
|
87
|
+
params: {
|
|
88
|
+
burnAmount: new BN(500_000_000),
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
await client.sendTransaction(walletSigner, burnPlan);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
When collateral is native SOL (WSOL), the plan appends a close-account after
|
|
95
|
+
`burn_token` so proceeds settle as SOL.
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
const plainBurn = await client.tx.burnToken.getTx({
|
|
99
|
+
signer,
|
|
100
|
+
token: tokenPda,
|
|
101
|
+
params: {
|
|
102
|
+
burnAmount: new BN(500_000_000),
|
|
103
|
+
// Optional: include a fallback so the same burn_token instruction creates
|
|
104
|
+
// an async request if reserves are short by the time the tx lands.
|
|
105
|
+
asyncFallback: {
|
|
106
|
+
epochId: new BN(7),
|
|
107
|
+
// Omit requestSequence to let the builder read the next epoch sequence.
|
|
108
|
+
requestSequence: new BN(0),
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Async Burns
|
|
115
|
+
|
|
116
|
+
Async burns group one or more FIFO requests into a redemption epoch. Users still call `burnToken`; there is no separate user-facing create/request instruction:
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
await client.tx.burnToken.getTx({
|
|
120
|
+
signer,
|
|
121
|
+
token: tokenPda,
|
|
122
|
+
params: {
|
|
123
|
+
burnAmount: new BN(500_000_000),
|
|
124
|
+
asyncFallback: {
|
|
125
|
+
epochId: new BN(7),
|
|
126
|
+
requestSequence: new BN(0),
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Managers fund closed epochs by running `decreaseCarryPosition` with
|
|
133
|
+
`redemptionEpoch` when DCP loss should be charged to that epoch, then
|
|
134
|
+
`topUpUnlentReserves` to withdraw freed collateral. `processAsyncBurn` processes
|
|
135
|
+
requests in exact sequence order and rejects out-of-order requests.
|
|
136
|
+
|
|
137
|
+
## Reading on-chain state
|
|
138
|
+
|
|
139
|
+
### Token accounts → `LYCToken`
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
const token = await client.account.fetchToken(tokenPda);
|
|
143
|
+
// token.address — Token PDA
|
|
144
|
+
// token.data — raw IDL shape
|
|
145
|
+
// token.mint, token.collateralMint, token.decimals
|
|
146
|
+
// token.price, token.totalSupply, token.tvlUsd — UI helpers
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Batch and discovery:
|
|
150
|
+
|
|
151
|
+
- `client.account.fetchTokens([pda1, pda2])` — multiple PDAs.
|
|
152
|
+
- `client.account.fetchAllTokens()` — all Token accounts owned by the program.
|
|
153
|
+
|
|
154
|
+
Use `{ fresh: true }` to bypass the short-lived in-memory cache when you must see writes immediately:
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
await client.account.fetchToken(tokenPda, { fresh: true });
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Yielding bank accounts → `LYCYieldingBank`
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
const bank = await client.account.fetchYieldingBank(yieldingBankPda);
|
|
164
|
+
// bank.address, bank.data
|
|
165
|
+
// bank.baseMint, bank.defaultRedemptionMint, bank.id, bank.decimals // share decimals, canonical 8
|
|
166
|
+
// bank.sharePrice, bank.minSharePrice, bank.totalShares — UI helpers
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Also: `fetchYieldingBanks([...])`, `fetchAllYieldingBanks()`.
|
|
170
|
+
|
|
171
|
+
### User holdings → `UserHolding[]`
|
|
172
|
+
|
|
173
|
+
Fetch every LYC yToken a wallet holds, with balances and optional USD notionals when you pass a collateral USD `priceMap`.
|
|
174
|
+
|
|
175
|
+
```ts
|
|
176
|
+
const holdings = await client.account.fetchUserHoldings(walletAddress, {
|
|
177
|
+
priceMap: { [collateralMint]: usdPrice },
|
|
178
|
+
});
|
|
179
|
+
// holdings[i].token — LYCToken model (price, label, decimals, …)
|
|
180
|
+
// holdings[i].balance — bigint, base units of the yToken
|
|
181
|
+
// holdings[i].uiBalance — decimal-adjusted number
|
|
182
|
+
// holdings[i].valueUsd — uiBalance × token.price × priceMap[collateralMint], if priced
|
|
183
|
+
// holdings[i].tokenAccount — user ATA for the yToken mint
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Without a usable entry in `priceMap` for the collateral mint, `valueUsd` is omitted (no inference from stale on-chain TVL). Zero-balance holdings are filtered out by default; pass `{ includeEmpty: true }` to include them.
|
|
187
|
+
|
|
188
|
+
### PDAs (when you know mint + id)
|
|
189
|
+
|
|
190
|
+
```ts
|
|
191
|
+
const [tokenPda] = await client.pda.deriveTokenPda(yTokenMint, tokenId);
|
|
192
|
+
const [bankPda] = await client.pda.deriveYieldingBankPda(baseMint, yieldingBankId);
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Seeds match the program: `TOKEN` + mint + `id`; `YIELDING_BANK` + base mint + `id`.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Sending transactions
|
|
200
|
+
|
|
201
|
+
`client.sendTransaction(payer, planOrInstructions, options?)` accepts either a `LongYieldCarryTransactionPlan` (`instructions`, `lookupTables`, optional `postSuccessCacheInvalidations`) or a bare `Instruction[]`. When you pass a plan, post-success hooks clear SDK caches for affected Tokens / YieldingBanks plus any Kamino-related invalidations. Use the payer’s **Kit** `TransactionSigner` expected by `common`’s `signSendAndConfirmTransaction`.
|
|
202
|
+
|
|
203
|
+
## Anchor error codes
|
|
204
|
+
|
|
205
|
+
The bundled IDL still lists `InvalidTvlBiasBps`: TVL bias configuration was removed on-chain, but the Anchor error variant is retained so numeric error discriminants do not shift versus older program builds. Match errors using IDL-derived names and regenerate TypeScript bindings when you upgrade the deployed program — do not rely on hard-coded Anchor error integers.
|
|
206
|
+
|
|
207
|
+
---
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./env";
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("./env");
|
|
4
|
+
const core_1 = require("@anchor-lang/core");
|
|
5
|
+
const common_1 = require("common");
|
|
6
|
+
const client_1 = require("../src/client/client");
|
|
7
|
+
const general_1 = require("../src/constants/general");
|
|
8
|
+
const redemption_1 = require("../src/services/redemption");
|
|
9
|
+
const utils_1 = require("../src/utils");
|
|
10
|
+
const localUtils_1 = require("./localUtils");
|
|
11
|
+
/**
|
|
12
|
+
* Burns yTokens and, if the burn is redirected to the async path, processes the
|
|
13
|
+
* full async epoch lifecycle: wait → close → fund → process.
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* pnpm run async-burn -- test|prod <TOKEN_PDA|COLLATERAL_SYMBOL> [AMOUNT] [--keypair KEYPAIR_JSON]
|
|
17
|
+
*
|
|
18
|
+
* AMOUNT: integer string = yToken base units; decimal string = yToken units (e.g. 0.25).
|
|
19
|
+
* Omit to burn the entire yToken ATA balance ("all").
|
|
20
|
+
*
|
|
21
|
+
* --keypair: User keypair that holds yTokens and signs the initial burn.
|
|
22
|
+
* Defaults to ~/.config/solana/tp-id.json.
|
|
23
|
+
* The manager keypair (tp-lyc-manager-{env}.json) is loaded separately and used
|
|
24
|
+
* for the subsequent funding and processing steps.
|
|
25
|
+
*/
|
|
26
|
+
async function main() {
|
|
27
|
+
const { env, rest } = (0, localUtils_1.parseCliEnvironmentAndRest)("async-burn");
|
|
28
|
+
const { rest: args, keypairPath: keypairFlagPath } = (0, localUtils_1.extractKeypairFlag)(rest);
|
|
29
|
+
const positional = args.filter((arg) => !arg.startsWith("--"));
|
|
30
|
+
const tokenArg = positional[0];
|
|
31
|
+
const burnRawStr = positional[1];
|
|
32
|
+
if (tokenArg === undefined) {
|
|
33
|
+
console.error("Usage: pnpm run async-burn -- [test|prod] <TOKEN_PDA|COLLATERAL_SYMBOL> [AMOUNT] [--keypair KEYPAIR_JSON]");
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
const userKeypairPath = keypairFlagPath ?? common_1.TP_ID_KEYPAIR_FP;
|
|
37
|
+
const { signer: userSigner } = await (0, common_1.loadLocalKeypairWithWeb3)(userKeypairPath);
|
|
38
|
+
const managerKeypairPath = general_1.LYC_MANAGER_KEYPAIR_FP[env];
|
|
39
|
+
const { signer: managerSigner, web3Keypair } = await (0, common_1.loadLocalKeypairWithWeb3)(managerKeypairPath);
|
|
40
|
+
const provider = (0, common_1.createDefaultAnchorProvider)(env, web3Keypair);
|
|
41
|
+
const client = new client_1.LongYieldCarryClient(provider, env);
|
|
42
|
+
const redemption = new redemption_1.RedemptionService(client);
|
|
43
|
+
const { tokenPda, collateralSymbol, collateralDecimals } = await (0, localUtils_1.resolveTokenPda)(client, tokenArg);
|
|
44
|
+
const burnAmount = parseBurnAmount(burnRawStr, collateralDecimals);
|
|
45
|
+
console.log("=== Async Burn ===");
|
|
46
|
+
console.log(" environment:", env);
|
|
47
|
+
console.log(" user:", userSigner.address);
|
|
48
|
+
console.log(" manager:", managerSigner.address);
|
|
49
|
+
console.log(" token PDA:", tokenPda);
|
|
50
|
+
console.log(" collateral:", collateralSymbol ?? "unknown");
|
|
51
|
+
console.log(" burn amount:", burnAmount === "all" ? "all" : burnAmount.toString());
|
|
52
|
+
console.log();
|
|
53
|
+
// ── Step 1: Execute burn (signed by the user who holds yTokens) ──
|
|
54
|
+
const epochId = (0, utils_1.currentEpochId)();
|
|
55
|
+
console.log("[1/4] Submitting burn_token...");
|
|
56
|
+
const burnPlan = await client.tx.burnToken.getTx({
|
|
57
|
+
signer: userSigner.address,
|
|
58
|
+
token: tokenPda,
|
|
59
|
+
params: { burnAmount, epochId },
|
|
60
|
+
});
|
|
61
|
+
const burnSig = await client.sendTransaction(userSigner, burnPlan);
|
|
62
|
+
console.log(" burn_token signature:", burnSig);
|
|
63
|
+
client.clearAllCache();
|
|
64
|
+
// ── Step 2: Check if an async epoch was created ──
|
|
65
|
+
const [epochPda] = await client.pda.deriveRedemptionEpochPda(tokenPda, BigInt(epochId.toString()));
|
|
66
|
+
let epoch;
|
|
67
|
+
try {
|
|
68
|
+
epoch = await redemption.getEpoch(epochPda);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
console.log("\nBurn settled synchronously — no async epoch created.");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
console.log(`\n Async epoch detected: ${epochPda}`);
|
|
75
|
+
console.log(` Requests: ${epoch.requestCount}`);
|
|
76
|
+
console.log(` Gross collateral claim: ${(0, common_1.toUiAmount)(epoch.grossCollateralClaim, collateralDecimals)} (${epoch.grossCollateralClaim} base)`);
|
|
77
|
+
console.log();
|
|
78
|
+
const log = (msg) => console.log(` ${msg}`);
|
|
79
|
+
// ── Step 3: Wait for window + close + fund ──
|
|
80
|
+
console.log("[2/4] Waiting for epoch window...");
|
|
81
|
+
await redemption.waitForEpochWindow(epoch, log);
|
|
82
|
+
console.log("[3/4] Closing, funding, and transitioning epoch...");
|
|
83
|
+
const success = await redemption.processEpoch(managerSigner, epoch, log);
|
|
84
|
+
if (!success) {
|
|
85
|
+
console.error(" ERROR: Epoch could not be fully funded.");
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
console.log("\n[4/4] All async burn requests processed. Epoch closed.");
|
|
89
|
+
}
|
|
90
|
+
function parseBurnAmount(amountStr, tokenDecimals) {
|
|
91
|
+
if (amountStr === undefined || amountStr === "all")
|
|
92
|
+
return "all";
|
|
93
|
+
const trimmed = amountStr.trim();
|
|
94
|
+
if (trimmed === "" || trimmed === ".") {
|
|
95
|
+
throw new Error("empty amount");
|
|
96
|
+
}
|
|
97
|
+
if (/^\d+$/.test(trimmed)) {
|
|
98
|
+
return new core_1.BN(trimmed, 10);
|
|
99
|
+
}
|
|
100
|
+
const normalized = trimmed.startsWith(".") ? `0${trimmed}` : trimmed;
|
|
101
|
+
if (!/^\d+(\.\d+)?$/.test(normalized)) {
|
|
102
|
+
console.error(`Invalid burn amount "${amountStr}".`);
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
const ui = parseFloat(normalized);
|
|
106
|
+
if (!Number.isFinite(ui) || ui < 0) {
|
|
107
|
+
console.error(`Invalid burn amount "${amountStr}".`);
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
return (0, common_1.fromUiAmount)(ui, tokenDecimals);
|
|
111
|
+
}
|
|
112
|
+
main()
|
|
113
|
+
.then(() => console.log("Finished"))
|
|
114
|
+
.catch((err) => {
|
|
115
|
+
console.error(err);
|
|
116
|
+
process.exit(1);
|
|
117
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./env";
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("./env");
|
|
4
|
+
const core_1 = require("@anchor-lang/core");
|
|
5
|
+
const common_1 = require("common");
|
|
6
|
+
const client_1 = require("../src/client/client");
|
|
7
|
+
const localUtils_1 = require("./localUtils");
|
|
8
|
+
/**
|
|
9
|
+
* Parse burn CLI argument:
|
|
10
|
+
* - **Integer string** (digits only): amount in yToken base units (shares the token's mint decimals).
|
|
11
|
+
* - **Decimal string** (contains `.`): human amount in yToken units (e.g. `0.25`); converted with {@link fromUiAmount} (rounds to nearest base unit).
|
|
12
|
+
*
|
|
13
|
+
* yTokens share their collateral's decimals, so `tokenDecimals` here equals the token's `collateral.decimals`.
|
|
14
|
+
*/
|
|
15
|
+
function parseBurnAmount(amountStr, tokenDecimals) {
|
|
16
|
+
const trimmed = amountStr.trim();
|
|
17
|
+
if (trimmed === "" || trimmed === ".") {
|
|
18
|
+
throw new Error("empty amount");
|
|
19
|
+
}
|
|
20
|
+
if (/^\d+$/.test(trimmed)) {
|
|
21
|
+
return new core_1.BN(trimmed, 10);
|
|
22
|
+
}
|
|
23
|
+
const normalized = trimmed.startsWith(".") ? `0${trimmed}` : trimmed;
|
|
24
|
+
if (!/^\d+(\.\d+)?$/.test(normalized)) {
|
|
25
|
+
throw new Error("invalid decimal amount");
|
|
26
|
+
}
|
|
27
|
+
const ui = parseFloat(normalized);
|
|
28
|
+
if (!Number.isFinite(ui) || ui < 0) {
|
|
29
|
+
throw new Error("invalid decimal amount");
|
|
30
|
+
}
|
|
31
|
+
return (0, common_1.fromUiAmount)(ui, tokenDecimals);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Burns yTokens and withdraws collateral via `burn_token`. The chain rejects
|
|
35
|
+
* when unlent collateral is insufficient and no async fallback accounts are provided.
|
|
36
|
+
*
|
|
37
|
+
* Usage:
|
|
38
|
+
* From this package: `pnpm run burn-token -- test|prod <TOKEN_PDA|COLLATERAL_SYMBOL> [AMOUNT] [--keypair KEYPAIR_JSON]`
|
|
39
|
+
* From repo root: `pnpm lyc:burn-token -- test|prod …`
|
|
40
|
+
*
|
|
41
|
+
* `AMOUNT`: integer string = yToken base units; decimal string = yToken units (e.g. `0.25`).
|
|
42
|
+
* Omit to burn the entire yToken ATA balance ("all").
|
|
43
|
+
* Default signer keypair: {@link TP_ID_KEYPAIR_FP} from `common`; override with `--keypair`.
|
|
44
|
+
*/
|
|
45
|
+
async function main() {
|
|
46
|
+
const { env, rest } = (0, localUtils_1.parseCliEnvironmentAndRest)("burn-token");
|
|
47
|
+
const { rest: args, keypairPath: keypairFlagPath } = (0, localUtils_1.extractKeypairFlag)(rest);
|
|
48
|
+
const positional = args.filter((arg) => !arg.startsWith("--"));
|
|
49
|
+
const tokenArg = positional[0];
|
|
50
|
+
const burnRawStr = positional[1];
|
|
51
|
+
const keypairPath = keypairFlagPath ?? positional[2] ?? common_1.TP_ID_KEYPAIR_FP;
|
|
52
|
+
if (tokenArg === undefined) {
|
|
53
|
+
console.error("Usage: pnpm run burn-token -- [test|prod] <TOKEN_PDA|COLLATERAL_SYMBOL> [AMOUNT] [--keypair KEYPAIR_JSON]");
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
const { signer: userSigner, web3Keypair } = await (0, common_1.loadLocalKeypairWithWeb3)(keypairPath);
|
|
57
|
+
const provider = (0, common_1.createDefaultAnchorProvider)(env, web3Keypair);
|
|
58
|
+
const client = new client_1.LongYieldCarryClient(provider, env);
|
|
59
|
+
const { tokenPda, collateralSymbol, collateralDecimals } = await (0, localUtils_1.resolveTokenPda)(client, tokenArg);
|
|
60
|
+
let burnAmount;
|
|
61
|
+
if (burnRawStr === undefined || burnRawStr === "all") {
|
|
62
|
+
burnAmount = "all";
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
try {
|
|
66
|
+
burnAmount = parseBurnAmount(burnRawStr, collateralDecimals);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
console.error(`Invalid burn amount "${burnRawStr}" (use integer base units, a decimal token amount e.g. 0.25, or "all").`);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
if (burnAmount.lte(new core_1.BN(0))) {
|
|
73
|
+
console.error("Burn amount must be positive.");
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const burnPlan = await client.tx.burnToken.getTx({
|
|
78
|
+
signer: userSigner.address,
|
|
79
|
+
token: tokenPda,
|
|
80
|
+
params: {
|
|
81
|
+
burnAmount,
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
const sig = await client.sendTransaction(userSigner, burnPlan);
|
|
85
|
+
console.log("burn_token succeeded.");
|
|
86
|
+
console.log(" environment:", env);
|
|
87
|
+
console.log(" signer:", userSigner.address);
|
|
88
|
+
console.log(" token PDA:", tokenPda);
|
|
89
|
+
console.log(" underlying collateral:", collateralSymbol);
|
|
90
|
+
console.log(" burn:", burnAmount === "all" ? "all" : burnAmount.toString());
|
|
91
|
+
console.log(" signature:", sig);
|
|
92
|
+
}
|
|
93
|
+
main()
|
|
94
|
+
.then(() => console.log("Finished"))
|
|
95
|
+
.catch((err) => {
|
|
96
|
+
console.error(err);
|
|
97
|
+
process.exit(1);
|
|
98
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./env";
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("./env");
|
|
4
|
+
const common_1 = require("common");
|
|
5
|
+
const client_1 = require("../src/client/client");
|
|
6
|
+
const general_1 = require("../src/constants/general");
|
|
7
|
+
const errors_1 = require("../src/errors");
|
|
8
|
+
const localUtils_1 = require("./localUtils");
|
|
9
|
+
/**
|
|
10
|
+
* Runs `claim_incentives` for every outstanding incentive across the target
|
|
11
|
+
* token's active lending positions. One transaction per (lendingPositionIndex,
|
|
12
|
+
* incentiveMint) pair.
|
|
13
|
+
*
|
|
14
|
+
* Skips tokens with the circuit breaker on. `NoOpTransactionError` is treated
|
|
15
|
+
* as a successful skip.
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* From this package:
|
|
19
|
+
* `pnpm run claim-incentives -- test|prod <TOKEN_PDA|SYMBOL> [KEYPAIR_JSON]`
|
|
20
|
+
* From repo root:
|
|
21
|
+
* `pnpm run lyc:claim-incentives -- test|prod <TOKEN_PDA|SYMBOL> [KEYPAIR_JSON]`
|
|
22
|
+
*
|
|
23
|
+
* Defaults to the manager keypair for the environment ({@link LYC_MANAGER_KEYPAIR_FP}).
|
|
24
|
+
*/
|
|
25
|
+
async function main() {
|
|
26
|
+
const { env, rest } = (0, localUtils_1.parseCliEnvironmentAndRest)("claim-incentives");
|
|
27
|
+
const { rest: args, keypairPath: keypairFlagPath } = (0, localUtils_1.extractKeypairFlag)(rest);
|
|
28
|
+
if (args.length < 1 || args.length > 2) {
|
|
29
|
+
console.error("Usage: pnpm run claim-incentives -- test|prod <TOKEN_PDA|SYMBOL> [KEYPAIR_JSON]");
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
const [first, second] = args;
|
|
33
|
+
let tokenIdentifier;
|
|
34
|
+
let keypairPath;
|
|
35
|
+
if (args.length === 1) {
|
|
36
|
+
tokenIdentifier = first;
|
|
37
|
+
keypairPath = keypairFlagPath ?? general_1.LYC_MANAGER_KEYPAIR_FP[env];
|
|
38
|
+
}
|
|
39
|
+
else if ((0, localUtils_1.isLikelyKeypairPath)(second)) {
|
|
40
|
+
tokenIdentifier = first;
|
|
41
|
+
keypairPath = keypairFlagPath ?? second;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
console.error("Second positional must look like a keypair path (e.g. *.json).");
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
const { signer, web3Keypair } = await (0, common_1.loadLocalKeypairWithWeb3)(keypairPath);
|
|
48
|
+
const provider = (0, common_1.createDefaultAnchorProvider)(env, web3Keypair);
|
|
49
|
+
const client = new client_1.LongYieldCarryClient(provider, env);
|
|
50
|
+
const { tokenPda, collateralSymbol } = await (0, localUtils_1.resolveTokenPda)(client, tokenIdentifier);
|
|
51
|
+
const token = await client.account.fetchToken(tokenPda, { fresh: true });
|
|
52
|
+
console.log("Claiming incentives (long-yield-carry)...");
|
|
53
|
+
console.log(" environment:", env);
|
|
54
|
+
console.log(" manager:", signer.address);
|
|
55
|
+
console.log(" token:", tokenPda, collateralSymbol ? `(${collateralSymbol})` : "");
|
|
56
|
+
if (!token.isActive) {
|
|
57
|
+
console.log(`[skip] ${token.label} — circuit breaker active`);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const incentivesByPosition = await client.getOutstandingIncentives(token, undefined, console.log);
|
|
61
|
+
if (incentivesByPosition.size === 0) {
|
|
62
|
+
console.log("No outstanding incentives across active lending positions.");
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
let claimed = 0;
|
|
66
|
+
let skippedNoop = 0;
|
|
67
|
+
let failures = 0;
|
|
68
|
+
for (const [lendingPositionIndex, incentives] of incentivesByPosition) {
|
|
69
|
+
for (const incentive of incentives) {
|
|
70
|
+
const label = `${token.label} lp[${lendingPositionIndex}] mint=${incentive.mint.slice(0, 6)}…`;
|
|
71
|
+
try {
|
|
72
|
+
const plan = await client.tx.claimIncentives.getTx({
|
|
73
|
+
token: token.address,
|
|
74
|
+
params: {
|
|
75
|
+
lendingPositionIndex,
|
|
76
|
+
incentiveMint: incentive.mint,
|
|
77
|
+
claimAccounts: incentive.claimAccounts,
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
const sig = await client.sendTransaction(signer, plan);
|
|
81
|
+
console.log(`[ok] ${label} amount≈${incentive.uiAmount} (${sig})`);
|
|
82
|
+
claimed++;
|
|
83
|
+
client.clearAllCache();
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
if (err instanceof errors_1.NoOpTransactionError) {
|
|
87
|
+
console.log(`[noop] ${label} — ${err.message}`);
|
|
88
|
+
skippedNoop++;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
failures++;
|
|
92
|
+
console.error(`[fail] ${label}: ${err.message}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
console.log("\nSummary:");
|
|
97
|
+
console.log(" claimed:", claimed);
|
|
98
|
+
console.log(" skipped (no-op):", skippedNoop);
|
|
99
|
+
console.log(" failures:", failures);
|
|
100
|
+
if (failures > 0)
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
main()
|
|
104
|
+
.then(() => console.log("Finished"))
|
|
105
|
+
.catch((err) => {
|
|
106
|
+
console.error(err);
|
|
107
|
+
process.exit(1);
|
|
108
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./env";
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("./env");
|
|
4
|
+
const core_1 = require("@anchor-lang/core");
|
|
5
|
+
const kit_1 = require("@solana/kit");
|
|
6
|
+
const common_1 = require("common");
|
|
7
|
+
const client_1 = require("../src/client/client");
|
|
8
|
+
const long_yield_carry_1 = require("../src/idl/long_yield_carry");
|
|
9
|
+
const general_1 = require("../src/constants/general");
|
|
10
|
+
const localUtils_1 = require("./localUtils");
|
|
11
|
+
const LAMPORTS_PER_SOL = 1000000000;
|
|
12
|
+
// CpiPlanAccount Anchor discriminator: sha256("account:CpiPlanAccount")[0..8]
|
|
13
|
+
const CPI_PLAN_DISCRIMINATOR = Buffer.from([23, 23, 187, 18, 208, 103, 156, 246]);
|
|
14
|
+
/**
|
|
15
|
+
* Finds all live CPI plan PDAs and closes them, reclaiming rent back to the manager.
|
|
16
|
+
*
|
|
17
|
+
* CPI plan accounts are normally auto-closed by `rebalance_token` on success.
|
|
18
|
+
* This script reclaims rent from any that were left open due to a failed or
|
|
19
|
+
* interrupted transaction.
|
|
20
|
+
*
|
|
21
|
+
* Usage:
|
|
22
|
+
* pnpm run close-cpi-plans -- test|prod [KEYPAIR_JSON]
|
|
23
|
+
* pnpm run lyc:close-cpi-plans -- test|prod [KEYPAIR_JSON]
|
|
24
|
+
*/
|
|
25
|
+
async function main() {
|
|
26
|
+
const { env, rest } = (0, localUtils_1.parseCliEnvironmentAndRest)("close-cpi-plans");
|
|
27
|
+
const { rest: args, keypairPath: keypairFlagPath } = (0, localUtils_1.extractKeypairFlag)(rest);
|
|
28
|
+
const keypairPath = keypairFlagPath ?? (args.length > 0 ? args[0] : general_1.LYC_MANAGER_KEYPAIR_FP[env]);
|
|
29
|
+
const { signer, web3Keypair } = await (0, common_1.loadLocalKeypairWithWeb3)(keypairPath);
|
|
30
|
+
const provider = (0, common_1.createDefaultAnchorProvider)(env, web3Keypair);
|
|
31
|
+
const client = new client_1.LongYieldCarryClient(provider, env);
|
|
32
|
+
const idl = { ...long_yield_carry_1.IDL, address: general_1.PROGRAM_ID[env] };
|
|
33
|
+
const program = new core_1.Program(idl, provider);
|
|
34
|
+
console.log("Closing orphaned CPI plan PDAs...");
|
|
35
|
+
console.log(" environment:", env);
|
|
36
|
+
console.log(" manager:", signer.address);
|
|
37
|
+
// Find all CpiPlanAccount accounts using the discriminator memcmp filter.
|
|
38
|
+
const rpcConnection = provider.connection;
|
|
39
|
+
const accounts = await rpcConnection.getProgramAccounts(program.programId, {
|
|
40
|
+
filters: [
|
|
41
|
+
{
|
|
42
|
+
memcmp: {
|
|
43
|
+
offset: 0,
|
|
44
|
+
bytes: CPI_PLAN_DISCRIMINATOR.toString("base64"),
|
|
45
|
+
encoding: "base64",
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
});
|
|
50
|
+
console.log(` found ${accounts.length} CPI plan account(s)`);
|
|
51
|
+
if (accounts.length === 0) {
|
|
52
|
+
console.log("Nothing to close.");
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
let closed = 0;
|
|
56
|
+
let failed = 0;
|
|
57
|
+
let totalReclaimed = 0n;
|
|
58
|
+
for (const { pubkey, account } of accounts) {
|
|
59
|
+
const cpiPlanAddress = (0, kit_1.address)(pubkey.toBase58());
|
|
60
|
+
const lamports = BigInt(account.lamports);
|
|
61
|
+
try {
|
|
62
|
+
const ix = await program.methods
|
|
63
|
+
.closeCpiPlan()
|
|
64
|
+
.accountsPartial({
|
|
65
|
+
manager: signer.address,
|
|
66
|
+
cpiPlan: cpiPlanAddress,
|
|
67
|
+
})
|
|
68
|
+
.instruction()
|
|
69
|
+
.then(common_1.toKitInstruction);
|
|
70
|
+
const sig = await client.sendTransaction(signer, [ix]);
|
|
71
|
+
closed += 1;
|
|
72
|
+
totalReclaimed += lamports;
|
|
73
|
+
console.log(`[ok] ${cpiPlanAddress} — ${(Number(lamports) / LAMPORTS_PER_SOL).toFixed(9)} SOL reclaimed (${sig})`);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
failed += 1;
|
|
77
|
+
console.error(`[fail] ${cpiPlanAddress}: ${err instanceof Error ? err.message : String(err)}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
console.log("\nSummary:");
|
|
81
|
+
console.log(" closed:", closed);
|
|
82
|
+
console.log(" total reclaimed:", `${(Number(totalReclaimed) / LAMPORTS_PER_SOL).toFixed(9)} SOL`);
|
|
83
|
+
console.log(" failures:", failed);
|
|
84
|
+
if (failed > 0) {
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
main()
|
|
89
|
+
.then(() => console.log("Finished"))
|
|
90
|
+
.catch((err) => {
|
|
91
|
+
console.error(err);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./env";
|