@moonwell-fi/moonwell-sdk 0.9.26 → 0.9.28

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 (81) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/_cjs/actions/core/markets/common.js +291 -5
  3. package/_cjs/actions/core/markets/common.js.map +1 -1
  4. package/_cjs/actions/core/markets/getMarketSnapshots.js +83 -3
  5. package/_cjs/actions/core/markets/getMarketSnapshots.js.map +1 -1
  6. package/_cjs/actions/core/user-positions/common.js +61 -1
  7. package/_cjs/actions/core/user-positions/common.js.map +1 -1
  8. package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js +70 -2
  9. package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
  10. package/_cjs/actions/lunar-indexer-client.js +164 -0
  11. package/_cjs/actions/lunar-indexer-client.js.map +1 -0
  12. package/_cjs/actions/lunar-indexer-transformers.js +47 -0
  13. package/_cjs/actions/lunar-indexer-transformers.js.map +1 -0
  14. package/_cjs/environments/definitions/base/environment.js +2 -1
  15. package/_cjs/environments/definitions/base/environment.js.map +1 -1
  16. package/_cjs/environments/definitions/moonbeam/environment.js +2 -1
  17. package/_cjs/environments/definitions/moonbeam/environment.js.map +1 -1
  18. package/_cjs/environments/definitions/optimism/environment.js +2 -1
  19. package/_cjs/environments/definitions/optimism/environment.js.map +1 -1
  20. package/_cjs/environments/types/config.js +1 -0
  21. package/_cjs/environments/types/config.js.map +1 -1
  22. package/_cjs/errors/version.js +1 -1
  23. package/_cjs/utils/lunar-indexer-helpers.js +27 -0
  24. package/_cjs/utils/lunar-indexer-helpers.js.map +1 -0
  25. package/_esm/actions/core/markets/common.js +302 -5
  26. package/_esm/actions/core/markets/common.js.map +1 -1
  27. package/_esm/actions/core/markets/getMarketSnapshots.js +87 -3
  28. package/_esm/actions/core/markets/getMarketSnapshots.js.map +1 -1
  29. package/_esm/actions/core/user-positions/common.js +74 -1
  30. package/_esm/actions/core/user-positions/common.js.map +1 -1
  31. package/_esm/actions/core/user-positions/getUserPositionSnapshots.js +100 -2
  32. package/_esm/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
  33. package/_esm/actions/lunar-indexer-client.js +201 -0
  34. package/_esm/actions/lunar-indexer-client.js.map +1 -0
  35. package/_esm/actions/lunar-indexer-transformers.js +80 -0
  36. package/_esm/actions/lunar-indexer-transformers.js.map +1 -0
  37. package/_esm/environments/definitions/base/environment.js +2 -1
  38. package/_esm/environments/definitions/base/environment.js.map +1 -1
  39. package/_esm/environments/definitions/moonbeam/environment.js +2 -1
  40. package/_esm/environments/definitions/moonbeam/environment.js.map +1 -1
  41. package/_esm/environments/definitions/optimism/environment.js +2 -1
  42. package/_esm/environments/definitions/optimism/environment.js.map +1 -1
  43. package/_esm/environments/types/config.js +1 -0
  44. package/_esm/environments/types/config.js.map +1 -1
  45. package/_esm/errors/version.js +1 -1
  46. package/_esm/utils/lunar-indexer-helpers.js +48 -0
  47. package/_esm/utils/lunar-indexer-helpers.js.map +1 -0
  48. package/_types/actions/core/markets/common.d.ts.map +1 -1
  49. package/_types/actions/core/markets/getMarketSnapshots.d.ts +4 -0
  50. package/_types/actions/core/markets/getMarketSnapshots.d.ts.map +1 -1
  51. package/_types/actions/core/user-positions/common.d.ts.map +1 -1
  52. package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts +28 -0
  53. package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts.map +1 -1
  54. package/_types/actions/lunar-indexer-client.d.ts +197 -0
  55. package/_types/actions/lunar-indexer-client.d.ts.map +1 -0
  56. package/_types/actions/lunar-indexer-transformers.d.ts +40 -0
  57. package/_types/actions/lunar-indexer-transformers.d.ts.map +1 -0
  58. package/_types/environments/definitions/base/environment.d.ts +1 -1
  59. package/_types/environments/definitions/base/environment.d.ts.map +1 -1
  60. package/_types/environments/definitions/moonbeam/environment.d.ts +1 -1
  61. package/_types/environments/definitions/moonbeam/environment.d.ts.map +1 -1
  62. package/_types/environments/definitions/optimism/environment.d.ts +1 -1
  63. package/_types/environments/definitions/optimism/environment.d.ts.map +1 -1
  64. package/_types/environments/types/config.d.ts +2 -0
  65. package/_types/environments/types/config.d.ts.map +1 -1
  66. package/_types/errors/version.d.ts +1 -1
  67. package/_types/utils/lunar-indexer-helpers.d.ts +38 -0
  68. package/_types/utils/lunar-indexer-helpers.d.ts.map +1 -0
  69. package/actions/core/markets/common.ts +500 -5
  70. package/actions/core/markets/getMarketSnapshots.ts +153 -2
  71. package/actions/core/user-positions/common.ts +139 -6
  72. package/actions/core/user-positions/getUserPositionSnapshots.ts +175 -1
  73. package/actions/lunar-indexer-client.ts +409 -0
  74. package/actions/lunar-indexer-transformers.ts +113 -0
  75. package/environments/definitions/base/environment.ts +3 -0
  76. package/environments/definitions/moonbeam/environment.ts +3 -0
  77. package/environments/definitions/optimism/environment.ts +3 -0
  78. package/environments/types/config.ts +3 -0
  79. package/errors/version.ts +1 -1
  80. package/package.json +1 -1
  81. package/utils/lunar-indexer-helpers.ts +57 -0
@@ -4,19 +4,50 @@ import { MOONWELL_FETCH_JSON_HEADERS } from "../../../common/fetch-headers.js";
4
4
  import { publicEnvironments, } from "../../../environments/index.js";
5
5
  import { findMarketByAddress, findTokenByAddress, } from "../../../environments/utils/index.js";
6
6
  export const getMarketsData = async (environment) => {
7
+ // Moonriver (chainId 1285) should always use on-chain data
8
+ const isMoonriver = environment.chainId === 1285;
9
+ if (environment.lunarIndexerUrl && !isMoonriver) {
10
+ try {
11
+ const result = await fetchMarketsFromLunar(environment);
12
+ return result;
13
+ }
14
+ catch (error) {
15
+ // Import shouldFallback dynamically
16
+ const { shouldFallback } = await import("../../lunar-indexer-client.js");
17
+ if (!shouldFallback(error)) {
18
+ throw error;
19
+ }
20
+ console.debug("[Lunar fallback] Falling back to RPC/Ponder:", error);
21
+ }
22
+ }
7
23
  const homeEnvironment = Object.values(publicEnvironments).find((e) => e.custom?.governance?.chainIds?.includes(environment.chainId)) || environment;
8
24
  const viewsContract = environment.contracts.views;
9
25
  const homeViewsContract = homeEnvironment.contracts.views;
10
- const marketData = await Promise.all([
26
+ const [protocolInfoResult, allMarketsInfoResult, nativePriceResult, govPriceResult,] = await Promise.allSettled([
11
27
  viewsContract?.read.getProtocolInfo(),
12
28
  viewsContract?.read.getAllMarketsInfo(),
13
29
  homeViewsContract?.read.getNativeTokenPrice(),
14
30
  homeViewsContract?.read.getGovernanceTokenPrice(),
15
31
  ]);
16
- const { seizePaused, transferPaused } = marketData[0];
17
- const allMarketsInfo = marketData[1];
18
- const nativeTokenPriceRaw = marketData[2];
19
- const governanceTokenPriceRaw = marketData[3];
32
+ // If getAllMarketsInfo failed (e.g. broken on-chain oracle), fall back to
33
+ // per-mToken RPC calls. This handles deprecated chains like Moonriver where
34
+ // the price oracle is non-functional but individual mToken data is readable.
35
+ if (allMarketsInfoResult.status === "rejected") {
36
+ console.debug("[mToken fallback] getAllMarketsInfo failed, using per-mToken fallback:", allMarketsInfoResult.reason);
37
+ const seizePaused = protocolInfoResult.status === "fulfilled"
38
+ ? protocolInfoResult.value.seizePaused
39
+ : false;
40
+ const transferPaused = protocolInfoResult.status === "fulfilled"
41
+ ? protocolInfoResult.value.transferPaused
42
+ : false;
43
+ return await getMarketsFromMTokenFallback(environment, seizePaused, transferPaused);
44
+ }
45
+ const { seizePaused, transferPaused } = protocolInfoResult.status === "fulfilled"
46
+ ? protocolInfoResult.value
47
+ : { seizePaused: false, transferPaused: false };
48
+ const allMarketsInfo = allMarketsInfoResult.value;
49
+ const nativeTokenPriceRaw = nativePriceResult.status === "fulfilled" ? nativePriceResult.value : 0n;
50
+ const governanceTokenPriceRaw = govPriceResult.status === "fulfilled" ? govPriceResult.value : 0n;
20
51
  const governanceTokenPrice = new Amount(governanceTokenPriceRaw, 18);
21
52
  const nativeTokenPrice = new Amount(nativeTokenPriceRaw, 18);
22
53
  const markets = [];
@@ -116,6 +147,8 @@ export const getMarketsData = async (environment) => {
116
147
  ? governanceTokenPrice.value
117
148
  : tokenPrice;
118
149
  if (price) {
150
+ // USDC on-chain returns borrowIncentivesPerSec=1 (1 wei) as a
151
+ // placeholder when there are no active borrow incentives. Treat as zero.
119
152
  if (token.symbol === "USDC" && borrowIncentivesPerSec === 1n) {
120
153
  borrowIncentivesPerSec = 0n;
121
154
  }
@@ -128,6 +161,7 @@ export const getMarketsData = async (environment) => {
128
161
  : (supplyRewardsPerDayUsd / totalSupplyUsd) *
129
162
  DAYS_PER_YEAR *
130
163
  100;
164
+ // Negative: borrow reward APR reduces the effective borrowing cost
131
165
  const borrowApr = totalBorrowsUsd === 0
132
166
  ? 0
133
167
  : (borrowRewardsPerDayUsd / totalBorrowsUsd) *
@@ -150,6 +184,269 @@ export const getMarketsData = async (environment) => {
150
184
  }
151
185
  return markets;
152
186
  };
187
+ /**
188
+ * Fallback for chains whose on-chain price oracle is non-functional (e.g.
189
+ * deprecated Moonriver). Reads raw mToken contract data individually via
190
+ * Promise.allSettled so a single failed call does not abort the entire chain.
191
+ * All USD/price values are set to 0 since oracle prices are unavailable.
192
+ */
193
+ async function getMarketsFromMTokenFallback(environment, seizePaused, transferPaused) {
194
+ const markets = [];
195
+ for (const marketKey of Object.keys(environment.config.markets)) {
196
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
197
+ const envAny = environment;
198
+ const marketConfig = envAny.config.markets[marketKey];
199
+ if (!marketConfig)
200
+ continue;
201
+ const underlyingToken = envAny.config.tokens[marketConfig.underlyingToken];
202
+ const marketToken = envAny.config.tokens[marketConfig.marketToken];
203
+ if (!underlyingToken || !marketToken)
204
+ continue;
205
+ const mTokenContract = envAny.markets[marketKey];
206
+ if (!mTokenContract)
207
+ continue;
208
+ const [totalSupplyResult, totalBorrowsResult, totalReservesResult, cashResult, exchangeRateResult, supplyRateResult, borrowRateResult, reserveFactorResult,] = await Promise.allSettled([
209
+ mTokenContract.read.totalSupply(),
210
+ mTokenContract.read.totalBorrows(),
211
+ mTokenContract.read.totalReserves(),
212
+ mTokenContract.read.getCash(),
213
+ mTokenContract.read.exchangeRateStored(),
214
+ mTokenContract.read.supplyRatePerTimestamp(),
215
+ mTokenContract.read.borrowRatePerTimestamp(),
216
+ mTokenContract.read.reserveFactorMantissa(),
217
+ ]);
218
+ const totalSupplyRaw = totalSupplyResult.status === "fulfilled" ? totalSupplyResult.value : 0n;
219
+ const totalBorrowsRaw = totalBorrowsResult.status === "fulfilled" ? totalBorrowsResult.value : 0n;
220
+ const totalReservesRaw = totalReservesResult.status === "fulfilled"
221
+ ? totalReservesResult.value
222
+ : 0n;
223
+ const cashRaw = cashResult.status === "fulfilled" ? cashResult.value : 0n;
224
+ // Default exchange rate of 1.0: 10^(10 + underlyingDecimals) in raw form
225
+ const exchangeRateRaw = exchangeRateResult.status === "fulfilled"
226
+ ? exchangeRateResult.value
227
+ : 10n ** BigInt(10 + underlyingToken.decimals);
228
+ const supplyRateRaw = supplyRateResult.status === "fulfilled" ? supplyRateResult.value : 0n;
229
+ const borrowRateRaw = borrowRateResult.status === "fulfilled" ? borrowRateResult.value : 0n;
230
+ const reserveFactorRaw = reserveFactorResult.status === "fulfilled"
231
+ ? reserveFactorResult.value
232
+ : 0n;
233
+ const exchangeRate = new Amount(exchangeRateRaw, 10 + underlyingToken.decimals).value;
234
+ const marketTotalSupply = new Amount(totalSupplyRaw, marketToken.decimals);
235
+ const totalSupply = new Amount(marketTotalSupply.value * exchangeRate, underlyingToken.decimals);
236
+ const totalBorrows = new Amount(totalBorrowsRaw, underlyingToken.decimals);
237
+ const totalReserves = new Amount(totalReservesRaw, underlyingToken.decimals);
238
+ const cash = new Amount(cashRaw, underlyingToken.decimals);
239
+ const supplyRate = new Amount(supplyRateRaw, 18);
240
+ const borrowRate = new Amount(borrowRateRaw, 18);
241
+ const reserveFactor = new Amount(reserveFactorRaw, 18).value;
242
+ const baseSupplyApy = calculateApy(supplyRate.value);
243
+ const baseBorrowApy = calculateApy(borrowRate.value);
244
+ const market = {
245
+ marketKey,
246
+ chainId: environment.chainId,
247
+ seizePaused,
248
+ transferPaused,
249
+ // Oracle is non-functional so supply/borrow would fail on-chain; mark paused
250
+ mintPaused: true,
251
+ borrowPaused: true,
252
+ deprecated: marketConfig.deprecated === true,
253
+ borrowCaps: new Amount(0n, underlyingToken.decimals),
254
+ borrowCapsUsd: 0,
255
+ cash,
256
+ collateralFactor: 0,
257
+ exchangeRate,
258
+ marketToken,
259
+ reserveFactor,
260
+ supplyCaps: new Amount(0n, underlyingToken.decimals),
261
+ supplyCapsUsd: 0,
262
+ badDebt: new Amount(0n, underlyingToken.decimals),
263
+ badDebtUsd: 0,
264
+ totalBorrows,
265
+ totalBorrowsUsd: 0,
266
+ totalReserves,
267
+ totalReservesUsd: 0,
268
+ totalSupply,
269
+ totalSupplyUsd: 0,
270
+ underlyingPrice: 0,
271
+ underlyingToken,
272
+ baseBorrowApy,
273
+ baseSupplyApy,
274
+ totalBorrowApr: baseBorrowApy,
275
+ totalSupplyApr: baseSupplyApy,
276
+ rewards: [],
277
+ };
278
+ markets.push(market);
279
+ }
280
+ return markets;
281
+ }
282
+ /**
283
+ * Fetch markets data from Lunar Indexer (hybrid approach)
284
+ *
285
+ * Uses Lunar for core market data and conditionally:
286
+ * - If Lunar provides priceUsd/supplyApr/borrowApr in incentives: use those (NO RPC calls)
287
+ * - If Lunar fields are null: fetch governance/native token prices for reward APR calculations (RPC calls)
288
+ * - Always fetch liquid staking APRs from external APIs
289
+ */
290
+ async function fetchMarketsFromLunar(environment) {
291
+ if (!environment.lunarIndexerUrl) {
292
+ throw new Error("Lunar Indexer URL not configured");
293
+ }
294
+ // Import client dynamically to avoid circular dependencies
295
+ const { createLunarIndexerClient, DEFAULT_LUNAR_TIMEOUT_MS } = await import("../../lunar-indexer-client.js");
296
+ const client = createLunarIndexerClient({
297
+ baseUrl: environment.lunarIndexerUrl,
298
+ timeout: DEFAULT_LUNAR_TIMEOUT_MS,
299
+ });
300
+ const lunarMarketsResponse = await client.listMarkets(environment.chainId);
301
+ const lunarMarkets = lunarMarketsResponse.results;
302
+ const needsRpcPrices = lunarMarkets.some((market) => market.incentives.some((incentive) => incentive.priceUsd === null ||
303
+ incentive.supplyApr === null ||
304
+ incentive.borrowApr === null));
305
+ let governanceTokenPrice;
306
+ let nativeTokenPrice;
307
+ if (needsRpcPrices) {
308
+ const homeEnvironment = Object.values(publicEnvironments).find((e) => e.custom?.governance?.chainIds?.includes(environment.chainId)) || environment;
309
+ const [nativeTokenPriceRaw, governanceTokenPriceRaw] = await Promise.all([
310
+ homeEnvironment.contracts.views?.read.getNativeTokenPrice(),
311
+ homeEnvironment.contracts.views?.read.getGovernanceTokenPrice(),
312
+ ]);
313
+ if (!nativeTokenPriceRaw || !governanceTokenPriceRaw) {
314
+ throw new Error("Failed to fetch native or governance token prices from home chain");
315
+ }
316
+ governanceTokenPrice = new Amount(governanceTokenPriceRaw, 18);
317
+ nativeTokenPrice = new Amount(nativeTokenPriceRaw, 18);
318
+ }
319
+ const markets = [];
320
+ for (const lunarMarket of lunarMarkets) {
321
+ const marketFound = findMarketByAddress(environment, lunarMarket.address);
322
+ if (!marketFound) {
323
+ continue;
324
+ }
325
+ const { marketConfig, marketToken, underlyingToken, marketKey } = marketFound;
326
+ // Transform Lunar decimal numbers to SDK Amount types
327
+ // Note: Number() wrapping is defensive — the Lunar API may return numeric
328
+ // fields as strings, which would break BigInt conversion via Math.floor.
329
+ const totalSupply = new Amount(BigInt(Math.floor(Number(lunarMarket.totalSupply) * 10 ** underlyingToken.decimals)), underlyingToken.decimals);
330
+ const totalBorrows = new Amount(BigInt(Math.floor(Number(lunarMarket.totalBorrows) * 10 ** underlyingToken.decimals)), underlyingToken.decimals);
331
+ const totalReserves = new Amount(BigInt(Math.floor(Number(lunarMarket.totalReserves) * 10 ** underlyingToken.decimals)), underlyingToken.decimals);
332
+ const cash = new Amount(BigInt(Math.floor(Number(lunarMarket.cash) * 10 ** underlyingToken.decimals)), underlyingToken.decimals);
333
+ const badDebt = new Amount(BigInt(Math.floor(Number(lunarMarket.badDebt) * 10 ** underlyingToken.decimals)), underlyingToken.decimals);
334
+ const supplyCaps = new Amount(BigInt(Math.floor(Number(lunarMarket.supplyCap) * 10 ** underlyingToken.decimals)), underlyingToken.decimals);
335
+ const borrowCaps = new Amount(BigInt(Math.floor(Number(lunarMarket.borrowCap) * 10 ** underlyingToken.decimals)), underlyingToken.decimals);
336
+ // Lunar provides reserveFactor as wei string, convert to decimal
337
+ const reserveFactor = new Amount(BigInt(lunarMarket.reserveFactor), 18)
338
+ .value;
339
+ const market = {
340
+ marketKey,
341
+ chainId: environment.chainId,
342
+ seizePaused: lunarMarket.seizePaused,
343
+ transferPaused: lunarMarket.transferPaused,
344
+ mintPaused: lunarMarket.mintPaused,
345
+ borrowPaused: lunarMarket.borrowPaused,
346
+ deprecated: marketConfig.deprecated === true,
347
+ borrowCaps,
348
+ borrowCapsUsd: Number(lunarMarket.borrowCap) * Number(lunarMarket.priceUsd),
349
+ cash,
350
+ collateralFactor: Number(lunarMarket.collateralFactor),
351
+ exchangeRate: Number(lunarMarket.exchangeRate),
352
+ marketToken,
353
+ reserveFactor,
354
+ supplyCaps,
355
+ supplyCapsUsd: Number(lunarMarket.supplyCap) * Number(lunarMarket.priceUsd),
356
+ badDebt,
357
+ badDebtUsd: Number(lunarMarket.badDebtUsd),
358
+ totalBorrows,
359
+ totalBorrowsUsd: Number(lunarMarket.totalBorrowsUsd),
360
+ totalReserves,
361
+ totalReservesUsd: Number(lunarMarket.totalReservesUsd),
362
+ totalSupply,
363
+ totalSupplyUsd: Number(lunarMarket.totalSupplyUsd),
364
+ underlyingPrice: Number(lunarMarket.priceUsd),
365
+ underlyingToken,
366
+ baseBorrowApy: Number(lunarMarket.baseBorrowApy),
367
+ baseSupplyApy: Number(lunarMarket.baseSupplyApy),
368
+ totalBorrowApr: 0,
369
+ totalSupplyApr: 0,
370
+ rewards: [],
371
+ };
372
+ for (const incentive of lunarMarket.incentives) {
373
+ const token = findTokenByAddress(environment, incentive.token);
374
+ if (!token) {
375
+ continue;
376
+ }
377
+ let supplyApr;
378
+ let borrowApr;
379
+ if (incentive.priceUsd !== null &&
380
+ incentive.supplyApr !== null &&
381
+ incentive.borrowApr !== null) {
382
+ supplyApr = Number(incentive.supplyApr);
383
+ borrowApr = Number(incentive.borrowApr);
384
+ }
385
+ else {
386
+ const isGovernanceToken = token.symbol === environment.custom?.governance?.token;
387
+ const isNativeToken = token.address === zeroAddress;
388
+ const price = isNativeToken
389
+ ? nativeTokenPrice?.value
390
+ : isGovernanceToken
391
+ ? governanceTokenPrice?.value
392
+ : undefined;
393
+ if (!price) {
394
+ continue;
395
+ }
396
+ let borrowIncentivesPerSec = BigInt(incentive.borrowIncentivesPerSec);
397
+ const supplyIncentivesPerSec = BigInt(incentive.supplyIncentivesPerSec);
398
+ // USDC on-chain returns borrowIncentivesPerSec=1 (1 wei) as a
399
+ // placeholder when there are no active borrow incentives. Treat as zero.
400
+ if (token.symbol === "USDC" && borrowIncentivesPerSec === 1n) {
401
+ borrowIncentivesPerSec = 0n;
402
+ }
403
+ const supplyRewardsPerDayUsd = perDay(new Amount(supplyIncentivesPerSec, token.decimals).value) *
404
+ price;
405
+ const borrowRewardsPerDayUsd = perDay(new Amount(borrowIncentivesPerSec, token.decimals).value) *
406
+ price;
407
+ supplyApr =
408
+ Number(lunarMarket.totalSupplyUsd) === 0
409
+ ? 0
410
+ : (supplyRewardsPerDayUsd / Number(lunarMarket.totalSupplyUsd)) *
411
+ DAYS_PER_YEAR *
412
+ 100;
413
+ // Negative: borrow reward APR reduces the effective borrowing cost
414
+ borrowApr =
415
+ Number(lunarMarket.totalBorrowsUsd) === 0
416
+ ? 0
417
+ : (borrowRewardsPerDayUsd / Number(lunarMarket.totalBorrowsUsd)) *
418
+ DAYS_PER_YEAR *
419
+ 100 *
420
+ -1;
421
+ }
422
+ market.rewards.push({
423
+ liquidStakingApr: 0,
424
+ borrowApr,
425
+ supplyApr,
426
+ token,
427
+ });
428
+ }
429
+ market.totalSupplyApr = market.rewards.reduce((prev, curr) => prev + curr.supplyApr, market.baseSupplyApy);
430
+ market.totalBorrowApr = market.rewards.reduce((prev, curr) => prev + curr.borrowApr, market.baseBorrowApy);
431
+ markets.push(market);
432
+ }
433
+ // Still fetch liquid staking rewards from external APIs
434
+ const liquidStakingRewards = await fetchLiquidStakingRewards();
435
+ for (const market of markets) {
436
+ const symbol = market.underlyingToken.symbol;
437
+ if (symbol in liquidStakingRewards) {
438
+ const liquidStakingApr = liquidStakingRewards[symbol];
439
+ market.rewards.push({
440
+ token: market.underlyingToken,
441
+ supplyApr: liquidStakingApr,
442
+ borrowApr: 0,
443
+ liquidStakingApr,
444
+ });
445
+ market.totalSupplyApr += liquidStakingApr;
446
+ }
447
+ }
448
+ return markets;
449
+ }
153
450
  const fetchFromGenericCacheApi = async (uri) => {
154
451
  const response = await fetch("https://generic-api-cache.moonwell.workers.dev/", {
155
452
  method: "POST",
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../actions/core/markets/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../actions/core/markets/common.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,48 @@ import axios from "axios";
2
2
  import dayjs from "dayjs";
3
3
  import utc from "dayjs/plugin/utc.js";
4
4
  import { Amount, getEnvironmentFromArgs, isStartOfDay, } from "../../../common/index.js";
5
+ import { buildMarketId } from "../../../utils/lunar-indexer-helpers.js";
6
+ import { DEFAULT_LUNAR_TIMEOUT_MS, createLunarIndexerClient, shouldFallback, } from "../../lunar-indexer-client.js";
7
+ import { transformMarketSnapshots } from "../../lunar-indexer-transformers.js";
5
8
  import { getSubgraph } from "../../morpho/utils/graphql.js";
6
9
  dayjs.extend(utc);
10
+ /**
11
+ * Calculate start and end times based on period or custom timestamps.
12
+ * Priority: custom timestamps > period > default (365 days)
13
+ */
14
+ function calculateTimeRange(period, startTime, endTime) {
15
+ const now = dayjs.utc();
16
+ const end = endTime ?? now.unix();
17
+ if (startTime !== undefined && endTime !== undefined) {
18
+ return { startTime, endTime: end };
19
+ }
20
+ let start;
21
+ switch (period) {
22
+ case "1M":
23
+ start = now.subtract(31, "days").unix();
24
+ break;
25
+ case "3M":
26
+ start = now.subtract(91, "days").unix();
27
+ break;
28
+ case "1Y":
29
+ start = now.subtract(366, "days").unix();
30
+ break;
31
+ case "ALL":
32
+ start = now.subtract(10, "years").unix();
33
+ break;
34
+ default:
35
+ start = now.subtract(365, "days").unix();
36
+ break;
37
+ }
38
+ return { startTime: start, endTime: end };
39
+ }
7
40
  export async function getMarketSnapshots(client, args) {
8
41
  const environment = getEnvironmentFromArgs(client, args);
9
42
  if (!environment) {
10
43
  return [];
11
44
  }
12
45
  if (args?.type === "core") {
13
- return fetchCoreMarketSnapshots(args.marketId, environment);
46
+ return fetchCoreMarketSnapshots(args.marketId, environment, args.period, args.startTime, args.endTime);
14
47
  }
15
48
  else {
16
49
  if (environment.custom.morpho?.minimalDeployment === false) {
@@ -21,7 +54,58 @@ export async function getMarketSnapshots(client, args) {
21
54
  }
22
55
  }
23
56
  }
24
- async function fetchCoreMarketSnapshots(marketAddress, environment) {
57
+ async function fetchCoreMarketSnapshots(marketAddress, environment, period, startTime, endTime) {
58
+ if (environment.lunarIndexerUrl) {
59
+ try {
60
+ const result = await fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, startTime, endTime);
61
+ return result;
62
+ }
63
+ catch (error) {
64
+ if (!shouldFallback(error)) {
65
+ throw error;
66
+ }
67
+ console.debug("[Lunar fallback] Falling back to Ponder for snapshots:", error);
68
+ }
69
+ }
70
+ const result = await fetchCoreMarketSnapshotsFromPonder(marketAddress, environment);
71
+ return result;
72
+ }
73
+ async function fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, customStartTime, customEndTime) {
74
+ if (!environment.lunarIndexerUrl) {
75
+ throw new Error("Lunar Indexer URL not configured");
76
+ }
77
+ const client = createLunarIndexerClient({
78
+ baseUrl: environment.lunarIndexerUrl,
79
+ timeout: DEFAULT_LUNAR_TIMEOUT_MS,
80
+ });
81
+ const marketId = buildMarketId(environment.chainId, marketAddress);
82
+ const { startTime } = calculateTimeRange(period, customStartTime, customEndTime);
83
+ const allSnapshots = [];
84
+ let cursor = null;
85
+ do {
86
+ const response = await client.getMarketSnapshots(marketId, {
87
+ limit: 1000,
88
+ ...(cursor && { cursor }),
89
+ granularity: "1d",
90
+ startTime,
91
+ });
92
+ const transformed = transformMarketSnapshots(response.results, environment.chainId);
93
+ const filteredSnapshots = transformed.filter((snapshot) => isStartOfDay(Math.floor(snapshot.timestamp / 1000)));
94
+ allSnapshots.push(...filteredSnapshots);
95
+ cursor = response.nextCursor;
96
+ } while (cursor !== null);
97
+ return allSnapshots.map((snapshot) => {
98
+ const supplied = snapshot.totalSupply;
99
+ const suppliedUsd = snapshot.totalSupplyUsd;
100
+ const price = supplied > 0 ? suppliedUsd / supplied : 0;
101
+ return {
102
+ ...snapshot,
103
+ collateralTokenPrice: price,
104
+ loanTokenPrice: price,
105
+ };
106
+ });
107
+ }
108
+ async function fetchCoreMarketSnapshotsFromPonder(marketAddress, environment) {
25
109
  const dailyData = [];
26
110
  let hasNextPage = true;
27
111
  let endCursor;
@@ -29,7 +113,7 @@ async function fetchCoreMarketSnapshots(marketAddress, environment) {
29
113
  const result = await axios.post(environment.indexerUrl, {
30
114
  query: `
31
115
  query {
32
- marketDailySnapshots (
116
+ marketDailySnapshots (
33
117
  limit: 1000,
34
118
  orderBy: "timestamp"
35
119
  orderDirection: "desc"
@@ -1 +1 @@
1
- {"version":3,"file":"getMarketSnapshots.js","sourceRoot":"","sources":["../../../../actions/core/markets/getMarketSnapshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,qBAAqB,CAAC;AAEtC,OAAO,EACL,MAAM,EACN,sBAAsB,EACtB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAYlB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAItC,MAAsB,EACtB,IAAyD;IAEzD,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEzD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,KAAK,KAAK,EAAE,CAAC;YAC3D,OAAO,4BAA4B,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,OAAO,oCAAoC,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,aAAqB,EACrB,WAAwB;IAExB,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,SAA6B,CAAC;IAclC,OAAO,WAAW,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAU5B,WAAW,CAAC,UAAU,EAAE;YACzB,KAAK,EAAE;;;;;;wCAM2B,aAAa,CAAC,WAAW,EAAE,eAAe,WAAW,CAAC,OAAO;gBACrF,SAAS,CAAC,CAAC,CAAC,WAAW,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;SAmB/C;SACJ,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CACZ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CACnD,CAAC,CAAwB,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CACxD,CACF,CAAC;QACF,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC;QACzE,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC;IACvE,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAE1C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAE1D,MAAM,KAAK,GAAG,WAAW,GAAG,QAAQ,CAAC;YAErC,MAAM,MAAM,GAAmB;gBAC7B,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE;gBACrC,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;gBACjC,WAAW,EAAE,QAAQ;gBACrB,cAAc,EAAE,WAAW;gBAC3B,YAAY,EAAE,MAAM;gBACpB,eAAe,EAAE,SAAS;gBAC1B,cAAc,EAAE,SAAS;gBACzB,iBAAiB,EAAE,YAAY;gBAC/B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,oBAAoB,EAAE,KAAK;gBAC3B,cAAc,EAAE,KAAK;aACtB,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,WAAwB,EACxB,KAAa,EACb,aAAsB,EACtB,SAAe;IAEf,IAAI,CAAC;QACH,MAAM,GAAG,GACP,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU;YACrC,qCAAqC,CAAC;QACxC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAC/B,GAAG,EACH,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,EAC1C,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACpD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,OAAO,CAAC,KAAK,CACX,8CAA8C,QAAQ,CAAC,UAAU,cAAc,EAC/E,QAAQ,CAAC,IAAI,CAAC,MAAM,CACrB,CAAC;YACJ,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CACX,wDAAwD,EACxD,KAAK,CACN,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,aAAqB,EACrB,WAAwB;IAExB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CACvE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,CACpE,CAAC;IAEF,MAAM,eAAe,GACnB,YAAY;QACZ,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM;YAC7D,SAAS,CAAC;IAEd,0FAA0F;IAC1F,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CACpC,WAAW,CAAC,MAAM,CAAC,aAAa,CACjC,CAAC,IAAI,CACJ,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,eAAe,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,CACnE,CAAC;QAEF,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG;;;uBAGD,WAAW,CAAC,OAAO;0BAChB,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE;;;;;;;;;UASjD,CAAC;YAEL,MAAM,UAAU,GAAG,MAAM,kBAAkB,CACzC,WAAW,EACX,SAAS,EACT,cAAc,CACf,CAAC;YACF,IAAI,UAAU,EAAE,UAAU,EAAE,CAAC;gBAC3B,SAAS;oBACP,gBAAgB,CAAC,eAAe,KAAK,MAAM;wBACzC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ;wBAChD,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,0BAA0B,CAAC;IAEjD,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE;YACP,cAAc,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;YACtD,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;IAEF,MAAM,KAAK,GAAG;;;mBAGG,WAAW,CAAC,OAAO;sBAChB,aAAa,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA8C3C,CAAC;IAEL,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,WAAW,EACX,KAAK,EACL,aAAa,EACb,SAAS,CACV,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,OAAO,GACX,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAC3D,CACE,YAGC,EACD,KAAa,EACG,EAAE;gBAClB,MAAM,YAAY,GAChB,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAElD,MAAM,eAAe,GACnB,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,eAAe,CAC1D,KAAK,CACN,CAAC;gBAEJ,MAAM,YAAY,GAChB,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAEnE,MAAM,eAAe,GACnB,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,eAAe,CAC1D,KAAK,CACN,CAAC;gBAEJ,MAAM,eAAe,GACnB,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,eAAe,CAC1D,KAAK,CACN,CAAC;gBAEJ,MAAM,kBAAkB,GACtB,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,kBAAkB,CAC7D,KAAK,CACN,CAAC;gBAEJ,MAAM,SAAS,GACb,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAEhE,MAAM,SAAS,GACb,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAEhE,IAAI,oBAAoB,GACtB,MAAM,CAAC,qBAAqB,CAAC,eAAe,CAAC,QAAQ,CAAC;gBACxD,MAAM,cAAc,GAClB,MAAM,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC;gBAElD,IAAI,eAAe,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBAC1C,oBAAoB,GAAG,SAAS,CAAC;gBACnC,CAAC;gBAED,MAAM,WAAW,GACf,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK;oBAC7D,cAAc,CAAC;oBACjB,oBAAoB,CAAC;gBAEvB,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,CAAC,YAAY,CAAC,CACrB,CAAC,KAAK,CAAC;gBAER,MAAM,cAAc,GAClB,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;qBACzD,KAAK;oBACN,cAAc,CAAC;oBACjB,oBAAoB,CAAC;gBAEvB,OAAO;oBACL,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,SAAS,EAAE,YAAY,CAAC,CAAC,GAAG,IAAI;oBAChC,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE;oBACrC,YAAY;oBACZ,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;oBAC1C,WAAW;oBACX,cAAc,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;oBACzC,cAAc;oBACd,iBAAiB,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC/C,aAAa,EAAE,SAAS,CAAC,CAAC;oBAC1B,aAAa,EAAE,SAAS,CAAC,CAAC;oBAC1B,cAAc;oBACd,oBAAoB;iBACrB,CAAC;YACJ,CAAC,CACF,CAAC;YAEJ,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oCAAoC,CACjD,aAAqB,EACrB,WAAwB;IAExB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CACvE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,CACpE,CAAC;IAEF,MAAM,eAAe,GACnB,YAAY;QACZ,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM;YAC7D,SAAS,CAAC;IAEd,0FAA0F;IAC1F,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CACpC,WAAW,CAAC,MAAM,CAAC,aAAa,CACjC,CAAC,IAAI,CACJ,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,eAAe,KAAK,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,CACnE,CAAC;QAEF,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG;;iDAEyB,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE;;;;;OAK3E,CAAC;YAEF,MAAM,UAAU,GAAG,MAAM,WAAW,CAKjC,WAAW,EAAE,SAAS,CAAC,CAAC;YAE3B,IAAI,UAAU,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,SAAS;oBACP,gBAAgB,CAAC,eAAe,KAAK,MAAM;wBACzC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;wBAC/D,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG;;6CAE6B,aAAa,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;CAiBvE,CAAC;IAEA,MAAM,MAAM,GAAG,MAAM,WAAW,CAmB7B,WAAW,EAAE,KAAK,CAAC,CAAC;IAEvB,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,OAAO,GAAqB,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAC/D,CAAC,IAAI,EAAE,EAAE;gBACP,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;gBAE1D,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBAE5C,MAAM,sBAAsB,GAAG,IAAI,MAAM,CACvC,MAAM,CAAC,YAAY,CAAC,EACpB,MAAM,CAAC,cAAc,CAAC,CACvB,CAAC,KAAK,CAAC;gBAER,IAAI,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAE3D,IAAI,eAAe,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBAC1C,oBAAoB,GAAG,SAAS,CAAC;gBACnC,CAAC;gBAED,MAAM,WAAW,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;gBAElE,MAAM,YAAY,GAAG,IAAI,CAAC,4BAA4B,CAAC;gBAEvD,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,MAAM,CAAC,YAAY,CAAC,EACpB,MAAM,CAAC,cAAc,CAAC,CACvB,CAAC,KAAK,CAAC;gBAER,MAAM,yBAAyB,GAAG,IAAI,CAAC,GAAG,CACxC,sBAAsB,GAAG,YAAY,EACrC,CAAC,CACF,CAAC;gBAEF,MAAM,cAAc,GAClB,yBAAyB,GAAG,oBAAoB,CAAC;gBAEnD,OAAO;oBACL,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI;oBAChC,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE;oBACrC,YAAY;oBACZ,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,YAAY;oBAChE,WAAW;oBACX,cAAc,EAAE,oBAAoB,GAAG,WAAW;oBAClD,cAAc;oBACd,iBAAiB,EACf,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,yBAAyB;oBAC9D,aAAa,EAAE,CAAC;oBAChB,aAAa,EAAE,CAAC;oBAChB,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;oBAChD,oBAAoB;iBACrB,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getMarketSnapshots.js","sourceRoot":"","sources":["../../../../actions/core/markets/getMarketSnapshots.ts"],"names":[],"mappings":"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"}