@kestrelfi/lyc-sdk 1.0.1 → 1.0.3
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/README.md +32 -0
- package/dist/carry-XU3WUD22.mjs +20 -0
- package/dist/carry-XU3WUD22.mjs.map +1 -0
- package/dist/chunk-2T23QQCX.mjs +3707 -0
- package/dist/chunk-2T23QQCX.mjs.map +1 -0
- package/dist/chunk-GOW6CARW.mjs +3969 -0
- package/dist/chunk-GOW6CARW.mjs.map +1 -0
- package/dist/chunk-ZPXXY3QV.mjs +9330 -0
- package/dist/chunk-ZPXXY3QV.mjs.map +1 -0
- package/dist/{sdks/long-yield-carry/src/idl/long_yield_carry.d.ts → core-DP6wfpME.d.mts} +3242 -84
- package/dist/core-DP6wfpME.d.ts +10485 -0
- package/dist/core.d.mts +8 -0
- package/dist/core.d.ts +8 -0
- package/dist/core.js +12348 -0
- package/dist/core.js.map +1 -0
- package/dist/core.mjs +72 -0
- package/dist/core.mjs.map +1 -0
- package/dist/index.d.mts +2537 -0
- package/dist/index.d.ts +2537 -0
- package/dist/index.js +23884 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +5898 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +56 -10
- package/.env.example +0 -11
- package/dist/sdks/long-yield-carry/scripts/asyncBurn.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/asyncBurn.js +0 -117
- package/dist/sdks/long-yield-carry/scripts/burnToken.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/burnToken.js +0 -98
- package/dist/sdks/long-yield-carry/scripts/claimIncentives.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/claimIncentives.js +0 -108
- package/dist/sdks/long-yield-carry/scripts/closeCpiPlans.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/closeCpiPlans.js +0 -93
- package/dist/sdks/long-yield-carry/scripts/collectInterest.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/collectInterest.js +0 -164
- package/dist/sdks/long-yield-carry/scripts/collectProtocolFees.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/collectProtocolFees.js +0 -120
- package/dist/sdks/long-yield-carry/scripts/computeOptimalAllocations.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/computeOptimalAllocations.js +0 -84
- package/dist/sdks/long-yield-carry/scripts/createToken.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/createToken.js +0 -76
- package/dist/sdks/long-yield-carry/scripts/createTokenLendingPosition.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/createTokenLendingPosition.js +0 -157
- package/dist/sdks/long-yield-carry/scripts/createYieldingBank.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/createYieldingBank.js +0 -69
- package/dist/sdks/long-yield-carry/scripts/decreaseCarryPositions.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/decreaseCarryPositions.js +0 -247
- package/dist/sdks/long-yield-carry/scripts/depositUnlentCollateral.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/depositUnlentCollateral.js +0 -90
- package/dist/sdks/long-yield-carry/scripts/emergency/deleverageAll.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/emergency/deleverageAll.js +0 -202
- package/dist/sdks/long-yield-carry/scripts/emergency/triggerCircuitBreaker.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/emergency/triggerCircuitBreaker.js +0 -68
- package/dist/sdks/long-yield-carry/scripts/env.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/env.js +0 -8
- package/dist/sdks/long-yield-carry/scripts/findTxs.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/findTxs.js +0 -143
- package/dist/sdks/long-yield-carry/scripts/increaseCarryPositions.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/increaseCarryPositions.js +0 -112
- package/dist/sdks/long-yield-carry/scripts/inspect/format.d.ts +0 -13
- package/dist/sdks/long-yield-carry/scripts/inspect/format.js +0 -363
- package/dist/sdks/long-yield-carry/scripts/inspect.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/inspect.js +0 -108
- package/dist/sdks/long-yield-carry/scripts/localUtils.d.ts +0 -53
- package/dist/sdks/long-yield-carry/scripts/localUtils.js +0 -191
- package/dist/sdks/long-yield-carry/scripts/mintToken.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/mintToken.js +0 -103
- package/dist/sdks/long-yield-carry/scripts/processAsyncBurns.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/processAsyncBurns.js +0 -76
- package/dist/sdks/long-yield-carry/scripts/rebalanceToken.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/rebalanceToken.js +0 -210
- package/dist/sdks/long-yield-carry/scripts/rebalanceYieldingBank.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/rebalanceYieldingBank.js +0 -149
- package/dist/sdks/long-yield-carry/scripts/recollateralizeLoss.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/recollateralizeLoss.js +0 -64
- package/dist/sdks/long-yield-carry/scripts/refresh.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/refresh.js +0 -101
- package/dist/sdks/long-yield-carry/scripts/updateFees.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/updateFees.js +0 -369
- package/dist/sdks/long-yield-carry/scripts/updateGeneralLut.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/updateGeneralLut.js +0 -27
- package/dist/sdks/long-yield-carry/scripts/updateLendingPositionConfig.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/updateLendingPositionConfig.js +0 -127
- package/dist/sdks/long-yield-carry/scripts/updateTokenLuts.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/updateTokenLuts.js +0 -27
- package/dist/sdks/long-yield-carry/scripts/updateTokenMetadata.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/updateTokenMetadata.js +0 -194
- package/dist/sdks/long-yield-carry/scripts/updateYieldingBankConfig.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/updateYieldingBankConfig.js +0 -84
- package/dist/sdks/long-yield-carry/scripts/withdrawUnlentCollateral.d.ts +0 -1
- package/dist/sdks/long-yield-carry/scripts/withdrawUnlentCollateral.js +0 -140
- package/dist/sdks/long-yield-carry/src/client/account.d.ts +0 -152
- package/dist/sdks/long-yield-carry/src/client/account.js +0 -349
- package/dist/sdks/long-yield-carry/src/client/builders/args.d.ts +0 -299
- package/dist/sdks/long-yield-carry/src/client/builders/args.js +0 -2
- package/dist/sdks/long-yield-carry/src/client/builders/asyncBurnBuilder.d.ts +0 -20
- package/dist/sdks/long-yield-carry/src/client/builders/asyncBurnBuilder.js +0 -212
- package/dist/sdks/long-yield-carry/src/client/builders/base.d.ts +0 -77
- package/dist/sdks/long-yield-carry/src/client/builders/base.js +0 -191
- package/dist/sdks/long-yield-carry/src/client/builders/burnTokenBuilder.d.ts +0 -18
- package/dist/sdks/long-yield-carry/src/client/builders/burnTokenBuilder.js +0 -165
- package/dist/sdks/long-yield-carry/src/client/builders/claimIncentivesBuilder.d.ts +0 -9
- package/dist/sdks/long-yield-carry/src/client/builders/claimIncentivesBuilder.js +0 -135
- package/dist/sdks/long-yield-carry/src/client/builders/collectFeesBuilder.d.ts +0 -14
- package/dist/sdks/long-yield-carry/src/client/builders/collectFeesBuilder.js +0 -50
- package/dist/sdks/long-yield-carry/src/client/builders/collectInterestBuilder.d.ts +0 -8
- package/dist/sdks/long-yield-carry/src/client/builders/collectInterestBuilder.js +0 -86
- package/dist/sdks/long-yield-carry/src/client/builders/createCpiPlanBuilder.d.ts +0 -6
- package/dist/sdks/long-yield-carry/src/client/builders/createCpiPlanBuilder.js +0 -22
- package/dist/sdks/long-yield-carry/src/client/builders/createTokenBuilder.d.ts +0 -7
- package/dist/sdks/long-yield-carry/src/client/builders/createTokenBuilder.js +0 -64
- package/dist/sdks/long-yield-carry/src/client/builders/createTokenLendingPositionBuilder.d.ts +0 -10
- package/dist/sdks/long-yield-carry/src/client/builders/createTokenLendingPositionBuilder.js +0 -138
- package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankAllocationBuilder.d.ts +0 -7
- package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankAllocationBuilder.js +0 -29
- package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankBuilder.d.ts +0 -7
- package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankBuilder.js +0 -39
- package/dist/sdks/long-yield-carry/src/client/builders/decreaseCarryPositionBuilder.d.ts +0 -30
- package/dist/sdks/long-yield-carry/src/client/builders/decreaseCarryPositionBuilder.js +0 -99
- package/dist/sdks/long-yield-carry/src/client/builders/depositUnlentCollateralBuilder.d.ts +0 -8
- package/dist/sdks/long-yield-carry/src/client/builders/depositUnlentCollateralBuilder.js +0 -64
- package/dist/sdks/long-yield-carry/src/client/builders/increaseCarryPositionBuilder.d.ts +0 -8
- package/dist/sdks/long-yield-carry/src/client/builders/increaseCarryPositionBuilder.js +0 -73
- package/dist/sdks/long-yield-carry/src/client/builders/index.d.ts +0 -28
- package/dist/sdks/long-yield-carry/src/client/builders/index.js +0 -62
- package/dist/sdks/long-yield-carry/src/client/builders/mintTokenBuilder.d.ts +0 -8
- package/dist/sdks/long-yield-carry/src/client/builders/mintTokenBuilder.js +0 -95
- package/dist/sdks/long-yield-carry/src/client/builders/rebalanceTokenBuilder.d.ts +0 -11
- package/dist/sdks/long-yield-carry/src/client/builders/rebalanceTokenBuilder.js +0 -255
- package/dist/sdks/long-yield-carry/src/client/builders/rebalanceYieldingBankBuilder.d.ts +0 -8
- package/dist/sdks/long-yield-carry/src/client/builders/rebalanceYieldingBankBuilder.js +0 -75
- package/dist/sdks/long-yield-carry/src/client/builders/recollateralizeLossBuilder.d.ts +0 -12
- package/dist/sdks/long-yield-carry/src/client/builders/recollateralizeLossBuilder.js +0 -220
- package/dist/sdks/long-yield-carry/src/client/builders/refreshTokenStateBuilder.d.ts +0 -9
- package/dist/sdks/long-yield-carry/src/client/builders/refreshTokenStateBuilder.js +0 -112
- package/dist/sdks/long-yield-carry/src/client/builders/refreshTokensBuilder.d.ts +0 -9
- package/dist/sdks/long-yield-carry/src/client/builders/refreshTokensBuilder.js +0 -59
- package/dist/sdks/long-yield-carry/src/client/builders/refreshYieldingBankBuilder.d.ts +0 -8
- package/dist/sdks/long-yield-carry/src/client/builders/refreshYieldingBankBuilder.js +0 -29
- package/dist/sdks/long-yield-carry/src/client/builders/resetTokenBurnRateLimitBuilder.d.ts +0 -7
- package/dist/sdks/long-yield-carry/src/client/builders/resetTokenBurnRateLimitBuilder.js +0 -19
- package/dist/sdks/long-yield-carry/src/client/builders/setTokenCircuitBreakerBuilder.d.ts +0 -11
- package/dist/sdks/long-yield-carry/src/client/builders/setTokenCircuitBreakerBuilder.js +0 -31
- package/dist/sdks/long-yield-carry/src/client/builders/setYieldingBankCircuitBreakerBuilder.d.ts +0 -8
- package/dist/sdks/long-yield-carry/src/client/builders/setYieldingBankCircuitBreakerBuilder.js +0 -28
- package/dist/sdks/long-yield-carry/src/client/builders/updateLendingPositionConfigBuilder.d.ts +0 -10
- package/dist/sdks/long-yield-carry/src/client/builders/updateLendingPositionConfigBuilder.js +0 -30
- package/dist/sdks/long-yield-carry/src/client/builders/updateTokenConfigurationBuilder.d.ts +0 -11
- package/dist/sdks/long-yield-carry/src/client/builders/updateTokenConfigurationBuilder.js +0 -47
- package/dist/sdks/long-yield-carry/src/client/builders/updateTokenMetadataBuilder.d.ts +0 -7
- package/dist/sdks/long-yield-carry/src/client/builders/updateTokenMetadataBuilder.js +0 -24
- package/dist/sdks/long-yield-carry/src/client/builders/updateYieldingBankConfigBuilder.d.ts +0 -10
- package/dist/sdks/long-yield-carry/src/client/builders/updateYieldingBankConfigBuilder.js +0 -31
- package/dist/sdks/long-yield-carry/src/client/builders/utils.d.ts +0 -4
- package/dist/sdks/long-yield-carry/src/client/builders/utils.js +0 -20
- package/dist/sdks/long-yield-carry/src/client/client.d.ts +0 -115
- package/dist/sdks/long-yield-carry/src/client/client.js +0 -166
- package/dist/sdks/long-yield-carry/src/client/externalLiquidityResolver.d.ts +0 -13
- package/dist/sdks/long-yield-carry/src/client/externalLiquidityResolver.js +0 -34
- package/dist/sdks/long-yield-carry/src/client/index.d.ts +0 -10
- package/dist/sdks/long-yield-carry/src/client/index.js +0 -33
- package/dist/sdks/long-yield-carry/src/client/lendingPlatformClients.d.ts +0 -19
- package/dist/sdks/long-yield-carry/src/client/lendingPlatformClients.js +0 -33
- package/dist/sdks/long-yield-carry/src/client/pda.d.ts +0 -33
- package/dist/sdks/long-yield-carry/src/client/pda.js +0 -79
- package/dist/sdks/long-yield-carry/src/client/plans/collectInterest.d.ts +0 -24
- package/dist/sdks/long-yield-carry/src/client/plans/collectInterest.js +0 -150
- package/dist/sdks/long-yield-carry/src/client/plans/decreaseCarryPosition.d.ts +0 -12
- package/dist/sdks/long-yield-carry/src/client/plans/decreaseCarryPosition.js +0 -140
- package/dist/sdks/long-yield-carry/src/client/routes/collectInterest.d.ts +0 -13
- package/dist/sdks/long-yield-carry/src/client/routes/collectInterest.js +0 -39
- package/dist/sdks/long-yield-carry/src/client/transaction.d.ts +0 -41
- package/dist/sdks/long-yield-carry/src/client/transaction.js +0 -55
- package/dist/sdks/long-yield-carry/src/client/types/builders.d.ts +0 -18
- package/dist/sdks/long-yield-carry/src/client/types/builders.js +0 -2
- package/dist/sdks/long-yield-carry/src/client/types/enums.d.ts +0 -22
- package/dist/sdks/long-yield-carry/src/client/types/enums.js +0 -48
- package/dist/sdks/long-yield-carry/src/client/types/general.d.ts +0 -98
- package/dist/sdks/long-yield-carry/src/client/types/general.js +0 -2
- package/dist/sdks/long-yield-carry/src/client/types/index.d.ts +0 -6
- package/dist/sdks/long-yield-carry/src/client/types/index.js +0 -22
- package/dist/sdks/long-yield-carry/src/client/types/ix.d.ts +0 -352
- package/dist/sdks/long-yield-carry/src/client/types/ix.js +0 -2
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/collectInterest.d.ts +0 -91
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/collectInterest.js +0 -2
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/common.d.ts +0 -28
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/common.js +0 -2
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/decreaseCarryPosition.d.ts +0 -128
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/decreaseCarryPosition.js +0 -2
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/index.d.ts +0 -3
- package/dist/sdks/long-yield-carry/src/client/types/planTypes/index.js +0 -19
- package/dist/sdks/long-yield-carry/src/client/types/tx.d.ts +0 -339
- package/dist/sdks/long-yield-carry/src/client/types/tx.js +0 -2
- package/dist/sdks/long-yield-carry/src/constants/configs/allocations.d.ts +0 -3
- package/dist/sdks/long-yield-carry/src/constants/configs/allocations.js +0 -23
- package/dist/sdks/long-yield-carry/src/constants/configs/carryTradePresets.d.ts +0 -58
- package/dist/sdks/long-yield-carry/src/constants/configs/carryTradePresets.js +0 -116
- package/dist/sdks/long-yield-carry/src/constants/configs/index.d.ts +0 -2
- package/dist/sdks/long-yield-carry/src/constants/configs/index.js +0 -18
- package/dist/sdks/long-yield-carry/src/constants/general.d.ts +0 -70
- package/dist/sdks/long-yield-carry/src/constants/general.js +0 -107
- package/dist/sdks/long-yield-carry/src/constants/index.d.ts +0 -3
- package/dist/sdks/long-yield-carry/src/constants/index.js +0 -19
- package/dist/sdks/long-yield-carry/src/constants/lycTokenMetadata.d.ts +0 -36
- package/dist/sdks/long-yield-carry/src/constants/lycTokenMetadata.js +0 -41
- package/dist/sdks/long-yield-carry/src/decoders/decodeTransaction.d.ts +0 -86
- package/dist/sdks/long-yield-carry/src/decoders/decodeTransaction.js +0 -230
- package/dist/sdks/long-yield-carry/src/decoders/discriminators.d.ts +0 -8
- package/dist/sdks/long-yield-carry/src/decoders/discriminators.js +0 -11
- package/dist/sdks/long-yield-carry/src/decoders/idlAccounts.d.ts +0 -29
- package/dist/sdks/long-yield-carry/src/decoders/idlAccounts.js +0 -57
- package/dist/sdks/long-yield-carry/src/decoders/index.d.ts +0 -6
- package/dist/sdks/long-yield-carry/src/decoders/index.js +0 -14
- package/dist/sdks/long-yield-carry/src/decoders/innerCpis.d.ts +0 -68
- package/dist/sdks/long-yield-carry/src/decoders/innerCpis.js +0 -225
- package/dist/sdks/long-yield-carry/src/decoders/lycInstructionNames.d.ts +0 -6
- package/dist/sdks/long-yield-carry/src/decoders/lycInstructionNames.js +0 -73
- package/dist/sdks/long-yield-carry/src/decoders/programIds.d.ts +0 -4
- package/dist/sdks/long-yield-carry/src/decoders/programIds.js +0 -11
- package/dist/sdks/long-yield-carry/src/decoders/solana.d.ts +0 -7
- package/dist/sdks/long-yield-carry/src/decoders/solana.js +0 -30
- package/dist/sdks/long-yield-carry/src/decoders/transactionPayload.d.ts +0 -41
- package/dist/sdks/long-yield-carry/src/decoders/transactionPayload.js +0 -6
- package/dist/sdks/long-yield-carry/src/decoders/types.d.ts +0 -58
- package/dist/sdks/long-yield-carry/src/decoders/types.js +0 -2
- package/dist/sdks/long-yield-carry/src/errors.d.ts +0 -69
- package/dist/sdks/long-yield-carry/src/errors.js +0 -183
- package/dist/sdks/long-yield-carry/src/idl/long_yield_carry.js +0 -7323
- package/dist/sdks/long-yield-carry/src/index.d.ts +0 -10
- package/dist/sdks/long-yield-carry/src/index.js +0 -25
- package/dist/sdks/long-yield-carry/src/metrics/index.d.ts +0 -1
- package/dist/sdks/long-yield-carry/src/metrics/index.js +0 -17
- package/dist/sdks/long-yield-carry/src/metrics/protocolMetrics.d.ts +0 -276
- package/dist/sdks/long-yield-carry/src/metrics/protocolMetrics.js +0 -547
- package/dist/sdks/long-yield-carry/src/models/index.d.ts +0 -3
- package/dist/sdks/long-yield-carry/src/models/index.js +0 -7
- package/dist/sdks/long-yield-carry/src/models/lycToken.d.ts +0 -156
- package/dist/sdks/long-yield-carry/src/models/lycToken.js +0 -288
- package/dist/sdks/long-yield-carry/src/models/yieldingBank.d.ts +0 -52
- package/dist/sdks/long-yield-carry/src/models/yieldingBank.js +0 -109
- package/dist/sdks/long-yield-carry/src/services/allocation/allocationService.d.ts +0 -106
- package/dist/sdks/long-yield-carry/src/services/allocation/allocationService.js +0 -589
- package/dist/sdks/long-yield-carry/src/services/allocation/index.d.ts +0 -2
- package/dist/sdks/long-yield-carry/src/services/allocation/index.js +0 -18
- package/dist/sdks/long-yield-carry/src/services/allocation/types.d.ts +0 -25
- package/dist/sdks/long-yield-carry/src/services/allocation/types.js +0 -2
- package/dist/sdks/long-yield-carry/src/services/carry/carryAllocationConfig.d.ts +0 -103
- package/dist/sdks/long-yield-carry/src/services/carry/carryAllocationConfig.js +0 -146
- package/dist/sdks/long-yield-carry/src/services/carry/index.d.ts +0 -2
- package/dist/sdks/long-yield-carry/src/services/carry/index.js +0 -18
- package/dist/sdks/long-yield-carry/src/services/carry/lycLendingPositionManager.d.ts +0 -39
- package/dist/sdks/long-yield-carry/src/services/carry/lycLendingPositionManager.js +0 -100
- package/dist/sdks/long-yield-carry/src/services/index.d.ts +0 -5
- package/dist/sdks/long-yield-carry/src/services/index.js +0 -21
- package/dist/sdks/long-yield-carry/src/services/lendingPosition/index.d.ts +0 -2
- package/dist/sdks/long-yield-carry/src/services/lendingPosition/index.js +0 -5
- package/dist/sdks/long-yield-carry/src/services/lendingPosition/lendingPositionService.d.ts +0 -88
- package/dist/sdks/long-yield-carry/src/services/lendingPosition/lendingPositionService.js +0 -229
- package/dist/sdks/long-yield-carry/src/services/rebalance/index.d.ts +0 -2
- package/dist/sdks/long-yield-carry/src/services/rebalance/index.js +0 -18
- package/dist/sdks/long-yield-carry/src/services/rebalance/token/index.d.ts +0 -1
- package/dist/sdks/long-yield-carry/src/services/rebalance/token/index.js +0 -17
- package/dist/sdks/long-yield-carry/src/services/rebalance/token/tokenRebalanceService.d.ts +0 -51
- package/dist/sdks/long-yield-carry/src/services/rebalance/token/tokenRebalanceService.js +0 -99
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/index.d.ts +0 -3
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/index.js +0 -21
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/planner.d.ts +0 -68
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/planner.js +0 -181
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/strategy.d.ts +0 -26
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/strategy.js +0 -26
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/types.d.ts +0 -40
- package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/types.js +0 -2
- package/dist/sdks/long-yield-carry/src/services/redemption/index.d.ts +0 -2
- package/dist/sdks/long-yield-carry/src/services/redemption/index.js +0 -5
- package/dist/sdks/long-yield-carry/src/services/redemption/redemptionService.d.ts +0 -139
- package/dist/sdks/long-yield-carry/src/services/redemption/redemptionService.js +0 -532
- package/dist/sdks/long-yield-carry/src/types/enriched.d.ts +0 -168
- package/dist/sdks/long-yield-carry/src/types/enriched.js +0 -2
- package/dist/sdks/long-yield-carry/src/types/index.d.ts +0 -1
- package/dist/sdks/long-yield-carry/src/types/index.js +0 -17
- package/dist/sdks/long-yield-carry/src/utils/cache.d.ts +0 -4
- package/dist/sdks/long-yield-carry/src/utils/cache.js +0 -10
- package/dist/sdks/long-yield-carry/src/utils/data.d.ts +0 -12
- package/dist/sdks/long-yield-carry/src/utils/data.js +0 -59
- package/dist/sdks/long-yield-carry/src/utils/enrichment.d.ts +0 -5
- package/dist/sdks/long-yield-carry/src/utils/enrichment.js +0 -244
- package/dist/sdks/long-yield-carry/src/utils/feeDripMetrics.d.ts +0 -36
- package/dist/sdks/long-yield-carry/src/utils/feeDripMetrics.js +0 -93
- package/dist/sdks/long-yield-carry/src/utils/general.d.ts +0 -28
- package/dist/sdks/long-yield-carry/src/utils/general.js +0 -47
- package/dist/sdks/long-yield-carry/src/utils/index.d.ts +0 -13
- package/dist/sdks/long-yield-carry/src/utils/index.js +0 -29
- package/dist/sdks/long-yield-carry/src/utils/ix.d.ts +0 -83
- package/dist/sdks/long-yield-carry/src/utils/ix.js +0 -165
- package/dist/sdks/long-yield-carry/src/utils/lendingPosition.d.ts +0 -68
- package/dist/sdks/long-yield-carry/src/utils/lendingPosition.js +0 -105
- package/dist/sdks/long-yield-carry/src/utils/lookupTables.d.ts +0 -55
- package/dist/sdks/long-yield-carry/src/utils/lookupTables.js +0 -216
- package/dist/sdks/long-yield-carry/src/utils/lycData.d.ts +0 -66
- package/dist/sdks/long-yield-carry/src/utils/lycData.js +0 -211
- package/dist/sdks/long-yield-carry/src/utils/timelock.d.ts +0 -19
- package/dist/sdks/long-yield-carry/src/utils/timelock.js +0 -37
- package/dist/sdks/long-yield-carry/src/utils/tokenFeeMath.d.ts +0 -11
- package/dist/sdks/long-yield-carry/src/utils/tokenFeeMath.js +0 -24
- package/dist/sdks/long-yield-carry/src/utils/transactions.d.ts +0 -20
- package/dist/sdks/long-yield-carry/src/utils/transactions.js +0 -72
- package/dist/sdks/long-yield-carry/src/utils/yieldingBank.d.ts +0 -24
- package/dist/sdks/long-yield-carry/src/utils/yieldingBank.js +0 -36
- package/dist/shared/common/src/constants/accountMetas.d.ts +0 -3
- package/dist/shared/common/src/constants/accountMetas.js +0 -9
- package/dist/shared/common/src/constants/general.d.ts +0 -21
- package/dist/shared/common/src/constants/general.js +0 -30
- package/dist/shared/common/src/constants/generated/cpi.d.ts +0 -23
- package/dist/shared/common/src/constants/generated/cpi.js +0 -28
- package/dist/shared/common/src/constants/generated/index.d.ts +0 -1
- package/dist/shared/common/src/constants/generated/index.js +0 -17
- package/dist/shared/common/src/constants/index.d.ts +0 -3
- package/dist/shared/common/src/constants/index.js +0 -19
- package/dist/shared/common/src/index.d.ts +0 -4
- package/dist/shared/common/src/index.js +0 -20
- package/dist/shared/common/src/services/baseAccountClient.d.ts +0 -22
- package/dist/shared/common/src/services/baseAccountClient.js +0 -38
- package/dist/shared/common/src/services/baseIxBuilderService.d.ts +0 -27
- package/dist/shared/common/src/services/baseIxBuilderService.js +0 -48
- package/dist/shared/common/src/services/dataCache.d.ts +0 -41
- package/dist/shared/common/src/services/dataCache.js +0 -130
- package/dist/shared/common/src/services/index.d.ts +0 -8
- package/dist/shared/common/src/services/index.js +0 -24
- package/dist/shared/common/src/services/lutManager.d.ts +0 -31
- package/dist/shared/common/src/services/lutManager.js +0 -133
- package/dist/shared/common/src/services/mints/defaults.d.ts +0 -2
- package/dist/shared/common/src/services/mints/defaults.js +0 -152
- package/dist/shared/common/src/services/mints/index.d.ts +0 -4
- package/dist/shared/common/src/services/mints/index.js +0 -20
- package/dist/shared/common/src/services/mints/registry.d.ts +0 -70
- package/dist/shared/common/src/services/mints/registry.js +0 -117
- package/dist/shared/common/src/services/mints/symbols.d.ts +0 -6
- package/dist/shared/common/src/services/mints/symbols.js +0 -13
- package/dist/shared/common/src/services/mints/types.d.ts +0 -30
- package/dist/shared/common/src/services/mints/types.js +0 -2
- package/dist/shared/common/src/services/swap/index.d.ts +0 -4
- package/dist/shared/common/src/services/swap/index.js +0 -20
- package/dist/shared/common/src/services/swap/routableSwapClient.d.ts +0 -36
- package/dist/shared/common/src/services/swap/routableSwapClient.js +0 -2
- package/dist/shared/common/src/services/swap/swapClientBase.d.ts +0 -45
- package/dist/shared/common/src/services/swap/swapClientBase.js +0 -2
- package/dist/shared/common/src/services/swap/swapRouting.d.ts +0 -13
- package/dist/shared/common/src/services/swap/swapRouting.js +0 -28
- package/dist/shared/common/src/services/swap/types.d.ts +0 -77
- package/dist/shared/common/src/services/swap/types.js +0 -2
- package/dist/shared/common/src/services/token/index.d.ts +0 -2
- package/dist/shared/common/src/services/token/index.js +0 -18
- package/dist/shared/common/src/services/token/tokenProtocolClientBase.d.ts +0 -51
- package/dist/shared/common/src/services/token/tokenProtocolClientBase.js +0 -2
- package/dist/shared/common/src/services/token/types.d.ts +0 -19
- package/dist/shared/common/src/services/token/types.js +0 -2
- package/dist/shared/common/src/services/transactionSender.d.ts +0 -24
- package/dist/shared/common/src/services/transactionSender.js +0 -30
- package/dist/shared/common/src/types/cpi.d.ts +0 -34
- package/dist/shared/common/src/types/cpi.js +0 -8
- package/dist/shared/common/src/types/enums.d.ts +0 -59
- package/dist/shared/common/src/types/enums.js +0 -122
- package/dist/shared/common/src/types/general.d.ts +0 -38
- package/dist/shared/common/src/types/general.js +0 -2
- package/dist/shared/common/src/types/index.d.ts +0 -4
- package/dist/shared/common/src/types/index.js +0 -20
- package/dist/shared/common/src/types/solana.d.ts +0 -24
- package/dist/shared/common/src/types/solana.js +0 -2
- package/dist/shared/common/src/utils/accounts/index.d.ts +0 -5
- package/dist/shared/common/src/utils/accounts/index.js +0 -21
- package/dist/shared/common/src/utils/accounts/meta.d.ts +0 -21
- package/dist/shared/common/src/utils/accounts/meta.js +0 -27
- package/dist/shared/common/src/utils/accounts/pda.d.ts +0 -2
- package/dist/shared/common/src/utils/accounts/pda.js +0 -17
- package/dist/shared/common/src/utils/accounts/roles.d.ts +0 -26
- package/dist/shared/common/src/utils/accounts/roles.js +0 -54
- package/dist/shared/common/src/utils/accounts/rpc.d.ts +0 -8
- package/dist/shared/common/src/utils/accounts/rpc.js +0 -30
- package/dist/shared/common/src/utils/accounts/splBalances.d.ts +0 -15
- package/dist/shared/common/src/utils/accounts/splBalances.js +0 -52
- package/dist/shared/common/src/utils/anchor.d.ts +0 -17
- package/dist/shared/common/src/utils/anchor.js +0 -29
- package/dist/shared/common/src/utils/asyncConcurrency.d.ts +0 -5
- package/dist/shared/common/src/utils/asyncConcurrency.js +0 -28
- package/dist/shared/common/src/utils/compat.d.ts +0 -46
- package/dist/shared/common/src/utils/compat.js +0 -72
- package/dist/shared/common/src/utils/cpi/args.d.ts +0 -69
- package/dist/shared/common/src/utils/cpi/args.js +0 -100
- package/dist/shared/common/src/utils/cpi/index.d.ts +0 -2
- package/dist/shared/common/src/utils/cpi/index.js +0 -18
- package/dist/shared/common/src/utils/cpi/refs.d.ts +0 -122
- package/dist/shared/common/src/utils/cpi/refs.js +0 -234
- package/dist/shared/common/src/utils/data.d.ts +0 -20
- package/dist/shared/common/src/utils/data.js +0 -27
- package/dist/shared/common/src/utils/general.d.ts +0 -24
- package/dist/shared/common/src/utils/general.js +0 -95
- package/dist/shared/common/src/utils/index.d.ts +0 -22
- package/dist/shared/common/src/utils/index.js +0 -38
- package/dist/shared/common/src/utils/instruction.d.ts +0 -74
- package/dist/shared/common/src/utils/instruction.js +0 -147
- package/dist/shared/common/src/utils/jito.d.ts +0 -113
- package/dist/shared/common/src/utils/jito.js +0 -178
- package/dist/shared/common/src/utils/json.d.ts +0 -5
- package/dist/shared/common/src/utils/json.js +0 -25
- package/dist/shared/common/src/utils/jsonRpcFetch.d.ts +0 -21
- package/dist/shared/common/src/utils/jsonRpcFetch.js +0 -134
- package/dist/shared/common/src/utils/metadata.d.ts +0 -107
- package/dist/shared/common/src/utils/metadata.js +0 -194
- package/dist/shared/common/src/utils/numbers.d.ts +0 -72
- package/dist/shared/common/src/utils/numbers.js +0 -193
- package/dist/shared/common/src/utils/priorityFee.d.ts +0 -18
- package/dist/shared/common/src/utils/priorityFee.js +0 -63
- package/dist/shared/common/src/utils/retry.d.ts +0 -20
- package/dist/shared/common/src/utils/retry.js +0 -69
- package/dist/shared/common/src/utils/rpc.d.ts +0 -40
- package/dist/shared/common/src/utils/rpc.js +0 -130
- package/dist/shared/common/src/utils/solana.d.ts +0 -23
- package/dist/shared/common/src/utils/solana.js +0 -61
- package/dist/shared/common/src/utils/timeSeries.d.ts +0 -18
- package/dist/shared/common/src/utils/timeSeries.js +0 -40
- package/dist/shared/common/src/utils/token.d.ts +0 -33
- package/dist/shared/common/src/utils/token.js +0 -82
- package/dist/shared/common/src/utils/transaction.d.ts +0 -154
- package/dist/shared/common/src/utils/transaction.js +0 -585
- package/dist/shared/common/src/utils/transactionSplitter.d.ts +0 -85
- package/dist/shared/common/src/utils/transactionSplitter.js +0 -127
- package/dist/shared/common/src/utils/txAccountCoverage.d.ts +0 -49
- package/dist/shared/common/src/utils/txAccountCoverage.js +0 -122
- package/dist/shared/jupiter-helpers/src/api.d.ts +0 -59
- package/dist/shared/jupiter-helpers/src/api.js +0 -130
- package/dist/shared/jupiter-helpers/src/client.d.ts +0 -79
- package/dist/shared/jupiter-helpers/src/client.js +0 -173
- package/dist/shared/jupiter-helpers/src/constants.d.ts +0 -35
- package/dist/shared/jupiter-helpers/src/constants.js +0 -38
- package/dist/shared/jupiter-helpers/src/extract.d.ts +0 -30
- package/dist/shared/jupiter-helpers/src/extract.js +0 -57
- package/dist/shared/jupiter-helpers/src/index.d.ts +0 -5
- package/dist/shared/jupiter-helpers/src/index.js +0 -21
- package/dist/shared/jupiter-helpers/src/routePreInstructions.d.ts +0 -19
- package/dist/shared/jupiter-helpers/src/routePreInstructions.js +0 -61
- package/dist/shared/jupiter-helpers/src/sizeExactInForMinOutput.d.ts +0 -70
- package/dist/shared/jupiter-helpers/src/sizeExactInForMinOutput.js +0 -95
- package/dist/shared/jupiter-helpers/src/types.d.ts +0 -66
- package/dist/shared/jupiter-helpers/src/types.js +0 -2
- package/dist/shared/lending-platforms/src/constants/cache.d.ts +0 -8
- package/dist/shared/lending-platforms/src/constants/cache.js +0 -11
- package/dist/shared/lending-platforms/src/constants/index.d.ts +0 -3
- package/dist/shared/lending-platforms/src/constants/index.js +0 -19
- package/dist/shared/lending-platforms/src/constants/kamino.d.ts +0 -7
- package/dist/shared/lending-platforms/src/constants/kamino.js +0 -83
- package/dist/shared/lending-platforms/src/constants/lendingPosition.d.ts +0 -7
- package/dist/shared/lending-platforms/src/constants/lendingPosition.js +0 -10
- package/dist/shared/lending-platforms/src/data/accounts/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/data/accounts/index.js +0 -18
- package/dist/shared/lending-platforms/src/data/accounts/kamino.d.ts +0 -42
- package/dist/shared/lending-platforms/src/data/accounts/kamino.js +0 -104
- package/dist/shared/lending-platforms/src/data/accounts/lpAccountsBase.d.ts +0 -7
- package/dist/shared/lending-platforms/src/data/accounts/lpAccountsBase.js +0 -9
- package/dist/shared/lending-platforms/src/data/incentive/incentiveBase.d.ts +0 -35
- package/dist/shared/lending-platforms/src/data/incentive/incentiveBase.js +0 -26
- package/dist/shared/lending-platforms/src/data/incentive/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/data/incentive/index.js +0 -18
- package/dist/shared/lending-platforms/src/data/incentive/kamino.d.ts +0 -55
- package/dist/shared/lending-platforms/src/data/incentive/kamino.js +0 -101
- package/dist/shared/lending-platforms/src/data/index.d.ts +0 -6
- package/dist/shared/lending-platforms/src/data/index.js +0 -22
- package/dist/shared/lending-platforms/src/data/instructions/index.d.ts +0 -3
- package/dist/shared/lending-platforms/src/data/instructions/index.js +0 -19
- package/dist/shared/lending-platforms/src/data/instructions/kamino.d.ts +0 -55
- package/dist/shared/lending-platforms/src/data/instructions/kamino.js +0 -630
- package/dist/shared/lending-platforms/src/data/instructions/lpInstructionsBase.d.ts +0 -175
- package/dist/shared/lending-platforms/src/data/instructions/lpInstructionsBase.js +0 -192
- package/dist/shared/lending-platforms/src/data/instructions/types.d.ts +0 -7
- package/dist/shared/lending-platforms/src/data/instructions/types.js +0 -2
- package/dist/shared/lending-platforms/src/data/platform/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/data/platform/index.js +0 -18
- package/dist/shared/lending-platforms/src/data/platform/kamino.d.ts +0 -59
- package/dist/shared/lending-platforms/src/data/platform/kamino.js +0 -206
- package/dist/shared/lending-platforms/src/data/platform/lpDataBase.d.ts +0 -35
- package/dist/shared/lending-platforms/src/data/platform/lpDataBase.js +0 -31
- package/dist/shared/lending-platforms/src/data/reserve/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/data/reserve/index.js +0 -18
- package/dist/shared/lending-platforms/src/data/reserve/kamino.d.ts +0 -45
- package/dist/shared/lending-platforms/src/data/reserve/kamino.js +0 -141
- package/dist/shared/lending-platforms/src/data/reserve/reserveBase.d.ts +0 -114
- package/dist/shared/lending-platforms/src/data/reserve/reserveBase.js +0 -125
- package/dist/shared/lending-platforms/src/data/userPosition/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/data/userPosition/index.js +0 -18
- package/dist/shared/lending-platforms/src/data/userPosition/kamino.d.ts +0 -15
- package/dist/shared/lending-platforms/src/data/userPosition/kamino.js +0 -45
- package/dist/shared/lending-platforms/src/data/userPosition/userPositionBase.d.ts +0 -50
- package/dist/shared/lending-platforms/src/data/userPosition/userPositionBase.js +0 -63
- package/dist/shared/lending-platforms/src/index.d.ts +0 -5
- package/dist/shared/lending-platforms/src/index.js +0 -21
- package/dist/shared/lending-platforms/src/services/client/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/services/client/index.js +0 -18
- package/dist/shared/lending-platforms/src/services/client/kamino.d.ts +0 -53
- package/dist/shared/lending-platforms/src/services/client/kamino.js +0 -142
- package/dist/shared/lending-platforms/src/services/client/lpClientBase.d.ts +0 -66
- package/dist/shared/lending-platforms/src/services/client/lpClientBase.js +0 -19
- package/dist/shared/lending-platforms/src/services/flashLoan/flashLoanBase.d.ts +0 -49
- package/dist/shared/lending-platforms/src/services/flashLoan/flashLoanBase.js +0 -16
- package/dist/shared/lending-platforms/src/services/flashLoan/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/services/flashLoan/index.js +0 -18
- package/dist/shared/lending-platforms/src/services/flashLoan/kamino.d.ts +0 -11
- package/dist/shared/lending-platforms/src/services/flashLoan/kamino.js +0 -85
- package/dist/shared/lending-platforms/src/services/index.d.ts +0 -5
- package/dist/shared/lending-platforms/src/services/index.js +0 -21
- package/dist/shared/lending-platforms/src/services/lendingPosition/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/services/lendingPosition/index.js +0 -18
- package/dist/shared/lending-platforms/src/services/lendingPosition/lendingPositionManager.d.ts +0 -117
- package/dist/shared/lending-platforms/src/services/lendingPosition/lendingPositionManager.js +0 -342
- package/dist/shared/lending-platforms/src/services/lendingPosition/types.d.ts +0 -40
- package/dist/shared/lending-platforms/src/services/lendingPosition/types.js +0 -2
- package/dist/shared/lending-platforms/src/services/leverage/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/services/leverage/index.js +0 -18
- package/dist/shared/lending-platforms/src/services/leverage/leverageService.d.ts +0 -104
- package/dist/shared/lending-platforms/src/services/leverage/leverageService.js +0 -437
- package/dist/shared/lending-platforms/src/services/leverage/types.d.ts +0 -261
- package/dist/shared/lending-platforms/src/services/leverage/types.js +0 -2
- package/dist/shared/lending-platforms/src/services/reservesManager.d.ts +0 -53
- package/dist/shared/lending-platforms/src/services/reservesManager.js +0 -112
- package/dist/shared/lending-platforms/src/types/general.d.ts +0 -37
- package/dist/shared/lending-platforms/src/types/general.js +0 -8
- package/dist/shared/lending-platforms/src/types/index.d.ts +0 -2
- package/dist/shared/lending-platforms/src/types/index.js +0 -18
- package/dist/shared/lending-platforms/src/types/kamino.d.ts +0 -10
- package/dist/shared/lending-platforms/src/types/kamino.js +0 -2
- package/dist/shared/lending-platforms/src/utils/accounts.d.ts +0 -16
- package/dist/shared/lending-platforms/src/utils/accounts.js +0 -36
- package/dist/shared/lending-platforms/src/utils/cache.d.ts +0 -3
- package/dist/shared/lending-platforms/src/utils/cache.js +0 -11
- package/dist/shared/lending-platforms/src/utils/index.d.ts +0 -6
- package/dist/shared/lending-platforms/src/utils/index.js +0 -22
- package/dist/shared/lending-platforms/src/utils/kamino.d.ts +0 -87
- package/dist/shared/lending-platforms/src/utils/kamino.js +0 -190
- package/dist/shared/lending-platforms/src/utils/lendingPlatform.d.ts +0 -6
- package/dist/shared/lending-platforms/src/utils/lendingPlatform.js +0 -16
- package/dist/shared/lending-platforms/src/utils/math.d.ts +0 -47
- package/dist/shared/lending-platforms/src/utils/math.js +0 -123
- package/dist/shared/lending-platforms/src/utils/scope.d.ts +0 -38
- package/dist/shared/lending-platforms/src/utils/scope.js +0 -144
- package/dist/shared/oracle-service/src/constants/index.d.ts +0 -3
- package/dist/shared/oracle-service/src/constants/index.js +0 -19
- package/dist/shared/oracle-service/src/constants/pyth.d.ts +0 -7
- package/dist/shared/oracle-service/src/constants/pyth.js +0 -71
- package/dist/shared/oracle-service/src/constants/splStake.d.ts +0 -2
- package/dist/shared/oracle-service/src/constants/splStake.js +0 -6
- package/dist/shared/oracle-service/src/constants/switchboard.d.ts +0 -7
- package/dist/shared/oracle-service/src/constants/switchboard.js +0 -10
- package/dist/shared/oracle-service/src/feeds/custom.d.ts +0 -30
- package/dist/shared/oracle-service/src/feeds/custom.js +0 -56
- package/dist/shared/oracle-service/src/feeds/jupiter.d.ts +0 -7
- package/dist/shared/oracle-service/src/feeds/jupiter.js +0 -43
- package/dist/shared/oracle-service/src/feeds/priceBase.d.ts +0 -13
- package/dist/shared/oracle-service/src/feeds/priceBase.js +0 -25
- package/dist/shared/oracle-service/src/feeds/pyth.d.ts +0 -8
- package/dist/shared/oracle-service/src/feeds/pyth.js +0 -59
- package/dist/shared/oracle-service/src/feeds/splStake.d.ts +0 -26
- package/dist/shared/oracle-service/src/feeds/splStake.js +0 -99
- package/dist/shared/oracle-service/src/feeds/switchboard.d.ts +0 -6
- package/dist/shared/oracle-service/src/feeds/switchboard.js +0 -11
- package/dist/shared/oracle-service/src/index.d.ts +0 -5
- package/dist/shared/oracle-service/src/index.js +0 -26
- package/dist/shared/oracle-service/src/oracle.d.ts +0 -22
- package/dist/shared/oracle-service/src/oracle.js +0 -104
- package/dist/shared/oracle-service/src/types.d.ts +0 -4
- package/dist/shared/oracle-service/src/types.js +0 -2
- package/dist/shared/oracle-service/src/utils/general.d.ts +0 -20
- package/dist/shared/oracle-service/src/utils/general.js +0 -65
- package/dist/shared/oracle-service/src/utils/index.d.ts +0 -1
- package/dist/shared/oracle-service/src/utils/index.js +0 -17
- package/dist/shared/perena-helpers/src/accounts.d.ts +0 -7
- package/dist/shared/perena-helpers/src/accounts.js +0 -12
- package/dist/shared/perena-helpers/src/client.d.ts +0 -299
- package/dist/shared/perena-helpers/src/client.js +0 -680
- package/dist/shared/perena-helpers/src/constants.d.ts +0 -5
- package/dist/shared/perena-helpers/src/constants.js +0 -8
- package/dist/shared/perena-helpers/src/cpi/burn.d.ts +0 -27
- package/dist/shared/perena-helpers/src/cpi/burn.js +0 -22
- package/dist/shared/perena-helpers/src/cpi/index.d.ts +0 -3
- package/dist/shared/perena-helpers/src/cpi/index.js +0 -19
- package/dist/shared/perena-helpers/src/cpi/mint.d.ts +0 -27
- package/dist/shared/perena-helpers/src/cpi/mint.js +0 -22
- package/dist/shared/perena-helpers/src/cpi/requestUnstake.d.ts +0 -19
- package/dist/shared/perena-helpers/src/cpi/requestUnstake.js +0 -16
- package/dist/shared/perena-helpers/src/index.d.ts +0 -5
- package/dist/shared/perena-helpers/src/index.js +0 -21
- package/dist/shared/perena-helpers/src/utils.d.ts +0 -9
- package/dist/shared/perena-helpers/src/utils.js +0 -54
- package/dist/shared/swap-aggregator/src/aggSwapClient.d.ts +0 -71
- package/dist/shared/swap-aggregator/src/aggSwapClient.js +0 -103
- package/dist/shared/swap-aggregator/src/index.d.ts +0 -1
- package/dist/shared/swap-aggregator/src/index.js +0 -17
- package/docs/launchingToken.md +0 -57
- package/scripts/asyncBurn.ts +0 -155
- package/scripts/burnToken.ts +0 -120
- package/scripts/claimIncentives.ts +0 -125
- package/scripts/closeCpiPlans.ts +0 -113
- package/scripts/collectInterest.ts +0 -194
- package/scripts/collectProtocolFees.ts +0 -144
- package/scripts/computeOptimalAllocations.ts +0 -117
- package/scripts/createToken.ts +0 -100
- package/scripts/createTokenLendingPosition.ts +0 -204
- package/scripts/createYieldingBank.ts +0 -91
- package/scripts/decreaseCarryPositions.ts +0 -359
- package/scripts/depositUnlentCollateral.ts +0 -106
- package/scripts/emergency/deleverageAll.ts +0 -287
- package/scripts/emergency/triggerCircuitBreaker.ts +0 -87
- package/scripts/env.ts +0 -4
- package/scripts/findTxs.ts +0 -169
- package/scripts/increaseCarryPositions.ts +0 -134
- package/scripts/inspect/format.ts +0 -576
- package/scripts/inspect.ts +0 -147
- package/scripts/localUtils.ts +0 -249
- package/scripts/mintToken.ts +0 -126
- package/scripts/processAsyncBurns.ts +0 -89
- package/scripts/rebalanceToken.ts +0 -269
- package/scripts/rebalanceYieldingBank.ts +0 -183
- package/scripts/recollateralizeLoss.ts +0 -79
- package/scripts/refresh.ts +0 -156
- package/scripts/updateFees.ts +0 -486
- package/scripts/updateGeneralLut.ts +0 -36
- package/scripts/updateLendingPositionConfig.ts +0 -172
- package/scripts/updateTokenLuts.ts +0 -36
- package/scripts/updateTokenMetadata.ts +0 -199
- package/scripts/updateYieldingBankConfig.ts +0 -100
- package/scripts/withdrawUnlentCollateral.ts +0 -178
- package/src/client/account.ts +0 -503
- package/src/client/builders/args.ts +0 -381
- package/src/client/builders/asyncBurnBuilder.ts +0 -305
- package/src/client/builders/base.ts +0 -303
- package/src/client/builders/burnTokenBuilder.ts +0 -258
- package/src/client/builders/claimIncentivesBuilder.ts +0 -211
- package/src/client/builders/collectFeesBuilder.ts +0 -52
- package/src/client/builders/collectInterestBuilder.ts +0 -165
- package/src/client/builders/createCpiPlanBuilder.ts +0 -21
- package/src/client/builders/createTokenBuilder.ts +0 -73
- package/src/client/builders/createTokenLendingPositionBuilder.ts +0 -219
- package/src/client/builders/createYieldingBankAllocationBuilder.ts +0 -32
- package/src/client/builders/createYieldingBankBuilder.ts +0 -39
- package/src/client/builders/decreaseCarryPositionBuilder.ts +0 -162
- package/src/client/builders/depositUnlentCollateralBuilder.ts +0 -95
- package/src/client/builders/increaseCarryPositionBuilder.ts +0 -105
- package/src/client/builders/index.ts +0 -37
- package/src/client/builders/mintTokenBuilder.ts +0 -137
- package/src/client/builders/rebalanceTokenBuilder.ts +0 -356
- package/src/client/builders/rebalanceYieldingBankBuilder.ts +0 -109
- package/src/client/builders/recollateralizeLossBuilder.ts +0 -367
- package/src/client/builders/refreshTokenStateBuilder.ts +0 -153
- package/src/client/builders/refreshTokensBuilder.ts +0 -82
- package/src/client/builders/refreshYieldingBankBuilder.ts +0 -42
- package/src/client/builders/resetTokenBurnRateLimitBuilder.ts +0 -21
- package/src/client/builders/setTokenCircuitBreakerBuilder.ts +0 -40
- package/src/client/builders/setYieldingBankCircuitBreakerBuilder.ts +0 -37
- package/src/client/builders/updateLendingPositionConfigBuilder.ts +0 -33
- package/src/client/builders/updateTokenConfigurationBuilder.ts +0 -50
- package/src/client/builders/updateTokenMetadataBuilder.ts +0 -24
- package/src/client/builders/updateYieldingBankConfigBuilder.ts +0 -32
- package/src/client/builders/utils.ts +0 -26
- package/src/client/client.ts +0 -264
- package/src/client/externalLiquidityResolver.ts +0 -54
- package/src/client/index.ts +0 -20
- package/src/client/lendingPlatformClients.ts +0 -50
- package/src/client/pda.ts +0 -102
- package/src/client/plans/collectInterest.ts +0 -207
- package/src/client/plans/decreaseCarryPosition.ts +0 -226
- package/src/client/routes/collectInterest.ts +0 -56
- package/src/client/transaction.ts +0 -106
- package/src/client/types/builders.ts +0 -19
- package/src/client/types/enums.ts +0 -47
- package/src/client/types/general.ts +0 -117
- package/src/client/types/index.ts +0 -6
- package/src/client/types/ix.ts +0 -452
- package/src/client/types/planTypes/collectInterest.ts +0 -97
- package/src/client/types/planTypes/common.ts +0 -31
- package/src/client/types/planTypes/decreaseCarryPosition.ts +0 -134
- package/src/client/types/planTypes/index.ts +0 -3
- package/src/client/types/tx.ts +0 -409
- package/src/constants/configs/allocations.ts +0 -30
- package/src/constants/configs/carryTradePresets.ts +0 -164
- package/src/constants/configs/index.ts +0 -2
- package/src/constants/general.ts +0 -141
- package/src/constants/index.ts +0 -3
- package/src/constants/lycTokenMetadata.ts +0 -52
- package/src/decoders/decodeTransaction.ts +0 -319
- package/src/decoders/discriminators.ts +0 -10
- package/src/decoders/idlAccounts.ts +0 -75
- package/src/decoders/index.ts +0 -15
- package/src/decoders/innerCpis.ts +0 -262
- package/src/decoders/lycInstructionNames.ts +0 -73
- package/src/decoders/programIds.ts +0 -12
- package/src/decoders/solana.ts +0 -25
- package/src/decoders/transactionPayload.ts +0 -41
- package/src/decoders/types.ts +0 -60
- package/src/errors.ts +0 -195
- package/src/idl/long_yield_carry.ts +0 -14648
- package/src/index.ts +0 -10
- package/src/metrics/index.ts +0 -1
- package/src/metrics/protocolMetrics.ts +0 -976
- package/src/models/index.ts +0 -9
- package/src/models/lycToken.ts +0 -380
- package/src/models/yieldingBank.ts +0 -127
- package/src/services/allocation/allocationService.ts +0 -823
- package/src/services/allocation/index.ts +0 -2
- package/src/services/allocation/types.ts +0 -27
- package/src/services/carry/carryAllocationConfig.ts +0 -266
- package/src/services/carry/index.ts +0 -2
- package/src/services/carry/lycLendingPositionManager.ts +0 -167
- package/src/services/index.ts +0 -5
- package/src/services/lendingPosition/index.ts +0 -5
- package/src/services/lendingPosition/lendingPositionService.ts +0 -328
- package/src/services/rebalance/index.ts +0 -2
- package/src/services/rebalance/token/index.ts +0 -1
- package/src/services/rebalance/token/tokenRebalanceService.ts +0 -142
- package/src/services/rebalance/yieldingBank/index.ts +0 -3
- package/src/services/rebalance/yieldingBank/planner.ts +0 -215
- package/src/services/rebalance/yieldingBank/strategy.ts +0 -41
- package/src/services/rebalance/yieldingBank/types.ts +0 -41
- package/src/services/redemption/index.ts +0 -9
- package/src/services/redemption/redemptionService.ts +0 -758
- package/src/types/enriched.ts +0 -187
- package/src/types/index.ts +0 -1
- package/src/utils/cache.ts +0 -12
- package/src/utils/data.ts +0 -65
- package/src/utils/enrichment.ts +0 -330
- package/src/utils/feeDripMetrics.ts +0 -146
- package/src/utils/general.ts +0 -54
- package/src/utils/index.ts +0 -13
- package/src/utils/ix.ts +0 -227
- package/src/utils/lendingPosition.ts +0 -221
- package/src/utils/lookupTables.ts +0 -309
- package/src/utils/lycData.ts +0 -321
- package/src/utils/timelock.ts +0 -63
- package/src/utils/tokenFeeMath.ts +0 -25
- package/src/utils/transactions.ts +0 -109
- package/src/utils/yieldingBank.ts +0 -38
- package/tsconfig.json +0 -11
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Decoder: streamed Solana transaction payloads → normalized LYC user events.
|
|
3
|
-
*
|
|
4
|
-
* Wire shape is validator-style `getTransaction` data wrapped by the API into
|
|
5
|
-
* {@link LycProgramTransactionRecord} when enqueued. Downstream consumers (the
|
|
6
|
-
* indexer Lambda, backfill jobs) validate the envelope with
|
|
7
|
-
* {@link parseLycProgramTransactionRecord} then call
|
|
8
|
-
* {@link decodeLycProgramTransaction} to produce zero or more user-facing
|
|
9
|
-
* {@link LycTransactionEvent}s.
|
|
10
|
-
*
|
|
11
|
-
* The set of indexed instructions is currently `mint_token` and `burn_token`.
|
|
12
|
-
* Both are inlined in this module — if we ever add a third, promote back to a
|
|
13
|
-
* registry/interface pattern.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import { BURN_TOKEN_DISCRIMINATOR, MINT_TOKEN_DISCRIMINATOR } from "./discriminators";
|
|
17
|
-
import { BURN_TOKEN_ACCOUNTS, MINT_TOKEN_ACCOUNTS } from "./idlAccounts";
|
|
18
|
-
import {
|
|
19
|
-
aggregateCollateralTransfers,
|
|
20
|
-
collectSplTransfersTo,
|
|
21
|
-
findInnerInstructionBlock,
|
|
22
|
-
splBurnAmountFromSource,
|
|
23
|
-
splMintToAmountToDest,
|
|
24
|
-
sumSplTransfersFromSource,
|
|
25
|
-
} from "./innerCpis";
|
|
26
|
-
import { LYC_PROGRAM_IDS } from "./programIds";
|
|
27
|
-
import { buildAccountKeys, decodeInstructionData, discriminatorMatches } from "./solana";
|
|
28
|
-
import type { TxMessage, TxMeta } from "./transactionPayload";
|
|
29
|
-
import type { LycProgramTransactionRecord, LycTransactionEvent } from "./types";
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Validate and narrow an arbitrary JSON body (SQS message body / API request)
|
|
33
|
-
* to {@link LycProgramTransactionRecord}. Returns `null` on any shape mismatch.
|
|
34
|
-
*/
|
|
35
|
-
export function parseLycProgramTransactionRecord(
|
|
36
|
-
input: unknown
|
|
37
|
-
): LycProgramTransactionRecord | null {
|
|
38
|
-
if (!input || typeof input !== "object") return null;
|
|
39
|
-
const o = input as Record<string, unknown>;
|
|
40
|
-
if (o.source !== "lyc-program-transaction") return null;
|
|
41
|
-
if (typeof o.signature !== "string" || o.signature.length === 0) return null;
|
|
42
|
-
if (!("payload" in o)) return null;
|
|
43
|
-
|
|
44
|
-
return {
|
|
45
|
-
source: "lyc-program-transaction",
|
|
46
|
-
receivedAt: typeof o.receivedAt === "number" ? o.receivedAt : 0,
|
|
47
|
-
signature: o.signature,
|
|
48
|
-
slot: typeof o.slot === "number" ? o.slot : undefined,
|
|
49
|
-
payload: o.payload,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Stable enum of why a matched-discriminator instruction produced no event.
|
|
55
|
-
* All reasons are CPI-driven; none depend on balance deltas.
|
|
56
|
-
*/
|
|
57
|
-
export type DecoderRejectionReason =
|
|
58
|
-
| "accounts_too_short"
|
|
59
|
-
| "missing_key"
|
|
60
|
-
| "no_inner_instructions_block"
|
|
61
|
-
| "no_token_burn_cpi"
|
|
62
|
-
| "no_token_mint_to_cpi"
|
|
63
|
-
| "no_collateral_out_delta"
|
|
64
|
-
| "no_collateral_in_delta";
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* One reason a tx produced zero events despite looking like something we index.
|
|
68
|
-
*
|
|
69
|
-
* - `payload_unparseable`: the envelope `payload` lacked `meta` / `transaction.message` and
|
|
70
|
-
* we couldn't even enumerate instructions.
|
|
71
|
-
* - `instruction_data_invalid`: an LYC-program instruction's `data` field wasn't valid
|
|
72
|
-
* base58 so we couldn't read its discriminator.
|
|
73
|
-
* - `decoder_rejected`: the discriminator matched a user-facing decoder but a guard rail
|
|
74
|
-
* returned null — `reason` identifies which guard.
|
|
75
|
-
*/
|
|
76
|
-
export type DecodeRejection =
|
|
77
|
-
| { kind: "payload_unparseable" }
|
|
78
|
-
| { kind: "instruction_data_invalid"; instructionIndex: number }
|
|
79
|
-
| {
|
|
80
|
-
kind: "decoder_rejected";
|
|
81
|
-
name: "mint_token" | "burn_token";
|
|
82
|
-
reason: DecoderRejectionReason;
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
export interface DecodeResult {
|
|
86
|
-
events: LycTransactionEvent[];
|
|
87
|
-
/**
|
|
88
|
-
* Non-empty only when something anomalous happened. Consumers that want to
|
|
89
|
-
* distinguish "refresh-only tx, nothing to do" from "tried and bailed" check
|
|
90
|
-
* `rejections.length === 0` for the former and `rejections.length > 0` for
|
|
91
|
-
* the latter.
|
|
92
|
-
*/
|
|
93
|
-
rejections: DecodeRejection[];
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Decode one queued tx into zero or more user-facing events, in top-level
|
|
98
|
-
* instruction order. Silently skips instructions we don't index or whose data
|
|
99
|
-
* cannot be base58-decoded.
|
|
100
|
-
*/
|
|
101
|
-
export function decodeLycProgramTransaction(
|
|
102
|
-
record: LycProgramTransactionRecord
|
|
103
|
-
): LycTransactionEvent[] {
|
|
104
|
-
return decodeLycProgramTransactionWithDiagnostics(record).events;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Same as {@link decodeLycProgramTransaction} but also returns structured
|
|
109
|
-
* rejections for the indexer's CloudWatch log path. Use this when "zero events"
|
|
110
|
-
* isn't enough information — e.g. you need to know whether a burn-shaped tx
|
|
111
|
-
* bailed because its inner-instructions block was missing or because no
|
|
112
|
-
* collateral transfer CPI landed in the user's ATA.
|
|
113
|
-
*/
|
|
114
|
-
export function decodeLycProgramTransactionWithDiagnostics(
|
|
115
|
-
record: LycProgramTransactionRecord
|
|
116
|
-
): DecodeResult {
|
|
117
|
-
const tx = parseRecordPayload(record);
|
|
118
|
-
if (!tx) {
|
|
119
|
-
return { events: [], rejections: [{ kind: "payload_unparseable" }] };
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
const events: LycTransactionEvent[] = [];
|
|
123
|
-
const rejections: DecodeRejection[] = [];
|
|
124
|
-
|
|
125
|
-
for (let i = 0; i < tx.message.instructions.length; i++) {
|
|
126
|
-
const ix = tx.message.instructions[i]!;
|
|
127
|
-
const programId = tx.keys[ix.programIdIndex];
|
|
128
|
-
if (!programId || !LYC_PROGRAM_IDS.has(programId)) continue;
|
|
129
|
-
|
|
130
|
-
let data: Uint8Array;
|
|
131
|
-
try {
|
|
132
|
-
data = decodeInstructionData(ix.data);
|
|
133
|
-
} catch {
|
|
134
|
-
rejections.push({ kind: "instruction_data_invalid", instructionIndex: i });
|
|
135
|
-
continue;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
if (discriminatorMatches(data, MINT_TOKEN_DISCRIMINATOR)) {
|
|
139
|
-
const outcome = decodeMintToken(tx, ix.accounts, i);
|
|
140
|
-
if ("event" in outcome) events.push(outcome.event);
|
|
141
|
-
else
|
|
142
|
-
rejections.push({ kind: "decoder_rejected", name: "mint_token", reason: outcome.reason });
|
|
143
|
-
} else if (discriminatorMatches(data, BURN_TOKEN_DISCRIMINATOR)) {
|
|
144
|
-
const outcome = decodeBurnToken(tx, ix.accounts, i);
|
|
145
|
-
if ("event" in outcome) events.push(outcome.event);
|
|
146
|
-
else
|
|
147
|
-
rejections.push({ kind: "decoder_rejected", name: "burn_token", reason: outcome.reason });
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return { events, rejections };
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Per-tx data shared by the mint/burn decoders and by
|
|
156
|
-
* {@link listLycTopLevelInstructionNames} in the sibling module. Exported so
|
|
157
|
-
* the names helper can reuse the parse work — not part of the public SDK.
|
|
158
|
-
*/
|
|
159
|
-
export interface ParsedTx {
|
|
160
|
-
message: TxMessage;
|
|
161
|
-
meta: TxMeta;
|
|
162
|
-
signature: string;
|
|
163
|
-
slot: number;
|
|
164
|
-
blockTime: number;
|
|
165
|
-
fee: number;
|
|
166
|
-
/** Static + ALT-loaded account keys, in the index order used by instructions. */
|
|
167
|
-
keys: string[];
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
export function parseRecordPayload(record: LycProgramTransactionRecord): ParsedTx | null {
|
|
171
|
-
const payload = record.payload;
|
|
172
|
-
if (!payload || typeof payload !== "object") return null;
|
|
173
|
-
|
|
174
|
-
const p = payload as Record<string, unknown>;
|
|
175
|
-
const meta = p.meta as TxMeta | undefined;
|
|
176
|
-
const transaction = p.transaction as { message?: TxMessage } | undefined;
|
|
177
|
-
const message = transaction?.message;
|
|
178
|
-
if (!meta || !message?.accountKeys || !Array.isArray(message.instructions)) {
|
|
179
|
-
return null;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
const slot =
|
|
183
|
-
typeof record.slot === "number" ? record.slot : typeof p.slot === "number" ? p.slot : 0;
|
|
184
|
-
|
|
185
|
-
return {
|
|
186
|
-
message,
|
|
187
|
-
meta,
|
|
188
|
-
signature: record.signature,
|
|
189
|
-
slot,
|
|
190
|
-
blockTime: typeof p.blockTime === "number" ? p.blockTime : 0,
|
|
191
|
-
fee: typeof meta.fee === "number" ? meta.fee : 0,
|
|
192
|
-
keys: buildAccountKeys(message, meta),
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
type DecoderOutcome = { event: LycTransactionEvent } | { reason: DecoderRejectionReason };
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Authoritative reads: inner CPIs emitted by mint_token.
|
|
200
|
-
* - Token amount: SPL Token `MintTo` CPI whose `accounts[1]` (dest ATA)
|
|
201
|
-
* matches `user_token_account`. Amount is encoded in the ix data as a
|
|
202
|
-
* little-endian u64.
|
|
203
|
-
* - Collateral amount: sum of SPL Token `Transfer` / `TransferChecked`
|
|
204
|
-
* CPIs whose source matches `user_collateral_account`. The collateral
|
|
205
|
-
* mint is known structurally (`collateral_mint`), so we don't need to
|
|
206
|
-
* derive it per-transfer.
|
|
207
|
-
*
|
|
208
|
-
* Account positions are resolved by name from the IDL via
|
|
209
|
-
* {@link MINT_TOKEN_ACCOUNTS} — resilient to account-list reordering, and
|
|
210
|
-
* fail-fast at module load if a required account is renamed or removed.
|
|
211
|
-
*/
|
|
212
|
-
function decodeMintToken(tx: ParsedTx, accounts: number[], ixIndex: number): DecoderOutcome {
|
|
213
|
-
const signerPos = MINT_TOKEN_ACCOUNTS.signer;
|
|
214
|
-
const mintPos = MINT_TOKEN_ACCOUNTS.mint;
|
|
215
|
-
const collateralMintPos = MINT_TOKEN_ACCOUNTS.collateral_mint;
|
|
216
|
-
const userCollateralAtaPos = MINT_TOKEN_ACCOUNTS.user_collateral_account;
|
|
217
|
-
const userTokenAtaPos = MINT_TOKEN_ACCOUNTS.user_token_account;
|
|
218
|
-
|
|
219
|
-
const maxPos = Math.max(
|
|
220
|
-
signerPos,
|
|
221
|
-
mintPos,
|
|
222
|
-
collateralMintPos,
|
|
223
|
-
userCollateralAtaPos,
|
|
224
|
-
userTokenAtaPos
|
|
225
|
-
);
|
|
226
|
-
if (accounts.length <= maxPos) return { reason: "accounts_too_short" };
|
|
227
|
-
|
|
228
|
-
const wallet = tx.keys[accounts[signerPos]];
|
|
229
|
-
const tokenMint = tx.keys[accounts[mintPos]];
|
|
230
|
-
const collateralMint = tx.keys[accounts[collateralMintPos]];
|
|
231
|
-
if (!wallet || !tokenMint || !collateralMint) return { reason: "missing_key" };
|
|
232
|
-
|
|
233
|
-
const block = findInnerInstructionBlock(tx.meta, ixIndex);
|
|
234
|
-
if (!block) return { reason: "no_inner_instructions_block" };
|
|
235
|
-
|
|
236
|
-
const mintedAmount = splMintToAmountToDest(tx.keys, block, accounts[userTokenAtaPos]);
|
|
237
|
-
if (mintedAmount === null) return { reason: "no_token_mint_to_cpi" };
|
|
238
|
-
|
|
239
|
-
const collateralAmount = sumSplTransfersFromSource(
|
|
240
|
-
tx.keys,
|
|
241
|
-
block,
|
|
242
|
-
accounts[userCollateralAtaPos]
|
|
243
|
-
);
|
|
244
|
-
if (collateralAmount <= 0n) return { reason: "no_collateral_in_delta" };
|
|
245
|
-
|
|
246
|
-
return {
|
|
247
|
-
event: {
|
|
248
|
-
signature: tx.signature,
|
|
249
|
-
slot: tx.slot,
|
|
250
|
-
blockTime: tx.blockTime,
|
|
251
|
-
type: "mint",
|
|
252
|
-
wallet,
|
|
253
|
-
tokenMint,
|
|
254
|
-
tokenAmountBaseUnits: mintedAmount.toString(),
|
|
255
|
-
collateralMint,
|
|
256
|
-
collateralAmountBaseUnits: collateralAmount.toString(),
|
|
257
|
-
fee: tx.fee,
|
|
258
|
-
},
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Authoritative reads: inner CPIs emitted by burn_token.
|
|
264
|
-
* - Token amount: SPL Token `Burn` CPI whose `accounts[0]` (source ATA)
|
|
265
|
-
* matches `user_token_account`. Amount is encoded in the ix data as a
|
|
266
|
-
* little-endian u64, not derived from a balance delta.
|
|
267
|
-
* - Collateral: SPL Token `Transfer` / `TransferChecked` CPIs whose
|
|
268
|
-
* destination matches `user_collateral_account`. Amounts are summed per
|
|
269
|
-
* mint; the dominant mint wins — in practice the Rust program emits a
|
|
270
|
-
* single transfer with a single mint, so the aggregation step is defensive
|
|
271
|
-
* (see `rust/.../burn_token.rs`).
|
|
272
|
-
*
|
|
273
|
-
* CPI-authoritative decoding does not depend on whether the user's collateral
|
|
274
|
-
* ATA persists across the tx — created-and-closed-same-tx ATAs, pre-existing
|
|
275
|
-
* ATAs closed at the end, and ATAs re-funded inside the same tx all decode
|
|
276
|
-
* identically because the CPIs themselves never disappear.
|
|
277
|
-
*
|
|
278
|
-
* Account positions are resolved by name from the IDL via
|
|
279
|
-
* {@link BURN_TOKEN_ACCOUNTS} — resilient to account-list reordering, and
|
|
280
|
-
* fail-fast at module load if a required account is renamed or removed.
|
|
281
|
-
*/
|
|
282
|
-
function decodeBurnToken(tx: ParsedTx, accounts: number[], ixIndex: number): DecoderOutcome {
|
|
283
|
-
const signerPos = BURN_TOKEN_ACCOUNTS.signer;
|
|
284
|
-
const mintPos = BURN_TOKEN_ACCOUNTS.mint;
|
|
285
|
-
const userTokenAtaPos = BURN_TOKEN_ACCOUNTS.user_token_account;
|
|
286
|
-
const userCollateralAtaPos = BURN_TOKEN_ACCOUNTS.user_collateral_account;
|
|
287
|
-
|
|
288
|
-
const maxPos = Math.max(signerPos, mintPos, userTokenAtaPos, userCollateralAtaPos);
|
|
289
|
-
if (accounts.length <= maxPos) return { reason: "accounts_too_short" };
|
|
290
|
-
|
|
291
|
-
const wallet = tx.keys[accounts[signerPos]];
|
|
292
|
-
const tokenMint = tx.keys[accounts[mintPos]];
|
|
293
|
-
if (!wallet || !tokenMint) return { reason: "missing_key" };
|
|
294
|
-
|
|
295
|
-
const block = findInnerInstructionBlock(tx.meta, ixIndex);
|
|
296
|
-
if (!block) return { reason: "no_inner_instructions_block" };
|
|
297
|
-
|
|
298
|
-
const burnedAmount = splBurnAmountFromSource(tx.keys, block, accounts[userTokenAtaPos]);
|
|
299
|
-
if (burnedAmount === null) return { reason: "no_token_burn_cpi" };
|
|
300
|
-
|
|
301
|
-
const transfers = collectSplTransfersTo(tx.keys, block, accounts[userCollateralAtaPos]);
|
|
302
|
-
const collateral = aggregateCollateralTransfers(tx.meta, transfers);
|
|
303
|
-
if (!collateral) return { reason: "no_collateral_out_delta" };
|
|
304
|
-
|
|
305
|
-
return {
|
|
306
|
-
event: {
|
|
307
|
-
signature: tx.signature,
|
|
308
|
-
slot: tx.slot,
|
|
309
|
-
blockTime: tx.blockTime,
|
|
310
|
-
type: "burn",
|
|
311
|
-
wallet,
|
|
312
|
-
tokenMint,
|
|
313
|
-
tokenAmountBaseUnits: burnedAmount.toString(),
|
|
314
|
-
collateralMint: collateral.collateralMint,
|
|
315
|
-
collateralAmountBaseUnits: collateral.amount.toString(),
|
|
316
|
-
fee: tx.fee,
|
|
317
|
-
},
|
|
318
|
-
};
|
|
319
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Anchor 8-byte instruction discriminators (see `idl/long_yield_carry.ts`).
|
|
3
|
-
* Add new entries here when supporting additional indexed instructions.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
/** `burn_token` */
|
|
7
|
-
export const BURN_TOKEN_DISCRIMINATOR = Uint8Array.from([185, 165, 216, 246, 144, 31, 70, 74]);
|
|
8
|
-
|
|
9
|
-
/** `mint_token` */
|
|
10
|
-
export const MINT_TOKEN_DISCRIMINATOR = Uint8Array.from([172, 137, 183, 14, 207, 110, 234, 56]);
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IDL-backed account resolution for the LYC decoder.
|
|
3
|
-
*
|
|
4
|
-
* The decoder reads specific accounts (wallet, mint, collateral mint, user
|
|
5
|
-
* ATAs) out of each indexed instruction's account list. Rather than hardcoding
|
|
6
|
-
* positional indices — which silently break if the on-chain
|
|
7
|
-
* `#[derive(Accounts)]` struct is ever reordered — we resolve positions by
|
|
8
|
-
* account name off the SDK's shipped IDL at module load.
|
|
9
|
-
*
|
|
10
|
-
* Guarantees:
|
|
11
|
-
* - **Resilient to reordering.** If the Rust program reorders accounts, the
|
|
12
|
-
* regenerated IDL updates the name→index map and the decoder follows.
|
|
13
|
-
* - **Fail-fast on rename/removal.** If an account we depend on is renamed
|
|
14
|
-
* or removed, this module throws at import time — the SDK fails to load
|
|
15
|
-
* instead of producing mislabeled events.
|
|
16
|
-
* - **Minimal surface.** Only pins the accounts the decoder actually reads
|
|
17
|
-
* (`signer`, `mint`, `collateral_mint`, `user_token_account`,
|
|
18
|
-
* `user_collateral_account`). Unused accounts can be renamed freely.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
import { IDL } from "../idl/long_yield_carry";
|
|
22
|
-
|
|
23
|
-
const MINT_TOKEN_REQUIRED_ACCOUNT_NAMES = [
|
|
24
|
-
"signer",
|
|
25
|
-
"mint",
|
|
26
|
-
"collateral_mint",
|
|
27
|
-
"user_collateral_account",
|
|
28
|
-
"user_token_account",
|
|
29
|
-
] as const;
|
|
30
|
-
|
|
31
|
-
const BURN_TOKEN_REQUIRED_ACCOUNT_NAMES = [
|
|
32
|
-
"signer",
|
|
33
|
-
"mint",
|
|
34
|
-
"user_token_account",
|
|
35
|
-
"user_collateral_account",
|
|
36
|
-
] as const;
|
|
37
|
-
|
|
38
|
-
type MintTokenAccountName = (typeof MINT_TOKEN_REQUIRED_ACCOUNT_NAMES)[number];
|
|
39
|
-
type BurnTokenAccountName = (typeof BURN_TOKEN_REQUIRED_ACCOUNT_NAMES)[number];
|
|
40
|
-
|
|
41
|
-
function buildAccountIndexMap<const T extends readonly string[]>(
|
|
42
|
-
instructionName: string,
|
|
43
|
-
requiredNames: T
|
|
44
|
-
): Readonly<Record<T[number], number>> {
|
|
45
|
-
const ix = IDL.instructions.find((entry) => entry.name === instructionName);
|
|
46
|
-
if (!ix) {
|
|
47
|
-
throw new Error(`IDL account resolver: instruction "${instructionName}" not found`);
|
|
48
|
-
}
|
|
49
|
-
const map: Record<string, number> = {};
|
|
50
|
-
for (const name of requiredNames) {
|
|
51
|
-
const idx = ix.accounts.findIndex((a) => a.name === name);
|
|
52
|
-
if (idx < 0) {
|
|
53
|
-
throw new Error(
|
|
54
|
-
`IDL account resolver: instruction "${instructionName}" is missing account "${name}"`
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
map[name] = idx;
|
|
58
|
-
}
|
|
59
|
-
return Object.freeze(map) as Readonly<Record<T[number], number>>;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/** Name→index map for the accounts list of `mint_token`. */
|
|
63
|
-
export const MINT_TOKEN_ACCOUNTS = buildAccountIndexMap(
|
|
64
|
-
"mint_token",
|
|
65
|
-
MINT_TOKEN_REQUIRED_ACCOUNT_NAMES
|
|
66
|
-
);
|
|
67
|
-
|
|
68
|
-
/** Name→index map for the accounts list of `burn_token`. */
|
|
69
|
-
export const BURN_TOKEN_ACCOUNTS = buildAccountIndexMap(
|
|
70
|
-
"burn_token",
|
|
71
|
-
BURN_TOKEN_REQUIRED_ACCOUNT_NAMES
|
|
72
|
-
);
|
|
73
|
-
|
|
74
|
-
export { MINT_TOKEN_REQUIRED_ACCOUNT_NAMES, BURN_TOKEN_REQUIRED_ACCOUNT_NAMES };
|
|
75
|
-
export type { MintTokenAccountName, BurnTokenAccountName };
|
package/src/decoders/index.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export type { LycProgramTransactionRecord, LycTransactionEvent, LycTransactionType } from "./types";
|
|
2
|
-
export {
|
|
3
|
-
decodeLycProgramTransaction,
|
|
4
|
-
decodeLycProgramTransactionWithDiagnostics,
|
|
5
|
-
parseLycProgramTransactionRecord,
|
|
6
|
-
} from "./decodeTransaction";
|
|
7
|
-
export type { DecodeRejection, DecodeResult, DecoderRejectionReason } from "./decodeTransaction";
|
|
8
|
-
export { listLycTopLevelInstructionNames } from "./lycInstructionNames";
|
|
9
|
-
export {
|
|
10
|
-
BURN_TOKEN_ACCOUNTS,
|
|
11
|
-
BURN_TOKEN_REQUIRED_ACCOUNT_NAMES,
|
|
12
|
-
MINT_TOKEN_ACCOUNTS,
|
|
13
|
-
MINT_TOKEN_REQUIRED_ACCOUNT_NAMES,
|
|
14
|
-
} from "./idlAccounts";
|
|
15
|
-
export type { BurnTokenAccountName, MintTokenAccountName } from "./idlAccounts";
|
|
@@ -1,262 +0,0 @@
|
|
|
1
|
-
import bs58 from "bs58";
|
|
2
|
-
import { TOKEN_PROGRAM_ADDRESS, TokenInstruction } from "@solana-program/token";
|
|
3
|
-
import { TOKEN_2022_PROGRAM_ADDRESS } from "@solana-program/token-2022";
|
|
4
|
-
|
|
5
|
-
import type {
|
|
6
|
-
CompiledInstruction,
|
|
7
|
-
InnerInstructionBlock,
|
|
8
|
-
TokenBalanceRow,
|
|
9
|
-
TxMeta,
|
|
10
|
-
} from "./transactionPayload";
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Inner-instruction (CPI) scanning primitives for the decoder.
|
|
14
|
-
*
|
|
15
|
-
* The decoder reads LYC user events off the on-chain CPIs the program emits,
|
|
16
|
-
* not off net balance deltas. A `burn_token` top-level ix is decoded by finding
|
|
17
|
-
* the SPL Token `Burn` CPI (for the token amount) and the SPL Token
|
|
18
|
-
* `Transfer` / `TransferChecked` CPIs to the user's collateral ATA (for the
|
|
19
|
-
* collateral amount + mint) inside the burn ix's inner-instructions block.
|
|
20
|
-
*
|
|
21
|
-
* Reading CPIs is robust to ATA lifecycle quirks (created + closed in the same
|
|
22
|
-
* tx, wrap + unwrap side effects, etc.) because the CPIs are the actions that
|
|
23
|
-
* actually happened — balance rows are just their net effect and can be hidden
|
|
24
|
-
* or confounded by other same-tx ixs.
|
|
25
|
-
*
|
|
26
|
-
* Program IDs come from {@link TOKEN_PROGRAM_ADDRESS} / {@link TOKEN_2022_PROGRAM_ADDRESS}
|
|
27
|
-
* (kit-aligned `@solana-program/*` clients). Instruction tags use {@link TokenInstruction}
|
|
28
|
-
* — Token-2022 shares the same numeric tags for Transfer / TransferChecked / MintTo / Burn.
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
const SPL_TOKEN_PROGRAM_IDS = new Set<string>([TOKEN_PROGRAM_ADDRESS, TOKEN_2022_PROGRAM_ADDRESS]);
|
|
32
|
-
|
|
33
|
-
interface ParsedSplIx {
|
|
34
|
-
tag: number;
|
|
35
|
-
amount: bigint;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Decode an SPL Token ix and extract its tag + u64 amount, if the tag is one
|
|
40
|
-
* we care about (Transfer, TransferChecked, MintTo, Burn). Returns null for
|
|
41
|
-
* any other variant (approve, close, sync native, etc.) or for malformed data.
|
|
42
|
-
*
|
|
43
|
-
* Layout (all little-endian):
|
|
44
|
-
* - Transfer: `[3, amount:u64]` (9 bytes)
|
|
45
|
-
* - MintTo: `[7, amount:u64]` (9 bytes)
|
|
46
|
-
* - Burn: `[8, amount:u64]` (9 bytes)
|
|
47
|
-
* - TransferChecked: `[12, amount:u64, decimals:u8]` (10 bytes)
|
|
48
|
-
*/
|
|
49
|
-
function parseSplAmountIx(ix: CompiledInstruction): ParsedSplIx | null {
|
|
50
|
-
let bytes: Uint8Array;
|
|
51
|
-
try {
|
|
52
|
-
bytes = bs58.decode(ix.data);
|
|
53
|
-
} catch {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
if (bytes.length < 9) return null;
|
|
57
|
-
const tag = bytes[0];
|
|
58
|
-
if (
|
|
59
|
-
tag !== TokenInstruction.Transfer &&
|
|
60
|
-
tag !== TokenInstruction.TransferChecked &&
|
|
61
|
-
tag !== TokenInstruction.MintTo &&
|
|
62
|
-
tag !== TokenInstruction.Burn
|
|
63
|
-
) {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
let amount = 0n;
|
|
67
|
-
for (let i = 0; i < 8; i++) {
|
|
68
|
-
amount |= BigInt(bytes[1 + i]) << BigInt(i * 8);
|
|
69
|
-
}
|
|
70
|
-
return { tag, amount };
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/** Resolve the inner-instructions block for a given top-level instruction. */
|
|
74
|
-
export function findInnerInstructionBlock(
|
|
75
|
-
meta: TxMeta,
|
|
76
|
-
topLevelIndex: number
|
|
77
|
-
): InnerInstructionBlock | undefined {
|
|
78
|
-
return meta.innerInstructions?.find((b) => b.index === topLevelIndex);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Find the SPL Token `Burn` CPI whose source token account matches
|
|
83
|
-
* `sourceAtaIndex` and return its amount. Tx-level account indexes are shared
|
|
84
|
-
* between outer and inner instructions, so callers resolve the source by
|
|
85
|
-
* outer IDL-named account (e.g. `burn_token.user_token_account`) and we match
|
|
86
|
-
* against `burn.accounts[0]` here.
|
|
87
|
-
*
|
|
88
|
-
* `Burn` account layout: `[source_ata, mint, authority, ...signers]`.
|
|
89
|
-
*/
|
|
90
|
-
export function splBurnAmountFromSource(
|
|
91
|
-
keys: string[],
|
|
92
|
-
block: InnerInstructionBlock,
|
|
93
|
-
sourceAtaIndex: number
|
|
94
|
-
): bigint | null {
|
|
95
|
-
for (const ix of block.instructions) {
|
|
96
|
-
if (!SPL_TOKEN_PROGRAM_IDS.has(keys[ix.programIdIndex] ?? "")) continue;
|
|
97
|
-
if (ix.accounts.length < 3 || ix.accounts[0] !== sourceAtaIndex) continue;
|
|
98
|
-
const parsed = parseSplAmountIx(ix);
|
|
99
|
-
if (parsed?.tag !== TokenInstruction.Burn) continue;
|
|
100
|
-
if (parsed.amount <= 0n) continue;
|
|
101
|
-
return parsed.amount;
|
|
102
|
-
}
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Find the SPL Token `MintTo` CPI whose destination ATA matches `destAtaIndex`
|
|
108
|
-
* and return its amount. The mint slot (`MintTo.accounts[0]`) is not checked:
|
|
109
|
-
* an ATA has a fixed mint, so a MintTo landing in the right ATA cannot be for
|
|
110
|
-
* any other mint — the on-chain SPL program rejects mismatches.
|
|
111
|
-
*
|
|
112
|
-
* `MintTo` account layout: `[mint, dest_ata, authority, ...signers]`.
|
|
113
|
-
*/
|
|
114
|
-
export function splMintToAmountToDest(
|
|
115
|
-
keys: string[],
|
|
116
|
-
block: InnerInstructionBlock,
|
|
117
|
-
destAtaIndex: number
|
|
118
|
-
): bigint | null {
|
|
119
|
-
for (const ix of block.instructions) {
|
|
120
|
-
if (!SPL_TOKEN_PROGRAM_IDS.has(keys[ix.programIdIndex] ?? "")) continue;
|
|
121
|
-
if (ix.accounts.length < 3 || ix.accounts[1] !== destAtaIndex) continue;
|
|
122
|
-
const parsed = parseSplAmountIx(ix);
|
|
123
|
-
if (parsed?.tag !== TokenInstruction.MintTo) continue;
|
|
124
|
-
if (parsed.amount <= 0n) continue;
|
|
125
|
-
return parsed.amount;
|
|
126
|
-
}
|
|
127
|
-
return null;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
interface SplTransferSummary {
|
|
131
|
-
sourceIndex: number;
|
|
132
|
-
destIndex: number;
|
|
133
|
-
amount: bigint;
|
|
134
|
-
/**
|
|
135
|
-
* For `TransferChecked` the mint sits in the ix's `accounts[1]`, so we can
|
|
136
|
-
* pin it down without consulting the balance-row table. Plain `Transfer`
|
|
137
|
-
* leaves this undefined — callers fall back to {@link mintForAccountIndex}.
|
|
138
|
-
*/
|
|
139
|
-
explicitMint: string | undefined;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function extractTransfer(keys: string[], ix: CompiledInstruction): SplTransferSummary | null {
|
|
143
|
-
if (!SPL_TOKEN_PROGRAM_IDS.has(keys[ix.programIdIndex] ?? "")) return null;
|
|
144
|
-
const parsed = parseSplAmountIx(ix);
|
|
145
|
-
if (!parsed) return null;
|
|
146
|
-
if (parsed.amount <= 0n) return null;
|
|
147
|
-
|
|
148
|
-
if (parsed.tag === TokenInstruction.Transfer && ix.accounts.length >= 3) {
|
|
149
|
-
return {
|
|
150
|
-
sourceIndex: ix.accounts[0],
|
|
151
|
-
destIndex: ix.accounts[1],
|
|
152
|
-
amount: parsed.amount,
|
|
153
|
-
explicitMint: undefined,
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
if (parsed.tag === TokenInstruction.TransferChecked && ix.accounts.length >= 4) {
|
|
157
|
-
return {
|
|
158
|
-
sourceIndex: ix.accounts[0],
|
|
159
|
-
destIndex: ix.accounts[2],
|
|
160
|
-
amount: parsed.amount,
|
|
161
|
-
explicitMint: keys[ix.accounts[1]] ?? undefined,
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Collect every SPL Token `Transfer` / `TransferChecked` CPI in the given inner
|
|
169
|
-
* block whose destination matches `destAtaIndex`. Multiple transfers (e.g. fees
|
|
170
|
-
* split across two CPIs, managed-unwind returning partial then final amounts)
|
|
171
|
-
* are returned as-is so callers can aggregate per mint.
|
|
172
|
-
*/
|
|
173
|
-
export function collectSplTransfersTo(
|
|
174
|
-
keys: string[],
|
|
175
|
-
block: InnerInstructionBlock,
|
|
176
|
-
destAtaIndex: number
|
|
177
|
-
): SplTransferSummary[] {
|
|
178
|
-
const out: SplTransferSummary[] = [];
|
|
179
|
-
for (const ix of block.instructions) {
|
|
180
|
-
const summary = extractTransfer(keys, ix);
|
|
181
|
-
if (summary && summary.destIndex === destAtaIndex) {
|
|
182
|
-
out.push(summary);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
return out;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Sum the amounts of every SPL Token `Transfer` / `TransferChecked` CPI in the
|
|
190
|
-
* given inner block whose source matches `sourceAtaIndex`. Returns 0n if none.
|
|
191
|
-
*
|
|
192
|
-
* Used by `decodeMintToken` to total the collateral moved out of the user's
|
|
193
|
-
* collateral ATA. The collateral mint is known structurally from the IDL
|
|
194
|
-
* (`mint_token.collateral_mint`), so we don't need to track per-transfer mints.
|
|
195
|
-
*/
|
|
196
|
-
export function sumSplTransfersFromSource(
|
|
197
|
-
keys: string[],
|
|
198
|
-
block: InnerInstructionBlock,
|
|
199
|
-
sourceAtaIndex: number
|
|
200
|
-
): bigint {
|
|
201
|
-
let total = 0n;
|
|
202
|
-
for (const ix of block.instructions) {
|
|
203
|
-
const summary = extractTransfer(keys, ix);
|
|
204
|
-
if (summary && summary.sourceIndex === sourceAtaIndex) {
|
|
205
|
-
total += summary.amount;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return total;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Look up the mint a token account was holding by finding any row in pre/post
|
|
213
|
-
* balances with the matching `accountIndex`. Used when a plain `Transfer` CPI
|
|
214
|
-
* doesn't carry the mint in-line — we read it off the counterparty's row.
|
|
215
|
-
*/
|
|
216
|
-
export function mintForAccountIndex(
|
|
217
|
-
pre: TokenBalanceRow[] | undefined,
|
|
218
|
-
post: TokenBalanceRow[] | undefined,
|
|
219
|
-
accountIndex: number
|
|
220
|
-
): string | null {
|
|
221
|
-
for (const row of pre ?? []) {
|
|
222
|
-
if (row.accountIndex === accountIndex) return row.mint;
|
|
223
|
-
}
|
|
224
|
-
for (const row of post ?? []) {
|
|
225
|
-
if (row.accountIndex === accountIndex) return row.mint;
|
|
226
|
-
}
|
|
227
|
-
return null;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Given the inner-instruction transfers that delivered collateral to the user's
|
|
232
|
-
* collateral ATA, resolve (mint, amount) per mint and return the largest.
|
|
233
|
-
*
|
|
234
|
-
* Multi-mint returns (dust + primary) are possible in managed-unwind paths; we
|
|
235
|
-
* pick the dominant mint rather than summing across mints so the event's
|
|
236
|
-
* `collateralMint` remains a single string that matches the user's intent.
|
|
237
|
-
*/
|
|
238
|
-
export function aggregateCollateralTransfers(
|
|
239
|
-
meta: TxMeta,
|
|
240
|
-
transfers: SplTransferSummary[]
|
|
241
|
-
): { collateralMint: string; amount: bigint } | null {
|
|
242
|
-
const totals = new Map<string, bigint>();
|
|
243
|
-
for (const t of transfers) {
|
|
244
|
-
const mint =
|
|
245
|
-
t.explicitMint ??
|
|
246
|
-
mintForAccountIndex(meta.preTokenBalances, meta.postTokenBalances, t.sourceIndex) ??
|
|
247
|
-
mintForAccountIndex(meta.preTokenBalances, meta.postTokenBalances, t.destIndex);
|
|
248
|
-
if (!mint) continue;
|
|
249
|
-
totals.set(mint, (totals.get(mint) ?? 0n) + t.amount);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
let bestMint: string | null = null;
|
|
253
|
-
let bestAmt = 0n;
|
|
254
|
-
for (const [mint, amt] of totals) {
|
|
255
|
-
if (amt > bestAmt) {
|
|
256
|
-
bestAmt = amt;
|
|
257
|
-
bestMint = mint;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
if (bestMint === null || bestAmt <= 0n) return null;
|
|
261
|
-
return { collateralMint: bestMint, amount: bestAmt };
|
|
262
|
-
}
|