@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,585 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionError = exports.HEAVY_CPI_COMPUTE_UNIT_LIMIT_MULTIPLIER = exports.DEFAULT_COMPUTE_UNIT_LIMIT_MULTIPLIER = void 0;
4
+ exports.computeUnitLimitFromSimulation = computeUnitLimitFromSimulation;
5
+ exports.buildTransactionMessage = buildTransactionMessage;
6
+ exports.simulateTransaction = simulateTransaction;
7
+ exports.signSendAndConfirmTransaction = signSendAndConfirmTransaction;
8
+ const kit_1 = require("@solana/kit");
9
+ const instruction_1 = require("./instruction");
10
+ const lutManager_1 = require("../services/lutManager");
11
+ const general_1 = require("./general");
12
+ const constants_1 = require("../constants");
13
+ const jito_1 = require("./jito");
14
+ const jsonRpcFetch_1 = require("./jsonRpcFetch");
15
+ const retry_1 = require("./retry");
16
+ const rpc_1 = require("./rpc");
17
+ const priorityFee_1 = require("./priorityFee");
18
+ const transactionSplitter_1 = require("./transactionSplitter");
19
+ const MAX_COMPUTE_UNIT_LIMIT = 1400000;
20
+ /** Default headroom over simulated CU usage for typical operator transactions. */
21
+ exports.DEFAULT_COMPUTE_UNIT_LIMIT_MULTIPLIER = 1.1;
22
+ /**
23
+ * Headroom for txs with deep CPI stacks (Jupiter + external liquidity mint/deposit).
24
+ * Simulation often undershoots on-chain usage by more than 10%.
25
+ */
26
+ exports.HEAVY_CPI_COMPUTE_UNIT_LIMIT_MULTIPLIER = 1.2;
27
+ function computeUnitLimitFromSimulation(unitsConsumed, multiplier = exports.DEFAULT_COMPUTE_UNIT_LIMIT_MULTIPLIER) {
28
+ if (!(unitsConsumed > 0) || !(multiplier > 0)) {
29
+ return MAX_COMPUTE_UNIT_LIMIT;
30
+ }
31
+ return Math.min(MAX_COMPUTE_UNIT_LIMIT, Math.ceil(unitsConsumed * multiplier));
32
+ }
33
+ /** Distinct writable account addresses across `instructions`. */
34
+ function collectWritableAccounts(instructions) {
35
+ const seen = new Set();
36
+ const out = [];
37
+ for (const ix of instructions) {
38
+ for (const acc of ix.accounts ?? []) {
39
+ // Account flags: 1 = writable in Kit's `IAccountMeta` (signer is bit 0).
40
+ const role = acc.role;
41
+ if (role != null && (role & 1) === 1) {
42
+ const addr = acc.address;
43
+ if (!seen.has(addr)) {
44
+ seen.add(addr);
45
+ out.push(addr);
46
+ }
47
+ }
48
+ }
49
+ }
50
+ return out;
51
+ }
52
+ async function signTransactionsWithSigners(transactions, signers) {
53
+ let signedTransactions = [...transactions];
54
+ const modifyingSigners = signers.filter(kit_1.isTransactionModifyingSigner);
55
+ const partialSigners = signers.filter(kit_1.isTransactionPartialSigner);
56
+ for (const signer of modifyingSigners) {
57
+ signedTransactions = [...(await signer.modifyAndSignTransactions(signedTransactions))];
58
+ }
59
+ for (const signer of partialSigners) {
60
+ const signatures = await signer.signTransactions(signedTransactions);
61
+ signedTransactions = signedTransactions.map((transaction, index) => ({
62
+ ...transaction,
63
+ signatures: {
64
+ ...transaction.signatures,
65
+ ...signatures[index],
66
+ },
67
+ }));
68
+ }
69
+ for (const transaction of signedTransactions) {
70
+ (0, kit_1.assertIsFullySignedTransaction)(transaction);
71
+ }
72
+ return signedTransactions;
73
+ }
74
+ /**
75
+ * Error thrown when a transaction simulation or on-chain execution fails.
76
+ * Carries the raw Solana program logs so callers (e.g. NestJS services)
77
+ * can log them through their own structured logger instead of dumping
78
+ * to stdout via `console.error`.
79
+ */
80
+ class TransactionError extends Error {
81
+ constructor(message, programLogs = []) {
82
+ super(programLogs.length ? `${message}\n\nProgram logs:\n${programLogs.join("\n")}` : message);
83
+ this.name = "TransactionError";
84
+ this.programLogs = programLogs;
85
+ }
86
+ }
87
+ exports.TransactionError = TransactionError;
88
+ function logProgramLogsLineByLine(logs, label = "Program logs") {
89
+ if (!logs.length) {
90
+ console.error(`${label}: (no logs returned)`);
91
+ return;
92
+ }
93
+ console.error(`${label} (${logs.length} lines):`);
94
+ logs.forEach((line, index) => {
95
+ console.error(`[${index}] ${line}`);
96
+ });
97
+ }
98
+ async function resolvePriorityFeeMicroLamports(rpc, transactionMessage, writableAccounts, options) {
99
+ if (options?.computeUnitPriceMicroLamports !== undefined) {
100
+ return options.computeUnitPriceMicroLamports;
101
+ }
102
+ if (options?.priorityFeeSetting === undefined) {
103
+ return undefined;
104
+ }
105
+ const estimateMessage = (0, kit_1.appendTransactionMessageInstructions)([(0, instruction_1.setComputeUnitLimitIx)(MAX_COMPUTE_UNIT_LIMIT)], transactionMessage);
106
+ const estimateTransaction = (0, kit_1.getBase64EncodedWireTransaction)((0, kit_1.compileTransaction)(estimateMessage));
107
+ return (0, priorityFee_1.getPriorityFeeEstimate)(rpc, estimateTransaction, writableAccounts, options.priorityFeeSetting);
108
+ }
109
+ function getComputeBudgetInstructions(computeUnitLimit, priorityFeeMicroLamports) {
110
+ return priorityFeeMicroLamports === undefined
111
+ ? [(0, instruction_1.setComputeUnitLimitIx)(computeUnitLimit)]
112
+ : [(0, instruction_1.setComputeUnitPriceIx)(priorityFeeMicroLamports), (0, instruction_1.setComputeUnitLimitIx)(computeUnitLimit)];
113
+ }
114
+ /**
115
+ * Build a transaction message from instructions with embedded signers.
116
+ *
117
+ * @param rpc - Solana RPC client
118
+ * @param feePayer - Fee payer with TransactionSigner (signer will be embedded)
119
+ * @param instructions - Instructions to include
120
+ * @param lookupTableAddresses - Optional lookup tables for compression
121
+ * @param additionalSigners - Optional additional signers beyond fee payer
122
+ * @param blockhash - Optional blockhash (fetched if not provided)
123
+ */
124
+ async function buildTransactionMessage(rpc, feePayer, instructions, lookupTableAddresses, additionalSigners, blockhash) {
125
+ const blockhashInfo = blockhash ??
126
+ (await rpc.getLatestBlockhash({ commitment: "confirmed" }).send()).value;
127
+ let transactionMessage = (0, kit_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), (tx) => (0, kit_1.setTransactionMessageFeePayerSigner)(feePayer, tx), (tx) => (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(blockhashInfo, tx), (tx) => (0, kit_1.appendTransactionMessageInstructions)(instructions, tx));
128
+ // Attach all signers (fee payer + additional) to instruction accounts that need them
129
+ const allSigners = [feePayer, ...(additionalSigners ?? [])];
130
+ transactionMessage = (0, kit_1.addSignersToTransactionMessage)(allSigners, transactionMessage);
131
+ if (lookupTableAddresses?.length) {
132
+ const lutInputs = await lutManager_1.lutManager.getLookupTableInputs(rpc, (0, general_1.deduplicateAccounts)(lookupTableAddresses));
133
+ const lookupTables = {};
134
+ for (const lut of lutInputs) {
135
+ lookupTables[lut.address] = [...lut.addresses];
136
+ }
137
+ transactionMessage = (0, kit_1.compressTransactionMessageUsingAddressLookupTables)(transactionMessage, lookupTables);
138
+ }
139
+ return transactionMessage;
140
+ }
141
+ /**
142
+ * Simulate a transaction message without requiring real signatures.
143
+ *
144
+ * Compiles the message into a wire-format transaction (with placeholder
145
+ * signatures), sends it to `simulateTransaction` with signature verification
146
+ * disabled, and validates the same recent blockhash that will be signed and
147
+ * sent if simulation succeeds.
148
+ *
149
+ * @param rpc - Solana RPC client
150
+ * @param transactionMessage - A compilable transaction message (with embedded signers)
151
+ */
152
+ async function simulateTransaction(rpc, transactionMessage) {
153
+ const compiledTransaction = (0, kit_1.compileTransaction)(transactionMessage);
154
+ const base64EncodedTransaction = (0, kit_1.getBase64EncodedWireTransaction)(compiledTransaction);
155
+ const { value: { err, logs, unitsConsumed }, } = await rpc
156
+ .simulateTransaction(base64EncodedTransaction, {
157
+ encoding: "base64",
158
+ sigVerify: false,
159
+ replaceRecentBlockhash: false,
160
+ commitment: "confirmed",
161
+ })
162
+ .send();
163
+ return {
164
+ err: err,
165
+ logs: logs ?? [],
166
+ unitsConsumed: unitsConsumed ?? 0n,
167
+ };
168
+ }
169
+ /**
170
+ * Build, sign, send, and confirm a transaction using embedded signers.
171
+ *
172
+ * Use this with instructions that have TransactionSigner objects embedded
173
+ * in their accounts.
174
+ *
175
+ * @param rpc - Solana RPC client
176
+ * @param payer - Fee payer with TransactionSigner
177
+ * @param instructionsOrPlan - Kit Instructions or a composed transaction plan
178
+ * (with embedded signers)
179
+ * @param options - Optional configuration
180
+ * @returns Transaction signature
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * const sig = await signSendAndConfirmTransaction(rpc, payer, [
185
+ * computeBudgetIx,
186
+ * transferIx,
187
+ * ]);
188
+ * ```
189
+ */
190
+ async function signSendAndConfirmTransaction(rpc, payer, instructionsOrPlan, options) {
191
+ const instructions = Array.isArray(instructionsOrPlan)
192
+ ? instructionsOrPlan
193
+ : instructionsOrPlan.instructions;
194
+ const lookupTables = Array.isArray(instructionsOrPlan)
195
+ ? options?.lookupTables
196
+ : (options?.lookupTables ?? instructionsOrPlan.lookupTables);
197
+ const segmentLengths = Array.isArray(instructionsOrPlan)
198
+ ? undefined
199
+ : instructionsOrPlan.segmentLengths;
200
+ const freshBinSegments = Array.isArray(instructionsOrPlan)
201
+ ? undefined
202
+ : instructionsOrPlan.freshBinSegments;
203
+ const filteredLuts = lookupTables?.filter((x) => x !== constants_1.DEFAULT_PUBLIC_KEY);
204
+ // Build transaction message with embedded signers
205
+ const transactionMessage = await buildTransactionMessage(rpc, payer, instructions, filteredLuts, options?.additionalSigners);
206
+ // Reserve room for compute-budget instructions added after this measurement.
207
+ // Also route to the split path whenever the plan declares
208
+ // `freshBinSegments`, since those boundaries only take effect there.
209
+ const txBytes = (0, transactionSplitter_1.measureTxBytes)(transactionMessage);
210
+ const maxUnaugmentedTxBytes = transactionSplitter_1.SOLANA_TX_SIZE_LIMIT - jito_1.BUNDLE_INJECTED_IX_RESERVED_BYTES;
211
+ const mustSplit = txBytes > maxUnaugmentedTxBytes || options?.forceJitoBundle || !!freshBinSegments?.length;
212
+ if (mustSplit) {
213
+ if (options?.sendOversizedAsSequentialTransactions) {
214
+ return signSendAndConfirmSplitSequentially(rpc, payer, instructions, filteredLuts, options, segmentLengths, freshBinSegments);
215
+ }
216
+ return _signSendAndConfirmBundle(rpc, payer, instructions, filteredLuts, options, segmentLengths, freshBinSegments);
217
+ }
218
+ // ── Single-transaction happy path ──
219
+ // Resolve the caller's explicit price or provider-routed priority level. If
220
+ // neither is provided, the transaction carries no compute-unit-price instruction.
221
+ const writableAccounts = collectWritableAccounts(instructions);
222
+ const priorityFeeMicroLamports = await resolvePriorityFeeMicroLamports(rpc, transactionMessage, writableAccounts, options);
223
+ // Simulate with the max CU limit and, when requested, the chosen priority
224
+ // fee. Matching the final compute-budget instructions keeps preflight costs
225
+ // consistent with the on-chain transaction.
226
+ const simMessage = (0, kit_1.appendTransactionMessageInstructions)(getComputeBudgetInstructions(MAX_COMPUTE_UNIT_LIMIT, priorityFeeMicroLamports), transactionMessage);
227
+ const simulation = await simulateTransaction(rpc, simMessage);
228
+ if (simulation.err) {
229
+ if (!options?.hideFailureInfo) {
230
+ console.error("Simulation failed:", simulation.err);
231
+ logProgramLogsLineByLine(simulation.logs, "Simulation logs");
232
+ }
233
+ const errStr = JSON.stringify(simulation.err, (_, v) => typeof v === "bigint" ? v.toString() : v);
234
+ throw new TransactionError(`Transaction simulation failed: ${errStr}`, simulation.logs);
235
+ }
236
+ // Append the measured CU limit (with headroom) and the optional priority fee.
237
+ const computeUnits = computeUnitLimitFromSimulation(Number(simulation.unitsConsumed), options?.computeUnitLimitMultiplier ?? exports.DEFAULT_COMPUTE_UNIT_LIMIT_MULTIPLIER);
238
+ const finalMessage = (0, kit_1.appendTransactionMessageInstructions)(getComputeBudgetInstructions(computeUnits, priorityFeeMicroLamports), transactionMessage);
239
+ // Sign with embedded signers
240
+ const signedTx = await (0, kit_1.signTransactionMessageWithSigners)(finalMessage);
241
+ // Send transaction
242
+ const base64EncodedTransaction = (0, kit_1.getBase64EncodedWireTransaction)(signedTx);
243
+ const signature = (0, kit_1.getSignatureFromTransaction)(signedTx);
244
+ await rpc
245
+ .sendTransaction(base64EncodedTransaction, {
246
+ encoding: "base64",
247
+ skipPreflight: true,
248
+ })
249
+ .send();
250
+ // Confirm transaction at the specified commitment level
251
+ try {
252
+ await confirmTransaction(rpc, signature, "confirmed");
253
+ options?.onSuccess?.();
254
+ return signature;
255
+ }
256
+ catch (error) {
257
+ // Before declaring failure, ask the RPC for the on-chain truth. The
258
+ // confirmation loop can fail for reasons unrelated to the tx itself
259
+ // (timeout, upstream provider returning "All providers failed", etc.),
260
+ // and in those cases the tx may have actually landed.
261
+ let logs = [];
262
+ let landedSuccessfully = false;
263
+ try {
264
+ const info = await rpc
265
+ .getTransaction(signature, { commitment: "confirmed", encoding: "base64" })
266
+ .send();
267
+ if (info) {
268
+ logs = (info.meta?.logMessages ?? []);
269
+ if (info.meta?.err == null) {
270
+ landedSuccessfully = true;
271
+ }
272
+ }
273
+ }
274
+ catch {
275
+ // Best-effort lookup; if this also fails, we fall through and throw.
276
+ }
277
+ if (landedSuccessfully) {
278
+ console.warn(`Confirmation polling failed for signature ${signature} but the transaction landed on-chain; treating as success. Reason: ${error instanceof Error ? error.message : String(error)}`);
279
+ options?.onSuccess?.();
280
+ return signature;
281
+ }
282
+ if (!options?.hideFailureInfo) {
283
+ console.error("Transaction failed:", error);
284
+ logProgramLogsLineByLine(logs, "Transaction logs");
285
+ }
286
+ throw new TransactionError(`Transaction failed: ${error}`, logs);
287
+ }
288
+ }
289
+ /**
290
+ * Build and sign one split bin.
291
+ */
292
+ async function signSplitBin(rpc, payer, bin, lookupTables, additionalSigners, blockhash, priorityFeeMicroLamports) {
293
+ const msg = await buildTransactionMessage(rpc, payer, bin, lookupTables, additionalSigners, blockhash);
294
+ const finalMsg = (0, kit_1.appendTransactionMessageInstructions)(getComputeBudgetInstructions(MAX_COMPUTE_UNIT_LIMIT, priorityFeeMicroLamports), msg);
295
+ const signed = await (0, kit_1.signTransactionMessageWithSigners)(finalMsg);
296
+ return {
297
+ wireB64: (0, kit_1.getBase64EncodedWireTransaction)(signed),
298
+ signature: (0, kit_1.getSignatureFromTransaction)(signed),
299
+ };
300
+ }
301
+ /**
302
+ * Split an oversize instruction list into multiple transactions and submit
303
+ * them atomically as a Jito bundle. If Jito is disabled (`jitoTipLamports === 0`),
304
+ * throws instead of bundling.
305
+ *
306
+ * Bundle simulation runs through the RPC's `simulateBundle` (instead of a
307
+ * per-bin `simulateTransaction`) so intra-bundle dependencies — e.g. a
308
+ * refresh ix in bin 0 that the rebalance ix in bin 1 relies on — are honored
309
+ * by the simulator the same way they are by atomic bundle execution. The
310
+ * simulation skips signature verification but validates the same shared
311
+ * blockhash that is retained for final signing.
312
+ */
313
+ async function _signSendAndConfirmBundle(rpc, payer, instructions, lookupTables, options, segmentLengths, freshBinSegments) {
314
+ const tipLamports = options?.jitoTipLamports ?? jito_1.DEFAULT_JITO_TIP_LAMPORTS;
315
+ if (tipLamports === 0) {
316
+ throw new TransactionError("Transaction exceeds the Solana size limit and Jito bundling is disabled. " +
317
+ "Set jitoTipLamports > 0 to enable bundle fallback.");
318
+ }
319
+ // Fetch one blockhash and reuse it for every tx in the bundle. This
320
+ // avoids redundant RPC calls during splitting + per-bin build, and
321
+ // ensures the whole bundle shares a single liveness window.
322
+ const { value: blockhash } = (await rpc
323
+ .getLatestBlockhash({ commitment: "confirmed" })
324
+ .send());
325
+ // Split instructions, reserving headroom for the compute-unit-limit ix
326
+ // that gets appended to every bin and the Jito tip ix that gets appended
327
+ // to one bin. Without reservation, a near-full bin would overflow 1232
328
+ // bytes once those are injected.
329
+ const { bins } = await (0, transactionSplitter_1.splitIntoTransactionBins)(rpc, payer, instructions, {
330
+ lookupTables,
331
+ additionalSigners: options?.additionalSigners,
332
+ blockhash,
333
+ reservedBytes: jito_1.BUNDLE_INJECTED_IX_RESERVED_BYTES,
334
+ segmentLengths,
335
+ freshBinSegments,
336
+ });
337
+ if (bins.length === 0) {
338
+ throw new TransactionError("Bundle build produced 0 bins; cannot attach Jito tip.");
339
+ }
340
+ // Build each bin's transaction message once; we'll reuse it for both the
341
+ // pre-signing simulation and the final signing pass.
342
+ const messages = [];
343
+ for (const bin of bins) {
344
+ messages.push(await buildTransactionMessage(rpc, payer, bin, lookupTables, options?.additionalSigners, blockhash));
345
+ }
346
+ // Append the Jito tip ix AFTER LUT compression in `buildTransactionMessage`.
347
+ // If we appended it before compression and any supplied LUT contained the
348
+ // tip account, it would be moved into the LUT-loaded address set. Jito's
349
+ // bundle validator only inspects *static* account keys for tip accounts and
350
+ // rejects with "Bundles must write lock at least one tip account to be
351
+ // eligible for the auction" otherwise.
352
+ //
353
+ // Pick the smallest tx to carry the tip so a bin already near the 1232-byte
354
+ // wire limit isn't pushed over by the extra ~81 bytes of tip-transfer ix.
355
+ const tipBinIdx = messages
356
+ .map((m, i) => ({ i, bytes: (0, transactionSplitter_1.measureTxBytes)(m) }))
357
+ .reduce((a, b) => (a.bytes <= b.bytes ? a : b)).i;
358
+ const tipAccount = (0, jito_1.getRandomTipAccount)();
359
+ const tipIx = (0, jito_1.buildTipInstruction)(payer, tipAccount, tipLamports);
360
+ messages[tipBinIdx] = (0, kit_1.appendTransactionMessageInstructions)([tipIx], messages[tipBinIdx]);
361
+ console.log(`[bundle] attached ${tipLamports} lamport tip to tx[${tipBinIdx}] (smallest of ${messages.length}) → ${tipAccount}`);
362
+ const priorityFeeMicroLamports = await Promise.all(messages.map((message, index) => resolvePriorityFeeMicroLamports(rpc, message, collectWritableAccounts(bins[index]), options)));
363
+ // Phase 1: encode each bin with a max CU limit and run a single bundle-level
364
+ // simulation. `compileTransaction` stamps placeholder signatures, while
365
+ // `skipSigVerify` lets the simulator validate the real shared blockhash
366
+ // before the wallet signs.
367
+ const simEncodedTxs = [];
368
+ for (let i = 0; i < messages.length; i += 1) {
369
+ const simMsg = (0, kit_1.appendTransactionMessageInstructions)(getComputeBudgetInstructions(MAX_COMPUTE_UNIT_LIMIT, priorityFeeMicroLamports[i]), messages[i]);
370
+ const compiled = (0, kit_1.compileTransaction)(simMsg);
371
+ simEncodedTxs.push((0, kit_1.getBase64EncodedWireTransaction)(compiled));
372
+ }
373
+ const rpcUrl = (0, rpc_1.getMainnetRpcUrl)();
374
+ const simResult = await (0, jito_1.simulateBundle)(rpcUrl, simEncodedTxs, {
375
+ replaceRecentBlockhash: false,
376
+ });
377
+ const failingIdx = simResult.transactionResults.findIndex((r) => r.err != null);
378
+ if (simResult.summary !== "succeeded" || failingIdx >= 0) {
379
+ const idx = failingIdx >= 0 ? failingIdx : 0;
380
+ const failed = simResult.transactionResults[idx];
381
+ if (!options?.hideFailureInfo) {
382
+ console.error(`Bundle simulation failed at tx[${idx}] of ${bins.length}.`);
383
+ console.error("Summary:", JSON.stringify(simResult.summary, null, 2));
384
+ simResult.transactionResults.forEach((r, i) => {
385
+ const tag = i === idx ? " ← FAILED" : i < idx ? " (succeeded)" : " (not run)";
386
+ console.error(`\n── tx[${i}]${tag} (unitsConsumed=${r.unitsConsumed ?? "—"}) ──`);
387
+ if (r.err != null)
388
+ console.error(" err:", JSON.stringify(r.err));
389
+ logProgramLogsLineByLine(r.logs ?? [], `tx[${i}] bundle simulation logs`);
390
+ });
391
+ // Fall back to a single-tx `simulateTransaction` on the failing bin —
392
+ // it returns longer logs than `simulateBundle` (which truncates at
393
+ // ~16 lines). Skips the intra-bundle effects from preceding bins, so
394
+ // dependent failures (e.g. PriceIsStale when bin 0 was supposed to
395
+ // refresh) surface here instead. Best-effort; we keep the original
396
+ // error.
397
+ //
398
+ // Uses direct JSON-RPC instead of Kit's typed `rpc.simulateTransaction`
399
+ // wrapper because the latter has thrown "Do not know how to serialize
400
+ // a BigInt" on this code path — the raw fetch route gives us a
401
+ // bigint-safe replacer in `jsonRpcFetchOnce`'s body builder.
402
+ try {
403
+ const failedSimMsg = (0, kit_1.appendTransactionMessageInstructions)(getComputeBudgetInstructions(MAX_COMPUTE_UNIT_LIMIT, priorityFeeMicroLamports[idx]), messages[idx]);
404
+ const failedB64 = (0, kit_1.getBase64EncodedWireTransaction)((0, kit_1.compileTransaction)(failedSimMsg));
405
+ const standalone = await (0, jsonRpcFetch_1.jsonRpcFetchOnce)(rpcUrl, "simulateTransaction", [
406
+ failedB64,
407
+ {
408
+ encoding: "base64",
409
+ sigVerify: false,
410
+ replaceRecentBlockhash: false,
411
+ commitment: "confirmed",
412
+ },
413
+ ]);
414
+ console.error(`\n── tx[${idx}] standalone simulateTransaction (full logs, no preceding-bin effects) ──`);
415
+ if (standalone.value.err != null)
416
+ console.error(" err:", JSON.stringify(standalone.value.err, (_, v) => typeof v === "bigint" ? v.toString() : v));
417
+ const logs = standalone.value.logs ?? [];
418
+ logProgramLogsLineByLine(logs, `tx[${idx}] standalone simulation logs`);
419
+ }
420
+ catch (err) {
421
+ console.error(" (standalone fallback failed:", err instanceof Error ? err.message : String(err), ")");
422
+ }
423
+ }
424
+ const errStr = JSON.stringify(failed?.err ?? simResult.summary, (_, v) => typeof v === "bigint" ? v.toString() : v);
425
+ throw new TransactionError(`Bundle simulation failed at tx[${idx}]: ${errStr}`, failed?.logs ?? []);
426
+ }
427
+ // Phase 2: stamp each bin with its measured CU + 10% headroom while retaining
428
+ // the blockhash validated by simulation, then compile and batch-sign them.
429
+ // Browser wallets expose
430
+ // `signTransactions`, and using it here preserves the intended multi-tx
431
+ // approval flow for bundles instead of requesting one signature at a time.
432
+ // Fall back to MAX_COMPUTE_UNIT_LIMIT if the simulator didn't report a
433
+ // unitsConsumed value (some endpoints omit it on edge cases).
434
+ const finalTransactions = [];
435
+ for (let i = 0; i < messages.length; i += 1) {
436
+ const measured = simResult.transactionResults[i]?.unitsConsumed;
437
+ const cu = measured && measured > 0 ? Math.ceil(measured * 1.1) : MAX_COMPUTE_UNIT_LIMIT;
438
+ const withCu = (0, kit_1.appendTransactionMessageInstructions)(getComputeBudgetInstructions(cu, priorityFeeMicroLamports[i]), messages[i]);
439
+ const finalMsg = (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(blockhash, withCu);
440
+ finalTransactions.push((0, kit_1.compileTransaction)(finalMsg));
441
+ }
442
+ const signedTransactions = await signTransactionsWithSigners(finalTransactions, [
443
+ payer,
444
+ ...(options?.additionalSigners ?? []),
445
+ ]);
446
+ const base64Txs = signedTransactions.map(kit_1.getBase64EncodedWireTransaction);
447
+ const lastSignature = (0, kit_1.getSignatureFromTransaction)(signedTransactions[signedTransactions.length - 1]);
448
+ // Submit and confirm the bundle through the user's own RPC endpoint
449
+ // (Helius, Ironforge, etc.). These providers proxy Jito bundle methods,
450
+ // avoiding the global rate limit on Jito's public block engine.
451
+ try {
452
+ console.log(`[bundle] sending via ${(0, rpc_1.redactRpcUrlForLog)(rpcUrl)}`);
453
+ const bundleId = await (0, jito_1.sendBundle)(rpcUrl, base64Txs);
454
+ await (0, jito_1.confirmBundle)(rpcUrl, bundleId);
455
+ options?.onSuccess?.();
456
+ // Last bin carries the tip; signature matches what landed on-chain.
457
+ return lastSignature;
458
+ }
459
+ catch (error) {
460
+ if (error instanceof jito_1.JitoBundleError) {
461
+ throw new TransactionError(`Jito bundle failed: ${error.message}`);
462
+ }
463
+ throw error;
464
+ }
465
+ }
466
+ /**
467
+ * Same bin-packing as {@link signSendAndConfirmBundle}, but no tip and each
468
+ * bin is sent and confirmed via normal RPC (for environments without Jito).
469
+ */
470
+ async function signSendAndConfirmSplitSequentially(rpc, payer, instructions, lookupTables, options, segmentLengths, freshBinSegments) {
471
+ const { value: splitBlockhash } = (await rpc
472
+ .getLatestBlockhash({ commitment: "confirmed" })
473
+ .send());
474
+ const { bins } = await (0, transactionSplitter_1.splitIntoTransactionBins)(rpc, payer, instructions, {
475
+ lookupTables,
476
+ additionalSigners: options?.additionalSigners,
477
+ blockhash: splitBlockhash,
478
+ reservedBytes: jito_1.BUNDLE_INJECTED_IX_RESERVED_BYTES,
479
+ segmentLengths,
480
+ freshBinSegments,
481
+ });
482
+ let lastSignature;
483
+ for (const [binIndex, bin] of bins.entries()) {
484
+ const { value: blockhash } = (await rpc
485
+ .getLatestBlockhash({ commitment: "confirmed" })
486
+ .send());
487
+ const transactionMessage = await buildTransactionMessage(rpc, payer, bin, lookupTables, options?.additionalSigners, blockhash);
488
+ const priorityFeeMicroLamports = await resolvePriorityFeeMicroLamports(rpc, transactionMessage, collectWritableAccounts(bin), options);
489
+ const simMsg = (0, kit_1.appendTransactionMessageInstructions)(getComputeBudgetInstructions(MAX_COMPUTE_UNIT_LIMIT, priorityFeeMicroLamports), transactionMessage);
490
+ const simulation = await simulateTransaction(rpc, simMsg);
491
+ if (simulation.err) {
492
+ if (!options?.hideFailureInfo) {
493
+ console.error(`Simulation failed for split bin ${binIndex}:`, simulation.err);
494
+ logProgramLogsLineByLine(simulation.logs, `split bin ${binIndex} simulation logs`);
495
+ }
496
+ const errStr = JSON.stringify(simulation.err, (_, v) => typeof v === "bigint" ? v.toString() : v);
497
+ throw new TransactionError(`Split bin ${binIndex} simulation failed: ${errStr}`, simulation.logs);
498
+ }
499
+ const { wireB64, signature } = await signSplitBin(rpc, payer, bin, lookupTables, options?.additionalSigners, blockhash, priorityFeeMicroLamports);
500
+ await rpc
501
+ .sendTransaction(wireB64, {
502
+ encoding: "base64",
503
+ skipPreflight: true,
504
+ })
505
+ .send();
506
+ try {
507
+ await confirmTransaction(rpc, signature, "confirmed");
508
+ }
509
+ catch (error) {
510
+ const logs = await fetchTransactionLogsWithRetry(rpc, signature);
511
+ if (!options?.hideFailureInfo) {
512
+ console.error(`Transaction failed for split bin ${binIndex}:`, signature, error);
513
+ logProgramLogsLineByLine(logs, `split bin ${binIndex} transaction logs`);
514
+ }
515
+ throw new TransactionError(`Transaction failed: ${error}`, logs);
516
+ }
517
+ lastSignature = signature;
518
+ }
519
+ options?.onSuccess?.();
520
+ return lastSignature;
521
+ }
522
+ async function fetchTransactionLogsWithRetry(rpc, signature) {
523
+ for (let attempt = 0; attempt < 10; attempt += 1) {
524
+ try {
525
+ const info = await rpc
526
+ .getTransaction(signature, { commitment: "confirmed", encoding: "base64" })
527
+ .send();
528
+ const logs = (info?.meta?.logMessages ?? []);
529
+ if (logs.length > 0)
530
+ return logs;
531
+ }
532
+ catch {
533
+ // Best-effort log retrieval; retry below.
534
+ }
535
+ await new Promise((resolve) => setTimeout(resolve, 500));
536
+ }
537
+ return [];
538
+ }
539
+ /**
540
+ * Wait for a transaction to be confirmed at the specified commitment level.
541
+ *
542
+ * @param rpc - Solana RPC client
543
+ * @param signature - Transaction signature to confirm
544
+ * @param commitment - Commitment level to wait for
545
+ * @param timeoutMs - Maximum time to wait (default: 60000ms)
546
+ */
547
+ async function confirmTransaction(rpc, signature, commitment, timeoutMs = 60000) {
548
+ const startTime = Date.now();
549
+ const pollIntervalMs = 500;
550
+ while (Date.now() - startTime < timeoutMs) {
551
+ let status = null;
552
+ try {
553
+ const response = await rpc.getSignatureStatuses([signature]).send();
554
+ status = response.value[0];
555
+ }
556
+ catch (err) {
557
+ // Transient upstream RPC failures during confirmation polling (e.g.
558
+ // Ironforge returning "All providers failed", DNS hiccups, 429s) must
559
+ // not declare the transaction failed — the tx may already have landed.
560
+ // Keep polling until we get a real status or the timeout elapses.
561
+ if (!(0, retry_1.isTransientNetworkError)(err))
562
+ throw err;
563
+ }
564
+ if (status !== null) {
565
+ // Check if transaction failed
566
+ if (status.err) {
567
+ // Use replacer to handle BigInt values in error objects
568
+ const errStr = JSON.stringify(status.err, (_, v) => typeof v === "bigint" ? v.toString() : v);
569
+ throw new Error(`Transaction failed: ${errStr}`);
570
+ }
571
+ // Check if we've reached the desired commitment level
572
+ const confirmationStatus = status.confirmationStatus;
573
+ if (confirmationStatus === commitment ||
574
+ (commitment === "processed" && confirmationStatus) ||
575
+ (commitment === "confirmed" &&
576
+ (confirmationStatus === "confirmed" || confirmationStatus === "finalized")) ||
577
+ (commitment === "finalized" && confirmationStatus === "finalized")) {
578
+ return;
579
+ }
580
+ }
581
+ // Wait before polling again
582
+ await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
583
+ }
584
+ throw new Error(`Transaction confirmation timeout after ${timeoutMs}ms`);
585
+ }
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Greedy bin-packing splitter for instruction lists that exceed the Solana
3
+ * transaction wire limit (1232 bytes).
4
+ *
5
+ * Instructions are packed left-to-right (preserving caller order) into the
6
+ * fewest bins where each bin compiles to a valid-sized transaction. The
7
+ * result is an ordered array of instruction arrays, each of which can be
8
+ * independently built into a v0 `TransactionMessage`.
9
+ */
10
+ import type { Address, Blockhash, CompilableTransactionMessage, Instruction, Rpc, SolanaRpcApi, TransactionSigner } from "@solana/kit";
11
+ /**
12
+ * Solana's maximum serialized transaction size in bytes. The base64 encoding
13
+ * inflates this to ~1644 chars, but we measure the decoded wire bytes via
14
+ * Kit's `compileTransaction` + `getBase64EncodedWireTransaction` and compare
15
+ * against the decoded length.
16
+ */
17
+ export declare const SOLANA_TX_SIZE_LIMIT = 1232;
18
+ /**
19
+ * Measure the wire size of a compilable transaction message in bytes.
20
+ */
21
+ export declare function measureTxBytes(msg: CompilableTransactionMessage): number;
22
+ export interface SplitResult {
23
+ /** Ordered instruction bins; each bin fits in one tx. */
24
+ bins: Instruction[][];
25
+ }
26
+ export interface SplitOptions {
27
+ lookupTables?: Address[];
28
+ additionalSigners?: TransactionSigner[];
29
+ /**
30
+ * Shared blockhash to use when compiling each candidate. Passing a stable
31
+ * blockhash avoids a per-iteration `getLatestBlockhash` RPC call and keeps
32
+ * every bin's size measurement consistent with what downstream signing
33
+ * will actually produce.
34
+ */
35
+ blockhash?: Readonly<{
36
+ blockhash: Blockhash;
37
+ lastValidBlockHeight: bigint;
38
+ }>;
39
+ /**
40
+ * Bytes to reserve below {@link SOLANA_TX_SIZE_LIMIT} for instructions
41
+ * injected _after_ splitting (e.g. a compute-unit-limit ix on every bin
42
+ * and a Jito tip ix on one bin). Default 0 means pack tight to the limit.
43
+ */
44
+ reservedBytes?: number;
45
+ /**
46
+ * When set, positive lengths must sum to `instructions.length`; each slice is
47
+ * kept intact when packing. Same field as `TransactionPlan.segmentLengths`.
48
+ * When omitted, each instruction is packed independently.
49
+ */
50
+ segmentLengths?: number[];
51
+ /**
52
+ * Segment indices (0-based, into the segments produced by `segmentLengths`)
53
+ * that must always start a fresh bin. The current bin — if non-empty — is
54
+ * flushed before the segment is appended, even if the segment would have
55
+ * fit alongside it.
56
+ *
57
+ * Use case: a CPI whose on-chain check encodes a position-relative index
58
+ * (e.g. Kamino's flash-borrow records `borrowInstructionIndex` for the
59
+ * matching repay) needs the segment to land at a predictable index inside
60
+ * its own tx. Marking that segment as a forced boundary keeps its index
61
+ * stable regardless of how the preceding segments pack.
62
+ */
63
+ freshBinSegments?: number[];
64
+ }
65
+ /**
66
+ * Turn a flat instruction list into indivisible segments for bin-packing.
67
+ *
68
+ * @throws If lengths are invalid or do not partition `instructions`.
69
+ */
70
+ export declare function buildInstructionSegments(instructions: Instruction[], segmentLengths?: number[]): Instruction[][];
71
+ /**
72
+ * Split an instruction list into the minimum number of ordered bins where
73
+ * each bin compiles to a transaction within the wire-size limit (minus
74
+ * `reservedBytes` of headroom for post-split instruction injection).
75
+ *
76
+ * Preserves instruction ordering: segments and instructions are never
77
+ * reordered across bins. Each bin is measured by actually compiling a v0
78
+ * message with the provided fee payer + ALTs, so the measurement accounts for
79
+ * signatures, account tables, and compact-u16 encoding exactly.
80
+ *
81
+ * Throws if:
82
+ * - A single segment cannot fit in one tx (even alone).
83
+ * - The total bins exceed `MAX_BUNDLE_TRANSACTIONS` (Jito's 5-tx limit).
84
+ */
85
+ export declare function splitIntoTransactionBins(rpc: Rpc<SolanaRpcApi>, payer: TransactionSigner, instructions: Instruction[], options?: SplitOptions): Promise<SplitResult>;