@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,23 +1,20 @@
|
|
|
1
|
-
import axios from "axios";
|
|
2
1
|
import type { MoonwellClient } from "../../../client/createMoonwellClient.js";
|
|
3
2
|
import {
|
|
4
3
|
type SnapshotPeriod,
|
|
5
4
|
applyGranularity,
|
|
6
5
|
calculateTimeRange,
|
|
7
6
|
getEnvironmentFromArgs,
|
|
8
|
-
isStartOfDay,
|
|
9
7
|
toApiGranularity,
|
|
10
8
|
} from "../../../common/index.js";
|
|
11
9
|
import type {
|
|
12
10
|
MorphoVaultParameterType,
|
|
13
11
|
NetworkParameterType,
|
|
14
12
|
} from "../../../common/types.js";
|
|
15
|
-
import type { Chain
|
|
13
|
+
import type { Chain } from "../../../environments/index.js";
|
|
16
14
|
import type { MorphoVaultStakingSnapshot } from "../../../types/morphoVault.js";
|
|
17
15
|
import {
|
|
18
16
|
DEFAULT_LUNAR_TIMEOUT_MS,
|
|
19
17
|
createLunarIndexerClient,
|
|
20
|
-
shouldFallback,
|
|
21
18
|
} from "../../lunar-indexer-client.js";
|
|
22
19
|
import { transformVaultStakingSnapshots } from "../../lunar-indexer-transformers.js";
|
|
23
20
|
|
|
@@ -56,37 +53,31 @@ export async function getMorphoVaultStakingSnapshots<
|
|
|
56
53
|
} = args as GetMorphoVaultStakingSnapshotsParameters<environments, undefined>;
|
|
57
54
|
|
|
58
55
|
const { lunarIndexerUrl } = environment;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
vaultAddress,
|
|
63
|
-
lunarIndexerUrl,
|
|
64
|
-
environment.chainId,
|
|
65
|
-
period,
|
|
66
|
-
customStartTime,
|
|
67
|
-
customEndTime,
|
|
68
|
-
);
|
|
69
|
-
} catch (error) {
|
|
70
|
-
if (!shouldFallback(error)) {
|
|
71
|
-
throw error;
|
|
72
|
-
}
|
|
73
|
-
console.debug(
|
|
74
|
-
"[Lunar fallback] Falling back to Ponder for vault staking snapshots:",
|
|
75
|
-
error,
|
|
76
|
-
);
|
|
77
|
-
}
|
|
56
|
+
|
|
57
|
+
if (!lunarIndexerUrl) {
|
|
58
|
+
return [];
|
|
78
59
|
}
|
|
79
60
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
)
|
|
61
|
+
try {
|
|
62
|
+
return await fetchVaultStakingSnapshotsFromLunar(
|
|
63
|
+
vaultAddress,
|
|
64
|
+
lunarIndexerUrl,
|
|
65
|
+
environment.chainId,
|
|
66
|
+
period,
|
|
67
|
+
customStartTime,
|
|
68
|
+
customEndTime,
|
|
69
|
+
);
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.warn(
|
|
72
|
+
`[getMorphoVaultStakingSnapshots] Lunar Indexer failed for chain ${environment.chainId}:`,
|
|
73
|
+
error,
|
|
74
|
+
);
|
|
75
|
+
environment.onError?.(error, {
|
|
76
|
+
source: "morpho-vault-staking-snapshots",
|
|
77
|
+
chainId: environment.chainId,
|
|
78
|
+
});
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
90
81
|
}
|
|
91
82
|
|
|
92
83
|
async function fetchVaultStakingSnapshotsFromLunar(
|
|
@@ -131,81 +122,3 @@ async function fetchVaultStakingSnapshotsFromLunar(
|
|
|
131
122
|
allSnapshots.sort((a, b) => a.timestamp - b.timestamp);
|
|
132
123
|
return applyGranularity(allSnapshots, granularity);
|
|
133
124
|
}
|
|
134
|
-
|
|
135
|
-
interface VaultStakingData {
|
|
136
|
-
totalStaked: number;
|
|
137
|
-
totalStakedUSD: number;
|
|
138
|
-
timestamp: number;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
async function fetchVaultStakingSnapshotsFromPonder(
|
|
142
|
-
vaultAddress: string,
|
|
143
|
-
environment: Environment,
|
|
144
|
-
startTime?: number,
|
|
145
|
-
): Promise<MorphoVaultStakingSnapshot[]> {
|
|
146
|
-
const dailyData: VaultStakingData[] = [];
|
|
147
|
-
let hasNextPage = true;
|
|
148
|
-
let endCursor: string | undefined;
|
|
149
|
-
|
|
150
|
-
while (hasNextPage) {
|
|
151
|
-
const result = await axios.post<{
|
|
152
|
-
data: {
|
|
153
|
-
vaultStakingDailySnapshots: {
|
|
154
|
-
items: VaultStakingData[];
|
|
155
|
-
pageInfo: {
|
|
156
|
-
hasNextPage: boolean;
|
|
157
|
-
endCursor: string;
|
|
158
|
-
};
|
|
159
|
-
};
|
|
160
|
-
};
|
|
161
|
-
}>(environment.indexerUrl, {
|
|
162
|
-
query: `
|
|
163
|
-
query {
|
|
164
|
-
vaultStakingDailySnapshots (
|
|
165
|
-
limit: 365,
|
|
166
|
-
orderBy: "timestamp"
|
|
167
|
-
orderDirection: "desc"
|
|
168
|
-
where: {vaultAddress: "${vaultAddress.toLowerCase()}", chainId: ${environment.chainId}}
|
|
169
|
-
${endCursor ? `after: "${endCursor}"` : ""}
|
|
170
|
-
) {
|
|
171
|
-
items {
|
|
172
|
-
totalStaked
|
|
173
|
-
totalStakedUSD
|
|
174
|
-
timestamp
|
|
175
|
-
}
|
|
176
|
-
pageInfo {
|
|
177
|
-
hasNextPage
|
|
178
|
-
endCursor
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
`,
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
if (result.data.data.vaultStakingDailySnapshots) {
|
|
186
|
-
dailyData.push(
|
|
187
|
-
...result.data.data.vaultStakingDailySnapshots.items.filter(
|
|
188
|
-
(f: { timestamp: number }) =>
|
|
189
|
-
isStartOfDay(f.timestamp) &&
|
|
190
|
-
(startTime === undefined || f.timestamp >= startTime),
|
|
191
|
-
),
|
|
192
|
-
);
|
|
193
|
-
hasNextPage =
|
|
194
|
-
result.data.data.vaultStakingDailySnapshots.pageInfo.hasNextPage;
|
|
195
|
-
endCursor =
|
|
196
|
-
result.data.data.vaultStakingDailySnapshots.pageInfo.endCursor;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
if (dailyData.length > 0) {
|
|
201
|
-
return dailyData.map((point: VaultStakingData) => ({
|
|
202
|
-
vaultAddress: vaultAddress.toLowerCase(),
|
|
203
|
-
chainId: environment.chainId,
|
|
204
|
-
timestamp: point.timestamp * 1000,
|
|
205
|
-
totalStaked: Number(point.totalStaked),
|
|
206
|
-
totalStakedUsd: Number(point.totalStakedUSD),
|
|
207
|
-
}));
|
|
208
|
-
} else {
|
|
209
|
-
return [];
|
|
210
|
-
}
|
|
211
|
-
}
|
|
@@ -77,12 +77,15 @@ export type NetworksConfig<networks> = {} extends networks
|
|
|
77
77
|
|
|
78
78
|
export const createMoonwellClient = <const networks>(config: {
|
|
79
79
|
networks: NetworksConfig<Narrow<networks>>;
|
|
80
|
+
onError?: (
|
|
81
|
+
error: unknown,
|
|
82
|
+
context: { source: string; chainId: number },
|
|
83
|
+
) => void;
|
|
80
84
|
}) => {
|
|
81
|
-
const environments = Object.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
]!;
|
|
85
|
+
const environments = Object.entries(
|
|
86
|
+
config.networks as NetworksConfig<SupportedChains>,
|
|
87
|
+
).reduce((prev, [curr, networkConfig]) => {
|
|
88
|
+
if (!networkConfig) return prev;
|
|
86
89
|
return {
|
|
87
90
|
...prev,
|
|
88
91
|
[curr]: createEnvironment({
|
|
@@ -143,6 +146,15 @@ export const createMoonwellClient = <const networks>(config: {
|
|
|
143
146
|
}
|
|
144
147
|
>;
|
|
145
148
|
|
|
149
|
+
if (config.onError) {
|
|
150
|
+
const onError = config.onError;
|
|
151
|
+
for (const env of Object.values(
|
|
152
|
+
environments as Record<string, Environment>,
|
|
153
|
+
)) {
|
|
154
|
+
env.onError = onError;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
146
158
|
const client = {
|
|
147
159
|
environments,
|
|
148
160
|
};
|
|
@@ -8,7 +8,6 @@ import { tokens } from "./tokens.js";
|
|
|
8
8
|
|
|
9
9
|
const createEnvironment = (
|
|
10
10
|
rpcUrls?: string[],
|
|
11
|
-
indexerUrl?: string,
|
|
12
11
|
governanceIndexerUrl?: string,
|
|
13
12
|
): Environment<typeof tokens, {}, {}, {}, {}> =>
|
|
14
13
|
createEnvironmentConfig({
|
|
@@ -25,7 +24,6 @@ const createEnvironment = (
|
|
|
25
24
|
transport: rpcUrls
|
|
26
25
|
? fallback(rpcUrls.map((url) => http(url)))
|
|
27
26
|
: http("https://rpc.moonwell.fi/main/evm/42161"),
|
|
28
|
-
indexerUrl: indexerUrl || "https://ponder.moonwell.fi",
|
|
29
27
|
governanceIndexerUrl:
|
|
30
28
|
governanceIndexerUrl ||
|
|
31
29
|
"https://lunar-services-worker.moonwell.workers.dev",
|
|
@@ -8,7 +8,6 @@ import { tokens } from "./tokens.js";
|
|
|
8
8
|
|
|
9
9
|
const createEnvironment = (
|
|
10
10
|
rpcUrls?: string[],
|
|
11
|
-
indexerUrl?: string,
|
|
12
11
|
governanceIndexerUrl?: string,
|
|
13
12
|
): Environment<typeof tokens, {}, {}, {}, {}> =>
|
|
14
13
|
createEnvironmentConfig({
|
|
@@ -25,7 +24,6 @@ const createEnvironment = (
|
|
|
25
24
|
transport: rpcUrls
|
|
26
25
|
? fallback(rpcUrls.map((url) => http(url)))
|
|
27
26
|
: http("https://rpc.moonwell.fi/main/evm/43114"),
|
|
28
|
-
indexerUrl: indexerUrl || "https://ponder.moonwell.fi",
|
|
29
27
|
governanceIndexerUrl:
|
|
30
28
|
governanceIndexerUrl ||
|
|
31
29
|
"https://lunar-services-worker.moonwell.workers.dev",
|
|
@@ -5,7 +5,6 @@ export const custom = createCustomConfig({
|
|
|
5
5
|
minimalDeployment: false,
|
|
6
6
|
apiUrl: "https://api.morpho.org/graphql",
|
|
7
7
|
rewardsApiUrl: "https://rewards.morpho.org",
|
|
8
|
-
lunarIndexerUrl: "https://lunar-services-worker.moonwell.workers.dev",
|
|
9
8
|
},
|
|
10
9
|
governance: {
|
|
11
10
|
token: "WELL",
|
|
@@ -15,7 +15,6 @@ const base = defineChain({ ...baseChain, testnet: false });
|
|
|
15
15
|
|
|
16
16
|
const createEnvironment = (
|
|
17
17
|
rpcUrls?: string[],
|
|
18
|
-
indexerUrl?: string,
|
|
19
18
|
governanceIndexerUrl?: string,
|
|
20
19
|
lunarIndexerUrl?: string,
|
|
21
20
|
): Environment<
|
|
@@ -37,7 +36,6 @@ const createEnvironment = (
|
|
|
37
36
|
transport: rpcUrls
|
|
38
37
|
? fallback(rpcUrls.map((url) => http(url)))
|
|
39
38
|
: http("https://rpc.moonwell.fi/main/evm/8453"),
|
|
40
|
-
indexerUrl: indexerUrl || "https://ponder.moonwell.fi",
|
|
41
39
|
governanceIndexerUrl:
|
|
42
40
|
governanceIndexerUrl ||
|
|
43
41
|
"https://lunar-services-worker.moonwell.workers.dev",
|
|
@@ -8,7 +8,6 @@ import { tokens } from "./tokens.js";
|
|
|
8
8
|
|
|
9
9
|
const createEnvironment = (
|
|
10
10
|
rpcUrls?: string[],
|
|
11
|
-
indexerUrl?: string,
|
|
12
11
|
governanceIndexerUrl?: string,
|
|
13
12
|
): Environment<typeof tokens, {}, {}, {}, {}> =>
|
|
14
13
|
createEnvironmentConfig({
|
|
@@ -23,7 +22,6 @@ const createEnvironment = (
|
|
|
23
22
|
transport: rpcUrls
|
|
24
23
|
? fallback(rpcUrls.map((url) => http(url)))
|
|
25
24
|
: http("https://rpc.moonwell.fi/main/evm/1"),
|
|
26
|
-
indexerUrl: indexerUrl || "https://ponder.moonwell.fi",
|
|
27
25
|
governanceIndexerUrl:
|
|
28
26
|
governanceIndexerUrl ||
|
|
29
27
|
"https://lunar-services-worker.moonwell.workers.dev",
|
|
@@ -8,7 +8,6 @@ import { tokens } from "./tokens.js";
|
|
|
8
8
|
|
|
9
9
|
const createEnvironment = (
|
|
10
10
|
rpcUrls?: string[],
|
|
11
|
-
indexerUrl?: string,
|
|
12
11
|
governanceIndexerUrl?: string,
|
|
13
12
|
lunarIndexerUrl?: string,
|
|
14
13
|
) =>
|
|
@@ -24,7 +23,6 @@ const createEnvironment = (
|
|
|
24
23
|
transport: rpcUrls
|
|
25
24
|
? fallback(rpcUrls.map((url) => http(url)))
|
|
26
25
|
: http("https://rpc.moonwell.fi/main/evm/1284"),
|
|
27
|
-
indexerUrl: indexerUrl || "https://ponder.moonwell.fi",
|
|
28
26
|
lunarIndexerUrl:
|
|
29
27
|
lunarIndexerUrl || "https://lunar-services-worker.moonwell.workers.dev",
|
|
30
28
|
governanceIndexerUrl:
|
|
@@ -5,7 +5,6 @@ export const custom = createCustomConfig({
|
|
|
5
5
|
minimalDeployment: true,
|
|
6
6
|
apiUrl: "https://api.morpho.org/graphql",
|
|
7
7
|
rewardsApiUrl: "https://rewards.morpho.org",
|
|
8
|
-
lunarIndexerUrl: "https://lunar-services-worker.moonwell.workers.dev",
|
|
9
8
|
},
|
|
10
9
|
governance: {
|
|
11
10
|
token: "WELL",
|
|
@@ -11,7 +11,6 @@ const optimism = defineChain({ ...optimismChain, testnet: false });
|
|
|
11
11
|
|
|
12
12
|
const createEnvironment = (
|
|
13
13
|
rpcUrls?: string[],
|
|
14
|
-
indexerUrl?: string,
|
|
15
14
|
governanceIndexerUrl?: string,
|
|
16
15
|
lunarIndexerUrl?: string,
|
|
17
16
|
) =>
|
|
@@ -27,7 +26,6 @@ const createEnvironment = (
|
|
|
27
26
|
transport: rpcUrls
|
|
28
27
|
? fallback(rpcUrls.map((url) => http(url)))
|
|
29
28
|
: http("https://rpc.moonwell.fi/main/evm/10"),
|
|
30
|
-
indexerUrl: indexerUrl || "https://ponder.moonwell.fi",
|
|
31
29
|
lunarIndexerUrl:
|
|
32
30
|
lunarIndexerUrl || "https://lunar-services-worker.moonwell.workers.dev",
|
|
33
31
|
governanceIndexerUrl:
|
|
@@ -8,7 +8,6 @@ import { tokens } from "./tokens.js";
|
|
|
8
8
|
|
|
9
9
|
const createEnvironment = (
|
|
10
10
|
rpcUrls?: string[],
|
|
11
|
-
indexerUrl?: string,
|
|
12
11
|
governanceIndexerUrl?: string,
|
|
13
12
|
): Environment<typeof tokens, {}, {}, {}, {}> =>
|
|
14
13
|
createEnvironmentConfig({
|
|
@@ -23,7 +22,6 @@ const createEnvironment = (
|
|
|
23
22
|
transport: rpcUrls
|
|
24
23
|
? fallback(rpcUrls.map((url) => http(url)))
|
|
25
24
|
: http("https://rpc.moonwell.fi/main/evm/137"),
|
|
26
|
-
indexerUrl: indexerUrl || "https://ponder.moonwell.fi",
|
|
27
25
|
governanceIndexerUrl:
|
|
28
26
|
governanceIndexerUrl ||
|
|
29
27
|
"https://lunar-services-worker.moonwell.workers.dev",
|
package/environments/index.ts
CHANGED
|
@@ -147,49 +147,28 @@ export type GetEnvironment<chain> = chain extends typeof base
|
|
|
147
147
|
export const createEnvironment = <const chain extends Chain>(config: {
|
|
148
148
|
chain: chain;
|
|
149
149
|
rpcUrls?: string[] | undefined;
|
|
150
|
-
indexerUrl?: string;
|
|
151
150
|
}): GetEnvironment<chain> => {
|
|
152
151
|
switch (config.chain.id) {
|
|
153
152
|
case base.id:
|
|
154
|
-
return createBaseEnvironment(
|
|
155
|
-
config.rpcUrls,
|
|
156
|
-
config.indexerUrl,
|
|
157
|
-
) as GetEnvironment<chain>;
|
|
153
|
+
return createBaseEnvironment(config.rpcUrls) as GetEnvironment<chain>;
|
|
158
154
|
case moonbeam.id:
|
|
159
|
-
return createMoonbeamEnvironment(
|
|
160
|
-
config.rpcUrls,
|
|
161
|
-
config.indexerUrl,
|
|
162
|
-
) as GetEnvironment<chain>;
|
|
155
|
+
return createMoonbeamEnvironment(config.rpcUrls) as GetEnvironment<chain>;
|
|
163
156
|
case moonriver.id:
|
|
164
157
|
return createMoonriverEnvironment(
|
|
165
158
|
config.rpcUrls,
|
|
166
|
-
config.indexerUrl,
|
|
167
159
|
) as GetEnvironment<chain>;
|
|
168
160
|
case optimism.id:
|
|
169
|
-
return createOptimismEnvironment(
|
|
170
|
-
config.rpcUrls,
|
|
171
|
-
config.indexerUrl,
|
|
172
|
-
) as GetEnvironment<chain>;
|
|
161
|
+
return createOptimismEnvironment(config.rpcUrls) as GetEnvironment<chain>;
|
|
173
162
|
case ethereum.id:
|
|
174
|
-
return createEthereumEnvironment(
|
|
175
|
-
config.rpcUrls,
|
|
176
|
-
config.indexerUrl,
|
|
177
|
-
) as GetEnvironment<chain>;
|
|
163
|
+
return createEthereumEnvironment(config.rpcUrls) as GetEnvironment<chain>;
|
|
178
164
|
case avalanche.id:
|
|
179
165
|
return createAvalancheEnvironment(
|
|
180
166
|
config.rpcUrls,
|
|
181
|
-
config.indexerUrl,
|
|
182
167
|
) as GetEnvironment<chain>;
|
|
183
168
|
case arbitrum.id:
|
|
184
|
-
return createArbitrumEnvironment(
|
|
185
|
-
config.rpcUrls,
|
|
186
|
-
config.indexerUrl,
|
|
187
|
-
) as GetEnvironment<chain>;
|
|
169
|
+
return createArbitrumEnvironment(config.rpcUrls) as GetEnvironment<chain>;
|
|
188
170
|
case polygon.id:
|
|
189
|
-
return createPolygonEnvironment(
|
|
190
|
-
config.rpcUrls,
|
|
191
|
-
config.indexerUrl,
|
|
192
|
-
) as GetEnvironment<chain>;
|
|
171
|
+
return createPolygonEnvironment(config.rpcUrls) as GetEnvironment<chain>;
|
|
193
172
|
default:
|
|
194
173
|
throw new Error("Unsupported chainId");
|
|
195
174
|
}
|
|
@@ -141,7 +141,6 @@ export type CustomConfigType = {
|
|
|
141
141
|
minimalDeployment?: boolean;
|
|
142
142
|
apiUrl?: string; // For api.morpho.org/graphql
|
|
143
143
|
rewardsApiUrl?: string; // For rewards.morpho.org
|
|
144
|
-
lunarIndexerUrl?: string; // For lunar-services vault endpoints
|
|
145
144
|
};
|
|
146
145
|
governance?: {
|
|
147
146
|
token: GovernanceToken;
|
|
@@ -229,9 +228,13 @@ export const createEnvironmentConfig = <
|
|
|
229
228
|
name: string;
|
|
230
229
|
chain: Chain;
|
|
231
230
|
transport: Transport;
|
|
232
|
-
indexerUrl
|
|
231
|
+
indexerUrl?: string;
|
|
233
232
|
governanceIndexerUrl: string;
|
|
234
233
|
lunarIndexerUrl?: string;
|
|
234
|
+
onError?: (
|
|
235
|
+
error: unknown,
|
|
236
|
+
context: { source: string; chainId: number },
|
|
237
|
+
) => void;
|
|
235
238
|
tokens: TokensConfig<tokens>;
|
|
236
239
|
markets: MarketsConfig<markets, tokens>;
|
|
237
240
|
vaults: VaultsConfig<vaults, tokens>;
|
|
@@ -496,6 +499,7 @@ export const createEnvironmentConfig = <
|
|
|
496
499
|
indexerUrl: config.indexerUrl,
|
|
497
500
|
governanceIndexerUrl: config.governanceIndexerUrl,
|
|
498
501
|
lunarIndexerUrl: config.lunarIndexerUrl,
|
|
502
|
+
onError: config.onError,
|
|
499
503
|
tokens: tokenContracts,
|
|
500
504
|
markets: marketContracts,
|
|
501
505
|
vaults: vaultsContracts,
|
|
@@ -531,9 +535,13 @@ export type Environment<
|
|
|
531
535
|
name: string;
|
|
532
536
|
chainId: number;
|
|
533
537
|
chain: Chain;
|
|
534
|
-
indexerUrl
|
|
538
|
+
indexerUrl?: string;
|
|
535
539
|
governanceIndexerUrl: string;
|
|
536
540
|
lunarIndexerUrl?: string;
|
|
541
|
+
onError?: (
|
|
542
|
+
error: unknown,
|
|
543
|
+
context: { source: string; chainId: number },
|
|
544
|
+
) => void;
|
|
537
545
|
tokens: {
|
|
538
546
|
[name in keyof tokens]: TokenContractReturnType;
|
|
539
547
|
};
|
package/errors/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '0.
|
|
1
|
+
export const version = '0.12.0'
|