@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,630 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KaminoInstructions = void 0;
4
+ const core_1 = require("@anchor-lang/core");
5
+ const kit_1 = require("@solana/kit");
6
+ const scope_sdk_1 = require("@kamino-finance/scope-sdk");
7
+ const klend_sdk_1 = require("@kamino-finance/klend-sdk");
8
+ const common_1 = require("common");
9
+ const lpInstructionsBase_1 = require("./lpInstructionsBase");
10
+ const token_1 = require("@solana-program/token");
11
+ const farms_sdk_1 = require("@kamino-finance/farms-sdk");
12
+ const constants_1 = require("../../constants");
13
+ const utils_1 = require("../../utils");
14
+ /**
15
+ * Instruction builder for Kamino Lend protocol.
16
+ * Provides methods to build CPI account metas for lending operations.
17
+ */
18
+ class KaminoInstructions extends lpInstructionsBase_1.LpInstructionsBase {
19
+ constructor(rpc, rpcUrl, data, accounts) {
20
+ super(rpc, rpcUrl, data, accounts);
21
+ this.programId = klend_sdk_1.PROGRAM_ID;
22
+ this.lookupTable = (0, kit_1.address)("bzdjSeDDPEdsGpK73oevQ87x4Sm6QRsnzupPLQEaFFN");
23
+ }
24
+ clearTransactionCache(txId) {
25
+ super.clearTransactionCache(txId);
26
+ }
27
+ // ================ CPI Data ================
28
+ getUserAccountCacheInvalidations(userAccount) {
29
+ return [
30
+ this.getCacheInvalidation({
31
+ category: this.data.userAccountCatKey,
32
+ id: userAccount,
33
+ }),
34
+ ];
35
+ }
36
+ async getInitUserMetadataCpiData(user, payer, userLookupTable) {
37
+ const [userMetadataAddress] = await (0, klend_sdk_1.userMetadataPda)(user, this.programId);
38
+ if (await (0, common_1.accountExists)(this.rpc, userMetadataAddress))
39
+ return;
40
+ return this.getCpiData(common_1.CpiTypes.K_INIT_USER_METADATA, [
41
+ (0, common_1.toCustomAccountMeta)(user, false, undefined, true),
42
+ (0, common_1.toCustomAccountMeta)(payer, true, undefined, true),
43
+ (0, common_1.toCustomAccountMeta)(userMetadataAddress, true),
44
+ this.emptyAccountMeta(),
45
+ common_1.RENT_SYSVAR_META,
46
+ common_1.SYSTEM_PROGRAM_META,
47
+ ], new Uint8Array((0, kit_1.getAddressEncoder)().encode(userLookupTable ?? klend_sdk_1.DEFAULT_PUBLIC_KEY)));
48
+ }
49
+ async getInitLendingPositionCpiData(params) {
50
+ const userInit = await this.getInitUserAccountCpiData(params.pool, params.user, params.payer, params.userAccountId);
51
+ const obligation = await this.accounts.getUserAccountAddress(params.pool, params.user, params.userAccountId);
52
+ const farmCpis = [];
53
+ const farmTargets = [
54
+ [params.collateralReserve, "collateral"],
55
+ [params.debtReserve, "debt"],
56
+ ];
57
+ for (const [reserve, mode] of farmTargets) {
58
+ const reserveData = await this.data.fetchReserve(params.pool, reserve);
59
+ const reserveFarm = mode === "collateral"
60
+ ? reserveData.rawData.state.farmCollateral
61
+ : reserveData.rawData.state.farmDebt;
62
+ if (!reserveFarm || reserveFarm === klend_sdk_1.DEFAULT_PUBLIC_KEY)
63
+ continue;
64
+ const farmAccounts = await this.accounts.getFarmAccounts(params.pool, reserve, obligation, mode);
65
+ if (await (0, common_1.accountExists)(this.rpc, farmAccounts.userFarm.address))
66
+ continue;
67
+ farmCpis.push(await this.getInitObligationFarmsForReserveCpiData(params.user, params.payer, obligation, params.pool, reserve, mode));
68
+ }
69
+ return this.createSplitOperationCpiData(userInit.prerequisiteCpis, [
70
+ ...userInit.cpis,
71
+ ...farmCpis,
72
+ ]);
73
+ }
74
+ async getInitUserAccountCpiData(pool, user, payer, id, userLookupTable) {
75
+ const market = await this.data.fetchMarket(pool);
76
+ const obligationPda = await this.accounts.getUserAccountAddress(pool, user, id);
77
+ const userMetadataAddress = await this.accounts.getUserMetadataAddress(user);
78
+ const tag = klend_sdk_1.VanillaObligation.tag;
79
+ const initMetadataCpi = await this.getInitUserMetadataCpiData(user, payer, userLookupTable);
80
+ const obligationAlreadyInit = await (0, common_1.accountExists)(this.rpc, obligationPda);
81
+ return this.createSplitOperationCpiData([], [
82
+ ...(initMetadataCpi ? [initMetadataCpi] : []),
83
+ ...(obligationAlreadyInit
84
+ ? []
85
+ : [
86
+ this.getCpiData(common_1.CpiTypes.K_INIT_OBLIGATION, [
87
+ (0, common_1.toCustomAccountMeta)(user),
88
+ (0, common_1.toCustomAccountMeta)(payer, true),
89
+ (0, common_1.toCustomAccountMeta)(obligationPda, true),
90
+ (0, common_1.toCustomAccountMeta)(market.address),
91
+ (0, common_1.toCustomAccountMeta)(klend_sdk_1.DEFAULT_PUBLIC_KEY),
92
+ (0, common_1.toCustomAccountMeta)(klend_sdk_1.DEFAULT_PUBLIC_KEY),
93
+ (0, common_1.toCustomAccountMeta)(userMetadataAddress),
94
+ common_1.RENT_SYSVAR_META,
95
+ common_1.SYSTEM_PROGRAM_META,
96
+ ], new Uint8Array([tag, id])),
97
+ ]),
98
+ ]);
99
+ }
100
+ async getInitObligationFarmsForReserveCpiData(user, payer, obligation, pool, reserve, farmMode) {
101
+ const farmAccounts = await this.accounts.getFarmAccounts(pool, reserve, obligation, farmMode);
102
+ return this.getCpiData(common_1.CpiTypes.K_INIT_USER_FARM, [
103
+ (0, common_1.toCustomAccountMeta)(payer, true),
104
+ (0, common_1.toCustomAccountMeta)(user),
105
+ (0, common_1.toCustomAccountMeta)(obligation, true),
106
+ (0, common_1.toCustomAccountMeta)((await (0, klend_sdk_1.lendingMarketAuthPda)(pool))[0]),
107
+ (0, common_1.toCustomAccountMeta)(reserve, true),
108
+ farmAccounts.farm,
109
+ farmAccounts.userFarm,
110
+ (0, common_1.toCustomAccountMeta)(pool),
111
+ (0, common_1.toCustomAccountMeta)(constants_1.KAMINO_FARMS_PROGRAM_ID),
112
+ common_1.RENT_SYSVAR_META,
113
+ common_1.SYSTEM_PROGRAM_META,
114
+ ], new Uint8Array([farmMode === "collateral" ? 0 : 1]));
115
+ }
116
+ /**
117
+ * Returns CPI accounts for refreshing a reserve's state.
118
+ * Includes the market, reserve, and all configured oracle accounts.
119
+ */
120
+ async getRefreshReserveCpiData(pool, reserve) {
121
+ const reserveData = await this.data.fetchReserve(pool, reserve);
122
+ const oracleAccounts = reserveData.getOracleAccounts();
123
+ return this.getCpiData(common_1.CpiTypes.K_REFRESH_RESERVE, [
124
+ (0, common_1.toCustomAccountMeta)(reserve, true),
125
+ (0, common_1.toCustomAccountMeta)(pool),
126
+ ...Object.values(oracleAccounts).map((x) => x === undefined ? this.emptyAccountMeta() : (0, common_1.toCustomAccountMeta)(x)),
127
+ ], new Uint8Array());
128
+ }
129
+ async getRefreshObligationCpiData(txId, pool, obligation) {
130
+ const obligationData = await this.data.maybeFetchUserPositionInPool(pool, obligation);
131
+ const cached = this.getTxUserAccountReserves(txId, obligation);
132
+ // Drop debt reserves the caller has flagged as fully repaid earlier in
133
+ // the same tx (via `markObligationDebtCleared`). The on-chain obligation
134
+ // will no longer list them by the time this RefreshObligation runs;
135
+ // including them here would trip Kamino's account-count check
136
+ // (`expected_remaining_accounts != actual_remaining_accounts`,
137
+ // InvalidAccountInput / klend 6006).
138
+ const cleared = this.getTxObligationClearedDebt(txId, obligation);
139
+ const collateralReserves = [
140
+ ...new Set([...(obligationData?.deposits.map((x) => x.reserve) ?? []), ...cached.collateral]),
141
+ ];
142
+ // Drop any debt reserves a prior CPI in this tx already cleared via the
143
+ // repay-all sentinel — at execution time the obligation no longer carries
144
+ // that borrow, and klend rejects the mismatched accounts count
145
+ // (`InvalidAccountInput`, error 6006).
146
+ const debtReserves = [
147
+ ...new Set([...(obligationData?.borrows.map((x) => x.reserve) ?? []), ...cached.debt]),
148
+ ].filter((r) => !cleared.has(r));
149
+ return this.getCpiData(common_1.CpiTypes.K_REFRESH_OBLIGATION, [
150
+ (0, common_1.toCustomAccountMeta)(pool),
151
+ (0, common_1.toCustomAccountMeta)(obligation, true),
152
+ ...collateralReserves.map((x) => (0, common_1.toCustomAccountMeta)(x)),
153
+ ...debtReserves.map((x) => (0, common_1.toCustomAccountMeta)(x)),
154
+ ], new Uint8Array());
155
+ }
156
+ getRefreshObligationCpiDataFromReserves({ pool, userAccount, collateralReserves, debtReserves, }) {
157
+ return this.getCpiData(common_1.CpiTypes.K_REFRESH_OBLIGATION, [
158
+ (0, common_1.toCustomAccountMeta)(pool),
159
+ (0, common_1.toCustomAccountMeta)(userAccount, true),
160
+ ...(0, common_1.dedupeOrderedAddresses)(collateralReserves).map((x) => (0, common_1.toCustomAccountMeta)(x)),
161
+ ...(0, common_1.dedupeOrderedAddresses)(debtReserves).map((x) => (0, common_1.toCustomAccountMeta)(x)),
162
+ ], new Uint8Array());
163
+ }
164
+ async getPrerequisiteCpisForRefresh(targets) {
165
+ const reserveRefreshes = [];
166
+ const seenReserveRefreshes = new Set();
167
+ const obligationRefreshes = new Map();
168
+ for (const target of targets) {
169
+ for (const reserve of (0, common_1.dedupeOrderedAddresses)([
170
+ ...target.collateralReserves,
171
+ ...target.debtReserves,
172
+ ])) {
173
+ const reserveRefreshKey = `${target.pool}:${reserve}`;
174
+ if (seenReserveRefreshes.has(reserveRefreshKey)) {
175
+ continue;
176
+ }
177
+ seenReserveRefreshes.add(reserveRefreshKey);
178
+ reserveRefreshes.push({ pool: target.pool, reserve });
179
+ }
180
+ if (target.userAccount === klend_sdk_1.DEFAULT_PUBLIC_KEY) {
181
+ continue;
182
+ }
183
+ const obligationKey = `${target.pool}:${target.userAccount}`;
184
+ if (obligationRefreshes.has(obligationKey)) {
185
+ continue;
186
+ }
187
+ obligationRefreshes.set(obligationKey, {
188
+ pool: target.pool,
189
+ userAccount: target.userAccount,
190
+ collateralReserves: (0, common_1.dedupeOrderedAddresses)(target.collateralReserves),
191
+ debtReserves: (0, common_1.dedupeOrderedAddresses)(target.debtReserves),
192
+ });
193
+ }
194
+ const prerequisiteCpis = [];
195
+ for (const { pool, reserve } of reserveRefreshes) {
196
+ prerequisiteCpis.push(await this.getRefreshReserveCpiData(pool, reserve));
197
+ }
198
+ for (const obligationRefresh of obligationRefreshes.values()) {
199
+ let obligationData = null;
200
+ try {
201
+ obligationData = await this.data.maybeFetchUserPositionInPool(obligationRefresh.pool, obligationRefresh.userAccount);
202
+ }
203
+ catch {
204
+ obligationData = null;
205
+ }
206
+ if (!obligationData) {
207
+ continue;
208
+ }
209
+ prerequisiteCpis.push(this.getRefreshObligationCpiDataFromReserves({
210
+ pool: obligationRefresh.pool,
211
+ userAccount: obligationRefresh.userAccount,
212
+ collateralReserves: obligationData.deposits.map((deposit) => deposit.reserve),
213
+ debtReserves: obligationData.borrows.map((borrow) => borrow.reserve),
214
+ }));
215
+ }
216
+ return prerequisiteCpis;
217
+ }
218
+ async getRefreshUserFarmCpiData(signer, pool, reserve, obligation, userFarm, farm, mode) {
219
+ const details = await this.accounts.reserveInteractionDetails(signer, pool, reserve, obligation);
220
+ return this.getCpiData(common_1.CpiTypes.K_REFRESH_USER_FARM, [
221
+ details.signer,
222
+ details.obligation,
223
+ details.lendingMarketAuthority,
224
+ details.reserve,
225
+ (0, common_1.toCustomAccountMeta)(farm, true),
226
+ (0, common_1.toCustomAccountMeta)(userFarm, true),
227
+ details.lendingMarket,
228
+ details.farmsProgram,
229
+ common_1.RENT_SYSVAR_META,
230
+ common_1.SYSTEM_PROGRAM_META,
231
+ ], new Uint8Array([mode === "collateral" ? 0 : 1]));
232
+ }
233
+ /**
234
+ * Checks if refresh CPIs are needed for the given reserve and obligation.
235
+ * Also registers all involved reserves in the txReserves cache for getPreInstructions.
236
+ *
237
+ * The instruction `reserve` (collateral vs debt) is also listed on the obligation;
238
+ * `dedupeOrderedAddresses` ensures one RefreshReserve CPI per reserve pubkey.
239
+ */
240
+ async getRefreshCpisIfNeeded(txId, pool, reserve, obligation) {
241
+ const cpis = [];
242
+ const cached = this.getTxUserAccountReserves(txId, obligation);
243
+ const refreshReserve = async (reserveAddr) => {
244
+ cpis.push(await this.getRefreshReserveCpiData(pool, reserveAddr));
245
+ this.registerTxReserve(txId, pool, reserveAddr);
246
+ };
247
+ const obligationData = await this.data.maybeFetchUserPositionInPool(pool, obligation);
248
+ if (obligationData) {
249
+ const needsFullObligationRefresh = obligationData.requiresRefresh() || cached.collateral.length > 0 || cached.debt.length > 0;
250
+ if (needsFullObligationRefresh) {
251
+ const additional = [
252
+ ...obligationData.deposits.map((d) => d.reserve),
253
+ ...obligationData.borrows.map((b) => b.reserve),
254
+ ...cached.collateral,
255
+ ...cached.debt,
256
+ ];
257
+ for (const addr of (0, common_1.dedupeOrderedAddresses)([reserve, ...additional])) {
258
+ await refreshReserve(addr);
259
+ }
260
+ cpis.push(await this.getRefreshObligationCpiData(txId, pool, obligation));
261
+ }
262
+ else {
263
+ await refreshReserve(reserve);
264
+ }
265
+ }
266
+ else {
267
+ const additional = [...new Set([...cached.collateral, ...cached.debt])];
268
+ for (const addr of (0, common_1.dedupeOrderedAddresses)([reserve, ...additional])) {
269
+ await refreshReserve(addr);
270
+ }
271
+ cpis.push(await this.getRefreshObligationCpiData(txId, pool, obligation));
272
+ }
273
+ return cpis;
274
+ }
275
+ async getPreInstructions(txId) {
276
+ const reserveEntries = this.txReserves.get(txId);
277
+ if (!reserveEntries)
278
+ return [];
279
+ const SCOPE_CHAIN_END = 65535;
280
+ // Collect scope feed -> token indices, then merge feeds that share the
281
+ // same Scope Configuration into a single RefreshPriceList instruction.
282
+ // Scope's on-chain handler rejects a RefreshPriceList that is preceded by
283
+ // non-Scope instructions, so emitting multiple ixs only works when they
284
+ // are consecutive with nothing in between — grouping by config avoids the
285
+ // problem entirely.
286
+ const scopeFeeds = new Map();
287
+ if (reserveEntries) {
288
+ for (const [reserve, { pool }] of reserveEntries) {
289
+ const reserveData = await this.data.fetchReserve(pool, reserve);
290
+ if (!reserveData.requiresRefresh())
291
+ continue;
292
+ const scopeFeed = reserveData.getOracleAccounts().scope;
293
+ if (!scopeFeed)
294
+ continue;
295
+ if (!scopeFeeds.has(scopeFeed)) {
296
+ scopeFeeds.set(scopeFeed, new Set());
297
+ }
298
+ const tokens = scopeFeeds.get(scopeFeed);
299
+ const { priceChain, twapChain } = reserveData.rawData.state.config.tokenInfo.scopeConfiguration;
300
+ for (const chain of [priceChain, twapChain]) {
301
+ for (const index of chain) {
302
+ if (index === SCOPE_CHAIN_END)
303
+ break;
304
+ tokens.add(index);
305
+ }
306
+ }
307
+ }
308
+ }
309
+ // Resolve each feed's config, then merge token indices by config address.
310
+ // Scope's on-chain handler rejects a RefreshPriceList that is preceded by
311
+ // a RefreshPriceList from a different Configuration account, so we can only
312
+ // emit one instruction per transaction. On deployed environments crankers
313
+ // keep prices fresh, so skipping additional configs is safe.
314
+ const configTokens = new Map();
315
+ for (const [feed, chainTokens] of scopeFeeds) {
316
+ const configAddr = await this.data.fetchScopeConfigAddress(feed);
317
+ if (!configTokens.has(configAddr)) {
318
+ configTokens.set(configAddr, new Set());
319
+ }
320
+ const merged = configTokens.get(configAddr);
321
+ for (const t of chainTokens)
322
+ merged.add(t);
323
+ }
324
+ const scope = new scope_sdk_1.Scope("mainnet-beta", this.rpc);
325
+ const isLocalnet = this.rpcUrl === common_1.LOCALNET_URL;
326
+ // Take only the first config to avoid the cross-config Scope rejection.
327
+ const [firstEntry] = configTokens;
328
+ if (!firstEntry)
329
+ return [];
330
+ const [configAddr, chainTokens] = firstEntry;
331
+ let tokens;
332
+ if (isLocalnet) {
333
+ // On localnet there are no crankers keeping Scope prices fresh, so we
334
+ // must resolve the full dependency graph (CappedFloored sources, etc.)
335
+ // and refresh in topological order.
336
+ const mappings = await scope.getOracleMappings({ config: (0, kit_1.address)(configAddr) });
337
+ const allTokens = new Set();
338
+ for (const token of chainTokens) {
339
+ (0, utils_1.collectTokenDependencies)(token, mappings, allTokens);
340
+ }
341
+ tokens = [...allTokens];
342
+ }
343
+ else {
344
+ tokens = [...chainTokens];
345
+ }
346
+ const ix = await scope.refreshPriceListIx({ config: (0, kit_1.address)(configAddr) }, tokens);
347
+ return ix ? [ix] : [];
348
+ }
349
+ async getClaimIncentiveCpiData(user, payer, pool, reserve, obligation, farm, userFarm, mint) {
350
+ const tokenProgram = common_1.mints.get(mint)?.tokenProgram ?? token_1.TOKEN_PROGRAM_ADDRESS;
351
+ const reserveData = await this.data.fetchReserve(pool, reserve);
352
+ const [farmState] = await this.data.fetchFarms([farm]);
353
+ const rewardIndex = farmState.rewardInfos.findIndex((r) => r.token.mint === mint);
354
+ if (rewardIndex === -1) {
355
+ throw new Error(`Reward mint ${mint} not found on farm ${farm}`);
356
+ }
357
+ const rewardInfo = farmState.rewardInfos[rewardIndex];
358
+ const treasuryVault = await (0, farms_sdk_1.getTreasuryVaultPDA)(constants_1.KAMINO_FARMS_PROGRAM_ID, farmState.globalConfig, mint);
359
+ const scopePrices = farmState.scopePrices === klend_sdk_1.DEFAULT_PUBLIC_KEY
360
+ ? constants_1.KAMINO_FARMS_PROGRAM_ID
361
+ : farmState.scopePrices;
362
+ const mode = reserveData.rawData.state.farmCollateral === farm
363
+ ? "collateral"
364
+ : reserveData.rawData.state.farmDebt === farm
365
+ ? "debt"
366
+ : undefined;
367
+ const refreshIx = mode
368
+ ? await this.getRefreshUserFarmCpiData(user, pool, reserve, obligation, userFarm, farm, mode)
369
+ : undefined;
370
+ // Kfarms HarvestReward requires `owner` (account[0]) to equal
371
+ // `UserState.owner`, which for both klend obligation farms and direct/extra
372
+ // farms is the lyc-token PDA — `user` here. The CPI dispatcher signs for it
373
+ // via `invoke_signed` with the token PDA seeds. Passing the manager fails
374
+ // with HarvestingNotPermissionlessPayerMismatch (0x17b2).
375
+ return [
376
+ ...(refreshIx ? [refreshIx] : []),
377
+ this.getCpiData(common_1.CpiTypes.K_HARVEST_REWARD, [
378
+ (0, common_1.toCustomAccountMeta)(user, true),
379
+ (0, common_1.toCustomAccountMeta)(userFarm, true),
380
+ (0, common_1.toCustomAccountMeta)(farm, true),
381
+ (0, common_1.toCustomAccountMeta)(farmState.globalConfig),
382
+ (0, common_1.toCustomAccountMeta)(mint),
383
+ (0, common_1.toCustomAccountMeta)(await (0, common_1.getAtaAddress)(mint, user, tokenProgram), true, {
384
+ owner: user,
385
+ mint,
386
+ tokenProgram,
387
+ }),
388
+ (0, common_1.toCustomAccountMeta)(rewardInfo.rewardsVault, true),
389
+ (0, common_1.toCustomAccountMeta)(treasuryVault, true),
390
+ (0, common_1.toCustomAccountMeta)(farmState.farmVaultsAuthority),
391
+ (0, common_1.toCustomAccountMeta)(scopePrices),
392
+ (0, common_1.toCustomAccountMeta)(tokenProgram),
393
+ ], (0, common_1.numToU64Bytes)(rewardIndex), constants_1.KAMINO_FARMS_PROGRAM_ID),
394
+ ];
395
+ }
396
+ async getRequestElevationGroupCpiData(elevationGroup, user, obligation, pool, txId) {
397
+ // Kamino's request_elevation_group handler validates the trailing
398
+ // remaining accounts against the obligation's *current* deposit + borrow
399
+ // reserves — the same `expected_remaining_accounts != actual_remaining_accounts`
400
+ // count check that RefreshObligation enforces (see
401
+ // `getRefreshObligationCpiData`); a mismatch throws InvalidAccountInput
402
+ // (klend 6006). Passing only the three fixed accounts (as we used to)
403
+ // works for an empty obligation but fails the moment it holds a deposit
404
+ // — e.g. the flash-rebalance destination, which has the just-moved
405
+ // collateral deposited before this elevation request runs.
406
+ //
407
+ // Mirror the refresh path: append the obligation's collateral then debt
408
+ // reserves, combining on-chain state with reserves registered earlier in
409
+ // this same tx (the destination deposit isn't reflected on-chain yet at
410
+ // build time). Kamino marks these WRITABLE.
411
+ const obligationData = await this.data.maybeFetchUserPositionInPool(pool, obligation);
412
+ const cached = this.getTxUserAccountReserves(txId, obligation);
413
+ const cleared = this.getTxObligationClearedDebt(txId, obligation);
414
+ const collateralReserves = [
415
+ ...new Set([...(obligationData?.deposits.map((x) => x.reserve) ?? []), ...cached.collateral]),
416
+ ];
417
+ const debtReserves = [
418
+ ...new Set([...(obligationData?.borrows.map((x) => x.reserve) ?? []), ...cached.debt]),
419
+ ].filter((r) => !cleared.has(r));
420
+ return this.getCpiData(common_1.CpiTypes.K_REQUEST_ELEVATION_GROUP, [
421
+ (0, common_1.toCustomAccountMeta)(user),
422
+ (0, common_1.toCustomAccountMeta)(obligation, true),
423
+ (0, common_1.toCustomAccountMeta)(pool),
424
+ ...collateralReserves.map((x) => (0, common_1.toCustomAccountMeta)(x, true)),
425
+ ...debtReserves.map((x) => (0, common_1.toCustomAccountMeta)(x, true)),
426
+ ], new Uint8Array([elevationGroup]));
427
+ }
428
+ async getInitAndDepositCpiData(params, userAccountId) {
429
+ const initCpis = [];
430
+ if (!(await (0, common_1.accountExists)(this.rpc, params.userAccount))) {
431
+ initCpis.push(...(await this.getInitUserAccountCpiData(params.pool, params.user, params.payer, userAccountId)).allCpis, await this.getRefreshObligationCpiData(params.txId, params.pool, params.userAccount));
432
+ }
433
+ const reserveData = await this.data.fetchReserve(params.pool, params.reserve);
434
+ const farmCollateral = reserveData.rawData.state.farmCollateral;
435
+ if (farmCollateral && farmCollateral !== klend_sdk_1.DEFAULT_PUBLIC_KEY) {
436
+ const farmAccounts = await this.accounts.getFarmAccounts(params.pool, params.reserve, params.userAccount, "collateral");
437
+ if (!(await (0, common_1.accountExists)(this.rpc, farmAccounts.userFarm.address))) {
438
+ initCpis.push(await this.getInitObligationFarmsForReserveCpiData(params.user, params.payer, params.userAccount, params.pool, params.reserve, "collateral"));
439
+ }
440
+ }
441
+ const depositCpis = await this.getDepositCpiData(params);
442
+ return this.createSplitOperationCpiData([...initCpis, ...depositCpis.prerequisiteCpis], depositCpis.cpis);
443
+ }
444
+ async getInitBorrowPositionCpiData(params, collReserve) {
445
+ const initCpis = [];
446
+ const reserveData = await this.data.fetchReserve(params.pool, params.reserve);
447
+ const farmDebt = reserveData.rawData.state.farmDebt;
448
+ if (farmDebt && farmDebt !== klend_sdk_1.DEFAULT_PUBLIC_KEY) {
449
+ const farmAccounts = await this.accounts.getFarmAccounts(params.pool, params.reserve, params.userAccount, "debt");
450
+ if (!(await (0, common_1.accountExists)(this.rpc, farmAccounts.userFarm.address))) {
451
+ initCpis.push(await this.getInitObligationFarmsForReserveCpiData(params.user, params.payer, params.userAccount, params.pool, params.reserve, "debt"));
452
+ }
453
+ }
454
+ const debtReserveData = await this.data.fetchReserve(params.pool, params.reserve);
455
+ const market = await this.data.fetchMarket(params.pool);
456
+ const requestedBorrowBaseUnits = params.baseUnitAmount && params.baseUnitAmount !== "all"
457
+ ? params.baseUnitAmount
458
+ : typeof params.uiAmount === "number"
459
+ ? new core_1.BN(Math.floor(params.uiAmount * Math.pow(10, debtReserveData.mint.mintDecimals)))
460
+ : undefined;
461
+ const collReserveData = await this.data.fetchReserve(params.pool, collReserve);
462
+ const availableElevationGroups = collReserveData.config.emodes?.filter((x) => x.debtReserve === params.reserve);
463
+ if (availableElevationGroups?.length) {
464
+ // Greedily prefer the highest-LTV e-mode group, but only enter one that
465
+ // actually has borrow capacity for this debt+collateral pair right now.
466
+ // Kamino rejects entry into a group whose debt cap is exhausted or
467
+ // disabled (ElevationGroupBorrowLimitExceeded, klend 6101); the cap lives
468
+ // on the collateral reserve, indexed per group. `getLiquidityAvailable…`
469
+ // folds the emode cap together with the reserve's global / utilization /
470
+ // daily caps and returns 0 for a maxed/zeroed group. When none qualify we
471
+ // fall back to no e-mode (group 0) — LYC sizing uses the base (non-emode)
472
+ // LTV, so the borrow always fits there.
473
+ const sortedGroups = [...availableElevationGroups]
474
+ .filter((g) => g.id !== undefined)
475
+ .sort((a, b) => b.ltvPct - a.ltvPct);
476
+ let selectedGroup;
477
+ for (const group of sortedGroups) {
478
+ const [available] = debtReserveData.rawData.getLiquidityAvailableForDebtReserveGivenCaps(market, [group.id], [collReserve]);
479
+ const hasCapacity = requestedBorrowBaseUnits
480
+ ? available.gte(requestedBorrowBaseUnits.toString())
481
+ : available.gt(0);
482
+ if (hasCapacity) {
483
+ selectedGroup = group.id;
484
+ break;
485
+ }
486
+ }
487
+ if (selectedGroup !== undefined) {
488
+ // RequestElevationGroup requires the obligation to be refreshed in the
489
+ // current slot (klend ObligationStale / 6017). A preceding CPI in this
490
+ // group — e.g. the destination collateral deposit in a flash rebalance —
491
+ // dirties the obligation, so refresh it (and its reserves) immediately
492
+ // before the elevation request. Refreshing against `collReserve` scopes
493
+ // the RefreshObligation to the obligation's current deposits; the borrow
494
+ // below emits its own refresh afterward, re-freshening the obligation
495
+ // that RequestElevationGroup itself leaves stale.
496
+ initCpis.push(...(await this.getRefreshCpisIfNeeded(params.txId, params.pool, collReserve, params.userAccount)));
497
+ initCpis.push(await this.getRequestElevationGroupCpiData(selectedGroup, params.user, params.userAccount, params.pool, params.txId));
498
+ }
499
+ }
500
+ const borrowCpis = await this.getBorrowCpiData(params);
501
+ return this.createSplitOperationCpiData([...initCpis, ...borrowCpis.prerequisiteCpis], borrowCpis.cpis);
502
+ }
503
+ async getDepositCpiData(params) {
504
+ const refreshCpis = await this.getRefreshCpisIfNeeded(params.txId, params.pool, params.reserve, params.userAccount);
505
+ const details = await this.accounts.reserveInteractionDetails(params.user, params.pool, params.reserve, params.userAccount, typeof params.uiAmount === "number" ? params.uiAmount : undefined, params.baseUnitAmount instanceof core_1.BN ? params.baseUnitAmount : undefined);
506
+ const farms = await this.accounts.getFarmAccounts(params.pool, params.reserve, params.userAccount, "collateral");
507
+ this.registerTxReserve(params.txId, params.pool, params.reserve, params.userAccount, "collateral");
508
+ return this.createSplitOperationCpiData(refreshCpis, [
509
+ this.getCpiData(common_1.CpiTypes.K_DEPOSIT, [
510
+ details.signer,
511
+ details.obligation,
512
+ details.lendingMarket,
513
+ details.lendingMarketAuthority,
514
+ details.reserve,
515
+ details.reserveLiquidityMint,
516
+ details.reserveLiquiditySupply,
517
+ details.reserveCollateralMint,
518
+ details.reserveCollateralSupply,
519
+ details.userLiquidityTa,
520
+ this.emptyAccountMeta(),
521
+ details.collateralMintTokenProgram,
522
+ details.liquidityMintTokenProgram,
523
+ common_1.IX_SYSVAR_META,
524
+ farms.userFarm,
525
+ farms.farm,
526
+ details.farmsProgram,
527
+ ], details.baseUnitAmount ? (0, common_1.numToU64Bytes)(details.baseUnitAmount) : undefined, undefined, this.getUserAccountCacheInvalidations(params.userAccount)),
528
+ ]);
529
+ }
530
+ async getWithdrawCpiData(params) {
531
+ const refreshCpis = await this.getRefreshCpisIfNeeded(params.txId, params.pool, params.reserve, params.userAccount);
532
+ const withdrawAll = params.uiAmount === "all" || params.baseUnitAmount === "all";
533
+ const details = await this.accounts.reserveInteractionDetails(params.user, params.pool, params.reserve, params.userAccount, typeof params.uiAmount === "number" ? params.uiAmount : undefined, params.baseUnitAmount instanceof core_1.BN ? params.baseUnitAmount : undefined);
534
+ const farms = await this.accounts.getFarmAccounts(params.pool, params.reserve, params.userAccount, "collateral");
535
+ let collateralBytes;
536
+ if (withdrawAll) {
537
+ // Kamino's `WithdrawObligationCollateralAndRedeemReserveCollateralV2`
538
+ // treats `collateral_amount = u64::MAX` as "withdraw the obligation's
539
+ // entire deposit on this reserve" — clears dust regardless of off-chain
540
+ // cToken/liquidity rate drift.
541
+ collateralBytes = (0, common_1.numToU64Bytes)(common_1.U64_MAX_BN);
542
+ }
543
+ else if (details.baseUnitAmount) {
544
+ const reserveData = await this.data.fetchReserve(params.pool, params.reserve);
545
+ // +1 cToken so the on-chain redemption always realizes at least the
546
+ // requested liquidity amount despite the floor in the exchange rate
547
+ // conversion and minor rate drift between fetch and execution.
548
+ const collateralAmount = (0, utils_1.liquidityToCollateral)(reserveData, details.baseUnitAmount.toNumber()) + 1;
549
+ collateralBytes = (0, common_1.numToU64Bytes)(collateralAmount);
550
+ }
551
+ this.registerTxReserve(params.txId, params.pool, params.reserve, params.userAccount, "collateral");
552
+ return this.createSplitOperationCpiData(refreshCpis, [
553
+ this.getCpiData(common_1.CpiTypes.K_WITHDRAW, [
554
+ details.signer,
555
+ details.obligation,
556
+ details.lendingMarket,
557
+ details.lendingMarketAuthority,
558
+ details.reserve,
559
+ details.reserveLiquidityMint,
560
+ details.reserveCollateralSupply,
561
+ details.reserveCollateralMint,
562
+ details.reserveLiquiditySupply,
563
+ details.userLiquidityTa,
564
+ this.emptyAccountMeta(),
565
+ details.collateralMintTokenProgram,
566
+ details.liquidityMintTokenProgram,
567
+ common_1.IX_SYSVAR_META,
568
+ farms.userFarm,
569
+ farms.farm,
570
+ details.farmsProgram,
571
+ ], collateralBytes, undefined, this.getUserAccountCacheInvalidations(params.userAccount)),
572
+ ]);
573
+ }
574
+ async getBorrowCpiData(params) {
575
+ const refreshCpis = await this.getRefreshCpisIfNeeded(params.txId, params.pool, params.reserve, params.userAccount);
576
+ const details = await this.accounts.reserveInteractionDetails(params.user, params.pool, params.reserve, params.userAccount, typeof params.uiAmount === "number" ? params.uiAmount : undefined);
577
+ const farms = await this.accounts.getFarmAccounts(params.pool, params.reserve, params.userAccount, "debt");
578
+ this.registerTxReserve(params.txId, params.pool, params.reserve, params.userAccount, "debt");
579
+ return this.createSplitOperationCpiData(refreshCpis, [
580
+ this.getCpiData(common_1.CpiTypes.K_BORROW, [
581
+ details.signer,
582
+ details.obligation,
583
+ details.lendingMarket,
584
+ details.lendingMarketAuthority,
585
+ details.reserve,
586
+ details.reserveLiquidityMint,
587
+ details.reserveLiquiditySupply,
588
+ details.reserveFeeVault,
589
+ details.userLiquidityTa,
590
+ this.emptyAccountMeta(),
591
+ details.liquidityMintTokenProgram,
592
+ common_1.IX_SYSVAR_META,
593
+ farms.userFarm,
594
+ farms.farm,
595
+ details.farmsProgram,
596
+ ], details.baseUnitAmount ? (0, common_1.numToU64Bytes)(details.baseUnitAmount) : undefined, undefined, this.getUserAccountCacheInvalidations(params.userAccount)),
597
+ ]);
598
+ }
599
+ async getRepayCpiData(params) {
600
+ this.registerTxReserve(params.txId, params.pool, params.reserve, params.userAccount, "debt");
601
+ const refreshCpis = await this.getRefreshCpisIfNeeded(params.txId, params.pool, params.reserve, params.userAccount);
602
+ const details = await this.accounts.reserveInteractionDetails(params.user, params.pool, params.reserve, params.userAccount, typeof params.uiAmount === "number" ? params.uiAmount : undefined);
603
+ const farms = await this.accounts.getFarmAccounts(params.pool, params.reserve, params.userAccount, "debt");
604
+ const repayAmountBytes = params.full
605
+ ? (0, common_1.numToU64Bytes)(common_1.U64_MAX_BN)
606
+ : params.baseUnitAmount
607
+ ? (0, common_1.numToU64Bytes)(params.baseUnitAmount)
608
+ : details.baseUnitAmount
609
+ ? (0, common_1.numToU64Bytes)(details.baseUnitAmount)
610
+ : undefined;
611
+ return this.createSplitOperationCpiData(refreshCpis, [
612
+ this.getCpiData(common_1.CpiTypes.K_REPAY, [
613
+ details.signer,
614
+ details.obligation,
615
+ details.lendingMarket,
616
+ details.reserve,
617
+ details.reserveLiquidityMint,
618
+ details.reserveLiquiditySupply,
619
+ details.userLiquidityTa,
620
+ details.liquidityMintTokenProgram,
621
+ common_1.IX_SYSVAR_META,
622
+ farms.userFarm,
623
+ farms.farm,
624
+ details.lendingMarketAuthority,
625
+ details.farmsProgram,
626
+ ], repayAmountBytes, undefined, this.getUserAccountCacheInvalidations(params.userAccount)),
627
+ ]);
628
+ }
629
+ }
630
+ exports.KaminoInstructions = KaminoInstructions;