@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.
- package/CHANGELOG.md +12 -0
- package/_cjs/actions/core/markets/common.js +26 -12
- package/_cjs/actions/core/markets/common.js.map +1 -1
- package/_cjs/actions/core/markets/getMarketSnapshots.js +173 -321
- package/_cjs/actions/core/markets/getMarketSnapshots.js.map +1 -1
- package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js +31 -26
- package/_cjs/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
- package/_cjs/actions/governance/getCirculatingSupplySnapshots.js +35 -29
- package/_cjs/actions/governance/getCirculatingSupplySnapshots.js.map +1 -1
- package/_cjs/actions/governance/getStakingSnapshots.js +16 -12
- package/_cjs/actions/governance/getStakingSnapshots.js.map +1 -1
- package/_cjs/actions/governance/proposals/common.js +247 -211
- package/_cjs/actions/governance/proposals/common.js.map +1 -1
- package/_cjs/actions/lunar-indexer-client.js +32 -0
- package/_cjs/actions/lunar-indexer-client.js.map +1 -1
- package/_cjs/actions/morpho/markets/common.js +26 -29
- package/_cjs/actions/morpho/markets/common.js.map +1 -1
- package/_cjs/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js +41 -56
- package/_cjs/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js.map +1 -1
- package/_cjs/actions/morpho/vaults/common.js +7 -4
- package/_cjs/actions/morpho/vaults/common.js.map +1 -1
- package/_cjs/actions/morpho/vaults/getMorphoVaultSnapshots.js +21 -78
- package/_cjs/actions/morpho/vaults/getMorphoVaultSnapshots.js.map +1 -1
- package/_cjs/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js +13 -66
- package/_cjs/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js.map +1 -1
- package/_cjs/client/createMoonwellClient.js +9 -3
- package/_cjs/client/createMoonwellClient.js.map +1 -1
- package/_cjs/environments/definitions/arbitrum/environment.js +1 -2
- package/_cjs/environments/definitions/arbitrum/environment.js.map +1 -1
- package/_cjs/environments/definitions/avalanche/environment.js +1 -2
- package/_cjs/environments/definitions/avalanche/environment.js.map +1 -1
- package/_cjs/environments/definitions/base/custom.js +0 -1
- package/_cjs/environments/definitions/base/custom.js.map +1 -1
- package/_cjs/environments/definitions/base/environment.js +1 -2
- package/_cjs/environments/definitions/base/environment.js.map +1 -1
- package/_cjs/environments/definitions/ethereum/environment.js +1 -2
- package/_cjs/environments/definitions/ethereum/environment.js.map +1 -1
- package/_cjs/environments/definitions/moonbeam/environment.js +1 -2
- package/_cjs/environments/definitions/moonbeam/environment.js.map +1 -1
- package/_cjs/environments/definitions/optimism/custom.js +0 -1
- package/_cjs/environments/definitions/optimism/custom.js.map +1 -1
- package/_cjs/environments/definitions/optimism/environment.js +1 -2
- package/_cjs/environments/definitions/optimism/environment.js.map +1 -1
- package/_cjs/environments/definitions/polygon/environment.js +1 -2
- package/_cjs/environments/definitions/polygon/environment.js.map +1 -1
- package/_cjs/environments/index.js +8 -8
- package/_cjs/environments/index.js.map +1 -1
- package/_cjs/environments/types/config.js +1 -0
- package/_cjs/environments/types/config.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_esm/actions/core/markets/common.js +26 -13
- package/_esm/actions/core/markets/common.js.map +1 -1
- package/_esm/actions/core/markets/getMarketSnapshots.js +194 -346
- package/_esm/actions/core/markets/getMarketSnapshots.js.map +1 -1
- package/_esm/actions/core/user-positions/getUserPositionSnapshots.js +32 -29
- package/_esm/actions/core/user-positions/getUserPositionSnapshots.js.map +1 -1
- package/_esm/actions/governance/getCirculatingSupplySnapshots.js +35 -30
- package/_esm/actions/governance/getCirculatingSupplySnapshots.js.map +1 -1
- package/_esm/actions/governance/getStakingSnapshots.js +17 -13
- package/_esm/actions/governance/getStakingSnapshots.js.map +1 -1
- package/_esm/actions/governance/proposals/common.js +246 -216
- package/_esm/actions/governance/proposals/common.js.map +1 -1
- package/_esm/actions/lunar-indexer-client.js +35 -0
- package/_esm/actions/lunar-indexer-client.js.map +1 -1
- package/_esm/actions/morpho/markets/common.js +27 -34
- package/_esm/actions/morpho/markets/common.js.map +1 -1
- package/_esm/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js +42 -54
- package/_esm/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.js.map +1 -1
- package/_esm/actions/morpho/vaults/common.js +7 -4
- package/_esm/actions/morpho/vaults/common.js.map +1 -1
- package/_esm/actions/morpho/vaults/getMorphoVaultSnapshots.js +24 -78
- package/_esm/actions/morpho/vaults/getMorphoVaultSnapshots.js.map +1 -1
- package/_esm/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js +15 -65
- package/_esm/actions/morpho/vaults/getMorphoVaultStakingSnapshots.js.map +1 -1
- package/_esm/client/createMoonwellClient.js +9 -3
- package/_esm/client/createMoonwellClient.js.map +1 -1
- package/_esm/environments/definitions/arbitrum/environment.js +1 -2
- package/_esm/environments/definitions/arbitrum/environment.js.map +1 -1
- package/_esm/environments/definitions/avalanche/environment.js +1 -2
- package/_esm/environments/definitions/avalanche/environment.js.map +1 -1
- package/_esm/environments/definitions/base/custom.js +0 -1
- package/_esm/environments/definitions/base/custom.js.map +1 -1
- package/_esm/environments/definitions/base/environment.js +1 -2
- package/_esm/environments/definitions/base/environment.js.map +1 -1
- package/_esm/environments/definitions/ethereum/environment.js +1 -2
- package/_esm/environments/definitions/ethereum/environment.js.map +1 -1
- package/_esm/environments/definitions/moonbeam/environment.js +1 -2
- package/_esm/environments/definitions/moonbeam/environment.js.map +1 -1
- package/_esm/environments/definitions/optimism/custom.js +0 -1
- package/_esm/environments/definitions/optimism/custom.js.map +1 -1
- package/_esm/environments/definitions/optimism/environment.js +1 -2
- package/_esm/environments/definitions/optimism/environment.js.map +1 -1
- package/_esm/environments/definitions/polygon/environment.js +1 -2
- package/_esm/environments/definitions/polygon/environment.js.map +1 -1
- package/_esm/environments/index.js +8 -8
- package/_esm/environments/index.js.map +1 -1
- package/_esm/environments/types/config.js +1 -0
- package/_esm/environments/types/config.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_types/actions/core/markets/common.d.ts.map +1 -1
- package/_types/actions/core/markets/getMarketSnapshots.d.ts.map +1 -1
- package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts +0 -1
- package/_types/actions/core/user-positions/getUserPositionSnapshots.d.ts.map +1 -1
- package/_types/actions/governance/getCirculatingSupplySnapshots.d.ts.map +1 -1
- package/_types/actions/governance/getStakingSnapshots.d.ts.map +1 -1
- package/_types/actions/governance/proposals/common.d.ts +2 -8
- package/_types/actions/governance/proposals/common.d.ts.map +1 -1
- package/_types/actions/lunar-indexer-client.d.ts +26 -0
- package/_types/actions/lunar-indexer-client.d.ts.map +1 -1
- package/_types/actions/morpho/markets/common.d.ts.map +1 -1
- package/_types/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.d.ts +9 -3
- package/_types/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.d.ts.map +1 -1
- package/_types/actions/morpho/vaults/common.d.ts.map +1 -1
- package/_types/actions/morpho/vaults/getMorphoVaultSnapshots.d.ts.map +1 -1
- package/_types/actions/morpho/vaults/getMorphoVaultStakingSnapshots.d.ts.map +1 -1
- package/_types/client/createMoonwellClient.d.ts +4 -4
- package/_types/client/createMoonwellClient.d.ts.map +1 -1
- package/_types/environments/definitions/arbitrum/environment.d.ts +1 -1
- package/_types/environments/definitions/arbitrum/environment.d.ts.map +1 -1
- package/_types/environments/definitions/avalanche/environment.d.ts +1 -1
- package/_types/environments/definitions/avalanche/environment.d.ts.map +1 -1
- package/_types/environments/definitions/base/custom.d.ts +0 -1
- package/_types/environments/definitions/base/custom.d.ts.map +1 -1
- package/_types/environments/definitions/base/environment.d.ts +1 -1
- package/_types/environments/definitions/base/environment.d.ts.map +1 -1
- package/_types/environments/definitions/ethereum/environment.d.ts +1 -1
- package/_types/environments/definitions/ethereum/environment.d.ts.map +1 -1
- package/_types/environments/definitions/moonbeam/environment.d.ts +1 -1
- package/_types/environments/definitions/moonbeam/environment.d.ts.map +1 -1
- package/_types/environments/definitions/optimism/custom.d.ts +0 -1
- package/_types/environments/definitions/optimism/custom.d.ts.map +1 -1
- package/_types/environments/definitions/optimism/environment.d.ts +1 -2
- package/_types/environments/definitions/optimism/environment.d.ts.map +1 -1
- package/_types/environments/definitions/polygon/environment.d.ts +1 -1
- package/_types/environments/definitions/polygon/environment.d.ts.map +1 -1
- package/_types/environments/index.d.ts +0 -3
- package/_types/environments/index.d.ts.map +1 -1
- package/_types/environments/types/config.d.ts +10 -3
- package/_types/environments/types/config.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/actions/core/markets/common.ts +33 -18
- package/actions/core/markets/getMarketSnapshots.ts +261 -511
- package/actions/core/user-positions/getUserPositionSnapshots.ts +44 -46
- package/actions/governance/getCirculatingSupplySnapshots.ts +43 -35
- package/actions/governance/getStakingSnapshots.ts +32 -29
- package/actions/governance/proposals/common.ts +369 -330
- package/actions/lunar-indexer-client.ts +64 -0
- package/actions/morpho/markets/common.ts +32 -43
- package/actions/morpho/user-positions/getMorphoVaultUserPositionSnapshots.ts +76 -87
- package/actions/morpho/vaults/common.ts +7 -6
- package/actions/morpho/vaults/getMorphoVaultSnapshots.ts +36 -120
- package/actions/morpho/vaults/getMorphoVaultStakingSnapshots.ts +24 -111
- package/client/createMoonwellClient.ts +17 -5
- package/environments/definitions/arbitrum/environment.ts +0 -2
- package/environments/definitions/avalanche/environment.ts +0 -2
- package/environments/definitions/base/custom.ts +0 -1
- package/environments/definitions/base/environment.ts +0 -2
- package/environments/definitions/ethereum/environment.ts +0 -2
- package/environments/definitions/moonbeam/environment.ts +0 -2
- package/environments/definitions/optimism/custom.ts +0 -1
- package/environments/definitions/optimism/environment.ts +0 -2
- package/environments/definitions/polygon/environment.ts +0 -2
- package/environments/index.ts +6 -27
- package/environments/types/config.ts +11 -3
- package/errors/version.ts +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
|
-
import {
|
|
2
|
+
import { applyGranularity, calculateTimeRange, getEnvironmentFromArgs, isStartOfDay, toApiGranularity, } from "../../../common/index.js";
|
|
3
3
|
import { buildMarketId } from "../../../common/lunar-indexer-helpers.js";
|
|
4
|
-
import { DEFAULT_LUNAR_TIMEOUT_MS, createLunarIndexerClient,
|
|
4
|
+
import { DEFAULT_LUNAR_TIMEOUT_MS, createLunarIndexerClient, } from "../../lunar-indexer-client.js";
|
|
5
5
|
import { transformMarketSnapshots } from "../../lunar-indexer-transformers.js";
|
|
6
6
|
import { fetchMarketSnapshotsFromIndexer, transformIsolatedMarketSnapshotFromIndexer, } from "../../morpho/markets/lunarIndexerTransform.js";
|
|
7
7
|
/**
|
|
@@ -33,9 +33,7 @@ export async function getMarketSnapshots(client, args) {
|
|
|
33
33
|
return trimLeadingEmptySnapshots(snapshots);
|
|
34
34
|
}
|
|
35
35
|
const snapshots = await fetchIsolatedMarketSnapshots(args.marketId, environment, args.period, args.startTime, args.endTime);
|
|
36
|
-
//
|
|
37
|
-
// Morpho Blue API, subgraph, or a mix). Apply a final sanity check to ensure
|
|
38
|
-
// totalSupply is always in loan token units.
|
|
36
|
+
// Apply a final sanity check to ensure totalSupply is always in loan token units.
|
|
39
37
|
//
|
|
40
38
|
// Some markets (e.g. USDC/ETH where collateral=USDC, loan=WETH) normalize
|
|
41
39
|
// totalSupply to collateral units — skip the check for those because
|
|
@@ -71,61 +69,36 @@ export async function getMarketSnapshots(client, args) {
|
|
|
71
69
|
return trimLeadingEmptySnapshots(result);
|
|
72
70
|
}
|
|
73
71
|
async function fetchCoreMarketSnapshots(marketAddress, environment, period, startTime, endTime) {
|
|
74
|
-
if (environment.lunarIndexerUrl) {
|
|
72
|
+
if (!environment.lunarIndexerUrl) {
|
|
73
|
+
if (!environment.indexerUrl)
|
|
74
|
+
return [];
|
|
75
75
|
try {
|
|
76
|
-
|
|
77
|
-
return result;
|
|
76
|
+
return await fetchCoreMarketSnapshotsFromPonder(marketAddress, environment);
|
|
78
77
|
}
|
|
79
78
|
catch (error) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
console.warn(`[getMarketSnapshots] Ponder failed for chain ${environment.chainId}:`, error);
|
|
80
|
+
environment.onError?.(error, {
|
|
81
|
+
source: "market-snapshots-ponder",
|
|
82
|
+
chainId: environment.chainId,
|
|
83
|
+
});
|
|
84
|
+
return [];
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
async function fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, customStartTime, customEndTime) {
|
|
90
|
-
if (!environment.lunarIndexerUrl) {
|
|
91
|
-
throw new Error("Lunar Indexer URL not configured");
|
|
87
|
+
try {
|
|
88
|
+
return await fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, startTime, endTime);
|
|
92
89
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const { startTime, endTime, granularity } = calculateTimeRange(period, customStartTime, customEndTime);
|
|
99
|
-
const allSnapshots = [];
|
|
100
|
-
let cursor = null;
|
|
101
|
-
const MAX_PAGES = 100;
|
|
102
|
-
let page = 0;
|
|
103
|
-
do {
|
|
104
|
-
const response = await client.getMarketSnapshots(marketId, {
|
|
105
|
-
limit: 1000,
|
|
106
|
-
...(cursor && { cursor }),
|
|
107
|
-
granularity: toApiGranularity(granularity),
|
|
108
|
-
startTime,
|
|
109
|
-
endTime,
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.warn(`[getMarketSnapshots] Lunar Indexer failed for chain ${environment.chainId}:`, error);
|
|
92
|
+
environment.onError?.(error, {
|
|
93
|
+
source: "market-snapshots",
|
|
94
|
+
chainId: environment.chainId,
|
|
110
95
|
});
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
cursor = response.nextCursor;
|
|
114
|
-
page++;
|
|
115
|
-
} while (cursor !== null && page < MAX_PAGES);
|
|
116
|
-
allSnapshots.sort((a, b) => a.timestamp - b.timestamp);
|
|
117
|
-
return applyGranularity(allSnapshots, granularity).map((snapshot) => {
|
|
118
|
-
const supplied = snapshot.totalSupply;
|
|
119
|
-
const suppliedUsd = snapshot.totalSupplyUsd;
|
|
120
|
-
const price = supplied > 0 ? suppliedUsd / supplied : 0;
|
|
121
|
-
return {
|
|
122
|
-
...snapshot,
|
|
123
|
-
collateralTokenPrice: price,
|
|
124
|
-
loanTokenPrice: price,
|
|
125
|
-
};
|
|
126
|
-
});
|
|
96
|
+
return [];
|
|
97
|
+
}
|
|
127
98
|
}
|
|
128
99
|
async function fetchCoreMarketSnapshotsFromPonder(marketAddress, environment) {
|
|
100
|
+
if (!environment.indexerUrl)
|
|
101
|
+
return [];
|
|
129
102
|
const dailyData = [];
|
|
130
103
|
let hasNextPage = true;
|
|
131
104
|
let endCursor;
|
|
@@ -163,57 +136,73 @@ async function fetchCoreMarketSnapshotsFromPonder(marketAddress, environment) {
|
|
|
163
136
|
hasNextPage = result.data.data.marketDailySnapshots.pageInfo.hasNextPage;
|
|
164
137
|
endCursor = result.data.data.marketDailySnapshots.pageInfo.endCursor;
|
|
165
138
|
}
|
|
166
|
-
if (dailyData.length
|
|
167
|
-
return dailyData.map((point) => {
|
|
168
|
-
const supplied = Number(point.totalSupplies);
|
|
169
|
-
const borrow = Number(point.totalBorrows);
|
|
170
|
-
const borrowUsd = Number(point.totalBorrowsUSD);
|
|
171
|
-
const suppliedUsd = Number(point.totalSuppliesUSD);
|
|
172
|
-
const liquidity = Math.max(point.totalLiquidity, 0);
|
|
173
|
-
const liquidityUsd = Math.max(point.totalLiquidityUSD, 0);
|
|
174
|
-
const price = suppliedUsd / supplied;
|
|
175
|
-
const result = {
|
|
176
|
-
marketId: marketAddress.toLowerCase(),
|
|
177
|
-
chainId: environment.chainId,
|
|
178
|
-
timestamp: point.timestamp * 1000,
|
|
179
|
-
totalSupply: supplied,
|
|
180
|
-
totalSupplyUsd: suppliedUsd,
|
|
181
|
-
totalBorrows: borrow,
|
|
182
|
-
totalBorrowsUsd: borrowUsd,
|
|
183
|
-
totalLiquidity: liquidity,
|
|
184
|
-
totalLiquidityUsd: liquidityUsd,
|
|
185
|
-
totalReallocatableLiquidity: 0,
|
|
186
|
-
totalReallocatableLiquidityUsd: 0,
|
|
187
|
-
baseSupplyApy: point.baseSupplyApy,
|
|
188
|
-
baseBorrowApy: point.baseBorrowApy,
|
|
189
|
-
collateralTokenPrice: price,
|
|
190
|
-
loanTokenPrice: price,
|
|
191
|
-
};
|
|
192
|
-
return result;
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
139
|
+
if (dailyData.length === 0)
|
|
196
140
|
return [];
|
|
197
|
-
|
|
141
|
+
return dailyData.map((point) => {
|
|
142
|
+
const supplied = Number(point.totalSupplies);
|
|
143
|
+
const borrow = Number(point.totalBorrows);
|
|
144
|
+
const borrowUsd = Number(point.totalBorrowsUSD);
|
|
145
|
+
const suppliedUsd = Number(point.totalSuppliesUSD);
|
|
146
|
+
const liquidity = Math.max(point.totalLiquidity, 0);
|
|
147
|
+
const liquidityUsd = Math.max(point.totalLiquidityUSD, 0);
|
|
148
|
+
const price = suppliedUsd / supplied;
|
|
149
|
+
return {
|
|
150
|
+
marketId: marketAddress.toLowerCase(),
|
|
151
|
+
chainId: environment.chainId,
|
|
152
|
+
timestamp: point.timestamp * 1000,
|
|
153
|
+
totalSupply: supplied,
|
|
154
|
+
totalSupplyUsd: suppliedUsd,
|
|
155
|
+
totalBorrows: borrow,
|
|
156
|
+
totalBorrowsUsd: borrowUsd,
|
|
157
|
+
totalLiquidity: liquidity,
|
|
158
|
+
totalLiquidityUsd: liquidityUsd,
|
|
159
|
+
totalReallocatableLiquidity: 0,
|
|
160
|
+
totalReallocatableLiquidityUsd: 0,
|
|
161
|
+
baseSupplyApy: point.baseSupplyApy,
|
|
162
|
+
baseBorrowApy: point.baseBorrowApy,
|
|
163
|
+
collateralTokenPrice: price,
|
|
164
|
+
loanTokenPrice: price,
|
|
165
|
+
};
|
|
166
|
+
});
|
|
198
167
|
}
|
|
199
|
-
async function
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
const response = await axios.post(url, { query: query, operationName, variables }, { timeout: 5000 });
|
|
203
|
-
if (response.status !== 200 || response.data.errors) {
|
|
204
|
-
if (typeof window !== "undefined") {
|
|
205
|
-
console.debug(`[Morpho GraphQL Market Snapshots] Non-200 (${response.statusText}) or errors:`, response.data.errors);
|
|
206
|
-
}
|
|
207
|
-
return undefined;
|
|
208
|
-
}
|
|
209
|
-
return response.data.data;
|
|
210
|
-
}
|
|
211
|
-
catch (error) {
|
|
212
|
-
if (typeof window !== "undefined") {
|
|
213
|
-
console.debug("[Morpho GraphQL Market Snapshots] Error fetching data:", error);
|
|
214
|
-
}
|
|
215
|
-
return undefined;
|
|
168
|
+
async function fetchCoreMarketSnapshotsFromLunar(marketAddress, environment, period, customStartTime, customEndTime) {
|
|
169
|
+
if (!environment.lunarIndexerUrl) {
|
|
170
|
+
throw new Error("Lunar Indexer URL not configured");
|
|
216
171
|
}
|
|
172
|
+
const client = createLunarIndexerClient({
|
|
173
|
+
baseUrl: environment.lunarIndexerUrl,
|
|
174
|
+
timeout: DEFAULT_LUNAR_TIMEOUT_MS,
|
|
175
|
+
});
|
|
176
|
+
const marketId = buildMarketId(environment.chainId, marketAddress);
|
|
177
|
+
const { startTime, endTime, granularity } = calculateTimeRange(period, customStartTime, customEndTime);
|
|
178
|
+
const allSnapshots = [];
|
|
179
|
+
let cursor = null;
|
|
180
|
+
const MAX_PAGES = 100;
|
|
181
|
+
let page = 0;
|
|
182
|
+
do {
|
|
183
|
+
const response = await client.getMarketSnapshots(marketId, {
|
|
184
|
+
limit: 1000,
|
|
185
|
+
...(cursor && { cursor }),
|
|
186
|
+
granularity: toApiGranularity(granularity),
|
|
187
|
+
startTime,
|
|
188
|
+
endTime,
|
|
189
|
+
});
|
|
190
|
+
const transformed = transformMarketSnapshots(response.results, environment.chainId);
|
|
191
|
+
allSnapshots.push(...transformed);
|
|
192
|
+
cursor = response.nextCursor;
|
|
193
|
+
page++;
|
|
194
|
+
} while (cursor !== null && page < MAX_PAGES);
|
|
195
|
+
allSnapshots.sort((a, b) => a.timestamp - b.timestamp);
|
|
196
|
+
return applyGranularity(allSnapshots, granularity).map((snapshot) => {
|
|
197
|
+
const supplied = snapshot.totalSupply;
|
|
198
|
+
const suppliedUsd = snapshot.totalSupplyUsd;
|
|
199
|
+
const price = supplied > 0 ? suppliedUsd / supplied : 0;
|
|
200
|
+
return {
|
|
201
|
+
...snapshot,
|
|
202
|
+
collateralTokenPrice: price,
|
|
203
|
+
loanTokenPrice: price,
|
|
204
|
+
};
|
|
205
|
+
});
|
|
217
206
|
}
|
|
218
207
|
// Fetches a timestamp-ms → WELL price map from the WELL market in the indexer.
|
|
219
208
|
// Used to correct stkWELL snapshots where the indexer stored collateralTokenPrice = 0.
|
|
@@ -245,258 +234,117 @@ async function fetchWellPricesByTimestamp(lunarIndexerUrl, chainId, wellMarketCo
|
|
|
245
234
|
}
|
|
246
235
|
export async function fetchIsolatedMarketSnapshots(marketAddress, environment, period, customStartTime, customEndTime) {
|
|
247
236
|
const lunarIndexerUrl = environment.lunarIndexerUrl;
|
|
248
|
-
if (lunarIndexerUrl) {
|
|
249
|
-
|
|
250
|
-
const { startTime } = calculateTimeRange(period, customStartTime, customEndTime);
|
|
251
|
-
// The USDC/ETH market (collateral = USDC, loan = WETH) needs normalization:
|
|
252
|
-
// the indexer returns totalSupplyAssets in WETH units but the chart needs
|
|
253
|
-
// USDC-equivalent units (totalSupplyAssetsUsd / collateralTokenPrice).
|
|
254
|
-
const marketConfig = Object.values(environment.config.morphoMarkets).find((m) => m.id.toLowerCase() === marketAddress.toLowerCase());
|
|
255
|
-
const loanSymbol = marketConfig
|
|
256
|
-
? environment.config.tokens[marketConfig.loanToken]?.symbol
|
|
257
|
-
: undefined;
|
|
258
|
-
const collateralSymbol = marketConfig
|
|
259
|
-
? environment.config.tokens[marketConfig.collateralToken]?.symbol
|
|
260
|
-
: undefined;
|
|
261
|
-
const normalizeToCollateral = loanSymbol === "ETH" && collateralSymbol === "USDC";
|
|
262
|
-
// stkWELL is not priced by the indexer (same oracle as WELL but unrecognized).
|
|
263
|
-
// Fetch the WELL market snapshots concurrently and use their prices to correct
|
|
264
|
-
// any stkWELL snapshots where collateralTokenPrice is 0.
|
|
265
|
-
const isStkWellMarket = collateralSymbol === "stkWELL";
|
|
266
|
-
const wellMarketConfig = isStkWellMarket
|
|
267
|
-
? Object.values(environment.config.morphoMarkets).find((m) => m.collateralToken === "WELL" || m.loanToken === "WELL")
|
|
268
|
-
: undefined;
|
|
269
|
-
const wellPricesPromise = wellMarketConfig
|
|
270
|
-
? fetchWellPricesByTimestamp(lunarIndexerUrl, environment.chainId, wellMarketConfig, startTime)
|
|
271
|
-
: Promise.resolve(new Map());
|
|
272
|
-
const allSnapshots = [];
|
|
273
|
-
let cursor;
|
|
274
|
-
const MAX_PAGES = 100;
|
|
275
|
-
let page = 0;
|
|
276
|
-
do {
|
|
277
|
-
const response = await fetchMarketSnapshotsFromIndexer(lunarIndexerUrl, environment.chainId, marketAddress, {
|
|
278
|
-
startTime,
|
|
279
|
-
granularity: "1d",
|
|
280
|
-
limit: 1000,
|
|
281
|
-
...(cursor && { cursor }),
|
|
282
|
-
});
|
|
283
|
-
allSnapshots.push(...response.results
|
|
284
|
-
.filter((s) => isStartOfDay(s.timestamp))
|
|
285
|
-
.map((s) => transformIsolatedMarketSnapshotFromIndexer(s, {
|
|
286
|
-
normalizeToCollateral,
|
|
287
|
-
})));
|
|
288
|
-
cursor = response.nextCursor ?? undefined;
|
|
289
|
-
page++;
|
|
290
|
-
} while (cursor !== undefined && page < MAX_PAGES);
|
|
291
|
-
// Sanity check for non-normalized markets: detect when totalSupplyAssets was
|
|
292
|
-
// stored in collateral units instead of loan token units (an indexer bug seen on
|
|
293
|
-
// the stkWELL/USDC market). When this happens, totalSupplyUsd / totalSupply is
|
|
294
|
-
// close to collateralTokenPrice rather than loanTokenPrice. Recover the correct
|
|
295
|
-
// loan-token amount from the USD value instead of discarding the data point.
|
|
296
|
-
// We skip normalized markets (e.g. USDC/ETH where totalSupply is already in
|
|
297
|
-
// collateral units after normalization) to avoid false corrections.
|
|
298
|
-
const sanitizedSnapshots = normalizeToCollateral
|
|
299
|
-
? allSnapshots
|
|
300
|
-
: allSnapshots.map((snapshot) => {
|
|
301
|
-
if (snapshot.totalSupply === 0 || snapshot.loanTokenPrice === 0)
|
|
302
|
-
return snapshot;
|
|
303
|
-
const impliedLoanPrice = snapshot.totalSupplyUsd / snapshot.totalSupply;
|
|
304
|
-
if (impliedLoanPrice < snapshot.loanTokenPrice * 0.1) {
|
|
305
|
-
return {
|
|
306
|
-
...snapshot,
|
|
307
|
-
totalSupply: snapshot.totalSupplyUsd / snapshot.loanTokenPrice,
|
|
308
|
-
totalLiquidity: snapshot.totalLiquidityUsd / snapshot.loanTokenPrice,
|
|
309
|
-
};
|
|
310
|
-
}
|
|
311
|
-
return snapshot;
|
|
312
|
-
});
|
|
313
|
-
if (isStkWellMarket) {
|
|
314
|
-
const wellPriceByTimestampMs = await wellPricesPromise;
|
|
315
|
-
return sanitizedSnapshots.map((snapshot) => {
|
|
316
|
-
// Resolve the collateral (stkWELL) price: use indexed price when available,
|
|
317
|
-
// fall back to the WELL market price fetched concurrently.
|
|
318
|
-
let collateralTokenPrice = snapshot.collateralTokenPrice;
|
|
319
|
-
if (collateralTokenPrice === 0) {
|
|
320
|
-
const wellPrice = wellPriceByTimestampMs.get(snapshot.timestamp);
|
|
321
|
-
if (wellPrice)
|
|
322
|
-
collateralTokenPrice = wellPrice;
|
|
323
|
-
}
|
|
324
|
-
// The lunar indexer stores totalSupplyAssets in loan-token (USDC) units.
|
|
325
|
-
// All fallback paths (BlueAPI, subgraph) convert to collateral (stkWELL) units:
|
|
326
|
-
// totalSupply = totalSupplyUsd / collateralTokenPrice
|
|
327
|
-
// Apply the same conversion here so the chart axis is consistent.
|
|
328
|
-
const totalSupply = collateralTokenPrice > 0
|
|
329
|
-
? snapshot.totalSupplyUsd / collateralTokenPrice
|
|
330
|
-
: snapshot.totalSupply;
|
|
331
|
-
const totalLiquidity = collateralTokenPrice > 0
|
|
332
|
-
? snapshot.totalLiquidityUsd / collateralTokenPrice
|
|
333
|
-
: snapshot.totalLiquidity;
|
|
334
|
-
const totalReallocatableLiquidity = collateralTokenPrice > 0
|
|
335
|
-
? snapshot.totalReallocatableLiquidityUsd / collateralTokenPrice
|
|
336
|
-
: snapshot.totalReallocatableLiquidity;
|
|
337
|
-
return {
|
|
338
|
-
...snapshot,
|
|
339
|
-
collateralTokenPrice,
|
|
340
|
-
totalSupply,
|
|
341
|
-
totalLiquidity,
|
|
342
|
-
totalReallocatableLiquidity,
|
|
343
|
-
};
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
return sanitizedSnapshots;
|
|
347
|
-
}
|
|
348
|
-
catch (error) {
|
|
349
|
-
if (!shouldFallback(error)) {
|
|
350
|
-
throw error;
|
|
351
|
-
}
|
|
352
|
-
console.debug("[Lunar fallback] Falling back for isolated market snapshots:", error);
|
|
353
|
-
}
|
|
237
|
+
if (!lunarIndexerUrl) {
|
|
238
|
+
return [];
|
|
354
239
|
}
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
async function fetchIsolatedMarketSnapshotsFromBlueApi(marketAddress, environment, period, customStartTime, customEndTime) {
|
|
358
|
-
const marketConfig = Object.values(environment.config.morphoMarkets).find((market) => market.id.toLowerCase() === marketAddress.toLowerCase());
|
|
359
|
-
const isStkWellMarket = marketConfig &&
|
|
360
|
-
environment.config.tokens[marketConfig.collateralToken]?.symbol ===
|
|
361
|
-
"stkWELL";
|
|
362
|
-
// If stkWELL market, fetch WELL price from subgraph. stkWELL and WELL have the same price
|
|
363
|
-
let wellPrice = null;
|
|
364
|
-
if (isStkWellMarket) {
|
|
365
|
-
const wellMarketConfig = Object.values(environment.config.morphoMarkets).find((market) => market.collateralToken === "WELL" || market.loanToken === "WELL");
|
|
366
|
-
if (wellMarketConfig) {
|
|
367
|
-
const wellQuery = `
|
|
368
|
-
query getWellPrice {
|
|
369
|
-
wellMarket: marketByUniqueKey(
|
|
370
|
-
chainId: ${environment.chainId}
|
|
371
|
-
uniqueKey: "${wellMarketConfig.id.toLowerCase()}"
|
|
372
|
-
) {
|
|
373
|
-
loanAsset {
|
|
374
|
-
priceUsd
|
|
375
|
-
}
|
|
376
|
-
collateralAsset {
|
|
377
|
-
priceUsd
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
}`;
|
|
381
|
-
const wellResult = await fetchMorphoGraphQL(environment, wellQuery, "getWellPrice");
|
|
382
|
-
if (wellResult?.wellMarket) {
|
|
383
|
-
wellPrice =
|
|
384
|
-
wellMarketConfig.collateralToken === "WELL"
|
|
385
|
-
? wellResult.wellMarket.collateralAsset.priceUsd
|
|
386
|
-
: wellResult.wellMarket.loanAsset.priceUsd;
|
|
387
|
-
}
|
|
388
|
-
}
|
|
240
|
+
try {
|
|
241
|
+
return await fetchIsolatedMarketSnapshotsFromLunar(marketAddress, environment, lunarIndexerUrl, period, customStartTime, customEndTime);
|
|
389
242
|
}
|
|
390
|
-
|
|
243
|
+
catch (error) {
|
|
244
|
+
console.warn(`[getMarketSnapshots] Lunar Indexer failed for chain ${environment.chainId}:`, error);
|
|
245
|
+
environment.onError?.(error, {
|
|
246
|
+
source: "market-snapshots",
|
|
247
|
+
chainId: environment.chainId,
|
|
248
|
+
});
|
|
249
|
+
return [];
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
async function fetchIsolatedMarketSnapshotsFromLunar(marketAddress, environment, lunarIndexerUrl, period, customStartTime, customEndTime) {
|
|
391
253
|
const { startTime } = calculateTimeRange(period, customStartTime, customEndTime);
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
}`;
|
|
449
|
-
const result = await fetchMorphoGraphQL(environment, query, operationName, variables);
|
|
450
|
-
if (result) {
|
|
451
|
-
try {
|
|
452
|
-
const markets = result.marketTotalTimeseries.historicalState.borrowAssets.map((borrowAssets, index) => {
|
|
453
|
-
const loanDecimals = result.marketTotalTimeseries.loanAsset.decimals;
|
|
454
|
-
const borrowAssetsUsd = result.marketTotalTimeseries.historicalState.borrowAssetsUsd[index];
|
|
455
|
-
const supplyAssets = result.marketTotalTimeseries.historicalState.supplyAssets[index];
|
|
456
|
-
const supplyAssetsUsd = result.marketTotalTimeseries.historicalState.supplyAssetsUsd[index];
|
|
457
|
-
const liquidityAssets = result.marketTotalTimeseries.historicalState.liquidityAssets[index];
|
|
458
|
-
const liquidityAssetsUsd = result.marketTotalTimeseries.historicalState.liquidityAssetsUsd[index];
|
|
459
|
-
const supplyApy = result.marketTotalTimeseries.historicalState.supplyApy[index];
|
|
460
|
-
const borrowApy = result.marketTotalTimeseries.historicalState.borrowApy[index];
|
|
461
|
-
let collateralTokenPrice = result.marketTotalTimeseries.collateralAsset.priceUsd;
|
|
462
|
-
const loanTokenPrice = result.marketTotalTimeseries.loanAsset.priceUsd;
|
|
463
|
-
if (isStkWellMarket && wellPrice !== null) {
|
|
464
|
-
collateralTokenPrice = wellPrice;
|
|
465
|
-
}
|
|
466
|
-
const totalSupply = (new Amount(BigInt(supplyAssets.y), Number(loanDecimals)).value *
|
|
467
|
-
loanTokenPrice) /
|
|
468
|
-
collateralTokenPrice;
|
|
469
|
-
const totalBorrows = new Amount(BigInt(borrowAssets.y), Number(loanDecimals)).value;
|
|
470
|
-
const totalLiquidity = (new Amount(BigInt(liquidityAssets.y), Number(loanDecimals))
|
|
471
|
-
.value *
|
|
472
|
-
loanTokenPrice) /
|
|
473
|
-
collateralTokenPrice;
|
|
254
|
+
// The USDC/ETH market (collateral = USDC, loan = WETH) needs normalization:
|
|
255
|
+
// the indexer returns totalSupplyAssets in WETH units but the chart needs
|
|
256
|
+
// USDC-equivalent units (totalSupplyAssetsUsd / collateralTokenPrice).
|
|
257
|
+
const marketConfig = Object.values(environment.config.morphoMarkets).find((m) => m.id.toLowerCase() === marketAddress.toLowerCase());
|
|
258
|
+
const loanSymbol = marketConfig
|
|
259
|
+
? environment.config.tokens[marketConfig.loanToken]?.symbol
|
|
260
|
+
: undefined;
|
|
261
|
+
const collateralSymbol = marketConfig
|
|
262
|
+
? environment.config.tokens[marketConfig.collateralToken]?.symbol
|
|
263
|
+
: undefined;
|
|
264
|
+
const normalizeToCollateral = loanSymbol === "ETH" && collateralSymbol === "USDC";
|
|
265
|
+
// stkWELL is not priced by the indexer (same oracle as WELL but unrecognized).
|
|
266
|
+
// Fetch the WELL market snapshots concurrently and use their prices to correct
|
|
267
|
+
// any stkWELL snapshots where collateralTokenPrice is 0.
|
|
268
|
+
const isStkWellMarket = collateralSymbol === "stkWELL";
|
|
269
|
+
const wellMarketConfig = isStkWellMarket
|
|
270
|
+
? Object.values(environment.config.morphoMarkets).find((m) => m.collateralToken === "WELL" || m.loanToken === "WELL")
|
|
271
|
+
: undefined;
|
|
272
|
+
const wellPricesPromise = wellMarketConfig
|
|
273
|
+
? fetchWellPricesByTimestamp(lunarIndexerUrl, environment.chainId, wellMarketConfig, startTime)
|
|
274
|
+
: Promise.resolve(new Map());
|
|
275
|
+
const allSnapshots = [];
|
|
276
|
+
let cursor;
|
|
277
|
+
const MAX_PAGES = 100;
|
|
278
|
+
let page = 0;
|
|
279
|
+
do {
|
|
280
|
+
const response = await fetchMarketSnapshotsFromIndexer(lunarIndexerUrl, environment.chainId, marketAddress, {
|
|
281
|
+
startTime,
|
|
282
|
+
granularity: "1d",
|
|
283
|
+
limit: 1000,
|
|
284
|
+
...(cursor && { cursor }),
|
|
285
|
+
});
|
|
286
|
+
allSnapshots.push(...response.results
|
|
287
|
+
.filter((s) => isStartOfDay(s.timestamp))
|
|
288
|
+
.map((s) => transformIsolatedMarketSnapshotFromIndexer(s, {
|
|
289
|
+
normalizeToCollateral,
|
|
290
|
+
})));
|
|
291
|
+
cursor = response.nextCursor ?? undefined;
|
|
292
|
+
page++;
|
|
293
|
+
} while (cursor !== undefined && page < MAX_PAGES);
|
|
294
|
+
// Sanity check for non-normalized markets: detect when totalSupplyAssets was
|
|
295
|
+
// stored in collateral units instead of loan token units (an indexer bug seen on
|
|
296
|
+
// the stkWELL/USDC market). When this happens, totalSupplyUsd / totalSupply is
|
|
297
|
+
// close to collateralTokenPrice rather than loanTokenPrice. Recover the correct
|
|
298
|
+
// loan-token amount from the USD value instead of discarding the data point.
|
|
299
|
+
// We skip normalized markets (e.g. USDC/ETH where totalSupply is already in
|
|
300
|
+
// collateral units after normalization) to avoid false corrections.
|
|
301
|
+
const sanitizedSnapshots = normalizeToCollateral
|
|
302
|
+
? allSnapshots
|
|
303
|
+
: allSnapshots.map((snapshot) => {
|
|
304
|
+
if (snapshot.totalSupply === 0 || snapshot.loanTokenPrice === 0)
|
|
305
|
+
return snapshot;
|
|
306
|
+
const impliedLoanPrice = snapshot.totalSupplyUsd / snapshot.totalSupply;
|
|
307
|
+
if (impliedLoanPrice < snapshot.loanTokenPrice * 0.1) {
|
|
474
308
|
return {
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
totalBorrows,
|
|
479
|
-
totalBorrowsUsd: Number(borrowAssetsUsd.y),
|
|
480
|
-
totalSupply,
|
|
481
|
-
totalSupplyUsd: Number(supplyAssetsUsd.y),
|
|
482
|
-
totalLiquidity,
|
|
483
|
-
totalLiquidityUsd: Number(liquidityAssetsUsd.y),
|
|
484
|
-
totalReallocatableLiquidity: 0,
|
|
485
|
-
totalReallocatableLiquidityUsd: 0,
|
|
486
|
-
baseSupplyApy: supplyApy.y,
|
|
487
|
-
baseBorrowApy: borrowApy.y,
|
|
488
|
-
loanTokenPrice,
|
|
489
|
-
collateralTokenPrice,
|
|
309
|
+
...snapshot,
|
|
310
|
+
totalSupply: snapshot.totalSupplyUsd / snapshot.loanTokenPrice,
|
|
311
|
+
totalLiquidity: snapshot.totalLiquidityUsd / snapshot.loanTokenPrice,
|
|
490
312
|
};
|
|
491
|
-
}
|
|
492
|
-
return
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
313
|
+
}
|
|
314
|
+
return snapshot;
|
|
315
|
+
});
|
|
316
|
+
if (isStkWellMarket) {
|
|
317
|
+
const wellPriceByTimestampMs = await wellPricesPromise;
|
|
318
|
+
return sanitizedSnapshots.map((snapshot) => {
|
|
319
|
+
// Resolve the collateral (stkWELL) price: use indexed price when available,
|
|
320
|
+
// fall back to the WELL market price fetched concurrently.
|
|
321
|
+
let collateralTokenPrice = snapshot.collateralTokenPrice;
|
|
322
|
+
if (collateralTokenPrice === 0) {
|
|
323
|
+
const wellPrice = wellPriceByTimestampMs.get(snapshot.timestamp);
|
|
324
|
+
if (wellPrice)
|
|
325
|
+
collateralTokenPrice = wellPrice;
|
|
326
|
+
}
|
|
327
|
+
// The lunar indexer stores totalSupplyAssets in loan-token (USDC) units.
|
|
328
|
+
// Convert to collateral (stkWELL) units for a consistent chart axis:
|
|
329
|
+
// totalSupply = totalSupplyUsd / collateralTokenPrice
|
|
330
|
+
const totalSupply = collateralTokenPrice > 0
|
|
331
|
+
? snapshot.totalSupplyUsd / collateralTokenPrice
|
|
332
|
+
: snapshot.totalSupply;
|
|
333
|
+
const totalLiquidity = collateralTokenPrice > 0
|
|
334
|
+
? snapshot.totalLiquidityUsd / collateralTokenPrice
|
|
335
|
+
: snapshot.totalLiquidity;
|
|
336
|
+
const totalReallocatableLiquidity = collateralTokenPrice > 0
|
|
337
|
+
? snapshot.totalReallocatableLiquidityUsd / collateralTokenPrice
|
|
338
|
+
: snapshot.totalReallocatableLiquidity;
|
|
339
|
+
return {
|
|
340
|
+
...snapshot,
|
|
341
|
+
collateralTokenPrice,
|
|
342
|
+
totalSupply,
|
|
343
|
+
totalLiquidity,
|
|
344
|
+
totalReallocatableLiquidity,
|
|
345
|
+
};
|
|
346
|
+
});
|
|
500
347
|
}
|
|
348
|
+
return sanitizedSnapshots;
|
|
501
349
|
}
|
|
502
350
|
//# 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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"}
|