@eulerxyz/euler-v2-sdk 2.1.0 → 3.0.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/README.md +1 -1
- package/dist/src/sdk/buildSDK.d.ts.map +1 -1
- package/dist/src/sdk/buildSDK.js +22 -9
- package/dist/src/sdk/buildSDK.js.map +1 -1
- package/dist/src/sdk/config.d.ts +4 -2
- package/dist/src/sdk/config.d.ts.map +1 -1
- package/dist/src/sdk/config.js +4 -2
- package/dist/src/sdk/config.js.map +1 -1
- package/dist/src/services/executionService/cowSwapHelpers.d.ts.map +1 -1
- package/dist/src/services/executionService/cowSwapHelpers.js +8 -0
- package/dist/src/services/executionService/cowSwapHelpers.js.map +1 -1
- package/dist/src/services/oracleAdapterService/index.d.ts +1 -1
- package/dist/src/services/oracleAdapterService/index.d.ts.map +1 -1
- package/dist/src/services/oracleAdapterService/index.js +1 -1
- package/dist/src/services/oracleAdapterService/index.js.map +1 -1
- package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts +129 -24
- package/dist/src/services/oracleAdapterService/oracleAdapterService.d.ts.map +1 -1
- package/dist/src/services/oracleAdapterService/oracleAdapterService.js +431 -68
- package/dist/src/services/oracleAdapterService/oracleAdapterService.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,92 +1,455 @@
|
|
|
1
|
-
import { getAddress } from "viem";
|
|
2
|
-
import { applyBuildQuery } from "../../utils/buildQuery.js";
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { getAddress, isAddress } from "viem";
|
|
2
|
+
import { applyBuildQuery, serializeQueryArgs } from "../../utils/buildQuery.js";
|
|
3
|
+
export class OracleAdapterUnavailableError extends Error {
|
|
4
|
+
reason;
|
|
5
|
+
code = "ORACLE_ADAPTER_UNAVAILABLE";
|
|
6
|
+
constructor(reason) {
|
|
7
|
+
super(`Oracle adapter assessments are unavailable: ${reason}`);
|
|
8
|
+
this.reason = reason;
|
|
9
|
+
this.name = "OracleAdapterUnavailableError";
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export const isOracleAdapterUnavailableError = (value, reason) => {
|
|
13
|
+
if (typeof value !== "object" || value === null)
|
|
14
|
+
return false;
|
|
15
|
+
const candidate = value;
|
|
16
|
+
return (candidate.code === "ORACLE_ADAPTER_UNAVAILABLE" &&
|
|
17
|
+
(candidate.reason === "v3-disabled" ||
|
|
18
|
+
candidate.reason === "chain-not-supported") &&
|
|
19
|
+
(reason === undefined || candidate.reason === reason));
|
|
20
|
+
};
|
|
21
|
+
const DEFAULT_ENDPOINT = "https://v3.euler.finance";
|
|
22
|
+
const DEFAULT_CACHE_MS = 5 * 60 * 1000;
|
|
23
|
+
const DEFAULT_PAGE_SIZE = 100;
|
|
24
|
+
const normalizeEndpoint = (endpoint) => endpoint.replace(/\/+$/, "");
|
|
25
|
+
const normalizeAddress = (value) => {
|
|
26
|
+
if (typeof value !== "string" || !isAddress(value))
|
|
27
|
+
return undefined;
|
|
28
|
+
return getAddress(value);
|
|
29
|
+
};
|
|
30
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31
|
+
const readV3ErrorCode = async (response) => {
|
|
32
|
+
try {
|
|
33
|
+
const body = await response.json();
|
|
34
|
+
if (!isRecord(body) || !isRecord(body.error))
|
|
35
|
+
return undefined;
|
|
36
|
+
return typeof body.error.code === "string" ? body.error.code : undefined;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const throwOracleRequestError = async (response, requestLabel) => {
|
|
43
|
+
if ((await readV3ErrorCode(response)) === "CHAIN_NOT_SUPPORTED") {
|
|
44
|
+
throw new OracleAdapterUnavailableError("chain-not-supported");
|
|
45
|
+
}
|
|
46
|
+
throw new Error(`${requestLabel} request failed: ${response.status} ${response.statusText}`);
|
|
47
|
+
};
|
|
48
|
+
// The server may clamp `limit` below the requested page size. Paginate on the
|
|
49
|
+
// size it actually applied, or a clamped first page would look like the last
|
|
50
|
+
// one and silently truncate the scan.
|
|
51
|
+
const resolveAppliedPageSize = (meta, requestedPageSize) => typeof meta?.limit === "number" && meta.limit > 0
|
|
52
|
+
? Math.min(meta.limit, requestedPageSize)
|
|
53
|
+
: requestedPageSize;
|
|
5
54
|
export class OracleAdapterService {
|
|
6
55
|
config;
|
|
7
|
-
|
|
56
|
+
assessmentCache = new Map();
|
|
57
|
+
assessmentListCache = new Map();
|
|
58
|
+
routerCache = new Map();
|
|
8
59
|
constructor(config = {}, buildQuery) {
|
|
9
60
|
this.config = config;
|
|
10
61
|
if (buildQuery)
|
|
11
62
|
applyBuildQuery(this, buildQuery);
|
|
12
63
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
64
|
+
get endpoint() {
|
|
65
|
+
return normalizeEndpoint(this.config.endpoint ?? DEFAULT_ENDPOINT);
|
|
66
|
+
}
|
|
67
|
+
getHeaders() {
|
|
68
|
+
return {
|
|
69
|
+
Accept: "application/json",
|
|
70
|
+
...(this.config.apiKey ? { "X-API-Key": this.config.apiKey } : {}),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
buildUrl(path, search) {
|
|
74
|
+
const joined = `${this.endpoint}${path.startsWith("/") ? path : `/${path}`}`;
|
|
75
|
+
if (!search)
|
|
76
|
+
return joined;
|
|
77
|
+
const params = new URLSearchParams(search);
|
|
78
|
+
return `${joined}?${params.toString()}`;
|
|
79
|
+
}
|
|
80
|
+
queryV3OracleAdapterAssessment = async (chainId, address) => {
|
|
81
|
+
const url = this.buildUrl(`/v3/oracles/adapter-assessments/${getAddress(address)}`, { chainId: String(chainId) });
|
|
82
|
+
const response = await fetch(url, { headers: this.getHeaders() });
|
|
83
|
+
if (response.status === 404) {
|
|
84
|
+
if ((await readV3ErrorCode(response)) === "CHAIN_NOT_SUPPORTED") {
|
|
85
|
+
throw new OracleAdapterUnavailableError("chain-not-supported");
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
if (!response.ok) {
|
|
90
|
+
return throwOracleRequestError(response, "Oracle adapter assessment");
|
|
91
|
+
}
|
|
92
|
+
return response.json();
|
|
93
|
+
};
|
|
94
|
+
setQueryV3OracleAdapterAssessment(fn) {
|
|
95
|
+
this.queryV3OracleAdapterAssessment = fn;
|
|
96
|
+
}
|
|
97
|
+
queryV3OracleAdapterAssessmentsPage = async (chainId, offset, limit, filters = {}) => {
|
|
98
|
+
const url = this.buildUrl("/v3/oracles/adapter-assessments", {
|
|
99
|
+
chainId: String(chainId),
|
|
100
|
+
offset: String(offset),
|
|
101
|
+
limit: String(limit),
|
|
102
|
+
...(filters.recognized === undefined
|
|
103
|
+
? {}
|
|
104
|
+
: { recognized: String(filters.recognized) }),
|
|
105
|
+
...(filters.active === undefined
|
|
106
|
+
? {}
|
|
107
|
+
: { active: String(filters.active) }),
|
|
108
|
+
});
|
|
109
|
+
const response = await fetch(url, { headers: this.getHeaders() });
|
|
110
|
+
if (!response.ok) {
|
|
111
|
+
return throwOracleRequestError(response, "Oracle adapter assessments");
|
|
112
|
+
}
|
|
113
|
+
return response.json();
|
|
114
|
+
};
|
|
115
|
+
setQueryV3OracleAdapterAssessmentsPage(fn) {
|
|
116
|
+
this.queryV3OracleAdapterAssessmentsPage = fn;
|
|
117
|
+
}
|
|
118
|
+
getQueryKeyV3OracleAdapterAssessmentsPage(chainId, offset, limit, filters = {}) {
|
|
119
|
+
return serializeQueryArgs([chainId, offset, limit, filters]);
|
|
120
|
+
}
|
|
121
|
+
queryV3OracleRoutersPage = async (chainId, offset, limit) => {
|
|
122
|
+
const url = this.buildUrl("/v3/oracles/routers", {
|
|
123
|
+
chainId: String(chainId),
|
|
124
|
+
offset: String(offset),
|
|
125
|
+
limit: String(limit),
|
|
126
|
+
});
|
|
127
|
+
const response = await fetch(url, { headers: this.getHeaders() });
|
|
128
|
+
if (!response.ok) {
|
|
129
|
+
return throwOracleRequestError(response, "Oracle routers");
|
|
18
130
|
}
|
|
19
|
-
return
|
|
131
|
+
return response.json();
|
|
20
132
|
};
|
|
21
|
-
|
|
22
|
-
this.
|
|
133
|
+
setQueryV3OracleRoutersPage(fn) {
|
|
134
|
+
this.queryV3OracleRoutersPage = fn;
|
|
23
135
|
}
|
|
24
|
-
async
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
|
|
136
|
+
async fetchOracleAdapterAssessment(chainId, address) {
|
|
137
|
+
const normalizedAddress = getAddress(address);
|
|
138
|
+
const cacheKey = `${chainId}:${normalizedAddress.toLowerCase()}`;
|
|
139
|
+
const cached = this.assessmentCache.get(cacheKey);
|
|
140
|
+
if (cached && cached.expiresAt > Date.now())
|
|
28
141
|
return cached.value;
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
142
|
+
const envelope = await this.queryV3OracleAdapterAssessment(chainId, normalizedAddress);
|
|
143
|
+
const assessment = envelope
|
|
144
|
+
? this.parseAssessment(envelope.data)
|
|
145
|
+
: undefined;
|
|
146
|
+
if (assessment &&
|
|
147
|
+
(assessment.chainId !== chainId ||
|
|
148
|
+
assessment.address !== normalizedAddress)) {
|
|
149
|
+
throw new Error(`Oracle adapter assessment identity mismatch for chain ${chainId} and address ${normalizedAddress}`);
|
|
150
|
+
}
|
|
151
|
+
this.assessmentCache.set(cacheKey, {
|
|
152
|
+
expiresAt: Date.now() + (this.config.cacheMs ?? DEFAULT_CACHE_MS),
|
|
153
|
+
value: assessment,
|
|
34
154
|
});
|
|
35
|
-
return
|
|
155
|
+
return assessment;
|
|
36
156
|
}
|
|
37
|
-
async
|
|
38
|
-
const
|
|
39
|
-
|
|
157
|
+
async fetchOracleAdapterAssessments(chainId, filters = {}) {
|
|
158
|
+
const cacheKey = `${chainId}:${filters.recognized ?? "all"}:${filters.active ?? "all"}`;
|
|
159
|
+
const cached = this.assessmentListCache.get(cacheKey);
|
|
160
|
+
if (cached && cached.expiresAt > Date.now())
|
|
161
|
+
return cached.value;
|
|
162
|
+
const assessments = [];
|
|
163
|
+
const pageSize = Math.max(1, Math.min(100, this.config.pageSize ?? DEFAULT_PAGE_SIZE));
|
|
164
|
+
let offset = 0;
|
|
165
|
+
for (;;) {
|
|
166
|
+
const page = await this.queryV3OracleAdapterAssessmentsPage(chainId, offset, pageSize, filters);
|
|
167
|
+
if (!Array.isArray(page.data)) {
|
|
168
|
+
throw new Error("Invalid oracle adapter assessments response: data must be an array");
|
|
169
|
+
}
|
|
170
|
+
const rows = page.data;
|
|
171
|
+
for (const row of rows) {
|
|
172
|
+
const parsed = this.parseAssessment(row);
|
|
173
|
+
if (parsed.chainId !== chainId) {
|
|
174
|
+
throw new Error(`Oracle adapter assessment chain mismatch: expected ${chainId}, received ${parsed.chainId}`);
|
|
175
|
+
}
|
|
176
|
+
assessments.push(parsed);
|
|
177
|
+
}
|
|
178
|
+
if (rows.length < resolveAppliedPageSize(page.meta, pageSize))
|
|
179
|
+
break;
|
|
180
|
+
offset += rows.length;
|
|
181
|
+
if (typeof page.meta?.total === "number" && offset >= page.meta.total)
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
this.assessmentListCache.set(cacheKey, {
|
|
185
|
+
expiresAt: Date.now() + (this.config.cacheMs ?? DEFAULT_CACHE_MS),
|
|
186
|
+
value: assessments,
|
|
187
|
+
});
|
|
188
|
+
return assessments;
|
|
189
|
+
}
|
|
190
|
+
async fetchOracleAdapterAssessmentMap(chainId, filters = {}) {
|
|
191
|
+
const assessments = await this.fetchOracleAdapterAssessments(chainId, filters);
|
|
192
|
+
return Object.fromEntries(assessments.map((assessment) => [
|
|
193
|
+
assessment.address.toLowerCase(),
|
|
194
|
+
assessment,
|
|
195
|
+
]));
|
|
196
|
+
}
|
|
197
|
+
async fetchOracleRouters(chainId) {
|
|
198
|
+
const cached = this.routerCache.get(chainId);
|
|
199
|
+
if (cached && cached.expiresAt > Date.now())
|
|
200
|
+
return cached.value;
|
|
201
|
+
const routers = [];
|
|
202
|
+
const pageSize = Math.max(1, Math.min(100, this.config.pageSize ?? DEFAULT_PAGE_SIZE));
|
|
203
|
+
let offset = 0;
|
|
204
|
+
for (;;) {
|
|
205
|
+
const page = await this.queryV3OracleRoutersPage(chainId, offset, pageSize);
|
|
206
|
+
if (!Array.isArray(page.data)) {
|
|
207
|
+
throw new Error("Invalid oracle routers response: data must be an array");
|
|
208
|
+
}
|
|
209
|
+
const rows = page.data;
|
|
210
|
+
for (const row of rows) {
|
|
211
|
+
const parsed = this.parseRouter(row);
|
|
212
|
+
if (parsed.chainId !== chainId) {
|
|
213
|
+
throw new Error(`Oracle router chain mismatch: expected ${chainId}, received ${parsed.chainId}`);
|
|
214
|
+
}
|
|
215
|
+
routers.push(parsed);
|
|
216
|
+
}
|
|
217
|
+
if (rows.length < resolveAppliedPageSize(page.meta, pageSize))
|
|
218
|
+
break;
|
|
219
|
+
offset += rows.length;
|
|
220
|
+
if (typeof page.meta?.total === "number" && offset >= page.meta.total)
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
this.routerCache.set(chainId, {
|
|
224
|
+
expiresAt: Date.now() + (this.config.cacheMs ?? DEFAULT_CACHE_MS),
|
|
225
|
+
value: routers,
|
|
226
|
+
});
|
|
227
|
+
return routers;
|
|
228
|
+
}
|
|
229
|
+
async fetchOracleRouterMap(chainId) {
|
|
230
|
+
const routers = await this.fetchOracleRouters(chainId);
|
|
231
|
+
return Object.fromEntries(routers.map((router) => [router.router.toLowerCase(), router]));
|
|
40
232
|
}
|
|
41
233
|
async enrichAdapters(chainId, adapters) {
|
|
42
234
|
if (adapters.length === 0)
|
|
43
235
|
return [];
|
|
44
|
-
const
|
|
45
|
-
return adapters.map((adapter) => ({
|
|
236
|
+
const assessments = await Promise.all(adapters.map((adapter) => this.fetchOracleAdapterAssessment(chainId, adapter.oracle)));
|
|
237
|
+
return adapters.map((adapter, index) => ({
|
|
46
238
|
...adapter,
|
|
47
|
-
|
|
239
|
+
assessment: assessments[index],
|
|
48
240
|
}));
|
|
49
241
|
}
|
|
50
|
-
|
|
51
|
-
if (!
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
242
|
+
parseAssessment(raw) {
|
|
243
|
+
if (!isRecord(raw)) {
|
|
244
|
+
throw new Error("Invalid oracle adapter assessment response: expected an object");
|
|
245
|
+
}
|
|
246
|
+
const address = normalizeAddress(raw.address);
|
|
247
|
+
if (!address ||
|
|
248
|
+
!Number.isSafeInteger(raw.chainId) ||
|
|
249
|
+
Number(raw.chainId) <= 0) {
|
|
250
|
+
throw new Error("Invalid oracle adapter assessment response: invalid identity");
|
|
251
|
+
}
|
|
252
|
+
if (typeof raw.recognized !== "boolean") {
|
|
253
|
+
throw new Error("Invalid oracle adapter assessment response: invalid recognized value");
|
|
254
|
+
}
|
|
255
|
+
if (typeof raw.inActiveRoute !== "boolean") {
|
|
256
|
+
throw new Error("Invalid oracle adapter assessment response: invalid inActiveRoute value");
|
|
257
|
+
}
|
|
258
|
+
if (raw.checksStatus !== null && !this.isChecksStatus(raw.checksStatus)) {
|
|
259
|
+
throw new Error("Invalid oracle adapter assessment response: invalid checksStatus value");
|
|
260
|
+
}
|
|
261
|
+
if (!Array.isArray(raw.findings) || !raw.findings.every(this.isFinding)) {
|
|
262
|
+
throw new Error("Invalid oracle adapter assessment response: invalid findings");
|
|
263
|
+
}
|
|
264
|
+
const nullableStrings = [
|
|
265
|
+
"reason",
|
|
266
|
+
"adapterClass",
|
|
267
|
+
"label",
|
|
268
|
+
"provider",
|
|
269
|
+
"methodology",
|
|
270
|
+
"model",
|
|
271
|
+
"policyId",
|
|
272
|
+
"blockNumber",
|
|
273
|
+
"evaluatedAt",
|
|
274
|
+
"lastCheckedAt",
|
|
275
|
+
];
|
|
276
|
+
for (const field of nullableStrings) {
|
|
277
|
+
if (raw[field] !== null && typeof raw[field] !== "string") {
|
|
278
|
+
throw new Error(`Invalid oracle adapter assessment response: invalid ${field} value`);
|
|
65
279
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
.
|
|
280
|
+
}
|
|
281
|
+
if (raw.config !== null && !isRecord(raw.config)) {
|
|
282
|
+
throw new Error("Invalid oracle adapter assessment response: invalid config value");
|
|
283
|
+
}
|
|
284
|
+
if (raw.policyVersion !== null && typeof raw.policyVersion !== "number") {
|
|
285
|
+
throw new Error("Invalid oracle adapter assessment response: invalid policyVersion value");
|
|
286
|
+
}
|
|
287
|
+
const findings = raw.findings;
|
|
288
|
+
return {
|
|
289
|
+
chainId: raw.chainId,
|
|
290
|
+
address,
|
|
291
|
+
recognized: raw.recognized,
|
|
292
|
+
checksStatus: raw.checksStatus,
|
|
293
|
+
reason: raw.reason,
|
|
294
|
+
inActiveRoute: raw.inActiveRoute,
|
|
295
|
+
adapterClass: raw.adapterClass,
|
|
296
|
+
label: raw.label,
|
|
297
|
+
provider: raw.provider,
|
|
298
|
+
methodology: raw.methodology,
|
|
299
|
+
model: raw.model,
|
|
300
|
+
config: raw.config,
|
|
301
|
+
findings,
|
|
302
|
+
summary: this.parseSummary(raw.summary),
|
|
303
|
+
policyId: raw.policyId,
|
|
304
|
+
policyVersion: raw.policyVersion,
|
|
305
|
+
blockNumber: raw.blockNumber,
|
|
306
|
+
evaluatedAt: raw.evaluatedAt,
|
|
307
|
+
lastCheckedAt: raw.lastCheckedAt,
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
isFinding = (raw) => isRecord(raw) &&
|
|
311
|
+
typeof raw.key === "string" &&
|
|
312
|
+
this.isRuleOutcome(raw.outcome) &&
|
|
313
|
+
this.isSeverity(raw.severity) &&
|
|
314
|
+
typeof raw.description === "string";
|
|
315
|
+
parseSummary(raw) {
|
|
316
|
+
if (raw === null)
|
|
317
|
+
return null;
|
|
318
|
+
if (!isRecord(raw)) {
|
|
319
|
+
throw new Error("Invalid oracle adapter assessment response: invalid summary");
|
|
320
|
+
}
|
|
321
|
+
if (typeof raw.passed !== "number" ||
|
|
322
|
+
typeof raw.failed !== "number" ||
|
|
323
|
+
typeof raw.unknown !== "number" ||
|
|
324
|
+
typeof raw.notApplicable !== "number") {
|
|
325
|
+
throw new Error("Invalid oracle adapter assessment response: invalid summary");
|
|
326
|
+
}
|
|
327
|
+
return {
|
|
328
|
+
passed: raw.passed,
|
|
329
|
+
failed: raw.failed,
|
|
330
|
+
unknown: raw.unknown,
|
|
331
|
+
notApplicable: raw.notApplicable,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
isRuleOutcome(value) {
|
|
335
|
+
return (value === "pass" ||
|
|
336
|
+
value === "fail" ||
|
|
337
|
+
value === "unknown" ||
|
|
338
|
+
value === "not_applicable");
|
|
339
|
+
}
|
|
340
|
+
isSeverity(value) {
|
|
341
|
+
return (value === "high" ||
|
|
342
|
+
value === "medium" ||
|
|
343
|
+
value === "low" ||
|
|
344
|
+
value === "info");
|
|
345
|
+
}
|
|
346
|
+
isChecksStatus(value) {
|
|
347
|
+
return value === "positive" || value === "warning" || value === "negative";
|
|
348
|
+
}
|
|
349
|
+
parseRouter(raw) {
|
|
350
|
+
if (!isRecord(raw)) {
|
|
351
|
+
throw new Error("Invalid oracle router response: expected an object");
|
|
352
|
+
}
|
|
353
|
+
const router = normalizeAddress(raw.router);
|
|
354
|
+
const deployer = normalizeAddress(raw.deployer);
|
|
355
|
+
if (!router ||
|
|
356
|
+
!deployer ||
|
|
357
|
+
!Number.isSafeInteger(raw.chainId) ||
|
|
358
|
+
Number(raw.chainId) <= 0) {
|
|
359
|
+
throw new Error("Invalid oracle router response: invalid identity");
|
|
360
|
+
}
|
|
361
|
+
if (typeof raw.deployedAt !== "string") {
|
|
362
|
+
throw new Error("Invalid oracle router response: invalid deployedAt value");
|
|
363
|
+
}
|
|
364
|
+
if (!Array.isArray(raw.configs)) {
|
|
365
|
+
throw new Error("Invalid oracle router response: invalid configs value");
|
|
366
|
+
}
|
|
367
|
+
if (!Array.isArray(raw.vaults)) {
|
|
368
|
+
throw new Error("Invalid oracle router response: invalid vaults value");
|
|
369
|
+
}
|
|
370
|
+
const configs = raw.configs.map((entry) => this.parseRouterConfig(entry));
|
|
371
|
+
const vaults = raw.vaults.map((entry) => this.parseRouterVault(entry));
|
|
372
|
+
return {
|
|
373
|
+
chainId: raw.chainId,
|
|
374
|
+
router,
|
|
375
|
+
deployer,
|
|
376
|
+
deployedAt: raw.deployedAt,
|
|
377
|
+
configs,
|
|
378
|
+
vaults,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
parseRouterConfig(raw) {
|
|
382
|
+
if (!isRecord(raw)) {
|
|
383
|
+
throw new Error("Invalid oracle router config response: expected an object");
|
|
384
|
+
}
|
|
385
|
+
const asset0 = normalizeAddress(raw.asset0);
|
|
386
|
+
const asset1 = normalizeAddress(raw.asset1);
|
|
387
|
+
const oracle = normalizeAddress(raw.oracle);
|
|
388
|
+
if (!asset0 || !asset1 || !oracle) {
|
|
389
|
+
throw new Error("Invalid oracle router config response: invalid identity");
|
|
390
|
+
}
|
|
391
|
+
if (typeof raw.blockNumber !== "string" ||
|
|
392
|
+
typeof raw.timestamp !== "string" ||
|
|
393
|
+
typeof raw.txHash !== "string") {
|
|
394
|
+
throw new Error("Invalid oracle router config response: invalid metadata");
|
|
395
|
+
}
|
|
396
|
+
return {
|
|
397
|
+
asset0,
|
|
398
|
+
asset1,
|
|
399
|
+
oracle,
|
|
400
|
+
blockNumber: raw.blockNumber,
|
|
401
|
+
timestamp: raw.timestamp,
|
|
402
|
+
txHash: raw.txHash,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
parseRouterVault(raw) {
|
|
406
|
+
if (!isRecord(raw)) {
|
|
407
|
+
throw new Error("Invalid oracle router vault response: expected an object");
|
|
408
|
+
}
|
|
409
|
+
const vault = normalizeAddress(raw.vault);
|
|
410
|
+
const asset = normalizeAddress(raw.asset);
|
|
411
|
+
if (!vault || !asset) {
|
|
412
|
+
throw new Error("Invalid oracle router vault response: invalid identity");
|
|
413
|
+
}
|
|
414
|
+
if (typeof raw.blockNumber !== "string" ||
|
|
415
|
+
typeof raw.timestamp !== "string" ||
|
|
416
|
+
typeof raw.txHash !== "string") {
|
|
417
|
+
throw new Error("Invalid oracle router vault response: invalid metadata");
|
|
418
|
+
}
|
|
419
|
+
return {
|
|
420
|
+
vault,
|
|
421
|
+
asset,
|
|
422
|
+
blockNumber: raw.blockNumber,
|
|
423
|
+
timestamp: raw.timestamp,
|
|
424
|
+
txHash: raw.txHash,
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
export class UnavailableOracleAdapterService {
|
|
429
|
+
reason;
|
|
430
|
+
constructor(reason) {
|
|
431
|
+
this.reason = reason;
|
|
432
|
+
}
|
|
433
|
+
unavailable() {
|
|
434
|
+
throw new OracleAdapterUnavailableError(this.reason);
|
|
435
|
+
}
|
|
436
|
+
async fetchOracleAdapterAssessment(_chainId, _address) {
|
|
437
|
+
return this.unavailable();
|
|
438
|
+
}
|
|
439
|
+
async fetchOracleAdapterAssessments(_chainId, _filters) {
|
|
440
|
+
return this.unavailable();
|
|
441
|
+
}
|
|
442
|
+
async fetchOracleAdapterAssessmentMap(_chainId, _filters) {
|
|
443
|
+
return this.unavailable();
|
|
444
|
+
}
|
|
445
|
+
async fetchOracleRouters(_chainId) {
|
|
446
|
+
return this.unavailable();
|
|
447
|
+
}
|
|
448
|
+
async fetchOracleRouterMap(_chainId) {
|
|
449
|
+
return this.unavailable();
|
|
450
|
+
}
|
|
451
|
+
async enrichAdapters(_chainId, _adapters) {
|
|
452
|
+
return this.unavailable();
|
|
90
453
|
}
|
|
91
454
|
}
|
|
92
455
|
//# sourceMappingURL=oracleAdapterService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracleAdapterService.js","sourceRoot":"","sources":["../../../../src/services/oracleAdapterService/oracleAdapterService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oracleAdapterService.js","sourceRoot":"","sources":["../../../../src/services/oracleAdapterService/oracleAdapterService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eulerxyz/euler-v2-sdk",
|
|
3
|
+
"version": "3.0.0",
|
|
3
4
|
"description": "SDK for interacting with Euler V2 Lending Platform",
|
|
4
5
|
"repository": {
|
|
5
6
|
"type": "git",
|
|
@@ -66,6 +67,5 @@
|
|
|
66
67
|
"@vitest/coverage-v8": "^4.1.5",
|
|
67
68
|
"typescript": "^5.6.3",
|
|
68
69
|
"vitest": "^4.1.5"
|
|
69
|
-
}
|
|
70
|
-
"version": "2.1.0"
|
|
70
|
+
}
|
|
71
71
|
}
|