@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.
Files changed (717) hide show
  1. package/.env.example +11 -0
  2. package/README.md +207 -0
  3. package/dist/sdks/long-yield-carry/scripts/asyncBurn.d.ts +1 -0
  4. package/dist/sdks/long-yield-carry/scripts/asyncBurn.js +117 -0
  5. package/dist/sdks/long-yield-carry/scripts/burnToken.d.ts +1 -0
  6. package/dist/sdks/long-yield-carry/scripts/burnToken.js +98 -0
  7. package/dist/sdks/long-yield-carry/scripts/claimIncentives.d.ts +1 -0
  8. package/dist/sdks/long-yield-carry/scripts/claimIncentives.js +108 -0
  9. package/dist/sdks/long-yield-carry/scripts/closeCpiPlans.d.ts +1 -0
  10. package/dist/sdks/long-yield-carry/scripts/closeCpiPlans.js +93 -0
  11. package/dist/sdks/long-yield-carry/scripts/collectInterest.d.ts +1 -0
  12. package/dist/sdks/long-yield-carry/scripts/collectInterest.js +164 -0
  13. package/dist/sdks/long-yield-carry/scripts/collectProtocolFees.d.ts +1 -0
  14. package/dist/sdks/long-yield-carry/scripts/collectProtocolFees.js +120 -0
  15. package/dist/sdks/long-yield-carry/scripts/computeOptimalAllocations.d.ts +1 -0
  16. package/dist/sdks/long-yield-carry/scripts/computeOptimalAllocations.js +84 -0
  17. package/dist/sdks/long-yield-carry/scripts/createToken.d.ts +1 -0
  18. package/dist/sdks/long-yield-carry/scripts/createToken.js +76 -0
  19. package/dist/sdks/long-yield-carry/scripts/createTokenLendingPosition.d.ts +1 -0
  20. package/dist/sdks/long-yield-carry/scripts/createTokenLendingPosition.js +157 -0
  21. package/dist/sdks/long-yield-carry/scripts/createYieldingBank.d.ts +1 -0
  22. package/dist/sdks/long-yield-carry/scripts/createYieldingBank.js +69 -0
  23. package/dist/sdks/long-yield-carry/scripts/decreaseCarryPositions.d.ts +1 -0
  24. package/dist/sdks/long-yield-carry/scripts/decreaseCarryPositions.js +247 -0
  25. package/dist/sdks/long-yield-carry/scripts/depositUnlentCollateral.d.ts +1 -0
  26. package/dist/sdks/long-yield-carry/scripts/depositUnlentCollateral.js +90 -0
  27. package/dist/sdks/long-yield-carry/scripts/emergency/deleverageAll.d.ts +1 -0
  28. package/dist/sdks/long-yield-carry/scripts/emergency/deleverageAll.js +202 -0
  29. package/dist/sdks/long-yield-carry/scripts/emergency/triggerCircuitBreaker.d.ts +1 -0
  30. package/dist/sdks/long-yield-carry/scripts/emergency/triggerCircuitBreaker.js +68 -0
  31. package/dist/sdks/long-yield-carry/scripts/env.d.ts +1 -0
  32. package/dist/sdks/long-yield-carry/scripts/env.js +8 -0
  33. package/dist/sdks/long-yield-carry/scripts/findTxs.d.ts +1 -0
  34. package/dist/sdks/long-yield-carry/scripts/findTxs.js +143 -0
  35. package/dist/sdks/long-yield-carry/scripts/increaseCarryPositions.d.ts +1 -0
  36. package/dist/sdks/long-yield-carry/scripts/increaseCarryPositions.js +112 -0
  37. package/dist/sdks/long-yield-carry/scripts/inspect/format.d.ts +13 -0
  38. package/dist/sdks/long-yield-carry/scripts/inspect/format.js +363 -0
  39. package/dist/sdks/long-yield-carry/scripts/inspect.d.ts +1 -0
  40. package/dist/sdks/long-yield-carry/scripts/inspect.js +108 -0
  41. package/dist/sdks/long-yield-carry/scripts/localUtils.d.ts +53 -0
  42. package/dist/sdks/long-yield-carry/scripts/localUtils.js +191 -0
  43. package/dist/sdks/long-yield-carry/scripts/mintToken.d.ts +1 -0
  44. package/dist/sdks/long-yield-carry/scripts/mintToken.js +103 -0
  45. package/dist/sdks/long-yield-carry/scripts/processAsyncBurns.d.ts +1 -0
  46. package/dist/sdks/long-yield-carry/scripts/processAsyncBurns.js +76 -0
  47. package/dist/sdks/long-yield-carry/scripts/rebalanceToken.d.ts +1 -0
  48. package/dist/sdks/long-yield-carry/scripts/rebalanceToken.js +210 -0
  49. package/dist/sdks/long-yield-carry/scripts/rebalanceYieldingBank.d.ts +1 -0
  50. package/dist/sdks/long-yield-carry/scripts/rebalanceYieldingBank.js +149 -0
  51. package/dist/sdks/long-yield-carry/scripts/recollateralizeLoss.d.ts +1 -0
  52. package/dist/sdks/long-yield-carry/scripts/recollateralizeLoss.js +64 -0
  53. package/dist/sdks/long-yield-carry/scripts/refresh.d.ts +1 -0
  54. package/dist/sdks/long-yield-carry/scripts/refresh.js +101 -0
  55. package/dist/sdks/long-yield-carry/scripts/updateFees.d.ts +1 -0
  56. package/dist/sdks/long-yield-carry/scripts/updateFees.js +369 -0
  57. package/dist/sdks/long-yield-carry/scripts/updateGeneralLut.d.ts +1 -0
  58. package/dist/sdks/long-yield-carry/scripts/updateGeneralLut.js +27 -0
  59. package/dist/sdks/long-yield-carry/scripts/updateLendingPositionConfig.d.ts +1 -0
  60. package/dist/sdks/long-yield-carry/scripts/updateLendingPositionConfig.js +127 -0
  61. package/dist/sdks/long-yield-carry/scripts/updateTokenLuts.d.ts +1 -0
  62. package/dist/sdks/long-yield-carry/scripts/updateTokenLuts.js +27 -0
  63. package/dist/sdks/long-yield-carry/scripts/updateTokenMetadata.d.ts +1 -0
  64. package/dist/sdks/long-yield-carry/scripts/updateTokenMetadata.js +194 -0
  65. package/dist/sdks/long-yield-carry/scripts/updateYieldingBankConfig.d.ts +1 -0
  66. package/dist/sdks/long-yield-carry/scripts/updateYieldingBankConfig.js +84 -0
  67. package/dist/sdks/long-yield-carry/scripts/withdrawUnlentCollateral.d.ts +1 -0
  68. package/dist/sdks/long-yield-carry/scripts/withdrawUnlentCollateral.js +140 -0
  69. package/dist/sdks/long-yield-carry/src/client/account.d.ts +152 -0
  70. package/dist/sdks/long-yield-carry/src/client/account.js +349 -0
  71. package/dist/sdks/long-yield-carry/src/client/builders/args.d.ts +299 -0
  72. package/dist/sdks/long-yield-carry/src/client/builders/args.js +2 -0
  73. package/dist/sdks/long-yield-carry/src/client/builders/asyncBurnBuilder.d.ts +20 -0
  74. package/dist/sdks/long-yield-carry/src/client/builders/asyncBurnBuilder.js +212 -0
  75. package/dist/sdks/long-yield-carry/src/client/builders/base.d.ts +77 -0
  76. package/dist/sdks/long-yield-carry/src/client/builders/base.js +191 -0
  77. package/dist/sdks/long-yield-carry/src/client/builders/burnTokenBuilder.d.ts +18 -0
  78. package/dist/sdks/long-yield-carry/src/client/builders/burnTokenBuilder.js +165 -0
  79. package/dist/sdks/long-yield-carry/src/client/builders/claimIncentivesBuilder.d.ts +9 -0
  80. package/dist/sdks/long-yield-carry/src/client/builders/claimIncentivesBuilder.js +135 -0
  81. package/dist/sdks/long-yield-carry/src/client/builders/collectFeesBuilder.d.ts +14 -0
  82. package/dist/sdks/long-yield-carry/src/client/builders/collectFeesBuilder.js +50 -0
  83. package/dist/sdks/long-yield-carry/src/client/builders/collectInterestBuilder.d.ts +8 -0
  84. package/dist/sdks/long-yield-carry/src/client/builders/collectInterestBuilder.js +86 -0
  85. package/dist/sdks/long-yield-carry/src/client/builders/createCpiPlanBuilder.d.ts +6 -0
  86. package/dist/sdks/long-yield-carry/src/client/builders/createCpiPlanBuilder.js +22 -0
  87. package/dist/sdks/long-yield-carry/src/client/builders/createTokenBuilder.d.ts +7 -0
  88. package/dist/sdks/long-yield-carry/src/client/builders/createTokenBuilder.js +64 -0
  89. package/dist/sdks/long-yield-carry/src/client/builders/createTokenLendingPositionBuilder.d.ts +10 -0
  90. package/dist/sdks/long-yield-carry/src/client/builders/createTokenLendingPositionBuilder.js +138 -0
  91. package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankAllocationBuilder.d.ts +7 -0
  92. package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankAllocationBuilder.js +29 -0
  93. package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankBuilder.d.ts +7 -0
  94. package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankBuilder.js +39 -0
  95. package/dist/sdks/long-yield-carry/src/client/builders/decreaseCarryPositionBuilder.d.ts +30 -0
  96. package/dist/sdks/long-yield-carry/src/client/builders/decreaseCarryPositionBuilder.js +99 -0
  97. package/dist/sdks/long-yield-carry/src/client/builders/depositUnlentCollateralBuilder.d.ts +8 -0
  98. package/dist/sdks/long-yield-carry/src/client/builders/depositUnlentCollateralBuilder.js +64 -0
  99. package/dist/sdks/long-yield-carry/src/client/builders/increaseCarryPositionBuilder.d.ts +8 -0
  100. package/dist/sdks/long-yield-carry/src/client/builders/increaseCarryPositionBuilder.js +73 -0
  101. package/dist/sdks/long-yield-carry/src/client/builders/index.d.ts +28 -0
  102. package/dist/sdks/long-yield-carry/src/client/builders/index.js +62 -0
  103. package/dist/sdks/long-yield-carry/src/client/builders/mintTokenBuilder.d.ts +8 -0
  104. package/dist/sdks/long-yield-carry/src/client/builders/mintTokenBuilder.js +95 -0
  105. package/dist/sdks/long-yield-carry/src/client/builders/rebalanceTokenBuilder.d.ts +11 -0
  106. package/dist/sdks/long-yield-carry/src/client/builders/rebalanceTokenBuilder.js +255 -0
  107. package/dist/sdks/long-yield-carry/src/client/builders/rebalanceYieldingBankBuilder.d.ts +8 -0
  108. package/dist/sdks/long-yield-carry/src/client/builders/rebalanceYieldingBankBuilder.js +75 -0
  109. package/dist/sdks/long-yield-carry/src/client/builders/recollateralizeLossBuilder.d.ts +12 -0
  110. package/dist/sdks/long-yield-carry/src/client/builders/recollateralizeLossBuilder.js +220 -0
  111. package/dist/sdks/long-yield-carry/src/client/builders/refreshTokenStateBuilder.d.ts +9 -0
  112. package/dist/sdks/long-yield-carry/src/client/builders/refreshTokenStateBuilder.js +112 -0
  113. package/dist/sdks/long-yield-carry/src/client/builders/refreshTokensBuilder.d.ts +9 -0
  114. package/dist/sdks/long-yield-carry/src/client/builders/refreshTokensBuilder.js +59 -0
  115. package/dist/sdks/long-yield-carry/src/client/builders/refreshYieldingBankBuilder.d.ts +8 -0
  116. package/dist/sdks/long-yield-carry/src/client/builders/refreshYieldingBankBuilder.js +29 -0
  117. package/dist/sdks/long-yield-carry/src/client/builders/resetTokenBurnRateLimitBuilder.d.ts +7 -0
  118. package/dist/sdks/long-yield-carry/src/client/builders/resetTokenBurnRateLimitBuilder.js +19 -0
  119. package/dist/sdks/long-yield-carry/src/client/builders/setTokenCircuitBreakerBuilder.d.ts +11 -0
  120. package/dist/sdks/long-yield-carry/src/client/builders/setTokenCircuitBreakerBuilder.js +31 -0
  121. package/dist/sdks/long-yield-carry/src/client/builders/setYieldingBankCircuitBreakerBuilder.d.ts +8 -0
  122. package/dist/sdks/long-yield-carry/src/client/builders/setYieldingBankCircuitBreakerBuilder.js +28 -0
  123. package/dist/sdks/long-yield-carry/src/client/builders/updateLendingPositionConfigBuilder.d.ts +10 -0
  124. package/dist/sdks/long-yield-carry/src/client/builders/updateLendingPositionConfigBuilder.js +30 -0
  125. package/dist/sdks/long-yield-carry/src/client/builders/updateTokenConfigurationBuilder.d.ts +11 -0
  126. package/dist/sdks/long-yield-carry/src/client/builders/updateTokenConfigurationBuilder.js +47 -0
  127. package/dist/sdks/long-yield-carry/src/client/builders/updateTokenMetadataBuilder.d.ts +7 -0
  128. package/dist/sdks/long-yield-carry/src/client/builders/updateTokenMetadataBuilder.js +24 -0
  129. package/dist/sdks/long-yield-carry/src/client/builders/updateYieldingBankConfigBuilder.d.ts +10 -0
  130. package/dist/sdks/long-yield-carry/src/client/builders/updateYieldingBankConfigBuilder.js +31 -0
  131. package/dist/sdks/long-yield-carry/src/client/builders/utils.d.ts +4 -0
  132. package/dist/sdks/long-yield-carry/src/client/builders/utils.js +20 -0
  133. package/dist/sdks/long-yield-carry/src/client/client.d.ts +115 -0
  134. package/dist/sdks/long-yield-carry/src/client/client.js +166 -0
  135. package/dist/sdks/long-yield-carry/src/client/externalLiquidityResolver.d.ts +13 -0
  136. package/dist/sdks/long-yield-carry/src/client/externalLiquidityResolver.js +34 -0
  137. package/dist/sdks/long-yield-carry/src/client/index.d.ts +10 -0
  138. package/dist/sdks/long-yield-carry/src/client/index.js +33 -0
  139. package/dist/sdks/long-yield-carry/src/client/lendingPlatformClients.d.ts +19 -0
  140. package/dist/sdks/long-yield-carry/src/client/lendingPlatformClients.js +33 -0
  141. package/dist/sdks/long-yield-carry/src/client/pda.d.ts +33 -0
  142. package/dist/sdks/long-yield-carry/src/client/pda.js +79 -0
  143. package/dist/sdks/long-yield-carry/src/client/plans/collectInterest.d.ts +24 -0
  144. package/dist/sdks/long-yield-carry/src/client/plans/collectInterest.js +150 -0
  145. package/dist/sdks/long-yield-carry/src/client/plans/decreaseCarryPosition.d.ts +12 -0
  146. package/dist/sdks/long-yield-carry/src/client/plans/decreaseCarryPosition.js +140 -0
  147. package/dist/sdks/long-yield-carry/src/client/routes/collectInterest.d.ts +13 -0
  148. package/dist/sdks/long-yield-carry/src/client/routes/collectInterest.js +39 -0
  149. package/dist/sdks/long-yield-carry/src/client/transaction.d.ts +41 -0
  150. package/dist/sdks/long-yield-carry/src/client/transaction.js +55 -0
  151. package/dist/sdks/long-yield-carry/src/client/types/builders.d.ts +18 -0
  152. package/dist/sdks/long-yield-carry/src/client/types/builders.js +2 -0
  153. package/dist/sdks/long-yield-carry/src/client/types/enums.d.ts +22 -0
  154. package/dist/sdks/long-yield-carry/src/client/types/enums.js +48 -0
  155. package/dist/sdks/long-yield-carry/src/client/types/general.d.ts +98 -0
  156. package/dist/sdks/long-yield-carry/src/client/types/general.js +2 -0
  157. package/dist/sdks/long-yield-carry/src/client/types/index.d.ts +6 -0
  158. package/dist/sdks/long-yield-carry/src/client/types/index.js +22 -0
  159. package/dist/sdks/long-yield-carry/src/client/types/ix.d.ts +352 -0
  160. package/dist/sdks/long-yield-carry/src/client/types/ix.js +2 -0
  161. package/dist/sdks/long-yield-carry/src/client/types/planTypes/collectInterest.d.ts +91 -0
  162. package/dist/sdks/long-yield-carry/src/client/types/planTypes/collectInterest.js +2 -0
  163. package/dist/sdks/long-yield-carry/src/client/types/planTypes/common.d.ts +28 -0
  164. package/dist/sdks/long-yield-carry/src/client/types/planTypes/common.js +2 -0
  165. package/dist/sdks/long-yield-carry/src/client/types/planTypes/decreaseCarryPosition.d.ts +128 -0
  166. package/dist/sdks/long-yield-carry/src/client/types/planTypes/decreaseCarryPosition.js +2 -0
  167. package/dist/sdks/long-yield-carry/src/client/types/planTypes/index.d.ts +3 -0
  168. package/dist/sdks/long-yield-carry/src/client/types/planTypes/index.js +19 -0
  169. package/dist/sdks/long-yield-carry/src/client/types/tx.d.ts +339 -0
  170. package/dist/sdks/long-yield-carry/src/client/types/tx.js +2 -0
  171. package/dist/sdks/long-yield-carry/src/constants/configs/allocations.d.ts +3 -0
  172. package/dist/sdks/long-yield-carry/src/constants/configs/allocations.js +23 -0
  173. package/dist/sdks/long-yield-carry/src/constants/configs/carryTradePresets.d.ts +58 -0
  174. package/dist/sdks/long-yield-carry/src/constants/configs/carryTradePresets.js +116 -0
  175. package/dist/sdks/long-yield-carry/src/constants/configs/index.d.ts +2 -0
  176. package/dist/sdks/long-yield-carry/src/constants/configs/index.js +18 -0
  177. package/dist/sdks/long-yield-carry/src/constants/general.d.ts +70 -0
  178. package/dist/sdks/long-yield-carry/src/constants/general.js +107 -0
  179. package/dist/sdks/long-yield-carry/src/constants/index.d.ts +3 -0
  180. package/dist/sdks/long-yield-carry/src/constants/index.js +19 -0
  181. package/dist/sdks/long-yield-carry/src/constants/lycTokenMetadata.d.ts +36 -0
  182. package/dist/sdks/long-yield-carry/src/constants/lycTokenMetadata.js +41 -0
  183. package/dist/sdks/long-yield-carry/src/decoders/decodeTransaction.d.ts +86 -0
  184. package/dist/sdks/long-yield-carry/src/decoders/decodeTransaction.js +230 -0
  185. package/dist/sdks/long-yield-carry/src/decoders/discriminators.d.ts +8 -0
  186. package/dist/sdks/long-yield-carry/src/decoders/discriminators.js +11 -0
  187. package/dist/sdks/long-yield-carry/src/decoders/idlAccounts.d.ts +29 -0
  188. package/dist/sdks/long-yield-carry/src/decoders/idlAccounts.js +57 -0
  189. package/dist/sdks/long-yield-carry/src/decoders/index.d.ts +6 -0
  190. package/dist/sdks/long-yield-carry/src/decoders/index.js +14 -0
  191. package/dist/sdks/long-yield-carry/src/decoders/innerCpis.d.ts +68 -0
  192. package/dist/sdks/long-yield-carry/src/decoders/innerCpis.js +225 -0
  193. package/dist/sdks/long-yield-carry/src/decoders/lycInstructionNames.d.ts +6 -0
  194. package/dist/sdks/long-yield-carry/src/decoders/lycInstructionNames.js +73 -0
  195. package/dist/sdks/long-yield-carry/src/decoders/programIds.d.ts +4 -0
  196. package/dist/sdks/long-yield-carry/src/decoders/programIds.js +11 -0
  197. package/dist/sdks/long-yield-carry/src/decoders/solana.d.ts +7 -0
  198. package/dist/sdks/long-yield-carry/src/decoders/solana.js +30 -0
  199. package/dist/sdks/long-yield-carry/src/decoders/transactionPayload.d.ts +41 -0
  200. package/dist/sdks/long-yield-carry/src/decoders/transactionPayload.js +6 -0
  201. package/dist/sdks/long-yield-carry/src/decoders/types.d.ts +58 -0
  202. package/dist/sdks/long-yield-carry/src/decoders/types.js +2 -0
  203. package/dist/sdks/long-yield-carry/src/errors.d.ts +69 -0
  204. package/dist/sdks/long-yield-carry/src/errors.js +183 -0
  205. package/dist/sdks/long-yield-carry/src/idl/long_yield_carry.d.ts +7327 -0
  206. package/dist/sdks/long-yield-carry/src/idl/long_yield_carry.js +7323 -0
  207. package/dist/sdks/long-yield-carry/src/index.d.ts +10 -0
  208. package/dist/sdks/long-yield-carry/src/index.js +25 -0
  209. package/dist/sdks/long-yield-carry/src/metrics/index.d.ts +1 -0
  210. package/dist/sdks/long-yield-carry/src/metrics/index.js +17 -0
  211. package/dist/sdks/long-yield-carry/src/metrics/protocolMetrics.d.ts +276 -0
  212. package/dist/sdks/long-yield-carry/src/metrics/protocolMetrics.js +547 -0
  213. package/dist/sdks/long-yield-carry/src/models/index.d.ts +3 -0
  214. package/dist/sdks/long-yield-carry/src/models/index.js +7 -0
  215. package/dist/sdks/long-yield-carry/src/models/lycToken.d.ts +156 -0
  216. package/dist/sdks/long-yield-carry/src/models/lycToken.js +288 -0
  217. package/dist/sdks/long-yield-carry/src/models/yieldingBank.d.ts +52 -0
  218. package/dist/sdks/long-yield-carry/src/models/yieldingBank.js +109 -0
  219. package/dist/sdks/long-yield-carry/src/services/allocation/allocationService.d.ts +106 -0
  220. package/dist/sdks/long-yield-carry/src/services/allocation/allocationService.js +589 -0
  221. package/dist/sdks/long-yield-carry/src/services/allocation/index.d.ts +2 -0
  222. package/dist/sdks/long-yield-carry/src/services/allocation/index.js +18 -0
  223. package/dist/sdks/long-yield-carry/src/services/allocation/types.d.ts +25 -0
  224. package/dist/sdks/long-yield-carry/src/services/allocation/types.js +2 -0
  225. package/dist/sdks/long-yield-carry/src/services/carry/carryAllocationConfig.d.ts +103 -0
  226. package/dist/sdks/long-yield-carry/src/services/carry/carryAllocationConfig.js +146 -0
  227. package/dist/sdks/long-yield-carry/src/services/carry/index.d.ts +2 -0
  228. package/dist/sdks/long-yield-carry/src/services/carry/index.js +18 -0
  229. package/dist/sdks/long-yield-carry/src/services/carry/lycLendingPositionManager.d.ts +39 -0
  230. package/dist/sdks/long-yield-carry/src/services/carry/lycLendingPositionManager.js +100 -0
  231. package/dist/sdks/long-yield-carry/src/services/index.d.ts +5 -0
  232. package/dist/sdks/long-yield-carry/src/services/index.js +21 -0
  233. package/dist/sdks/long-yield-carry/src/services/lendingPosition/index.d.ts +2 -0
  234. package/dist/sdks/long-yield-carry/src/services/lendingPosition/index.js +5 -0
  235. package/dist/sdks/long-yield-carry/src/services/lendingPosition/lendingPositionService.d.ts +88 -0
  236. package/dist/sdks/long-yield-carry/src/services/lendingPosition/lendingPositionService.js +229 -0
  237. package/dist/sdks/long-yield-carry/src/services/rebalance/index.d.ts +2 -0
  238. package/dist/sdks/long-yield-carry/src/services/rebalance/index.js +18 -0
  239. package/dist/sdks/long-yield-carry/src/services/rebalance/token/index.d.ts +1 -0
  240. package/dist/sdks/long-yield-carry/src/services/rebalance/token/index.js +17 -0
  241. package/dist/sdks/long-yield-carry/src/services/rebalance/token/tokenRebalanceService.d.ts +51 -0
  242. package/dist/sdks/long-yield-carry/src/services/rebalance/token/tokenRebalanceService.js +99 -0
  243. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/index.d.ts +3 -0
  244. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/index.js +21 -0
  245. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/planner.d.ts +68 -0
  246. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/planner.js +181 -0
  247. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/strategy.d.ts +26 -0
  248. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/strategy.js +26 -0
  249. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/types.d.ts +40 -0
  250. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/types.js +2 -0
  251. package/dist/sdks/long-yield-carry/src/services/redemption/index.d.ts +2 -0
  252. package/dist/sdks/long-yield-carry/src/services/redemption/index.js +5 -0
  253. package/dist/sdks/long-yield-carry/src/services/redemption/redemptionService.d.ts +139 -0
  254. package/dist/sdks/long-yield-carry/src/services/redemption/redemptionService.js +532 -0
  255. package/dist/sdks/long-yield-carry/src/types/enriched.d.ts +168 -0
  256. package/dist/sdks/long-yield-carry/src/types/enriched.js +2 -0
  257. package/dist/sdks/long-yield-carry/src/types/index.d.ts +1 -0
  258. package/dist/sdks/long-yield-carry/src/types/index.js +17 -0
  259. package/dist/sdks/long-yield-carry/src/utils/cache.d.ts +4 -0
  260. package/dist/sdks/long-yield-carry/src/utils/cache.js +10 -0
  261. package/dist/sdks/long-yield-carry/src/utils/data.d.ts +12 -0
  262. package/dist/sdks/long-yield-carry/src/utils/data.js +59 -0
  263. package/dist/sdks/long-yield-carry/src/utils/enrichment.d.ts +5 -0
  264. package/dist/sdks/long-yield-carry/src/utils/enrichment.js +244 -0
  265. package/dist/sdks/long-yield-carry/src/utils/feeDripMetrics.d.ts +36 -0
  266. package/dist/sdks/long-yield-carry/src/utils/feeDripMetrics.js +93 -0
  267. package/dist/sdks/long-yield-carry/src/utils/general.d.ts +28 -0
  268. package/dist/sdks/long-yield-carry/src/utils/general.js +47 -0
  269. package/dist/sdks/long-yield-carry/src/utils/index.d.ts +13 -0
  270. package/dist/sdks/long-yield-carry/src/utils/index.js +29 -0
  271. package/dist/sdks/long-yield-carry/src/utils/ix.d.ts +83 -0
  272. package/dist/sdks/long-yield-carry/src/utils/ix.js +165 -0
  273. package/dist/sdks/long-yield-carry/src/utils/lendingPosition.d.ts +68 -0
  274. package/dist/sdks/long-yield-carry/src/utils/lendingPosition.js +105 -0
  275. package/dist/sdks/long-yield-carry/src/utils/lookupTables.d.ts +55 -0
  276. package/dist/sdks/long-yield-carry/src/utils/lookupTables.js +216 -0
  277. package/dist/sdks/long-yield-carry/src/utils/lycData.d.ts +66 -0
  278. package/dist/sdks/long-yield-carry/src/utils/lycData.js +211 -0
  279. package/dist/sdks/long-yield-carry/src/utils/timelock.d.ts +19 -0
  280. package/dist/sdks/long-yield-carry/src/utils/timelock.js +37 -0
  281. package/dist/sdks/long-yield-carry/src/utils/tokenFeeMath.d.ts +11 -0
  282. package/dist/sdks/long-yield-carry/src/utils/tokenFeeMath.js +24 -0
  283. package/dist/sdks/long-yield-carry/src/utils/transactions.d.ts +20 -0
  284. package/dist/sdks/long-yield-carry/src/utils/transactions.js +72 -0
  285. package/dist/sdks/long-yield-carry/src/utils/yieldingBank.d.ts +24 -0
  286. package/dist/sdks/long-yield-carry/src/utils/yieldingBank.js +36 -0
  287. package/dist/shared/common/src/constants/accountMetas.d.ts +3 -0
  288. package/dist/shared/common/src/constants/accountMetas.js +9 -0
  289. package/dist/shared/common/src/constants/general.d.ts +21 -0
  290. package/dist/shared/common/src/constants/general.js +30 -0
  291. package/dist/shared/common/src/constants/generated/cpi.d.ts +23 -0
  292. package/dist/shared/common/src/constants/generated/cpi.js +28 -0
  293. package/dist/shared/common/src/constants/generated/index.d.ts +1 -0
  294. package/dist/shared/common/src/constants/generated/index.js +17 -0
  295. package/dist/shared/common/src/constants/index.d.ts +3 -0
  296. package/dist/shared/common/src/constants/index.js +19 -0
  297. package/dist/shared/common/src/index.d.ts +4 -0
  298. package/dist/shared/common/src/index.js +20 -0
  299. package/dist/shared/common/src/services/baseAccountClient.d.ts +22 -0
  300. package/dist/shared/common/src/services/baseAccountClient.js +38 -0
  301. package/dist/shared/common/src/services/baseIxBuilderService.d.ts +27 -0
  302. package/dist/shared/common/src/services/baseIxBuilderService.js +48 -0
  303. package/dist/shared/common/src/services/dataCache.d.ts +41 -0
  304. package/dist/shared/common/src/services/dataCache.js +130 -0
  305. package/dist/shared/common/src/services/index.d.ts +8 -0
  306. package/dist/shared/common/src/services/index.js +24 -0
  307. package/dist/shared/common/src/services/lutManager.d.ts +31 -0
  308. package/dist/shared/common/src/services/lutManager.js +133 -0
  309. package/dist/shared/common/src/services/mints/defaults.d.ts +2 -0
  310. package/dist/shared/common/src/services/mints/defaults.js +152 -0
  311. package/dist/shared/common/src/services/mints/index.d.ts +4 -0
  312. package/dist/shared/common/src/services/mints/index.js +20 -0
  313. package/dist/shared/common/src/services/mints/registry.d.ts +70 -0
  314. package/dist/shared/common/src/services/mints/registry.js +117 -0
  315. package/dist/shared/common/src/services/mints/symbols.d.ts +6 -0
  316. package/dist/shared/common/src/services/mints/symbols.js +13 -0
  317. package/dist/shared/common/src/services/mints/types.d.ts +30 -0
  318. package/dist/shared/common/src/services/mints/types.js +2 -0
  319. package/dist/shared/common/src/services/swap/index.d.ts +4 -0
  320. package/dist/shared/common/src/services/swap/index.js +20 -0
  321. package/dist/shared/common/src/services/swap/routableSwapClient.d.ts +36 -0
  322. package/dist/shared/common/src/services/swap/routableSwapClient.js +2 -0
  323. package/dist/shared/common/src/services/swap/swapClientBase.d.ts +45 -0
  324. package/dist/shared/common/src/services/swap/swapClientBase.js +2 -0
  325. package/dist/shared/common/src/services/swap/swapRouting.d.ts +13 -0
  326. package/dist/shared/common/src/services/swap/swapRouting.js +28 -0
  327. package/dist/shared/common/src/services/swap/types.d.ts +77 -0
  328. package/dist/shared/common/src/services/swap/types.js +2 -0
  329. package/dist/shared/common/src/services/token/index.d.ts +2 -0
  330. package/dist/shared/common/src/services/token/index.js +18 -0
  331. package/dist/shared/common/src/services/token/tokenProtocolClientBase.d.ts +51 -0
  332. package/dist/shared/common/src/services/token/tokenProtocolClientBase.js +2 -0
  333. package/dist/shared/common/src/services/token/types.d.ts +19 -0
  334. package/dist/shared/common/src/services/token/types.js +2 -0
  335. package/dist/shared/common/src/services/transactionSender.d.ts +24 -0
  336. package/dist/shared/common/src/services/transactionSender.js +30 -0
  337. package/dist/shared/common/src/types/cpi.d.ts +34 -0
  338. package/dist/shared/common/src/types/cpi.js +8 -0
  339. package/dist/shared/common/src/types/enums.d.ts +59 -0
  340. package/dist/shared/common/src/types/enums.js +122 -0
  341. package/dist/shared/common/src/types/general.d.ts +38 -0
  342. package/dist/shared/common/src/types/general.js +2 -0
  343. package/dist/shared/common/src/types/index.d.ts +4 -0
  344. package/dist/shared/common/src/types/index.js +20 -0
  345. package/dist/shared/common/src/types/solana.d.ts +24 -0
  346. package/dist/shared/common/src/types/solana.js +2 -0
  347. package/dist/shared/common/src/utils/accounts/index.d.ts +5 -0
  348. package/dist/shared/common/src/utils/accounts/index.js +21 -0
  349. package/dist/shared/common/src/utils/accounts/meta.d.ts +21 -0
  350. package/dist/shared/common/src/utils/accounts/meta.js +27 -0
  351. package/dist/shared/common/src/utils/accounts/pda.d.ts +2 -0
  352. package/dist/shared/common/src/utils/accounts/pda.js +17 -0
  353. package/dist/shared/common/src/utils/accounts/roles.d.ts +26 -0
  354. package/dist/shared/common/src/utils/accounts/roles.js +54 -0
  355. package/dist/shared/common/src/utils/accounts/rpc.d.ts +8 -0
  356. package/dist/shared/common/src/utils/accounts/rpc.js +30 -0
  357. package/dist/shared/common/src/utils/accounts/splBalances.d.ts +15 -0
  358. package/dist/shared/common/src/utils/accounts/splBalances.js +52 -0
  359. package/dist/shared/common/src/utils/anchor.d.ts +17 -0
  360. package/dist/shared/common/src/utils/anchor.js +29 -0
  361. package/dist/shared/common/src/utils/asyncConcurrency.d.ts +5 -0
  362. package/dist/shared/common/src/utils/asyncConcurrency.js +28 -0
  363. package/dist/shared/common/src/utils/compat.d.ts +46 -0
  364. package/dist/shared/common/src/utils/compat.js +72 -0
  365. package/dist/shared/common/src/utils/cpi/args.d.ts +69 -0
  366. package/dist/shared/common/src/utils/cpi/args.js +100 -0
  367. package/dist/shared/common/src/utils/cpi/index.d.ts +2 -0
  368. package/dist/shared/common/src/utils/cpi/index.js +18 -0
  369. package/dist/shared/common/src/utils/cpi/refs.d.ts +122 -0
  370. package/dist/shared/common/src/utils/cpi/refs.js +234 -0
  371. package/dist/shared/common/src/utils/data.d.ts +20 -0
  372. package/dist/shared/common/src/utils/data.js +27 -0
  373. package/dist/shared/common/src/utils/general.d.ts +24 -0
  374. package/dist/shared/common/src/utils/general.js +95 -0
  375. package/dist/shared/common/src/utils/index.d.ts +22 -0
  376. package/dist/shared/common/src/utils/index.js +38 -0
  377. package/dist/shared/common/src/utils/instruction.d.ts +74 -0
  378. package/dist/shared/common/src/utils/instruction.js +147 -0
  379. package/dist/shared/common/src/utils/jito.d.ts +113 -0
  380. package/dist/shared/common/src/utils/jito.js +178 -0
  381. package/dist/shared/common/src/utils/json.d.ts +5 -0
  382. package/dist/shared/common/src/utils/json.js +25 -0
  383. package/dist/shared/common/src/utils/jsonRpcFetch.d.ts +21 -0
  384. package/dist/shared/common/src/utils/jsonRpcFetch.js +134 -0
  385. package/dist/shared/common/src/utils/metadata.d.ts +107 -0
  386. package/dist/shared/common/src/utils/metadata.js +194 -0
  387. package/dist/shared/common/src/utils/numbers.d.ts +72 -0
  388. package/dist/shared/common/src/utils/numbers.js +193 -0
  389. package/dist/shared/common/src/utils/priorityFee.d.ts +18 -0
  390. package/dist/shared/common/src/utils/priorityFee.js +63 -0
  391. package/dist/shared/common/src/utils/retry.d.ts +20 -0
  392. package/dist/shared/common/src/utils/retry.js +69 -0
  393. package/dist/shared/common/src/utils/rpc.d.ts +40 -0
  394. package/dist/shared/common/src/utils/rpc.js +130 -0
  395. package/dist/shared/common/src/utils/solana.d.ts +23 -0
  396. package/dist/shared/common/src/utils/solana.js +61 -0
  397. package/dist/shared/common/src/utils/timeSeries.d.ts +18 -0
  398. package/dist/shared/common/src/utils/timeSeries.js +40 -0
  399. package/dist/shared/common/src/utils/token.d.ts +33 -0
  400. package/dist/shared/common/src/utils/token.js +82 -0
  401. package/dist/shared/common/src/utils/transaction.d.ts +154 -0
  402. package/dist/shared/common/src/utils/transaction.js +585 -0
  403. package/dist/shared/common/src/utils/transactionSplitter.d.ts +85 -0
  404. package/dist/shared/common/src/utils/transactionSplitter.js +127 -0
  405. package/dist/shared/common/src/utils/txAccountCoverage.d.ts +49 -0
  406. package/dist/shared/common/src/utils/txAccountCoverage.js +122 -0
  407. package/dist/shared/jupiter-helpers/src/api.d.ts +59 -0
  408. package/dist/shared/jupiter-helpers/src/api.js +130 -0
  409. package/dist/shared/jupiter-helpers/src/client.d.ts +79 -0
  410. package/dist/shared/jupiter-helpers/src/client.js +173 -0
  411. package/dist/shared/jupiter-helpers/src/constants.d.ts +35 -0
  412. package/dist/shared/jupiter-helpers/src/constants.js +38 -0
  413. package/dist/shared/jupiter-helpers/src/extract.d.ts +30 -0
  414. package/dist/shared/jupiter-helpers/src/extract.js +57 -0
  415. package/dist/shared/jupiter-helpers/src/index.d.ts +5 -0
  416. package/dist/shared/jupiter-helpers/src/index.js +21 -0
  417. package/dist/shared/jupiter-helpers/src/routePreInstructions.d.ts +19 -0
  418. package/dist/shared/jupiter-helpers/src/routePreInstructions.js +61 -0
  419. package/dist/shared/jupiter-helpers/src/sizeExactInForMinOutput.d.ts +70 -0
  420. package/dist/shared/jupiter-helpers/src/sizeExactInForMinOutput.js +95 -0
  421. package/dist/shared/jupiter-helpers/src/types.d.ts +66 -0
  422. package/dist/shared/jupiter-helpers/src/types.js +2 -0
  423. package/dist/shared/lending-platforms/src/constants/cache.d.ts +8 -0
  424. package/dist/shared/lending-platforms/src/constants/cache.js +11 -0
  425. package/dist/shared/lending-platforms/src/constants/index.d.ts +3 -0
  426. package/dist/shared/lending-platforms/src/constants/index.js +19 -0
  427. package/dist/shared/lending-platforms/src/constants/kamino.d.ts +7 -0
  428. package/dist/shared/lending-platforms/src/constants/kamino.js +83 -0
  429. package/dist/shared/lending-platforms/src/constants/lendingPosition.d.ts +7 -0
  430. package/dist/shared/lending-platforms/src/constants/lendingPosition.js +10 -0
  431. package/dist/shared/lending-platforms/src/data/accounts/index.d.ts +2 -0
  432. package/dist/shared/lending-platforms/src/data/accounts/index.js +18 -0
  433. package/dist/shared/lending-platforms/src/data/accounts/kamino.d.ts +42 -0
  434. package/dist/shared/lending-platforms/src/data/accounts/kamino.js +104 -0
  435. package/dist/shared/lending-platforms/src/data/accounts/lpAccountsBase.d.ts +7 -0
  436. package/dist/shared/lending-platforms/src/data/accounts/lpAccountsBase.js +9 -0
  437. package/dist/shared/lending-platforms/src/data/incentive/incentiveBase.d.ts +35 -0
  438. package/dist/shared/lending-platforms/src/data/incentive/incentiveBase.js +26 -0
  439. package/dist/shared/lending-platforms/src/data/incentive/index.d.ts +2 -0
  440. package/dist/shared/lending-platforms/src/data/incentive/index.js +18 -0
  441. package/dist/shared/lending-platforms/src/data/incentive/kamino.d.ts +55 -0
  442. package/dist/shared/lending-platforms/src/data/incentive/kamino.js +101 -0
  443. package/dist/shared/lending-platforms/src/data/index.d.ts +6 -0
  444. package/dist/shared/lending-platforms/src/data/index.js +22 -0
  445. package/dist/shared/lending-platforms/src/data/instructions/index.d.ts +3 -0
  446. package/dist/shared/lending-platforms/src/data/instructions/index.js +19 -0
  447. package/dist/shared/lending-platforms/src/data/instructions/kamino.d.ts +55 -0
  448. package/dist/shared/lending-platforms/src/data/instructions/kamino.js +630 -0
  449. package/dist/shared/lending-platforms/src/data/instructions/lpInstructionsBase.d.ts +175 -0
  450. package/dist/shared/lending-platforms/src/data/instructions/lpInstructionsBase.js +192 -0
  451. package/dist/shared/lending-platforms/src/data/instructions/types.d.ts +7 -0
  452. package/dist/shared/lending-platforms/src/data/instructions/types.js +2 -0
  453. package/dist/shared/lending-platforms/src/data/platform/index.d.ts +2 -0
  454. package/dist/shared/lending-platforms/src/data/platform/index.js +18 -0
  455. package/dist/shared/lending-platforms/src/data/platform/kamino.d.ts +59 -0
  456. package/dist/shared/lending-platforms/src/data/platform/kamino.js +206 -0
  457. package/dist/shared/lending-platforms/src/data/platform/lpDataBase.d.ts +35 -0
  458. package/dist/shared/lending-platforms/src/data/platform/lpDataBase.js +31 -0
  459. package/dist/shared/lending-platforms/src/data/reserve/index.d.ts +2 -0
  460. package/dist/shared/lending-platforms/src/data/reserve/index.js +18 -0
  461. package/dist/shared/lending-platforms/src/data/reserve/kamino.d.ts +45 -0
  462. package/dist/shared/lending-platforms/src/data/reserve/kamino.js +141 -0
  463. package/dist/shared/lending-platforms/src/data/reserve/reserveBase.d.ts +114 -0
  464. package/dist/shared/lending-platforms/src/data/reserve/reserveBase.js +125 -0
  465. package/dist/shared/lending-platforms/src/data/userPosition/index.d.ts +2 -0
  466. package/dist/shared/lending-platforms/src/data/userPosition/index.js +18 -0
  467. package/dist/shared/lending-platforms/src/data/userPosition/kamino.d.ts +15 -0
  468. package/dist/shared/lending-platforms/src/data/userPosition/kamino.js +45 -0
  469. package/dist/shared/lending-platforms/src/data/userPosition/userPositionBase.d.ts +50 -0
  470. package/dist/shared/lending-platforms/src/data/userPosition/userPositionBase.js +63 -0
  471. package/dist/shared/lending-platforms/src/index.d.ts +5 -0
  472. package/dist/shared/lending-platforms/src/index.js +21 -0
  473. package/dist/shared/lending-platforms/src/services/client/index.d.ts +2 -0
  474. package/dist/shared/lending-platforms/src/services/client/index.js +18 -0
  475. package/dist/shared/lending-platforms/src/services/client/kamino.d.ts +53 -0
  476. package/dist/shared/lending-platforms/src/services/client/kamino.js +142 -0
  477. package/dist/shared/lending-platforms/src/services/client/lpClientBase.d.ts +66 -0
  478. package/dist/shared/lending-platforms/src/services/client/lpClientBase.js +19 -0
  479. package/dist/shared/lending-platforms/src/services/flashLoan/flashLoanBase.d.ts +49 -0
  480. package/dist/shared/lending-platforms/src/services/flashLoan/flashLoanBase.js +16 -0
  481. package/dist/shared/lending-platforms/src/services/flashLoan/index.d.ts +2 -0
  482. package/dist/shared/lending-platforms/src/services/flashLoan/index.js +18 -0
  483. package/dist/shared/lending-platforms/src/services/flashLoan/kamino.d.ts +11 -0
  484. package/dist/shared/lending-platforms/src/services/flashLoan/kamino.js +85 -0
  485. package/dist/shared/lending-platforms/src/services/index.d.ts +5 -0
  486. package/dist/shared/lending-platforms/src/services/index.js +21 -0
  487. package/dist/shared/lending-platforms/src/services/lendingPosition/index.d.ts +2 -0
  488. package/dist/shared/lending-platforms/src/services/lendingPosition/index.js +18 -0
  489. package/dist/shared/lending-platforms/src/services/lendingPosition/lendingPositionManager.d.ts +117 -0
  490. package/dist/shared/lending-platforms/src/services/lendingPosition/lendingPositionManager.js +342 -0
  491. package/dist/shared/lending-platforms/src/services/lendingPosition/types.d.ts +40 -0
  492. package/dist/shared/lending-platforms/src/services/lendingPosition/types.js +2 -0
  493. package/dist/shared/lending-platforms/src/services/leverage/index.d.ts +2 -0
  494. package/dist/shared/lending-platforms/src/services/leverage/index.js +18 -0
  495. package/dist/shared/lending-platforms/src/services/leverage/leverageService.d.ts +104 -0
  496. package/dist/shared/lending-platforms/src/services/leverage/leverageService.js +437 -0
  497. package/dist/shared/lending-platforms/src/services/leverage/types.d.ts +261 -0
  498. package/dist/shared/lending-platforms/src/services/leverage/types.js +2 -0
  499. package/dist/shared/lending-platforms/src/services/reservesManager.d.ts +53 -0
  500. package/dist/shared/lending-platforms/src/services/reservesManager.js +112 -0
  501. package/dist/shared/lending-platforms/src/types/general.d.ts +37 -0
  502. package/dist/shared/lending-platforms/src/types/general.js +8 -0
  503. package/dist/shared/lending-platforms/src/types/index.d.ts +2 -0
  504. package/dist/shared/lending-platforms/src/types/index.js +18 -0
  505. package/dist/shared/lending-platforms/src/types/kamino.d.ts +10 -0
  506. package/dist/shared/lending-platforms/src/types/kamino.js +2 -0
  507. package/dist/shared/lending-platforms/src/utils/accounts.d.ts +16 -0
  508. package/dist/shared/lending-platforms/src/utils/accounts.js +36 -0
  509. package/dist/shared/lending-platforms/src/utils/cache.d.ts +3 -0
  510. package/dist/shared/lending-platforms/src/utils/cache.js +11 -0
  511. package/dist/shared/lending-platforms/src/utils/index.d.ts +6 -0
  512. package/dist/shared/lending-platforms/src/utils/index.js +22 -0
  513. package/dist/shared/lending-platforms/src/utils/kamino.d.ts +87 -0
  514. package/dist/shared/lending-platforms/src/utils/kamino.js +190 -0
  515. package/dist/shared/lending-platforms/src/utils/lendingPlatform.d.ts +6 -0
  516. package/dist/shared/lending-platforms/src/utils/lendingPlatform.js +16 -0
  517. package/dist/shared/lending-platforms/src/utils/math.d.ts +47 -0
  518. package/dist/shared/lending-platforms/src/utils/math.js +123 -0
  519. package/dist/shared/lending-platforms/src/utils/scope.d.ts +38 -0
  520. package/dist/shared/lending-platforms/src/utils/scope.js +144 -0
  521. package/dist/shared/oracle-service/src/constants/index.d.ts +3 -0
  522. package/dist/shared/oracle-service/src/constants/index.js +19 -0
  523. package/dist/shared/oracle-service/src/constants/pyth.d.ts +7 -0
  524. package/dist/shared/oracle-service/src/constants/pyth.js +71 -0
  525. package/dist/shared/oracle-service/src/constants/splStake.d.ts +2 -0
  526. package/dist/shared/oracle-service/src/constants/splStake.js +6 -0
  527. package/dist/shared/oracle-service/src/constants/switchboard.d.ts +7 -0
  528. package/dist/shared/oracle-service/src/constants/switchboard.js +10 -0
  529. package/dist/shared/oracle-service/src/feeds/custom.d.ts +30 -0
  530. package/dist/shared/oracle-service/src/feeds/custom.js +56 -0
  531. package/dist/shared/oracle-service/src/feeds/jupiter.d.ts +7 -0
  532. package/dist/shared/oracle-service/src/feeds/jupiter.js +43 -0
  533. package/dist/shared/oracle-service/src/feeds/priceBase.d.ts +13 -0
  534. package/dist/shared/oracle-service/src/feeds/priceBase.js +25 -0
  535. package/dist/shared/oracle-service/src/feeds/pyth.d.ts +8 -0
  536. package/dist/shared/oracle-service/src/feeds/pyth.js +59 -0
  537. package/dist/shared/oracle-service/src/feeds/splStake.d.ts +26 -0
  538. package/dist/shared/oracle-service/src/feeds/splStake.js +99 -0
  539. package/dist/shared/oracle-service/src/feeds/switchboard.d.ts +6 -0
  540. package/dist/shared/oracle-service/src/feeds/switchboard.js +11 -0
  541. package/dist/shared/oracle-service/src/index.d.ts +5 -0
  542. package/dist/shared/oracle-service/src/index.js +26 -0
  543. package/dist/shared/oracle-service/src/oracle.d.ts +22 -0
  544. package/dist/shared/oracle-service/src/oracle.js +104 -0
  545. package/dist/shared/oracle-service/src/types.d.ts +4 -0
  546. package/dist/shared/oracle-service/src/types.js +2 -0
  547. package/dist/shared/oracle-service/src/utils/general.d.ts +20 -0
  548. package/dist/shared/oracle-service/src/utils/general.js +65 -0
  549. package/dist/shared/oracle-service/src/utils/index.d.ts +1 -0
  550. package/dist/shared/oracle-service/src/utils/index.js +17 -0
  551. package/dist/shared/perena-helpers/src/accounts.d.ts +7 -0
  552. package/dist/shared/perena-helpers/src/accounts.js +12 -0
  553. package/dist/shared/perena-helpers/src/client.d.ts +299 -0
  554. package/dist/shared/perena-helpers/src/client.js +680 -0
  555. package/dist/shared/perena-helpers/src/constants.d.ts +5 -0
  556. package/dist/shared/perena-helpers/src/constants.js +8 -0
  557. package/dist/shared/perena-helpers/src/cpi/burn.d.ts +27 -0
  558. package/dist/shared/perena-helpers/src/cpi/burn.js +22 -0
  559. package/dist/shared/perena-helpers/src/cpi/index.d.ts +3 -0
  560. package/dist/shared/perena-helpers/src/cpi/index.js +19 -0
  561. package/dist/shared/perena-helpers/src/cpi/mint.d.ts +27 -0
  562. package/dist/shared/perena-helpers/src/cpi/mint.js +22 -0
  563. package/dist/shared/perena-helpers/src/cpi/requestUnstake.d.ts +19 -0
  564. package/dist/shared/perena-helpers/src/cpi/requestUnstake.js +16 -0
  565. package/dist/shared/perena-helpers/src/index.d.ts +5 -0
  566. package/dist/shared/perena-helpers/src/index.js +21 -0
  567. package/dist/shared/perena-helpers/src/utils.d.ts +9 -0
  568. package/dist/shared/perena-helpers/src/utils.js +54 -0
  569. package/dist/shared/swap-aggregator/src/aggSwapClient.d.ts +71 -0
  570. package/dist/shared/swap-aggregator/src/aggSwapClient.js +103 -0
  571. package/dist/shared/swap-aggregator/src/index.d.ts +1 -0
  572. package/dist/shared/swap-aggregator/src/index.js +17 -0
  573. package/docs/launchingToken.md +57 -0
  574. package/package.json +75 -0
  575. package/scripts/asyncBurn.ts +155 -0
  576. package/scripts/burnToken.ts +120 -0
  577. package/scripts/claimIncentives.ts +125 -0
  578. package/scripts/closeCpiPlans.ts +113 -0
  579. package/scripts/collectInterest.ts +194 -0
  580. package/scripts/collectProtocolFees.ts +144 -0
  581. package/scripts/computeOptimalAllocations.ts +117 -0
  582. package/scripts/createToken.ts +100 -0
  583. package/scripts/createTokenLendingPosition.ts +204 -0
  584. package/scripts/createYieldingBank.ts +91 -0
  585. package/scripts/decreaseCarryPositions.ts +359 -0
  586. package/scripts/depositUnlentCollateral.ts +106 -0
  587. package/scripts/emergency/deleverageAll.ts +287 -0
  588. package/scripts/emergency/triggerCircuitBreaker.ts +87 -0
  589. package/scripts/env.ts +4 -0
  590. package/scripts/findTxs.ts +169 -0
  591. package/scripts/increaseCarryPositions.ts +134 -0
  592. package/scripts/inspect/format.ts +576 -0
  593. package/scripts/inspect.ts +147 -0
  594. package/scripts/localUtils.ts +249 -0
  595. package/scripts/mintToken.ts +126 -0
  596. package/scripts/processAsyncBurns.ts +89 -0
  597. package/scripts/rebalanceToken.ts +269 -0
  598. package/scripts/rebalanceYieldingBank.ts +183 -0
  599. package/scripts/recollateralizeLoss.ts +79 -0
  600. package/scripts/refresh.ts +156 -0
  601. package/scripts/updateFees.ts +486 -0
  602. package/scripts/updateGeneralLut.ts +36 -0
  603. package/scripts/updateLendingPositionConfig.ts +172 -0
  604. package/scripts/updateTokenLuts.ts +36 -0
  605. package/scripts/updateTokenMetadata.ts +199 -0
  606. package/scripts/updateYieldingBankConfig.ts +100 -0
  607. package/scripts/withdrawUnlentCollateral.ts +178 -0
  608. package/src/client/account.ts +503 -0
  609. package/src/client/builders/args.ts +381 -0
  610. package/src/client/builders/asyncBurnBuilder.ts +305 -0
  611. package/src/client/builders/base.ts +303 -0
  612. package/src/client/builders/burnTokenBuilder.ts +258 -0
  613. package/src/client/builders/claimIncentivesBuilder.ts +211 -0
  614. package/src/client/builders/collectFeesBuilder.ts +52 -0
  615. package/src/client/builders/collectInterestBuilder.ts +165 -0
  616. package/src/client/builders/createCpiPlanBuilder.ts +21 -0
  617. package/src/client/builders/createTokenBuilder.ts +73 -0
  618. package/src/client/builders/createTokenLendingPositionBuilder.ts +219 -0
  619. package/src/client/builders/createYieldingBankAllocationBuilder.ts +32 -0
  620. package/src/client/builders/createYieldingBankBuilder.ts +39 -0
  621. package/src/client/builders/decreaseCarryPositionBuilder.ts +162 -0
  622. package/src/client/builders/depositUnlentCollateralBuilder.ts +95 -0
  623. package/src/client/builders/increaseCarryPositionBuilder.ts +105 -0
  624. package/src/client/builders/index.ts +37 -0
  625. package/src/client/builders/mintTokenBuilder.ts +137 -0
  626. package/src/client/builders/rebalanceTokenBuilder.ts +356 -0
  627. package/src/client/builders/rebalanceYieldingBankBuilder.ts +109 -0
  628. package/src/client/builders/recollateralizeLossBuilder.ts +367 -0
  629. package/src/client/builders/refreshTokenStateBuilder.ts +153 -0
  630. package/src/client/builders/refreshTokensBuilder.ts +82 -0
  631. package/src/client/builders/refreshYieldingBankBuilder.ts +42 -0
  632. package/src/client/builders/resetTokenBurnRateLimitBuilder.ts +21 -0
  633. package/src/client/builders/setTokenCircuitBreakerBuilder.ts +40 -0
  634. package/src/client/builders/setYieldingBankCircuitBreakerBuilder.ts +37 -0
  635. package/src/client/builders/updateLendingPositionConfigBuilder.ts +33 -0
  636. package/src/client/builders/updateTokenConfigurationBuilder.ts +50 -0
  637. package/src/client/builders/updateTokenMetadataBuilder.ts +24 -0
  638. package/src/client/builders/updateYieldingBankConfigBuilder.ts +32 -0
  639. package/src/client/builders/utils.ts +26 -0
  640. package/src/client/client.ts +264 -0
  641. package/src/client/externalLiquidityResolver.ts +54 -0
  642. package/src/client/index.ts +20 -0
  643. package/src/client/lendingPlatformClients.ts +50 -0
  644. package/src/client/pda.ts +102 -0
  645. package/src/client/plans/collectInterest.ts +207 -0
  646. package/src/client/plans/decreaseCarryPosition.ts +226 -0
  647. package/src/client/routes/collectInterest.ts +56 -0
  648. package/src/client/transaction.ts +106 -0
  649. package/src/client/types/builders.ts +19 -0
  650. package/src/client/types/enums.ts +47 -0
  651. package/src/client/types/general.ts +117 -0
  652. package/src/client/types/index.ts +6 -0
  653. package/src/client/types/ix.ts +452 -0
  654. package/src/client/types/planTypes/collectInterest.ts +97 -0
  655. package/src/client/types/planTypes/common.ts +31 -0
  656. package/src/client/types/planTypes/decreaseCarryPosition.ts +134 -0
  657. package/src/client/types/planTypes/index.ts +3 -0
  658. package/src/client/types/tx.ts +409 -0
  659. package/src/constants/configs/allocations.ts +30 -0
  660. package/src/constants/configs/carryTradePresets.ts +164 -0
  661. package/src/constants/configs/index.ts +2 -0
  662. package/src/constants/general.ts +141 -0
  663. package/src/constants/index.ts +3 -0
  664. package/src/constants/lycTokenMetadata.ts +52 -0
  665. package/src/decoders/decodeTransaction.ts +319 -0
  666. package/src/decoders/discriminators.ts +10 -0
  667. package/src/decoders/idlAccounts.ts +75 -0
  668. package/src/decoders/index.ts +15 -0
  669. package/src/decoders/innerCpis.ts +262 -0
  670. package/src/decoders/lycInstructionNames.ts +73 -0
  671. package/src/decoders/programIds.ts +12 -0
  672. package/src/decoders/solana.ts +25 -0
  673. package/src/decoders/transactionPayload.ts +41 -0
  674. package/src/decoders/types.ts +60 -0
  675. package/src/errors.ts +195 -0
  676. package/src/idl/long_yield_carry.ts +14648 -0
  677. package/src/index.ts +10 -0
  678. package/src/metrics/index.ts +1 -0
  679. package/src/metrics/protocolMetrics.ts +976 -0
  680. package/src/models/index.ts +9 -0
  681. package/src/models/lycToken.ts +380 -0
  682. package/src/models/yieldingBank.ts +127 -0
  683. package/src/services/allocation/allocationService.ts +823 -0
  684. package/src/services/allocation/index.ts +2 -0
  685. package/src/services/allocation/types.ts +27 -0
  686. package/src/services/carry/carryAllocationConfig.ts +266 -0
  687. package/src/services/carry/index.ts +2 -0
  688. package/src/services/carry/lycLendingPositionManager.ts +167 -0
  689. package/src/services/index.ts +5 -0
  690. package/src/services/lendingPosition/index.ts +5 -0
  691. package/src/services/lendingPosition/lendingPositionService.ts +328 -0
  692. package/src/services/rebalance/index.ts +2 -0
  693. package/src/services/rebalance/token/index.ts +1 -0
  694. package/src/services/rebalance/token/tokenRebalanceService.ts +142 -0
  695. package/src/services/rebalance/yieldingBank/index.ts +3 -0
  696. package/src/services/rebalance/yieldingBank/planner.ts +215 -0
  697. package/src/services/rebalance/yieldingBank/strategy.ts +41 -0
  698. package/src/services/rebalance/yieldingBank/types.ts +41 -0
  699. package/src/services/redemption/index.ts +9 -0
  700. package/src/services/redemption/redemptionService.ts +758 -0
  701. package/src/types/enriched.ts +187 -0
  702. package/src/types/index.ts +1 -0
  703. package/src/utils/cache.ts +12 -0
  704. package/src/utils/data.ts +65 -0
  705. package/src/utils/enrichment.ts +330 -0
  706. package/src/utils/feeDripMetrics.ts +146 -0
  707. package/src/utils/general.ts +54 -0
  708. package/src/utils/index.ts +13 -0
  709. package/src/utils/ix.ts +227 -0
  710. package/src/utils/lendingPosition.ts +221 -0
  711. package/src/utils/lookupTables.ts +309 -0
  712. package/src/utils/lycData.ts +321 -0
  713. package/src/utils/timelock.ts +63 -0
  714. package/src/utils/tokenFeeMath.ts +25 -0
  715. package/src/utils/transactions.ts +109 -0
  716. package/src/utils/yieldingBank.ts +38 -0
  717. package/tsconfig.json +11 -0
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ /**
3
+ * Greedy bin-packing splitter for instruction lists that exceed the Solana
4
+ * transaction wire limit (1232 bytes).
5
+ *
6
+ * Instructions are packed left-to-right (preserving caller order) into the
7
+ * fewest bins where each bin compiles to a valid-sized transaction. The
8
+ * result is an ordered array of instruction arrays, each of which can be
9
+ * independently built into a v0 `TransactionMessage`.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SOLANA_TX_SIZE_LIMIT = void 0;
13
+ exports.measureTxBytes = measureTxBytes;
14
+ exports.buildInstructionSegments = buildInstructionSegments;
15
+ exports.splitIntoTransactionBins = splitIntoTransactionBins;
16
+ const kit_1 = require("@solana/kit");
17
+ const transaction_1 = require("./transaction");
18
+ const jito_1 = require("./jito");
19
+ /**
20
+ * Solana's maximum serialized transaction size in bytes. The base64 encoding
21
+ * inflates this to ~1644 chars, but we measure the decoded wire bytes via
22
+ * Kit's `compileTransaction` + `getBase64EncodedWireTransaction` and compare
23
+ * against the decoded length.
24
+ */
25
+ exports.SOLANA_TX_SIZE_LIMIT = 1232;
26
+ /**
27
+ * Measure the wire size of a compilable transaction message in bytes.
28
+ */
29
+ function measureTxBytes(msg) {
30
+ const compiled = (0, kit_1.compileTransaction)(msg);
31
+ const b64 = (0, kit_1.getBase64EncodedWireTransaction)(compiled);
32
+ return Math.ceil((b64.length * 3) / 4);
33
+ }
34
+ /**
35
+ * Turn a flat instruction list into indivisible segments for bin-packing.
36
+ *
37
+ * @throws If lengths are invalid or do not partition `instructions`.
38
+ */
39
+ function buildInstructionSegments(instructions, segmentLengths) {
40
+ if (segmentLengths === undefined || segmentLengths.length === 0) {
41
+ return instructions.map((ix) => [ix]);
42
+ }
43
+ const sum = segmentLengths.reduce((a, b) => a + b, 0);
44
+ if (sum !== instructions.length) {
45
+ throw new Error(`segmentLengths sum (${sum}) must equal instructions.length (${instructions.length}).`);
46
+ }
47
+ if (segmentLengths.some((n) => !Number.isInteger(n) || n <= 0)) {
48
+ throw new Error("segmentLengths entries must be positive integers.");
49
+ }
50
+ const segments = [];
51
+ let offset = 0;
52
+ for (const len of segmentLengths) {
53
+ segments.push(instructions.slice(offset, offset + len));
54
+ offset += len;
55
+ }
56
+ return segments;
57
+ }
58
+ /**
59
+ * Split an instruction list into the minimum number of ordered bins where
60
+ * each bin compiles to a transaction within the wire-size limit (minus
61
+ * `reservedBytes` of headroom for post-split instruction injection).
62
+ *
63
+ * Preserves instruction ordering: segments and instructions are never
64
+ * reordered across bins. Each bin is measured by actually compiling a v0
65
+ * message with the provided fee payer + ALTs, so the measurement accounts for
66
+ * signatures, account tables, and compact-u16 encoding exactly.
67
+ *
68
+ * Throws if:
69
+ * - A single segment cannot fit in one tx (even alone).
70
+ * - The total bins exceed `MAX_BUNDLE_TRANSACTIONS` (Jito's 5-tx limit).
71
+ */
72
+ async function splitIntoTransactionBins(rpc, payer, instructions, options = {}) {
73
+ const { lookupTables, additionalSigners, blockhash, reservedBytes = 0, segmentLengths, freshBinSegments, } = options;
74
+ const effectiveLimit = exports.SOLANA_TX_SIZE_LIMIT - reservedBytes;
75
+ const freshBinSet = freshBinSegments ? new Set(freshBinSegments) : undefined;
76
+ if (effectiveLimit <= 0) {
77
+ throw new Error(`reservedBytes (${reservedBytes}) is >= the tx size limit (${exports.SOLANA_TX_SIZE_LIMIT}).`);
78
+ }
79
+ const segments = buildInstructionSegments(instructions, segmentLengths);
80
+ const bins = [];
81
+ let currentBin = [];
82
+ const measureCandidate = async (candidate) => {
83
+ const msg = await (0, transaction_1.buildTransactionMessage)(rpc, payer, candidate, lookupTables, additionalSigners, blockhash);
84
+ return measureTxBytes(msg);
85
+ };
86
+ for (let segIdx = 0; segIdx < segments.length; segIdx += 1) {
87
+ const segment = segments[segIdx];
88
+ // If this segment must start a fresh bin, flush the current bin first
89
+ // so the segment lands at the start of a new bin.
90
+ if (freshBinSet?.has(segIdx) && currentBin.length > 0) {
91
+ bins.push(currentBin);
92
+ currentBin = [];
93
+ }
94
+ const candidate = [...currentBin, ...segment];
95
+ const size = await measureCandidate(candidate);
96
+ if (size <= effectiveLimit) {
97
+ currentBin = candidate;
98
+ continue;
99
+ }
100
+ // Segment doesn't fit in the current bin. If the bin is non-empty, flush
101
+ // it and start a new bin with the whole segment. If the bin IS empty,
102
+ // the segment is too large on its own — unrecoverable.
103
+ if (currentBin.length === 0) {
104
+ throw new Error(`An indivisible instruction group (${segment.length} instruction(s)) measures ` +
105
+ `${size} bytes, exceeding the ${effectiveLimit}-byte effective tx size limit ` +
106
+ `(${exports.SOLANA_TX_SIZE_LIMIT} - ${reservedBytes} reserved) even with address lookup ` +
107
+ `tables. Cannot split.`);
108
+ }
109
+ bins.push(currentBin);
110
+ currentBin = [...segment];
111
+ const segmentSize = await measureCandidate(currentBin);
112
+ if (segmentSize > effectiveLimit) {
113
+ throw new Error(`An indivisible instruction group (${segment.length} instruction(s)) measures ` +
114
+ `${segmentSize} bytes, exceeding the ${effectiveLimit}-byte effective tx size limit ` +
115
+ `(${exports.SOLANA_TX_SIZE_LIMIT} - ${reservedBytes} reserved) even with address lookup ` +
116
+ `tables. Cannot split.`);
117
+ }
118
+ }
119
+ if (currentBin.length > 0) {
120
+ bins.push(currentBin);
121
+ }
122
+ if (bins.length > jito_1.MAX_BUNDLE_TRANSACTIONS) {
123
+ throw new Error(`Instruction list requires ${bins.length} transactions, but Jito bundles ` +
124
+ `allow at most ${jito_1.MAX_BUNDLE_TRANSACTIONS}.`);
125
+ }
126
+ return { bins };
127
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Diagnostic helpers for inspecting which addresses a transaction references
3
+ * and whether they are covered by the caller's address lookup tables.
4
+ *
5
+ * Useful when bin-packing fails: if a segment is over the per-tx wire limit,
6
+ * the cheapest fix is usually adding addresses to a LUT so the compiler can
7
+ * compress them from 32-byte static keys down to 1-byte indices. This module
8
+ * surfaces the candidates by cross-referencing every account touched by the
9
+ * instruction list against the full contents of every passed LUT.
10
+ */
11
+ import type { Address, Instruction, Rpc, SolanaRpcApi, TransactionSigner } from "@solana/kit";
12
+ export interface LutUsage {
13
+ /** Addresses pulled from this LUT into the compiled message's writable section. */
14
+ writable: Address[];
15
+ /** Addresses pulled from this LUT into the compiled message's readonly section. */
16
+ readonly: Address[];
17
+ /** Total addresses stored in the LUT (capacity reference). */
18
+ size: number;
19
+ }
20
+ export interface AccountCoverageReport {
21
+ /** Compiled message's static account list (programs, fee payer, anything not LUT'd). */
22
+ staticAccounts: Address[];
23
+ /** Per-LUT: which entries the compiler actually used, plus the LUT's full size. */
24
+ lutUsage: Map<Address, LutUsage>;
25
+ /** All distinct addresses referenced by the instructions (programs + accounts + fee payer). */
26
+ referenced: Address[];
27
+ /** Distinct program IDs across all instructions (forced into static keys). */
28
+ programIds: Address[];
29
+ /** Addresses referenced but NOT present in any caller-supplied LUT. */
30
+ uncoveredByCallerLuts: Address[];
31
+ /**
32
+ * Subset of `uncoveredByCallerLuts` that excludes program IDs and the fee
33
+ * payer — i.e., concrete candidates to add to a LUT for further compression.
34
+ */
35
+ candidatesToAddToLut: Address[];
36
+ }
37
+ /**
38
+ * Compile the message with the caller's LUTs, decode the result, and produce
39
+ * a report describing which addresses are static, which came from LUTs, and
40
+ * which referenced addresses are still uncovered.
41
+ *
42
+ * Note: program IDs MUST live in the static account list — the v0 message
43
+ * format does not allow LUT lookup for the program-id slot. The report keeps
44
+ * them in `referenced` and `programIds` but excludes them from
45
+ * `candidatesToAddToLut` since putting a program in a LUT cannot help.
46
+ */
47
+ export declare function reportAccountCoverage(rpc: Rpc<SolanaRpcApi>, payer: TransactionSigner, instructions: Instruction[], lookupTableAddresses: Address[] | undefined): Promise<AccountCoverageReport>;
48
+ /** Pretty-print a coverage report. Designed for CLI/script diagnostic use. */
49
+ export declare function logAccountCoverage(label: string, report: AccountCoverageReport): void;
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ /**
3
+ * Diagnostic helpers for inspecting which addresses a transaction references
4
+ * and whether they are covered by the caller's address lookup tables.
5
+ *
6
+ * Useful when bin-packing fails: if a segment is over the per-tx wire limit,
7
+ * the cheapest fix is usually adding addresses to a LUT so the compiler can
8
+ * compress them from 32-byte static keys down to 1-byte indices. This module
9
+ * surfaces the candidates by cross-referencing every account touched by the
10
+ * instruction list against the full contents of every passed LUT.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.reportAccountCoverage = reportAccountCoverage;
14
+ exports.logAccountCoverage = logAccountCoverage;
15
+ const kit_1 = require("@solana/kit");
16
+ const lutManager_1 = require("../services/lutManager");
17
+ const transaction_1 = require("./transaction");
18
+ /**
19
+ * Compile the message with the caller's LUTs, decode the result, and produce
20
+ * a report describing which addresses are static, which came from LUTs, and
21
+ * which referenced addresses are still uncovered.
22
+ *
23
+ * Note: program IDs MUST live in the static account list — the v0 message
24
+ * format does not allow LUT lookup for the program-id slot. The report keeps
25
+ * them in `referenced` and `programIds` but excludes them from
26
+ * `candidatesToAddToLut` since putting a program in a LUT cannot help.
27
+ */
28
+ async function reportAccountCoverage(rpc, payer, instructions, lookupTableAddresses) {
29
+ // Fetch the FULL contents of every caller-supplied LUT (regardless of which
30
+ // entries the compiler ends up referencing) so we can answer "is this
31
+ // address in any of MY LUTs?" — the actionable question for tightening
32
+ // coverage.
33
+ const callerLuts = lookupTableAddresses?.length
34
+ ? await lutManager_1.lutManager.getLookupTableInputs(rpc, lookupTableAddresses)
35
+ : [];
36
+ const callerLutAddressSet = new Set(callerLuts.flatMap((l) => l.addresses));
37
+ // Compile the message with LUTs to see what actually got compressed and
38
+ // what spilled into the static account list.
39
+ const msg = await (0, transaction_1.buildTransactionMessage)(rpc, payer, instructions, lookupTableAddresses);
40
+ const compiled = (0, kit_1.compileTransaction)(msg);
41
+ const decoded = (0, kit_1.getCompiledTransactionMessageDecoder)().decode(compiled.messageBytes);
42
+ const staticAccounts = (decoded.staticAccounts ?? []);
43
+ const altLookups = "addressTableLookups" in decoded ? (decoded.addressTableLookups ?? []) : [];
44
+ const lutUsage = new Map();
45
+ for (const lut of callerLuts) {
46
+ lutUsage.set(lut.address, { writable: [], readonly: [], size: lut.addresses.length });
47
+ }
48
+ for (const lookup of altLookups) {
49
+ const fullAddrs = callerLuts.find((l) => l.address === lookup.lookupTableAddress)?.addresses;
50
+ const usage = lutUsage.get(lookup.lookupTableAddress) ?? {
51
+ writable: [],
52
+ readonly: [],
53
+ size: fullAddrs?.length ?? 0,
54
+ };
55
+ if (fullAddrs) {
56
+ usage.writable = lookup.writableIndexes.map((i) => fullAddrs[i]);
57
+ usage.readonly = lookup.readonlyIndexes.map((i) => fullAddrs[i]);
58
+ }
59
+ lutUsage.set(lookup.lookupTableAddress, usage);
60
+ }
61
+ const referencedSet = new Set();
62
+ const programSet = new Set();
63
+ referencedSet.add(payer.address);
64
+ for (const ix of instructions) {
65
+ referencedSet.add(ix.programAddress);
66
+ programSet.add(ix.programAddress);
67
+ for (const acc of ix.accounts ?? []) {
68
+ referencedSet.add(acc.address);
69
+ }
70
+ }
71
+ const referenced = [...referencedSet];
72
+ const programIds = [...programSet];
73
+ const uncoveredByCallerLuts = referenced.filter((a) => !callerLutAddressSet.has(a));
74
+ const candidatesToAddToLut = uncoveredByCallerLuts.filter((a) => a !== payer.address && !programSet.has(a));
75
+ return {
76
+ staticAccounts,
77
+ lutUsage,
78
+ referenced,
79
+ programIds,
80
+ uncoveredByCallerLuts,
81
+ candidatesToAddToLut,
82
+ };
83
+ }
84
+ /** Pretty-print a coverage report. Designed for CLI/script diagnostic use. */
85
+ function logAccountCoverage(label, report) {
86
+ console.log(`\n── Account coverage: ${label} ──`);
87
+ console.log(`Compiled static accounts (${report.staticAccounts.length}) — programs, fee payer, and uncompressed:`);
88
+ report.staticAccounts.forEach((a, i) => console.log(` [${i}] ${a}`));
89
+ console.log(`\nCaller-supplied LUTs (${report.lutUsage.size}):`);
90
+ if (report.lutUsage.size === 0) {
91
+ console.log(" (none)");
92
+ }
93
+ for (const [lut, usage] of report.lutUsage) {
94
+ const used = usage.writable.length + usage.readonly.length;
95
+ console.log(` ${lut} size=${usage.size} used=${used}`);
96
+ if (usage.writable.length > 0) {
97
+ console.log(` writable (${usage.writable.length}): ${usage.writable.join(", ")}`);
98
+ }
99
+ if (usage.readonly.length > 0) {
100
+ console.log(` readonly (${usage.readonly.length}): ${usage.readonly.join(", ")}`);
101
+ }
102
+ }
103
+ console.log(`\nReferenced addresses: ${report.referenced.length} ` +
104
+ `(${report.programIds.length} program ID${report.programIds.length === 1 ? "" : "s"})`);
105
+ console.log(`\nReferenced but NOT in any caller LUT (${report.uncoveredByCallerLuts.length}):`);
106
+ if (report.uncoveredByCallerLuts.length === 0) {
107
+ console.log(" (none — every referenced address is in at least one caller LUT)");
108
+ }
109
+ else {
110
+ for (const a of report.uncoveredByCallerLuts) {
111
+ const tag = report.programIds.includes(a) ? " [PROGRAM — must be static]" : "";
112
+ console.log(` ${a}${tag}`);
113
+ }
114
+ }
115
+ console.log(`\nCandidates to add to a LUT (excludes programs + fee payer; ${report.candidatesToAddToLut.length}):`);
116
+ if (report.candidatesToAddToLut.length === 0) {
117
+ console.log(" (none — uncovered addresses are all programs or the fee payer)");
118
+ }
119
+ else {
120
+ report.candidatesToAddToLut.forEach((a) => console.log(` ${a}`));
121
+ }
122
+ }
@@ -0,0 +1,59 @@
1
+ import type { Address, Transaction } from "@solana/kit";
2
+ import type { QuoteResponse } from "@jup-ag/api";
3
+ import type { JupiterQuoteParams, JupiterSwapParams } from "./types";
4
+ /**
5
+ * Get a Jupiter swap quote.
6
+ *
7
+ * @param params - Quote parameters
8
+ * @returns Quote response from Jupiter API
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const quote = await getJupiterQuote({
13
+ * inputMint: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
14
+ * outputMint: address("So11111111111111111111111111111111111111112"),
15
+ * amount: 1000_000, // 1 USDC (6 decimals)
16
+ * });
17
+ * ```
18
+ */
19
+ export declare function getJupiterQuote(params: JupiterQuoteParams): Promise<QuoteResponse>;
20
+ /**
21
+ * Build a Jupiter swap transaction from a quote.
22
+ *
23
+ * @param params - Swap parameters including quote and user public key
24
+ * @returns Kit Transaction ready for signing or instruction extraction
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const quote = await getJupiterQuote({ ... });
29
+ * const tx = await buildJupiterSwapTransaction({
30
+ * quote,
31
+ * userPublicKey: myPdaAddress, // Can be a PDA for CPI
32
+ * });
33
+ * ```
34
+ */
35
+ export declare function buildJupiterSwapTransaction(params: JupiterSwapParams): Promise<Transaction>;
36
+ /**
37
+ * Convenience function to get quote and build transaction in one call.
38
+ *
39
+ * @param quoteParams - Quote parameters
40
+ * @param userPublicKey - Address that will execute the swap
41
+ * @param swapOptions - Additional swap options
42
+ * @returns Quote response and Kit transaction
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const { quote, transaction } = await getJupiterSwapTransaction(
47
+ * {
48
+ * inputMint: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
49
+ * outputMint: address("So11111111111111111111111111111111111111112"),
50
+ * amount: 1000_000,
51
+ * },
52
+ * myPdaAddress
53
+ * );
54
+ * ```
55
+ */
56
+ export declare function getJupiterSwapTransaction(quoteParams: JupiterQuoteParams, userPublicKey: Address, swapOptions?: Omit<JupiterSwapParams, "quote" | "userPublicKey">): Promise<{
57
+ quote: QuoteResponse;
58
+ transaction: Transaction;
59
+ }>;
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getJupiterQuote = getJupiterQuote;
4
+ exports.buildJupiterSwapTransaction = buildJupiterSwapTransaction;
5
+ exports.getJupiterSwapTransaction = getJupiterSwapTransaction;
6
+ const kit_1 = require("@solana/kit");
7
+ const api_1 = require("@jup-ag/api");
8
+ const constants_1 = require("./constants");
9
+ /**
10
+ * Get a Jupiter swap quote.
11
+ *
12
+ * @param params - Quote parameters
13
+ * @returns Quote response from Jupiter API
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const quote = await getJupiterQuote({
18
+ * inputMint: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
19
+ * outputMint: address("So11111111111111111111111111111111111111112"),
20
+ * amount: 1000_000, // 1 USDC (6 decimals)
21
+ * });
22
+ * ```
23
+ */
24
+ async function getJupiterQuote(params) {
25
+ const jupiterApi = (0, api_1.createJupiterApiClient)({ basePath: constants_1.JUPITER_API_URL });
26
+ const amount = typeof params.amount === "bigint" ? Number(params.amount) : params.amount;
27
+ const request = {
28
+ inputMint: params.inputMint,
29
+ outputMint: params.outputMint,
30
+ amount,
31
+ slippageBps: params.slippageBps ?? constants_1.DEFAULT_SLIPPAGE_BPS,
32
+ swapMode: params.swapMode,
33
+ maxAccounts: params.maxAccounts,
34
+ dexes: params.dexes,
35
+ // When `dexes` is set it acts as a whitelist and `excludeDexes` is irrelevant.
36
+ // Otherwise the caller's exclusions are merged with the global list.
37
+ excludeDexes: params.dexes
38
+ ? undefined
39
+ : [...new Set([...constants_1.ALWAYS_EXCLUDED_DEXES, ...(params.excludeDexes ?? [])])],
40
+ onlyDirectRoutes: params.onlyDirectRoutes,
41
+ };
42
+ try {
43
+ return await jupiterApi.quoteGet(request);
44
+ }
45
+ catch (err) {
46
+ throw await enrichJupiterHttpError(err, request);
47
+ }
48
+ }
49
+ /**
50
+ * The OpenAPI client throws `ResponseError` with a generic message; the real reason
51
+ * is usually in the HTTP body (e.g. no route, validation).
52
+ */
53
+ async function enrichJupiterHttpError(err, request) {
54
+ if (!(err instanceof Error) || !("response" in err)) {
55
+ return err instanceof Error ? err : new Error(String(err));
56
+ }
57
+ const res = err.response;
58
+ if (!res || res.ok || typeof res.text !== "function") {
59
+ return err;
60
+ }
61
+ let body = "";
62
+ try {
63
+ body = (await res.text()).slice(0, 2000);
64
+ }
65
+ catch {
66
+ body = "<failed to read response body>";
67
+ }
68
+ return new Error(`Jupiter quoteGet http=${res.status} ${res.statusText} request=${JSON.stringify(request)} body=${body} (was: ${err.message})`);
69
+ }
70
+ /**
71
+ * Build a Jupiter swap transaction from a quote.
72
+ *
73
+ * @param params - Swap parameters including quote and user public key
74
+ * @returns Kit Transaction ready for signing or instruction extraction
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * const quote = await getJupiterQuote({ ... });
79
+ * const tx = await buildJupiterSwapTransaction({
80
+ * quote,
81
+ * userPublicKey: myPdaAddress, // Can be a PDA for CPI
82
+ * });
83
+ * ```
84
+ */
85
+ async function buildJupiterSwapTransaction(params) {
86
+ const jupiterApi = (0, api_1.createJupiterApiClient)({ basePath: constants_1.JUPITER_API_URL });
87
+ const swapResult = await jupiterApi.swapPost({
88
+ swapRequest: {
89
+ quoteResponse: params.quote,
90
+ userPublicKey: params.userPublicKey,
91
+ wrapAndUnwrapSol: params.wrapAndUnwrapSol ?? false, // Default false for CPI
92
+ dynamicComputeUnitLimit: params.dynamicComputeUnitLimit ?? true,
93
+ },
94
+ });
95
+ // Jupiter returns a base64-encoded serialized transaction
96
+ // In Kit, "encoder" converts string -> bytes, "decoder" converts bytes -> string
97
+ const base64Encoder = (0, kit_1.getBase64Encoder)();
98
+ const transactionBytes = base64Encoder.encode(swapResult.swapTransaction);
99
+ const transactionDecoder = (0, kit_1.getTransactionDecoder)();
100
+ return transactionDecoder.decode(transactionBytes);
101
+ }
102
+ /**
103
+ * Convenience function to get quote and build transaction in one call.
104
+ *
105
+ * @param quoteParams - Quote parameters
106
+ * @param userPublicKey - Address that will execute the swap
107
+ * @param swapOptions - Additional swap options
108
+ * @returns Quote response and Kit transaction
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const { quote, transaction } = await getJupiterSwapTransaction(
113
+ * {
114
+ * inputMint: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),
115
+ * outputMint: address("So11111111111111111111111111111111111111112"),
116
+ * amount: 1000_000,
117
+ * },
118
+ * myPdaAddress
119
+ * );
120
+ * ```
121
+ */
122
+ async function getJupiterSwapTransaction(quoteParams, userPublicKey, swapOptions) {
123
+ const quote = await getJupiterQuote(quoteParams);
124
+ const transaction = await buildJupiterSwapTransaction({
125
+ quote,
126
+ userPublicKey,
127
+ ...swapOptions,
128
+ });
129
+ return { quote, transaction };
130
+ }
@@ -0,0 +1,79 @@
1
+ import { type Address, type Rpc, type SolanaRpcApi } from "@solana/kit";
2
+ import type { QuoteResponse } from "@jup-ag/api";
3
+ import type { JupiterSwapClientConfig } from "./types";
4
+ import { CpiData, RoutableSwapClient, SwapQuoteParams, SwapQuote, SwapQuoteCoveringMinOutputParams, SwapInstructionOptions } from "common";
5
+ /** Jupiter-specific swap quote with typed rawQuote */
6
+ export type JupiterSwapQuote = SwapQuote<QuoteResponse>;
7
+ /**
8
+ * Jupiter swap client implementing RoutableSwapClient (see `common`).
9
+ *
10
+ * Provides a simplified API for getting quotes and building swap instructions
11
+ * from Jupiter aggregator for use in CPI calls.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const client = new JupiterSwapClient(rpc);
16
+ *
17
+ * // Get a quote
18
+ * const quote = await client.getQuote({
19
+ * inputMint: USDC_MINT,
20
+ * outputMint: WSOL_MINT,
21
+ * amount: 10_000_000, // 10 USDC
22
+ * slippageBps: 500, // 5%
23
+ * });
24
+ *
25
+ * // Build instruction for CPI
26
+ * const { data, accounts, programId } = await client.getSwapCpiData(
27
+ * quote,
28
+ * swapAuthorityPda
29
+ * );
30
+ *
31
+ * // Use in your Anchor program
32
+ * await program.methods
33
+ * .executeSwap(Buffer.from(data))
34
+ * .remainingAccounts(accounts.map(toWeb3AccountMeta))
35
+ * .rpc();
36
+ * ```
37
+ */
38
+ export declare class JupiterSwapClient implements RoutableSwapClient<QuoteResponse> {
39
+ private rpc;
40
+ private readonly config;
41
+ /**
42
+ * Empty lists mean any route for aggregate routing (Jupiter quotes arbitrary
43
+ * pairs via the API).
44
+ */
45
+ readonly inputMints: readonly Address[];
46
+ readonly outputMints: readonly Address[];
47
+ readonly routeAnchorMints: readonly Address[];
48
+ /**
49
+ * Creates a new Jupiter swap client.
50
+ *
51
+ * @param rpc - Solana RPC client for resolving address lookup tables
52
+ * @param config - Optional default quote policy applied to every Jupiter quote
53
+ */
54
+ constructor(rpc: Rpc<SolanaRpcApi>, config?: JupiterSwapClientConfig);
55
+ /**
56
+ * Get a swap quote from Jupiter.
57
+ *
58
+ * @param params - Quote parameters
59
+ * @returns Normalized swap quote with Jupiter's QuoteResponse as rawQuote
60
+ */
61
+ getQuote(params: SwapQuoteParams): Promise<JupiterSwapQuote>;
62
+ /**
63
+ * Use Jupiter `ExactOut` quoting: desired output is `minOutputAmount`; reject if implied
64
+ * input exceeds `maxInputAmount`.
65
+ */
66
+ getQuoteCoveringMinOutput(params: SwapQuoteCoveringMinOutputParams): Promise<JupiterSwapQuote>;
67
+ /**
68
+ * Build Jupiter swap instruction for CPI.
69
+ *
70
+ * This fetches a swap transaction from Jupiter API, decompiles it,
71
+ * and extracts the instruction data and accounts needed for CPI.
72
+ *
73
+ * @param quote - Quote from getQuote()
74
+ * @param userPublicKey - Address executing the swap (typically a PDA)
75
+ * @param options - Swap options
76
+ * @returns Instruction data, accounts, and Jupiter program ID
77
+ */
78
+ getSwapCpiData(quote: JupiterSwapQuote, userPublicKey: Address, options?: SwapInstructionOptions): Promise<CpiData>;
79
+ }