@moonwell-fi/moonwell-sdk 0.11.0 → 0.12.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 (242) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/_cjs/actions/axiosWithRetry.js +25 -0
  3. package/_cjs/actions/axiosWithRetry.js.map +1 -0
  4. package/_cjs/actions/beam/getBeamTokenLimits.js +2 -5
  5. package/_cjs/actions/beam/getBeamTokenLimits.js.map +1 -1
  6. package/_cjs/actions/beam/getBeamTokenRoutes.js +3 -6
  7. package/_cjs/actions/beam/getBeamTokenRoutes.js.map +1 -1
  8. package/_cjs/actions/core/markets/common.js +26 -12
  9. package/_cjs/actions/core/markets/common.js.map +1 -1
  10. package/_cjs/actions/core/markets/getMarketSnapshots.js +175 -326
  11. package/_cjs/actions/core/markets/getMarketSnapshots.js.map +1 -1
  12. package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js +33 -31
  13. package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
  14. package/_cjs/actions/governance/getCirculatingSupplySnapshots.js +38 -35
  15. package/_cjs/actions/governance/getCirculatingSupplySnapshots.js.map +1 -1
  16. package/_cjs/actions/governance/getDelegates.js +2 -5
  17. package/_cjs/actions/governance/getDelegates.js.map +1 -1
  18. package/_cjs/actions/governance/getDiscussions.js +3 -3
  19. package/_cjs/actions/governance/getDiscussions.js.map +1 -1
  20. package/_cjs/actions/governance/getStakingSnapshots.js +18 -17
  21. package/_cjs/actions/governance/getStakingSnapshots.js.map +1 -1
  22. package/_cjs/actions/governance/getUserVotingPowers.js +12 -4
  23. package/_cjs/actions/governance/getUserVotingPowers.js.map +1 -1
  24. package/_cjs/actions/governance/governor-api-client.js +10 -13
  25. package/_cjs/actions/governance/governor-api-client.js.map +1 -1
  26. package/_cjs/actions/governance/proposals/common.js +248 -211
  27. package/_cjs/actions/governance/proposals/common.js.map +1 -1
  28. package/_cjs/actions/governance/snapshot/common.js +2 -5
  29. package/_cjs/actions/governance/snapshot/common.js.map +1 -1
  30. package/_cjs/actions/lunar-indexer-client.js +4 -0
  31. package/_cjs/actions/lunar-indexer-client.js.map +1 -1
  32. package/_cjs/actions/morpho/markets/common.js +28 -34
  33. package/_cjs/actions/morpho/markets/common.js.map +1 -1
  34. package/_cjs/actions/morpho/markets/lunarIndexerTransform.js +5 -8
  35. package/_cjs/actions/morpho/markets/lunarIndexerTransform.js.map +1 -1
  36. package/_cjs/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js +12 -69
  37. package/_cjs/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js.map +1 -1
  38. package/_cjs/actions/morpho/vaults/common.js +7 -4
  39. package/_cjs/actions/morpho/vaults/common.js.map +1 -1
  40. package/_cjs/actions/morpho/vaults/getMorphoVaultSnapshots.js +21 -78
  41. package/_cjs/actions/morpho/vaults/getMorphoVaultSnapshots.js.map +1 -1
  42. package/_cjs/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js +13 -66
  43. package/_cjs/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js.map +1 -1
  44. package/_cjs/actions/retry.js +63 -0
  45. package/_cjs/actions/retry.js.map +1 -0
  46. package/_cjs/client/createMoonwellClient.js +9 -3
  47. package/_cjs/client/createMoonwellClient.js.map +1 -1
  48. package/_cjs/common/getBlockNumberAtTimestamp.js +42 -0
  49. package/_cjs/common/getBlockNumberAtTimestamp.js.map +1 -0
  50. package/_cjs/common/index.js +3 -1
  51. package/_cjs/common/index.js.map +1 -1
  52. package/_cjs/environments/definitions/arbitrum/environment.js +1 -2
  53. package/_cjs/environments/definitions/arbitrum/environment.js.map +1 -1
  54. package/_cjs/environments/definitions/avalanche/environment.js +1 -2
  55. package/_cjs/environments/definitions/avalanche/environment.js.map +1 -1
  56. package/_cjs/environments/definitions/base/custom.js +0 -1
  57. package/_cjs/environments/definitions/base/custom.js.map +1 -1
  58. package/_cjs/environments/definitions/base/environment.js +1 -2
  59. package/_cjs/environments/definitions/base/environment.js.map +1 -1
  60. package/_cjs/environments/definitions/ethereum/environment.js +1 -2
  61. package/_cjs/environments/definitions/ethereum/environment.js.map +1 -1
  62. package/_cjs/environments/definitions/moonbeam/environment.js +1 -2
  63. package/_cjs/environments/definitions/moonbeam/environment.js.map +1 -1
  64. package/_cjs/environments/definitions/optimism/custom.js +0 -1
  65. package/_cjs/environments/definitions/optimism/custom.js.map +1 -1
  66. package/_cjs/environments/definitions/optimism/environment.js +1 -2
  67. package/_cjs/environments/definitions/optimism/environment.js.map +1 -1
  68. package/_cjs/environments/definitions/polygon/environment.js +1 -2
  69. package/_cjs/environments/definitions/polygon/environment.js.map +1 -1
  70. package/_cjs/environments/index.js +8 -8
  71. package/_cjs/environments/index.js.map +1 -1
  72. package/_cjs/environments/types/config.js +1 -0
  73. package/_cjs/environments/types/config.js.map +1 -1
  74. package/_cjs/errors/version.js +1 -1
  75. package/_esm/actions/axiosWithRetry.js +32 -0
  76. package/_esm/actions/axiosWithRetry.js.map +1 -0
  77. package/_esm/actions/beam/getBeamTokenLimits.js +2 -2
  78. package/_esm/actions/beam/getBeamTokenLimits.js.map +1 -1
  79. package/_esm/actions/beam/getBeamTokenRoutes.js +3 -3
  80. package/_esm/actions/beam/getBeamTokenRoutes.js.map +1 -1
  81. package/_esm/actions/core/markets/common.js +26 -13
  82. package/_esm/actions/core/markets/common.js.map +1 -1
  83. package/_esm/actions/core/markets/getMarketSnapshots.js +196 -348
  84. package/_esm/actions/core/markets/getMarketSnapshots.js.map +1 -1
  85. package/_esm/actions/core/user-positions/getUserPositionSnapshots.js +34 -31
  86. package/_esm/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
  87. package/_esm/actions/governance/getCirculatingSupplySnapshots.js +38 -33
  88. package/_esm/actions/governance/getCirculatingSupplySnapshots.js.map +1 -1
  89. package/_esm/actions/governance/getDelegates.js +2 -2
  90. package/_esm/actions/governance/getDelegates.js.map +1 -1
  91. package/_esm/actions/governance/getDiscussions.js +3 -3
  92. package/_esm/actions/governance/getDiscussions.js.map +1 -1
  93. package/_esm/actions/governance/getStakingSnapshots.js +19 -15
  94. package/_esm/actions/governance/getStakingSnapshots.js.map +1 -1
  95. package/_esm/actions/governance/getUserVotingPowers.js +13 -5
  96. package/_esm/actions/governance/getUserVotingPowers.js.map +1 -1
  97. package/_esm/actions/governance/governor-api-client.js +10 -10
  98. package/_esm/actions/governance/governor-api-client.js.map +1 -1
  99. package/_esm/actions/governance/proposals/common.js +247 -216
  100. package/_esm/actions/governance/proposals/common.js.map +1 -1
  101. package/_esm/actions/governance/snapshot/common.js +2 -2
  102. package/_esm/actions/governance/snapshot/common.js.map +1 -1
  103. package/_esm/actions/lunar-indexer-client.js +6 -0
  104. package/_esm/actions/lunar-indexer-client.js.map +1 -1
  105. package/_esm/actions/morpho/markets/common.js +29 -36
  106. package/_esm/actions/morpho/markets/common.js.map +1 -1
  107. package/_esm/actions/morpho/markets/lunarIndexerTransform.js +5 -5
  108. package/_esm/actions/morpho/markets/lunarIndexerTransform.js.map +1 -1
  109. package/_esm/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js +14 -68
  110. package/_esm/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js.map +1 -1
  111. package/_esm/actions/morpho/vaults/common.js +7 -4
  112. package/_esm/actions/morpho/vaults/common.js.map +1 -1
  113. package/_esm/actions/morpho/vaults/getMorphoVaultSnapshots.js +24 -78
  114. package/_esm/actions/morpho/vaults/getMorphoVaultSnapshots.js.map +1 -1
  115. package/_esm/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js +15 -65
  116. package/_esm/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js.map +1 -1
  117. package/_esm/actions/retry.js +90 -0
  118. package/_esm/actions/retry.js.map +1 -0
  119. package/_esm/client/createMoonwellClient.js +9 -3
  120. package/_esm/client/createMoonwellClient.js.map +1 -1
  121. package/_esm/common/getBlockNumberAtTimestamp.js +56 -0
  122. package/_esm/common/getBlockNumberAtTimestamp.js.map +1 -0
  123. package/_esm/common/index.js +1 -0
  124. package/_esm/common/index.js.map +1 -1
  125. package/_esm/environments/definitions/arbitrum/environment.js +1 -2
  126. package/_esm/environments/definitions/arbitrum/environment.js.map +1 -1
  127. package/_esm/environments/definitions/avalanche/environment.js +1 -2
  128. package/_esm/environments/definitions/avalanche/environment.js.map +1 -1
  129. package/_esm/environments/definitions/base/custom.js +0 -1
  130. package/_esm/environments/definitions/base/custom.js.map +1 -1
  131. package/_esm/environments/definitions/base/environment.js +1 -2
  132. package/_esm/environments/definitions/base/environment.js.map +1 -1
  133. package/_esm/environments/definitions/ethereum/environment.js +1 -2
  134. package/_esm/environments/definitions/ethereum/environment.js.map +1 -1
  135. package/_esm/environments/definitions/moonbeam/environment.js +1 -2
  136. package/_esm/environments/definitions/moonbeam/environment.js.map +1 -1
  137. package/_esm/environments/definitions/optimism/custom.js +0 -1
  138. package/_esm/environments/definitions/optimism/custom.js.map +1 -1
  139. package/_esm/environments/definitions/optimism/environment.js +1 -2
  140. package/_esm/environments/definitions/optimism/environment.js.map +1 -1
  141. package/_esm/environments/definitions/polygon/environment.js +1 -2
  142. package/_esm/environments/definitions/polygon/environment.js.map +1 -1
  143. package/_esm/environments/index.js +8 -8
  144. package/_esm/environments/index.js.map +1 -1
  145. package/_esm/environments/types/config.js +1 -0
  146. package/_esm/environments/types/config.js.map +1 -1
  147. package/_esm/errors/version.js +1 -1
  148. package/_types/actions/axiosWithRetry.d.ts +16 -0
  149. package/_types/actions/axiosWithRetry.d.ts.map +1 -0
  150. package/_types/actions/beam/getBeamTokenLimits.d.ts.map +1 -1
  151. package/_types/actions/beam/getBeamTokenRoutes.d.ts.map +1 -1
  152. package/_types/actions/core/markets/common.d.ts.map +1 -1
  153. package/_types/actions/core/markets/getMarketSnapshots.d.ts.map +1 -1
  154. package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts +0 -1
  155. package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts.map +1 -1
  156. package/_types/actions/governance/getCirculatingSupplySnapshots.d.ts.map +1 -1
  157. package/_types/actions/governance/getDelegates.d.ts.map +1 -1
  158. package/_types/actions/governance/getDiscussions.d.ts.map +1 -1
  159. package/_types/actions/governance/getStakingSnapshots.d.ts.map +1 -1
  160. package/_types/actions/governance/getUserVotingPowers.d.ts +13 -1
  161. package/_types/actions/governance/getUserVotingPowers.d.ts.map +1 -1
  162. package/_types/actions/governance/governor-api-client.d.ts.map +1 -1
  163. package/_types/actions/governance/proposals/common.d.ts +2 -8
  164. package/_types/actions/governance/proposals/common.d.ts.map +1 -1
  165. package/_types/actions/governance/snapshot/common.d.ts.map +1 -1
  166. package/_types/actions/lunar-indexer-client.d.ts.map +1 -1
  167. package/_types/actions/morpho/markets/common.d.ts.map +1 -1
  168. package/_types/actions/morpho/markets/lunarIndexerTransform.d.ts.map +1 -1
  169. package/_types/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.d.ts.map +1 -1
  170. package/_types/actions/morpho/vaults/common.d.ts.map +1 -1
  171. package/_types/actions/morpho/vaults/getMorphoVaultSnapshots.d.ts.map +1 -1
  172. package/_types/actions/morpho/vaults/getMorphoVaultStakingSnapshots.d.ts.map +1 -1
  173. package/_types/actions/retry.d.ts +45 -0
  174. package/_types/actions/retry.d.ts.map +1 -0
  175. package/_types/client/createMoonwellClient.d.ts +6 -6
  176. package/_types/client/createMoonwellClient.d.ts.map +1 -1
  177. package/_types/common/getBlockNumberAtTimestamp.d.ts +15 -0
  178. package/_types/common/getBlockNumberAtTimestamp.d.ts.map +1 -0
  179. package/_types/common/index.d.ts +1 -0
  180. package/_types/common/index.d.ts.map +1 -1
  181. package/_types/environments/definitions/arbitrum/environment.d.ts +1 -1
  182. package/_types/environments/definitions/arbitrum/environment.d.ts.map +1 -1
  183. package/_types/environments/definitions/avalanche/environment.d.ts +1 -1
  184. package/_types/environments/definitions/avalanche/environment.d.ts.map +1 -1
  185. package/_types/environments/definitions/base/custom.d.ts +0 -1
  186. package/_types/environments/definitions/base/custom.d.ts.map +1 -1
  187. package/_types/environments/definitions/base/environment.d.ts +22 -4
  188. package/_types/environments/definitions/base/environment.d.ts.map +1 -1
  189. package/_types/environments/definitions/ethereum/environment.d.ts +1 -1
  190. package/_types/environments/definitions/ethereum/environment.d.ts.map +1 -1
  191. package/_types/environments/definitions/moonbeam/custom.d.ts +1 -1
  192. package/_types/environments/definitions/moonbeam/environment.d.ts +2 -2
  193. package/_types/environments/definitions/moonbeam/environment.d.ts.map +1 -1
  194. package/_types/environments/definitions/optimism/custom.d.ts +0 -1
  195. package/_types/environments/definitions/optimism/custom.d.ts.map +1 -1
  196. package/_types/environments/definitions/optimism/environment.d.ts +1 -2
  197. package/_types/environments/definitions/optimism/environment.d.ts.map +1 -1
  198. package/_types/environments/definitions/polygon/environment.d.ts +1 -1
  199. package/_types/environments/definitions/polygon/environment.d.ts.map +1 -1
  200. package/_types/environments/index.d.ts +119 -23
  201. package/_types/environments/index.d.ts.map +1 -1
  202. package/_types/environments/types/config.d.ts +37 -44
  203. package/_types/environments/types/config.d.ts.map +1 -1
  204. package/_types/errors/version.d.ts +1 -1
  205. package/actions/axiosWithRetry.ts +42 -0
  206. package/actions/beam/getBeamTokenLimits.ts +2 -2
  207. package/actions/beam/getBeamTokenRoutes.ts +3 -3
  208. package/actions/core/markets/common.ts +33 -18
  209. package/actions/core/markets/getMarketSnapshots.ts +263 -513
  210. package/actions/core/user-positions/getUserPositionSnapshots.ts +46 -48
  211. package/actions/governance/getCirculatingSupplySnapshots.ts +46 -38
  212. package/actions/governance/getDelegates.ts +2 -2
  213. package/actions/governance/getDiscussions.ts +6 -5
  214. package/actions/governance/getStakingSnapshots.ts +34 -31
  215. package/actions/governance/getUserVotingPowers.ts +43 -8
  216. package/actions/governance/governor-api-client.ts +12 -10
  217. package/actions/governance/proposals/common.ts +370 -330
  218. package/actions/governance/snapshot/common.ts +2 -2
  219. package/actions/lunar-indexer-client.ts +8 -0
  220. package/actions/morpho/markets/common.ts +34 -45
  221. package/actions/morpho/markets/lunarIndexerTransform.ts +6 -5
  222. package/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.ts +20 -109
  223. package/actions/morpho/vaults/common.ts +7 -6
  224. package/actions/morpho/vaults/getMorphoVaultSnapshots.ts +36 -120
  225. package/actions/morpho/vaults/getMorphoVaultStakingSnapshots.ts +24 -111
  226. package/actions/retry.ts +121 -0
  227. package/client/createMoonwellClient.ts +17 -5
  228. package/common/getBlockNumberAtTimestamp.ts +59 -0
  229. package/common/index.ts +1 -0
  230. package/environments/definitions/arbitrum/environment.ts +0 -2
  231. package/environments/definitions/avalanche/environment.ts +0 -2
  232. package/environments/definitions/base/custom.ts +0 -1
  233. package/environments/definitions/base/environment.ts +0 -2
  234. package/environments/definitions/ethereum/environment.ts +0 -2
  235. package/environments/definitions/moonbeam/environment.ts +0 -2
  236. package/environments/definitions/optimism/custom.ts +0 -1
  237. package/environments/definitions/optimism/environment.ts +0 -2
  238. package/environments/definitions/polygon/environment.ts +0 -2
  239. package/environments/index.ts +6 -27
  240. package/environments/types/config.ts +45 -210
  241. package/errors/version.ts +1 -1
  242. package/package.json +2 -2
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.trimLeadingEmptySnapshots = trimLeadingEmptySnapshots;
7
4
  exports.getMarketSnapshots = getMarketSnapshots;
8
5
  exports.fetchIsolatedMarketSnapshots = fetchIsolatedMarketSnapshots;
9
- const axios_1 = __importDefault(require("axios"));
10
6
  const index_js_1 = require("../../../common/index.js");
11
7
  const lunar_indexer_helpers_js_1 = require("../../../common/lunar-indexer-helpers.js");
8
+ const axiosWithRetry_js_1 = require("../../axiosWithRetry.js");
12
9
  const lunar_indexer_client_js_1 = require("../../lunar-indexer-client.js");
13
10
  const lunar_indexer_transformers_js_1 = require("../../lunar-indexer-transformers.js");
14
11
  const lunarIndexerTransform_js_1 = require("../../morpho/markets/lunarIndexerTransform.js");
@@ -61,66 +58,41 @@ async function getMarketSnapshots(client, args) {
61
58
  return trimLeadingEmptySnapshots(result);
62
59
  }
63
60
  async function fetchCoreMarketSnapshots(marketAddress, environment, period, startTime, endTime) {
64
- if (environment.lunarIndexerUrl) {
61
+ if (!environment.lunarIndexerUrl) {
62
+ if (!environment.indexerUrl)
63
+ return [];
65
64
  try {
66
- const result = await fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, startTime, endTime);
67
- return result;
65
+ return await fetchCoreMarketSnapshotsFromPonder(marketAddress, environment);
68
66
  }
69
67
  catch (error) {
70
- if (!(0, lunar_indexer_client_js_1.shouldFallback)(error)) {
71
- throw error;
72
- }
73
- console.debug("[Lunar fallback] Falling back to Ponder for snapshots:", error);
68
+ console.warn(`[getMarketSnapshots] Ponder failed for chain ${environment.chainId}:`, error);
69
+ environment.onError?.(error, {
70
+ source: "market-snapshots-ponder",
71
+ chainId: environment.chainId,
72
+ });
73
+ return [];
74
74
  }
75
75
  }
76
- const result = await fetchCoreMarketSnapshotsFromPonder(marketAddress, environment);
77
- return result;
78
- }
79
- async function fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, customStartTime, customEndTime) {
80
- if (!environment.lunarIndexerUrl) {
81
- throw new Error("Lunar Indexer URL not configured");
76
+ try {
77
+ return await fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, startTime, endTime);
82
78
  }
83
- const client = (0, lunar_indexer_client_js_1.createLunarIndexerClient)({
84
- baseUrl: environment.lunarIndexerUrl,
85
- timeout: lunar_indexer_client_js_1.DEFAULT_LUNAR_TIMEOUT_MS,
86
- });
87
- const marketId = (0, lunar_indexer_helpers_js_1.buildMarketId)(environment.chainId, marketAddress);
88
- const { startTime, endTime, granularity } = (0, index_js_1.calculateTimeRange)(period, customStartTime, customEndTime);
89
- const allSnapshots = [];
90
- let cursor = null;
91
- const MAX_PAGES = 100;
92
- let page = 0;
93
- do {
94
- const response = await client.getMarketSnapshots(marketId, {
95
- limit: 1000,
96
- ...(cursor && { cursor }),
97
- granularity: (0, index_js_1.toApiGranularity)(granularity),
98
- startTime,
99
- endTime,
79
+ catch (error) {
80
+ console.warn(`[getMarketSnapshots] Lunar Indexer failed for chain ${environment.chainId}:`, error);
81
+ environment.onError?.(error, {
82
+ source: "market-snapshots",
83
+ chainId: environment.chainId,
100
84
  });
101
- const transformed = (0, lunar_indexer_transformers_js_1.transformMarketSnapshots)(response.results, environment.chainId);
102
- allSnapshots.push(...transformed);
103
- cursor = response.nextCursor;
104
- page++;
105
- } while (cursor !== null && page < MAX_PAGES);
106
- allSnapshots.sort((a, b) => a.timestamp - b.timestamp);
107
- return (0, index_js_1.applyGranularity)(allSnapshots, granularity).map((snapshot) => {
108
- const supplied = snapshot.totalSupply;
109
- const suppliedUsd = snapshot.totalSupplyUsd;
110
- const price = supplied > 0 ? suppliedUsd / supplied : 0;
111
- return {
112
- ...snapshot,
113
- collateralTokenPrice: price,
114
- loanTokenPrice: price,
115
- };
116
- });
85
+ return [];
86
+ }
117
87
  }
118
88
  async function fetchCoreMarketSnapshotsFromPonder(marketAddress, environment) {
89
+ if (!environment.indexerUrl)
90
+ return [];
119
91
  const dailyData = [];
120
92
  let hasNextPage = true;
121
93
  let endCursor;
122
94
  while (hasNextPage) {
123
- const result = await axios_1.default.post(environment.indexerUrl, {
95
+ const result = await (0, axiosWithRetry_js_1.postWithRetry)(environment.indexerUrl, {
124
96
  query: `
125
97
  query {
126
98
  marketDailySnapshots (
@@ -153,57 +125,73 @@ async function fetchCoreMarketSnapshotsFromPonder(marketAddress, environment) {
153
125
  hasNextPage = result.data.data.marketDailySnapshots.pageInfo.hasNextPage;
154
126
  endCursor = result.data.data.marketDailySnapshots.pageInfo.endCursor;
155
127
  }
156
- if (dailyData.length > 0) {
157
- return dailyData.map((point) => {
158
- const supplied = Number(point.totalSupplies);
159
- const borrow = Number(point.totalBorrows);
160
- const borrowUsd = Number(point.totalBorrowsUSD);
161
- const suppliedUsd = Number(point.totalSuppliesUSD);
162
- const liquidity = Math.max(point.totalLiquidity, 0);
163
- const liquidityUsd = Math.max(point.totalLiquidityUSD, 0);
164
- const price = suppliedUsd / supplied;
165
- const result = {
166
- marketId: marketAddress.toLowerCase(),
167
- chainId: environment.chainId,
168
- timestamp: point.timestamp * 1000,
169
- totalSupply: supplied,
170
- totalSupplyUsd: suppliedUsd,
171
- totalBorrows: borrow,
172
- totalBorrowsUsd: borrowUsd,
173
- totalLiquidity: liquidity,
174
- totalLiquidityUsd: liquidityUsd,
175
- totalReallocatableLiquidity: 0,
176
- totalReallocatableLiquidityUsd: 0,
177
- baseSupplyApy: point.baseSupplyApy,
178
- baseBorrowApy: point.baseBorrowApy,
179
- collateralTokenPrice: price,
180
- loanTokenPrice: price,
181
- };
182
- return result;
183
- });
184
- }
185
- else {
128
+ if (dailyData.length === 0)
186
129
  return [];
187
- }
130
+ return dailyData.map((point) => {
131
+ const supplied = Number(point.totalSupplies);
132
+ const borrow = Number(point.totalBorrows);
133
+ const borrowUsd = Number(point.totalBorrowsUSD);
134
+ const suppliedUsd = Number(point.totalSuppliesUSD);
135
+ const liquidity = Math.max(point.totalLiquidity, 0);
136
+ const liquidityUsd = Math.max(point.totalLiquidityUSD, 0);
137
+ const price = suppliedUsd / supplied;
138
+ return {
139
+ marketId: marketAddress.toLowerCase(),
140
+ chainId: environment.chainId,
141
+ timestamp: point.timestamp * 1000,
142
+ totalSupply: supplied,
143
+ totalSupplyUsd: suppliedUsd,
144
+ totalBorrows: borrow,
145
+ totalBorrowsUsd: borrowUsd,
146
+ totalLiquidity: liquidity,
147
+ totalLiquidityUsd: liquidityUsd,
148
+ totalReallocatableLiquidity: 0,
149
+ totalReallocatableLiquidityUsd: 0,
150
+ baseSupplyApy: point.baseSupplyApy,
151
+ baseBorrowApy: point.baseBorrowApy,
152
+ collateralTokenPrice: price,
153
+ loanTokenPrice: price,
154
+ };
155
+ });
188
156
  }
189
- async function fetchMorphoGraphQL(environment, query, operationName, variables) {
190
- try {
191
- const url = environment.custom.morpho?.apiUrl || "https://api.morpho.org/graphql";
192
- const response = await axios_1.default.post(url, { query: query, operationName, variables }, { timeout: 5000 });
193
- if (response.status !== 200 || response.data.errors) {
194
- if (typeof window !== "undefined") {
195
- console.debug(`[Morpho GraphQL Market Snapshots] Non-200 (${response.statusText}) or errors:`, response.data.errors);
196
- }
197
- return undefined;
198
- }
199
- return response.data.data;
200
- }
201
- catch (error) {
202
- if (typeof window !== "undefined") {
203
- console.debug("[Morpho GraphQL Market Snapshots] Error fetching data:", error);
204
- }
205
- return undefined;
157
+ async function fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, customStartTime, customEndTime) {
158
+ if (!environment.lunarIndexerUrl) {
159
+ throw new Error("Lunar Indexer URL not configured");
206
160
  }
161
+ const client = (0, lunar_indexer_client_js_1.createLunarIndexerClient)({
162
+ baseUrl: environment.lunarIndexerUrl,
163
+ timeout: lunar_indexer_client_js_1.DEFAULT_LUNAR_TIMEOUT_MS,
164
+ });
165
+ const marketId = (0, lunar_indexer_helpers_js_1.buildMarketId)(environment.chainId, marketAddress);
166
+ const { startTime, endTime, granularity } = (0, index_js_1.calculateTimeRange)(period, customStartTime, customEndTime);
167
+ const allSnapshots = [];
168
+ let cursor = null;
169
+ const MAX_PAGES = 100;
170
+ let page = 0;
171
+ do {
172
+ const response = await client.getMarketSnapshots(marketId, {
173
+ limit: 1000,
174
+ ...(cursor && { cursor }),
175
+ granularity: (0, index_js_1.toApiGranularity)(granularity),
176
+ startTime,
177
+ endTime,
178
+ });
179
+ const transformed = (0, lunar_indexer_transformers_js_1.transformMarketSnapshots)(response.results, environment.chainId);
180
+ allSnapshots.push(...transformed);
181
+ cursor = response.nextCursor;
182
+ page++;
183
+ } while (cursor !== null && page < MAX_PAGES);
184
+ allSnapshots.sort((a, b) => a.timestamp - b.timestamp);
185
+ return (0, index_js_1.applyGranularity)(allSnapshots, granularity).map((snapshot) => {
186
+ const supplied = snapshot.totalSupply;
187
+ const suppliedUsd = snapshot.totalSupplyUsd;
188
+ const price = supplied > 0 ? suppliedUsd / supplied : 0;
189
+ return {
190
+ ...snapshot,
191
+ collateralTokenPrice: price,
192
+ loanTokenPrice: price,
193
+ };
194
+ });
207
195
  }
208
196
  async function fetchWellPricesByTimestamp(lunarIndexerUrl, chainId, wellMarketConfig, startTime) {
209
197
  const wellIsCollateral = wellMarketConfig.collateralToken === "WELL";
@@ -233,238 +221,99 @@ async function fetchWellPricesByTimestamp(lunarIndexerUrl, chainId, wellMarketCo
233
221
  }
234
222
  async function fetchIsolatedMarketSnapshots(marketAddress, environment, period, customStartTime, customEndTime) {
235
223
  const lunarIndexerUrl = environment.lunarIndexerUrl;
236
- if (lunarIndexerUrl) {
237
- try {
238
- const { startTime } = (0, index_js_1.calculateTimeRange)(period, customStartTime, customEndTime);
239
- const marketConfig = Object.values(environment.config.morphoMarkets).find((m) => m.id.toLowerCase() === marketAddress.toLowerCase());
240
- const loanSymbol = marketConfig
241
- ? environment.config.tokens[marketConfig.loanToken]?.symbol
242
- : undefined;
243
- const collateralSymbol = marketConfig
244
- ? environment.config.tokens[marketConfig.collateralToken]?.symbol
245
- : undefined;
246
- const normalizeToCollateral = loanSymbol === "ETH" && collateralSymbol === "USDC";
247
- const isStkWellMarket = collateralSymbol === "stkWELL";
248
- const wellMarketConfig = isStkWellMarket
249
- ? Object.values(environment.config.morphoMarkets).find((m) => m.collateralToken === "WELL" || m.loanToken === "WELL")
250
- : undefined;
251
- const wellPricesPromise = wellMarketConfig
252
- ? fetchWellPricesByTimestamp(lunarIndexerUrl, environment.chainId, wellMarketConfig, startTime)
253
- : Promise.resolve(new Map());
254
- const allSnapshots = [];
255
- let cursor;
256
- const MAX_PAGES = 100;
257
- let page = 0;
258
- do {
259
- const response = await (0, lunarIndexerTransform_js_1.fetchMarketSnapshotsFromIndexer)(lunarIndexerUrl, environment.chainId, marketAddress, {
260
- startTime,
261
- granularity: "1d",
262
- limit: 1000,
263
- ...(cursor && { cursor }),
264
- });
265
- allSnapshots.push(...response.results
266
- .filter((s) => (0, index_js_1.isStartOfDay)(s.timestamp))
267
- .map((s) => (0, lunarIndexerTransform_js_1.transformIsolatedMarketSnapshotFromIndexer)(s, {
268
- normalizeToCollateral,
269
- })));
270
- cursor = response.nextCursor ?? undefined;
271
- page++;
272
- } while (cursor !== undefined && page < MAX_PAGES);
273
- const sanitizedSnapshots = normalizeToCollateral
274
- ? allSnapshots
275
- : allSnapshots.map((snapshot) => {
276
- if (snapshot.totalSupply === 0 || snapshot.loanTokenPrice === 0)
277
- return snapshot;
278
- const impliedLoanPrice = snapshot.totalSupplyUsd / snapshot.totalSupply;
279
- if (impliedLoanPrice < snapshot.loanTokenPrice * 0.1) {
280
- return {
281
- ...snapshot,
282
- totalSupply: snapshot.totalSupplyUsd / snapshot.loanTokenPrice,
283
- totalLiquidity: snapshot.totalLiquidityUsd / snapshot.loanTokenPrice,
284
- };
285
- }
286
- return snapshot;
287
- });
288
- if (isStkWellMarket) {
289
- const wellPriceByTimestampMs = await wellPricesPromise;
290
- return sanitizedSnapshots.map((snapshot) => {
291
- let collateralTokenPrice = snapshot.collateralTokenPrice;
292
- if (collateralTokenPrice === 0) {
293
- const wellPrice = wellPriceByTimestampMs.get(snapshot.timestamp);
294
- if (wellPrice)
295
- collateralTokenPrice = wellPrice;
296
- }
297
- const totalSupply = collateralTokenPrice > 0
298
- ? snapshot.totalSupplyUsd / collateralTokenPrice
299
- : snapshot.totalSupply;
300
- const totalLiquidity = collateralTokenPrice > 0
301
- ? snapshot.totalLiquidityUsd / collateralTokenPrice
302
- : snapshot.totalLiquidity;
303
- const totalReallocatableLiquidity = collateralTokenPrice > 0
304
- ? snapshot.totalReallocatableLiquidityUsd / collateralTokenPrice
305
- : snapshot.totalReallocatableLiquidity;
306
- return {
307
- ...snapshot,
308
- collateralTokenPrice,
309
- totalSupply,
310
- totalLiquidity,
311
- totalReallocatableLiquidity,
312
- };
313
- });
314
- }
315
- return sanitizedSnapshots;
316
- }
317
- catch (error) {
318
- if (!(0, lunar_indexer_client_js_1.shouldFallback)(error)) {
319
- throw error;
320
- }
321
- console.debug("[Lunar fallback] Falling back for isolated market snapshots:", error);
322
- }
224
+ if (!lunarIndexerUrl) {
225
+ return [];
323
226
  }
324
- return fetchIsolatedMarketSnapshotsFromBlueApi(marketAddress, environment, period, customStartTime, customEndTime);
325
- }
326
- async function fetchIsolatedMarketSnapshotsFromBlueApi(marketAddress, environment, period, customStartTime, customEndTime) {
327
- const marketConfig = Object.values(environment.config.morphoMarkets).find((market) => market.id.toLowerCase() === marketAddress.toLowerCase());
328
- const isStkWellMarket = marketConfig &&
329
- environment.config.tokens[marketConfig.collateralToken]?.symbol ===
330
- "stkWELL";
331
- let wellPrice = null;
332
- if (isStkWellMarket) {
333
- const wellMarketConfig = Object.values(environment.config.morphoMarkets).find((market) => market.collateralToken === "WELL" || market.loanToken === "WELL");
334
- if (wellMarketConfig) {
335
- const wellQuery = `
336
- query getWellPrice {
337
- wellMarket: marketByUniqueKey(
338
- chainId: ${environment.chainId}
339
- uniqueKey: "${wellMarketConfig.id.toLowerCase()}"
340
- ) {
341
- loanAsset {
342
- priceUsd
343
- }
344
- collateralAsset {
345
- priceUsd
346
- }
347
- }
348
- }`;
349
- const wellResult = await fetchMorphoGraphQL(environment, wellQuery, "getWellPrice");
350
- if (wellResult?.wellMarket) {
351
- wellPrice =
352
- wellMarketConfig.collateralToken === "WELL"
353
- ? wellResult.wellMarket.collateralAsset.priceUsd
354
- : wellResult.wellMarket.loanAsset.priceUsd;
355
- }
356
- }
227
+ try {
228
+ return await fetchIsolatedMarketSnapshotsFromLunar(marketAddress, environment, lunarIndexerUrl, period, customStartTime, customEndTime);
357
229
  }
358
- const operationName = "getMarketTotalTimeseries";
230
+ catch (error) {
231
+ console.warn(`[getMarketSnapshots] Lunar Indexer failed for chain ${environment.chainId}:`, error);
232
+ environment.onError?.(error, {
233
+ source: "market-snapshots",
234
+ chainId: environment.chainId,
235
+ });
236
+ return [];
237
+ }
238
+ }
239
+ async function fetchIsolatedMarketSnapshotsFromLunar(marketAddress, environment, lunarIndexerUrl, period, customStartTime, customEndTime) {
359
240
  const { startTime } = (0, index_js_1.calculateTimeRange)(period, customStartTime, customEndTime);
360
- const variables = {
361
- options: {
362
- startTimestamp: startTime,
363
- interval: "DAY",
364
- },
365
- };
366
- const query = `
367
- query getMarketTotalTimeseries($options: TimeseriesOptions) {
368
- marketTotalTimeseries: marketByUniqueKey(
369
- chainId: ${environment.chainId}
370
- uniqueKey: "${marketAddress.toLowerCase()}"
371
- ) {
372
- uniqueKey
373
- loanAsset {
374
- priceUsd
375
- decimals
376
- }
377
- collateralAsset {
378
- priceUsd
379
- decimals
380
- }
381
- historicalState {
382
- supplyApy(options: $options) {
383
- x
384
- y
385
- }
386
- borrowApy(options: $options) {
387
- x
388
- y
389
- }
390
- borrowAssets(options: $options) {
391
- x
392
- y
393
- }
394
- borrowAssetsUsd(options: $options) {
395
- x
396
- y
397
- }
398
- supplyAssets(options: $options) {
399
- x
400
- y
401
- }
402
- supplyAssetsUsd(options: $options) {
403
- x
404
- y
405
- }
406
- liquidityAssets(options: $options) {
407
- x
408
- y
409
- }
410
- liquidityAssetsUsd(options: $options) {
411
- x
412
- y
413
- }
414
- }
415
- }
416
- }`;
417
- const result = await fetchMorphoGraphQL(environment, query, operationName, variables);
418
- if (result) {
419
- try {
420
- const markets = result.marketTotalTimeseries.historicalState.borrowAssets.map((borrowAssets, index) => {
421
- const loanDecimals = result.marketTotalTimeseries.loanAsset.decimals;
422
- const borrowAssetsUsd = result.marketTotalTimeseries.historicalState.borrowAssetsUsd[index];
423
- const supplyAssets = result.marketTotalTimeseries.historicalState.supplyAssets[index];
424
- const supplyAssetsUsd = result.marketTotalTimeseries.historicalState.supplyAssetsUsd[index];
425
- const liquidityAssets = result.marketTotalTimeseries.historicalState.liquidityAssets[index];
426
- const liquidityAssetsUsd = result.marketTotalTimeseries.historicalState.liquidityAssetsUsd[index];
427
- const supplyApy = result.marketTotalTimeseries.historicalState.supplyApy[index];
428
- const borrowApy = result.marketTotalTimeseries.historicalState.borrowApy[index];
429
- let collateralTokenPrice = result.marketTotalTimeseries.collateralAsset.priceUsd;
430
- const loanTokenPrice = result.marketTotalTimeseries.loanAsset.priceUsd;
431
- if (isStkWellMarket && wellPrice !== null) {
432
- collateralTokenPrice = wellPrice;
433
- }
434
- const totalSupply = (new index_js_1.Amount(BigInt(supplyAssets.y), Number(loanDecimals)).value *
435
- loanTokenPrice) /
436
- collateralTokenPrice;
437
- const totalBorrows = new index_js_1.Amount(BigInt(borrowAssets.y), Number(loanDecimals)).value;
438
- const totalLiquidity = (new index_js_1.Amount(BigInt(liquidityAssets.y), Number(loanDecimals))
439
- .value *
440
- loanTokenPrice) /
441
- collateralTokenPrice;
241
+ const marketConfig = Object.values(environment.config.morphoMarkets).find((m) => m.id.toLowerCase() === marketAddress.toLowerCase());
242
+ const loanSymbol = marketConfig
243
+ ? environment.config.tokens[marketConfig.loanToken]?.symbol
244
+ : undefined;
245
+ const collateralSymbol = marketConfig
246
+ ? environment.config.tokens[marketConfig.collateralToken]?.symbol
247
+ : undefined;
248
+ const normalizeToCollateral = loanSymbol === "ETH" && collateralSymbol === "USDC";
249
+ const isStkWellMarket = collateralSymbol === "stkWELL";
250
+ const wellMarketConfig = isStkWellMarket
251
+ ? Object.values(environment.config.morphoMarkets).find((m) => m.collateralToken === "WELL" || m.loanToken === "WELL")
252
+ : undefined;
253
+ const wellPricesPromise = wellMarketConfig
254
+ ? fetchWellPricesByTimestamp(lunarIndexerUrl, environment.chainId, wellMarketConfig, startTime)
255
+ : Promise.resolve(new Map());
256
+ const allSnapshots = [];
257
+ let cursor;
258
+ const MAX_PAGES = 100;
259
+ let page = 0;
260
+ do {
261
+ const response = await (0, lunarIndexerTransform_js_1.fetchMarketSnapshotsFromIndexer)(lunarIndexerUrl, environment.chainId, marketAddress, {
262
+ startTime,
263
+ granularity: "1d",
264
+ limit: 1000,
265
+ ...(cursor && { cursor }),
266
+ });
267
+ allSnapshots.push(...response.results
268
+ .filter((s) => (0, index_js_1.isStartOfDay)(s.timestamp))
269
+ .map((s) => (0, lunarIndexerTransform_js_1.transformIsolatedMarketSnapshotFromIndexer)(s, {
270
+ normalizeToCollateral,
271
+ })));
272
+ cursor = response.nextCursor ?? undefined;
273
+ page++;
274
+ } while (cursor !== undefined && page < MAX_PAGES);
275
+ const sanitizedSnapshots = normalizeToCollateral
276
+ ? allSnapshots
277
+ : allSnapshots.map((snapshot) => {
278
+ if (snapshot.totalSupply === 0 || snapshot.loanTokenPrice === 0)
279
+ return snapshot;
280
+ const impliedLoanPrice = snapshot.totalSupplyUsd / snapshot.totalSupply;
281
+ if (impliedLoanPrice < snapshot.loanTokenPrice * 0.1) {
442
282
  return {
443
- chainId: environment.chainId,
444
- timestamp: borrowAssets.x * 1000,
445
- marketId: marketAddress.toLowerCase(),
446
- totalBorrows,
447
- totalBorrowsUsd: Number(borrowAssetsUsd.y),
448
- totalSupply,
449
- totalSupplyUsd: Number(supplyAssetsUsd.y),
450
- totalLiquidity,
451
- totalLiquidityUsd: Number(liquidityAssetsUsd.y),
452
- totalReallocatableLiquidity: 0,
453
- totalReallocatableLiquidityUsd: 0,
454
- baseSupplyApy: supplyApy.y,
455
- baseBorrowApy: borrowApy.y,
456
- loanTokenPrice,
457
- collateralTokenPrice,
283
+ ...snapshot,
284
+ totalSupply: snapshot.totalSupplyUsd / snapshot.loanTokenPrice,
285
+ totalLiquidity: snapshot.totalLiquidityUsd / snapshot.loanTokenPrice,
458
286
  };
459
- });
460
- return markets;
461
- }
462
- catch (ex) {
463
- return [];
464
- }
465
- }
466
- else {
467
- return [];
287
+ }
288
+ return snapshot;
289
+ });
290
+ if (isStkWellMarket) {
291
+ const wellPriceByTimestampMs = await wellPricesPromise;
292
+ return sanitizedSnapshots.map((snapshot) => {
293
+ let collateralTokenPrice = snapshot.collateralTokenPrice;
294
+ if (collateralTokenPrice === 0) {
295
+ const wellPrice = wellPriceByTimestampMs.get(snapshot.timestamp);
296
+ if (wellPrice)
297
+ collateralTokenPrice = wellPrice;
298
+ }
299
+ const totalSupply = collateralTokenPrice > 0
300
+ ? snapshot.totalSupplyUsd / collateralTokenPrice
301
+ : snapshot.totalSupply;
302
+ const totalLiquidity = collateralTokenPrice > 0
303
+ ? snapshot.totalLiquidityUsd / collateralTokenPrice
304
+ : snapshot.totalLiquidity;
305
+ const totalReallocatableLiquidity = collateralTokenPrice > 0
306
+ ? snapshot.totalReallocatableLiquidityUsd / collateralTokenPrice
307
+ : snapshot.totalReallocatableLiquidity;
308
+ return {
309
+ ...snapshot,
310
+ collateralTokenPrice,
311
+ totalSupply,
312
+ totalLiquidity,
313
+ totalReallocatableLiquidity,
314
+ };
315
+ });
468
316
  }
317
+ return sanitizedSnapshots;
469
318
  }
470
319
  //# sourceMappingURL=getMarketSnapshots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getMarketSnapshots.js","sourceRoot":"","sources":["../../../../actions/core/markets/getMarketSnapshots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getMarketSnapshots.js","sourceRoot":"","sources":["../../../../actions/core/markets/getMarketSnapshots.ts"],"names":[],"mappings":"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"}