@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,193 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.U64_MAX_BN = exports.U64_MAX = void 0;
4
+ exports.toUiAmount = toUiAmount;
5
+ exports.fromUiAmount = fromUiAmount;
6
+ exports.wholeTokenAmount = wholeTokenAmount;
7
+ exports.calculateTvlUsd = calculateTvlUsd;
8
+ exports.tvlUsdToBaseUnits = tvlUsdToBaseUnits;
9
+ exports.bnFromBigInt = bnFromBigInt;
10
+ exports.bigintMulNumber = bigintMulNumber;
11
+ exports.applyFeeCeil = applyFeeCeil;
12
+ exports.getBatches = getBatches;
13
+ exports.currentUnixSeconds = currentUnixSeconds;
14
+ exports.sum = sum;
15
+ exports.toBigInt = toBigInt;
16
+ exports.applyBps = applyBps;
17
+ exports.toBps = toBps;
18
+ exports.toSafeNumber = toSafeNumber;
19
+ exports.numToU64Bytes = numToU64Bytes;
20
+ exports.numToU32Bytes = numToU32Bytes;
21
+ exports.numToU16Bytes = numToU16Bytes;
22
+ exports.computeApy = computeApy;
23
+ const core_1 = require("@anchor-lang/core");
24
+ const general_1 = require("../constants/general");
25
+ exports.U64_MAX = BigInt("18446744073709551615");
26
+ exports.U64_MAX_BN = new core_1.BN(exports.U64_MAX.toString());
27
+ function toUiAmount(amount, decimals) {
28
+ const bigintValue = typeof amount === "bigint" ? amount : BigInt(amount.toString());
29
+ // Treat max u64 as unlimited
30
+ if (bigintValue >= exports.U64_MAX) {
31
+ return Infinity;
32
+ }
33
+ // For values that fit in safe integer range, convert directly
34
+ if (bigintValue <= BigInt(Number.MAX_SAFE_INTEGER)) {
35
+ return Number(bigintValue) / Math.pow(10, decimals);
36
+ }
37
+ // For large values, divide first using BigInt then convert
38
+ // This preserves more precision for the significant digits
39
+ const divisor = BigInt(Math.pow(10, decimals));
40
+ const wholePart = bigintValue / divisor;
41
+ const remainder = bigintValue % divisor;
42
+ return Number(wholePart) + Number(remainder) / Math.pow(10, decimals);
43
+ }
44
+ function fromUiAmount(amount, decimals) {
45
+ return new core_1.BN(Math.round(amount * Math.pow(10, decimals)));
46
+ }
47
+ /** Base-unit amount representing exactly 1 whole token for `decimals`. */
48
+ function wholeTokenAmount(decimals) {
49
+ return Math.pow(10, decimals);
50
+ }
51
+ /**
52
+ * Compute USD TVL from a raw token amount and a raw oracle price, normalized
53
+ * to 8-decimal USD ($1 = 100_000_000).
54
+ *
55
+ * Mirrors the on-chain `calculate_tvl_usd`:
56
+ * `tvl = amount * price / (10^(2*decimals) / 10^8)`
57
+ *
58
+ * Oracle prices are scaled to `10^decimals` per dollar (e.g. $1 USDC at 6 dec
59
+ * = 1_000_000; $130 SOL at 9 dec = 130_000_000_000).
60
+ */
61
+ function calculateTvlUsd(amount, price, decimals) {
62
+ const assetScale = BigInt(wholeTokenAmount(decimals));
63
+ const scaleFactor = (assetScale * assetScale) / general_1.TVL_USD_SCALE;
64
+ return (amount * price) / scaleFactor;
65
+ }
66
+ /**
67
+ * Inverse of {@link calculateTvlUsd}: convert a normalized 8-decimal USD value
68
+ * back to base units given a raw oracle price and decimal precision.
69
+ *
70
+ * `amount = tvlUsd * (10^(2*decimals) / 10^8) / price`
71
+ */
72
+ function tvlUsdToBaseUnits(tvlUsd, price, decimals) {
73
+ const assetScale = BigInt(wholeTokenAmount(decimals));
74
+ const scaleFactor = (assetScale * assetScale) / general_1.TVL_USD_SCALE;
75
+ return (tvlUsd * scaleFactor) / price;
76
+ }
77
+ /** `bigint` → Anchor `BN` without floating-point loss (e.g. raw lamports / token amounts). */
78
+ function bnFromBigInt(n) {
79
+ return new core_1.BN(n.toString());
80
+ }
81
+ /**
82
+ * `bigint × number → bigint` with sign-preserving half-away-from-zero rounding.
83
+ *
84
+ * JS has no native `bigint * float` op; we go through `Number(a) * b` and
85
+ * round. Precision loss is bounded by Number's ~15 significant digits, which
86
+ * is well inside sub-cent tolerance for realistic token balances. Returns
87
+ * `0n` when either input is zero or the multiplier is non-finite.
88
+ *
89
+ * Typical use: applying a floating-point rate (NAV, APY multiplier, oracle
90
+ * price per UI) to an integer base-unit balance.
91
+ */
92
+ function bigintMulNumber(a, b) {
93
+ if (a === 0n || !Number.isFinite(b) || b === 0)
94
+ return 0n;
95
+ return BigInt(Math.round(Number(a) * b));
96
+ }
97
+ /**
98
+ * Ceiling-round `principal * feeRate`, returning the result as a bigint.
99
+ *
100
+ * Use this when undershooting the fee can cause a transaction to fail (e.g.
101
+ * a flash-loan repay that must cover principal + fee — over-paying by at most
102
+ * one base unit is fine, under-paying reverts).
103
+ *
104
+ * `feeRate` is a unitless fraction (e.g. `0.003` for 0.3%). Returns `0n` for
105
+ * non-positive rates.
106
+ */
107
+ function applyFeeCeil(principal, feeRate) {
108
+ if (feeRate <= 0)
109
+ return 0n;
110
+ // Scale rate to 1e9 for integer math; ceil so we over-pay by at most one unit.
111
+ const scale = 1000000000n;
112
+ const rateScaled = BigInt(Math.ceil(feeRate * Number(scale)));
113
+ const numerator = principal * rateScaled;
114
+ return (numerator + (scale - 1n)) / scale;
115
+ }
116
+ function getBatches(items, batchSize) {
117
+ const batches = [];
118
+ for (let i = 0; i < items.length; i += batchSize) {
119
+ batches.push(items.slice(i, i + batchSize));
120
+ }
121
+ return batches;
122
+ }
123
+ function currentUnixSeconds() {
124
+ return Math.floor(Date.now() / 1000);
125
+ }
126
+ function sum(numbers) {
127
+ return numbers.reduce((prev, curr) => prev + curr, 0);
128
+ }
129
+ function toBigInt(value) {
130
+ return BigInt(value.toString());
131
+ }
132
+ /** Apply a basis-points multiplier: `(value × bps) / 10_000`. */
133
+ function applyBps(value, bps) {
134
+ return (value * BigInt(bps)) / general_1.BPS_DENOMINATOR;
135
+ }
136
+ /** Compute the basis-points ratio: `(part / whole) × 10_000`. */
137
+ function toBps(part, whole) {
138
+ if (whole === 0n)
139
+ return 0n;
140
+ return (part * general_1.BPS_DENOMINATOR) / whole;
141
+ }
142
+ function toSafeNumber(value, field) {
143
+ const asBigInt = typeof value === "bigint" ? value : BigInt(value.toString());
144
+ if (asBigInt > BigInt(Number.MAX_SAFE_INTEGER)) {
145
+ throw new Error(`${field} exceeds Number.MAX_SAFE_INTEGER and cannot be quoted safely`);
146
+ }
147
+ return Number(asBigInt);
148
+ }
149
+ function numberToLEBytes(value, byteLength = 8) {
150
+ const bigintValue = typeof value === "bigint" ? value : BigInt(value.toString());
151
+ const buf = new ArrayBuffer(byteLength);
152
+ const view = new DataView(buf);
153
+ if (byteLength === 8) {
154
+ view.setBigUint64(0, bigintValue, true);
155
+ }
156
+ else {
157
+ // Generic little-endian encoding for other byte lengths
158
+ let remaining = bigintValue;
159
+ for (let i = 0; i < byteLength; i++) {
160
+ view.setUint8(i, Number(remaining & 0xffn));
161
+ remaining >>= 8n;
162
+ }
163
+ }
164
+ return new Uint8Array(buf);
165
+ }
166
+ function numToU64Bytes(value) {
167
+ return numberToLEBytes(value, 8);
168
+ }
169
+ function numToU32Bytes(value) {
170
+ return numberToLEBytes(value, 4);
171
+ }
172
+ function numToU16Bytes(value) {
173
+ return numberToLEBytes(value, 2);
174
+ }
175
+ /**
176
+ * Compute annualized percentage yield from two price snapshots.
177
+ *
178
+ * Formula:
179
+ * growthRate = priceEnd / priceStart
180
+ * APY = (growthRate ^ (365 / daysBetween) - 1) * 100
181
+ *
182
+ * Returns `null` if either price is missing/zero or the time delta is zero.
183
+ */
184
+ function computeApy(priceEnd, priceStart, windowSeconds) {
185
+ const SECONDS_PER_DAY = 86400;
186
+ const DAYS_PER_YEAR = 365;
187
+ if (priceStart <= 0 || priceEnd <= 0 || windowSeconds <= 0)
188
+ return null;
189
+ const daysBetween = windowSeconds / SECONDS_PER_DAY;
190
+ const growthRate = priceEnd / priceStart;
191
+ const apy = (Math.pow(growthRate, DAYS_PER_YEAR / daysBetween) - 1) * 100;
192
+ return Number.isFinite(apy) ? apy : null;
193
+ }
@@ -0,0 +1,18 @@
1
+ import type { Address, Base64EncodedWireTransaction, Rpc, SolanaRpcApi } from "@solana/kit";
2
+ /** Helius priority levels accepted by `getPriorityFeeEstimate`. */
3
+ export declare enum PriorityFeeSetting {
4
+ Min = "Min",
5
+ Low = "Low",
6
+ Medium = "Medium",
7
+ High = "High",
8
+ VeryHigh = "VeryHigh"
9
+ }
10
+ /**
11
+ * Estimate a compute-unit price through the configured RPC provider's
12
+ * Helius-compatible `getPriorityFeeEstimate` method.
13
+ *
14
+ * Helius expects the serialized transaction in base58. If transaction-based
15
+ * estimation is unavailable, retry with the transaction's account keys, which
16
+ * preserves contention-aware pricing without silently dropping the requested fee.
17
+ */
18
+ export declare function getPriorityFeeEstimate(rpc: Rpc<SolanaRpcApi>, transaction: Base64EncodedWireTransaction, accountKeys: Address[], priorityFeeSetting: PriorityFeeSetting): Promise<number>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PriorityFeeSetting = void 0;
7
+ exports.getPriorityFeeEstimate = getPriorityFeeEstimate;
8
+ const bs58_1 = __importDefault(require("bs58"));
9
+ /** Helius priority levels accepted by `getPriorityFeeEstimate`. */
10
+ var PriorityFeeSetting;
11
+ (function (PriorityFeeSetting) {
12
+ PriorityFeeSetting["Min"] = "Min";
13
+ PriorityFeeSetting["Low"] = "Low";
14
+ PriorityFeeSetting["Medium"] = "Medium";
15
+ PriorityFeeSetting["High"] = "High";
16
+ PriorityFeeSetting["VeryHigh"] = "VeryHigh";
17
+ })(PriorityFeeSetting || (exports.PriorityFeeSetting = PriorityFeeSetting = {}));
18
+ const MAX_COMPUTE_UNIT_PRICE_MICRO_LAMPORTS = 100000000;
19
+ function normalizeEstimate(result) {
20
+ const estimate = result.priorityFeeEstimate;
21
+ if (typeof estimate === "bigint") {
22
+ if (estimate < 0n) {
23
+ throw new Error("Helius getPriorityFeeEstimate returned an invalid estimate");
24
+ }
25
+ return Number(estimate > BigInt(MAX_COMPUTE_UNIT_PRICE_MICRO_LAMPORTS)
26
+ ? BigInt(MAX_COMPUTE_UNIT_PRICE_MICRO_LAMPORTS)
27
+ : estimate);
28
+ }
29
+ if (estimate === undefined || !Number.isFinite(estimate) || estimate < 0) {
30
+ throw new Error("Helius getPriorityFeeEstimate returned an invalid estimate");
31
+ }
32
+ return Math.min(Math.round(estimate), MAX_COMPUTE_UNIT_PRICE_MICRO_LAMPORTS);
33
+ }
34
+ /**
35
+ * Estimate a compute-unit price through the configured RPC provider's
36
+ * Helius-compatible `getPriorityFeeEstimate` method.
37
+ *
38
+ * Helius expects the serialized transaction in base58. If transaction-based
39
+ * estimation is unavailable, retry with the transaction's account keys, which
40
+ * preserves contention-aware pricing without silently dropping the requested fee.
41
+ */
42
+ async function getPriorityFeeEstimate(rpc, transaction, accountKeys, priorityFeeSetting) {
43
+ const transactionBase58 = bs58_1.default.encode(Buffer.from(transaction, "base64"));
44
+ const priorityFeeRpc = rpc;
45
+ try {
46
+ const result = await priorityFeeRpc
47
+ .getPriorityFeeEstimate({
48
+ transaction: transactionBase58,
49
+ options: { priorityLevel: priorityFeeSetting },
50
+ })
51
+ .send();
52
+ return normalizeEstimate(result);
53
+ }
54
+ catch {
55
+ const result = await priorityFeeRpc
56
+ .getPriorityFeeEstimate({
57
+ accountKeys,
58
+ options: { priorityLevel: priorityFeeSetting },
59
+ })
60
+ .send();
61
+ return normalizeEstimate(result);
62
+ }
63
+ }
@@ -0,0 +1,20 @@
1
+ export declare function isTransientNetworkError(err: unknown): boolean;
2
+ /**
3
+ * Retry an async function on transient network errors with exponential backoff.
4
+ *
5
+ * Only retries errors that indicate the request never reached the server
6
+ * (`TypeError: fetch failed`, connection resets, timeouts) plus generic
7
+ * internal JSON-RPC errors that local/forked Solana validators can emit
8
+ * transiently while warming cloned accounts. Deterministic application-level
9
+ * errors (HTTP 4xx/5xx, custom program errors, validation failures) are thrown
10
+ * immediately.
11
+ */
12
+ export declare function withNetworkRetry<T>(fn: () => Promise<T>, maxAttempts?: number): Promise<T>;
13
+ /**
14
+ * Drop-in replacement for `globalThis.fetch` that retries on transient
15
+ * network errors (connection resets, DNS failures, `TypeError: fetch failed`).
16
+ *
17
+ * HTTP error responses (4xx, 5xx) are NOT retried — the server received and
18
+ * processed the request; the caller should decide how to handle those.
19
+ */
20
+ export declare function fetchWithRetry(input: string | URL, init?: RequestInit): Promise<Response>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTransientNetworkError = isTransientNetworkError;
4
+ exports.withNetworkRetry = withNetworkRetry;
5
+ exports.fetchWithRetry = fetchWithRetry;
6
+ const general_1 = require("./general");
7
+ const DEFAULT_MAX_ATTEMPTS = 4;
8
+ const INITIAL_DELAY_MS = 200;
9
+ const MAX_DELAY_MS = 2000;
10
+ function isTransientNetworkError(err) {
11
+ if (err instanceof TypeError)
12
+ return true;
13
+ const msg = (err?.message ?? "").toLowerCase();
14
+ return (msg.includes("fetch failed") ||
15
+ msg.includes("econnreset") ||
16
+ msg.includes("econnrefused") ||
17
+ msg.includes("etimedout") ||
18
+ msg.includes("socket hang up") ||
19
+ msg.includes("network timeout") ||
20
+ msg.includes("all providers failed") ||
21
+ msg.includes("all rpc providers failed") ||
22
+ msg.includes("failed to get info about account") ||
23
+ msg.includes("429") ||
24
+ msg.includes("rate limit") ||
25
+ msg.includes("too many requests") ||
26
+ msg.includes("timeout") ||
27
+ // Local validators / forked RPCs can intermittently surface account-load
28
+ // issues as a generic internal JSON-RPC error before the account is warmed.
29
+ msg.includes("json-rpc error: internal json-rpc error") ||
30
+ msg.includes("json-rpc error: internal error"));
31
+ }
32
+ function retryDelay(attempt) {
33
+ return Math.min(INITIAL_DELAY_MS * 2 ** attempt, MAX_DELAY_MS);
34
+ }
35
+ /**
36
+ * Retry an async function on transient network errors with exponential backoff.
37
+ *
38
+ * Only retries errors that indicate the request never reached the server
39
+ * (`TypeError: fetch failed`, connection resets, timeouts) plus generic
40
+ * internal JSON-RPC errors that local/forked Solana validators can emit
41
+ * transiently while warming cloned accounts. Deterministic application-level
42
+ * errors (HTTP 4xx/5xx, custom program errors, validation failures) are thrown
43
+ * immediately.
44
+ */
45
+ async function withNetworkRetry(fn, maxAttempts = DEFAULT_MAX_ATTEMPTS) {
46
+ let lastErr;
47
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
48
+ try {
49
+ return await fn();
50
+ }
51
+ catch (err) {
52
+ lastErr = err;
53
+ if (!isTransientNetworkError(err) || attempt === maxAttempts - 1)
54
+ break;
55
+ await (0, general_1.sleep)(retryDelay(attempt));
56
+ }
57
+ }
58
+ throw lastErr;
59
+ }
60
+ /**
61
+ * Drop-in replacement for `globalThis.fetch` that retries on transient
62
+ * network errors (connection resets, DNS failures, `TypeError: fetch failed`).
63
+ *
64
+ * HTTP error responses (4xx, 5xx) are NOT retried — the server received and
65
+ * processed the request; the caller should decide how to handle those.
66
+ */
67
+ function fetchWithRetry(input, init) {
68
+ return withNetworkRetry(() => fetch(input, init));
69
+ }
@@ -0,0 +1,40 @@
1
+ import { type Rpc, type SolanaRpcApi } from "@solana/kit";
2
+ import type { Environment } from "../types";
3
+ /**
4
+ * Create a Solana RPC client with automatic retry on transient network
5
+ * failures (connection resets, DNS timeouts, `fetch failed`).
6
+ *
7
+ * Use this instead of `createSolanaRpc(url)` for any non-local RPC endpoint.
8
+ */
9
+ export declare function createRpcWithRetry(url: string): Rpc<SolanaRpcApi>;
10
+ /**
11
+ * Create a Solana RPC client that retries each provider and then fails over to
12
+ * the next configured provider for transient read failures.
13
+ */
14
+ export declare function createRpcWithFailover(urls: string[]): Rpc<SolanaRpcApi>;
15
+ export declare function createRpc(environment: Environment): Rpc<SolanaRpcApi>;
16
+ export declare function heliusRpcUrl(heliusApiKey: string): string;
17
+ export declare function ironforgeRpcUrl(ironforgeApiKey: string): string;
18
+ /**
19
+ * Returns the RPC URL for the given environment.
20
+ *
21
+ * Resolution order (non-local):
22
+ * 1. `IRONFORGE_API_KEY` env var → constructs Ironforge URL. Preferred over
23
+ * `RPC_URL` so a stray `RPC_URL` (e.g. pointing at Helius) does not silently
24
+ * override Ironforge when both are present.
25
+ * 2. `RPC_URL` env var (explicit override, if set).
26
+ * 3. `HELIUS_API_KEY` env var → constructs Helius URL.
27
+ * 4. None → throws with a clear message.
28
+ *
29
+ * Browser bundles (e.g. Next.js) do not expose arbitrary `process.env` keys to the client.
30
+ * The app may inject these same names at build time — see the frontend `next.config.ts`.
31
+ */
32
+ export declare function getRpcUrl(environment: Environment): string;
33
+ export declare function getRpcUrls(environment: Environment): string[];
34
+ /**
35
+ * Returns the preferred mainnet RPC URL while preserving a public fallback for
36
+ * local tools and tests that need mainnet reads without extra env setup.
37
+ */
38
+ export declare function getMainnetRpcUrl(): string;
39
+ /** Redact API key query params for logs (Helius, Ironforge, etc.). */
40
+ export declare function redactRpcUrlForLog(url: string): string;
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRpcWithRetry = createRpcWithRetry;
4
+ exports.createRpcWithFailover = createRpcWithFailover;
5
+ exports.createRpc = createRpc;
6
+ exports.heliusRpcUrl = heliusRpcUrl;
7
+ exports.ironforgeRpcUrl = ironforgeRpcUrl;
8
+ exports.getRpcUrl = getRpcUrl;
9
+ exports.getRpcUrls = getRpcUrls;
10
+ exports.getMainnetRpcUrl = getMainnetRpcUrl;
11
+ exports.redactRpcUrlForLog = redactRpcUrlForLog;
12
+ const kit_1 = require("@solana/kit");
13
+ const retry_1 = require("./retry");
14
+ /**
15
+ * Create a Solana RPC client with automatic retry on transient network
16
+ * failures (connection resets, DNS timeouts, `fetch failed`).
17
+ *
18
+ * Use this instead of `createSolanaRpc(url)` for any non-local RPC endpoint.
19
+ */
20
+ function createRpcWithRetry(url) {
21
+ const inner = (0, kit_1.createDefaultRpcTransport)({ url });
22
+ const retryingTransport = async (...args) => (0, retry_1.withNetworkRetry)(() => inner(...args));
23
+ return (0, kit_1.createSolanaRpcFromTransport)(retryingTransport);
24
+ }
25
+ /**
26
+ * Create a Solana RPC client that retries each provider and then fails over to
27
+ * the next configured provider for transient read failures.
28
+ */
29
+ function createRpcWithFailover(urls) {
30
+ const uniqueUrls = uniqueRpcUrls(urls);
31
+ if (uniqueUrls.length === 0) {
32
+ throw new Error("createRpcWithFailover requires at least one RPC URL");
33
+ }
34
+ if (uniqueUrls.length === 1) {
35
+ return createRpcWithRetry(uniqueUrls[0]);
36
+ }
37
+ const providers = uniqueUrls.map((url) => ({
38
+ url,
39
+ transport: (0, kit_1.createDefaultRpcTransport)({ url }),
40
+ }));
41
+ const failoverTransport = async (...args) => {
42
+ const failures = [];
43
+ for (const provider of providers) {
44
+ try {
45
+ return (await (0, retry_1.withNetworkRetry)(() => provider.transport(...args)));
46
+ }
47
+ catch (err) {
48
+ if (!(0, retry_1.isTransientNetworkError)(err)) {
49
+ throw err;
50
+ }
51
+ failures.push(`${redactRpcUrlForLog(provider.url)}: ${err instanceof Error ? err.message : String(err)}`);
52
+ }
53
+ }
54
+ throw new Error(`All RPC providers failed: ${failures.join(" | ")}`);
55
+ };
56
+ return (0, kit_1.createSolanaRpcFromTransport)(failoverTransport);
57
+ }
58
+ function createRpc(environment) {
59
+ const urls = getRpcUrls(environment);
60
+ if (environment === "local")
61
+ return (0, kit_1.createSolanaRpc)(urls[0]);
62
+ return createRpcWithFailover(urls);
63
+ }
64
+ function heliusRpcUrl(heliusApiKey) {
65
+ return `https://mainnet.helius-rpc.com/?api-key=${heliusApiKey}`;
66
+ }
67
+ function ironforgeRpcUrl(ironforgeApiKey) {
68
+ return `https://rpc.ironforge.network/mainnet?apiKey=${ironforgeApiKey}`;
69
+ }
70
+ const PUBLIC_MAINNET_RPC_URL = "https://api.mainnet-beta.solana.com";
71
+ /**
72
+ * Returns the RPC URL for the given environment.
73
+ *
74
+ * Resolution order (non-local):
75
+ * 1. `IRONFORGE_API_KEY` env var → constructs Ironforge URL. Preferred over
76
+ * `RPC_URL` so a stray `RPC_URL` (e.g. pointing at Helius) does not silently
77
+ * override Ironforge when both are present.
78
+ * 2. `RPC_URL` env var (explicit override, if set).
79
+ * 3. `HELIUS_API_KEY` env var → constructs Helius URL.
80
+ * 4. None → throws with a clear message.
81
+ *
82
+ * Browser bundles (e.g. Next.js) do not expose arbitrary `process.env` keys to the client.
83
+ * The app may inject these same names at build time — see the frontend `next.config.ts`.
84
+ */
85
+ function getRpcUrl(environment) {
86
+ return getRpcUrls(environment)[0];
87
+ }
88
+ function getRpcUrls(environment) {
89
+ if (environment === "local")
90
+ return ["http://127.0.0.1:8899"];
91
+ const urls = uniqueRpcUrls([
92
+ process.env.IRONFORGE_API_KEY ? ironforgeRpcUrl(process.env.IRONFORGE_API_KEY) : undefined,
93
+ process.env.RPC_URL,
94
+ process.env.HELIUS_API_KEY ? heliusRpcUrl(process.env.HELIUS_API_KEY) : undefined,
95
+ ]);
96
+ if (urls.length > 0)
97
+ return urls;
98
+ throw new Error("Non-local environment requires an RPC endpoint. " +
99
+ "Set RPC_URL, IRONFORGE_API_KEY, or HELIUS_API_KEY.");
100
+ }
101
+ /**
102
+ * Returns the preferred mainnet RPC URL while preserving a public fallback for
103
+ * local tools and tests that need mainnet reads without extra env setup.
104
+ */
105
+ function getMainnetRpcUrl() {
106
+ try {
107
+ return getRpcUrl("prod");
108
+ }
109
+ catch {
110
+ return PUBLIC_MAINNET_RPC_URL;
111
+ }
112
+ }
113
+ /** Redact API key query params for logs (Helius, Ironforge, etc.). */
114
+ function redactRpcUrlForLog(url) {
115
+ return url.replace(/([?&]api-key=)[^&]*/gi, "$1…").replace(/([?&]apiKey=)[^&]*/gi, "$1…");
116
+ }
117
+ function uniqueRpcUrls(urls) {
118
+ const seen = new Set();
119
+ const unique = [];
120
+ for (const url of urls) {
121
+ if (!url)
122
+ continue;
123
+ const normalized = url.trim();
124
+ if (!normalized || seen.has(normalized))
125
+ continue;
126
+ seen.add(normalized);
127
+ unique.push(normalized);
128
+ }
129
+ return unique;
130
+ }
@@ -0,0 +1,23 @@
1
+ import { type Address, type KeyPairSigner, type Rpc, type Signature, type SolanaRpcApi, type TransactionSigner } from "@solana/kit";
2
+ import { Keypair } from "@solana/web3.js";
3
+ export declare function createSignerFromAddress(address: Address): TransactionSigner;
4
+ export declare function getSlot(rpc: Rpc<SolanaRpcApi>): Promise<bigint>;
5
+ export declare function isTransactionSigner(x: unknown): x is TransactionSigner;
6
+ /** Raw secret key bytes from a Solana CLI JSON keypair file. */
7
+ export declare function readLocalKeypairSecret(keypairPath: string): Uint8Array;
8
+ /**
9
+ * Loads a Solana keypair signer from a JSON file on disk.
10
+ * @param keypairPath - Path to the JSON keypair file (e.g. ~/.config/solana/tp-id.json)
11
+ */
12
+ export declare function loadLocalKeypair(keypairPath?: string): Promise<KeyPairSigner>;
13
+ /**
14
+ * Same keypair file as {@link loadLocalKeypair}, returned as both a Kit signer and a
15
+ * `@solana/web3.js` {@link Keypair} for Anchor (`AnchorProvider` / `Wallet`).
16
+ *
17
+ * Kit's `KeyPairSigner.keyPair` is a Web Crypto `CryptoKeyPair`, not a web3.js `Keypair`.
18
+ */
19
+ export declare function loadLocalKeypairWithWeb3(keypairPath?: string): Promise<{
20
+ signer: KeyPairSigner;
21
+ web3Keypair: Keypair;
22
+ }>;
23
+ export declare function logTxMessages(rpc: Rpc<SolanaRpcApi>, sig: Signature): Promise<void>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createSignerFromAddress = createSignerFromAddress;
7
+ exports.getSlot = getSlot;
8
+ exports.isTransactionSigner = isTransactionSigner;
9
+ exports.readLocalKeypairSecret = readLocalKeypairSecret;
10
+ exports.loadLocalKeypair = loadLocalKeypair;
11
+ exports.loadLocalKeypairWithWeb3 = loadLocalKeypairWithWeb3;
12
+ exports.logTxMessages = logTxMessages;
13
+ const kit_1 = require("@solana/kit");
14
+ const web3_js_1 = require("@solana/web3.js");
15
+ const fs_1 = __importDefault(require("fs"));
16
+ const general_1 = require("./general");
17
+ function createSignerFromAddress(address) {
18
+ return { address };
19
+ }
20
+ async function getSlot(rpc) {
21
+ return rpc.getSlot({ commitment: "confirmed" }).send();
22
+ }
23
+ function isTransactionSigner(x) {
24
+ return (typeof x === "object" &&
25
+ x !== null &&
26
+ "address" in x &&
27
+ typeof x.address === "string");
28
+ }
29
+ /** Raw secret key bytes from a Solana CLI JSON keypair file. */
30
+ function readLocalKeypairSecret(keypairPath) {
31
+ const walletData = JSON.parse(fs_1.default.readFileSync((0, general_1.resolveFp)(keypairPath), "utf-8"));
32
+ return new Uint8Array(walletData);
33
+ }
34
+ /**
35
+ * Loads a Solana keypair signer from a JSON file on disk.
36
+ * @param keypairPath - Path to the JSON keypair file (e.g. ~/.config/solana/tp-id.json)
37
+ */
38
+ async function loadLocalKeypair(keypairPath = "~/.config/solana/tp-id.json") {
39
+ return (0, kit_1.createKeyPairSignerFromBytes)(readLocalKeypairSecret(keypairPath), true);
40
+ }
41
+ /**
42
+ * Same keypair file as {@link loadLocalKeypair}, returned as both a Kit signer and a
43
+ * `@solana/web3.js` {@link Keypair} for Anchor (`AnchorProvider` / `Wallet`).
44
+ *
45
+ * Kit's `KeyPairSigner.keyPair` is a Web Crypto `CryptoKeyPair`, not a web3.js `Keypair`.
46
+ */
47
+ async function loadLocalKeypairWithWeb3(keypairPath = "~/.config/solana/tp-id.json") {
48
+ const secret = readLocalKeypairSecret(keypairPath);
49
+ const signer = await (0, kit_1.createKeyPairSignerFromBytes)(secret, true);
50
+ const web3Keypair = web3_js_1.Keypair.fromSecretKey(secret);
51
+ return { signer, web3Keypair };
52
+ }
53
+ async function logTxMessages(rpc, sig) {
54
+ const info = await rpc
55
+ .getTransaction(sig, {
56
+ commitment: "confirmed",
57
+ encoding: "base64",
58
+ })
59
+ .send();
60
+ console.log((info?.meta?.logMessages ?? []).join("\n"));
61
+ }
@@ -0,0 +1,18 @@
1
+ export interface PriceSnapshot {
2
+ timestamp: number;
3
+ price: number;
4
+ }
5
+ /**
6
+ * Binary-search for the snapshot closest to (but not after) `targetTimestamp`.
7
+ *
8
+ * Assumes `snapshots` are sorted ascending by timestamp.
9
+ * Returns `undefined` if no snapshot exists at or before the target.
10
+ */
11
+ export declare function findNearestSnapshot(snapshots: PriceSnapshot[], targetTimestamp: number): PriceSnapshot | undefined;
12
+ /**
13
+ * Filter to only midnight-UTC snapshots (one per day).
14
+ *
15
+ * Midnight snapshots have no DynamoDB TTL and are retained forever, producing
16
+ * a stable daily series that survives hourly data expiry.
17
+ */
18
+ export declare function filterDailySnapshots(snapshots: PriceSnapshot[]): PriceSnapshot[];