@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,680 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PerenaClient = void 0;
4
+ const core_1 = require("@anchor-lang/core");
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ const bankineco_sdk_1 = require("@perena/bankineco-sdk");
7
+ const token_1 = require("@solana-program/token");
8
+ const system_1 = require("@solana-program/system");
9
+ const constants_1 = require("./constants");
10
+ const common_1 = require("common");
11
+ const cpi_1 = require("./cpi");
12
+ const ACTIVE_WITHDRAWAL_QUEUES_CACHE_CATEGORY = "activeWithdrawalQueues";
13
+ /**
14
+ * Perena USD* client implementing RoutableSwapClient and TokenProtocolClient.
15
+ *
16
+ * Provides a unified API for:
17
+ * - Minting and burning USD*
18
+ * - Querying protocol capabilities and info (YieldProtocolClient interface)
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import { PerenaClient } from "perena-helpers";
23
+ * import { defaultMints } from "common/services/mints";
24
+ *
25
+ * const client = new PerenaClient(rpcUrl);
26
+ * const usdc = defaultMints.get("USDC")!;
27
+ * const usdStar = defaultMints.get("USD*")!;
28
+ *
29
+ * // Mint: USDC → USD*
30
+ * const mintQuote = await client.getQuote({
31
+ * inputMint: usdc.address,
32
+ * outputMint: usdStar.address,
33
+ * amount: 10_000_000, // 10 USDC
34
+ * slippageBps: 100,
35
+ * });
36
+ *
37
+ * // Burn: USD* → USDC
38
+ * const burnQuote = await client.getQuote({
39
+ * inputMint: usdStar.address,
40
+ * outputMint: usdc.address,
41
+ * amount: 10_000_000, // 10 USD*
42
+ * slippageBps: 100,
43
+ * });
44
+ *
45
+ * // Get CPI accounts for instruction
46
+ * const { accounts, programId } = await client.getSwapCpiData(
47
+ * mintQuote,
48
+ * userPda
49
+ * );
50
+ * ```
51
+ */
52
+ class PerenaClient {
53
+ /**
54
+ * Creates a new Perena client.
55
+ *
56
+ * @param rpcUrl - Solana RPC URL
57
+ */
58
+ constructor(rpcUrl) {
59
+ this.sdkClient = bankineco_sdk_1.UsdStarClient.new({
60
+ env: "prod",
61
+ rpcUrl,
62
+ });
63
+ this.cache = new common_1.DataCache({
64
+ defaultTtlMs: 60000 * 5, // 5 minute default
65
+ });
66
+ const usdStar = common_1.mints.get("USD*");
67
+ if (!usdStar) {
68
+ throw new Error("USD* mint not found in registry");
69
+ }
70
+ this.bankMint = usdStar.address;
71
+ const usdStarJ = common_1.mints.get("USD*-J");
72
+ if (!usdStarJ) {
73
+ throw new Error("USD*-J mint not found in registry");
74
+ }
75
+ this.juniorMint = usdStarJ.address;
76
+ const yieldingMints = Object.keys(this.sdkClient.idleVaultIndices);
77
+ const routable = Object.freeze([this.bankMint, this.juniorMint, ...yieldingMints]);
78
+ this.inputMints = routable;
79
+ this.outputMints = routable;
80
+ this.routeAnchorMints = Object.freeze([this.bankMint, this.juniorMint]);
81
+ }
82
+ /**
83
+ * Get mints that can directly mint USD*.
84
+ */
85
+ async getSupportedSourceMints() {
86
+ return Object.keys(this.sdkClient.idleVaultIndices).map((key) => key);
87
+ }
88
+ /**
89
+ * Get current protocol info for a source mint.
90
+ * @param sourceMint - The source mint to get info for (i.e. USDC, USDT, etc.)
91
+ * @returns Protocol info including fees and limits
92
+ * @throws Error if sourceMint is not supported by Perena
93
+ */
94
+ async getProtocolInfo(sourceMint) {
95
+ const supportedSourceMints = await this.getSupportedSourceMints();
96
+ if (!supportedSourceMints.includes(sourceMint)) {
97
+ throw new Error(`Source mint ${sourceMint} is not supported by Perena`);
98
+ }
99
+ const { data } = await this.cache.getDataOrThrow(async () => {
100
+ const vault = this.sdkClient.getVault(new web3_js_1.PublicKey(sourceMint));
101
+ const vaultInfo = await this.sdkClient.bankineco.pg.account.vaultGenState.fetch(vault);
102
+ return {
103
+ sourceMint,
104
+ mintFeeBps: vaultInfo.config.mintingFeeBps,
105
+ redemptionFeeBps: vaultInfo.config.burningFeeBps,
106
+ depositLimit: BigInt(0),
107
+ redemptionLimit: BigInt(vaultInfo.accounting.yieldingReserveAmount.toString()),
108
+ };
109
+ }, "yieldProtocolInfo", sourceMint);
110
+ return data;
111
+ }
112
+ /**
113
+ * Get the latest USD* price in UI units (e.g. dollars).
114
+ *
115
+ * @returns The current bank mint price as a number
116
+ */
117
+ async getLatestBankMintUiPrice() {
118
+ const { data } = await this.cache.getDataOrThrow(() => this.sdkClient.latestBankMintUiPrice(), "bankMintUiPrice", "latest");
119
+ return data;
120
+ }
121
+ /**
122
+ * Get the latest USD*-J price in UI units (e.g. dollars).
123
+ *
124
+ * @returns The current junior mint price as a number
125
+ */
126
+ async getLatestJuniorMintUiPrice() {
127
+ const { data } = await this.cache.getDataOrThrow(() => this.sdkClient.latestJuniorMintUiPrice(), "juniorMintUiPrice", "latest");
128
+ return data;
129
+ }
130
+ /**
131
+ * Size a USD* burn so the routed yielding output (e.g. USDC) is at least
132
+ * `minYieldingOut` base units, without scanning inputs.
133
+ *
134
+ * Perena's `bankMintToYieldingQuote` is linear in the burn amount for fixed
135
+ * oracles: bank-mint price, yielding price, burn fee bps, and decimal
136
+ * rescales are all proportional in `amountToBurn`. We take **one** reference
137
+ * quote at exactly 1.0 bank-mint token (10^decimals base units) to read the
138
+ * effective `yieldingOut / bankMintIn` rate implied by the current prices,
139
+ * then `ceil(need * refIn / refOut)` and re-quote once at that input so the
140
+ * returned {@link PerenaSwapQuote} matches the CPI.
141
+ */
142
+ /**
143
+ * @deprecated Prefer {@link getQuoteCoveringMinOutput} — same behavior with generic param names.
144
+ */
145
+ async getQuoteCoveringYieldingOut(params) {
146
+ return this.getQuoteCoveringMinOutput({
147
+ inputMint: params.inputMint,
148
+ outputMint: params.outputMint,
149
+ minOutputAmount: params.minYieldingOut,
150
+ maxInputAmount: params.maxBankMintIn,
151
+ slippageBps: params.slippageBps,
152
+ });
153
+ }
154
+ async getQuoteCoveringMinOutput(params) {
155
+ if (params.inputMint !== this.bankMint) {
156
+ throw new Error("getQuoteCoveringMinOutput only supports burning USD* into a yielding mint");
157
+ }
158
+ const need = params.minOutputAmount;
159
+ if (need <= BigInt(0)) {
160
+ throw new Error("getQuoteCoveringMinOutput: minOutputAmount must be positive");
161
+ }
162
+ const maxIn = params.maxInputAmount;
163
+ if (maxIn <= BigInt(0)) {
164
+ throw new Error("getQuoteCoveringMinOutput: maxInputAmount must be positive");
165
+ }
166
+ const vault = this.sdkClient.getVault(new web3_js_1.PublicKey(params.outputMint));
167
+ const refInBn = common_1.mints.get("USD*").fromUiAmount(1);
168
+ const oneBankMint = BigInt(refInBn.toString());
169
+ const refSdk = await this.sdkClient.bankMintToYieldingQuote(refInBn, vault);
170
+ const refOut = BigInt(refSdk.amount.toString());
171
+ if (refOut === BigInt(0)) {
172
+ throw new Error("Perena reference burn quote returned zero yielding output");
173
+ }
174
+ const maxSdk = await this.sdkClient.bankMintToYieldingQuote(new core_1.BN(maxIn.toString()), vault);
175
+ if (BigInt(maxSdk.amount.toString()) < need) {
176
+ throw new Error("Perena: bank mint holding cannot cover the yielding output required for this unwind");
177
+ }
178
+ /** `ceil(targetOut * oneBankMint / refOut)` — inverting the reference rate from oracle pricing. */
179
+ const scaleInput = (targetOut) => {
180
+ const numer = targetOut * oneBankMint + refOut - BigInt(1);
181
+ return numer / refOut;
182
+ };
183
+ let inputRaw = scaleInput(need);
184
+ if (inputRaw > maxIn) {
185
+ inputRaw = maxIn;
186
+ }
187
+ if (inputRaw < BigInt(1)) {
188
+ inputRaw = BigInt(1);
189
+ }
190
+ const slippageBps = params.slippageBps ?? 100;
191
+ const quoteAt = async (inAmt) => {
192
+ if (inAmt > BigInt(Number.MAX_SAFE_INTEGER)) {
193
+ throw new Error("getQuoteCoveringMinOutput: burn input exceeds Number.MAX_SAFE_INTEGER");
194
+ }
195
+ return this.getQuote({
196
+ inputMint: params.inputMint,
197
+ outputMint: params.outputMint,
198
+ amount: Number(inAmt),
199
+ slippageBps,
200
+ });
201
+ };
202
+ let quote = await quoteAt(inputRaw);
203
+ let out = BigInt(quote.outputAmount.toString());
204
+ if (out < need && inputRaw < maxIn) {
205
+ inputRaw = (need * inputRaw + out - BigInt(1)) / out;
206
+ if (inputRaw > maxIn) {
207
+ inputRaw = maxIn;
208
+ }
209
+ quote = await quoteAt(inputRaw);
210
+ out = BigInt(quote.outputAmount.toString());
211
+ }
212
+ // Integer rounding inside the Perena SDK can leave the output 1 base unit
213
+ // short even after proportional re-scaling. Bump the input by 1 and
214
+ // re-quote once more before giving up.
215
+ if (out < need && inputRaw < maxIn) {
216
+ inputRaw += BigInt(1);
217
+ if (inputRaw > maxIn) {
218
+ inputRaw = maxIn;
219
+ }
220
+ quote = await quoteAt(inputRaw);
221
+ out = BigInt(quote.outputAmount.toString());
222
+ }
223
+ if (out < need) {
224
+ throw new Error("Perena: sized burn quote still below required yielding output (rounding); try larger holding or refresh oracles");
225
+ }
226
+ return quote;
227
+ }
228
+ /**
229
+ * Get a quote for minting/burning USD* or staking/unstaking USD*-J.
230
+ *
231
+ * The operation is determined by the mints:
232
+ * - outputMint is USD*: mint (yielding → USD*)
233
+ * - inputMint is USD*: burn (USD* → yielding)
234
+ * - outputMint is USD*-J: stake (USD* → USD*-J)
235
+ * - inputMint is USD*-J: unstake (USD*-J → USD* or yielding)
236
+ *
237
+ * @param params - Quote parameters
238
+ * @returns Normalized swap quote
239
+ * @throws Error if the mint pair is not supported
240
+ */
241
+ async getQuote(params) {
242
+ const isJuniorInput = params.inputMint === this.juniorMint;
243
+ const isJuniorOutput = params.outputMint === this.juniorMint;
244
+ if (isJuniorOutput) {
245
+ if (params.inputMint !== this.bankMint) {
246
+ throw new Error("Invalid Perena quote: can only stake USD* into USD*-J");
247
+ }
248
+ return this.getStakeQuote(params);
249
+ }
250
+ if (isJuniorInput) {
251
+ return this.getUnstakeQuote(params);
252
+ }
253
+ const isMint = params.outputMint === this.bankMint;
254
+ const isBurn = params.inputMint === this.bankMint;
255
+ if (!isMint && !isBurn) {
256
+ throw new Error("Invalid Perena quote: either inputMint or outputMint must be USD* or USD*-J");
257
+ }
258
+ if (isMint && isBurn) {
259
+ throw new Error("Invalid Perena quote: cannot swap USD* to USD*");
260
+ }
261
+ const yieldingMint = isMint ? params.inputMint : params.outputMint;
262
+ const yieldingMintPubkey = new web3_js_1.PublicKey(yieldingMint);
263
+ const vault = this.sdkClient.getVault(yieldingMintPubkey);
264
+ const amount = new core_1.BN(params.amount);
265
+ const vaultInfo = await this.sdkClient.bankineco.pg.account.vaultGenState.fetch(vault);
266
+ const feeBps = isMint ? vaultInfo.config.mintingFeeBps : vaultInfo.config.burningFeeBps;
267
+ const priceImpactPct = feeBps / 100;
268
+ if (isMint) {
269
+ const sdkQuote = await this.sdkClient.yieldingToBankMintQuote(amount, vault);
270
+ return {
271
+ inputMint: params.inputMint,
272
+ outputMint: params.outputMint,
273
+ inputAmount: BigInt(params.amount),
274
+ outputAmount: BigInt(sdkQuote.amount.toString()),
275
+ priceImpactPct,
276
+ rawQuote: { operation: "mint", yieldingMint, sdkQuote },
277
+ };
278
+ }
279
+ else {
280
+ const sdkQuote = await this.sdkClient.bankMintToYieldingQuote(amount, vault);
281
+ return {
282
+ inputMint: params.inputMint,
283
+ outputMint: params.outputMint,
284
+ inputAmount: BigInt(params.amount),
285
+ outputAmount: BigInt(sdkQuote.amount.toString()),
286
+ priceImpactPct,
287
+ rawQuote: { operation: "burn", yieldingMint, sdkQuote },
288
+ };
289
+ }
290
+ }
291
+ /**
292
+ * Quote for staking USD* → USD*-J.
293
+ *
294
+ * Shares minted = amount × bankMintPrice / sharePrice.
295
+ * Staking has no fee; the on-chain conversion is deterministic.
296
+ */
297
+ async getStakeQuote(params) {
298
+ const trancheState = await this.sdkClient.fetchTrancheState(true);
299
+ const bankState = await this.sdkClient.bankineco.pg.account.bankState.fetch(this.sdkClient.bank);
300
+ const amount = new core_1.BN(params.amount);
301
+ const sharesOut = amount.mul(bankState.mint.price).div(trancheState.accounting.sharePrice);
302
+ return {
303
+ inputMint: params.inputMint,
304
+ outputMint: params.outputMint,
305
+ inputAmount: BigInt(params.amount),
306
+ outputAmount: BigInt(sharesOut.toString()),
307
+ priceImpactPct: 0,
308
+ rawQuote: { operation: "stake" },
309
+ };
310
+ }
311
+ /**
312
+ * Quote for unstaking USD*-J → USD* or yielding mint.
313
+ *
314
+ * Uses `fetchUnstakeFee` with `early: true` because instant unstake
315
+ * always applies the early fee.
316
+ */
317
+ async getUnstakeQuote(params) {
318
+ const isToYielding = params.outputMint !== this.bankMint;
319
+ const targetMintPk = isToYielding ? new web3_js_1.PublicKey(params.outputMint) : undefined;
320
+ const unstakeFee = await this.sdkClient.fetchUnstakeFee({
321
+ amount: new core_1.BN(params.amount),
322
+ early: true,
323
+ targetMint: targetMintPk,
324
+ });
325
+ const totalFee = unstakeFee.feeAmount.add(unstakeFee.burningFeeAmount);
326
+ const grossOutput = unstakeFee.amountAfterFee.add(totalFee);
327
+ const feePct = grossOutput.isZero() ? 0 : (totalFee.toNumber() / grossOutput.toNumber()) * 100;
328
+ return {
329
+ inputMint: params.inputMint,
330
+ outputMint: params.outputMint,
331
+ inputAmount: BigInt(params.amount),
332
+ outputAmount: BigInt(unstakeFee.amountAfterFee.toString()),
333
+ priceImpactPct: feePct,
334
+ rawQuote: {
335
+ operation: "unstake",
336
+ targetMint: isToYielding ? params.outputMint : undefined,
337
+ unstakeFee,
338
+ },
339
+ };
340
+ }
341
+ /**
342
+ * Get CPI accounts for a Perena instruction.
343
+ *
344
+ * Account order matches the IDL for the respective instruction.
345
+ *
346
+ * @param quote - Quote from getQuote()
347
+ * @param userPublicKey - Address that will execute the swap (can be a PDA)
348
+ * @param options - Options on building the CPI
349
+ * @returns CPI accounts, program ID, and serialized instruction data
350
+ */
351
+ async getSwapCpiData(quote, userPublicKey, _options) {
352
+ const { operation } = quote.rawQuote;
353
+ switch (operation) {
354
+ case "mint":
355
+ case "burn":
356
+ return this.getMintBurnCpiData(quote, userPublicKey);
357
+ case "stake":
358
+ return await this.getStakeCpiData(quote, userPublicKey);
359
+ case "unstake":
360
+ return await this.getInstantUnstakeCpiData(quote, userPublicKey);
361
+ case "request_unstake": {
362
+ const rq = quote.rawQuote;
363
+ return await this.getRequestUnstakeCpiData({
364
+ shares: new core_1.BN(quote.inputAmount.toString()),
365
+ queueId: rq.queueId,
366
+ userPublicKey,
367
+ payer: rq.payer,
368
+ targetMint: rq.targetMint,
369
+ });
370
+ }
371
+ case "fulfill_unstake": {
372
+ const fq = quote.rawQuote;
373
+ return await this.getFulfillUnstakeCpiData({
374
+ withdrawalQueue: fq.withdrawalQueue,
375
+ signer: fq.owner,
376
+ queuePayer: fq.queuePayer,
377
+ owner: fq.owner,
378
+ targetMint: fq.targetMint,
379
+ });
380
+ }
381
+ }
382
+ }
383
+ /**
384
+ * Derive the withdrawal queue PDA for a given user and queue slot.
385
+ */
386
+ deriveWithdrawalQueue(user, queueId) {
387
+ return (0, common_1.fromWeb3Pk)(this.sdkClient.bankineco.withdrawalQueuePDA(this.sdkClient.bank, new web3_js_1.PublicKey(user), queueId));
388
+ }
389
+ /**
390
+ * Fetch all active withdrawal queue PDAs owned by `user`.
391
+ *
392
+ * "Active" means the queue account exists, is owned by Perena, and currently
393
+ * holds a non-zero locked amount.
394
+ */
395
+ async getActiveWithdrawalQueues(user) {
396
+ const { data } = await this.cache.getDataOrThrow(async () => {
397
+ const userPublicKey = new web3_js_1.PublicKey(user);
398
+ const queueInfos = await this.sdkClient.fetchAllWithdrawalQueues(userPublicKey);
399
+ return queueInfos
400
+ .filter((queueInfo) => queueInfo.amount.gt(new core_1.BN(0)))
401
+ .map((queueInfo) => (0, common_1.fromWeb3Pk)(queueInfo.address));
402
+ }, ACTIVE_WITHDRAWAL_QUEUES_CACHE_CATEGORY, user);
403
+ return data;
404
+ }
405
+ /**
406
+ * Cache invalidation descriptor for the active-withdrawal-queues snapshot of
407
+ * one owner. Use this when a transaction may create, consume, or otherwise
408
+ * mutate Perena withdrawal queues outside this exact client instance.
409
+ */
410
+ getActiveWithdrawalQueuesCacheInvalidation(owner) {
411
+ return this.getActiveWithdrawalQueuesInvalidation(owner);
412
+ }
413
+ getActiveWithdrawalQueuesInvalidation(owner) {
414
+ return {
415
+ client: "perena",
416
+ dataCache: this.cache,
417
+ category: ACTIVE_WITHDRAWAL_QUEUES_CACHE_CATEGORY,
418
+ id: owner,
419
+ };
420
+ }
421
+ /**
422
+ * Build CPI data for mint_w_yielding_gen or burn_for_yielding_gen.
423
+ */
424
+ async getMintBurnCpiData(quote, userPublicKey) {
425
+ const raw = quote.rawQuote;
426
+ const isMint = raw.operation === "mint";
427
+ const action = isMint ? bankineco_sdk_1.BankinecoAction.Mint : bankineco_sdk_1.BankinecoAction.Burn;
428
+ const cpiAccounts = await this.sdkClient.getMintAndBurnCpiAccounts(new web3_js_1.PublicKey(raw.yieldingMint), action, new web3_js_1.PublicKey(userPublicKey));
429
+ const accounts = [
430
+ (0, common_1.toCustomAccountMeta)(userPublicKey, false, undefined, false),
431
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.bankState),
432
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.vaultState),
433
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.oracleState),
434
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.yieldingMint),
435
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.bankMint),
436
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.yieldingUserTa),
437
+ {
438
+ ...(0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.bankMintUserTa),
439
+ isRequiredAta: {
440
+ mint: (0, common_1.fromWeb3Pk)(cpiAccounts.bankMint.pubkey),
441
+ owner: userPublicKey,
442
+ tokenProgram: common_1.mints.get("USD*").tokenProgram,
443
+ },
444
+ },
445
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.yieldingVaultAta),
446
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.teamState),
447
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.feeTeamAta),
448
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.systemProgram),
449
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.tokenProgram),
450
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.yieldingMintProgram),
451
+ (0, common_1.toCustomAccountMetaFromWeb3AccountMeta)(cpiAccounts.associatedTokenProgram),
452
+ ...(cpiAccounts.remainingAccounts ?? []).map((meta) => (0, common_1.toCustomAccountMeta)(meta.pubkey.toBase58(), meta.isWritable, undefined, meta.isSigner)),
453
+ ];
454
+ return {
455
+ cpiType: isMint ? common_1.CpiTypes.PERENA_MINT : common_1.CpiTypes.PERENA_BURN,
456
+ accounts,
457
+ programId: constants_1.PERENA_PROGRAM_ID,
458
+ data: isMint
459
+ ? (0, cpi_1.getPerenaMintArgs)({
460
+ amountYieldingDeposit: quote.inputAmount,
461
+ minBankMintMinted: quote.outputAmount,
462
+ })
463
+ : (0, cpi_1.getPerenaBurnArgs)({
464
+ amountToBurn: quote.inputAmount,
465
+ minimumYieldingWithdrawn: quote.outputAmount,
466
+ }),
467
+ };
468
+ }
469
+ /**
470
+ * Build CPI data for stake_junior.
471
+ *
472
+ * Account order matches the IDL:
473
+ * user, tranche_state, bank_state, bank_mint, junior_mint,
474
+ * user_bank_mint_ata, user_junior_mint_ata, junior_escrow_ata,
475
+ * system_program, token_program, associated_token_program
476
+ */
477
+ async getStakeCpiData(quote, userPublicKey) {
478
+ const userPk = new web3_js_1.PublicKey(userPublicKey);
479
+ const trancheAccounts = await this.sdkClient.getStakeCpiAccounts(userPk);
480
+ const { bankMint, juniorMint, tokenProgram } = trancheAccounts;
481
+ const userBankMintAta = await (0, common_1.getAtaAddress)((0, common_1.fromWeb3Pk)(bankMint), userPublicKey, (0, common_1.fromWeb3Pk)(tokenProgram));
482
+ const userJuniorMintAta = await (0, common_1.getAtaAddress)((0, common_1.fromWeb3Pk)(juniorMint), userPublicKey, (0, common_1.fromWeb3Pk)(tokenProgram));
483
+ const accounts = [
484
+ (0, common_1.toCustomAccountMeta)(userPublicKey, true, undefined, false),
485
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.trancheState), true),
486
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.bankState)),
487
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(bankMint)),
488
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(juniorMint), true),
489
+ (0, common_1.toCustomAccountMeta)(userBankMintAta, true),
490
+ {
491
+ ...(0, common_1.toCustomAccountMeta)(userJuniorMintAta, true),
492
+ isRequiredAta: {
493
+ mint: this.juniorMint,
494
+ owner: userPublicKey,
495
+ tokenProgram: common_1.mints.get("USD*-J").tokenProgram,
496
+ },
497
+ },
498
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.juniorEscrowAta), true),
499
+ (0, common_1.toCustomAccountMeta)(system_1.SYSTEM_PROGRAM_ADDRESS),
500
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(tokenProgram)),
501
+ (0, common_1.toCustomAccountMeta)(token_1.ASSOCIATED_TOKEN_PROGRAM_ADDRESS),
502
+ ];
503
+ return {
504
+ cpiType: common_1.CpiTypes.PERENA_STAKE,
505
+ accounts,
506
+ programId: constants_1.PERENA_PROGRAM_ID,
507
+ data: (0, common_1.numToU64Bytes)(quote.inputAmount),
508
+ };
509
+ }
510
+ /**
511
+ * Build CPI data for instant_unstake_junior.
512
+ *
513
+ * Account order matches the IDL:
514
+ * user, tranche_state, bank_state, bank_mint, target_mint, junior_mint,
515
+ * user_junior_mint_ata, owner_bank_mint_ata, junior_escrow_ata,
516
+ * locked_junior_shares_ata, token_program,
517
+ * [vault_state, vault_oracle_state, vault_team_state, yielding_mint,
518
+ * yielding_vault_ata, owner_yielding_ta, vault_fee_team_ata,
519
+ * yielding_mint_program] (optional, when unstaking to a yielding mint)
520
+ */
521
+ async getInstantUnstakeCpiData(quote, userPublicKey) {
522
+ const raw = quote.rawQuote;
523
+ const userPk = new web3_js_1.PublicKey(userPublicKey);
524
+ const targetMintPk = raw.targetMint ? new web3_js_1.PublicKey(raw.targetMint) : undefined;
525
+ const trancheAccounts = await this.sdkClient.getUnstakeCpiAccounts(userPk, targetMintPk);
526
+ const { bankMint, juniorMint, tokenProgram } = trancheAccounts;
527
+ const userJuniorMintAta = await (0, common_1.getAtaAddress)((0, common_1.fromWeb3Pk)(juniorMint), userPublicKey, (0, common_1.fromWeb3Pk)(tokenProgram));
528
+ const ownerBankMintAta = await (0, common_1.getAtaAddress)((0, common_1.fromWeb3Pk)(bankMint), userPublicKey, (0, common_1.fromWeb3Pk)(tokenProgram));
529
+ const targetMintAddress = raw.targetMint ?? this.bankMint;
530
+ const accounts = [
531
+ (0, common_1.toCustomAccountMeta)(userPublicKey, false, undefined, false),
532
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.trancheState), true),
533
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.bankState), true),
534
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(bankMint), true),
535
+ (0, common_1.toCustomAccountMeta)(targetMintAddress),
536
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(juniorMint), true),
537
+ (0, common_1.toCustomAccountMeta)(userJuniorMintAta, true),
538
+ {
539
+ ...(0, common_1.toCustomAccountMeta)(ownerBankMintAta, true),
540
+ isRequiredAta: {
541
+ mint: (0, common_1.fromWeb3Pk)(bankMint),
542
+ owner: userPublicKey,
543
+ tokenProgram: common_1.mints.get("USD*").tokenProgram,
544
+ },
545
+ },
546
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.juniorEscrowAta), true),
547
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.lockedJuniorSharesAta), true),
548
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(tokenProgram)),
549
+ ];
550
+ this.pushYieldingRedemptionAccounts(accounts, trancheAccounts, userPublicKey);
551
+ return {
552
+ cpiType: common_1.CpiTypes.PERENA_INSTANT_UNSTAKE,
553
+ accounts,
554
+ programId: constants_1.PERENA_PROGRAM_ID,
555
+ data: (0, common_1.numToU64Bytes)(quote.inputAmount),
556
+ };
557
+ }
558
+ /**
559
+ * Build CPI data for request_unstake_junior.
560
+ *
561
+ * Account order matches the IDL:
562
+ * user, payer, withdrawal_queue, tranche_state, bank_state, bank_mint,
563
+ * target_mint, junior_mint, user_junior_mint_ata, locked_junior_shares_ata,
564
+ * system_program, token_program
565
+ */
566
+ async getRequestUnstakeCpiData(params) {
567
+ const userPk = new web3_js_1.PublicKey(params.userPublicKey);
568
+ const targetMintPk = params.targetMint ? new web3_js_1.PublicKey(params.targetMint) : undefined;
569
+ const trancheAccounts = await this.sdkClient.getUnstakeCpiAccounts(userPk, targetMintPk);
570
+ const { bankMint, juniorMint, tokenProgram } = trancheAccounts;
571
+ const userJuniorMintAta = await (0, common_1.getAtaAddress)((0, common_1.fromWeb3Pk)(juniorMint), params.userPublicKey, (0, common_1.fromWeb3Pk)(tokenProgram));
572
+ const targetMintAddress = params.targetMint ?? this.bankMint;
573
+ const withdrawalQueue = this.deriveWithdrawalQueue(params.userPublicKey, params.queueId);
574
+ const accounts = [
575
+ (0, common_1.toCustomAccountMeta)(params.userPublicKey, false, undefined, false),
576
+ (0, common_1.toCustomAccountMeta)(params.payer, true, undefined, true),
577
+ (0, common_1.toCustomAccountMeta)(withdrawalQueue, true),
578
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.trancheState)),
579
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.bankState)),
580
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(bankMint)),
581
+ (0, common_1.toCustomAccountMeta)(targetMintAddress),
582
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(juniorMint)),
583
+ (0, common_1.toCustomAccountMeta)(userJuniorMintAta, true),
584
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.lockedJuniorSharesAta), true),
585
+ (0, common_1.toCustomAccountMeta)(system_1.SYSTEM_PROGRAM_ADDRESS),
586
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(tokenProgram)),
587
+ ];
588
+ return {
589
+ cpiType: common_1.CpiTypes.PERENA_REQUEST_UNSTAKE,
590
+ accounts,
591
+ programId: constants_1.PERENA_PROGRAM_ID,
592
+ data: (0, cpi_1.getPerenaRequestUnstakeArgs)({
593
+ shares: params.shares,
594
+ queueId: params.queueId,
595
+ }),
596
+ postSuccessCacheInvalidations: [
597
+ this.getActiveWithdrawalQueuesInvalidation(params.userPublicKey),
598
+ ],
599
+ };
600
+ }
601
+ /**
602
+ * Build CPI data for fulfill_unstake_junior.
603
+ *
604
+ * Account order matches the IDL:
605
+ * signer, queue_payer, withdrawal_queue, tranche_state, bank_state,
606
+ * bank_mint, junior_mint, owner_bank_mint_ata, junior_escrow_ata,
607
+ * locked_junior_shares_ata, token_program,
608
+ * [vault_state, vault_oracle_state, vault_team_state, yielding_mint,
609
+ * yielding_vault_ata, owner_yielding_ta, vault_fee_team_ata,
610
+ * yielding_mint_program] (optional, when fulfilling to a yielding mint)
611
+ */
612
+ async getFulfillUnstakeCpiData(params) {
613
+ const ownerPk = new web3_js_1.PublicKey(params.owner);
614
+ const targetMintPk = params.targetMint ? new web3_js_1.PublicKey(params.targetMint) : undefined;
615
+ const trancheAccounts = await this.sdkClient.getUnstakeCpiAccounts(ownerPk, targetMintPk);
616
+ const { bankMint, juniorMint, tokenProgram } = trancheAccounts;
617
+ const ownerBankMintAta = await (0, common_1.getAtaAddress)((0, common_1.fromWeb3Pk)(bankMint), params.owner, (0, common_1.fromWeb3Pk)(tokenProgram));
618
+ const accounts = [
619
+ (0, common_1.toCustomAccountMeta)(params.signer, false, undefined, false),
620
+ (0, common_1.toCustomAccountMeta)(params.queuePayer, true),
621
+ (0, common_1.toCustomAccountMeta)(params.withdrawalQueue, true),
622
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.trancheState), true),
623
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.bankState), true),
624
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(bankMint), true),
625
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(juniorMint), true),
626
+ {
627
+ ...(0, common_1.toCustomAccountMeta)(ownerBankMintAta, true),
628
+ isRequiredAta: {
629
+ mint: (0, common_1.fromWeb3Pk)(bankMint),
630
+ owner: params.owner,
631
+ tokenProgram: common_1.mints.get("USD*").tokenProgram,
632
+ },
633
+ },
634
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.juniorEscrowAta), true),
635
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(trancheAccounts.lockedJuniorSharesAta), true),
636
+ (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(tokenProgram)),
637
+ ];
638
+ this.pushYieldingRedemptionAccounts(accounts, trancheAccounts, params.owner);
639
+ return {
640
+ cpiType: common_1.CpiTypes.PERENA_FULFILL_UNSTAKE,
641
+ accounts,
642
+ programId: constants_1.PERENA_PROGRAM_ID,
643
+ data: new Uint8Array(0),
644
+ postSuccessCacheInvalidations: [this.getActiveWithdrawalQueuesInvalidation(params.owner)],
645
+ };
646
+ }
647
+ /**
648
+ * Appends the 8 yielding-redemption account slots that `instant_unstake_junior`
649
+ * and `fulfill_unstake_junior` expect after `token_program`.
650
+ *
651
+ * When a yielding mint is involved, real accounts are pushed. Otherwise Anchor
652
+ * still requires all 8 slots to be present — each set to the program ID as the
653
+ * `Option<Account>` sentinel for `None`.
654
+ */
655
+ pushYieldingRedemptionAccounts(accounts, trancheAccounts, owner) {
656
+ const yr = trancheAccounts.yieldingRedemption;
657
+ if (yr) {
658
+ accounts.push((0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(yr.vaultState), true), (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(yr.vaultOracleState)), (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(yr.vaultTeamState), true), (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(yr.yieldingMint)), (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(yr.yieldingVaultAta), true), {
659
+ ...(0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(yr.ownerYieldingTa), true),
660
+ isRequiredAta: {
661
+ mint: (0, common_1.fromWeb3Pk)(yr.yieldingMint),
662
+ owner,
663
+ tokenProgram: (0, common_1.fromWeb3Pk)(yr.yieldingMintProgram),
664
+ },
665
+ }, (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(yr.vaultFeeTeamAta), true), (0, common_1.toCustomAccountMeta)((0, common_1.fromWeb3Pk)(yr.yieldingMintProgram)));
666
+ }
667
+ else {
668
+ const sentinel = constants_1.PERENA_PROGRAM_ID;
669
+ for (let i = 0; i < 8; i++) {
670
+ accounts.push((0, common_1.toCustomAccountMeta)(sentinel));
671
+ }
672
+ }
673
+ if (trancheAccounts.remainingAccounts) {
674
+ for (const meta of trancheAccounts.remainingAccounts) {
675
+ accounts.push((0, common_1.toCustomAccountMeta)(meta.pubkey.toBase58(), meta.isWritable, undefined, meta.isSigner));
676
+ }
677
+ }
678
+ }
679
+ }
680
+ exports.PerenaClient = PerenaClient;
@@ -0,0 +1,5 @@
1
+ import { type Address } from "@solana/kit";
2
+ /**
3
+ * Perena Bankineco Program ID (prod)
4
+ */
5
+ export declare const PERENA_PROGRAM_ID: Address;