@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,175 @@
1
+ import { BN } from "@anchor-lang/core";
2
+ import { Address, Instruction, Rpc, SolanaRpcApi } from "@solana/kit";
3
+ import { LendingPlatformData } from "../platform";
4
+ import { CpiData, CustomAccountMeta, TransactionCacheInvalidation } from "common";
5
+ import { LpAccountsBase } from "../accounts";
6
+ import { RefreshPrerequisiteTarget } from "./types";
7
+ /** Parameters for deposit, withdraw, and borrow operations */
8
+ export interface LendingOperationParams {
9
+ user: Address;
10
+ payer: Address;
11
+ pool: Address;
12
+ reserve: Address;
13
+ userAccount: Address;
14
+ /**
15
+ * UI-unit amount, or `"all"` (withdraw-only) to encode the platform's
16
+ * "withdraw all" sentinel (Kamino: `u64::MAX` collateral amount) so the
17
+ * obligation's deposit is fully drained on-chain — no dust left behind
18
+ * from off-chain cToken/liquidity rate drift.
19
+ *
20
+ * If neither this nor {@link baseUnitAmount} is provided, the amount is
21
+ * implied to be derived in the program.
22
+ */
23
+ uiAmount?: number | "all";
24
+ /**
25
+ * Exact liquidity base units for the operation (e.g. lamports for SOL). Prefer over
26
+ * {@link uiAmount} when float round-trips would undershoot on-chain requirements.
27
+ * Pass `"all"` (withdraw-only) for the same sentinel semantics as {@link uiAmount}.
28
+ */
29
+ baseUnitAmount?: BN | "all";
30
+ txId: string;
31
+ }
32
+ /** Parameters for repay operations, with option for full repayment */
33
+ export interface RepayOperationParams extends LendingOperationParams {
34
+ /** Repay amount in UI units. The withdraw-only `"all"` sentinel is not valid here. */
35
+ uiAmount?: number;
36
+ /** Exact repay amount in liquidity base units. */
37
+ baseUnitAmount?: BN;
38
+ /** When true, repays the entire debt balance regardless of `amount` */
39
+ full?: boolean;
40
+ }
41
+ /** CPI data split into instruction-level prerequisite CPIs and main operation CPIs. */
42
+ export interface SplitLpOperationCpiData {
43
+ prerequisiteCpis: CpiData[];
44
+ cpis: CpiData[];
45
+ allCpis: CpiData[];
46
+ }
47
+ /** Split CPI data plus flattened post-success cache invalidations from all nested CPIs. */
48
+ export interface LendingOperationCpiBundle extends SplitLpOperationCpiData {
49
+ postSuccessCacheInvalidations: TransactionCacheInvalidation[];
50
+ }
51
+ /** Whether a reserve is used as collateral or debt for a user account */
52
+ export type ReserveRole = "collateral" | "debt";
53
+ /** Tracks a reserve's pool and which user accounts reference it (with roles) */
54
+ export interface TxReserveInfo {
55
+ pool: Address;
56
+ userAccounts: Map<string, Set<ReserveRole>>;
57
+ }
58
+ /**
59
+ * Abstract base class for lending platform instruction builders.
60
+ * Provides a unified interface for building CPI data for different lending protocols.
61
+ * Each platform implementation provides the account metas needed to construct CPI calls.
62
+ *
63
+ * @typeParam T - The platform-specific data class extending LendingPlatformData
64
+ */
65
+ export declare abstract class LpInstructionsBase<T extends LendingPlatformData> {
66
+ rpc: Rpc<SolanaRpcApi>;
67
+ rpcUrl: string;
68
+ data: T;
69
+ abstract programId: Address;
70
+ abstract lookupTable: Address;
71
+ accounts: LpAccountsBase<T>;
72
+ /** Tracks which reserves (and their pools/roles) are involved in each transaction */
73
+ protected txReserves: Map<string, Map<string, TxReserveInfo>>;
74
+ /**
75
+ * Per-txId per-obligation set of debt reserves that the caller has flagged
76
+ * as being fully repaid earlier in the same transaction. Subsequent
77
+ * `RefreshObligation` builds for that obligation must NOT include these
78
+ * reserves in the borrow accounts list — by execution time the borrow row
79
+ * has been removed from the obligation, and Kamino's `handler_refresh_obligation`
80
+ * checks the passed account count against the live obligation state and
81
+ * fails with `InvalidAccountInput` (klend error 6006) on a mismatch.
82
+ *
83
+ * Set via {@link markObligationDebtCleared}, read via {@link getTxObligationClearedDebt}.
84
+ */
85
+ protected txClearedDebt: Map<string, Map<string, Set<string>>>;
86
+ constructor(rpc: Rpc<SolanaRpcApi>, rpcUrl: string, data: T, accounts: LpAccountsBase<T>);
87
+ emptyAccountMeta(): CustomAccountMeta;
88
+ clearCacheEntry(category: string, id: string): void;
89
+ protected getCacheInvalidation(invalidation: {
90
+ category: string;
91
+ id: Address;
92
+ }): TransactionCacheInvalidation;
93
+ applyPostSuccessCacheInvalidations(invalidations: TransactionCacheInvalidation[]): void;
94
+ protected getCpiData(cpiType: number, accounts: CustomAccountMeta[], data?: Uint8Array, programId?: Address, postSuccessCacheInvalidations?: TransactionCacheInvalidation[]): CpiData;
95
+ protected createSplitOperationCpiData(prerequisiteCpis: CpiData[], cpis: CpiData[]): SplitLpOperationCpiData;
96
+ protected buildLendingOperationCpiBundle(cpiData: SplitLpOperationCpiData): LendingOperationCpiBundle;
97
+ getInitAndDepositCpiBundle(params: LendingOperationParams, userAccountId: number): Promise<LendingOperationCpiBundle>;
98
+ getInitBorrowPositionCpiBundle(params: LendingOperationParams, collReserve: Address): Promise<LendingOperationCpiBundle>;
99
+ getDepositCpiBundle(params: LendingOperationParams): Promise<LendingOperationCpiBundle>;
100
+ getWithdrawCpiBundle(params: LendingOperationParams): Promise<LendingOperationCpiBundle>;
101
+ getBorrowCpiBundle(params: LendingOperationParams): Promise<LendingOperationCpiBundle>;
102
+ getRepayCpiBundle(params: RepayOperationParams): Promise<LendingOperationCpiBundle>;
103
+ /**
104
+ * Registers a reserve as being used in a transaction.
105
+ * When userAccount and role are provided, also tracks the collateral/debt role
106
+ * for that specific user account.
107
+ */
108
+ protected registerTxReserve(txId: string, pool: Address, reserve: Address, userAccount?: Address, role?: ReserveRole): void;
109
+ /**
110
+ * Returns the collateral and debt reserves registered in the tx cache
111
+ * for a specific user account (obligation).
112
+ */
113
+ protected getTxUserAccountReserves(txId: string, userAccount: Address): {
114
+ collateral: Address[];
115
+ debt: Address[];
116
+ };
117
+ /**
118
+ * Mark that `reserve` will be fully repaid for `userAccount` earlier in the
119
+ * `txId` flow, so subsequent obligation-refresh builders drop it from the
120
+ * borrow accounts they emit. Call after building a "repay all" CPI; it has
121
+ * no effect on the repay itself.
122
+ */
123
+ markObligationDebtCleared(txId: string, userAccount: Address, reserve: Address): void;
124
+ /** Returns the set of debt reserves marked cleared for `(txId, userAccount)`. */
125
+ protected getTxObligationClearedDebt(txId: string, userAccount: Address): Set<Address>;
126
+ /**
127
+ * Clears the transaction cache for a given transaction or all transactions.
128
+ * Call after finishing building a transaction to free memory.
129
+ */
130
+ clearTransactionCache(txId?: string): void;
131
+ /**
132
+ * Returns standalone instructions that must be executed at the top level
133
+ * BEFORE the the main CPIs. Should be called after all CPI methods for this
134
+ * txId have been invoked.
135
+ */
136
+ abstract getPreInstructions(txId: string): Promise<Instruction[]>;
137
+ /**
138
+ * Returns prerequisite CPIs needed before reading refreshed account state for
139
+ * a batch of lending positions outside a normal deposit/withdraw/borrow/repay
140
+ * flow.
141
+ */
142
+ getPrerequisiteCpisForRefresh(_targets: RefreshPrerequisiteTarget[]): Promise<CpiData[]>;
143
+ /** Returns CPI data for initializing a user's lending account */
144
+ abstract getInitUserAccountCpiData(pool: Address, user: Address, feePayer: Address, id: number): Promise<SplitLpOperationCpiData>;
145
+ /**
146
+ * Returns CPI data for initializing a lending position end-to-end: the user
147
+ * account itself plus any per-reserve accessory accounts (e.g. Kamino
148
+ * obligation farm user states for the collateral and debt reserves). Called
149
+ * at position-creation time so subsequent deposit/borrow flows don't need
150
+ * to init these inline.
151
+ *
152
+ * Default: delegates to {@link getInitUserAccountCpiData}. Platforms with
153
+ * per-reserve accessory accounts override this to add their inits.
154
+ */
155
+ getInitLendingPositionCpiData(params: {
156
+ pool: Address;
157
+ user: Address;
158
+ payer: Address;
159
+ userAccountId: number;
160
+ collateralReserve: Address;
161
+ debtReserve: Address;
162
+ }): Promise<SplitLpOperationCpiData>;
163
+ /** Returns CPI data for initializing user account, incentive account (if necessary) and depositing */
164
+ abstract getInitAndDepositCpiData(params: LendingOperationParams, userAccountId: number): Promise<SplitLpOperationCpiData>;
165
+ /** Returns CPI data for initializing a new borrow position */
166
+ abstract getInitBorrowPositionCpiData(params: LendingOperationParams, collReserve: Address): Promise<SplitLpOperationCpiData>;
167
+ /** Returns deposit CPI data split into optional prerequisite CPIs and main CPIs. */
168
+ abstract getDepositCpiData(params: LendingOperationParams): Promise<SplitLpOperationCpiData>;
169
+ /** Returns withdraw CPI data split into optional prerequisite CPIs and main CPIs. */
170
+ abstract getWithdrawCpiData(params: LendingOperationParams): Promise<SplitLpOperationCpiData>;
171
+ /** Returns borrow CPI data split into optional prerequisite CPIs and main CPIs. */
172
+ abstract getBorrowCpiData(params: LendingOperationParams): Promise<SplitLpOperationCpiData>;
173
+ /** Returns repay CPI data split into optional prerequisite CPIs and main CPIs. */
174
+ abstract getRepayCpiData(params: RepayOperationParams): Promise<SplitLpOperationCpiData>;
175
+ }
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LpInstructionsBase = void 0;
4
+ const common_1 = require("common");
5
+ /**
6
+ * Abstract base class for lending platform instruction builders.
7
+ * Provides a unified interface for building CPI data for different lending protocols.
8
+ * Each platform implementation provides the account metas needed to construct CPI calls.
9
+ *
10
+ * @typeParam T - The platform-specific data class extending LendingPlatformData
11
+ */
12
+ class LpInstructionsBase {
13
+ constructor(rpc, rpcUrl, data, accounts) {
14
+ /** Tracks which reserves (and their pools/roles) are involved in each transaction */
15
+ this.txReserves = new Map();
16
+ /**
17
+ * Per-txId per-obligation set of debt reserves that the caller has flagged
18
+ * as being fully repaid earlier in the same transaction. Subsequent
19
+ * `RefreshObligation` builds for that obligation must NOT include these
20
+ * reserves in the borrow accounts list — by execution time the borrow row
21
+ * has been removed from the obligation, and Kamino's `handler_refresh_obligation`
22
+ * checks the passed account count against the live obligation state and
23
+ * fails with `InvalidAccountInput` (klend error 6006) on a mismatch.
24
+ *
25
+ * Set via {@link markObligationDebtCleared}, read via {@link getTxObligationClearedDebt}.
26
+ */
27
+ this.txClearedDebt = new Map();
28
+ this.rpc = rpc;
29
+ this.rpcUrl = rpcUrl;
30
+ this.data = data;
31
+ this.accounts = accounts;
32
+ }
33
+ emptyAccountMeta() {
34
+ return (0, common_1.toCustomAccountMeta)(this.programId);
35
+ }
36
+ clearCacheEntry(category, id) {
37
+ this.data.clearCacheEntry(category, id);
38
+ }
39
+ getCacheInvalidation(invalidation) {
40
+ return {
41
+ client: "kamino",
42
+ ...invalidation,
43
+ };
44
+ }
45
+ applyPostSuccessCacheInvalidations(invalidations) {
46
+ for (const invalidation of invalidations) {
47
+ if (invalidation.client !== "kamino") {
48
+ continue;
49
+ }
50
+ this.clearCacheEntry(invalidation.category, invalidation.id);
51
+ }
52
+ }
53
+ getCpiData(cpiType, accounts, data, programId, postSuccessCacheInvalidations) {
54
+ return {
55
+ programId: programId ?? this.programId,
56
+ cpiType,
57
+ data,
58
+ accounts,
59
+ lookupTables: [this.lookupTable],
60
+ postSuccessCacheInvalidations,
61
+ };
62
+ }
63
+ createSplitOperationCpiData(prerequisiteCpis, cpis) {
64
+ return {
65
+ prerequisiteCpis,
66
+ cpis,
67
+ allCpis: [...prerequisiteCpis, ...cpis],
68
+ };
69
+ }
70
+ buildLendingOperationCpiBundle(cpiData) {
71
+ return {
72
+ prerequisiteCpis: cpiData.prerequisiteCpis,
73
+ cpis: cpiData.cpis,
74
+ allCpis: [...cpiData.prerequisiteCpis, ...cpiData.cpis],
75
+ postSuccessCacheInvalidations: [...cpiData.prerequisiteCpis, ...cpiData.cpis].flatMap((cpi) => cpi.postSuccessCacheInvalidations ?? []),
76
+ };
77
+ }
78
+ async getInitAndDepositCpiBundle(params, userAccountId) {
79
+ return this.buildLendingOperationCpiBundle(await this.getInitAndDepositCpiData(params, userAccountId));
80
+ }
81
+ async getInitBorrowPositionCpiBundle(params, collReserve) {
82
+ return this.buildLendingOperationCpiBundle(await this.getInitBorrowPositionCpiData(params, collReserve));
83
+ }
84
+ async getDepositCpiBundle(params) {
85
+ return this.buildLendingOperationCpiBundle(await this.getDepositCpiData(params));
86
+ }
87
+ async getWithdrawCpiBundle(params) {
88
+ return this.buildLendingOperationCpiBundle(await this.getWithdrawCpiData(params));
89
+ }
90
+ async getBorrowCpiBundle(params) {
91
+ return this.buildLendingOperationCpiBundle(await this.getBorrowCpiData(params));
92
+ }
93
+ async getRepayCpiBundle(params) {
94
+ return this.buildLendingOperationCpiBundle(await this.getRepayCpiData(params));
95
+ }
96
+ /**
97
+ * Registers a reserve as being used in a transaction.
98
+ * When userAccount and role are provided, also tracks the collateral/debt role
99
+ * for that specific user account.
100
+ */
101
+ registerTxReserve(txId, pool, reserve, userAccount, role) {
102
+ if (!this.txReserves.has(txId)) {
103
+ this.txReserves.set(txId, new Map());
104
+ }
105
+ const txMap = this.txReserves.get(txId);
106
+ if (!txMap.has(reserve)) {
107
+ txMap.set(reserve, { pool, userAccounts: new Map() });
108
+ }
109
+ if (userAccount && role) {
110
+ const entry = txMap.get(reserve);
111
+ if (!entry.userAccounts.has(userAccount)) {
112
+ entry.userAccounts.set(userAccount, new Set());
113
+ }
114
+ entry.userAccounts.get(userAccount).add(role);
115
+ }
116
+ }
117
+ /**
118
+ * Returns the collateral and debt reserves registered in the tx cache
119
+ * for a specific user account (obligation).
120
+ */
121
+ getTxUserAccountReserves(txId, userAccount) {
122
+ const collateral = [];
123
+ const debt = [];
124
+ const txMap = this.txReserves.get(txId);
125
+ if (!txMap)
126
+ return { collateral, debt };
127
+ for (const [reserve, info] of txMap) {
128
+ const roles = info.userAccounts.get(userAccount);
129
+ if (roles?.has("collateral"))
130
+ collateral.push(reserve);
131
+ if (roles?.has("debt"))
132
+ debt.push(reserve);
133
+ }
134
+ return { collateral, debt };
135
+ }
136
+ /**
137
+ * Mark that `reserve` will be fully repaid for `userAccount` earlier in the
138
+ * `txId` flow, so subsequent obligation-refresh builders drop it from the
139
+ * borrow accounts they emit. Call after building a "repay all" CPI; it has
140
+ * no effect on the repay itself.
141
+ */
142
+ markObligationDebtCleared(txId, userAccount, reserve) {
143
+ if (!this.txClearedDebt.has(txId)) {
144
+ this.txClearedDebt.set(txId, new Map());
145
+ }
146
+ const obligationMap = this.txClearedDebt.get(txId);
147
+ if (!obligationMap.has(userAccount)) {
148
+ obligationMap.set(userAccount, new Set());
149
+ }
150
+ obligationMap.get(userAccount).add(reserve);
151
+ }
152
+ /** Returns the set of debt reserves marked cleared for `(txId, userAccount)`. */
153
+ getTxObligationClearedDebt(txId, userAccount) {
154
+ return (this.txClearedDebt.get(txId)?.get(userAccount) ?? new Set());
155
+ }
156
+ /**
157
+ * Clears the transaction cache for a given transaction or all transactions.
158
+ * Call after finishing building a transaction to free memory.
159
+ */
160
+ clearTransactionCache(txId) {
161
+ if (txId) {
162
+ this.txReserves.delete(txId);
163
+ this.txClearedDebt.delete(txId);
164
+ }
165
+ else {
166
+ this.txReserves.clear();
167
+ this.txClearedDebt.clear();
168
+ }
169
+ }
170
+ /**
171
+ * Returns prerequisite CPIs needed before reading refreshed account state for
172
+ * a batch of lending positions outside a normal deposit/withdraw/borrow/repay
173
+ * flow.
174
+ */
175
+ async getPrerequisiteCpisForRefresh(_targets) {
176
+ return [];
177
+ }
178
+ /**
179
+ * Returns CPI data for initializing a lending position end-to-end: the user
180
+ * account itself plus any per-reserve accessory accounts (e.g. Kamino
181
+ * obligation farm user states for the collateral and debt reserves). Called
182
+ * at position-creation time so subsequent deposit/borrow flows don't need
183
+ * to init these inline.
184
+ *
185
+ * Default: delegates to {@link getInitUserAccountCpiData}. Platforms with
186
+ * per-reserve accessory accounts override this to add their inits.
187
+ */
188
+ async getInitLendingPositionCpiData(params) {
189
+ return this.getInitUserAccountCpiData(params.pool, params.user, params.payer, params.userAccountId);
190
+ }
191
+ }
192
+ exports.LpInstructionsBase = LpInstructionsBase;
@@ -0,0 +1,7 @@
1
+ import { Address } from "@solana/kit";
2
+ export interface RefreshPrerequisiteTarget {
3
+ pool: Address;
4
+ userAccount: Address;
5
+ collateralReserves: Address[];
6
+ debtReserves: Address[];
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export * from "./kamino";
2
+ export * from "./lpDataBase";
@@ -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("./kamino"), exports);
18
+ __exportStar(require("./lpDataBase"), exports);
@@ -0,0 +1,59 @@
1
+ import { type Address } from "@solana/kit";
2
+ import { KaminoMarket, KaminoObligation, KlendPrices } from "@kamino-finance/klend-sdk";
3
+ import { Farms, FarmState, UserFarm } from "@kamino-finance/farms-sdk";
4
+ import { LendingPlatformData } from "./lpDataBase";
5
+ import { KaminoReserveData, KaminoUserPositionData } from "..";
6
+ import { LendingPlatform } from "../../types";
7
+ import { OraclePrices } from "@kamino-finance/scope-sdk/dist/@codegen/scope/accounts";
8
+ import { CacheTtlConfig } from "common";
9
+ /** Cache configuration for Kamino data with optional market-specific TTL */
10
+ export interface KaminoCacheConfig extends CacheTtlConfig {
11
+ marketsTtlMs?: number;
12
+ }
13
+ /**
14
+ * Data provider for Kamino Lend protocol.
15
+ * Handles fetching and caching of markets, reserves, obligations, farms, and prices.
16
+ * Supports both standard reserve farms and "extra" farms (paired collateral/debt incentives).
17
+ */
18
+ export declare class KaminoData extends LendingPlatformData {
19
+ farms: Farms;
20
+ private scope;
21
+ constructor(rpcUrl: string, cacheConfig?: KaminoCacheConfig, rpcUrls?: string[]);
22
+ platform(): LendingPlatform;
23
+ /**
24
+ * Warms the market cache for the requested pools. Single-pool calls reuse the
25
+ * normal lazy fetch path; multi-pool calls use Kamino's batched loader.
26
+ */
27
+ load(pools: Address[]): Promise<void>;
28
+ /** Fetches a market by address, loading from cache if available */
29
+ fetchMarket(market: Address): Promise<KaminoMarket>;
30
+ /** Fetches all oracle prices for assets in the specified market */
31
+ fetchPrices(pool: Address): Promise<KlendPrices>;
32
+ /** Fetches an obligation (user position) by address */
33
+ fetchObligation(market: KaminoMarket, obligation: Address): Promise<KaminoObligation | null>;
34
+ /** Batch fetches farm states by their addresses */
35
+ fetchFarms(farms: Address[]): Promise<FarmState[]>;
36
+ private fetchExtraFarms;
37
+ /**
38
+ * Collects all farm incentives for a reserve, including both standard
39
+ * collateral/debt farms and extra paired farms from Kamino CDN config.
40
+ */
41
+ private fetchFarmsForReserve;
42
+ fetchUserActiveIncentives(user: Address, specificFarm?: Address): Promise<UserFarm[]>;
43
+ maybeFetchUserPositionInPool(pool: Address, userPosition: Address): Promise<KaminoUserPositionData | null>;
44
+ fetchUserPositionsInPool(pool: Address, userPositions: Address[]): Promise<KaminoUserPositionData[]>;
45
+ fetchAllUserPositionsForUserInPool(pool: Address, user: Address): Promise<KaminoUserPositionData[]>;
46
+ fetchReserve(pool: Address, reserve: Address): Promise<KaminoReserveData>;
47
+ fetchReserveByMint(pool: Address, mint: Address): Promise<KaminoReserveData>;
48
+ private mapReserve;
49
+ /**
50
+ * Fetches and caches the Scope OraclePrices account for a given price feed.
51
+ * @returns The deserialized OraclePrices, or null if the account doesn't exist
52
+ */
53
+ fetchScopeOraclePrices(priceFeed: Address): Promise<OraclePrices | null>;
54
+ /**
55
+ * Resolves and caches the Scope Configuration account address for a given OraclePrices account.
56
+ * The first call per price feed does a getProgramAccounts lookup; subsequent calls use cache.
57
+ */
58
+ fetchScopeConfigAddress(priceFeed: Address): Promise<Address>;
59
+ }
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.KaminoData = void 0;
7
+ const klend_sdk_1 = require("@kamino-finance/klend-sdk");
8
+ const scope_sdk_1 = require("@kamino-finance/scope-sdk");
9
+ const farms_sdk_1 = require("@kamino-finance/farms-sdk");
10
+ const lpDataBase_1 = require("./lpDataBase");
11
+ const __1 = require("..");
12
+ const constants_1 = require("../../constants");
13
+ const types_1 = require("../../types");
14
+ const utils_1 = require("../../utils");
15
+ const common_1 = require("common");
16
+ const decimal_js_1 = __importDefault(require("decimal.js"));
17
+ /**
18
+ * Data provider for Kamino Lend protocol.
19
+ * Handles fetching and caching of markets, reserves, obligations, farms, and prices.
20
+ * Supports both standard reserve farms and "extra" farms (paired collateral/debt incentives).
21
+ */
22
+ class KaminoData extends lpDataBase_1.LendingPlatformData {
23
+ constructor(rpcUrl, cacheConfig, rpcUrls = [rpcUrl]) {
24
+ const ttlConfig = {
25
+ defaultTtlMs: 90000,
26
+ categoryTtlMs: {
27
+ ...cacheConfig?.categoryTtlMs,
28
+ markets: 60000 * 5,
29
+ farms: 60000 * 5,
30
+ extraFarms: Number.MAX_SAFE_INTEGER,
31
+ scopeOraclePrices: 30000,
32
+ scopeConfig: 60000 * 5,
33
+ },
34
+ };
35
+ super(rpcUrl, ttlConfig, rpcUrls);
36
+ this.farms = new farms_sdk_1.Farms(this.rpc, constants_1.KAMINO_FARMS_PROGRAM_ID);
37
+ this.scope = new scope_sdk_1.Scope("mainnet-beta", this.rpc);
38
+ }
39
+ platform() {
40
+ return types_1.LendingPlatform.Kamino;
41
+ }
42
+ /**
43
+ * Warms the market cache for the requested pools. Single-pool calls reuse the
44
+ * normal lazy fetch path; multi-pool calls use Kamino's batched loader.
45
+ */
46
+ async load(pools) {
47
+ if (pools.length === 0)
48
+ return;
49
+ if (pools.length === 1) {
50
+ await this.fetchMarket(pools[0]);
51
+ return;
52
+ }
53
+ const { data: markets, fromCache } = await this.cache.getDataBatch(async () => {
54
+ const marketsData = await klend_sdk_1.KaminoMarket.loadMultiple(this.rpc, pools, klend_sdk_1.DEFAULT_RECENT_SLOT_DURATION_MS, klend_sdk_1.PROGRAM_ID, true);
55
+ return pools.map((pool) => marketsData.get(pool) ?? null);
56
+ }, this.poolCatKey, pools);
57
+ if (!fromCache) {
58
+ await Promise.all(markets.map(async (market) => await market.loadReserves()));
59
+ }
60
+ }
61
+ /** Fetches a market by address, loading from cache if available */
62
+ async fetchMarket(market) {
63
+ const { data, fromCache } = await this.cache.getDataOrThrow(async () => await klend_sdk_1.KaminoMarket.load(this.rpc, market, klend_sdk_1.DEFAULT_RECENT_SLOT_DURATION_MS, klend_sdk_1.PROGRAM_ID, true), this.poolCatKey, market);
64
+ if (!fromCache) {
65
+ await data.loadReserves();
66
+ }
67
+ return data;
68
+ }
69
+ /** Fetches all oracle prices for assets in the specified market */
70
+ async fetchPrices(pool) {
71
+ const market = await this.fetchMarket(pool);
72
+ const { data } = await this.cache.getDataOrThrow(async () => await market.getAllPrices(), "prices", "queryAll");
73
+ return data;
74
+ }
75
+ /** Fetches an obligation (user position) by address */
76
+ async fetchObligation(market, obligation) {
77
+ const { data } = await this.cache.getData(async () => await market.getObligationByAddress(obligation), this.userAccountCatKey, obligation, { cacheNull: false });
78
+ return data;
79
+ }
80
+ /** Batch fetches farm states by their addresses */
81
+ async fetchFarms(farms) {
82
+ const { data } = await this.cache.getDataBatch(async () => (await this.farms.getAllFarmStatesByPubkeys(farms)).map((x) => x.farmState), "userFarms", farms);
83
+ return data;
84
+ }
85
+ async fetchExtraFarms() {
86
+ const { data } = await this.cache.getDataOrThrow(async () => await (0, utils_1.fetchExtraFarms)(), "extraFarms", "mainnet-beta");
87
+ return data;
88
+ }
89
+ /**
90
+ * Collects all farm incentives for a reserve, including both standard
91
+ * collateral/debt farms and extra paired farms from Kamino CDN config.
92
+ */
93
+ async fetchFarmsForReserve(pool, reserve) {
94
+ const market = await this.fetchMarket(pool);
95
+ const reserveData = market.getReserveByAddress(reserve);
96
+ if (!reserveData) {
97
+ throw new Error(`Unable to find reserve ${reserve}`);
98
+ }
99
+ const farms = [];
100
+ const farmCollateral = reserveData.state.farmCollateral;
101
+ const farmDebt = reserveData.state.farmDebt;
102
+ if (farmCollateral && farmCollateral !== klend_sdk_1.DEFAULT_PUBLIC_KEY) {
103
+ farms.push({ address: farmCollateral, isDebtFarm: false });
104
+ }
105
+ if (farmDebt && farmDebt !== klend_sdk_1.DEFAULT_PUBLIC_KEY) {
106
+ farms.push({ address: farmDebt, isDebtFarm: true });
107
+ }
108
+ const extraFarmsData = (await this.fetchExtraFarms()).filter((x) => x.collReserve === reserve || x.debtReserve === reserve);
109
+ const extraFarmEntries = extraFarmsData.map((x) => ({
110
+ address: x.farm,
111
+ isDebtFarm: x.debtReserve === reserve,
112
+ }));
113
+ const allFarmEntries = [...farms, ...extraFarmEntries];
114
+ const allFarmAddresses = allFarmEntries.map((f) => f.address);
115
+ if (!allFarmAddresses.length) {
116
+ return [];
117
+ }
118
+ const farmStates = await this.fetchFarms(allFarmAddresses);
119
+ const result = [];
120
+ farmStates.forEach((farmState, i) => {
121
+ const farmEntry = allFarmEntries[i];
122
+ const isExtraFarm = i >= farms.length;
123
+ const extraFarmIndex = i - farms.length;
124
+ farmState.rewardInfos.forEach((rewardInfo, rewardIndex) => {
125
+ if (rewardInfo.rewardsVault === klend_sdk_1.DEFAULT_PUBLIC_KEY) {
126
+ return;
127
+ }
128
+ result.push({
129
+ data: {
130
+ key: farmEntry.address,
131
+ farmState,
132
+ },
133
+ rewardIndex,
134
+ requiresPairReserve: isExtraFarm ? extraFarmsData[extraFarmIndex].debtReserve : undefined,
135
+ isDebtFarm: farmEntry.isDebtFarm,
136
+ });
137
+ });
138
+ });
139
+ return result;
140
+ }
141
+ async fetchUserActiveIncentives(user, specificFarm) {
142
+ let { data } = await this.cache.getDataOrThrow(async () => {
143
+ return Array.from((await this.farms.getAllFarmsForUserMultiState(user, new decimal_js_1.default((0, common_1.currentUnixSeconds)()))).values()).flat();
144
+ }, "userFarms", user);
145
+ if (specificFarm) {
146
+ data = data.filter((x) => x.farm === specificFarm);
147
+ }
148
+ return data;
149
+ }
150
+ async maybeFetchUserPositionInPool(pool, userPosition) {
151
+ const market = await this.fetchMarket(pool);
152
+ const obligation = await this.fetchObligation(market, userPosition);
153
+ return obligation ? __1.KaminoUserPositionData.loadData(obligation) : null;
154
+ }
155
+ async fetchUserPositionsInPool(pool, userPositions) {
156
+ const market = await this.fetchMarket(pool);
157
+ const { data } = await this.cache.getDataBatch(async () => await market.getMultipleObligationsByAddress(userPositions), this.userAccountCatKey, userPositions);
158
+ return data.map((obligation) => __1.KaminoUserPositionData.loadData(obligation));
159
+ }
160
+ async fetchAllUserPositionsForUserInPool(pool, user) {
161
+ const market = await this.fetchMarket(pool);
162
+ const { data } = await this.cache.getDataOrThrow(async () => await market.getAllUserObligations(user, "confirmed"), "obligationsBatch", user);
163
+ return data.map((obligation) => __1.KaminoUserPositionData.loadData(obligation));
164
+ }
165
+ async fetchReserve(pool, reserve) {
166
+ const market = await this.fetchMarket(pool);
167
+ const reserveData = market.getReserveByAddress(reserve);
168
+ if (!reserveData) {
169
+ throw new Error(`Unable to find reserve ${reserve}`);
170
+ }
171
+ return this.mapReserve(market, reserveData);
172
+ }
173
+ async fetchReserveByMint(pool, mint) {
174
+ const market = await this.fetchMarket(pool);
175
+ const reserveData = market.getReserveByMint(mint);
176
+ if (!reserveData) {
177
+ throw new Error(`Unable to find reserve by mint ${mint}`);
178
+ }
179
+ return this.mapReserve(market, reserveData);
180
+ }
181
+ async mapReserve(market, reserve) {
182
+ return __1.KaminoReserveData.loadData(market, reserve, await this.fetchFarmsForReserve(market.address, reserve.address), await this.fetchPrices(market.address), await this.getSlot());
183
+ }
184
+ /**
185
+ * Fetches and caches the Scope OraclePrices account for a given price feed.
186
+ * @returns The deserialized OraclePrices, or null if the account doesn't exist
187
+ */
188
+ async fetchScopeOraclePrices(priceFeed) {
189
+ const { data } = await this.cache.getData(async () => await this.scope.getSingleOraclePrices({ prices: priceFeed }), "scopeOraclePrices", priceFeed);
190
+ return data;
191
+ }
192
+ /**
193
+ * Resolves and caches the Scope Configuration account address for a given OraclePrices account.
194
+ * The first call per price feed does a getProgramAccounts lookup; subsequent calls use cache.
195
+ */
196
+ async fetchScopeConfigAddress(priceFeed) {
197
+ const { data } = await this.cache.getDataOrThrow(async () => {
198
+ const [configAddr] = await this.scope.getSingleFeedConfiguration({
199
+ prices: priceFeed,
200
+ });
201
+ return configAddr;
202
+ }, "scopeConfig", priceFeed);
203
+ return data;
204
+ }
205
+ }
206
+ exports.KaminoData = KaminoData;