@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,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertCollectInterestPlanHasPositiveRedemptions = assertCollectInterestPlanHasPositiveRedemptions;
4
+ exports.buildCollectInterestPlan = buildCollectInterestPlan;
5
+ const core_1 = require("@anchor-lang/core");
6
+ const web3_js_1 = require("@solana/web3.js");
7
+ const common_1 = require("common");
8
+ const errors_1 = require("../../errors");
9
+ const tokenFeeMath_1 = require("../../utils/tokenFeeMath");
10
+ /**
11
+ * Ensures the planner produced at least one positive redemption leg. Without this,
12
+ * routing would fail or build an empty CPI list even though share math passed.
13
+ */
14
+ function assertCollectInterestPlanHasPositiveRedemptions(plan) {
15
+ const hasPositive = plan.holdingsToRedeem.some((h) => h.amount.gt(new core_1.BN(0)));
16
+ if (!hasPositive) {
17
+ throw new errors_1.NoInterestToCollectError("No redeemable yielding bank assets — nothing to collect");
18
+ }
19
+ }
20
+ /**
21
+ * Derive deterministic collect-interest values from fresh token and bank state.
22
+ * This intentionally excludes route / venue selection.
23
+ *
24
+ * @param account - Account client used to fetch fresh token and yielding-bank state.
25
+ * @param token - Token PDA whose carry position should collect accrued interest.
26
+ * @param params - Yielding bank to redeem from.
27
+ * @returns Deterministic collect-interest plan without swap routing attached.
28
+ *
29
+ * @throws {NoInterestToCollectError} When carry/debt math rules out collection.
30
+ *
31
+ * Before swap routing, run `assertCollectInterestPlanHasPositiveRedemptions` on the
32
+ * returned plan (the `getCollectInterestTx` transaction builder does this) so rounding
33
+ * cannot yield an empty redemption list.
34
+ */
35
+ async function buildCollectInterestPlan(account, token, params) {
36
+ const [tokenData, bank] = await Promise.all([
37
+ account.fetchToken(token),
38
+ account.fetchYieldingBank(params.yieldingBank),
39
+ ]);
40
+ const carryIndex = tokenData.data.debtCarry.findIndex((carry) => !carry.yieldingBaseMint.equals(web3_js_1.PublicKey.default) &&
41
+ (0, common_1.fromWeb3Pk)(carry.yieldingBaseMint) === bank.baseMint &&
42
+ carry.yieldingBankId === bank.id &&
43
+ (0, common_1.toBigInt)(carry.shares) > BigInt(0));
44
+ if (carryIndex === -1) {
45
+ throw new errors_1.NoInterestToCollectError(`No active carry position found for yielding bank ${params.yieldingBank}`);
46
+ }
47
+ const carry = tokenData.data.debtCarry[carryIndex];
48
+ const totalCarryTvl = tokenData.totalCarryTvlUsd;
49
+ const totalDebtUsd = tokenData.totalLendingDebtTvlUsd;
50
+ const totalShares = (0, common_1.toBigInt)(bank.data.accounting.totalShares);
51
+ const tvlBefore = (0, common_1.toBigInt)(bank.data.accounting.tvl);
52
+ const carryShares = (0, common_1.toBigInt)(carry.shares);
53
+ if (!tokenData.hasInterestToCollect()) {
54
+ throw new errors_1.NoInterestToCollectError("Token is inactive, carry surplus is absent, or surplus exceeds the 1 bp collection limit");
55
+ }
56
+ if (totalShares <= BigInt(0)) {
57
+ throw new errors_1.NoInterestToCollectError("Yielding bank has no outstanding shares");
58
+ }
59
+ if (tvlBefore <= BigInt(0)) {
60
+ throw new errors_1.NoInterestToCollectError("Yielding bank has zero TVL — nothing to collect");
61
+ }
62
+ // Only redeem from the default redemption mint — the on-chain instruction
63
+ // enforces this by validating the yb_redemption_token_account ATA.
64
+ const redemptionMint = bank.defaultRedemptionMint;
65
+ const redemptionHolding = bank.findAssetHolding(redemptionMint);
66
+ if (!redemptionHolding) {
67
+ throw new errors_1.NoInterestToCollectError(`Default redemption mint ${redemptionMint} has no active asset holding on the yielding bank`);
68
+ }
69
+ const redemptionOracle = (0, common_1.fromWeb3Pk)(redemptionHolding.oracle);
70
+ const redemptionTokenProgram = (0, common_1.resolveTokenProgram)(redemptionHolding.tokenProgram);
71
+ // Use the redemption holding's cached on-chain price rather than a freshly
72
+ // fetched live price. The handler re-reads the same on-chain oracle account
73
+ // we cached from the previous refresh_yielding_bank, so using the cached
74
+ // value here lets the SDK predict the handler's `redemption_sold_tvl`
75
+ // exactly. (An independently-fetched Hermes/live price drifts by a few
76
+ // fixed-point units from the on-chain account, which previously caused
77
+ // strict-equality test assertions and the share_price invariant check to
78
+ // fail on rebalanced banks.)
79
+ const redemptionPrice = (0, common_1.toBigInt)(redemptionHolding.price);
80
+ const redemptionDecimals = redemptionHolding.decimals;
81
+ const redemptionHoldingAmount = (0, common_1.toBigInt)(redemptionHolding.amount);
82
+ if (redemptionPrice <= BigInt(0)) {
83
+ throw new errors_1.NoInterestToCollectError(`Redemption mint ${redemptionMint} has no cached price — refresh the yielding bank first`);
84
+ }
85
+ // Collectable yield is the full carry surplus above debt — must match the on-chain cap.
86
+ const netYieldUsd = (0, tokenFeeMath_1.collectableNetYieldUsd)(totalCarryTvl, totalDebtUsd);
87
+ if (params.minYieldUsd !== undefined && params.minYieldUsd > 0) {
88
+ const minYield8Dec = (0, common_1.toBigInt)((0, common_1.fromUiAmount)(params.minYieldUsd, 8));
89
+ if (netYieldUsd < minYield8Dec) {
90
+ throw new errors_1.NoInterestToCollectError(`Net yield $${(Number(netYieldUsd) / 1e8).toFixed(4)} is below minimum $${params.minYieldUsd}`);
91
+ }
92
+ }
93
+ // Target shares to burn: capped at this carry position's balance because a
94
+ // single call cannot drain more than this bank's own carry (the handler
95
+ // enforces the same cap against `carry.shares`).
96
+ //
97
+ // Use the same `totalShares / tvl` ratio as the handler's final derivation
98
+ // to keep a single truncation across all share-math steps.
99
+ const unboundedSharesToBurn = (netYieldUsd * totalShares) / tvlBefore;
100
+ const targetSharesToBurn = unboundedSharesToBurn < carryShares ? unboundedSharesToBurn : carryShares;
101
+ if (targetSharesToBurn <= BigInt(0)) {
102
+ throw new errors_1.NoInterestToCollectError("Computed shares to burn is zero — yield too small to collect");
103
+ }
104
+ // USD value we want the swap to liquidate from the redemption mint. Convert
105
+ // to raw token units at the cached redemption price to size the swap input.
106
+ const targetRedemptionTvlUsd = (targetSharesToBurn * tvlBefore) / totalShares;
107
+ const redemptionAmount = (0, common_1.tvlUsdToBaseUnits)(targetRedemptionTvlUsd, redemptionPrice, redemptionDecimals);
108
+ if (redemptionAmount > redemptionHoldingAmount) {
109
+ throw new errors_1.NoInterestToCollectError(`Redemption mint ${redemptionMint} holding (${redemptionHoldingAmount}) is insufficient ` +
110
+ `to cover yield redemption (${redemptionAmount}) — rebalance the yielding bank first`);
111
+ }
112
+ // Predict the handler's phase 6 derivation exactly (same integer-truncation
113
+ // order): first recompute the *actual* USD value the handler will see from
114
+ // the sized `redemptionAmount`, then apply the invariant formula
115
+ // `shares_to_burn = redemption_sold_tvl × total_shares_before / tvl_before`.
116
+ // The handler uses `total_shares / tvl` rather than `bank_scale /
117
+ // share_price` to avoid double truncation — mirror that here.
118
+ const sharesBurnedValueUsd = (0, common_1.calculateTvlUsd)(redemptionAmount, redemptionPrice, redemptionDecimals);
119
+ const sharesToBurn = (sharesBurnedValueUsd * totalShares) / tvlBefore;
120
+ if (sharesToBurn <= BigInt(0)) {
121
+ throw new errors_1.NoInterestToCollectError("Predicted shares to burn is zero — redemption amount rounds down below one share");
122
+ }
123
+ const holdingsToRedeem = [];
124
+ if (redemptionAmount > BigInt(0)) {
125
+ holdingsToRedeem.push({
126
+ mint: redemptionMint,
127
+ amount: (0, common_1.bnFromBigInt)(redemptionAmount),
128
+ isBaseAsset: redemptionMint === bank.baseMint,
129
+ });
130
+ }
131
+ return {
132
+ token,
133
+ yieldingBank: params.yieldingBank,
134
+ baseMint: bank.baseMint,
135
+ redemption: {
136
+ mint: redemptionMint,
137
+ tokenProgram: redemptionTokenProgram,
138
+ oracle: redemptionOracle,
139
+ },
140
+ collateral: {
141
+ mint: (0, common_1.fromWeb3Pk)(tokenData.data.collateral.mint),
142
+ tokenProgram: (0, common_1.resolveTokenProgram)(tokenData.data.collateral.tokenProgram),
143
+ oracle: (0, common_1.fromWeb3Pk)(tokenData.data.collateral.oracle),
144
+ },
145
+ carryIndex,
146
+ sharesToBurn: (0, common_1.bnFromBigInt)(sharesToBurn),
147
+ sharesBurnedValueUsd: (0, common_1.bnFromBigInt)(sharesBurnedValueUsd),
148
+ holdingsToRedeem,
149
+ };
150
+ }
@@ -0,0 +1,12 @@
1
+ import type { Address } from "@solana/kit";
2
+ import { type SwapClient } from "common";
3
+ import type { AccountClient } from "../account";
4
+ import type { DecreaseCarryPositionBuilderParams, DecreaseCarryPositionPlan } from "../types";
5
+ /**
6
+ * Build the execution plan for `decrease_carry_position`.
7
+ *
8
+ * LYC-specific concerns (permissionless operation handling, steering-based target
9
+ * resolution) live here. Sizing, repay CPI construction, and swap assembly are
10
+ * delegated to the generic {@link LeverageService} from `lending-platforms`.
11
+ */
12
+ export declare function buildDecreaseCarryPositionPlan(account: AccountClient, swap: SwapClient, signer: Address, token: Address, params: DecreaseCarryPositionBuilderParams): Promise<DecreaseCarryPositionPlan>;
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildDecreaseCarryPositionPlan = buildDecreaseCarryPositionPlan;
4
+ const common_1 = require("common");
5
+ const lending_platforms_1 = require("lending-platforms");
6
+ const carry_1 = require("../../services/carry");
7
+ /**
8
+ * Build the execution plan for `decrease_carry_position`.
9
+ *
10
+ * LYC-specific concerns (permissionless operation handling, steering-based target
11
+ * resolution) live here. Sizing, repay CPI construction, and swap assembly are
12
+ * delegated to the generic {@link LeverageService} from `lending-platforms`.
13
+ */
14
+ async function buildDecreaseCarryPositionPlan(account, swap, signer, token, params) {
15
+ const tokenData = await account.fetchToken(token);
16
+ const position = tokenData.data.lendingPositions[params.lendingPositionIndex];
17
+ const debtMint = (0, common_1.fromWeb3Pk)(position.accounting.debt.mint);
18
+ const initialAccounts = await account.getCarryTradeAccounts(token, params.yieldingBank, params.lendingPositionIndex);
19
+ if (params.permissionlessOperation && params.sourceMint !== undefined) {
20
+ throw new Error("DecreaseCarryPositionBuilderParams: sourceMint must not be set when permissionlessOperation is true");
21
+ }
22
+ params.lendingIx.clearCacheEntry(params.lendingIx.data.userAccountCatKey, (0, common_1.fromWeb3Pk)(position.protocolUserAcc));
23
+ const manager = await carry_1.LycLendingPositionManager.create(params.lendingIx.data, position, params.environment);
24
+ const { targetUtilizationBps, passTargetUtilizationOnChain } = await resolveRepaySteeringUtilization(manager, position, params.repaySteering);
25
+ const bank = await account.fetchYieldingBank(params.yieldingBank);
26
+ const { swapContext, sourceAssetHoldingIndex, needsSwapPath } = resolveSwapContext(swap, signer, params, bank, debtMint);
27
+ const { supplyReserve, debtReserve } = manager.reservesManager;
28
+ const positionState = await manager.getLendingPositionAmounts();
29
+ const txId = params.txId ?? `decrease-carry-${Date.now()}-${position.protocolUserAcc.toBase58()}`;
30
+ const isFullDeleverage = params.repaySteering?.mode === "explicitTargetUtilization" &&
31
+ params.repaySteering.targetUtilizationRateBps === 0;
32
+ const repayBaseUnitsOverride = isFullDeleverage
33
+ ? await resolveFullDeleverageRepayBaseUnits(params.lendingIx.data, position, debtReserve, manager)
34
+ : undefined;
35
+ const leverageResult = await lending_platforms_1.LeverageService.buildDecreaseLeverage({
36
+ lendingIx: params.lendingIx,
37
+ supplyReserve,
38
+ debtReserve,
39
+ user: token,
40
+ payer: signer,
41
+ pool: (0, common_1.fromWeb3Pk)(position.pool),
42
+ userAccount: (0, common_1.fromWeb3Pk)(position.protocolUserAcc),
43
+ txId,
44
+ environment: params.environment,
45
+ }, {
46
+ currentSupplyUiAmount: positionState.supplyUiAmount,
47
+ currentDebtUiAmount: positionState.debtUiAmount,
48
+ targetUtilizationRateBps: targetUtilizationBps,
49
+ swapContext,
50
+ repayBaseUnitsOverride,
51
+ });
52
+ return {
53
+ lendingPositionIndex: params.lendingPositionIndex,
54
+ repayAmount: leverageResult.repayBaseUnits,
55
+ preInstructions: leverageResult.preInstructions,
56
+ initialAccounts,
57
+ cpiDataGroups: leverageResult.cpiDataGroups,
58
+ ...(leverageResult.prerequisiteCpis.length
59
+ ? { tokenPrerequisiteCpis: leverageResult.prerequisiteCpis }
60
+ : {}),
61
+ ...(passTargetUtilizationOnChain ? { targetUtilizationRateBps: targetUtilizationBps } : {}),
62
+ yieldingBank: params.yieldingBank,
63
+ ...(needsSwapPath && sourceAssetHoldingIndex != null ? { sourceAssetHoldingIndex } : {}),
64
+ };
65
+ }
66
+ /**
67
+ * Sizes a full repay from the refreshed Kamino obligation borrow (+ buffer), not
68
+ * stale token accounting, so the SPL transfer and repay CPI stay in sync.
69
+ */
70
+ async function resolveFullDeleverageRepayBaseUnits(lpData, position, debtReserve, manager) {
71
+ const pool = (0, common_1.fromWeb3Pk)(position.pool);
72
+ const userAccount = (0, common_1.fromWeb3Pk)(position.protocolUserAcc);
73
+ const obligation = await lpData.maybeFetchUserPositionInPool(pool, userAccount);
74
+ const borrow = obligation?.borrows.find((entry) => entry.reserve === debtReserve.address);
75
+ const fallbackUi = (await manager.getLendingPositionAmounts()).debtUiAmount;
76
+ const fallbackBaseUnits = (0, common_1.fromUiAmount)(fallbackUi, debtReserve.mint.mintDecimals);
77
+ if (!borrow) {
78
+ return fallbackBaseUnits;
79
+ }
80
+ // Kamino obligation debt can exceed stale token accounting by accrued interest
81
+ // (often 1 base unit on tiny positions). Size the SPL transfer and repay CPI
82
+ // from the refreshed obligation borrow, not the token snapshot alone.
83
+ return borrow.amount.gt(fallbackBaseUnits) ? borrow.amount : fallbackBaseUnits;
84
+ }
85
+ /**
86
+ * Resolves the utilization target (bps) for leverage sizing and whether that same
87
+ * bps should appear on-chain as `targetUtilizationRateBps` for manager post-repay checks.
88
+ */
89
+ async function resolveRepaySteeringUtilization(manager, position, steering) {
90
+ if (!steering) {
91
+ return {
92
+ targetUtilizationBps: position.config.targetUtilizationRateBps,
93
+ passTargetUtilizationOnChain: false,
94
+ };
95
+ }
96
+ switch (steering.mode) {
97
+ case "collateralWithdrawal": {
98
+ const postWithdrawalTargetUtilizationRateBps = steering.postWithdrawalTargetUtilizationRateBps ?? position.config.targetUtilizationRateBps;
99
+ const targetUtilizationBps = await manager.calcPreWithdrawalTargetUtilizationRateBps(steering.collateralWithdrawalUiAmount, postWithdrawalTargetUtilizationRateBps);
100
+ return {
101
+ targetUtilizationBps,
102
+ passTargetUtilizationOnChain: steering.allowBelowTargetOnChain === true,
103
+ };
104
+ }
105
+ case "explicitTargetUtilization":
106
+ return {
107
+ targetUtilizationBps: steering.targetUtilizationRateBps,
108
+ passTargetUtilizationOnChain: true,
109
+ };
110
+ default: {
111
+ throw new Error(`Unexpected repaySteering: ${JSON.stringify(steering)}`);
112
+ }
113
+ }
114
+ }
115
+ /**
116
+ * Swap context when the yielding bank's source asset differs from the debt mint.
117
+ */
118
+ function resolveSwapContext(swap, signer, params, bank, debtMint) {
119
+ const sourceMint = params.sourceMint ?? bank.defaultRedemptionMint;
120
+ const sourceAssetHoldingIndex = bank.findAssetHoldingIndex(sourceMint);
121
+ const needsSwapPath = sourceAssetHoldingIndex != null && sourceMint !== debtMint;
122
+ if (!needsSwapPath) {
123
+ return { swapContext: undefined, sourceAssetHoldingIndex, needsSwapPath };
124
+ }
125
+ const sourceHolding = bank.findAssetHolding(sourceMint);
126
+ return {
127
+ swapContext: {
128
+ swap,
129
+ sourceMint,
130
+ debtMint,
131
+ sourceBalanceBaseUnits: sourceHolding ? BigInt(sourceHolding.amount.toString()) : 0n,
132
+ swapTarget: params.yieldingBank,
133
+ payer: signer,
134
+ slippageBps: params.swapSlippageBps,
135
+ excludeDexes: params.swapExcludeDexes,
136
+ },
137
+ sourceAssetHoldingIndex,
138
+ needsSwapPath,
139
+ };
140
+ }
@@ -0,0 +1,13 @@
1
+ import type { Address } from "@solana/kit";
2
+ import type { SwapClient } from "common";
3
+ import type { CollectInterestExecutionPlan, CollectInterestPlan, CollectInterestRouteBuilderParams } from "../types";
4
+ /**
5
+ * Convert a deterministic collect-interest plan into ordered CPI data.
6
+ * Venue selection and slippage policy live here.
7
+ *
8
+ * @param swapClient - Swap client used for all intermediate and final swaps.
9
+ * @param plan - Deterministic collect-interest plan returned by the planner layer.
10
+ * @param params - Optional routing policy such as output mint and slippage.
11
+ * @returns Executable collect-interest plan with ordered CPI data.
12
+ */
13
+ export declare function buildCollectInterestRoutePlan(swapClient: SwapClient, plan: CollectInterestPlan, params?: CollectInterestRouteBuilderParams, payer?: Address): Promise<CollectInterestExecutionPlan>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildCollectInterestRoutePlan = buildCollectInterestRoutePlan;
4
+ const core_1 = require("@anchor-lang/core");
5
+ const common_1 = require("common");
6
+ const errors_1 = require("../../errors");
7
+ /**
8
+ * Convert a deterministic collect-interest plan into ordered CPI data.
9
+ * Venue selection and slippage policy live here.
10
+ *
11
+ * @param swapClient - Swap client used for all intermediate and final swaps.
12
+ * @param plan - Deterministic collect-interest plan returned by the planner layer.
13
+ * @param params - Optional routing policy such as output mint and slippage.
14
+ * @returns Executable collect-interest plan with ordered CPI data.
15
+ */
16
+ async function buildCollectInterestRoutePlan(swapClient, plan, params = {}, payer) {
17
+ const outputMint = params.outputMint ?? plan.collateral.mint;
18
+ const slippageBps = params.slippageBps ?? 100;
19
+ const cpiData = [];
20
+ const holding = plan.holdingsToRedeem[0];
21
+ if (!holding || holding.amount.lte(new core_1.BN(0))) {
22
+ throw new errors_1.NoInterestToCollectError("Expected positive redeemable yielding bank assets");
23
+ }
24
+ // Single swap: redemption mint → output mint (collateral or caller override).
25
+ const quote = await swapClient.getQuote({
26
+ inputMint: holding.mint,
27
+ outputMint,
28
+ amount: (0, common_1.toSafeNumber)(holding.amount, "collect_interest swap amount"),
29
+ slippageBps,
30
+ });
31
+ const swapCpi = await swapClient.getSwapCpiData(quote, plan.yieldingBank, payer ? { payer } : undefined);
32
+ cpiData.push(swapCpi);
33
+ return {
34
+ ...plan,
35
+ preInstructions: swapCpi.preInstructions ?? [],
36
+ initialAccounts: [],
37
+ cpiData,
38
+ };
39
+ }
@@ -0,0 +1,41 @@
1
+ import type { TransactionPlan as BaseTransactionPlan } from "common";
2
+ import type { LongYieldCarryBuilderContext } from "./types/builders";
3
+ import { BurnTokenBuilder, ClaimIncentivesBuilder, CollectFeesBuilder, CollectInterestBuilder, CreditUnlentToRedemptionEpochBuilder, CreateCpiPlanBuilder, CreateTokenBuilder, CreateTokenLendingPositionBuilder, CreateYieldingBankAllocationBuilder, CreateYieldingBankBuilder, DecreaseCarryPositionBuilder, DepositUnlentCollateralBuilder, IncreaseCarryPositionBuilder, MintTokenBuilder, RebalanceTokenBuilder, RebalanceYieldingBankBuilder, RecollateralizeLossBuilder, RefreshTokenStateBuilder, RefreshTokensBuilder, RefreshYieldingBankBuilder, ProcessAsyncBurnBuilder, ResetTokenBurnRateLimitBuilder, SetRedemptionEpochStatusBuilder, SetTokenCircuitBreakerBuilder, SetYieldingBankCircuitBreakerBuilder, UpdateLendingPositionConfigBuilder, UpdateTokenConfigurationBuilder, UpdateTokenMetadataBuilder, UpdateYieldingBankConfigBuilder, TopUpUnlentReservesBuilder } from "./builders";
4
+ import type { LongYieldCarryTransactionPlan } from "./types";
5
+ export * from "./builders";
6
+ export declare class TransactionClient {
7
+ readonly context: LongYieldCarryBuilderContext;
8
+ readonly burnToken: BurnTokenBuilder;
9
+ readonly claimIncentives: ClaimIncentivesBuilder;
10
+ readonly collectFees: CollectFeesBuilder;
11
+ readonly collectInterest: CollectInterestBuilder;
12
+ readonly creditUnlentToRedemptionEpoch: CreditUnlentToRedemptionEpochBuilder;
13
+ readonly createCpiPlan: CreateCpiPlanBuilder;
14
+ readonly createToken: CreateTokenBuilder;
15
+ readonly createTokenLendingPosition: CreateTokenLendingPositionBuilder;
16
+ readonly createYieldingBank: CreateYieldingBankBuilder;
17
+ readonly createYieldingBankAllocation: CreateYieldingBankAllocationBuilder;
18
+ readonly decreaseCarryPosition: DecreaseCarryPositionBuilder;
19
+ readonly depositUnlentCollateral: DepositUnlentCollateralBuilder;
20
+ readonly increaseCarryPosition: IncreaseCarryPositionBuilder;
21
+ readonly mintToken: MintTokenBuilder;
22
+ readonly rebalanceToken: RebalanceTokenBuilder;
23
+ readonly rebalanceYieldingBank: RebalanceYieldingBankBuilder;
24
+ readonly recollateralizeLoss: RecollateralizeLossBuilder;
25
+ readonly refreshTokenState: RefreshTokenStateBuilder;
26
+ readonly refreshTokens: RefreshTokensBuilder;
27
+ readonly refreshYieldingBank: RefreshYieldingBankBuilder;
28
+ readonly processAsyncBurn: ProcessAsyncBurnBuilder;
29
+ readonly resetTokenBurnRateLimit: ResetTokenBurnRateLimitBuilder;
30
+ readonly setRedemptionEpochStatus: SetRedemptionEpochStatusBuilder;
31
+ readonly setTokenCircuitBreaker: SetTokenCircuitBreakerBuilder;
32
+ readonly setYieldingBankCircuitBreaker: SetYieldingBankCircuitBreakerBuilder;
33
+ readonly updateLendingPositionConfig: UpdateLendingPositionConfigBuilder;
34
+ readonly updateTokenConfiguration: UpdateTokenConfigurationBuilder;
35
+ readonly updateTokenMetadata: UpdateTokenMetadataBuilder;
36
+ readonly updateYieldingBankConfig: UpdateYieldingBankConfigBuilder;
37
+ readonly topUpUnlentReserves: TopUpUnlentReservesBuilder;
38
+ constructor(context: LongYieldCarryBuilderContext);
39
+ }
40
+ export type TransactionBuilder = TransactionClient[keyof TransactionClient];
41
+ export type CompositeTransactionPlan = BaseTransactionPlan | LongYieldCarryTransactionPlan;
@@ -0,0 +1,55 @@
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
+ exports.TransactionClient = void 0;
18
+ const builders_1 = require("./builders");
19
+ __exportStar(require("./builders"), exports);
20
+ class TransactionClient {
21
+ constructor(context) {
22
+ this.context = context;
23
+ this.burnToken = new builders_1.BurnTokenBuilder(context);
24
+ this.claimIncentives = new builders_1.ClaimIncentivesBuilder(context);
25
+ this.collectFees = new builders_1.CollectFeesBuilder(context);
26
+ this.collectInterest = new builders_1.CollectInterestBuilder(context);
27
+ this.creditUnlentToRedemptionEpoch = new builders_1.CreditUnlentToRedemptionEpochBuilder(context);
28
+ this.createCpiPlan = new builders_1.CreateCpiPlanBuilder(context);
29
+ this.createToken = new builders_1.CreateTokenBuilder(context);
30
+ this.createTokenLendingPosition = new builders_1.CreateTokenLendingPositionBuilder(context);
31
+ this.createYieldingBank = new builders_1.CreateYieldingBankBuilder(context);
32
+ this.createYieldingBankAllocation = new builders_1.CreateYieldingBankAllocationBuilder(context);
33
+ this.decreaseCarryPosition = new builders_1.DecreaseCarryPositionBuilder(context);
34
+ this.depositUnlentCollateral = new builders_1.DepositUnlentCollateralBuilder(context);
35
+ this.increaseCarryPosition = new builders_1.IncreaseCarryPositionBuilder(context);
36
+ this.mintToken = new builders_1.MintTokenBuilder(context);
37
+ this.rebalanceToken = new builders_1.RebalanceTokenBuilder(context);
38
+ this.rebalanceYieldingBank = new builders_1.RebalanceYieldingBankBuilder(context);
39
+ this.recollateralizeLoss = new builders_1.RecollateralizeLossBuilder(context);
40
+ this.refreshTokenState = new builders_1.RefreshTokenStateBuilder(context);
41
+ this.refreshTokens = new builders_1.RefreshTokensBuilder(context);
42
+ this.refreshYieldingBank = new builders_1.RefreshYieldingBankBuilder(context);
43
+ this.processAsyncBurn = new builders_1.ProcessAsyncBurnBuilder(context);
44
+ this.resetTokenBurnRateLimit = new builders_1.ResetTokenBurnRateLimitBuilder(context);
45
+ this.setRedemptionEpochStatus = new builders_1.SetRedemptionEpochStatusBuilder(context);
46
+ this.setTokenCircuitBreaker = new builders_1.SetTokenCircuitBreakerBuilder(context);
47
+ this.setYieldingBankCircuitBreaker = new builders_1.SetYieldingBankCircuitBreakerBuilder(context);
48
+ this.updateLendingPositionConfig = new builders_1.UpdateLendingPositionConfigBuilder(context);
49
+ this.updateTokenConfiguration = new builders_1.UpdateTokenConfigurationBuilder(context);
50
+ this.updateTokenMetadata = new builders_1.UpdateTokenMetadataBuilder(context);
51
+ this.updateYieldingBankConfig = new builders_1.UpdateYieldingBankConfigBuilder(context);
52
+ this.topUpUnlentReserves = new builders_1.TopUpUnlentReservesBuilder(context);
53
+ }
54
+ }
55
+ exports.TransactionClient = TransactionClient;
@@ -0,0 +1,18 @@
1
+ import type { Program } from "@anchor-lang/core";
2
+ import type { Rpc, SolanaRpcApi } from "@solana/kit";
3
+ import type { Environment, SwapClient } from "common";
4
+ import type { LongYieldCarry } from "../../idl/long_yield_carry";
5
+ import type { AccountClient } from "../account";
6
+ import type { LongYieldCarryExternalLiquidityResolver } from "../externalLiquidityResolver";
7
+ import type { LendingPlatformClientRegistry } from "../lendingPlatformClients";
8
+ import type { PdaClient } from "../pda";
9
+ export interface LongYieldCarryBuilderContext {
10
+ rpc: Rpc<SolanaRpcApi>;
11
+ environment: Environment;
12
+ program: Program<LongYieldCarry>;
13
+ account: AccountClient;
14
+ pda: PdaClient;
15
+ swap: SwapClient;
16
+ externalLiquidityResolver: LongYieldCarryExternalLiquidityResolver;
17
+ lendingPlatformClients: LendingPlatformClientRegistry;
18
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,22 @@
1
+ export type AnchorInterestDistribution = {
2
+ intoTokenPrice: {};
3
+ } | {
4
+ intoWallets: {};
5
+ };
6
+ export declare enum InterestDistribution {
7
+ IntoTokenPrice = 0,
8
+ IntoWallets = 1
9
+ }
10
+ export declare function interestDistributionToEnum(v: AnchorInterestDistribution): InterestDistribution;
11
+ export declare function enumToInterestDistribution(t: InterestDistribution): AnchorInterestDistribution;
12
+ export type AnchorLendingType = {
13
+ lendingMarket: {};
14
+ } | {
15
+ vault: {};
16
+ };
17
+ export declare enum LendingType {
18
+ LendingMarket = 0,
19
+ Vault = 1
20
+ }
21
+ export declare function lendingTypeToEnum(v: AnchorLendingType): LendingType;
22
+ export declare function enumToLendingType(t: LendingType): AnchorLendingType;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ // --- InterestDistribution ---
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.LendingType = exports.InterestDistribution = void 0;
5
+ exports.interestDistributionToEnum = interestDistributionToEnum;
6
+ exports.enumToInterestDistribution = enumToInterestDistribution;
7
+ exports.lendingTypeToEnum = lendingTypeToEnum;
8
+ exports.enumToLendingType = enumToLendingType;
9
+ var InterestDistribution;
10
+ (function (InterestDistribution) {
11
+ InterestDistribution[InterestDistribution["IntoTokenPrice"] = 0] = "IntoTokenPrice";
12
+ InterestDistribution[InterestDistribution["IntoWallets"] = 1] = "IntoWallets";
13
+ })(InterestDistribution || (exports.InterestDistribution = InterestDistribution = {}));
14
+ function interestDistributionToEnum(v) {
15
+ if ("intoTokenPrice" in v)
16
+ return InterestDistribution.IntoTokenPrice;
17
+ if ("intoWallets" in v)
18
+ return InterestDistribution.IntoWallets;
19
+ throw new Error("Unknown InterestDistribution variant");
20
+ }
21
+ function enumToInterestDistribution(t) {
22
+ switch (t) {
23
+ case InterestDistribution.IntoTokenPrice:
24
+ return { intoTokenPrice: {} };
25
+ case InterestDistribution.IntoWallets:
26
+ return { intoWallets: {} };
27
+ }
28
+ }
29
+ var LendingType;
30
+ (function (LendingType) {
31
+ LendingType[LendingType["LendingMarket"] = 0] = "LendingMarket";
32
+ LendingType[LendingType["Vault"] = 1] = "Vault";
33
+ })(LendingType || (exports.LendingType = LendingType = {}));
34
+ function lendingTypeToEnum(v) {
35
+ if ("lendingMarket" in v)
36
+ return LendingType.LendingMarket;
37
+ if ("vault" in v)
38
+ return LendingType.Vault;
39
+ throw new Error("Unknown LendingType variant");
40
+ }
41
+ function enumToLendingType(t) {
42
+ switch (t) {
43
+ case LendingType.LendingMarket:
44
+ return { lendingMarket: {} };
45
+ case LendingType.Vault:
46
+ return { vault: {} };
47
+ }
48
+ }
@@ -0,0 +1,98 @@
1
+ import { type BN } from "@anchor-lang/core";
2
+ import { type Address } from "@solana/kit";
3
+ import { type AnchorOracleType } from "common";
4
+ import type { LYCToken } from "../../models/lycToken";
5
+ /** Lightweight read-only snapshot of a `RedemptionEpoch` account. */
6
+ export interface RedemptionEpochSnapshot {
7
+ pda: Address;
8
+ tokenPda: Address;
9
+ epochId: bigint;
10
+ /** SOL rent payer recorded when the epoch PDA was first funded (`Pubkey.default` on legacy accounts). */
11
+ payer: Address;
12
+ status: number;
13
+ requestCount: number;
14
+ processedRequestCount: number;
15
+ grossCollateralClaim: bigint;
16
+ realizedUnwindLoss: bigint;
17
+ fundedCollateral: bigint;
18
+ }
19
+ export interface OracleConfigDetails {
20
+ /** Oracle account address */
21
+ oracle: Address;
22
+ /** Oracle type */
23
+ oracleType: AnchorOracleType;
24
+ /** Optional secondary oracle account for composite oracle types (e.g. the
25
+ * SPL stake pool account for `PythSplStake`). Omit for single-account types. */
26
+ secondaryOracle?: Address;
27
+ }
28
+ /**
29
+ * Accounts required to reference a priced SPL mint: the mint itself, the
30
+ * SPL token program that governs it, and the oracle that prices it.
31
+ */
32
+ export interface PricedMint {
33
+ mint: Address;
34
+ tokenProgram: Address;
35
+ oracle: Address;
36
+ }
37
+ export interface FeeConfig {
38
+ /** Management fee in basis points */
39
+ performanceFeeBps: number;
40
+ /** Minting fee in basis points */
41
+ mintingFeeBps: number;
42
+ /** Burning fee in basis points */
43
+ burningFeeBps: number;
44
+ /** Percentage of mint/burn fees that go to the protocol (in bps) */
45
+ protocolMintBurnPctBps: number;
46
+ /** Percentage of mint/burn fees that go to the curator (in bps) */
47
+ curatorMintBurnPctBps: number;
48
+ /** Curator's share of performance fees (in bps); protocol implicitly gets the rest. */
49
+ curatorPerfPctBps: number;
50
+ /**
51
+ * Cap (in bps) on the annualized token-price growth contributed by the fee
52
+ * drip. `0` disables the cap (release limited only by the linear rate).
53
+ * Omit to default to 200 bps on test/prod or `0` on local.
54
+ */
55
+ feeDripMaxApyBps?: number;
56
+ /**
57
+ * Duration (in seconds) over which absorbed mint/burn fees release into the
58
+ * price. `0` parks fees until recollateralization consumes them.
59
+ * Omit to default to three days on test/prod or parked-buffer mode on local.
60
+ */
61
+ feeDripDurationSecs?: BN;
62
+ }
63
+ /** Base-unit breakdown of the accounting effects of a mint. */
64
+ export interface MintAmounts {
65
+ tokensToUser: bigint;
66
+ protocolFee: bigint;
67
+ curatorFee: bigint;
68
+ }
69
+ /** Base-unit breakdown of the accounting effects of a burn. */
70
+ export interface BurnAmounts {
71
+ collateralToUser: bigint;
72
+ protocolFee: bigint;
73
+ curatorFee: bigint;
74
+ supplyReduction: bigint;
75
+ }
76
+ /**
77
+ * A single LYC yToken position held by a wallet.
78
+ *
79
+ * Returned by `AccountClient.fetchUserHoldings`. `token` is the full
80
+ * {@link LYCToken} model so callers can access price, label, decimals, and all
81
+ * on-chain accounting without a second fetch.
82
+ */
83
+ export interface UserHolding {
84
+ /** The LYC Token domain object (price, label, decimals, TVL, etc.). */
85
+ token: LYCToken;
86
+ /** User's ATA address for this yToken mint. */
87
+ tokenAccount: Address;
88
+ /** Raw balance in the yToken's smallest unit. */
89
+ balance: bigint;
90
+ /** Decimal-adjusted balance (e.g. `1.5` for 1.5 yTokens). */
91
+ uiBalance: number;
92
+ /**
93
+ * Wallet USD notional when the caller supplies a collateral USD price
94
+ * (`uiBalance × token.price × priceMap[collateralMint]`). Omitted if no
95
+ * usable collateral price was available.
96
+ */
97
+ valueUsd?: number;
98
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });