@kestrelfi/lyc-sdk 1.0.1 → 1.0.3

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 (738) hide show
  1. package/README.md +32 -0
  2. package/dist/carry-XU3WUD22.mjs +20 -0
  3. package/dist/carry-XU3WUD22.mjs.map +1 -0
  4. package/dist/chunk-2T23QQCX.mjs +3707 -0
  5. package/dist/chunk-2T23QQCX.mjs.map +1 -0
  6. package/dist/chunk-GOW6CARW.mjs +3969 -0
  7. package/dist/chunk-GOW6CARW.mjs.map +1 -0
  8. package/dist/chunk-ZPXXY3QV.mjs +9330 -0
  9. package/dist/chunk-ZPXXY3QV.mjs.map +1 -0
  10. package/dist/{sdks/long-yield-carry/src/idl/long_yield_carry.d.ts → core-DP6wfpME.d.mts} +3242 -84
  11. package/dist/core-DP6wfpME.d.ts +10485 -0
  12. package/dist/core.d.mts +8 -0
  13. package/dist/core.d.ts +8 -0
  14. package/dist/core.js +12348 -0
  15. package/dist/core.js.map +1 -0
  16. package/dist/core.mjs +72 -0
  17. package/dist/core.mjs.map +1 -0
  18. package/dist/index.d.mts +2537 -0
  19. package/dist/index.d.ts +2537 -0
  20. package/dist/index.js +23884 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/index.mjs +5898 -0
  23. package/dist/index.mjs.map +1 -0
  24. package/package.json +56 -10
  25. package/.env.example +0 -11
  26. package/dist/sdks/long-yield-carry/scripts/asyncBurn.d.ts +0 -1
  27. package/dist/sdks/long-yield-carry/scripts/asyncBurn.js +0 -117
  28. package/dist/sdks/long-yield-carry/scripts/burnToken.d.ts +0 -1
  29. package/dist/sdks/long-yield-carry/scripts/burnToken.js +0 -98
  30. package/dist/sdks/long-yield-carry/scripts/claimIncentives.d.ts +0 -1
  31. package/dist/sdks/long-yield-carry/scripts/claimIncentives.js +0 -108
  32. package/dist/sdks/long-yield-carry/scripts/closeCpiPlans.d.ts +0 -1
  33. package/dist/sdks/long-yield-carry/scripts/closeCpiPlans.js +0 -93
  34. package/dist/sdks/long-yield-carry/scripts/collectInterest.d.ts +0 -1
  35. package/dist/sdks/long-yield-carry/scripts/collectInterest.js +0 -164
  36. package/dist/sdks/long-yield-carry/scripts/collectProtocolFees.d.ts +0 -1
  37. package/dist/sdks/long-yield-carry/scripts/collectProtocolFees.js +0 -120
  38. package/dist/sdks/long-yield-carry/scripts/computeOptimalAllocations.d.ts +0 -1
  39. package/dist/sdks/long-yield-carry/scripts/computeOptimalAllocations.js +0 -84
  40. package/dist/sdks/long-yield-carry/scripts/createToken.d.ts +0 -1
  41. package/dist/sdks/long-yield-carry/scripts/createToken.js +0 -76
  42. package/dist/sdks/long-yield-carry/scripts/createTokenLendingPosition.d.ts +0 -1
  43. package/dist/sdks/long-yield-carry/scripts/createTokenLendingPosition.js +0 -157
  44. package/dist/sdks/long-yield-carry/scripts/createYieldingBank.d.ts +0 -1
  45. package/dist/sdks/long-yield-carry/scripts/createYieldingBank.js +0 -69
  46. package/dist/sdks/long-yield-carry/scripts/decreaseCarryPositions.d.ts +0 -1
  47. package/dist/sdks/long-yield-carry/scripts/decreaseCarryPositions.js +0 -247
  48. package/dist/sdks/long-yield-carry/scripts/depositUnlentCollateral.d.ts +0 -1
  49. package/dist/sdks/long-yield-carry/scripts/depositUnlentCollateral.js +0 -90
  50. package/dist/sdks/long-yield-carry/scripts/emergency/deleverageAll.d.ts +0 -1
  51. package/dist/sdks/long-yield-carry/scripts/emergency/deleverageAll.js +0 -202
  52. package/dist/sdks/long-yield-carry/scripts/emergency/triggerCircuitBreaker.d.ts +0 -1
  53. package/dist/sdks/long-yield-carry/scripts/emergency/triggerCircuitBreaker.js +0 -68
  54. package/dist/sdks/long-yield-carry/scripts/env.d.ts +0 -1
  55. package/dist/sdks/long-yield-carry/scripts/env.js +0 -8
  56. package/dist/sdks/long-yield-carry/scripts/findTxs.d.ts +0 -1
  57. package/dist/sdks/long-yield-carry/scripts/findTxs.js +0 -143
  58. package/dist/sdks/long-yield-carry/scripts/increaseCarryPositions.d.ts +0 -1
  59. package/dist/sdks/long-yield-carry/scripts/increaseCarryPositions.js +0 -112
  60. package/dist/sdks/long-yield-carry/scripts/inspect/format.d.ts +0 -13
  61. package/dist/sdks/long-yield-carry/scripts/inspect/format.js +0 -363
  62. package/dist/sdks/long-yield-carry/scripts/inspect.d.ts +0 -1
  63. package/dist/sdks/long-yield-carry/scripts/inspect.js +0 -108
  64. package/dist/sdks/long-yield-carry/scripts/localUtils.d.ts +0 -53
  65. package/dist/sdks/long-yield-carry/scripts/localUtils.js +0 -191
  66. package/dist/sdks/long-yield-carry/scripts/mintToken.d.ts +0 -1
  67. package/dist/sdks/long-yield-carry/scripts/mintToken.js +0 -103
  68. package/dist/sdks/long-yield-carry/scripts/processAsyncBurns.d.ts +0 -1
  69. package/dist/sdks/long-yield-carry/scripts/processAsyncBurns.js +0 -76
  70. package/dist/sdks/long-yield-carry/scripts/rebalanceToken.d.ts +0 -1
  71. package/dist/sdks/long-yield-carry/scripts/rebalanceToken.js +0 -210
  72. package/dist/sdks/long-yield-carry/scripts/rebalanceYieldingBank.d.ts +0 -1
  73. package/dist/sdks/long-yield-carry/scripts/rebalanceYieldingBank.js +0 -149
  74. package/dist/sdks/long-yield-carry/scripts/recollateralizeLoss.d.ts +0 -1
  75. package/dist/sdks/long-yield-carry/scripts/recollateralizeLoss.js +0 -64
  76. package/dist/sdks/long-yield-carry/scripts/refresh.d.ts +0 -1
  77. package/dist/sdks/long-yield-carry/scripts/refresh.js +0 -101
  78. package/dist/sdks/long-yield-carry/scripts/updateFees.d.ts +0 -1
  79. package/dist/sdks/long-yield-carry/scripts/updateFees.js +0 -369
  80. package/dist/sdks/long-yield-carry/scripts/updateGeneralLut.d.ts +0 -1
  81. package/dist/sdks/long-yield-carry/scripts/updateGeneralLut.js +0 -27
  82. package/dist/sdks/long-yield-carry/scripts/updateLendingPositionConfig.d.ts +0 -1
  83. package/dist/sdks/long-yield-carry/scripts/updateLendingPositionConfig.js +0 -127
  84. package/dist/sdks/long-yield-carry/scripts/updateTokenLuts.d.ts +0 -1
  85. package/dist/sdks/long-yield-carry/scripts/updateTokenLuts.js +0 -27
  86. package/dist/sdks/long-yield-carry/scripts/updateTokenMetadata.d.ts +0 -1
  87. package/dist/sdks/long-yield-carry/scripts/updateTokenMetadata.js +0 -194
  88. package/dist/sdks/long-yield-carry/scripts/updateYieldingBankConfig.d.ts +0 -1
  89. package/dist/sdks/long-yield-carry/scripts/updateYieldingBankConfig.js +0 -84
  90. package/dist/sdks/long-yield-carry/scripts/withdrawUnlentCollateral.d.ts +0 -1
  91. package/dist/sdks/long-yield-carry/scripts/withdrawUnlentCollateral.js +0 -140
  92. package/dist/sdks/long-yield-carry/src/client/account.d.ts +0 -152
  93. package/dist/sdks/long-yield-carry/src/client/account.js +0 -349
  94. package/dist/sdks/long-yield-carry/src/client/builders/args.d.ts +0 -299
  95. package/dist/sdks/long-yield-carry/src/client/builders/args.js +0 -2
  96. package/dist/sdks/long-yield-carry/src/client/builders/asyncBurnBuilder.d.ts +0 -20
  97. package/dist/sdks/long-yield-carry/src/client/builders/asyncBurnBuilder.js +0 -212
  98. package/dist/sdks/long-yield-carry/src/client/builders/base.d.ts +0 -77
  99. package/dist/sdks/long-yield-carry/src/client/builders/base.js +0 -191
  100. package/dist/sdks/long-yield-carry/src/client/builders/burnTokenBuilder.d.ts +0 -18
  101. package/dist/sdks/long-yield-carry/src/client/builders/burnTokenBuilder.js +0 -165
  102. package/dist/sdks/long-yield-carry/src/client/builders/claimIncentivesBuilder.d.ts +0 -9
  103. package/dist/sdks/long-yield-carry/src/client/builders/claimIncentivesBuilder.js +0 -135
  104. package/dist/sdks/long-yield-carry/src/client/builders/collectFeesBuilder.d.ts +0 -14
  105. package/dist/sdks/long-yield-carry/src/client/builders/collectFeesBuilder.js +0 -50
  106. package/dist/sdks/long-yield-carry/src/client/builders/collectInterestBuilder.d.ts +0 -8
  107. package/dist/sdks/long-yield-carry/src/client/builders/collectInterestBuilder.js +0 -86
  108. package/dist/sdks/long-yield-carry/src/client/builders/createCpiPlanBuilder.d.ts +0 -6
  109. package/dist/sdks/long-yield-carry/src/client/builders/createCpiPlanBuilder.js +0 -22
  110. package/dist/sdks/long-yield-carry/src/client/builders/createTokenBuilder.d.ts +0 -7
  111. package/dist/sdks/long-yield-carry/src/client/builders/createTokenBuilder.js +0 -64
  112. package/dist/sdks/long-yield-carry/src/client/builders/createTokenLendingPositionBuilder.d.ts +0 -10
  113. package/dist/sdks/long-yield-carry/src/client/builders/createTokenLendingPositionBuilder.js +0 -138
  114. package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankAllocationBuilder.d.ts +0 -7
  115. package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankAllocationBuilder.js +0 -29
  116. package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankBuilder.d.ts +0 -7
  117. package/dist/sdks/long-yield-carry/src/client/builders/createYieldingBankBuilder.js +0 -39
  118. package/dist/sdks/long-yield-carry/src/client/builders/decreaseCarryPositionBuilder.d.ts +0 -30
  119. package/dist/sdks/long-yield-carry/src/client/builders/decreaseCarryPositionBuilder.js +0 -99
  120. package/dist/sdks/long-yield-carry/src/client/builders/depositUnlentCollateralBuilder.d.ts +0 -8
  121. package/dist/sdks/long-yield-carry/src/client/builders/depositUnlentCollateralBuilder.js +0 -64
  122. package/dist/sdks/long-yield-carry/src/client/builders/increaseCarryPositionBuilder.d.ts +0 -8
  123. package/dist/sdks/long-yield-carry/src/client/builders/increaseCarryPositionBuilder.js +0 -73
  124. package/dist/sdks/long-yield-carry/src/client/builders/index.d.ts +0 -28
  125. package/dist/sdks/long-yield-carry/src/client/builders/index.js +0 -62
  126. package/dist/sdks/long-yield-carry/src/client/builders/mintTokenBuilder.d.ts +0 -8
  127. package/dist/sdks/long-yield-carry/src/client/builders/mintTokenBuilder.js +0 -95
  128. package/dist/sdks/long-yield-carry/src/client/builders/rebalanceTokenBuilder.d.ts +0 -11
  129. package/dist/sdks/long-yield-carry/src/client/builders/rebalanceTokenBuilder.js +0 -255
  130. package/dist/sdks/long-yield-carry/src/client/builders/rebalanceYieldingBankBuilder.d.ts +0 -8
  131. package/dist/sdks/long-yield-carry/src/client/builders/rebalanceYieldingBankBuilder.js +0 -75
  132. package/dist/sdks/long-yield-carry/src/client/builders/recollateralizeLossBuilder.d.ts +0 -12
  133. package/dist/sdks/long-yield-carry/src/client/builders/recollateralizeLossBuilder.js +0 -220
  134. package/dist/sdks/long-yield-carry/src/client/builders/refreshTokenStateBuilder.d.ts +0 -9
  135. package/dist/sdks/long-yield-carry/src/client/builders/refreshTokenStateBuilder.js +0 -112
  136. package/dist/sdks/long-yield-carry/src/client/builders/refreshTokensBuilder.d.ts +0 -9
  137. package/dist/sdks/long-yield-carry/src/client/builders/refreshTokensBuilder.js +0 -59
  138. package/dist/sdks/long-yield-carry/src/client/builders/refreshYieldingBankBuilder.d.ts +0 -8
  139. package/dist/sdks/long-yield-carry/src/client/builders/refreshYieldingBankBuilder.js +0 -29
  140. package/dist/sdks/long-yield-carry/src/client/builders/resetTokenBurnRateLimitBuilder.d.ts +0 -7
  141. package/dist/sdks/long-yield-carry/src/client/builders/resetTokenBurnRateLimitBuilder.js +0 -19
  142. package/dist/sdks/long-yield-carry/src/client/builders/setTokenCircuitBreakerBuilder.d.ts +0 -11
  143. package/dist/sdks/long-yield-carry/src/client/builders/setTokenCircuitBreakerBuilder.js +0 -31
  144. package/dist/sdks/long-yield-carry/src/client/builders/setYieldingBankCircuitBreakerBuilder.d.ts +0 -8
  145. package/dist/sdks/long-yield-carry/src/client/builders/setYieldingBankCircuitBreakerBuilder.js +0 -28
  146. package/dist/sdks/long-yield-carry/src/client/builders/updateLendingPositionConfigBuilder.d.ts +0 -10
  147. package/dist/sdks/long-yield-carry/src/client/builders/updateLendingPositionConfigBuilder.js +0 -30
  148. package/dist/sdks/long-yield-carry/src/client/builders/updateTokenConfigurationBuilder.d.ts +0 -11
  149. package/dist/sdks/long-yield-carry/src/client/builders/updateTokenConfigurationBuilder.js +0 -47
  150. package/dist/sdks/long-yield-carry/src/client/builders/updateTokenMetadataBuilder.d.ts +0 -7
  151. package/dist/sdks/long-yield-carry/src/client/builders/updateTokenMetadataBuilder.js +0 -24
  152. package/dist/sdks/long-yield-carry/src/client/builders/updateYieldingBankConfigBuilder.d.ts +0 -10
  153. package/dist/sdks/long-yield-carry/src/client/builders/updateYieldingBankConfigBuilder.js +0 -31
  154. package/dist/sdks/long-yield-carry/src/client/builders/utils.d.ts +0 -4
  155. package/dist/sdks/long-yield-carry/src/client/builders/utils.js +0 -20
  156. package/dist/sdks/long-yield-carry/src/client/client.d.ts +0 -115
  157. package/dist/sdks/long-yield-carry/src/client/client.js +0 -166
  158. package/dist/sdks/long-yield-carry/src/client/externalLiquidityResolver.d.ts +0 -13
  159. package/dist/sdks/long-yield-carry/src/client/externalLiquidityResolver.js +0 -34
  160. package/dist/sdks/long-yield-carry/src/client/index.d.ts +0 -10
  161. package/dist/sdks/long-yield-carry/src/client/index.js +0 -33
  162. package/dist/sdks/long-yield-carry/src/client/lendingPlatformClients.d.ts +0 -19
  163. package/dist/sdks/long-yield-carry/src/client/lendingPlatformClients.js +0 -33
  164. package/dist/sdks/long-yield-carry/src/client/pda.d.ts +0 -33
  165. package/dist/sdks/long-yield-carry/src/client/pda.js +0 -79
  166. package/dist/sdks/long-yield-carry/src/client/plans/collectInterest.d.ts +0 -24
  167. package/dist/sdks/long-yield-carry/src/client/plans/collectInterest.js +0 -150
  168. package/dist/sdks/long-yield-carry/src/client/plans/decreaseCarryPosition.d.ts +0 -12
  169. package/dist/sdks/long-yield-carry/src/client/plans/decreaseCarryPosition.js +0 -140
  170. package/dist/sdks/long-yield-carry/src/client/routes/collectInterest.d.ts +0 -13
  171. package/dist/sdks/long-yield-carry/src/client/routes/collectInterest.js +0 -39
  172. package/dist/sdks/long-yield-carry/src/client/transaction.d.ts +0 -41
  173. package/dist/sdks/long-yield-carry/src/client/transaction.js +0 -55
  174. package/dist/sdks/long-yield-carry/src/client/types/builders.d.ts +0 -18
  175. package/dist/sdks/long-yield-carry/src/client/types/builders.js +0 -2
  176. package/dist/sdks/long-yield-carry/src/client/types/enums.d.ts +0 -22
  177. package/dist/sdks/long-yield-carry/src/client/types/enums.js +0 -48
  178. package/dist/sdks/long-yield-carry/src/client/types/general.d.ts +0 -98
  179. package/dist/sdks/long-yield-carry/src/client/types/general.js +0 -2
  180. package/dist/sdks/long-yield-carry/src/client/types/index.d.ts +0 -6
  181. package/dist/sdks/long-yield-carry/src/client/types/index.js +0 -22
  182. package/dist/sdks/long-yield-carry/src/client/types/ix.d.ts +0 -352
  183. package/dist/sdks/long-yield-carry/src/client/types/ix.js +0 -2
  184. package/dist/sdks/long-yield-carry/src/client/types/planTypes/collectInterest.d.ts +0 -91
  185. package/dist/sdks/long-yield-carry/src/client/types/planTypes/collectInterest.js +0 -2
  186. package/dist/sdks/long-yield-carry/src/client/types/planTypes/common.d.ts +0 -28
  187. package/dist/sdks/long-yield-carry/src/client/types/planTypes/common.js +0 -2
  188. package/dist/sdks/long-yield-carry/src/client/types/planTypes/decreaseCarryPosition.d.ts +0 -128
  189. package/dist/sdks/long-yield-carry/src/client/types/planTypes/decreaseCarryPosition.js +0 -2
  190. package/dist/sdks/long-yield-carry/src/client/types/planTypes/index.d.ts +0 -3
  191. package/dist/sdks/long-yield-carry/src/client/types/planTypes/index.js +0 -19
  192. package/dist/sdks/long-yield-carry/src/client/types/tx.d.ts +0 -339
  193. package/dist/sdks/long-yield-carry/src/client/types/tx.js +0 -2
  194. package/dist/sdks/long-yield-carry/src/constants/configs/allocations.d.ts +0 -3
  195. package/dist/sdks/long-yield-carry/src/constants/configs/allocations.js +0 -23
  196. package/dist/sdks/long-yield-carry/src/constants/configs/carryTradePresets.d.ts +0 -58
  197. package/dist/sdks/long-yield-carry/src/constants/configs/carryTradePresets.js +0 -116
  198. package/dist/sdks/long-yield-carry/src/constants/configs/index.d.ts +0 -2
  199. package/dist/sdks/long-yield-carry/src/constants/configs/index.js +0 -18
  200. package/dist/sdks/long-yield-carry/src/constants/general.d.ts +0 -70
  201. package/dist/sdks/long-yield-carry/src/constants/general.js +0 -107
  202. package/dist/sdks/long-yield-carry/src/constants/index.d.ts +0 -3
  203. package/dist/sdks/long-yield-carry/src/constants/index.js +0 -19
  204. package/dist/sdks/long-yield-carry/src/constants/lycTokenMetadata.d.ts +0 -36
  205. package/dist/sdks/long-yield-carry/src/constants/lycTokenMetadata.js +0 -41
  206. package/dist/sdks/long-yield-carry/src/decoders/decodeTransaction.d.ts +0 -86
  207. package/dist/sdks/long-yield-carry/src/decoders/decodeTransaction.js +0 -230
  208. package/dist/sdks/long-yield-carry/src/decoders/discriminators.d.ts +0 -8
  209. package/dist/sdks/long-yield-carry/src/decoders/discriminators.js +0 -11
  210. package/dist/sdks/long-yield-carry/src/decoders/idlAccounts.d.ts +0 -29
  211. package/dist/sdks/long-yield-carry/src/decoders/idlAccounts.js +0 -57
  212. package/dist/sdks/long-yield-carry/src/decoders/index.d.ts +0 -6
  213. package/dist/sdks/long-yield-carry/src/decoders/index.js +0 -14
  214. package/dist/sdks/long-yield-carry/src/decoders/innerCpis.d.ts +0 -68
  215. package/dist/sdks/long-yield-carry/src/decoders/innerCpis.js +0 -225
  216. package/dist/sdks/long-yield-carry/src/decoders/lycInstructionNames.d.ts +0 -6
  217. package/dist/sdks/long-yield-carry/src/decoders/lycInstructionNames.js +0 -73
  218. package/dist/sdks/long-yield-carry/src/decoders/programIds.d.ts +0 -4
  219. package/dist/sdks/long-yield-carry/src/decoders/programIds.js +0 -11
  220. package/dist/sdks/long-yield-carry/src/decoders/solana.d.ts +0 -7
  221. package/dist/sdks/long-yield-carry/src/decoders/solana.js +0 -30
  222. package/dist/sdks/long-yield-carry/src/decoders/transactionPayload.d.ts +0 -41
  223. package/dist/sdks/long-yield-carry/src/decoders/transactionPayload.js +0 -6
  224. package/dist/sdks/long-yield-carry/src/decoders/types.d.ts +0 -58
  225. package/dist/sdks/long-yield-carry/src/decoders/types.js +0 -2
  226. package/dist/sdks/long-yield-carry/src/errors.d.ts +0 -69
  227. package/dist/sdks/long-yield-carry/src/errors.js +0 -183
  228. package/dist/sdks/long-yield-carry/src/idl/long_yield_carry.js +0 -7323
  229. package/dist/sdks/long-yield-carry/src/index.d.ts +0 -10
  230. package/dist/sdks/long-yield-carry/src/index.js +0 -25
  231. package/dist/sdks/long-yield-carry/src/metrics/index.d.ts +0 -1
  232. package/dist/sdks/long-yield-carry/src/metrics/index.js +0 -17
  233. package/dist/sdks/long-yield-carry/src/metrics/protocolMetrics.d.ts +0 -276
  234. package/dist/sdks/long-yield-carry/src/metrics/protocolMetrics.js +0 -547
  235. package/dist/sdks/long-yield-carry/src/models/index.d.ts +0 -3
  236. package/dist/sdks/long-yield-carry/src/models/index.js +0 -7
  237. package/dist/sdks/long-yield-carry/src/models/lycToken.d.ts +0 -156
  238. package/dist/sdks/long-yield-carry/src/models/lycToken.js +0 -288
  239. package/dist/sdks/long-yield-carry/src/models/yieldingBank.d.ts +0 -52
  240. package/dist/sdks/long-yield-carry/src/models/yieldingBank.js +0 -109
  241. package/dist/sdks/long-yield-carry/src/services/allocation/allocationService.d.ts +0 -106
  242. package/dist/sdks/long-yield-carry/src/services/allocation/allocationService.js +0 -589
  243. package/dist/sdks/long-yield-carry/src/services/allocation/index.d.ts +0 -2
  244. package/dist/sdks/long-yield-carry/src/services/allocation/index.js +0 -18
  245. package/dist/sdks/long-yield-carry/src/services/allocation/types.d.ts +0 -25
  246. package/dist/sdks/long-yield-carry/src/services/allocation/types.js +0 -2
  247. package/dist/sdks/long-yield-carry/src/services/carry/carryAllocationConfig.d.ts +0 -103
  248. package/dist/sdks/long-yield-carry/src/services/carry/carryAllocationConfig.js +0 -146
  249. package/dist/sdks/long-yield-carry/src/services/carry/index.d.ts +0 -2
  250. package/dist/sdks/long-yield-carry/src/services/carry/index.js +0 -18
  251. package/dist/sdks/long-yield-carry/src/services/carry/lycLendingPositionManager.d.ts +0 -39
  252. package/dist/sdks/long-yield-carry/src/services/carry/lycLendingPositionManager.js +0 -100
  253. package/dist/sdks/long-yield-carry/src/services/index.d.ts +0 -5
  254. package/dist/sdks/long-yield-carry/src/services/index.js +0 -21
  255. package/dist/sdks/long-yield-carry/src/services/lendingPosition/index.d.ts +0 -2
  256. package/dist/sdks/long-yield-carry/src/services/lendingPosition/index.js +0 -5
  257. package/dist/sdks/long-yield-carry/src/services/lendingPosition/lendingPositionService.d.ts +0 -88
  258. package/dist/sdks/long-yield-carry/src/services/lendingPosition/lendingPositionService.js +0 -229
  259. package/dist/sdks/long-yield-carry/src/services/rebalance/index.d.ts +0 -2
  260. package/dist/sdks/long-yield-carry/src/services/rebalance/index.js +0 -18
  261. package/dist/sdks/long-yield-carry/src/services/rebalance/token/index.d.ts +0 -1
  262. package/dist/sdks/long-yield-carry/src/services/rebalance/token/index.js +0 -17
  263. package/dist/sdks/long-yield-carry/src/services/rebalance/token/tokenRebalanceService.d.ts +0 -51
  264. package/dist/sdks/long-yield-carry/src/services/rebalance/token/tokenRebalanceService.js +0 -99
  265. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/index.d.ts +0 -3
  266. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/index.js +0 -21
  267. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/planner.d.ts +0 -68
  268. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/planner.js +0 -181
  269. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/strategy.d.ts +0 -26
  270. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/strategy.js +0 -26
  271. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/types.d.ts +0 -40
  272. package/dist/sdks/long-yield-carry/src/services/rebalance/yieldingBank/types.js +0 -2
  273. package/dist/sdks/long-yield-carry/src/services/redemption/index.d.ts +0 -2
  274. package/dist/sdks/long-yield-carry/src/services/redemption/index.js +0 -5
  275. package/dist/sdks/long-yield-carry/src/services/redemption/redemptionService.d.ts +0 -139
  276. package/dist/sdks/long-yield-carry/src/services/redemption/redemptionService.js +0 -532
  277. package/dist/sdks/long-yield-carry/src/types/enriched.d.ts +0 -168
  278. package/dist/sdks/long-yield-carry/src/types/enriched.js +0 -2
  279. package/dist/sdks/long-yield-carry/src/types/index.d.ts +0 -1
  280. package/dist/sdks/long-yield-carry/src/types/index.js +0 -17
  281. package/dist/sdks/long-yield-carry/src/utils/cache.d.ts +0 -4
  282. package/dist/sdks/long-yield-carry/src/utils/cache.js +0 -10
  283. package/dist/sdks/long-yield-carry/src/utils/data.d.ts +0 -12
  284. package/dist/sdks/long-yield-carry/src/utils/data.js +0 -59
  285. package/dist/sdks/long-yield-carry/src/utils/enrichment.d.ts +0 -5
  286. package/dist/sdks/long-yield-carry/src/utils/enrichment.js +0 -244
  287. package/dist/sdks/long-yield-carry/src/utils/feeDripMetrics.d.ts +0 -36
  288. package/dist/sdks/long-yield-carry/src/utils/feeDripMetrics.js +0 -93
  289. package/dist/sdks/long-yield-carry/src/utils/general.d.ts +0 -28
  290. package/dist/sdks/long-yield-carry/src/utils/general.js +0 -47
  291. package/dist/sdks/long-yield-carry/src/utils/index.d.ts +0 -13
  292. package/dist/sdks/long-yield-carry/src/utils/index.js +0 -29
  293. package/dist/sdks/long-yield-carry/src/utils/ix.d.ts +0 -83
  294. package/dist/sdks/long-yield-carry/src/utils/ix.js +0 -165
  295. package/dist/sdks/long-yield-carry/src/utils/lendingPosition.d.ts +0 -68
  296. package/dist/sdks/long-yield-carry/src/utils/lendingPosition.js +0 -105
  297. package/dist/sdks/long-yield-carry/src/utils/lookupTables.d.ts +0 -55
  298. package/dist/sdks/long-yield-carry/src/utils/lookupTables.js +0 -216
  299. package/dist/sdks/long-yield-carry/src/utils/lycData.d.ts +0 -66
  300. package/dist/sdks/long-yield-carry/src/utils/lycData.js +0 -211
  301. package/dist/sdks/long-yield-carry/src/utils/timelock.d.ts +0 -19
  302. package/dist/sdks/long-yield-carry/src/utils/timelock.js +0 -37
  303. package/dist/sdks/long-yield-carry/src/utils/tokenFeeMath.d.ts +0 -11
  304. package/dist/sdks/long-yield-carry/src/utils/tokenFeeMath.js +0 -24
  305. package/dist/sdks/long-yield-carry/src/utils/transactions.d.ts +0 -20
  306. package/dist/sdks/long-yield-carry/src/utils/transactions.js +0 -72
  307. package/dist/sdks/long-yield-carry/src/utils/yieldingBank.d.ts +0 -24
  308. package/dist/sdks/long-yield-carry/src/utils/yieldingBank.js +0 -36
  309. package/dist/shared/common/src/constants/accountMetas.d.ts +0 -3
  310. package/dist/shared/common/src/constants/accountMetas.js +0 -9
  311. package/dist/shared/common/src/constants/general.d.ts +0 -21
  312. package/dist/shared/common/src/constants/general.js +0 -30
  313. package/dist/shared/common/src/constants/generated/cpi.d.ts +0 -23
  314. package/dist/shared/common/src/constants/generated/cpi.js +0 -28
  315. package/dist/shared/common/src/constants/generated/index.d.ts +0 -1
  316. package/dist/shared/common/src/constants/generated/index.js +0 -17
  317. package/dist/shared/common/src/constants/index.d.ts +0 -3
  318. package/dist/shared/common/src/constants/index.js +0 -19
  319. package/dist/shared/common/src/index.d.ts +0 -4
  320. package/dist/shared/common/src/index.js +0 -20
  321. package/dist/shared/common/src/services/baseAccountClient.d.ts +0 -22
  322. package/dist/shared/common/src/services/baseAccountClient.js +0 -38
  323. package/dist/shared/common/src/services/baseIxBuilderService.d.ts +0 -27
  324. package/dist/shared/common/src/services/baseIxBuilderService.js +0 -48
  325. package/dist/shared/common/src/services/dataCache.d.ts +0 -41
  326. package/dist/shared/common/src/services/dataCache.js +0 -130
  327. package/dist/shared/common/src/services/index.d.ts +0 -8
  328. package/dist/shared/common/src/services/index.js +0 -24
  329. package/dist/shared/common/src/services/lutManager.d.ts +0 -31
  330. package/dist/shared/common/src/services/lutManager.js +0 -133
  331. package/dist/shared/common/src/services/mints/defaults.d.ts +0 -2
  332. package/dist/shared/common/src/services/mints/defaults.js +0 -152
  333. package/dist/shared/common/src/services/mints/index.d.ts +0 -4
  334. package/dist/shared/common/src/services/mints/index.js +0 -20
  335. package/dist/shared/common/src/services/mints/registry.d.ts +0 -70
  336. package/dist/shared/common/src/services/mints/registry.js +0 -117
  337. package/dist/shared/common/src/services/mints/symbols.d.ts +0 -6
  338. package/dist/shared/common/src/services/mints/symbols.js +0 -13
  339. package/dist/shared/common/src/services/mints/types.d.ts +0 -30
  340. package/dist/shared/common/src/services/mints/types.js +0 -2
  341. package/dist/shared/common/src/services/swap/index.d.ts +0 -4
  342. package/dist/shared/common/src/services/swap/index.js +0 -20
  343. package/dist/shared/common/src/services/swap/routableSwapClient.d.ts +0 -36
  344. package/dist/shared/common/src/services/swap/routableSwapClient.js +0 -2
  345. package/dist/shared/common/src/services/swap/swapClientBase.d.ts +0 -45
  346. package/dist/shared/common/src/services/swap/swapClientBase.js +0 -2
  347. package/dist/shared/common/src/services/swap/swapRouting.d.ts +0 -13
  348. package/dist/shared/common/src/services/swap/swapRouting.js +0 -28
  349. package/dist/shared/common/src/services/swap/types.d.ts +0 -77
  350. package/dist/shared/common/src/services/swap/types.js +0 -2
  351. package/dist/shared/common/src/services/token/index.d.ts +0 -2
  352. package/dist/shared/common/src/services/token/index.js +0 -18
  353. package/dist/shared/common/src/services/token/tokenProtocolClientBase.d.ts +0 -51
  354. package/dist/shared/common/src/services/token/tokenProtocolClientBase.js +0 -2
  355. package/dist/shared/common/src/services/token/types.d.ts +0 -19
  356. package/dist/shared/common/src/services/token/types.js +0 -2
  357. package/dist/shared/common/src/services/transactionSender.d.ts +0 -24
  358. package/dist/shared/common/src/services/transactionSender.js +0 -30
  359. package/dist/shared/common/src/types/cpi.d.ts +0 -34
  360. package/dist/shared/common/src/types/cpi.js +0 -8
  361. package/dist/shared/common/src/types/enums.d.ts +0 -59
  362. package/dist/shared/common/src/types/enums.js +0 -122
  363. package/dist/shared/common/src/types/general.d.ts +0 -38
  364. package/dist/shared/common/src/types/general.js +0 -2
  365. package/dist/shared/common/src/types/index.d.ts +0 -4
  366. package/dist/shared/common/src/types/index.js +0 -20
  367. package/dist/shared/common/src/types/solana.d.ts +0 -24
  368. package/dist/shared/common/src/types/solana.js +0 -2
  369. package/dist/shared/common/src/utils/accounts/index.d.ts +0 -5
  370. package/dist/shared/common/src/utils/accounts/index.js +0 -21
  371. package/dist/shared/common/src/utils/accounts/meta.d.ts +0 -21
  372. package/dist/shared/common/src/utils/accounts/meta.js +0 -27
  373. package/dist/shared/common/src/utils/accounts/pda.d.ts +0 -2
  374. package/dist/shared/common/src/utils/accounts/pda.js +0 -17
  375. package/dist/shared/common/src/utils/accounts/roles.d.ts +0 -26
  376. package/dist/shared/common/src/utils/accounts/roles.js +0 -54
  377. package/dist/shared/common/src/utils/accounts/rpc.d.ts +0 -8
  378. package/dist/shared/common/src/utils/accounts/rpc.js +0 -30
  379. package/dist/shared/common/src/utils/accounts/splBalances.d.ts +0 -15
  380. package/dist/shared/common/src/utils/accounts/splBalances.js +0 -52
  381. package/dist/shared/common/src/utils/anchor.d.ts +0 -17
  382. package/dist/shared/common/src/utils/anchor.js +0 -29
  383. package/dist/shared/common/src/utils/asyncConcurrency.d.ts +0 -5
  384. package/dist/shared/common/src/utils/asyncConcurrency.js +0 -28
  385. package/dist/shared/common/src/utils/compat.d.ts +0 -46
  386. package/dist/shared/common/src/utils/compat.js +0 -72
  387. package/dist/shared/common/src/utils/cpi/args.d.ts +0 -69
  388. package/dist/shared/common/src/utils/cpi/args.js +0 -100
  389. package/dist/shared/common/src/utils/cpi/index.d.ts +0 -2
  390. package/dist/shared/common/src/utils/cpi/index.js +0 -18
  391. package/dist/shared/common/src/utils/cpi/refs.d.ts +0 -122
  392. package/dist/shared/common/src/utils/cpi/refs.js +0 -234
  393. package/dist/shared/common/src/utils/data.d.ts +0 -20
  394. package/dist/shared/common/src/utils/data.js +0 -27
  395. package/dist/shared/common/src/utils/general.d.ts +0 -24
  396. package/dist/shared/common/src/utils/general.js +0 -95
  397. package/dist/shared/common/src/utils/index.d.ts +0 -22
  398. package/dist/shared/common/src/utils/index.js +0 -38
  399. package/dist/shared/common/src/utils/instruction.d.ts +0 -74
  400. package/dist/shared/common/src/utils/instruction.js +0 -147
  401. package/dist/shared/common/src/utils/jito.d.ts +0 -113
  402. package/dist/shared/common/src/utils/jito.js +0 -178
  403. package/dist/shared/common/src/utils/json.d.ts +0 -5
  404. package/dist/shared/common/src/utils/json.js +0 -25
  405. package/dist/shared/common/src/utils/jsonRpcFetch.d.ts +0 -21
  406. package/dist/shared/common/src/utils/jsonRpcFetch.js +0 -134
  407. package/dist/shared/common/src/utils/metadata.d.ts +0 -107
  408. package/dist/shared/common/src/utils/metadata.js +0 -194
  409. package/dist/shared/common/src/utils/numbers.d.ts +0 -72
  410. package/dist/shared/common/src/utils/numbers.js +0 -193
  411. package/dist/shared/common/src/utils/priorityFee.d.ts +0 -18
  412. package/dist/shared/common/src/utils/priorityFee.js +0 -63
  413. package/dist/shared/common/src/utils/retry.d.ts +0 -20
  414. package/dist/shared/common/src/utils/retry.js +0 -69
  415. package/dist/shared/common/src/utils/rpc.d.ts +0 -40
  416. package/dist/shared/common/src/utils/rpc.js +0 -130
  417. package/dist/shared/common/src/utils/solana.d.ts +0 -23
  418. package/dist/shared/common/src/utils/solana.js +0 -61
  419. package/dist/shared/common/src/utils/timeSeries.d.ts +0 -18
  420. package/dist/shared/common/src/utils/timeSeries.js +0 -40
  421. package/dist/shared/common/src/utils/token.d.ts +0 -33
  422. package/dist/shared/common/src/utils/token.js +0 -82
  423. package/dist/shared/common/src/utils/transaction.d.ts +0 -154
  424. package/dist/shared/common/src/utils/transaction.js +0 -585
  425. package/dist/shared/common/src/utils/transactionSplitter.d.ts +0 -85
  426. package/dist/shared/common/src/utils/transactionSplitter.js +0 -127
  427. package/dist/shared/common/src/utils/txAccountCoverage.d.ts +0 -49
  428. package/dist/shared/common/src/utils/txAccountCoverage.js +0 -122
  429. package/dist/shared/jupiter-helpers/src/api.d.ts +0 -59
  430. package/dist/shared/jupiter-helpers/src/api.js +0 -130
  431. package/dist/shared/jupiter-helpers/src/client.d.ts +0 -79
  432. package/dist/shared/jupiter-helpers/src/client.js +0 -173
  433. package/dist/shared/jupiter-helpers/src/constants.d.ts +0 -35
  434. package/dist/shared/jupiter-helpers/src/constants.js +0 -38
  435. package/dist/shared/jupiter-helpers/src/extract.d.ts +0 -30
  436. package/dist/shared/jupiter-helpers/src/extract.js +0 -57
  437. package/dist/shared/jupiter-helpers/src/index.d.ts +0 -5
  438. package/dist/shared/jupiter-helpers/src/index.js +0 -21
  439. package/dist/shared/jupiter-helpers/src/routePreInstructions.d.ts +0 -19
  440. package/dist/shared/jupiter-helpers/src/routePreInstructions.js +0 -61
  441. package/dist/shared/jupiter-helpers/src/sizeExactInForMinOutput.d.ts +0 -70
  442. package/dist/shared/jupiter-helpers/src/sizeExactInForMinOutput.js +0 -95
  443. package/dist/shared/jupiter-helpers/src/types.d.ts +0 -66
  444. package/dist/shared/jupiter-helpers/src/types.js +0 -2
  445. package/dist/shared/lending-platforms/src/constants/cache.d.ts +0 -8
  446. package/dist/shared/lending-platforms/src/constants/cache.js +0 -11
  447. package/dist/shared/lending-platforms/src/constants/index.d.ts +0 -3
  448. package/dist/shared/lending-platforms/src/constants/index.js +0 -19
  449. package/dist/shared/lending-platforms/src/constants/kamino.d.ts +0 -7
  450. package/dist/shared/lending-platforms/src/constants/kamino.js +0 -83
  451. package/dist/shared/lending-platforms/src/constants/lendingPosition.d.ts +0 -7
  452. package/dist/shared/lending-platforms/src/constants/lendingPosition.js +0 -10
  453. package/dist/shared/lending-platforms/src/data/accounts/index.d.ts +0 -2
  454. package/dist/shared/lending-platforms/src/data/accounts/index.js +0 -18
  455. package/dist/shared/lending-platforms/src/data/accounts/kamino.d.ts +0 -42
  456. package/dist/shared/lending-platforms/src/data/accounts/kamino.js +0 -104
  457. package/dist/shared/lending-platforms/src/data/accounts/lpAccountsBase.d.ts +0 -7
  458. package/dist/shared/lending-platforms/src/data/accounts/lpAccountsBase.js +0 -9
  459. package/dist/shared/lending-platforms/src/data/incentive/incentiveBase.d.ts +0 -35
  460. package/dist/shared/lending-platforms/src/data/incentive/incentiveBase.js +0 -26
  461. package/dist/shared/lending-platforms/src/data/incentive/index.d.ts +0 -2
  462. package/dist/shared/lending-platforms/src/data/incentive/index.js +0 -18
  463. package/dist/shared/lending-platforms/src/data/incentive/kamino.d.ts +0 -55
  464. package/dist/shared/lending-platforms/src/data/incentive/kamino.js +0 -101
  465. package/dist/shared/lending-platforms/src/data/index.d.ts +0 -6
  466. package/dist/shared/lending-platforms/src/data/index.js +0 -22
  467. package/dist/shared/lending-platforms/src/data/instructions/index.d.ts +0 -3
  468. package/dist/shared/lending-platforms/src/data/instructions/index.js +0 -19
  469. package/dist/shared/lending-platforms/src/data/instructions/kamino.d.ts +0 -55
  470. package/dist/shared/lending-platforms/src/data/instructions/kamino.js +0 -630
  471. package/dist/shared/lending-platforms/src/data/instructions/lpInstructionsBase.d.ts +0 -175
  472. package/dist/shared/lending-platforms/src/data/instructions/lpInstructionsBase.js +0 -192
  473. package/dist/shared/lending-platforms/src/data/instructions/types.d.ts +0 -7
  474. package/dist/shared/lending-platforms/src/data/instructions/types.js +0 -2
  475. package/dist/shared/lending-platforms/src/data/platform/index.d.ts +0 -2
  476. package/dist/shared/lending-platforms/src/data/platform/index.js +0 -18
  477. package/dist/shared/lending-platforms/src/data/platform/kamino.d.ts +0 -59
  478. package/dist/shared/lending-platforms/src/data/platform/kamino.js +0 -206
  479. package/dist/shared/lending-platforms/src/data/platform/lpDataBase.d.ts +0 -35
  480. package/dist/shared/lending-platforms/src/data/platform/lpDataBase.js +0 -31
  481. package/dist/shared/lending-platforms/src/data/reserve/index.d.ts +0 -2
  482. package/dist/shared/lending-platforms/src/data/reserve/index.js +0 -18
  483. package/dist/shared/lending-platforms/src/data/reserve/kamino.d.ts +0 -45
  484. package/dist/shared/lending-platforms/src/data/reserve/kamino.js +0 -141
  485. package/dist/shared/lending-platforms/src/data/reserve/reserveBase.d.ts +0 -114
  486. package/dist/shared/lending-platforms/src/data/reserve/reserveBase.js +0 -125
  487. package/dist/shared/lending-platforms/src/data/userPosition/index.d.ts +0 -2
  488. package/dist/shared/lending-platforms/src/data/userPosition/index.js +0 -18
  489. package/dist/shared/lending-platforms/src/data/userPosition/kamino.d.ts +0 -15
  490. package/dist/shared/lending-platforms/src/data/userPosition/kamino.js +0 -45
  491. package/dist/shared/lending-platforms/src/data/userPosition/userPositionBase.d.ts +0 -50
  492. package/dist/shared/lending-platforms/src/data/userPosition/userPositionBase.js +0 -63
  493. package/dist/shared/lending-platforms/src/index.d.ts +0 -5
  494. package/dist/shared/lending-platforms/src/index.js +0 -21
  495. package/dist/shared/lending-platforms/src/services/client/index.d.ts +0 -2
  496. package/dist/shared/lending-platforms/src/services/client/index.js +0 -18
  497. package/dist/shared/lending-platforms/src/services/client/kamino.d.ts +0 -53
  498. package/dist/shared/lending-platforms/src/services/client/kamino.js +0 -142
  499. package/dist/shared/lending-platforms/src/services/client/lpClientBase.d.ts +0 -66
  500. package/dist/shared/lending-platforms/src/services/client/lpClientBase.js +0 -19
  501. package/dist/shared/lending-platforms/src/services/flashLoan/flashLoanBase.d.ts +0 -49
  502. package/dist/shared/lending-platforms/src/services/flashLoan/flashLoanBase.js +0 -16
  503. package/dist/shared/lending-platforms/src/services/flashLoan/index.d.ts +0 -2
  504. package/dist/shared/lending-platforms/src/services/flashLoan/index.js +0 -18
  505. package/dist/shared/lending-platforms/src/services/flashLoan/kamino.d.ts +0 -11
  506. package/dist/shared/lending-platforms/src/services/flashLoan/kamino.js +0 -85
  507. package/dist/shared/lending-platforms/src/services/index.d.ts +0 -5
  508. package/dist/shared/lending-platforms/src/services/index.js +0 -21
  509. package/dist/shared/lending-platforms/src/services/lendingPosition/index.d.ts +0 -2
  510. package/dist/shared/lending-platforms/src/services/lendingPosition/index.js +0 -18
  511. package/dist/shared/lending-platforms/src/services/lendingPosition/lendingPositionManager.d.ts +0 -117
  512. package/dist/shared/lending-platforms/src/services/lendingPosition/lendingPositionManager.js +0 -342
  513. package/dist/shared/lending-platforms/src/services/lendingPosition/types.d.ts +0 -40
  514. package/dist/shared/lending-platforms/src/services/lendingPosition/types.js +0 -2
  515. package/dist/shared/lending-platforms/src/services/leverage/index.d.ts +0 -2
  516. package/dist/shared/lending-platforms/src/services/leverage/index.js +0 -18
  517. package/dist/shared/lending-platforms/src/services/leverage/leverageService.d.ts +0 -104
  518. package/dist/shared/lending-platforms/src/services/leverage/leverageService.js +0 -437
  519. package/dist/shared/lending-platforms/src/services/leverage/types.d.ts +0 -261
  520. package/dist/shared/lending-platforms/src/services/leverage/types.js +0 -2
  521. package/dist/shared/lending-platforms/src/services/reservesManager.d.ts +0 -53
  522. package/dist/shared/lending-platforms/src/services/reservesManager.js +0 -112
  523. package/dist/shared/lending-platforms/src/types/general.d.ts +0 -37
  524. package/dist/shared/lending-platforms/src/types/general.js +0 -8
  525. package/dist/shared/lending-platforms/src/types/index.d.ts +0 -2
  526. package/dist/shared/lending-platforms/src/types/index.js +0 -18
  527. package/dist/shared/lending-platforms/src/types/kamino.d.ts +0 -10
  528. package/dist/shared/lending-platforms/src/types/kamino.js +0 -2
  529. package/dist/shared/lending-platforms/src/utils/accounts.d.ts +0 -16
  530. package/dist/shared/lending-platforms/src/utils/accounts.js +0 -36
  531. package/dist/shared/lending-platforms/src/utils/cache.d.ts +0 -3
  532. package/dist/shared/lending-platforms/src/utils/cache.js +0 -11
  533. package/dist/shared/lending-platforms/src/utils/index.d.ts +0 -6
  534. package/dist/shared/lending-platforms/src/utils/index.js +0 -22
  535. package/dist/shared/lending-platforms/src/utils/kamino.d.ts +0 -87
  536. package/dist/shared/lending-platforms/src/utils/kamino.js +0 -190
  537. package/dist/shared/lending-platforms/src/utils/lendingPlatform.d.ts +0 -6
  538. package/dist/shared/lending-platforms/src/utils/lendingPlatform.js +0 -16
  539. package/dist/shared/lending-platforms/src/utils/math.d.ts +0 -47
  540. package/dist/shared/lending-platforms/src/utils/math.js +0 -123
  541. package/dist/shared/lending-platforms/src/utils/scope.d.ts +0 -38
  542. package/dist/shared/lending-platforms/src/utils/scope.js +0 -144
  543. package/dist/shared/oracle-service/src/constants/index.d.ts +0 -3
  544. package/dist/shared/oracle-service/src/constants/index.js +0 -19
  545. package/dist/shared/oracle-service/src/constants/pyth.d.ts +0 -7
  546. package/dist/shared/oracle-service/src/constants/pyth.js +0 -71
  547. package/dist/shared/oracle-service/src/constants/splStake.d.ts +0 -2
  548. package/dist/shared/oracle-service/src/constants/splStake.js +0 -6
  549. package/dist/shared/oracle-service/src/constants/switchboard.d.ts +0 -7
  550. package/dist/shared/oracle-service/src/constants/switchboard.js +0 -10
  551. package/dist/shared/oracle-service/src/feeds/custom.d.ts +0 -30
  552. package/dist/shared/oracle-service/src/feeds/custom.js +0 -56
  553. package/dist/shared/oracle-service/src/feeds/jupiter.d.ts +0 -7
  554. package/dist/shared/oracle-service/src/feeds/jupiter.js +0 -43
  555. package/dist/shared/oracle-service/src/feeds/priceBase.d.ts +0 -13
  556. package/dist/shared/oracle-service/src/feeds/priceBase.js +0 -25
  557. package/dist/shared/oracle-service/src/feeds/pyth.d.ts +0 -8
  558. package/dist/shared/oracle-service/src/feeds/pyth.js +0 -59
  559. package/dist/shared/oracle-service/src/feeds/splStake.d.ts +0 -26
  560. package/dist/shared/oracle-service/src/feeds/splStake.js +0 -99
  561. package/dist/shared/oracle-service/src/feeds/switchboard.d.ts +0 -6
  562. package/dist/shared/oracle-service/src/feeds/switchboard.js +0 -11
  563. package/dist/shared/oracle-service/src/index.d.ts +0 -5
  564. package/dist/shared/oracle-service/src/index.js +0 -26
  565. package/dist/shared/oracle-service/src/oracle.d.ts +0 -22
  566. package/dist/shared/oracle-service/src/oracle.js +0 -104
  567. package/dist/shared/oracle-service/src/types.d.ts +0 -4
  568. package/dist/shared/oracle-service/src/types.js +0 -2
  569. package/dist/shared/oracle-service/src/utils/general.d.ts +0 -20
  570. package/dist/shared/oracle-service/src/utils/general.js +0 -65
  571. package/dist/shared/oracle-service/src/utils/index.d.ts +0 -1
  572. package/dist/shared/oracle-service/src/utils/index.js +0 -17
  573. package/dist/shared/perena-helpers/src/accounts.d.ts +0 -7
  574. package/dist/shared/perena-helpers/src/accounts.js +0 -12
  575. package/dist/shared/perena-helpers/src/client.d.ts +0 -299
  576. package/dist/shared/perena-helpers/src/client.js +0 -680
  577. package/dist/shared/perena-helpers/src/constants.d.ts +0 -5
  578. package/dist/shared/perena-helpers/src/constants.js +0 -8
  579. package/dist/shared/perena-helpers/src/cpi/burn.d.ts +0 -27
  580. package/dist/shared/perena-helpers/src/cpi/burn.js +0 -22
  581. package/dist/shared/perena-helpers/src/cpi/index.d.ts +0 -3
  582. package/dist/shared/perena-helpers/src/cpi/index.js +0 -19
  583. package/dist/shared/perena-helpers/src/cpi/mint.d.ts +0 -27
  584. package/dist/shared/perena-helpers/src/cpi/mint.js +0 -22
  585. package/dist/shared/perena-helpers/src/cpi/requestUnstake.d.ts +0 -19
  586. package/dist/shared/perena-helpers/src/cpi/requestUnstake.js +0 -16
  587. package/dist/shared/perena-helpers/src/index.d.ts +0 -5
  588. package/dist/shared/perena-helpers/src/index.js +0 -21
  589. package/dist/shared/perena-helpers/src/utils.d.ts +0 -9
  590. package/dist/shared/perena-helpers/src/utils.js +0 -54
  591. package/dist/shared/swap-aggregator/src/aggSwapClient.d.ts +0 -71
  592. package/dist/shared/swap-aggregator/src/aggSwapClient.js +0 -103
  593. package/dist/shared/swap-aggregator/src/index.d.ts +0 -1
  594. package/dist/shared/swap-aggregator/src/index.js +0 -17
  595. package/docs/launchingToken.md +0 -57
  596. package/scripts/asyncBurn.ts +0 -155
  597. package/scripts/burnToken.ts +0 -120
  598. package/scripts/claimIncentives.ts +0 -125
  599. package/scripts/closeCpiPlans.ts +0 -113
  600. package/scripts/collectInterest.ts +0 -194
  601. package/scripts/collectProtocolFees.ts +0 -144
  602. package/scripts/computeOptimalAllocations.ts +0 -117
  603. package/scripts/createToken.ts +0 -100
  604. package/scripts/createTokenLendingPosition.ts +0 -204
  605. package/scripts/createYieldingBank.ts +0 -91
  606. package/scripts/decreaseCarryPositions.ts +0 -359
  607. package/scripts/depositUnlentCollateral.ts +0 -106
  608. package/scripts/emergency/deleverageAll.ts +0 -287
  609. package/scripts/emergency/triggerCircuitBreaker.ts +0 -87
  610. package/scripts/env.ts +0 -4
  611. package/scripts/findTxs.ts +0 -169
  612. package/scripts/increaseCarryPositions.ts +0 -134
  613. package/scripts/inspect/format.ts +0 -576
  614. package/scripts/inspect.ts +0 -147
  615. package/scripts/localUtils.ts +0 -249
  616. package/scripts/mintToken.ts +0 -126
  617. package/scripts/processAsyncBurns.ts +0 -89
  618. package/scripts/rebalanceToken.ts +0 -269
  619. package/scripts/rebalanceYieldingBank.ts +0 -183
  620. package/scripts/recollateralizeLoss.ts +0 -79
  621. package/scripts/refresh.ts +0 -156
  622. package/scripts/updateFees.ts +0 -486
  623. package/scripts/updateGeneralLut.ts +0 -36
  624. package/scripts/updateLendingPositionConfig.ts +0 -172
  625. package/scripts/updateTokenLuts.ts +0 -36
  626. package/scripts/updateTokenMetadata.ts +0 -199
  627. package/scripts/updateYieldingBankConfig.ts +0 -100
  628. package/scripts/withdrawUnlentCollateral.ts +0 -178
  629. package/src/client/account.ts +0 -503
  630. package/src/client/builders/args.ts +0 -381
  631. package/src/client/builders/asyncBurnBuilder.ts +0 -305
  632. package/src/client/builders/base.ts +0 -303
  633. package/src/client/builders/burnTokenBuilder.ts +0 -258
  634. package/src/client/builders/claimIncentivesBuilder.ts +0 -211
  635. package/src/client/builders/collectFeesBuilder.ts +0 -52
  636. package/src/client/builders/collectInterestBuilder.ts +0 -165
  637. package/src/client/builders/createCpiPlanBuilder.ts +0 -21
  638. package/src/client/builders/createTokenBuilder.ts +0 -73
  639. package/src/client/builders/createTokenLendingPositionBuilder.ts +0 -219
  640. package/src/client/builders/createYieldingBankAllocationBuilder.ts +0 -32
  641. package/src/client/builders/createYieldingBankBuilder.ts +0 -39
  642. package/src/client/builders/decreaseCarryPositionBuilder.ts +0 -162
  643. package/src/client/builders/depositUnlentCollateralBuilder.ts +0 -95
  644. package/src/client/builders/increaseCarryPositionBuilder.ts +0 -105
  645. package/src/client/builders/index.ts +0 -37
  646. package/src/client/builders/mintTokenBuilder.ts +0 -137
  647. package/src/client/builders/rebalanceTokenBuilder.ts +0 -356
  648. package/src/client/builders/rebalanceYieldingBankBuilder.ts +0 -109
  649. package/src/client/builders/recollateralizeLossBuilder.ts +0 -367
  650. package/src/client/builders/refreshTokenStateBuilder.ts +0 -153
  651. package/src/client/builders/refreshTokensBuilder.ts +0 -82
  652. package/src/client/builders/refreshYieldingBankBuilder.ts +0 -42
  653. package/src/client/builders/resetTokenBurnRateLimitBuilder.ts +0 -21
  654. package/src/client/builders/setTokenCircuitBreakerBuilder.ts +0 -40
  655. package/src/client/builders/setYieldingBankCircuitBreakerBuilder.ts +0 -37
  656. package/src/client/builders/updateLendingPositionConfigBuilder.ts +0 -33
  657. package/src/client/builders/updateTokenConfigurationBuilder.ts +0 -50
  658. package/src/client/builders/updateTokenMetadataBuilder.ts +0 -24
  659. package/src/client/builders/updateYieldingBankConfigBuilder.ts +0 -32
  660. package/src/client/builders/utils.ts +0 -26
  661. package/src/client/client.ts +0 -264
  662. package/src/client/externalLiquidityResolver.ts +0 -54
  663. package/src/client/index.ts +0 -20
  664. package/src/client/lendingPlatformClients.ts +0 -50
  665. package/src/client/pda.ts +0 -102
  666. package/src/client/plans/collectInterest.ts +0 -207
  667. package/src/client/plans/decreaseCarryPosition.ts +0 -226
  668. package/src/client/routes/collectInterest.ts +0 -56
  669. package/src/client/transaction.ts +0 -106
  670. package/src/client/types/builders.ts +0 -19
  671. package/src/client/types/enums.ts +0 -47
  672. package/src/client/types/general.ts +0 -117
  673. package/src/client/types/index.ts +0 -6
  674. package/src/client/types/ix.ts +0 -452
  675. package/src/client/types/planTypes/collectInterest.ts +0 -97
  676. package/src/client/types/planTypes/common.ts +0 -31
  677. package/src/client/types/planTypes/decreaseCarryPosition.ts +0 -134
  678. package/src/client/types/planTypes/index.ts +0 -3
  679. package/src/client/types/tx.ts +0 -409
  680. package/src/constants/configs/allocations.ts +0 -30
  681. package/src/constants/configs/carryTradePresets.ts +0 -164
  682. package/src/constants/configs/index.ts +0 -2
  683. package/src/constants/general.ts +0 -141
  684. package/src/constants/index.ts +0 -3
  685. package/src/constants/lycTokenMetadata.ts +0 -52
  686. package/src/decoders/decodeTransaction.ts +0 -319
  687. package/src/decoders/discriminators.ts +0 -10
  688. package/src/decoders/idlAccounts.ts +0 -75
  689. package/src/decoders/index.ts +0 -15
  690. package/src/decoders/innerCpis.ts +0 -262
  691. package/src/decoders/lycInstructionNames.ts +0 -73
  692. package/src/decoders/programIds.ts +0 -12
  693. package/src/decoders/solana.ts +0 -25
  694. package/src/decoders/transactionPayload.ts +0 -41
  695. package/src/decoders/types.ts +0 -60
  696. package/src/errors.ts +0 -195
  697. package/src/idl/long_yield_carry.ts +0 -14648
  698. package/src/index.ts +0 -10
  699. package/src/metrics/index.ts +0 -1
  700. package/src/metrics/protocolMetrics.ts +0 -976
  701. package/src/models/index.ts +0 -9
  702. package/src/models/lycToken.ts +0 -380
  703. package/src/models/yieldingBank.ts +0 -127
  704. package/src/services/allocation/allocationService.ts +0 -823
  705. package/src/services/allocation/index.ts +0 -2
  706. package/src/services/allocation/types.ts +0 -27
  707. package/src/services/carry/carryAllocationConfig.ts +0 -266
  708. package/src/services/carry/index.ts +0 -2
  709. package/src/services/carry/lycLendingPositionManager.ts +0 -167
  710. package/src/services/index.ts +0 -5
  711. package/src/services/lendingPosition/index.ts +0 -5
  712. package/src/services/lendingPosition/lendingPositionService.ts +0 -328
  713. package/src/services/rebalance/index.ts +0 -2
  714. package/src/services/rebalance/token/index.ts +0 -1
  715. package/src/services/rebalance/token/tokenRebalanceService.ts +0 -142
  716. package/src/services/rebalance/yieldingBank/index.ts +0 -3
  717. package/src/services/rebalance/yieldingBank/planner.ts +0 -215
  718. package/src/services/rebalance/yieldingBank/strategy.ts +0 -41
  719. package/src/services/rebalance/yieldingBank/types.ts +0 -41
  720. package/src/services/redemption/index.ts +0 -9
  721. package/src/services/redemption/redemptionService.ts +0 -758
  722. package/src/types/enriched.ts +0 -187
  723. package/src/types/index.ts +0 -1
  724. package/src/utils/cache.ts +0 -12
  725. package/src/utils/data.ts +0 -65
  726. package/src/utils/enrichment.ts +0 -330
  727. package/src/utils/feeDripMetrics.ts +0 -146
  728. package/src/utils/general.ts +0 -54
  729. package/src/utils/index.ts +0 -13
  730. package/src/utils/ix.ts +0 -227
  731. package/src/utils/lendingPosition.ts +0 -221
  732. package/src/utils/lookupTables.ts +0 -309
  733. package/src/utils/lycData.ts +0 -321
  734. package/src/utils/timelock.ts +0 -63
  735. package/src/utils/tokenFeeMath.ts +0 -25
  736. package/src/utils/transactions.ts +0 -109
  737. package/src/utils/yieldingBank.ts +0 -38
  738. package/tsconfig.json +0 -11
@@ -1,976 +0,0 @@
1
- import { PublicKey } from "@solana/web3.js";
2
- import type { Address } from "@solana/kit";
3
- import { fetchMaybeToken, TOKEN_PROGRAM_ADDRESS } from "@solana-program/token";
4
- import {
5
- fetchMaybeToken as fetchMaybeToken2022,
6
- TOKEN_2022_PROGRAM_ADDRESS,
7
- } from "@solana-program/token-2022";
8
- import {
9
- calculateTvlUsd,
10
- fromWeb3Pk,
11
- getAtaAddress,
12
- LendingPlatform,
13
- lendingPlatformToEnum,
14
- mintSymbol,
15
- resolveTokenProgram,
16
- toBigInt,
17
- toUiAmount,
18
- TVL_USD_DECIMAL_PLACES,
19
- type AnchorTokenProgram,
20
- } from "common";
21
- import type { LendingPositionInspectMetrics, ReserveBase } from "lending-platforms";
22
- import type { LongYieldCarryClient } from "../client";
23
- import { PROTOCOL_FEE_WALLET } from "../constants/general";
24
- import type { LYCToken, TokenLendingPositionData } from "../models/lycToken";
25
- import type { LYCYieldingBank, YieldingBankAccountData } from "../models/yieldingBank";
26
- import { calculateFeeDripMetrics, type FeeDripAbsorptionStatus } from "../utils/feeDripMetrics";
27
- import { podBoolToNumber } from "../utils/general";
28
- import { collectableNetYieldUsd } from "../utils/tokenFeeMath";
29
-
30
- /** Skip dust Kamino slots when a material position exists on the same token. */
31
- export const MIN_MATERIAL_KAMINO_COLLATERAL_USD = 1;
32
-
33
- export interface LendingPositionInspectMetricSnapshot {
34
- utilizationRealtimeBps: number;
35
- utilizationEmaBps: number;
36
- lowerTriggerPriceChangePct?: number;
37
- upperTriggerPriceChangePct?: number;
38
- }
39
-
40
- export interface YieldingBankExternalPositionMetricSnapshot {
41
- platform: LendingPlatform;
42
- pool: Address;
43
- tvlUsdRaw: string;
44
- tvlUsd: number;
45
- }
46
-
47
- export type ProtocolMetricEntityType =
48
- | "token"
49
- | "yielding_bank"
50
- | "yielding_bank_asset"
51
- | "kamino_position_rate"
52
- | "token_lending_position"
53
- | "token_carry_position"
54
- | "fee_wallet_balance"
55
- | "protocol_manifest";
56
-
57
- /**
58
- * Balance held by the protocol fee wallet for one mint. Performance fees
59
- * arrive here as collateral at `collect_interest` time (no pending counter
60
- * exists on the token), and mint/burn fees arrive as yTokens via
61
- * `collect_fees` — so these balances are the only on-chain record of
62
- * cumulative collected fees.
63
- */
64
- export interface FeeWalletBalanceMetricSnapshot {
65
- entityType: "fee_wallet_balance";
66
- wallet: Address;
67
- mint: Address;
68
- symbol: string;
69
- /** "collateral" = performance fees; "ytoken" = collected mint/burn fees. */
70
- kind: "collateral" | "ytoken";
71
- decimals: number;
72
- amountRaw: string;
73
- amountUi: number;
74
- priceUsd: number;
75
- valueUsd: number;
76
- }
77
-
78
- /** Index of entity keys written for a single ingestion hour (enables API assembly). */
79
- export interface ProtocolManifestSnapshot {
80
- entityType: "protocol_manifest";
81
- tokenMints: Address[];
82
- bankAddresses: Address[];
83
- kaminoPositions: Array<{ mint: Address; lendingPositionIndex: number }>;
84
- yieldingBankAssets: Array<{ bank: Address; mint: Address }>;
85
- /** Present on manifests written after Phase 2 ingestion deploy. */
86
- tokenLendingPositions?: Array<{ mint: Address; lendingPositionIndex: number }>;
87
- /** Present on manifests written after Phase 2 ingestion deploy. */
88
- tokenCarryPositions?: Array<{ mint: Address; carryPositionIndex: number }>;
89
- /** Present on manifests written after fee-wallet tracking deploy. */
90
- feeWalletBalances?: Array<{ wallet: Address; mint: Address }>;
91
- /**
92
- * Per-row build failures from this ingestion hour (skipped Kamino rate rows,
93
- * failed inspect enrichment). Persisted so the ops dashboard can surface
94
- * partial snapshots instead of silently dropping rows.
95
- */
96
- errors?: ProtocolMetricsSnapshotError[];
97
- }
98
-
99
- export const PROTOCOL_MANIFEST_PK = "protocol_manifest";
100
-
101
- export interface TokenMetricSnapshot {
102
- entityType: "token";
103
- token: Address;
104
- mint: Address;
105
- collateralMint: Address;
106
- isActive: boolean;
107
- priceCollateral: number;
108
- collateralPriceUsd: number;
109
- priceUsd: number;
110
- totalSupply: number;
111
- tvlUsdRaw: string;
112
- tvlUsd: number;
113
- carryTvlUsdRaw: string;
114
- carryTvlUsd: number;
115
- debtUsdRaw: string;
116
- debtUsd: number;
117
- netYieldUsdRaw: string;
118
- netYieldUsd: number;
119
- pendingProtocolFeesRaw: string;
120
- pendingProtocolFeesUi: number;
121
- pendingCuratorFeesRaw: string;
122
- pendingCuratorFeesUi: number;
123
- performanceFeeBps: number;
124
- mintingFeeBps: number;
125
- burningFeeBps: number;
126
- protocolMintBurnPctBps: number;
127
- curatorMintBurnPctBps: number;
128
- curatorPerfPctBps: number;
129
- /** Absent on snapshots ingested before fee-drip projection metrics were added. */
130
- feeDripMaxApyBps?: number;
131
- feeDripCurrentApyBps?: number | null;
132
- undrippedFeeCollateralUi?: number;
133
- feeDripAbsorptionEtaSeconds?: number | null;
134
- feeDripAbsorptionStatus?: FeeDripAbsorptionStatus;
135
- firstMintTs: number;
136
- collateralOracle: Address;
137
- collateralLastRefreshedTs: number;
138
- unlentCollateralUi: number;
139
- lastRefreshedTs: number;
140
- }
141
-
142
- export interface YieldingBankMetricSnapshot {
143
- entityType: "yielding_bank";
144
- bank: Address;
145
- id: number;
146
- baseMint: Address;
147
- isActive: boolean;
148
- sharePriceRaw: string;
149
- sharePriceUsd: number;
150
- totalSharesRaw: string;
151
- totalShares: number;
152
- tvlUsdRaw: string;
153
- tvlUsd: number;
154
- baseSymbol: string;
155
- curator: Address;
156
- circuitBreaker: number;
157
- defaultRedemptionMint?: Address;
158
- externalYieldingPositions: YieldingBankExternalPositionMetricSnapshot[];
159
- lastRefreshedTs: number;
160
- lastRebalancedTs: number;
161
- }
162
-
163
- export interface YieldingBankAssetMetricSnapshot {
164
- entityType: "yielding_bank_asset";
165
- bank: Address;
166
- assetIndex: number;
167
- assetKind: "base" | "asset";
168
- mint: Address;
169
- amountRaw: string;
170
- amountUi: number;
171
- decimals: number;
172
- priceRaw: string;
173
- priceUsd: number;
174
- tvlUsdRaw: string;
175
- tvlUsd: number;
176
- }
177
-
178
- export interface TokenLendingPositionMetricSnapshot {
179
- entityType: "token_lending_position";
180
- token: Address;
181
- mint: Address;
182
- lendingPositionIndex: number;
183
- platform: LendingPlatform;
184
- withdrawPending: boolean;
185
- pool: Address;
186
- userAccount: Address;
187
- collateralAmountRaw: string;
188
- collateralAmountUi: number;
189
- collateralSymbol: string;
190
- collateralUsd: number;
191
- debtAmountRaw: string;
192
- debtAmountUi: number;
193
- debtTvlUsdRaw: string;
194
- debtTvlUsd: number;
195
- debtMint: Address;
196
- debtSymbol: string;
197
- debtPriceUsd: number;
198
- onChainUtilizationRateBps: number;
199
- targetUtilizationRateBps: number;
200
- maxDeviationAboveTargetUtilBps: number;
201
- maxDeviationBelowTargetUtilBps: number;
202
- inspect?: LendingPositionInspectMetricSnapshot;
203
- }
204
-
205
- export interface TokenCarryPositionMetricSnapshot {
206
- entityType: "token_carry_position";
207
- token: Address;
208
- mint: Address;
209
- carryPositionIndex: number;
210
- yieldingBankId: number;
211
- yieldingBankAddress?: Address;
212
- baseMint: Address;
213
- baseSymbol: string;
214
- sharesRaw: string;
215
- sharesUi?: number;
216
- tvlUsdRaw: string;
217
- tvlUsd: number;
218
- }
219
-
220
- export interface KaminoPositionRateSnapshot {
221
- entityType: "kamino_position_rate";
222
- token: Address;
223
- mint: Address;
224
- lendingPositionIndex: number;
225
- pool: Address;
226
- userAccount: Address;
227
- collateralReserve: Address;
228
- debtReserve: Address;
229
- collateralMint: Address;
230
- debtMint: Address;
231
- supplyBaseApy: number;
232
- borrowBaseApy: number;
233
- supplyEffectiveApy: number;
234
- borrowEffectiveApy: number;
235
- netEffectiveApy: number;
236
- collateralReserveUtilizationPct: number;
237
- debtReserveUtilizationPct: number;
238
- onChainLtvUtilizationBps: number;
239
- targetUtilizationRateBps: number;
240
- maxDeviationAboveTargetUtilBps: number;
241
- maxDeviationBelowTargetUtilBps: number;
242
- }
243
-
244
- export type ProtocolMetricSnapshotRow =
245
- | TokenMetricSnapshot
246
- | YieldingBankMetricSnapshot
247
- | YieldingBankAssetMetricSnapshot
248
- | KaminoPositionRateSnapshot
249
- | TokenLendingPositionMetricSnapshot
250
- | TokenCarryPositionMetricSnapshot
251
- | FeeWalletBalanceMetricSnapshot
252
- | ProtocolManifestSnapshot;
253
-
254
- export interface ProtocolMetricsSnapshot {
255
- timestamp: number;
256
- tokens: TokenMetricSnapshot[];
257
- yieldingBanks: YieldingBankMetricSnapshot[];
258
- yieldingBankAssets: YieldingBankAssetMetricSnapshot[];
259
- kaminoPositionRates: KaminoPositionRateSnapshot[];
260
- tokenLendingPositions: TokenLendingPositionMetricSnapshot[];
261
- tokenCarryPositions: TokenCarryPositionMetricSnapshot[];
262
- feeWalletBalances: FeeWalletBalanceMetricSnapshot[];
263
- errors: ProtocolMetricsSnapshotError[];
264
- }
265
-
266
- export interface ProtocolMetricsSnapshotError {
267
- scope: "kamino_position_rate" | "lending_position_inspect";
268
- token: Address;
269
- lendingPositionIndex: number;
270
- message: string;
271
- }
272
-
273
- export interface BuildProtocolMetricsSnapshotOptions {
274
- timestamp?: number;
275
- includeInactive?: boolean;
276
- tokens?: LYCToken[];
277
- yieldingBanks?: LYCYieldingBank[];
278
- }
279
-
280
- export function protocolMetricPartitionKey(metric: ProtocolMetricSnapshotRow): string {
281
- switch (metric.entityType) {
282
- case "token":
283
- return `token#${metric.mint}`;
284
- case "yielding_bank":
285
- return `yielding_bank#${metric.bank}`;
286
- case "yielding_bank_asset":
287
- return `yielding_bank_asset#${metric.bank}#${metric.mint}`;
288
- case "kamino_position_rate":
289
- return `kamino_position#${metric.mint}#${metric.lendingPositionIndex}`;
290
- case "token_lending_position":
291
- return `token_lending_position#${metric.mint}#${metric.lendingPositionIndex}`;
292
- case "token_carry_position":
293
- return `token_carry_position#${metric.mint}#${metric.carryPositionIndex}`;
294
- case "fee_wallet_balance":
295
- return `fee_wallet#${metric.wallet}#${metric.mint}`;
296
- case "protocol_manifest":
297
- return PROTOCOL_MANIFEST_PK;
298
- }
299
- }
300
-
301
- export function buildProtocolManifestSnapshot(
302
- snapshot: ProtocolMetricsSnapshot
303
- ): ProtocolManifestSnapshot {
304
- return {
305
- entityType: "protocol_manifest",
306
- tokenMints: snapshot.tokens.map((token) => token.mint),
307
- bankAddresses: snapshot.yieldingBanks.map((bank) => bank.bank),
308
- kaminoPositions: snapshot.kaminoPositionRates.map((rate) => ({
309
- mint: rate.mint,
310
- lendingPositionIndex: rate.lendingPositionIndex,
311
- })),
312
- yieldingBankAssets: snapshot.yieldingBankAssets.map((asset) => ({
313
- bank: asset.bank,
314
- mint: asset.mint,
315
- })),
316
- tokenLendingPositions: snapshot.tokenLendingPositions.map((position) => ({
317
- mint: position.mint,
318
- lendingPositionIndex: position.lendingPositionIndex,
319
- })),
320
- tokenCarryPositions: snapshot.tokenCarryPositions.map((position) => ({
321
- mint: position.mint,
322
- carryPositionIndex: position.carryPositionIndex,
323
- })),
324
- feeWalletBalances: snapshot.feeWalletBalances.map((balance) => ({
325
- wallet: balance.wallet,
326
- mint: balance.mint,
327
- })),
328
- errors: snapshot.errors,
329
- };
330
- }
331
-
332
- export function flattenProtocolMetricsSnapshot(
333
- snapshot: ProtocolMetricsSnapshot
334
- ): ProtocolMetricSnapshotRow[] {
335
- return [
336
- ...snapshot.tokens,
337
- ...snapshot.yieldingBanks,
338
- ...snapshot.yieldingBankAssets,
339
- ...snapshot.kaminoPositionRates,
340
- ...snapshot.tokenLendingPositions,
341
- ...snapshot.tokenCarryPositions,
342
- ...snapshot.feeWalletBalances,
343
- buildProtocolManifestSnapshot(snapshot),
344
- ];
345
- }
346
-
347
- /** Dynamo item shape written by {@link buildProtocolMetricDynamoItems}. */
348
- export interface ProtocolMetricDynamoItem {
349
- pk: string;
350
- timestamp: number;
351
- entityType: ProtocolMetricEntityType;
352
- metrics: ProtocolMetricSnapshotRow;
353
- ttl?: number;
354
- }
355
-
356
- export function toProtocolMetricDynamoItem(
357
- metric: ProtocolMetricSnapshotRow,
358
- hourTimestamp: number,
359
- ttl?: number
360
- ): ProtocolMetricDynamoItem {
361
- return {
362
- pk: protocolMetricPartitionKey(metric),
363
- timestamp: hourTimestamp,
364
- entityType: metric.entityType,
365
- metrics: metric,
366
- ttl,
367
- };
368
- }
369
-
370
- export interface BuildProtocolMetricDynamoItemsOptions extends BuildProtocolMetricsSnapshotOptions {
371
- hourTimestamp: number;
372
- ttl?: number;
373
- }
374
-
375
- export interface BuildProtocolMetricDynamoItemsResult {
376
- items: ProtocolMetricDynamoItem[];
377
- errors: ProtocolMetricsSnapshotError[];
378
- }
379
-
380
- /** Builds on-chain snapshot rows and maps them to Dynamo put payloads. */
381
- export async function buildProtocolMetricDynamoItems(
382
- client: LongYieldCarryClient,
383
- opts: BuildProtocolMetricDynamoItemsOptions
384
- ): Promise<BuildProtocolMetricDynamoItemsResult> {
385
- const snapshot = await buildProtocolMetricsSnapshot(client, {
386
- ...opts,
387
- timestamp: opts.hourTimestamp,
388
- });
389
-
390
- const items = flattenProtocolMetricsSnapshot(snapshot).map((row) =>
391
- toProtocolMetricDynamoItem(row, opts.hourTimestamp, opts.ttl)
392
- );
393
-
394
- return { items, errors: snapshot.errors };
395
- }
396
-
397
- export async function buildProtocolMetricsSnapshot(
398
- client: LongYieldCarryClient,
399
- opts: BuildProtocolMetricsSnapshotOptions = {}
400
- ): Promise<ProtocolMetricsSnapshot> {
401
- const timestamp = opts.timestamp ?? Math.floor(Date.now() / 1000);
402
- const { tokens, yieldingBanks } =
403
- opts.tokens && opts.yieldingBanks
404
- ? { tokens: opts.tokens, yieldingBanks: opts.yieldingBanks }
405
- : await client.account.fetchAllTokensAndYieldingBanks();
406
-
407
- const filteredTokens = opts.includeInactive ? tokens : tokens.filter((token) => token.isActive);
408
- const filteredBanks = opts.includeInactive
409
- ? yieldingBanks
410
- : yieldingBanks.filter((bank) => bank.isActive);
411
-
412
- const tokenSnapshots = filteredTokens.map((token) =>
413
- buildTokenMetricSnapshot(token, filteredBanks, timestamp)
414
- );
415
- const bankSnapshots = filteredBanks.map(buildYieldingBankMetricSnapshot);
416
- const assetSnapshots = filteredBanks.flatMap(buildYieldingBankAssetMetricSnapshots);
417
- const lendingPositionResults = await Promise.all(
418
- filteredTokens.map((token) =>
419
- buildTokenLendingPositionMetricSnapshotsAsync(client, token, filteredBanks)
420
- )
421
- );
422
- const lendingPositionSnapshots = lendingPositionResults.flatMap((result) => result.snapshots);
423
- // Kamino rate rows use `usedLendingPositions` (collateral > 0) while lending position
424
- // snapshots use `activeLendingPositions` (all configured slots). Zero-collateral slots
425
- // can still appear in lending rows; Kamino rate rows and stale-slot alerts handle that.
426
- const { rates, errors } = await buildKaminoPositionRateSnapshots(client, filteredTokens);
427
- const carryPositionSnapshots = filteredTokens.flatMap((token) =>
428
- buildTokenCarryPositionMetricSnapshots(token, filteredBanks)
429
- );
430
- const feeWalletBalances = await buildFeeWalletBalanceSnapshots(client, filteredTokens);
431
-
432
- return {
433
- timestamp,
434
- tokens: tokenSnapshots,
435
- yieldingBanks: bankSnapshots,
436
- yieldingBankAssets: assetSnapshots,
437
- kaminoPositionRates: rates,
438
- tokenLendingPositions: lendingPositionSnapshots,
439
- tokenCarryPositions: carryPositionSnapshots,
440
- feeWalletBalances,
441
- errors: [...errors, ...lendingPositionResults.flatMap((result) => result.errors)],
442
- };
443
- }
444
-
445
- /**
446
- * Snapshots the protocol fee wallet's ATA balances for every token's
447
- * collateral mint (cumulative performance fees) and yToken mint (cumulative
448
- * collected mint/burn fees). Collateral mints shared by multiple tokens are
449
- * deduped — the balance is per mint, not per token. RPC failures skip the
450
- * row rather than failing the whole snapshot; the balance reappears next hour.
451
- */
452
- type FeeWalletTarget = {
453
- kind: "collateral" | "ytoken";
454
- symbol: string;
455
- decimals: number;
456
- priceUsd: number;
457
- tokenProgram: Address;
458
- };
459
-
460
- function resolveFeeWalletTokenProgram(tp: AnchorTokenProgram | undefined): Address {
461
- if (tp == null) {
462
- return TOKEN_PROGRAM_ADDRESS;
463
- }
464
- return resolveTokenProgram(tp);
465
- }
466
-
467
- /** Read an SPL or Token-2022 ATA balance using the mint's token program. */
468
- async function fetchFeeWalletTokenAmountRaw(
469
- rpc: LongYieldCarryClient["rpc"],
470
- ata: Address,
471
- tokenProgram: Address
472
- ): Promise<bigint> {
473
- const account =
474
- tokenProgram === TOKEN_2022_PROGRAM_ADDRESS
475
- ? await fetchMaybeToken2022(rpc, ata)
476
- : await fetchMaybeToken(rpc, ata);
477
- return account.exists ? account.data.amount : 0n;
478
- }
479
-
480
- export async function buildFeeWalletBalanceSnapshots(
481
- client: LongYieldCarryClient,
482
- tokens: LYCToken[]
483
- ): Promise<FeeWalletBalanceMetricSnapshot[]> {
484
- const wallet = PROTOCOL_FEE_WALLET[client.environment];
485
- const targets = new Map<Address, FeeWalletTarget>();
486
-
487
- for (const token of tokens) {
488
- const collateralPriceUsd = toUiAmount(
489
- token.data.collateral.price,
490
- token.data.collateral.decimals
491
- );
492
- const collateralTokenProgram = resolveFeeWalletTokenProgram(token.data.collateral.tokenProgram);
493
- if (!targets.has(token.collateralMint)) {
494
- targets.set(token.collateralMint, {
495
- kind: "collateral",
496
- symbol: mintSymbol(token.collateralMint),
497
- decimals: token.data.collateral.decimals,
498
- priceUsd: collateralPriceUsd,
499
- tokenProgram: collateralTokenProgram,
500
- });
501
- }
502
- targets.set(token.mint, {
503
- kind: "ytoken",
504
- symbol: `y${mintSymbol(token.collateralMint)}`,
505
- decimals: token.decimals,
506
- priceUsd: token.price * collateralPriceUsd,
507
- tokenProgram: resolveFeeWalletTokenProgram(token.data.config.tokenProgram),
508
- });
509
- }
510
-
511
- const snapshots = await Promise.all(
512
- [...targets.entries()].map(
513
- async ([mint, target]): Promise<FeeWalletBalanceMetricSnapshot | null> => {
514
- try {
515
- const ata = await getAtaAddress(mint, wallet, target.tokenProgram);
516
- const amountRaw = await fetchFeeWalletTokenAmountRaw(
517
- client.rpc,
518
- ata,
519
- target.tokenProgram
520
- );
521
- const amountUi = toUiAmount(amountRaw, target.decimals);
522
- return {
523
- entityType: "fee_wallet_balance",
524
- wallet,
525
- mint,
526
- symbol: target.symbol,
527
- kind: target.kind,
528
- decimals: target.decimals,
529
- amountRaw: amountRaw.toString(),
530
- amountUi,
531
- priceUsd: target.priceUsd,
532
- valueUsd: amountUi * target.priceUsd,
533
- };
534
- } catch {
535
- return null;
536
- }
537
- }
538
- )
539
- );
540
-
541
- return snapshots.filter((row): row is FeeWalletBalanceMetricSnapshot => row !== null);
542
- }
543
-
544
- export function buildTokenMetricSnapshot(
545
- token: LYCToken,
546
- yieldingBanks: LYCYieldingBank[] = [],
547
- nowTs = Math.floor(Date.now() / 1000)
548
- ): TokenMetricSnapshot {
549
- const carryTvlUsdRaw = token.data.debtCarry
550
- .filter(
551
- (carry) =>
552
- !carry.yieldingBaseMint.equals(PublicKey.default) && toBigInt(carry.shares) > BigInt(0)
553
- )
554
- .reduce((sum, carry) => sum + toBigInt(carry.tvlUsd), 0n);
555
- const debtUsdRaw = token.activeLendingPositions.reduce(
556
- (sum, { data }) => sum + toBigInt(data.accounting.debt.tvlUsd),
557
- 0n
558
- );
559
- const netYieldUsdRaw = collectableNetYieldUsd(carryTvlUsdRaw, debtUsdRaw);
560
- const collateralPriceUsd = toUiAmount(
561
- token.data.collateral.price,
562
- token.data.collateral.decimals
563
- );
564
- const feeDripMetrics = calculateFeeDripMetrics({
565
- currentPriceRaw: toBigInt(token.data.accounting.price),
566
- apyReferencePriceRaw: toBigInt(token.data.feeDrip.apyReferencePrice),
567
- apyReferenceTs: toBigInt(token.data.feeDrip.apyReferenceTs),
568
- currentPriceTs: BigInt(token.data.accounting.lastRefreshedTs.toNumber()),
569
- totalSupplyRaw: toBigInt(token.data.accounting.totalSupply),
570
- tokenDecimals: token.decimals,
571
- undrippedFeeCollateralRaw: toBigInt(token.data.feeDrip.undrippedFeeCollateral),
572
- feeDripMaxApyBps: token.data.fees.feeDripMaxApyBps,
573
- feeDripDurationSecs: toBigInt(token.data.fees.feeDripDurationSecs),
574
- dripEndTs: toBigInt(token.data.feeDrip.dripEndTs),
575
- nowTs: BigInt(nowTs),
576
- });
577
-
578
- return {
579
- entityType: "token",
580
- token: token.address,
581
- mint: token.mint,
582
- collateralMint: token.collateralMint,
583
- isActive: token.isActive,
584
- priceCollateral: token.price,
585
- collateralPriceUsd,
586
- priceUsd: token.price * collateralPriceUsd,
587
- totalSupply: token.totalSupply,
588
- tvlUsdRaw: toBigInt(token.data.accounting.tvlUsd).toString(),
589
- tvlUsd: toUiAmount(token.data.accounting.tvlUsd, TVL_USD_DECIMAL_PLACES),
590
- carryTvlUsdRaw: carryTvlUsdRaw.toString(),
591
- carryTvlUsd: toUiAmount(carryTvlUsdRaw, TVL_USD_DECIMAL_PLACES),
592
- debtUsdRaw: debtUsdRaw.toString(),
593
- debtUsd: toUiAmount(debtUsdRaw, TVL_USD_DECIMAL_PLACES),
594
- netYieldUsdRaw: netYieldUsdRaw.toString(),
595
- netYieldUsd: toUiAmount(netYieldUsdRaw, TVL_USD_DECIMAL_PLACES),
596
- pendingProtocolFeesRaw: toBigInt(token.data.accounting.pendingProtocolFees).toString(),
597
- pendingProtocolFeesUi: toUiAmount(token.data.accounting.pendingProtocolFees, token.decimals),
598
- pendingCuratorFeesRaw: toBigInt(token.data.accounting.pendingCuratorFees).toString(),
599
- pendingCuratorFeesUi: toUiAmount(token.data.accounting.pendingCuratorFees, token.decimals),
600
- performanceFeeBps: token.data.fees.performanceFeeBps,
601
- mintingFeeBps: token.data.fees.mintingFeeBps,
602
- burningFeeBps: token.data.fees.burningFeeBps,
603
- protocolMintBurnPctBps: token.data.fees.protocolMintBurnPctBps,
604
- curatorMintBurnPctBps: token.data.fees.curatorMintBurnPctBps,
605
- curatorPerfPctBps: token.data.fees.curatorPerfPctBps,
606
- feeDripMaxApyBps: token.data.fees.feeDripMaxApyBps,
607
- feeDripCurrentApyBps: feeDripMetrics.currentApyBps,
608
- undrippedFeeCollateralUi: toUiAmount(
609
- token.data.feeDrip.undrippedFeeCollateral,
610
- token.data.collateral.decimals
611
- ),
612
- feeDripAbsorptionEtaSeconds: feeDripMetrics.absorptionEtaSeconds,
613
- feeDripAbsorptionStatus: feeDripMetrics.absorptionStatus,
614
- firstMintTs: token.data.accounting.firstMintTs.toNumber(),
615
- collateralOracle: fromWeb3Pk(token.data.collateral.oracle),
616
- collateralLastRefreshedTs: token.data.collateral.lastRefreshedTs.toNumber(),
617
- unlentCollateralUi: toUiAmount(
618
- token.data.collateral.unlentAmount,
619
- token.data.collateral.decimals
620
- ),
621
- lastRefreshedTs: token.data.accounting.lastRefreshedTs.toNumber(),
622
- };
623
- }
624
-
625
- export function buildYieldingBankMetricSnapshot(bank: LYCYieldingBank): YieldingBankMetricSnapshot {
626
- const defaultRedemptionMint =
627
- bank.defaultRedemptionMint !== PublicKey.default.toBase58()
628
- ? bank.defaultRedemptionMint
629
- : undefined;
630
-
631
- const externalYieldingPositions = bank.externalYieldingPositions
632
- .map((position) => ({
633
- platform: lendingPlatformToEnum(position.lendingPlatform),
634
- pool: fromWeb3Pk(position.pool),
635
- tvlRaw: toBigInt(position.tvl),
636
- tvlUsd: toUiAmount(position.tvl, TVL_USD_DECIMAL_PLACES),
637
- }))
638
- .filter((position) => position.platform !== LendingPlatform.None)
639
- .map((position) => ({
640
- platform: position.platform,
641
- pool: position.pool,
642
- tvlUsdRaw: position.tvlRaw.toString(),
643
- tvlUsd: position.tvlUsd,
644
- }));
645
-
646
- return {
647
- entityType: "yielding_bank",
648
- bank: bank.address,
649
- id: bank.id,
650
- baseMint: bank.baseMint,
651
- baseSymbol: mintSymbol(bank.baseMint),
652
- curator: fromWeb3Pk(bank.data.roles.curator),
653
- isActive: bank.isActive,
654
- circuitBreaker: bank.circuitBreaker,
655
- defaultRedemptionMint,
656
- externalYieldingPositions,
657
- sharePriceRaw: toBigInt(bank.data.accounting.sharePrice).toString(),
658
- sharePriceUsd: bank.sharePrice,
659
- totalSharesRaw: toBigInt(bank.data.accounting.totalShares).toString(),
660
- totalShares: bank.totalShares,
661
- tvlUsdRaw: toBigInt(bank.data.accounting.tvl).toString(),
662
- tvlUsd: toUiAmount(bank.data.accounting.tvl, TVL_USD_DECIMAL_PLACES),
663
- lastRefreshedTs: bank.data.accounting.lastRefreshedTs.toNumber(),
664
- lastRebalancedTs: bank.data.accounting.lastRebalancedTs.toNumber(),
665
- };
666
- }
667
-
668
- export function buildTokenLendingPositionMetricSnapshots(
669
- token: LYCToken,
670
- yieldingBanks: LYCYieldingBank[] = []
671
- ): TokenLendingPositionMetricSnapshot[] {
672
- const collateralSymbol = mintSymbol(token.collateralMint);
673
- const collateralDecimals = token.data.collateral.decimals;
674
- const collateralPriceUsd = toUiAmount(
675
- token.data.collateral.price,
676
- token.data.collateral.decimals
677
- );
678
- return token.activeLendingPositions.map(({ index, data: position }) => {
679
- const platform = lendingPlatformToEnum(position.platform);
680
- const collateralAmountUi = toUiAmount(position.accounting.collateral, collateralDecimals);
681
- const debtMint = fromWeb3Pk(position.accounting.debt.mint);
682
- const debtTvlUsdRaw = toBigInt(position.accounting.debt.tvlUsd);
683
-
684
- return {
685
- entityType: "token_lending_position",
686
- token: token.address,
687
- mint: token.mint,
688
- lendingPositionIndex: index,
689
- platform,
690
- withdrawPending: podBoolToNumber(position.withdrawPending) !== 0,
691
- pool: fromWeb3Pk(position.pool),
692
- userAccount: fromWeb3Pk(position.protocolUserAcc),
693
- collateralAmountRaw: toBigInt(position.accounting.collateral).toString(),
694
- collateralAmountUi,
695
- collateralSymbol,
696
- collateralUsd: collateralAmountUi * collateralPriceUsd,
697
- debtAmountRaw: toBigInt(position.accounting.debt.amount).toString(),
698
- debtAmountUi: toUiAmount(position.accounting.debt.amount, position.accounting.debt.decimals),
699
- debtTvlUsdRaw: debtTvlUsdRaw.toString(),
700
- debtTvlUsd: toUiAmount(debtTvlUsdRaw, TVL_USD_DECIMAL_PLACES),
701
- debtMint,
702
- debtSymbol: mintSymbol(debtMint),
703
- debtPriceUsd: toUiAmount(position.accounting.debt.price, position.accounting.debt.decimals),
704
- onChainUtilizationRateBps: position.accounting.ltvUtilizationRateBps,
705
- targetUtilizationRateBps: position.config.targetUtilizationRateBps,
706
- maxDeviationAboveTargetUtilBps: position.config.maxDeviationAboveTargetUtilBps,
707
- maxDeviationBelowTargetUtilBps: position.config.maxDeviationBelowTargetUtilBps,
708
- };
709
- });
710
- }
711
-
712
- export async function buildTokenLendingPositionMetricSnapshotsAsync(
713
- client: LongYieldCarryClient,
714
- token: LYCToken,
715
- yieldingBanks: LYCYieldingBank[] = []
716
- ): Promise<{
717
- snapshots: TokenLendingPositionMetricSnapshot[];
718
- errors: ProtocolMetricsSnapshotError[];
719
- }> {
720
- const baseSnapshots = buildTokenLendingPositionMetricSnapshots(token, yieldingBanks);
721
- const kaminoData = client.getLendingPlatformClientByPlatform(LendingPlatform.Kamino).data;
722
- const errors: ProtocolMetricsSnapshotError[] = [];
723
-
724
- const snapshots = await Promise.all(
725
- baseSnapshots.map(async (snapshot) => {
726
- if (snapshot.platform !== LendingPlatform.Kamino) {
727
- return snapshot;
728
- }
729
-
730
- const position = token.activeLendingPositions.find(
731
- (row) => row.index === snapshot.lendingPositionIndex
732
- )?.data;
733
- if (!position) {
734
- return snapshot;
735
- }
736
-
737
- try {
738
- const { LycLendingPositionManager } = await import("../services/carry");
739
- const manager = await LycLendingPositionManager.create(kaminoData, position);
740
- const inspectMetrics = await manager.getInspectMetrics();
741
- const inspect = serializeLendingPositionInspectMetrics(inspectMetrics);
742
- return inspect ? { ...snapshot, inspect } : snapshot;
743
- } catch (err) {
744
- // The base snapshot is still valid without inspect enrichment, but the
745
- // failure must be recorded — silently missing Util RT/EMA cells have
746
- // hidden real bugs (e.g. trigger-band math throwing on >100% bands).
747
- errors.push({
748
- scope: "lending_position_inspect",
749
- token: token.address,
750
- lendingPositionIndex: snapshot.lendingPositionIndex,
751
- message: err instanceof Error ? err.message : String(err),
752
- });
753
- return snapshot;
754
- }
755
- })
756
- );
757
-
758
- return { snapshots, errors };
759
- }
760
-
761
- export function serializeLendingPositionInspectMetrics(
762
- metrics: LendingPositionInspectMetrics | null | undefined
763
- ): LendingPositionInspectMetricSnapshot | undefined {
764
- if (!metrics) {
765
- return undefined;
766
- }
767
-
768
- return {
769
- utilizationRealtimeBps: metrics.utilizationRateBps.realtime,
770
- utilizationEmaBps: metrics.utilizationRateBps.ema,
771
- lowerTriggerPriceChangePct: metrics.triggerBand.lower?.priceChangePct,
772
- upperTriggerPriceChangePct: metrics.triggerBand.upper?.priceChangePct,
773
- };
774
- }
775
-
776
- export function kaminoCollateralUsd(token: LYCToken, position: TokenLendingPositionData): number {
777
- const collateralAmountUi = toUiAmount(
778
- position.accounting.collateral,
779
- token.data.collateral.decimals
780
- );
781
- const collateralPriceUsd = toUiAmount(
782
- token.data.collateral.price,
783
- token.data.collateral.decimals
784
- );
785
- return collateralAmountUi * collateralPriceUsd;
786
- }
787
-
788
- export function shouldIncludeKaminoPositionRate(
789
- collateralUsd: number,
790
- maxCollateralUsdOnToken: number
791
- ): boolean {
792
- if (maxCollateralUsdOnToken < MIN_MATERIAL_KAMINO_COLLATERAL_USD) {
793
- return true;
794
- }
795
- return collateralUsd >= MIN_MATERIAL_KAMINO_COLLATERAL_USD;
796
- }
797
-
798
- export function buildTokenCarryPositionMetricSnapshots(
799
- token: LYCToken,
800
- yieldingBanks: LYCYieldingBank[]
801
- ): TokenCarryPositionMetricSnapshot[] {
802
- const snapshots: TokenCarryPositionMetricSnapshot[] = [];
803
-
804
- token.data.debtCarry.forEach((carry, carryPositionIndex) => {
805
- if (carry.yieldingBaseMint.equals(PublicKey.default)) {
806
- return;
807
- }
808
-
809
- const baseMint = fromWeb3Pk(carry.yieldingBaseMint);
810
- const resolvedBank = yieldingBanks.find(
811
- (bank) => bank.id === carry.yieldingBankId && bank.baseMint === baseMint
812
- );
813
-
814
- snapshots.push({
815
- entityType: "token_carry_position",
816
- token: token.address,
817
- mint: token.mint,
818
- carryPositionIndex,
819
- yieldingBankId: carry.yieldingBankId,
820
- yieldingBankAddress: resolvedBank?.address,
821
- baseMint,
822
- baseSymbol: mintSymbol(baseMint),
823
- sharesRaw: toBigInt(carry.shares).toString(),
824
- sharesUi: resolvedBank ? toUiAmount(carry.shares, resolvedBank.decimals) : undefined,
825
- tvlUsdRaw: toBigInt(carry.tvlUsd).toString(),
826
- tvlUsd: toUiAmount(carry.tvlUsd, TVL_USD_DECIMAL_PLACES),
827
- });
828
- });
829
-
830
- return snapshots;
831
- }
832
-
833
- export function buildYieldingBankAssetMetricSnapshots(
834
- bank: LYCYieldingBank
835
- ): YieldingBankAssetMetricSnapshot[] {
836
- const snapshots: YieldingBankAssetMetricSnapshot[] = [];
837
- if (!bank.data.baseAsset.mint.equals(PublicKey.default)) {
838
- snapshots.push(buildYieldingBankAssetMetricSnapshot(bank, bank.data.baseAsset, 0, "base"));
839
- }
840
-
841
- bank.data.assets.forEach((asset, index) => {
842
- if (asset.mint.equals(PublicKey.default)) return;
843
- snapshots.push(buildYieldingBankAssetMetricSnapshot(bank, asset, index + 1, "asset"));
844
- });
845
-
846
- return snapshots;
847
- }
848
-
849
- async function buildKaminoPositionRateSnapshots(
850
- client: LongYieldCarryClient,
851
- tokens: LYCToken[]
852
- ): Promise<{
853
- rates: KaminoPositionRateSnapshot[];
854
- errors: ProtocolMetricsSnapshotError[];
855
- }> {
856
- const rates: KaminoPositionRateSnapshot[] = [];
857
- const errors: ProtocolMetricsSnapshotError[] = [];
858
- const kaminoData = client.getLendingPlatformClientByPlatform(LendingPlatform.Kamino).data;
859
-
860
- for (const token of tokens) {
861
- const kaminoPositions = token.usedLendingPositions.filter(
862
- ({ data: position }) => lendingPlatformToEnum(position.platform) === LendingPlatform.Kamino
863
- );
864
- const maxCollateralUsd = Math.max(
865
- 0,
866
- ...kaminoPositions.map(({ data: position }) => kaminoCollateralUsd(token, position))
867
- );
868
-
869
- for (const { index, data: position } of kaminoPositions) {
870
- const collateralUsd = kaminoCollateralUsd(token, position);
871
- if (!shouldIncludeKaminoPositionRate(collateralUsd, maxCollateralUsd)) {
872
- continue;
873
- }
874
-
875
- try {
876
- const rate = await buildKaminoPositionRateSnapshot(token, index, position, kaminoData);
877
- rates.push(rate);
878
- } catch (err) {
879
- errors.push({
880
- scope: "kamino_position_rate",
881
- token: token.address,
882
- lendingPositionIndex: index,
883
- message: err instanceof Error ? err.message : String(err),
884
- });
885
- }
886
- }
887
- }
888
-
889
- return { rates, errors };
890
- }
891
-
892
- async function buildKaminoPositionRateSnapshot(
893
- token: LYCToken,
894
- lendingPositionIndex: number,
895
- position: TokenLendingPositionData,
896
- kaminoData: ReturnType<LongYieldCarryClient["getLendingPlatformClientByPlatform"]>["data"]
897
- ): Promise<KaminoPositionRateSnapshot> {
898
- const pool = fromWeb3Pk(position.pool);
899
- const [collateralReserve, debtReserve] = await Promise.all([
900
- kaminoData.fetchReserve(pool, fromWeb3Pk(position.collateralReserve)),
901
- kaminoData.fetchReserve(pool, fromWeb3Pk(position.debtReserve)),
902
- ]);
903
-
904
- if (!collateralReserve || !debtReserve) {
905
- throw new Error("Failed to fetch Kamino reserves");
906
- }
907
-
908
- return buildKaminoPositionRateSnapshotFromReserves(
909
- token,
910
- lendingPositionIndex,
911
- position,
912
- collateralReserve,
913
- debtReserve
914
- );
915
- }
916
-
917
- export function buildKaminoPositionRateSnapshotFromReserves(
918
- token: LYCToken,
919
- lendingPositionIndex: number,
920
- position: TokenLendingPositionData,
921
- collateralReserve: ReserveBase,
922
- debtReserve: ReserveBase
923
- ): KaminoPositionRateSnapshot {
924
- const supplyEffectiveApy = collateralReserve.supplyAPY(debtReserve.address);
925
- const borrowEffectiveApy = debtReserve.borrowAPY(collateralReserve.address);
926
-
927
- return {
928
- entityType: "kamino_position_rate",
929
- token: token.address,
930
- mint: token.mint,
931
- lendingPositionIndex,
932
- pool: fromWeb3Pk(position.pool),
933
- userAccount: fromWeb3Pk(position.protocolUserAcc),
934
- collateralReserve: fromWeb3Pk(position.collateralReserve),
935
- debtReserve: fromWeb3Pk(position.debtReserve),
936
- collateralMint: collateralReserve.mint.mint,
937
- debtMint: debtReserve.mint.mint,
938
- supplyBaseApy: collateralReserve.deposits.apy,
939
- borrowBaseApy: debtReserve.borrows.apy,
940
- supplyEffectiveApy,
941
- borrowEffectiveApy,
942
- netEffectiveApy: supplyEffectiveApy - borrowEffectiveApy,
943
- collateralReserveUtilizationPct: collateralReserve.utilizationRatePct(),
944
- debtReserveUtilizationPct: debtReserve.utilizationRatePct(),
945
- onChainLtvUtilizationBps: position.accounting.ltvUtilizationRateBps,
946
- targetUtilizationRateBps: position.config.targetUtilizationRateBps,
947
- maxDeviationAboveTargetUtilBps: position.config.maxDeviationAboveTargetUtilBps,
948
- maxDeviationBelowTargetUtilBps: position.config.maxDeviationBelowTargetUtilBps,
949
- };
950
- }
951
-
952
- function buildYieldingBankAssetMetricSnapshot(
953
- bank: LYCYieldingBank,
954
- asset: YieldingBankAccountData["baseAsset"],
955
- assetIndex: number,
956
- assetKind: "base" | "asset"
957
- ): YieldingBankAssetMetricSnapshot {
958
- const amountRaw = toBigInt(asset.amount);
959
- const priceRaw = toBigInt(asset.price);
960
- const tvlUsdRaw = calculateTvlUsd(amountRaw, priceRaw, asset.decimals);
961
-
962
- return {
963
- entityType: "yielding_bank_asset",
964
- bank: bank.address,
965
- assetIndex,
966
- assetKind,
967
- mint: fromWeb3Pk(asset.mint),
968
- amountRaw: amountRaw.toString(),
969
- amountUi: toUiAmount(asset.amount, asset.decimals),
970
- decimals: asset.decimals,
971
- priceRaw: priceRaw.toString(),
972
- priceUsd: toUiAmount(asset.price, asset.decimals),
973
- tvlUsdRaw: tvlUsdRaw.toString(),
974
- tvlUsd: toUiAmount(tvlUsdRaw, TVL_USD_DECIMAL_PLACES),
975
- };
976
- }