@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,117 @@
1
+ import { type Address } from "@solana/kit";
2
+ import { type Environment } from "common";
3
+ import { LendingPlatformData } from "../../data/platform/lpDataBase";
4
+ import { ReserveBase } from "../../data/reserve/reserveBase";
5
+ import { ReservesManager } from "../reservesManager";
6
+ import type { CollateralPriceTriggerBand, LendingPositionInspectMetrics, LendingPositionState, LendingPositionUtilizationPrices, LendingPositionUtilizationRatesBps } from "./types";
7
+ /**
8
+ * Manages a leveraged lending position (collateral/debt pair): sizing decisions,
9
+ * threshold triggers, and realtime/EMA-priced state. Wraps a {@link ReservesManager}.
10
+ *
11
+ * Generic across protocols — the constructor takes pool + user-account addresses
12
+ * directly. SDK-specific subclasses may add convenience wrappers that derive
13
+ * targets from their own on-chain config.
14
+ */
15
+ export declare class LendingPositionManager {
16
+ readonly lpData: LendingPlatformData;
17
+ readonly pool: Address;
18
+ readonly userAccount: Address;
19
+ readonly reservesManager: ReservesManager;
20
+ constructor(lpData: LendingPlatformData, pool: Address, userAccount: Address, collateralReserve: ReserveBase, debtReserve: ReserveBase, environment?: Environment);
21
+ /**
22
+ * Calculates the UI debt amount change needed to reach the target LTV utilization
23
+ * rate. Positive values indicate borrowing; negative values indicate repaying.
24
+ */
25
+ calcDebtChangeAmount(targetUtilizationRateBps: number): Promise<number>;
26
+ /**
27
+ * Fetch current supply and debt position amounts in UI units.
28
+ */
29
+ getLendingPositionAmounts(): Promise<{
30
+ supplyUiAmount: number;
31
+ debtUiAmount: number;
32
+ }>;
33
+ /**
34
+ * Calculates the utilization rate the source position must reach before a
35
+ * collateral withdrawal so that, after the withdrawal, the position lands at
36
+ * the desired target utilization rate.
37
+ *
38
+ * Units:
39
+ * - current supply USD = supplied collateral before withdrawal
40
+ * - withdrawn USD = collateral requested for the rebalance move
41
+ * - post-withdraw target = desired utilization after collateral leaves the LP
42
+ *
43
+ * Formula:
44
+ * pre_withdraw_target = post_withdraw_target * (current_supply - withdrawn) / current_supply
45
+ *
46
+ * The result is floored to stay conservatively at or below the requested
47
+ * post-withdraw target once integer basis-point rounding is applied.
48
+ */
49
+ calcPreWithdrawalTargetUtilizationRateBps(withdrawUiCollateralAmount: number, postWithdrawalTargetUtilizationRateBps: number): Promise<number>;
50
+ /**
51
+ * Calculates the UI debt amount change needed before a collateral withdrawal
52
+ * so that the position lands at the desired utilization rate after the
53
+ * withdrawal completes.
54
+ */
55
+ calcDebtChangeAmountForCollateralWithdrawal(withdrawUiCollateralAmount: number, postWithdrawalTargetUtilizationRateBps: number): Promise<number>;
56
+ /**
57
+ * Calculates the utilization rate after withdrawing collateral while leaving
58
+ * debt unchanged.
59
+ */
60
+ calcPostWithdrawalUtilizationRateBps(withdrawUiCollateralAmount: number): Promise<number>;
61
+ /**
62
+ * For burn-token liquidity management: checks that a withdrawal of
63
+ * `collateralWithdrawalUiAmount` (collateral mint UI units) leaves strictly
64
+ * positive supplied collateral, matching the pre-withdraw math used in
65
+ * {@link calcPreWithdrawalTargetUtilizationRateBps}.
66
+ *
67
+ * Returns realtime LTV utilization in basis points when eligible; null when the
68
+ * obligation is missing, has no supply, prices are invalid, or the withdrawal
69
+ * would consume the full (or more than the full) collateral position.
70
+ */
71
+ getBurnUnwindEligibility(collateralWithdrawalUiAmount: number): Promise<{
72
+ utilizationRateBps: number;
73
+ } | null>;
74
+ /**
75
+ * Returns the collateral price levels that would place the position exactly on
76
+ * its lower and upper utilization trigger bands.
77
+ *
78
+ * The lower-band trigger uses EMA pricing (to mirror boost-trigger semantics),
79
+ * while the upper-band trigger uses realtime pricing (to mirror unwind-trigger
80
+ * semantics).
81
+ */
82
+ getCollateralPriceTriggerBand(params: {
83
+ lowerTargetUtilizationRateBps: number;
84
+ upperTargetUtilizationRateBps: number;
85
+ }): Promise<CollateralPriceTriggerBand>;
86
+ getUtilizationRatesBps(): Promise<LendingPositionUtilizationRatesBps | null>;
87
+ getUtilizationPrices(): Promise<LendingPositionUtilizationPrices | null>;
88
+ getInspectMetrics(params: {
89
+ lowerTargetUtilizationRateBps: number;
90
+ upperTargetUtilizationRateBps: number;
91
+ }): Promise<LendingPositionInspectMetrics | null>;
92
+ protected getPositionState(mode: "realtime" | "ema"): Promise<LendingPositionState | null>;
93
+ private calcPositionSupplyDebtUsd;
94
+ private selectPrice;
95
+ private getCollateralPriceTriggerLevel;
96
+ /**
97
+ * Solve for collateral price at a target utilization:
98
+ * utilization = debtUsd / (collateralAmount * collateralPrice * maxLtv).
99
+ */
100
+ private calcCollateralPriceForTargetUtilization;
101
+ private calcDebtChangeAmountFromState;
102
+ /**
103
+ * Quantize to the debt mint's base-unit precision. Borrows floor; repays round
104
+ * away from zero so deleveraging does not undershoot.
105
+ */
106
+ private quantizeDebtChangeUiAmount;
107
+ /** Cap positive borrows to obligation headroom when the platform exposes it. */
108
+ private capPositiveBorrowToProtocolHeadroom;
109
+ private calcPreWithdrawalTargetUtilizationRateBpsFromState;
110
+ private calcPostWithdrawalUtilizationRateBpsFromState;
111
+ protected assertValidUtilizationRateBps(value: number, field: string): void;
112
+ /**
113
+ * Unwind/boost trigger bands may exceed 100% LTV utilization (up to 10_500 bps
114
+ * on-chain). Debt-sizing paths still use {@link assertValidUtilizationRateBps}.
115
+ */
116
+ protected assertValidTriggerBandUtilizationRateBps(value: number, field: string): void;
117
+ }
@@ -0,0 +1,342 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LendingPositionManager = void 0;
4
+ const core_1 = require("@anchor-lang/core");
5
+ const common_1 = require("common");
6
+ const lendingPosition_1 = require("../../constants/lendingPosition");
7
+ const reservesManager_1 = require("../reservesManager");
8
+ /**
9
+ * Manages a leveraged lending position (collateral/debt pair): sizing decisions,
10
+ * threshold triggers, and realtime/EMA-priced state. Wraps a {@link ReservesManager}.
11
+ *
12
+ * Generic across protocols — the constructor takes pool + user-account addresses
13
+ * directly. SDK-specific subclasses may add convenience wrappers that derive
14
+ * targets from their own on-chain config.
15
+ */
16
+ class LendingPositionManager {
17
+ constructor(lpData, pool, userAccount, collateralReserve, debtReserve, environment) {
18
+ this.lpData = lpData;
19
+ this.pool = pool;
20
+ this.userAccount = userAccount;
21
+ this.reservesManager = new reservesManager_1.ReservesManager(collateralReserve, debtReserve, environment);
22
+ }
23
+ /**
24
+ * Calculates the UI debt amount change needed to reach the target LTV utilization
25
+ * rate. Positive values indicate borrowing; negative values indicate repaying.
26
+ */
27
+ async calcDebtChangeAmount(targetUtilizationRateBps) {
28
+ const state = await this.getPositionState("realtime");
29
+ if (!state)
30
+ return 0;
31
+ return this.calcDebtChangeAmountFromState(state, targetUtilizationRateBps);
32
+ }
33
+ /**
34
+ * Fetch current supply and debt position amounts in UI units.
35
+ */
36
+ async getLendingPositionAmounts() {
37
+ const state = await this.getPositionState("realtime");
38
+ if (!state)
39
+ return { supplyUiAmount: 0, debtUiAmount: 0 };
40
+ const supplyPrice = state.prices.supply.realtimePrice;
41
+ const debtPrice = state.prices.debt.realtimePrice;
42
+ return {
43
+ supplyUiAmount: supplyPrice > 0 ? state.supplyUsd / supplyPrice : 0,
44
+ debtUiAmount: debtPrice > 0 ? state.debtUsd / debtPrice : 0,
45
+ };
46
+ }
47
+ /**
48
+ * Calculates the utilization rate the source position must reach before a
49
+ * collateral withdrawal so that, after the withdrawal, the position lands at
50
+ * the desired target utilization rate.
51
+ *
52
+ * Units:
53
+ * - current supply USD = supplied collateral before withdrawal
54
+ * - withdrawn USD = collateral requested for the rebalance move
55
+ * - post-withdraw target = desired utilization after collateral leaves the LP
56
+ *
57
+ * Formula:
58
+ * pre_withdraw_target = post_withdraw_target * (current_supply - withdrawn) / current_supply
59
+ *
60
+ * The result is floored to stay conservatively at or below the requested
61
+ * post-withdraw target once integer basis-point rounding is applied.
62
+ */
63
+ async calcPreWithdrawalTargetUtilizationRateBps(withdrawUiCollateralAmount, postWithdrawalTargetUtilizationRateBps) {
64
+ const state = await this.getPositionState("realtime");
65
+ if (!state)
66
+ return 0;
67
+ return this.calcPreWithdrawalTargetUtilizationRateBpsFromState(state, withdrawUiCollateralAmount, postWithdrawalTargetUtilizationRateBps);
68
+ }
69
+ /**
70
+ * Calculates the UI debt amount change needed before a collateral withdrawal
71
+ * so that the position lands at the desired utilization rate after the
72
+ * withdrawal completes.
73
+ */
74
+ async calcDebtChangeAmountForCollateralWithdrawal(withdrawUiCollateralAmount, postWithdrawalTargetUtilizationRateBps) {
75
+ const state = await this.getPositionState("realtime");
76
+ if (!state)
77
+ return 0;
78
+ const preWithdrawalTargetUtilizationRateBps = this.calcPreWithdrawalTargetUtilizationRateBpsFromState(state, withdrawUiCollateralAmount, postWithdrawalTargetUtilizationRateBps);
79
+ return this.calcDebtChangeAmountFromState(state, preWithdrawalTargetUtilizationRateBps);
80
+ }
81
+ /**
82
+ * Calculates the utilization rate after withdrawing collateral while leaving
83
+ * debt unchanged.
84
+ */
85
+ async calcPostWithdrawalUtilizationRateBps(withdrawUiCollateralAmount) {
86
+ const state = await this.getPositionState("realtime");
87
+ if (!state)
88
+ return 0;
89
+ return this.calcPostWithdrawalUtilizationRateBpsFromState(state, withdrawUiCollateralAmount);
90
+ }
91
+ /**
92
+ * For burn-token liquidity management: checks that a withdrawal of
93
+ * `collateralWithdrawalUiAmount` (collateral mint UI units) leaves strictly
94
+ * positive supplied collateral, matching the pre-withdraw math used in
95
+ * {@link calcPreWithdrawalTargetUtilizationRateBps}.
96
+ *
97
+ * Returns realtime LTV utilization in basis points when eligible; null when the
98
+ * obligation is missing, has no supply, prices are invalid, or the withdrawal
99
+ * would consume the full (or more than the full) collateral position.
100
+ */
101
+ async getBurnUnwindEligibility(collateralWithdrawalUiAmount) {
102
+ if (!(collateralWithdrawalUiAmount > 0)) {
103
+ return null;
104
+ }
105
+ const state = await this.getPositionState("realtime");
106
+ if (!state) {
107
+ return null;
108
+ }
109
+ const collateralPrice = state.prices.supply.realtimePrice;
110
+ if (!(collateralPrice > 0)) {
111
+ return null;
112
+ }
113
+ const withdrawnCollateralUsd = collateralWithdrawalUiAmount * collateralPrice;
114
+ if (!(withdrawnCollateralUsd < state.supplyUsd)) {
115
+ return null;
116
+ }
117
+ const utilizationRateBps = this.reservesManager.calcLtvUtilizationRateBps(state.supplyUsd, state.debtUsd);
118
+ return { utilizationRateBps };
119
+ }
120
+ /**
121
+ * Returns the collateral price levels that would place the position exactly on
122
+ * its lower and upper utilization trigger bands.
123
+ *
124
+ * The lower-band trigger uses EMA pricing (to mirror boost-trigger semantics),
125
+ * while the upper-band trigger uses realtime pricing (to mirror unwind-trigger
126
+ * semantics).
127
+ */
128
+ async getCollateralPriceTriggerBand(params) {
129
+ const [lower, upper] = await Promise.all([
130
+ this.getCollateralPriceTriggerLevel("ema", params.lowerTargetUtilizationRateBps),
131
+ this.getCollateralPriceTriggerLevel("realtime", params.upperTargetUtilizationRateBps),
132
+ ]);
133
+ return { lower, upper };
134
+ }
135
+ async getUtilizationRatesBps() {
136
+ const [realtimeState, emaState] = await Promise.all([
137
+ this.getPositionState("realtime"),
138
+ this.getPositionState("ema"),
139
+ ]);
140
+ if (!realtimeState || !emaState) {
141
+ return null;
142
+ }
143
+ return {
144
+ realtime: this.reservesManager.calcLtvUtilizationRateBps(realtimeState.supplyUsd, realtimeState.debtUsd),
145
+ ema: this.reservesManager.calcLtvUtilizationRateBps(emaState.supplyUsd, emaState.debtUsd),
146
+ };
147
+ }
148
+ async getUtilizationPrices() {
149
+ const [realtimeState, emaState] = await Promise.all([
150
+ this.getPositionState("realtime"),
151
+ this.getPositionState("ema"),
152
+ ]);
153
+ if (!realtimeState || !emaState) {
154
+ return null;
155
+ }
156
+ return {
157
+ realtime: {
158
+ collateral: this.selectPrice(realtimeState.prices.supply, "realtime"),
159
+ debt: this.selectPrice(realtimeState.prices.debt, "realtime"),
160
+ },
161
+ ema: {
162
+ collateral: this.selectPrice(emaState.prices.supply, "ema"),
163
+ debt: this.selectPrice(emaState.prices.debt, "ema"),
164
+ },
165
+ };
166
+ }
167
+ async getInspectMetrics(params) {
168
+ const [utilizationRateBps, utilizationPrices, triggerBand] = await Promise.all([
169
+ this.getUtilizationRatesBps(),
170
+ this.getUtilizationPrices(),
171
+ this.getCollateralPriceTriggerBand(params),
172
+ ]);
173
+ if (!utilizationRateBps || !utilizationPrices) {
174
+ return null;
175
+ }
176
+ return { utilizationRateBps, utilizationPrices, triggerBand };
177
+ }
178
+ async getPositionState(mode) {
179
+ const position = await this.lpData.maybeFetchUserPositionInPool(this.pool, this.userAccount);
180
+ if (!position)
181
+ return null;
182
+ const prices = await this.reservesManager.prices();
183
+ const { supplyUsd, debtUsd } = this.calcPositionSupplyDebtUsd(position, prices, mode);
184
+ return { prices, supplyUsd, debtUsd };
185
+ }
186
+ calcPositionSupplyDebtUsd(position, prices, mode) {
187
+ const { supplyReserve, debtReserve } = this.reservesManager;
188
+ const deposit = position.deposits.find((d) => d.reserve === supplyReserve.address);
189
+ const borrow = position.borrows.find((b) => b.reserve === debtReserve.address);
190
+ const supplyAmount = deposit ? (0, common_1.toUiAmount)(deposit.amount, supplyReserve.mint.mintDecimals) : 0;
191
+ const debtAmount = borrow ? (0, common_1.toUiAmount)(borrow.amount, debtReserve.mint.mintDecimals) : 0;
192
+ return {
193
+ supplyUsd: supplyAmount * this.selectPrice(prices.supply, mode).value,
194
+ debtUsd: debtAmount * this.selectPrice(prices.debt, mode).value,
195
+ };
196
+ }
197
+ selectPrice(price, mode) {
198
+ if (mode === "realtime") {
199
+ return { value: price.realtimePrice, source: "realtime" };
200
+ }
201
+ if (price.emaPrice != null) {
202
+ return { value: price.emaPrice, source: "ema" };
203
+ }
204
+ return { value: price.realtimePrice, source: "ema_fallback_realtime" };
205
+ }
206
+ async getCollateralPriceTriggerLevel(mode, targetUtilizationRateBps) {
207
+ this.assertValidTriggerBandUtilizationRateBps(targetUtilizationRateBps, "targetUtilizationRateBps");
208
+ if (targetUtilizationRateBps === 0) {
209
+ return undefined;
210
+ }
211
+ const state = await this.getPositionState(mode);
212
+ if (!state) {
213
+ return undefined;
214
+ }
215
+ const currentCollateralPrice = mode === "ema"
216
+ ? (state.prices.supply.emaPrice ?? state.prices.supply.realtimePrice)
217
+ : state.prices.supply.realtimePrice;
218
+ if (currentCollateralPrice <= 0 || state.debtUsd < 0 || this.reservesManager.maxLtv <= 0) {
219
+ return undefined;
220
+ }
221
+ const uiSupplyAmount = state.supplyUsd / currentCollateralPrice;
222
+ if (uiSupplyAmount <= 0) {
223
+ return undefined;
224
+ }
225
+ const triggerCollateralPrice = this.calcCollateralPriceForTargetUtilization(state.debtUsd, uiSupplyAmount, targetUtilizationRateBps);
226
+ if (!Number.isFinite(triggerCollateralPrice) || triggerCollateralPrice < 0) {
227
+ return undefined;
228
+ }
229
+ return {
230
+ currentCollateralPrice,
231
+ triggerCollateralPrice,
232
+ targetUtilizationRateBps,
233
+ priceMode: mode,
234
+ priceChangePct: ((triggerCollateralPrice - currentCollateralPrice) / currentCollateralPrice) * 100,
235
+ };
236
+ }
237
+ /**
238
+ * Solve for collateral price at a target utilization:
239
+ * utilization = debtUsd / (collateralAmount * collateralPrice * maxLtv).
240
+ */
241
+ calcCollateralPriceForTargetUtilization(debtUsd, uiSupplyAmount, targetUtilizationRateBps) {
242
+ const targetUtilizationRate = targetUtilizationRateBps / 10000;
243
+ return debtUsd / (uiSupplyAmount * this.reservesManager.maxLtv * targetUtilizationRate);
244
+ }
245
+ async calcDebtChangeAmountFromState(state, targetUtilizationRateBps) {
246
+ this.assertValidUtilizationRateBps(targetUtilizationRateBps, "targetUtilizationRateBps");
247
+ if (state.prices.debt.realtimePrice <= 0) {
248
+ throw new Error("Debt reserve realtime price must be positive");
249
+ }
250
+ if (state.prices.supply.realtimePrice <= 0) {
251
+ throw new Error("Collateral reserve realtime price must be positive");
252
+ }
253
+ const debtAdjustmentUsd = await this.reservesManager.calcDebtAdjustmentUsd(state.supplyUsd / state.prices.supply.realtimePrice, state.debtUsd / state.prices.debt.realtimePrice, targetUtilizationRateBps, { positionChangeMode: "debtOnly" });
254
+ const debtChangeUiAmount = debtAdjustmentUsd / state.prices.debt.realtimePrice;
255
+ const debtDecimals = this.reservesManager.debtReserve.mint.mintDecimals;
256
+ let quantizedUiAmount = this.quantizeDebtChangeUiAmount(debtChangeUiAmount, debtDecimals);
257
+ if (quantizedUiAmount > 0) {
258
+ quantizedUiAmount = await this.capPositiveBorrowToProtocolHeadroom(quantizedUiAmount, state);
259
+ }
260
+ return debtChangeUiAmount < 0 ? -quantizedUiAmount : quantizedUiAmount;
261
+ }
262
+ /**
263
+ * Quantize to the debt mint's base-unit precision. Borrows floor; repays round
264
+ * away from zero so deleveraging does not undershoot.
265
+ */
266
+ quantizeDebtChangeUiAmount(debtChangeUiAmount, debtDecimals) {
267
+ if (debtChangeUiAmount === 0)
268
+ return 0;
269
+ const absUi = Math.abs(debtChangeUiAmount);
270
+ if (debtChangeUiAmount > 0) {
271
+ if (!(absUi > 0))
272
+ return 0;
273
+ const flooredBaseUnits = new core_1.BN(Math.floor(absUi * Math.pow(10, debtDecimals)));
274
+ return (0, common_1.toUiAmount)(flooredBaseUnits, debtDecimals);
275
+ }
276
+ const roundedAmount = (0, common_1.fromUiAmount)(absUi, debtDecimals);
277
+ let repayUi = (0, common_1.toUiAmount)(roundedAmount, debtDecimals);
278
+ if (repayUi < absUi) {
279
+ repayUi = (0, common_1.toUiAmount)(roundedAmount.addn(1), debtDecimals);
280
+ }
281
+ return repayUi;
282
+ }
283
+ /** Cap positive borrows to obligation headroom when the platform exposes it. */
284
+ async capPositiveBorrowToProtocolHeadroom(requestedUiAmount, state) {
285
+ const debtDecimals = this.reservesManager.debtReserve.mint.mintDecimals;
286
+ const position = await this.lpData.maybeFetchUserPositionInPool(this.pool, this.userAccount);
287
+ if (!position) {
288
+ return requestedUiAmount;
289
+ }
290
+ const maxUi = position.getMaxAdditionalBorrowUiAmount(state.prices.debt.realtimePrice, debtDecimals);
291
+ if (maxUi === undefined) {
292
+ return requestedUiAmount;
293
+ }
294
+ return Math.min(requestedUiAmount, maxUi);
295
+ }
296
+ calcPreWithdrawalTargetUtilizationRateBpsFromState(state, withdrawUiCollateralAmount, postWithdrawalTargetUtilizationRateBps) {
297
+ if (withdrawUiCollateralAmount <= 0) {
298
+ throw new Error("withdrawUiCollateralAmount must be greater than zero");
299
+ }
300
+ this.assertValidUtilizationRateBps(postWithdrawalTargetUtilizationRateBps, "postWithdrawalTargetUtilizationRateBps");
301
+ const collateralPrice = state.prices.supply.realtimePrice;
302
+ if (collateralPrice <= 0) {
303
+ throw new Error("Collateral reserve realtime price must be positive");
304
+ }
305
+ const withdrawnCollateralUsd = withdrawUiCollateralAmount * collateralPrice;
306
+ if (withdrawnCollateralUsd >= state.supplyUsd) {
307
+ throw new Error("withdrawUiCollateralAmount exceeds the current supplied collateral");
308
+ }
309
+ const preWithdrawalTargetUtilizationRateBps = Math.floor((postWithdrawalTargetUtilizationRateBps * (state.supplyUsd - withdrawnCollateralUsd)) /
310
+ state.supplyUsd);
311
+ return Math.max(0, Math.min(postWithdrawalTargetUtilizationRateBps, preWithdrawalTargetUtilizationRateBps));
312
+ }
313
+ calcPostWithdrawalUtilizationRateBpsFromState(state, withdrawUiCollateralAmount) {
314
+ if (withdrawUiCollateralAmount <= 0) {
315
+ throw new Error("withdrawUiCollateralAmount must be greater than zero");
316
+ }
317
+ const collateralPrice = state.prices.supply.realtimePrice;
318
+ if (collateralPrice <= 0) {
319
+ throw new Error("Collateral reserve realtime price must be positive");
320
+ }
321
+ const withdrawnCollateralUsd = withdrawUiCollateralAmount * collateralPrice;
322
+ if (withdrawnCollateralUsd >= state.supplyUsd) {
323
+ throw new Error("withdrawUiCollateralAmount exceeds the current supplied collateral");
324
+ }
325
+ return this.reservesManager.calcLtvUtilizationRateBps(state.supplyUsd - withdrawnCollateralUsd, state.debtUsd);
326
+ }
327
+ assertValidUtilizationRateBps(value, field) {
328
+ if (!Number.isFinite(value) || value < 0 || value > 10000) {
329
+ throw new Error(`${field} must be between 0 and 10000`);
330
+ }
331
+ }
332
+ /**
333
+ * Unwind/boost trigger bands may exceed 100% LTV utilization (up to 10_500 bps
334
+ * on-chain). Debt-sizing paths still use {@link assertValidUtilizationRateBps}.
335
+ */
336
+ assertValidTriggerBandUtilizationRateBps(value, field) {
337
+ if (!Number.isFinite(value) || value < 0 || value > lendingPosition_1.MAX_LENDING_POSITION_UPPER_UTIL_BPS) {
338
+ throw new Error(`${field} must be between 0 and ${lendingPosition_1.MAX_LENDING_POSITION_UPPER_UTIL_BPS}`);
339
+ }
340
+ }
341
+ }
342
+ exports.LendingPositionManager = LendingPositionManager;
@@ -0,0 +1,40 @@
1
+ import type { ReservesPrices } from "../reservesManager";
2
+ export interface LendingPositionState {
3
+ prices: ReservesPrices;
4
+ supplyUsd: number;
5
+ debtUsd: number;
6
+ }
7
+ export interface CollateralPriceTriggerLevel {
8
+ currentCollateralPrice: number;
9
+ triggerCollateralPrice: number;
10
+ targetUtilizationRateBps: number;
11
+ priceMode: "realtime" | "ema";
12
+ priceChangePct: number;
13
+ }
14
+ export interface CollateralPriceTriggerBand {
15
+ lower?: CollateralPriceTriggerLevel;
16
+ upper?: CollateralPriceTriggerLevel;
17
+ }
18
+ export interface LendingPositionUtilizationRatesBps {
19
+ realtime: number;
20
+ ema: number;
21
+ }
22
+ export interface LendingPositionSelectedPrice {
23
+ value: number;
24
+ source: "realtime" | "ema" | "ema_fallback_realtime";
25
+ }
26
+ export interface LendingPositionUtilizationPrices {
27
+ realtime: {
28
+ collateral: LendingPositionSelectedPrice;
29
+ debt: LendingPositionSelectedPrice;
30
+ };
31
+ ema: {
32
+ collateral: LendingPositionSelectedPrice;
33
+ debt: LendingPositionSelectedPrice;
34
+ };
35
+ }
36
+ export interface LendingPositionInspectMetrics {
37
+ utilizationRateBps: LendingPositionUtilizationRatesBps;
38
+ utilizationPrices: LendingPositionUtilizationPrices;
39
+ triggerBand: CollateralPriceTriggerBand;
40
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export * from "./leverageService";
2
+ export * from "./types";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./leverageService"), exports);
18
+ __exportStar(require("./types"), exports);
@@ -0,0 +1,104 @@
1
+ import type { Instruction } from "@solana/kit";
2
+ import type { DecreaseLeverageParams, DecreaseLeverageResult, FlashRebalanceContext, FlashRebalanceParams, FlashRebalanceResult, IncreaseLeverageParams, IncreaseLeverageResult, LeverageContext } from "./types";
3
+ /**
4
+ * Thrown by {@link LeverageService.buildFlashRebalance} when the quoted
5
+ * destination-debt → source-debt swap breaches a caller-set bound. The quote's
6
+ * total below-par gap is split into two components, each bounded separately:
7
+ *
8
+ * - `executionCostBps` — quote rate vs the oracle-fair cross rate: route fees
9
+ * + price impact. Permanently lost value.
10
+ * - `marketBasisBps` — oracle-fair cross rate vs 1:1: genuine USD price
11
+ * difference between the two stables. Charged to the token's carry-vs-debt
12
+ * difference by the $1-pinned books at conversion time, but reverses on
13
+ * unwind if the basis persists.
14
+ *
15
+ * `reason` names which bound was breached; both measured components are
16
+ * always populated for logging/telemetry.
17
+ */
18
+ export declare class FlashRebalanceSwapCostExceededError extends Error {
19
+ readonly reason: "execution-cost" | "market-basis";
20
+ readonly executionCostBps: number;
21
+ readonly marketBasisBps: number;
22
+ readonly limitBps: number;
23
+ readonly inputAmount: bigint;
24
+ readonly outputAmount: bigint;
25
+ constructor(reason: "execution-cost" | "market-basis", executionCostBps: number, marketBasisBps: number, limitBps: number, inputAmount: bigint, outputAmount: bigint);
26
+ }
27
+ /**
28
+ * Stateless service that sizes and builds lending-protocol CPIs for leverage
29
+ * changes on a collateral/debt reserve pair.
30
+ *
31
+ * Inputs are generic lending-platform types (reserves, LP client, position
32
+ * identifiers). No program-specific types.
33
+ *
34
+ * - **Increase leverage** → calculates borrow amount to reach target, builds
35
+ * borrow CPIs.
36
+ * - **Decrease leverage** → calculates repay amount to reach target, builds
37
+ * repay CPIs, and assembles swap + repay CPI groups when the debt token must
38
+ * be obtained via swap.
39
+ */
40
+ export declare class LeverageService {
41
+ /**
42
+ * Calculate the borrow amount needed to reach the target utilization rate,
43
+ * then build the borrow CPIs.
44
+ */
45
+ static buildIncreaseLeverage(ctx: LeverageContext, params: IncreaseLeverageParams): Promise<IncreaseLeverageResult>;
46
+ /**
47
+ * Calculate the repay amount needed to reach the target utilization rate,
48
+ * build the repay CPIs, and assemble CPI groups with an optional swap
49
+ * prepended when the caller's debt-token balance is insufficient.
50
+ *
51
+ * The returned `repayUiAmount` is always non-negative. When the position is
52
+ * already at or below the target, the amount is zero and the CPI list is
53
+ * sized for a zero repay.
54
+ */
55
+ static buildDecreaseLeverage(ctx: LeverageContext, params: DecreaseLeverageParams): Promise<DecreaseLeverageResult>;
56
+ /**
57
+ * Assemble repay CPI groups, prepending a swap group whenever the bank is
58
+ * configured to source the debt mint via a swap. The on-chain handler
59
+ * decides whether to actually invoke the swap (via `perform_swap`) based on
60
+ * runtime balances; building it unconditionally keeps the tx resilient when
61
+ * the bank's debt-token balance changes between build and send.
62
+ */
63
+ private static assembleDecreaseLeverageCpis;
64
+ /**
65
+ * Quote a swap that converts a source asset into the debt mint,
66
+ * covering at least `shortfall` base units.
67
+ */
68
+ private static quoteDebtTopUpSwap;
69
+ /**
70
+ * Build a flash-loan-wrapped rebalance that moves collateral between two
71
+ * lending positions without decreasing any carry positions.
72
+ *
73
+ * The flow assembled here (inside a single transaction):
74
+ * 1. Top-level: flash-borrow source debt mint into the user's ATA.
75
+ * 2. CPI: repay flash-borrowed amount on source → frees collateral.
76
+ * 3. CPI: withdraw `collateralUiAmount` from source.
77
+ * 4. CPI: deposit that collateral on destination.
78
+ * 5. CPI: borrow destination debt mint (sized slightly above the swap
79
+ * input needed to produce the flash repay, so post-slippage output
80
+ * still covers it).
81
+ * 6. CPI: exact-in swap destination debt → source debt; the entire borrow
82
+ * is consumed and worst-case output is at least the flash repay amount.
83
+ * 7. Top-level: flash-repay source debt mint.
84
+ *
85
+ * The exact-in over-borrow leaves a small **source-debt** excess in the
86
+ * token PDA's ATA after the swap; the on-chain handler sweeps this excess
87
+ * into the yielding bank before the top-level flash repay so exactly
88
+ * `flashRepayAmountBaseUnits` remains for the repay.
89
+ */
90
+ static buildFlashRebalance(ctx: FlashRebalanceContext, params: FlashRebalanceParams): Promise<FlashRebalanceResult>;
91
+ /**
92
+ * Build the top-level flash-repay instruction for a previously-built flash
93
+ * rebalance, given the final transaction index of its `flashBorrowIx`.
94
+ *
95
+ * Split from {@link buildFlashRebalance} because `borrowIxIndex` depends on
96
+ * the caller's full tx layout (pre-instructions + heap frame + ATA creations
97
+ * + flash-borrow position), which in turn depends on the ATA list derived
98
+ * from the plan's `remainingAccounts` — a chicken-and-egg the caller resolves
99
+ * by assembling the preamble before calling this.
100
+ */
101
+ static buildFlashRepayIx(ctx: FlashRebalanceContext, plan: Pick<FlashRebalanceResult, "flashBorrowAmountBaseUnits">, borrowIxIndex: number): Promise<Instruction>;
102
+ private static calcSourceRepayForWithdraw;
103
+ private static calcDestinationBorrowCapacityForDeposit;
104
+ }