@moonwell-fi/moonwell-sdk 0.10.7 → 0.12.0

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 (166) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_cjs/actions/core/markets/common.js +26 -12
  3. package/_cjs/actions/core/markets/common.js.map +1 -1
  4. package/_cjs/actions/core/markets/getMarketSnapshots.js +173 -321
  5. package/_cjs/actions/core/markets/getMarketSnapshots.js.map +1 -1
  6. package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js +31 -26
  7. package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
  8. package/_cjs/actions/governance/getCirculatingSupplySnapshots.js +35 -29
  9. package/_cjs/actions/governance/getCirculatingSupplySnapshots.js.map +1 -1
  10. package/_cjs/actions/governance/getStakingSnapshots.js +16 -12
  11. package/_cjs/actions/governance/getStakingSnapshots.js.map +1 -1
  12. package/_cjs/actions/governance/proposals/common.js +247 -211
  13. package/_cjs/actions/governance/proposals/common.js.map +1 -1
  14. package/_cjs/actions/lunar-indexer-client.js +32 -0
  15. package/_cjs/actions/lunar-indexer-client.js.map +1 -1
  16. package/_cjs/actions/morpho/markets/common.js +26 -29
  17. package/_cjs/actions/morpho/markets/common.js.map +1 -1
  18. package/_cjs/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js +41 -56
  19. package/_cjs/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js.map +1 -1
  20. package/_cjs/actions/morpho/vaults/common.js +7 -4
  21. package/_cjs/actions/morpho/vaults/common.js.map +1 -1
  22. package/_cjs/actions/morpho/vaults/getMorphoVaultSnapshots.js +21 -78
  23. package/_cjs/actions/morpho/vaults/getMorphoVaultSnapshots.js.map +1 -1
  24. package/_cjs/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js +13 -66
  25. package/_cjs/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js.map +1 -1
  26. package/_cjs/client/createMoonwellClient.js +9 -3
  27. package/_cjs/client/createMoonwellClient.js.map +1 -1
  28. package/_cjs/environments/definitions/arbitrum/environment.js +1 -2
  29. package/_cjs/environments/definitions/arbitrum/environment.js.map +1 -1
  30. package/_cjs/environments/definitions/avalanche/environment.js +1 -2
  31. package/_cjs/environments/definitions/avalanche/environment.js.map +1 -1
  32. package/_cjs/environments/definitions/base/custom.js +0 -1
  33. package/_cjs/environments/definitions/base/custom.js.map +1 -1
  34. package/_cjs/environments/definitions/base/environment.js +1 -2
  35. package/_cjs/environments/definitions/base/environment.js.map +1 -1
  36. package/_cjs/environments/definitions/ethereum/environment.js +1 -2
  37. package/_cjs/environments/definitions/ethereum/environment.js.map +1 -1
  38. package/_cjs/environments/definitions/moonbeam/environment.js +1 -2
  39. package/_cjs/environments/definitions/moonbeam/environment.js.map +1 -1
  40. package/_cjs/environments/definitions/optimism/custom.js +0 -1
  41. package/_cjs/environments/definitions/optimism/custom.js.map +1 -1
  42. package/_cjs/environments/definitions/optimism/environment.js +1 -2
  43. package/_cjs/environments/definitions/optimism/environment.js.map +1 -1
  44. package/_cjs/environments/definitions/polygon/environment.js +1 -2
  45. package/_cjs/environments/definitions/polygon/environment.js.map +1 -1
  46. package/_cjs/environments/index.js +8 -8
  47. package/_cjs/environments/index.js.map +1 -1
  48. package/_cjs/environments/types/config.js +1 -0
  49. package/_cjs/environments/types/config.js.map +1 -1
  50. package/_cjs/errors/version.js +1 -1
  51. package/_esm/actions/core/markets/common.js +26 -13
  52. package/_esm/actions/core/markets/common.js.map +1 -1
  53. package/_esm/actions/core/markets/getMarketSnapshots.js +194 -346
  54. package/_esm/actions/core/markets/getMarketSnapshots.js.map +1 -1
  55. package/_esm/actions/core/user-positions/getUserPositionSnapshots.js +32 -29
  56. package/_esm/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
  57. package/_esm/actions/governance/getCirculatingSupplySnapshots.js +35 -30
  58. package/_esm/actions/governance/getCirculatingSupplySnapshots.js.map +1 -1
  59. package/_esm/actions/governance/getStakingSnapshots.js +17 -13
  60. package/_esm/actions/governance/getStakingSnapshots.js.map +1 -1
  61. package/_esm/actions/governance/proposals/common.js +246 -216
  62. package/_esm/actions/governance/proposals/common.js.map +1 -1
  63. package/_esm/actions/lunar-indexer-client.js +35 -0
  64. package/_esm/actions/lunar-indexer-client.js.map +1 -1
  65. package/_esm/actions/morpho/markets/common.js +27 -34
  66. package/_esm/actions/morpho/markets/common.js.map +1 -1
  67. package/_esm/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js +42 -54
  68. package/_esm/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js.map +1 -1
  69. package/_esm/actions/morpho/vaults/common.js +7 -4
  70. package/_esm/actions/morpho/vaults/common.js.map +1 -1
  71. package/_esm/actions/morpho/vaults/getMorphoVaultSnapshots.js +24 -78
  72. package/_esm/actions/morpho/vaults/getMorphoVaultSnapshots.js.map +1 -1
  73. package/_esm/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js +15 -65
  74. package/_esm/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js.map +1 -1
  75. package/_esm/client/createMoonwellClient.js +9 -3
  76. package/_esm/client/createMoonwellClient.js.map +1 -1
  77. package/_esm/environments/definitions/arbitrum/environment.js +1 -2
  78. package/_esm/environments/definitions/arbitrum/environment.js.map +1 -1
  79. package/_esm/environments/definitions/avalanche/environment.js +1 -2
  80. package/_esm/environments/definitions/avalanche/environment.js.map +1 -1
  81. package/_esm/environments/definitions/base/custom.js +0 -1
  82. package/_esm/environments/definitions/base/custom.js.map +1 -1
  83. package/_esm/environments/definitions/base/environment.js +1 -2
  84. package/_esm/environments/definitions/base/environment.js.map +1 -1
  85. package/_esm/environments/definitions/ethereum/environment.js +1 -2
  86. package/_esm/environments/definitions/ethereum/environment.js.map +1 -1
  87. package/_esm/environments/definitions/moonbeam/environment.js +1 -2
  88. package/_esm/environments/definitions/moonbeam/environment.js.map +1 -1
  89. package/_esm/environments/definitions/optimism/custom.js +0 -1
  90. package/_esm/environments/definitions/optimism/custom.js.map +1 -1
  91. package/_esm/environments/definitions/optimism/environment.js +1 -2
  92. package/_esm/environments/definitions/optimism/environment.js.map +1 -1
  93. package/_esm/environments/definitions/polygon/environment.js +1 -2
  94. package/_esm/environments/definitions/polygon/environment.js.map +1 -1
  95. package/_esm/environments/index.js +8 -8
  96. package/_esm/environments/index.js.map +1 -1
  97. package/_esm/environments/types/config.js +1 -0
  98. package/_esm/environments/types/config.js.map +1 -1
  99. package/_esm/errors/version.js +1 -1
  100. package/_types/actions/core/markets/common.d.ts.map +1 -1
  101. package/_types/actions/core/markets/getMarketSnapshots.d.ts.map +1 -1
  102. package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts +0 -1
  103. package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts.map +1 -1
  104. package/_types/actions/governance/getCirculatingSupplySnapshots.d.ts.map +1 -1
  105. package/_types/actions/governance/getStakingSnapshots.d.ts.map +1 -1
  106. package/_types/actions/governance/proposals/common.d.ts +2 -8
  107. package/_types/actions/governance/proposals/common.d.ts.map +1 -1
  108. package/_types/actions/lunar-indexer-client.d.ts +26 -0
  109. package/_types/actions/lunar-indexer-client.d.ts.map +1 -1
  110. package/_types/actions/morpho/markets/common.d.ts.map +1 -1
  111. package/_types/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.d.ts +9 -3
  112. package/_types/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.d.ts.map +1 -1
  113. package/_types/actions/morpho/vaults/common.d.ts.map +1 -1
  114. package/_types/actions/morpho/vaults/getMorphoVaultSnapshots.d.ts.map +1 -1
  115. package/_types/actions/morpho/vaults/getMorphoVaultStakingSnapshots.d.ts.map +1 -1
  116. package/_types/client/createMoonwellClient.d.ts +4 -4
  117. package/_types/client/createMoonwellClient.d.ts.map +1 -1
  118. package/_types/environments/definitions/arbitrum/environment.d.ts +1 -1
  119. package/_types/environments/definitions/arbitrum/environment.d.ts.map +1 -1
  120. package/_types/environments/definitions/avalanche/environment.d.ts +1 -1
  121. package/_types/environments/definitions/avalanche/environment.d.ts.map +1 -1
  122. package/_types/environments/definitions/base/custom.d.ts +0 -1
  123. package/_types/environments/definitions/base/custom.d.ts.map +1 -1
  124. package/_types/environments/definitions/base/environment.d.ts +1 -1
  125. package/_types/environments/definitions/base/environment.d.ts.map +1 -1
  126. package/_types/environments/definitions/ethereum/environment.d.ts +1 -1
  127. package/_types/environments/definitions/ethereum/environment.d.ts.map +1 -1
  128. package/_types/environments/definitions/moonbeam/environment.d.ts +1 -1
  129. package/_types/environments/definitions/moonbeam/environment.d.ts.map +1 -1
  130. package/_types/environments/definitions/optimism/custom.d.ts +0 -1
  131. package/_types/environments/definitions/optimism/custom.d.ts.map +1 -1
  132. package/_types/environments/definitions/optimism/environment.d.ts +1 -2
  133. package/_types/environments/definitions/optimism/environment.d.ts.map +1 -1
  134. package/_types/environments/definitions/polygon/environment.d.ts +1 -1
  135. package/_types/environments/definitions/polygon/environment.d.ts.map +1 -1
  136. package/_types/environments/index.d.ts +0 -3
  137. package/_types/environments/index.d.ts.map +1 -1
  138. package/_types/environments/types/config.d.ts +10 -3
  139. package/_types/environments/types/config.d.ts.map +1 -1
  140. package/_types/errors/version.d.ts +1 -1
  141. package/actions/core/markets/common.ts +33 -18
  142. package/actions/core/markets/getMarketSnapshots.ts +261 -511
  143. package/actions/core/user-positions/getUserPositionSnapshots.ts +44 -46
  144. package/actions/governance/getCirculatingSupplySnapshots.ts +43 -35
  145. package/actions/governance/getStakingSnapshots.ts +32 -29
  146. package/actions/governance/proposals/common.ts +369 -330
  147. package/actions/lunar-indexer-client.ts +64 -0
  148. package/actions/morpho/markets/common.ts +32 -43
  149. package/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.ts +76 -87
  150. package/actions/morpho/vaults/common.ts +7 -6
  151. package/actions/morpho/vaults/getMorphoVaultSnapshots.ts +36 -120
  152. package/actions/morpho/vaults/getMorphoVaultStakingSnapshots.ts +24 -111
  153. package/client/createMoonwellClient.ts +17 -5
  154. package/environments/definitions/arbitrum/environment.ts +0 -2
  155. package/environments/definitions/avalanche/environment.ts +0 -2
  156. package/environments/definitions/base/custom.ts +0 -1
  157. package/environments/definitions/base/environment.ts +0 -2
  158. package/environments/definitions/ethereum/environment.ts +0 -2
  159. package/environments/definitions/moonbeam/environment.ts +0 -2
  160. package/environments/definitions/optimism/custom.ts +0 -1
  161. package/environments/definitions/optimism/environment.ts +0 -2
  162. package/environments/definitions/polygon/environment.ts +0 -2
  163. package/environments/index.ts +6 -27
  164. package/environments/types/config.ts +11 -3
  165. package/errors/version.ts +1 -1
  166. package/package.json +1 -1
@@ -61,61 +61,36 @@ async function getMarketSnapshots(client, args) {
61
61
  return trimLeadingEmptySnapshots(result);
62
62
  }
63
63
  async function fetchCoreMarketSnapshots(marketAddress, environment, period, startTime, endTime) {
64
- if (environment.lunarIndexerUrl) {
64
+ if (!environment.lunarIndexerUrl) {
65
+ if (!environment.indexerUrl)
66
+ return [];
65
67
  try {
66
- const result = await fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, startTime, endTime);
67
- return result;
68
+ return await fetchCoreMarketSnapshotsFromPonder(marketAddress, environment);
68
69
  }
69
70
  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);
71
+ console.warn(`[getMarketSnapshots] Ponder failed for chain ${environment.chainId}:`, error);
72
+ environment.onError?.(error, {
73
+ source: "market-snapshots-ponder",
74
+ chainId: environment.chainId,
75
+ });
76
+ return [];
74
77
  }
75
78
  }
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");
79
+ try {
80
+ return await fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, startTime, endTime);
82
81
  }
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,
82
+ catch (error) {
83
+ console.warn(`[getMarketSnapshots] Lunar Indexer failed for chain ${environment.chainId}:`, error);
84
+ environment.onError?.(error, {
85
+ source: "market-snapshots",
86
+ chainId: environment.chainId,
100
87
  });
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
- });
88
+ return [];
89
+ }
117
90
  }
118
91
  async function fetchCoreMarketSnapshotsFromPonder(marketAddress, environment) {
92
+ if (!environment.indexerUrl)
93
+ return [];
119
94
  const dailyData = [];
120
95
  let hasNextPage = true;
121
96
  let endCursor;
@@ -153,57 +128,73 @@ async function fetchCoreMarketSnapshotsFromPonder(marketAddress, environment) {
153
128
  hasNextPage = result.data.data.marketDailySnapshots.pageInfo.hasNextPage;
154
129
  endCursor = result.data.data.marketDailySnapshots.pageInfo.endCursor;
155
130
  }
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 {
131
+ if (dailyData.length === 0)
186
132
  return [];
187
- }
133
+ return dailyData.map((point) => {
134
+ const supplied = Number(point.totalSupplies);
135
+ const borrow = Number(point.totalBorrows);
136
+ const borrowUsd = Number(point.totalBorrowsUSD);
137
+ const suppliedUsd = Number(point.totalSuppliesUSD);
138
+ const liquidity = Math.max(point.totalLiquidity, 0);
139
+ const liquidityUsd = Math.max(point.totalLiquidityUSD, 0);
140
+ const price = suppliedUsd / supplied;
141
+ return {
142
+ marketId: marketAddress.toLowerCase(),
143
+ chainId: environment.chainId,
144
+ timestamp: point.timestamp * 1000,
145
+ totalSupply: supplied,
146
+ totalSupplyUsd: suppliedUsd,
147
+ totalBorrows: borrow,
148
+ totalBorrowsUsd: borrowUsd,
149
+ totalLiquidity: liquidity,
150
+ totalLiquidityUsd: liquidityUsd,
151
+ totalReallocatableLiquidity: 0,
152
+ totalReallocatableLiquidityUsd: 0,
153
+ baseSupplyApy: point.baseSupplyApy,
154
+ baseBorrowApy: point.baseBorrowApy,
155
+ collateralTokenPrice: price,
156
+ loanTokenPrice: price,
157
+ };
158
+ });
188
159
  }
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;
160
+ async function fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, customStartTime, customEndTime) {
161
+ if (!environment.lunarIndexerUrl) {
162
+ throw new Error("Lunar Indexer URL not configured");
206
163
  }
164
+ const client = (0, lunar_indexer_client_js_1.createLunarIndexerClient)({
165
+ baseUrl: environment.lunarIndexerUrl,
166
+ timeout: lunar_indexer_client_js_1.DEFAULT_LUNAR_TIMEOUT_MS,
167
+ });
168
+ const marketId = (0, lunar_indexer_helpers_js_1.buildMarketId)(environment.chainId, marketAddress);
169
+ const { startTime, endTime, granularity } = (0, index_js_1.calculateTimeRange)(period, customStartTime, customEndTime);
170
+ const allSnapshots = [];
171
+ let cursor = null;
172
+ const MAX_PAGES = 100;
173
+ let page = 0;
174
+ do {
175
+ const response = await client.getMarketSnapshots(marketId, {
176
+ limit: 1000,
177
+ ...(cursor && { cursor }),
178
+ granularity: (0, index_js_1.toApiGranularity)(granularity),
179
+ startTime,
180
+ endTime,
181
+ });
182
+ const transformed = (0, lunar_indexer_transformers_js_1.transformMarketSnapshots)(response.results, environment.chainId);
183
+ allSnapshots.push(...transformed);
184
+ cursor = response.nextCursor;
185
+ page++;
186
+ } while (cursor !== null && page < MAX_PAGES);
187
+ allSnapshots.sort((a, b) => a.timestamp - b.timestamp);
188
+ return (0, index_js_1.applyGranularity)(allSnapshots, granularity).map((snapshot) => {
189
+ const supplied = snapshot.totalSupply;
190
+ const suppliedUsd = snapshot.totalSupplyUsd;
191
+ const price = supplied > 0 ? suppliedUsd / supplied : 0;
192
+ return {
193
+ ...snapshot,
194
+ collateralTokenPrice: price,
195
+ loanTokenPrice: price,
196
+ };
197
+ });
207
198
  }
208
199
  async function fetchWellPricesByTimestamp(lunarIndexerUrl, chainId, wellMarketConfig, startTime) {
209
200
  const wellIsCollateral = wellMarketConfig.collateralToken === "WELL";
@@ -233,238 +224,99 @@ async function fetchWellPricesByTimestamp(lunarIndexerUrl, chainId, wellMarketCo
233
224
  }
234
225
  async function fetchIsolatedMarketSnapshots(marketAddress, environment, period, customStartTime, customEndTime) {
235
226
  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
- }
227
+ if (!lunarIndexerUrl) {
228
+ return [];
323
229
  }
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
- }
230
+ try {
231
+ return await fetchIsolatedMarketSnapshotsFromLunar(marketAddress, environment, lunarIndexerUrl, period, customStartTime, customEndTime);
357
232
  }
358
- const operationName = "getMarketTotalTimeseries";
233
+ catch (error) {
234
+ console.warn(`[getMarketSnapshots] Lunar Indexer failed for chain ${environment.chainId}:`, error);
235
+ environment.onError?.(error, {
236
+ source: "market-snapshots",
237
+ chainId: environment.chainId,
238
+ });
239
+ return [];
240
+ }
241
+ }
242
+ async function fetchIsolatedMarketSnapshotsFromLunar(marketAddress, environment, lunarIndexerUrl, period, customStartTime, customEndTime) {
359
243
  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;
244
+ const marketConfig = Object.values(environment.config.morphoMarkets).find((m) => m.id.toLowerCase() === marketAddress.toLowerCase());
245
+ const loanSymbol = marketConfig
246
+ ? environment.config.tokens[marketConfig.loanToken]?.symbol
247
+ : undefined;
248
+ const collateralSymbol = marketConfig
249
+ ? environment.config.tokens[marketConfig.collateralToken]?.symbol
250
+ : undefined;
251
+ const normalizeToCollateral = loanSymbol === "ETH" && collateralSymbol === "USDC";
252
+ const isStkWellMarket = collateralSymbol === "stkWELL";
253
+ const wellMarketConfig = isStkWellMarket
254
+ ? Object.values(environment.config.morphoMarkets).find((m) => m.collateralToken === "WELL" || m.loanToken === "WELL")
255
+ : undefined;
256
+ const wellPricesPromise = wellMarketConfig
257
+ ? fetchWellPricesByTimestamp(lunarIndexerUrl, environment.chainId, wellMarketConfig, startTime)
258
+ : Promise.resolve(new Map());
259
+ const allSnapshots = [];
260
+ let cursor;
261
+ const MAX_PAGES = 100;
262
+ let page = 0;
263
+ do {
264
+ const response = await (0, lunarIndexerTransform_js_1.fetchMarketSnapshotsFromIndexer)(lunarIndexerUrl, environment.chainId, marketAddress, {
265
+ startTime,
266
+ granularity: "1d",
267
+ limit: 1000,
268
+ ...(cursor && { cursor }),
269
+ });
270
+ allSnapshots.push(...response.results
271
+ .filter((s) => (0, index_js_1.isStartOfDay)(s.timestamp))
272
+ .map((s) => (0, lunarIndexerTransform_js_1.transformIsolatedMarketSnapshotFromIndexer)(s, {
273
+ normalizeToCollateral,
274
+ })));
275
+ cursor = response.nextCursor ?? undefined;
276
+ page++;
277
+ } while (cursor !== undefined && page < MAX_PAGES);
278
+ const sanitizedSnapshots = normalizeToCollateral
279
+ ? allSnapshots
280
+ : allSnapshots.map((snapshot) => {
281
+ if (snapshot.totalSupply === 0 || snapshot.loanTokenPrice === 0)
282
+ return snapshot;
283
+ const impliedLoanPrice = snapshot.totalSupplyUsd / snapshot.totalSupply;
284
+ if (impliedLoanPrice < snapshot.loanTokenPrice * 0.1) {
442
285
  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,
286
+ ...snapshot,
287
+ totalSupply: snapshot.totalSupplyUsd / snapshot.loanTokenPrice,
288
+ totalLiquidity: snapshot.totalLiquidityUsd / snapshot.loanTokenPrice,
458
289
  };
459
- });
460
- return markets;
461
- }
462
- catch (ex) {
463
- return [];
464
- }
465
- }
466
- else {
467
- return [];
290
+ }
291
+ return snapshot;
292
+ });
293
+ if (isStkWellMarket) {
294
+ const wellPriceByTimestampMs = await wellPricesPromise;
295
+ return sanitizedSnapshots.map((snapshot) => {
296
+ let collateralTokenPrice = snapshot.collateralTokenPrice;
297
+ if (collateralTokenPrice === 0) {
298
+ const wellPrice = wellPriceByTimestampMs.get(snapshot.timestamp);
299
+ if (wellPrice)
300
+ collateralTokenPrice = wellPrice;
301
+ }
302
+ const totalSupply = collateralTokenPrice > 0
303
+ ? snapshot.totalSupplyUsd / collateralTokenPrice
304
+ : snapshot.totalSupply;
305
+ const totalLiquidity = collateralTokenPrice > 0
306
+ ? snapshot.totalLiquidityUsd / collateralTokenPrice
307
+ : snapshot.totalLiquidity;
308
+ const totalReallocatableLiquidity = collateralTokenPrice > 0
309
+ ? snapshot.totalReallocatableLiquidityUsd / collateralTokenPrice
310
+ : snapshot.totalReallocatableLiquidity;
311
+ return {
312
+ ...snapshot,
313
+ collateralTokenPrice,
314
+ totalSupply,
315
+ totalLiquidity,
316
+ totalReallocatableLiquidity,
317
+ };
318
+ });
468
319
  }
320
+ return sanitizedSnapshots;
469
321
  }
470
322
  //# 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":";;;;;AA6CA,8DAcC;AAED,gDAwEC;AAgQD,oEAiCC;AAtaD,kDAA0B;AAE1B,uDAOkC;AAClC,uFAAyE;AAIzE,2EAGuC;AACvC,uFAA+E;AAC/E,4FAGuD;AAuBvD,SAAgB,yBAAyB,CACvC,SAA2B;IAE3B,IAAI,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IACE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;YACzC,CAAC,CAAC,SAAS,GAAG,oBAAoB,EAClC,CAAC;YACD,oBAAoB,GAAG,CAAC,CAAC,SAAS,CAAC;QACrC,CAAC;IACH,CAAC;IACD,IAAI,oBAAoB,KAAK,MAAM,CAAC,iBAAiB;QAAE,OAAO,EAAE,CAAC;IACjE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,oBAAoB,CAAC,CAAC;AACtE,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAItC,MAAsB,EACtB,IAAyD;IAEzD,MAAM,WAAW,GAAG,IAAA,iCAAsB,EAAC,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,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAC9C,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,CACb,CAAC;QACF,OAAO,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,4BAA4B,CAClD,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,CACb,CAAC;IAOF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CACvE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAC1D,CAAC;IACF,MAAM,UAAU,GAAG,YAAY;QAC7B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM;QAC3D,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,gBAAgB,GAAG,YAAY;QACnC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM;QACjE,CAAC,CAAC,SAAS,CAAC;IAKd,MAAM,kBAAkB,GACtB,CAAC,UAAU,KAAK,KAAK,IAAI,gBAAgB,KAAK,MAAM,CAAC;QACrD,gBAAgB,KAAK,SAAS,CAAC;IAEjC,MAAM,MAAM,GAAG,kBAAkB;QAC/B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzB,IAAI,QAAQ,CAAC,WAAW,KAAK,CAAC,IAAI,QAAQ,CAAC,cAAc,KAAK,CAAC;gBAC7D,OAAO,QAAQ,CAAC;YAClB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC;YACxE,IAAI,gBAAgB,GAAG,QAAQ,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC;gBACrD,OAAO;oBACL,GAAG,QAAQ;oBACX,WAAW,EAAE,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc;oBAC9D,cAAc,EACZ,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,cAAc;iBACvD,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IAEP,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,aAAqB,EACrB,WAAwB,EACxB,MAAmC,EACnC,SAAkB,EAClB,OAAgB;IAEhB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,OAAO,MAAM,kCAAkC,CAC7C,aAAa,EACb,WAAW,CACZ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,gDAAgD,WAAW,CAAC,OAAO,GAAG,EACtE,KAAK,CACN,CAAC;YACF,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;gBAC3B,MAAM,EAAE,yBAAyB;gBACjC,OAAO,EAAE,WAAW,CAAC,OAAO;aAC7B,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,iCAAiC,CAC5C,aAAa,EACb,WAAW,EACX,MAAM,EACN,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,uDAAuD,WAAW,CAAC,OAAO,GAAG,EAC7E,KAAK,CACN,CAAC;QACF,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;YAC3B,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,aAAqB,EACrB,WAAwB;IAExB,IAAI,CAAC,WAAW,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAcvC,MAAM,SAAS,GAAsB,EAAE,CAAC;IACxC,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,SAA6B,CAAC;IAElC,OAAO,WAAW,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,IAAI,CAO5B,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,IAAA,uBAAY,EAAC,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,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,WAAW,GAAG,QAAQ,CAAC;QAErC,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE;YACrC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;YACjC,WAAW,EAAE,QAAQ;YACrB,cAAc,EAAE,WAAW;YAC3B,YAAY,EAAE,MAAM;YACpB,eAAe,EAAE,SAAS;YAC1B,cAAc,EAAE,SAAS;YACzB,iBAAiB,EAAE,YAAY;YAC/B,2BAA2B,EAAE,CAAC;YAC9B,8BAA8B,EAAE,CAAC;YACjC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,oBAAoB,EAAE,KAAK;YAC3B,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,aAAqB,EACrB,WAAwB,EACxB,MAAmC,EACnC,eAAwB,EACxB,aAAsB;IAEtB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,kDAAwB,EAAC;QACtC,OAAO,EAAE,WAAW,CAAC,eAAe;QACpC,OAAO,EAAE,kDAAwB;KAClC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAA,wCAAa,EAAC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAA,6BAAkB,EAC5D,MAAM,EACN,eAAe,EACf,aAAa,CACd,CAAC;IAEF,MAAM,YAAY,GAAqB,EAAE,CAAC;IAC1C,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,GAAG,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YACzD,KAAK,EAAE,IAAI;YACX,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;YACzB,WAAW,EAAE,IAAA,2BAAgB,EAAC,WAAW,CAAC;YAC1C,SAAS;YACT,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAA,wDAAwB,EAC1C,QAAQ,CAAC,OAAO,EAChB,WAAW,CAAC,OAAO,CACpB,CAAC;QAEF,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAElC,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;QAC7B,IAAI,EAAE,CAAC;IACT,CAAC,QAAQ,MAAM,KAAK,IAAI,IAAI,IAAI,GAAG,SAAS,EAAE;IAE9C,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IACvD,OAAO,IAAA,2BAAgB,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;QACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,OAAO;YACL,GAAG,QAAQ;YACX,oBAAoB,EAAE,KAAK;YAC3B,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAID,KAAK,UAAU,0BAA0B,CACvC,eAAuB,EACvB,OAAe,EACf,gBAA4E,EAC5E,SAAiB;IAEjB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,eAAe,KAAK,MAAM,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,IAAI,MAA0B,CAAC;IAC/B,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,GAAG,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAA,0DAA+B,EACpD,eAAe,EACf,OAAO,EACP,gBAAgB,CAAC,EAAE,EACnB;YACE,SAAS;YACT,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,IAAI;YACX,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;SAC1B,CACF,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAC7B,gBAAgB;gBACd,CAAC,CAAC,QAAQ,CAAC,oBAAoB;gBAC/B,CAAC,CAAC,QAAQ,CAAC,cAAc,CAC5B,CAAC;YACF,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,MAAM,GAAG,QAAQ,CAAC,UAAU,IAAI,SAAS,CAAC;QAC1C,IAAI,EAAE,CAAC;IACT,CAAC,QAAQ,MAAM,KAAK,SAAS,IAAI,IAAI,GAAG,SAAS,EAAE;IAEnD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,4BAA4B,CAChD,aAAqB,EACrB,WAAwB,EACxB,MAAmC,EACnC,eAAwB,EACxB,aAAsB;IAEtB,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;IAEpD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,qCAAqC,CAChD,aAAa,EACb,WAAW,EACX,eAAe,EACf,MAAM,EACN,eAAe,EACf,aAAa,CACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,uDAAuD,WAAW,CAAC,OAAO,GAAG,EAC7E,KAAK,CACN,CAAC;QACF,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;YAC3B,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qCAAqC,CAClD,aAAqB,EACrB,WAAwB,EACxB,eAAuB,EACvB,MAAmC,EACnC,eAAwB,EACxB,aAAsB;IAEtB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,6BAAkB,EACtC,MAAM,EACN,eAAe,EACf,aAAa,CACd,CAAC;IAKF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CACvE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,CAC1D,CAAC;IACF,MAAM,UAAU,GAAG,YAAY;QAC7B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM;QAC3D,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,gBAAgB,GAAG,YAAY;QACnC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM;QACjE,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,qBAAqB,GACzB,UAAU,KAAK,KAAK,IAAI,gBAAgB,KAAK,MAAM,CAAC;IAKtD,MAAM,eAAe,GAAG,gBAAgB,KAAK,SAAS,CAAC;IACvD,MAAM,gBAAgB,GAAG,eAAe;QACtC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,CAC9D;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,iBAAiB,GAAG,gBAAgB;QACxC,CAAC,CAAC,0BAA0B,CACxB,eAAe,EACf,WAAW,CAAC,OAAO,EACnB,gBAAgB,EAChB,SAAS,CACV;QACH,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,EAAkB,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAqB,EAAE,CAAC;IAC1C,IAAI,MAA0B,CAAC;IAC/B,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,GAAG,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAA,0DAA+B,EACpD,eAAe,EACf,WAAW,CAAC,OAAO,EACnB,aAAa,EACb;YACE,SAAS;YACT,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,IAAI;YACX,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;SAC1B,CACF,CAAC;QAEF,YAAY,CAAC,IAAI,CACf,GAAG,QAAQ,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAY,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,IAAA,qEAA0C,EAAC,CAAC,EAAE;YAC5C,qBAAqB;SACtB,CAAC,CACH,CACJ,CAAC;QAEF,MAAM,GAAG,QAAQ,CAAC,UAAU,IAAI,SAAS,CAAC;QAC1C,IAAI,EAAE,CAAC;IACT,CAAC,QAAQ,MAAM,KAAK,SAAS,IAAI,IAAI,GAAG,SAAS,EAAE;IASnD,MAAM,kBAAkB,GAAG,qBAAqB;QAC9C,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC5B,IAAI,QAAQ,CAAC,WAAW,KAAK,CAAC,IAAI,QAAQ,CAAC,cAAc,KAAK,CAAC;gBAC7D,OAAO,QAAQ,CAAC;YAClB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC;YACxE,IAAI,gBAAgB,GAAG,QAAQ,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC;gBACrD,OAAO;oBACL,GAAG,QAAQ;oBACX,WAAW,EAAE,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc;oBAC9D,cAAc,EACZ,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,cAAc;iBACvD,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IAEP,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,sBAAsB,GAAG,MAAM,iBAAiB,CAAC;QACvD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAGzC,IAAI,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB,CAAC;YACzD,IAAI,oBAAoB,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACjE,IAAI,SAAS;oBAAE,oBAAoB,GAAG,SAAS,CAAC;YAClD,CAAC;YAKD,MAAM,WAAW,GACf,oBAAoB,GAAG,CAAC;gBACtB,CAAC,CAAC,QAAQ,CAAC,cAAc,GAAG,oBAAoB;gBAChD,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YAC3B,MAAM,cAAc,GAClB,oBAAoB,GAAG,CAAC;gBACtB,CAAC,CAAC,QAAQ,CAAC,iBAAiB,GAAG,oBAAoB;gBACnD,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC9B,MAAM,2BAA2B,GAC/B,oBAAoB,GAAG,CAAC;gBACtB,CAAC,CAAC,QAAQ,CAAC,8BAA8B,GAAG,oBAAoB;gBAChE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAE3C,OAAO;gBACL,GAAG,QAAQ;gBACX,oBAAoB;gBACpB,WAAW;gBACX,cAAc;gBACd,2BAA2B;aAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}