@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
|
@@ -15,7 +15,6 @@ import type { UserPositionSnapshot } from "../../../types/userPosition.js";
|
|
|
15
15
|
import {
|
|
16
16
|
DEFAULT_LUNAR_TIMEOUT_MS,
|
|
17
17
|
createLunarIndexerClient,
|
|
18
|
-
shouldFallback,
|
|
19
18
|
} from "../../lunar-indexer-client.js";
|
|
20
19
|
import { transformPortfolioToSnapshots } from "../../lunar-indexer-transformers.js";
|
|
21
20
|
|
|
@@ -56,7 +55,6 @@ export type GetUserPositionSnapshotsReturnType = Promise<
|
|
|
56
55
|
* - Default behavior (no time parameters): Returns 365 days of history
|
|
57
56
|
* - Parameter priority: Custom timestamps > period > default (365 days)
|
|
58
57
|
* - When using Lunar Indexer, custom time ranges are supported
|
|
59
|
-
* - When falling back to Ponder, all available data is returned (client-side filtering may be needed)
|
|
60
58
|
* - Snapshots are filtered to start-of-day for "1d" granularity
|
|
61
59
|
*/
|
|
62
60
|
export async function getUserPositionSnapshots<
|
|
@@ -90,34 +88,45 @@ async function fetchUserPositionSnapshots(
|
|
|
90
88
|
endTime?: number,
|
|
91
89
|
granularity?: "6h" | "1d",
|
|
92
90
|
): Promise<UserPositionSnapshot[]> {
|
|
93
|
-
if (environment.lunarIndexerUrl) {
|
|
91
|
+
if (!environment.lunarIndexerUrl) {
|
|
92
|
+
if (!environment.indexerUrl) return [];
|
|
94
93
|
try {
|
|
95
|
-
|
|
94
|
+
return await fetchUserPositionSnapshotsFromPonder(
|
|
96
95
|
userAddress,
|
|
97
96
|
environment,
|
|
98
|
-
period,
|
|
99
|
-
startTime,
|
|
100
|
-
endTime,
|
|
101
|
-
granularity,
|
|
102
97
|
);
|
|
103
|
-
return result;
|
|
104
98
|
} catch (error) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
console.debug(
|
|
109
|
-
"[Lunar fallback] Falling back to Ponder for user snapshots:",
|
|
99
|
+
console.warn(
|
|
100
|
+
`[getUserPositionSnapshots] Ponder failed for chain ${environment.chainId}:`,
|
|
110
101
|
error,
|
|
111
102
|
);
|
|
103
|
+
environment.onError?.(error, {
|
|
104
|
+
source: "user-position-snapshots-ponder",
|
|
105
|
+
chainId: environment.chainId,
|
|
106
|
+
});
|
|
107
|
+
return [];
|
|
112
108
|
}
|
|
113
109
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
110
|
+
try {
|
|
111
|
+
return await fetchUserPositionSnapshotsFromLunar(
|
|
112
|
+
userAddress,
|
|
113
|
+
environment,
|
|
114
|
+
period,
|
|
115
|
+
startTime,
|
|
116
|
+
endTime,
|
|
117
|
+
granularity,
|
|
118
|
+
);
|
|
119
|
+
} catch (error) {
|
|
120
|
+
console.warn(
|
|
121
|
+
`[getUserPositionSnapshots] Lunar Indexer failed for chain ${environment.chainId}:`,
|
|
122
|
+
error,
|
|
123
|
+
);
|
|
124
|
+
environment.onError?.(error, {
|
|
125
|
+
source: "user-position-snapshots",
|
|
126
|
+
chainId: environment.chainId,
|
|
127
|
+
});
|
|
128
|
+
return [];
|
|
129
|
+
}
|
|
121
130
|
}
|
|
122
131
|
|
|
123
132
|
async function fetchUserPositionSnapshotsFromLunar(
|
|
@@ -182,9 +191,7 @@ async function fetchUserPositionSnapshotsFromPonder(
|
|
|
182
191
|
userAddress: Address,
|
|
183
192
|
environment: Environment,
|
|
184
193
|
): Promise<UserPositionSnapshot[]> {
|
|
185
|
-
|
|
186
|
-
let hasNextPage = true;
|
|
187
|
-
let endCursor: string | undefined;
|
|
194
|
+
if (!environment.indexerUrl) return [];
|
|
188
195
|
|
|
189
196
|
interface UserDailyData {
|
|
190
197
|
totalBorrowsUSD: string;
|
|
@@ -193,15 +200,16 @@ async function fetchUserPositionSnapshotsFromPonder(
|
|
|
193
200
|
timestamp: number;
|
|
194
201
|
}
|
|
195
202
|
|
|
203
|
+
const dailyData: UserDailyData[] = [];
|
|
204
|
+
let hasNextPage = true;
|
|
205
|
+
let endCursor: string | undefined;
|
|
206
|
+
|
|
196
207
|
while (hasNextPage) {
|
|
197
208
|
const result = await axios.post<{
|
|
198
209
|
data: {
|
|
199
210
|
accountDailySnapshots: {
|
|
200
211
|
items: UserDailyData[];
|
|
201
|
-
pageInfo: {
|
|
202
|
-
hasNextPage: boolean;
|
|
203
|
-
endCursor: string;
|
|
204
|
-
};
|
|
212
|
+
pageInfo: { hasNextPage: boolean; endCursor: string };
|
|
205
213
|
};
|
|
206
214
|
};
|
|
207
215
|
}>(environment.indexerUrl, {
|
|
@@ -238,23 +246,13 @@ async function fetchUserPositionSnapshotsFromPonder(
|
|
|
238
246
|
endCursor = result.data.data.accountDailySnapshots.pageInfo.endCursor;
|
|
239
247
|
}
|
|
240
248
|
|
|
241
|
-
if (dailyData.length
|
|
242
|
-
return dailyData.map((point: UserDailyData) => {
|
|
243
|
-
const borrowUsd = Number(point.totalBorrowsUSD);
|
|
244
|
-
const suppliedUsd = Number(point.totalSuppliesUSD);
|
|
245
|
-
const collateralUsd = Number(point.totalCollateralUSD);
|
|
249
|
+
if (dailyData.length === 0) return [];
|
|
246
250
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
return result;
|
|
256
|
-
});
|
|
257
|
-
} else {
|
|
258
|
-
return [];
|
|
259
|
-
}
|
|
251
|
+
return dailyData.map((point) => ({
|
|
252
|
+
chainId: environment.chainId,
|
|
253
|
+
timestamp: point.timestamp * 1000,
|
|
254
|
+
totalSupplyUsd: Number(point.totalSuppliesUSD),
|
|
255
|
+
totalBorrowsUsd: Number(point.totalBorrowsUSD),
|
|
256
|
+
totalCollateralUsd: Number(point.totalCollateralUSD),
|
|
257
|
+
}));
|
|
260
258
|
}
|
|
@@ -2,9 +2,8 @@ import axios from "axios";
|
|
|
2
2
|
import type { MoonwellClient } from "../../client/createMoonwellClient.js";
|
|
3
3
|
import { getEnvironmentFromArgs } from "../../common/index.js";
|
|
4
4
|
import type { OptionalNetworkParameterType } from "../../common/types.js";
|
|
5
|
-
import type { Chain } from "../../environments/index.js";
|
|
5
|
+
import type { Chain, Environment } from "../../environments/index.js";
|
|
6
6
|
import type { CirculatingSupplySnapshot } from "../../types/circulatingSupply.js";
|
|
7
|
-
import { shouldFallback } from "../lunar-indexer-client.js";
|
|
8
7
|
|
|
9
8
|
export type GetCirculatingSupplySnapshotsParameters<
|
|
10
9
|
environments,
|
|
@@ -74,40 +73,50 @@ export async function getCirculatingSupplySnapshots<
|
|
|
74
73
|
return [];
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
if (environment.lunarIndexerUrl) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
token,
|
|
92
|
-
circulatingSupply: Number.parseFloat(item.circulatingSupply),
|
|
93
|
-
totalSupply: item.totalSupply,
|
|
94
|
-
excludedBalance: item.excludedBalance,
|
|
95
|
-
timestamp: item.timestamp,
|
|
96
|
-
},
|
|
97
|
-
];
|
|
98
|
-
});
|
|
99
|
-
} catch (error) {
|
|
100
|
-
if (!shouldFallback(error)) {
|
|
101
|
-
throw error;
|
|
102
|
-
}
|
|
103
|
-
console.debug(
|
|
104
|
-
"[Lunar fallback] Falling back for circulating supply snapshots:",
|
|
105
|
-
error,
|
|
76
|
+
if (!environment.lunarIndexerUrl) {
|
|
77
|
+
return environment.indexerUrl
|
|
78
|
+
? fetchCirculatingSupplyFromPonder(environment)
|
|
79
|
+
: [];
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
try {
|
|
83
|
+
const items = await fetchCirculatingSupplyFromLunar(
|
|
84
|
+
environment.lunarIndexerUrl,
|
|
85
|
+
environment.chainId,
|
|
86
|
+
);
|
|
87
|
+
return items.flatMap((item) => {
|
|
88
|
+
const token = Object.values(environment.config.tokens).find(
|
|
89
|
+
(t) => t.address.toLowerCase() === item.tokenAddress.toLowerCase(),
|
|
106
90
|
);
|
|
107
|
-
|
|
91
|
+
if (!token) return [];
|
|
92
|
+
return [
|
|
93
|
+
{
|
|
94
|
+
chainId: item.chainId,
|
|
95
|
+
token,
|
|
96
|
+
circulatingSupply: Number.parseFloat(item.circulatingSupply),
|
|
97
|
+
totalSupply: item.totalSupply,
|
|
98
|
+
excludedBalance: item.excludedBalance,
|
|
99
|
+
timestamp: item.timestamp,
|
|
100
|
+
},
|
|
101
|
+
];
|
|
102
|
+
});
|
|
103
|
+
} catch (error) {
|
|
104
|
+
console.warn(
|
|
105
|
+
`[getCirculatingSupplySnapshots] Lunar Indexer failed for chain ${environment.chainId}:`,
|
|
106
|
+
error,
|
|
107
|
+
);
|
|
108
|
+
environment.onError?.(error, {
|
|
109
|
+
source: "circulating-supply",
|
|
110
|
+
chainId: environment.chainId,
|
|
111
|
+
});
|
|
112
|
+
return [];
|
|
108
113
|
}
|
|
114
|
+
}
|
|
109
115
|
|
|
110
|
-
|
|
116
|
+
async function fetchCirculatingSupplyFromPonder(
|
|
117
|
+
environment: Environment,
|
|
118
|
+
): Promise<CirculatingSupplySnapshot[]> {
|
|
119
|
+
if (!environment.indexerUrl) return [];
|
|
111
120
|
try {
|
|
112
121
|
const response = await axios.post<{
|
|
113
122
|
data: {
|
|
@@ -160,9 +169,8 @@ export async function getCirculatingSupplySnapshots<
|
|
|
160
169
|
];
|
|
161
170
|
},
|
|
162
171
|
);
|
|
163
|
-
} else {
|
|
164
|
-
return [];
|
|
165
172
|
}
|
|
173
|
+
return [];
|
|
166
174
|
} catch (ex) {
|
|
167
175
|
console.error(
|
|
168
176
|
"An error occurred while fetching getCirculatingSupplySnapshots...",
|
|
@@ -13,7 +13,6 @@ import type { StakingSnapshot } from "../../types/staking.js";
|
|
|
13
13
|
import {
|
|
14
14
|
DEFAULT_LUNAR_TIMEOUT_MS,
|
|
15
15
|
createLunarIndexerClient,
|
|
16
|
-
shouldFallback,
|
|
17
16
|
} from "../lunar-indexer-client.js";
|
|
18
17
|
import { transformStakingSnapshots } from "../lunar-indexer-transformers.js";
|
|
19
18
|
|
|
@@ -47,36 +46,40 @@ export async function getStakingSnapshots<
|
|
|
47
46
|
endTime: customEndTime,
|
|
48
47
|
} = (args ?? {}) as GetStakingSnapshotsParameters<environments, undefined>;
|
|
49
48
|
|
|
50
|
-
if (environment.lunarIndexerUrl) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
console.debug(
|
|
64
|
-
"[Lunar fallback] Falling back to Ponder for staking snapshots:",
|
|
65
|
-
error,
|
|
66
|
-
);
|
|
67
|
-
}
|
|
49
|
+
if (!environment.lunarIndexerUrl) {
|
|
50
|
+
const { startTime } = calculateTimeRange(
|
|
51
|
+
period,
|
|
52
|
+
customStartTime,
|
|
53
|
+
customEndTime,
|
|
54
|
+
);
|
|
55
|
+
return environment.indexerUrl
|
|
56
|
+
? fetchStakingSnapshotsFromPonder(
|
|
57
|
+
environment.chainId,
|
|
58
|
+
environment.indexerUrl,
|
|
59
|
+
startTime,
|
|
60
|
+
)
|
|
61
|
+
: [];
|
|
68
62
|
}
|
|
69
63
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
64
|
+
try {
|
|
65
|
+
return await fetchStakingSnapshotsFromLunar(
|
|
66
|
+
environment.chainId,
|
|
67
|
+
environment.lunarIndexerUrl,
|
|
68
|
+
period,
|
|
69
|
+
customStartTime,
|
|
70
|
+
customEndTime,
|
|
71
|
+
);
|
|
72
|
+
} catch (error) {
|
|
73
|
+
console.warn(
|
|
74
|
+
`[getStakingSnapshots] Lunar Indexer failed for chain ${environment.chainId}:`,
|
|
75
|
+
error,
|
|
76
|
+
);
|
|
77
|
+
environment.onError?.(error, {
|
|
78
|
+
source: "staking-snapshots",
|
|
79
|
+
chainId: environment.chainId,
|
|
80
|
+
});
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
80
83
|
}
|
|
81
84
|
|
|
82
85
|
async function fetchStakingSnapshotsFromLunar(
|