@eulerxyz/euler-v2-sdk 2.0.1 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/src/plugins/pyth/pythPlugin.d.ts +13 -3
  2. package/dist/src/plugins/pyth/pythPlugin.d.ts.map +1 -1
  3. package/dist/src/plugins/pyth/pythPlugin.js +114 -46
  4. package/dist/src/plugins/pyth/pythPlugin.js.map +1 -1
  5. package/dist/src/plugins/types.d.ts +4 -2
  6. package/dist/src/plugins/types.d.ts.map +1 -1
  7. package/dist/src/plugins/types.js +2 -2
  8. package/dist/src/plugins/types.js.map +1 -1
  9. package/dist/src/sdk/sdk.d.ts +5 -5
  10. package/dist/src/sdk/sdk.d.ts.map +1 -1
  11. package/dist/src/sdk/sdk.js +7 -28
  12. package/dist/src/sdk/sdk.js.map +1 -1
  13. package/dist/src/services/executionService/cowSwapHelpers.d.ts.map +1 -1
  14. package/dist/src/services/executionService/cowSwapHelpers.js +8 -0
  15. package/dist/src/services/executionService/cowSwapHelpers.js.map +1 -1
  16. package/dist/src/services/executionService/executionService.d.ts +66 -5
  17. package/dist/src/services/executionService/executionService.d.ts.map +1 -1
  18. package/dist/src/services/executionService/executionService.js +48 -4
  19. package/dist/src/services/executionService/executionService.js.map +1 -1
  20. package/dist/src/services/executionService/executionServiceTypes.d.ts +13 -0
  21. package/dist/src/services/executionService/executionServiceTypes.d.ts.map +1 -1
  22. package/dist/src/services/executionService/executionServiceTypes.js.map +1 -1
  23. package/dist/src/services/executionService/index.d.ts +2 -1
  24. package/dist/src/services/executionService/index.d.ts.map +1 -1
  25. package/dist/src/services/executionService/index.js +1 -0
  26. package/dist/src/services/executionService/index.js.map +1 -1
  27. package/dist/src/services/executionService/materializedExecution.d.ts +153 -0
  28. package/dist/src/services/executionService/materializedExecution.d.ts.map +1 -0
  29. package/dist/src/services/executionService/materializedExecution.js +475 -0
  30. package/dist/src/services/executionService/materializedExecution.js.map +1 -0
  31. package/dist/src/services/executionService/migrationAuthorization.d.ts +10 -0
  32. package/dist/src/services/executionService/migrationAuthorization.d.ts.map +1 -0
  33. package/dist/src/services/executionService/migrationAuthorization.js +142 -0
  34. package/dist/src/services/executionService/migrationAuthorization.js.map +1 -0
  35. package/dist/src/services/positionMigrationService/connectors/aave/aaveConnectorTypes.d.ts +2 -0
  36. package/dist/src/services/positionMigrationService/connectors/aave/aaveConnectorTypes.d.ts.map +1 -1
  37. package/dist/src/services/positionMigrationService/connectors/metamorpho/metamorphoConnectorTypes.d.ts +1 -0
  38. package/dist/src/services/positionMigrationService/connectors/metamorpho/metamorphoConnectorTypes.d.ts.map +1 -1
  39. package/dist/src/services/positionMigrationService/connectors/morpho/morphoConnector.d.ts +4 -4
  40. package/dist/src/services/positionMigrationService/connectors/morpho/morphoConnector.d.ts.map +1 -1
  41. package/dist/src/services/positionMigrationService/connectors/morpho/morphoConnector.js +7 -10
  42. package/dist/src/services/positionMigrationService/connectors/morpho/morphoConnector.js.map +1 -1
  43. package/dist/src/services/positionMigrationService/connectors/morpho/morphoConnectorTypes.d.ts +5 -1
  44. package/dist/src/services/positionMigrationService/connectors/morpho/morphoConnectorTypes.d.ts.map +1 -1
  45. package/dist/src/services/positionMigrationService/index.d.ts +1 -1
  46. package/dist/src/services/positionMigrationService/index.d.ts.map +1 -1
  47. package/dist/src/services/positionMigrationService/index.js.map +1 -1
  48. package/dist/src/services/positionMigrationService/positionMigrationService.d.ts +7 -1
  49. package/dist/src/services/positionMigrationService/positionMigrationService.d.ts.map +1 -1
  50. package/dist/src/services/positionMigrationService/positionMigrationService.js +188 -3
  51. package/dist/src/services/positionMigrationService/positionMigrationService.js.map +1 -1
  52. package/dist/src/services/positionMigrationService/positionMigrationServiceTypes.d.ts +49 -15
  53. package/dist/src/services/positionMigrationService/positionMigrationServiceTypes.d.ts.map +1 -1
  54. package/package.json +1 -1
@@ -1,6 +1,11 @@
1
1
  import { type Address, type Hex, type PublicClient } from "viem";
2
2
  import { type BuildQueryFn } from "../../utils/buildQuery.js";
3
3
  import { type EulerPlugin } from "../types.js";
4
+ export type PythUpdateBundle = {
5
+ feedIds: Hex[];
6
+ publishTimes: number[];
7
+ updates: Hex[];
8
+ };
4
9
  /**
5
10
  * Adapter for the Pyth plugin. Follows the SDK's injectable query pattern:
6
11
  * all external calls are `query*` arrow-function properties, wrapped by `applyBuildQuery`.
@@ -8,20 +13,25 @@ import { type EulerPlugin } from "../types.js";
8
13
  export declare class PythPluginAdapter {
9
14
  private hermesUrl;
10
15
  private fetchFn;
16
+ private inFlightUpdateBundles;
11
17
  constructor(hermesUrl: string, buildQuery?: BuildQueryFn, fetchFn?: typeof fetch);
12
18
  /**
13
19
  * Fetch latest price update data from Pyth Hermes API.
14
- * FeedIds are automatically bundled across concurrent calls within the same tick.
20
+ * Concurrent calls coalesce only when their normalized feed sets are
21
+ * identical.
15
22
  */
16
- queryPythUpdateData: (keys: `0x${string}`[]) => Promise<`0x${string}`[]>;
23
+ queryPythUpdateBundle: (feedIds: Hex[]) => Promise<PythUpdateBundle>;
24
+ queryPythUpdateData: (feedIds: Hex[]) => Promise<Hex[]>;
25
+ getQueryKeyPythUpdateBundle(feedIds: Hex[]): string | null;
17
26
  getQueryKeyPythUpdateData(feedIds: Hex[]): string | null;
18
- private fetchPythUpdateData;
27
+ private fetchPythUpdateBundle;
19
28
  /**
20
29
  * Query the on-chain Pyth contract for the fee required to update given price data.
21
30
  */
22
31
  queryPythUpdateFee: (provider: PublicClient, pythAddress: Address, updateData: Hex[]) => Promise<bigint>;
23
32
  getQueryKeyPythUpdateFee(provider: PublicClient, pythAddress: Address, updateData: Hex[]): string | null;
24
33
  setQueryPythUpdateData(fn: typeof this.queryPythUpdateData): void;
34
+ setQueryPythUpdateBundle(fn: typeof this.queryPythUpdateBundle): void;
25
35
  setQueryPythUpdateFee(fn: typeof this.queryPythUpdateFee): void;
26
36
  }
27
37
  export interface PythPluginConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"pythPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/pyth/pythPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,OAAO,EAIZ,KAAK,GAAG,EACR,KAAK,YAAY,EAEjB,MAAM,MAAM,CAAC;AAcd,OAAO,EAIN,KAAK,YAAY,EACjB,MAAM,2BAA2B,CAAC;AAYnC,OAAO,EACN,KAAK,WAAW,EAQhB,MAAM,aAAa,CAAC;AA2ErB;;;GAGG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAe;gBAG7B,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,YAAY,EACzB,OAAO,GAAE,OAAO,KAAwB;IAUzC;;;OAGG;IACH,mBAAmB,sDASjB;IAEF,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI;IAMxD,OAAO,CAAC,mBAAmB,CA6BzB;IAEF;;OAEG;IACH,kBAAkB,GACjB,UAAU,YAAY,EACtB,aAAa,OAAO,EACpB,YAAY,GAAG,EAAE,KACf,OAAO,CAAC,MAAM,CAAC,CAOhB;IAEF,wBAAwB,CACvB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,OAAO,EACpB,UAAU,EAAE,GAAG,EAAE,GACf,MAAM,GAAG,IAAI;IAQhB,sBAAsB,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,mBAAmB,GAAG,IAAI;IAIjE,qBAAqB,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,kBAAkB,GAAG,IAAI;CAG/D;AA0UD,MAAM,WAAW,gBAAgB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,OAAO,EAAE,CAAC,CAAC;IAC7D,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4KAA4K;IAC5K,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,gBAAqB,GAAG,WAAW,CAgQ3E"}
1
+ {"version":3,"file":"pythPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/pyth/pythPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,OAAO,EAIZ,KAAK,GAAG,EACR,KAAK,YAAY,EAEjB,MAAM,MAAM,CAAC;AAcd,OAAO,EAIN,KAAK,YAAY,EACjB,MAAM,2BAA2B,CAAC;AAWnC,OAAO,EACN,KAAK,WAAW,EAQhB,MAAM,aAAa,CAAC;AAqErB,MAAM,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,GAAG,EAAE,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,qBAAqB,CAAgD;gBAG5E,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,YAAY,EACzB,OAAO,GAAE,OAAO,KAAwB;IAUzC;;;;OAIG;IACH,qBAAqB,GAAU,SAAS,GAAG,EAAE,KAAG,OAAO,CAAC,gBAAgB,CAAC,CAqBvE;IAEF,mBAAmB,GAAU,SAAS,GAAG,EAAE,KAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CACP;IAErD,2BAA2B,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI;IAI1D,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,IAAI;IAMxD,OAAO,CAAC,qBAAqB,CAwD3B;IAEF;;OAEG;IACH,kBAAkB,GACjB,UAAU,YAAY,EACtB,aAAa,OAAO,EACpB,YAAY,GAAG,EAAE,KACf,OAAO,CAAC,MAAM,CAAC,CAOhB;IAEF,wBAAwB,CACvB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,OAAO,EACpB,UAAU,EAAE,GAAG,EAAE,GACf,MAAM,GAAG,IAAI;IAQhB,sBAAsB,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,mBAAmB,GAAG,IAAI;IAIjE,wBAAwB,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,qBAAqB,GAAG,IAAI;IAIrE,qBAAqB,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,kBAAkB,GAAG,IAAI;CAG/D;AA0VD,MAAM,WAAW,gBAAgB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,OAAO,EAAE,CAAC,CAAC;IAC7D,kGAAkG;IAClG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4KAA4K;IAC5K,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,gBAAqB,GAAG,WAAW,CAuT3E"}
@@ -1,7 +1,6 @@
1
1
  import { decodeFunctionData, encodeFunctionData, getAddress, zeroAddress, } from "viem";
2
2
  import { Account, } from "../../entities/Account.js";
3
3
  import { applyBuildQuery, normalizeQueryKeySet, serializeQueryArgs, } from "../../utils/buildQuery.js";
4
- import { createBundledCall } from "../../utils/callBundler.js";
5
4
  import { calculateHealthCheckSets, collectLiquidationHealthChecks, } from "../../utils/healthCheckSets.js";
6
5
  import { collectPythFeedsFromRouteSteps, } from "../../utils/oracle.js";
7
6
  import { PluginExecutionFatalError, prependToBatch, } from "../types.js";
@@ -25,7 +24,6 @@ const PYTH_ABI = [
25
24
  // ── Hermes data fetch (injectable query pattern) ──
26
25
  const normalizeHex = (value) => (value.startsWith("0x") ? value : `0x${value}`);
27
26
  const normalizeFeedId = (value) => normalizeHex(value).toLowerCase();
28
- const PYTH_PRICE_ID_PATTERN = /0x[0-9a-fA-F]{64}/g;
29
27
  const DEFAULT_MAX_PYTH_UPDATE_FEE = 10n ** 16n;
30
28
  const OFFICIAL_PYTH_ADDRESSES_BY_CHAIN_ID = new Map([
31
29
  [1, "0x4305FB66699C3B2702D4d05CF36551390A4c69C6"],
@@ -65,10 +63,6 @@ const OFFICIAL_PYTH_ADDRESSES_BY_CHAIN_ID = new Map([
65
63
  [534352, "0xA2aa501b19aff244D90cc15a4Cf739D2725B5729"],
66
64
  [167000, "0x2880aB155794e7179c9eE2e38200202908C17B43"],
67
65
  ]);
68
- const parseMissingPriceIds = (body) => {
69
- const matches = body.match(PYTH_PRICE_ID_PATTERN) ?? [];
70
- return new Set(matches.map((id) => normalizeFeedId(id)));
71
- };
72
66
  /**
73
67
  * Adapter for the Pyth plugin. Follows the SDK's injectable query pattern:
74
68
  * all external calls are `query*` arrow-function properties, wrapped by `applyBuildQuery`.
@@ -76,6 +70,7 @@ const parseMissingPriceIds = (body) => {
76
70
  export class PythPluginAdapter {
77
71
  hermesUrl;
78
72
  fetchFn;
73
+ inFlightUpdateBundles = new Map();
79
74
  constructor(hermesUrl, buildQuery, fetchFn = globalThis.fetch) {
80
75
  this.hermesUrl = hermesUrl;
81
76
  // Browser fetch throws "Illegal invocation" if `this` is anything but
@@ -87,42 +82,76 @@ export class PythPluginAdapter {
87
82
  }
88
83
  /**
89
84
  * Fetch latest price update data from Pyth Hermes API.
90
- * FeedIds are automatically bundled across concurrent calls within the same tick.
85
+ * Concurrent calls coalesce only when their normalized feed sets are
86
+ * identical.
91
87
  */
92
- queryPythUpdateData = createBundledCall(async (feedIds) => {
88
+ queryPythUpdateBundle = async (feedIds) => {
93
89
  const normalizedIds = [...new Set(feedIds.map(normalizeFeedId))].sort((left, right) => left.localeCompare(right));
94
- if (!normalizedIds.length)
95
- return [];
96
- return this.fetchPythUpdateData(normalizedIds);
97
- });
90
+ if (!normalizedIds.length) {
91
+ return { feedIds: [], publishTimes: [], updates: [] };
92
+ }
93
+ const key = normalizedIds.join(",");
94
+ const existing = this.inFlightUpdateBundles.get(key);
95
+ if (existing)
96
+ return existing;
97
+ const pending = this.fetchPythUpdateBundle(normalizedIds);
98
+ this.inFlightUpdateBundles.set(key, pending);
99
+ try {
100
+ return await pending;
101
+ }
102
+ finally {
103
+ if (this.inFlightUpdateBundles.get(key) === pending) {
104
+ this.inFlightUpdateBundles.delete(key);
105
+ }
106
+ }
107
+ };
108
+ queryPythUpdateData = async (feedIds) => (await this.queryPythUpdateBundle(feedIds)).updates;
109
+ getQueryKeyPythUpdateBundle(feedIds) {
110
+ return this.getQueryKeyPythUpdateData(feedIds);
111
+ }
98
112
  getQueryKeyPythUpdateData(feedIds) {
99
113
  return serializeQueryArgs([
100
114
  normalizeQueryKeySet(feedIds.map(normalizeFeedId)),
101
115
  ]);
102
116
  }
103
- fetchPythUpdateData = async (feedIds) => {
104
- if (!feedIds.length)
105
- return [];
117
+ fetchPythUpdateBundle = async (feedIds) => {
118
+ if (!feedIds.length) {
119
+ return { feedIds: [], publishTimes: [], updates: [] };
120
+ }
106
121
  const url = new URL("/v2/updates/price/latest", this.hermesUrl);
107
122
  feedIds.forEach((id) => url.searchParams.append("ids[]", id));
108
123
  url.searchParams.set("encoding", "hex");
124
+ url.searchParams.set("parsed", "true");
109
125
  const response = await this.fetchFn(url.toString());
110
126
  if (!response.ok) {
111
127
  const body = await response.text().catch(() => "");
112
- if (response.status === 404) {
113
- const missingIds = parseMissingPriceIds(body);
114
- if (missingIds.size > 0) {
115
- const retryIds = feedIds.filter((id) => !missingIds.has(id));
116
- return this.fetchPythUpdateData(retryIds);
117
- }
118
- }
119
128
  throw new Error(`Failed to fetch Pyth update data: ${response.status}${body ? ` ${body}` : ""}`);
120
129
  }
121
130
  const body = (await response.json());
122
131
  const binaryData = body?.binary?.data;
123
- if (!Array.isArray(binaryData))
124
- return [];
125
- return binaryData.map((item) => normalizeHex(String(item)));
132
+ const updates = Array.isArray(binaryData)
133
+ ? binaryData.map((item) => normalizeHex(String(item)))
134
+ : [];
135
+ const publishTimeByFeed = new Map();
136
+ for (const parsed of body.parsed ?? []) {
137
+ if (typeof parsed.id !== "string")
138
+ continue;
139
+ const publishTime = parsed.price?.publish_time;
140
+ if (typeof publishTime !== "number" ||
141
+ !Number.isSafeInteger(publishTime) ||
142
+ publishTime < 0) {
143
+ continue;
144
+ }
145
+ publishTimeByFeed.set(normalizeFeedId(parsed.id), publishTime);
146
+ }
147
+ const hasCompletePublishTimes = feedIds.every((id) => publishTimeByFeed.has(id));
148
+ return {
149
+ feedIds,
150
+ publishTimes: hasCompletePublishTimes
151
+ ? feedIds.map((id) => publishTimeByFeed.get(id))
152
+ : [],
153
+ updates,
154
+ };
126
155
  };
127
156
  /**
128
157
  * Query the on-chain Pyth contract for the fee required to update given price data.
@@ -145,12 +174,15 @@ export class PythPluginAdapter {
145
174
  setQueryPythUpdateData(fn) {
146
175
  this.queryPythUpdateData = fn;
147
176
  }
177
+ setQueryPythUpdateBundle(fn) {
178
+ this.queryPythUpdateBundle = fn;
179
+ }
148
180
  setQueryPythUpdateFee(fn) {
149
181
  this.queryPythUpdateFee = fn;
150
182
  }
151
183
  }
152
184
  // ── Core batch item builder ──
153
- async function buildPythBatchItems(feeds, adapter, provider, chainId, trustedPythAddresses, maxUpdateFee, sender = zeroAddress) {
185
+ async function buildPythBatchItems(feeds, adapter, provider, chainId, trustedPythAddresses, maxUpdateFee, sender = zeroAddress, failClosed = false) {
154
186
  if (!feeds.length)
155
187
  return { items: [], totalValue: 0n };
156
188
  // Group feeds by Pyth contract address
@@ -158,7 +190,11 @@ async function buildPythBatchItems(feeds, adapter, provider, chainId, trustedPyt
158
190
  for (const feed of feeds) {
159
191
  const pythAddress = getAddress(feed.pythAddress);
160
192
  if (!trustedPythAddresses.has(pythAddress.toLowerCase())) {
161
- logPythPluginError(pythAddress, [feed.feedId], new Error(`Untrusted Pyth contract for chainId ${chainId}`));
193
+ const error = new Error(`Untrusted Pyth contract for chainId ${chainId}`);
194
+ logPythPluginError(pythAddress, [feed.feedId], error);
195
+ if (failClosed) {
196
+ throw new PluginExecutionFatalError(error.message, { cause: error });
197
+ }
162
198
  continue;
163
199
  }
164
200
  const set = grouped.get(pythAddress) || new Set();
@@ -170,8 +206,12 @@ async function buildPythBatchItems(feeds, adapter, provider, chainId, trustedPyt
170
206
  for (const [pythAddress, feedSet] of grouped.entries()) {
171
207
  try {
172
208
  const updateData = await adapter.queryPythUpdateData([...feedSet]);
173
- if (!updateData.length)
209
+ if (!updateData.length) {
210
+ if (failClosed) {
211
+ throw new Error("Pyth Hermes returned no update data");
212
+ }
174
213
  continue;
214
+ }
175
215
  const fee = await adapter.queryPythUpdateFee(provider, pythAddress, updateData);
176
216
  if (fee > maxUpdateFee) {
177
217
  throw new Error(`Pyth update fee ${fee.toString()} exceeds max ${maxUpdateFee.toString()}`);
@@ -190,6 +230,9 @@ async function buildPythBatchItems(feeds, adapter, provider, chainId, trustedPyt
190
230
  }
191
231
  catch (error) {
192
232
  logPythPluginError(pythAddress, [...feedSet], error);
233
+ if (failClosed) {
234
+ throw new PluginExecutionFatalError(`Pyth update materialization failed for ${pythAddress}`, { cause: error });
235
+ }
193
236
  }
194
237
  }
195
238
  return { items, totalValue };
@@ -376,14 +419,29 @@ export function createPythPlugin(config = {}) {
376
419
  }
377
420
  return addresses;
378
421
  };
379
- const buildBatchItemsFromPrefetch = (entries, sender) => {
422
+ const buildBatchItemsFromPrefetch = (entries, sender, failClosed = false) => {
380
423
  const items = [];
381
424
  let totalValue = 0n;
382
425
  for (const entry of entries) {
383
- if (!entry.updates.length)
426
+ if (entry.feedIds.length !== entry.publishTimes.length ||
427
+ entry.feedIds.length === 0) {
428
+ if (failClosed) {
429
+ throw new PluginExecutionFatalError("Pyth prefetch is missing publish-time evidence");
430
+ }
384
431
  continue;
385
- if (entry.fee > maxUpdateFee)
432
+ }
433
+ if (!entry.updates.length) {
434
+ if (failClosed) {
435
+ throw new PluginExecutionFatalError("Pyth prefetch has no update data");
436
+ }
386
437
  continue;
438
+ }
439
+ if (entry.fee > maxUpdateFee) {
440
+ if (failClosed) {
441
+ throw new PluginExecutionFatalError(`Pyth update fee ${entry.fee.toString()} exceeds max ${maxUpdateFee.toString()}`);
442
+ }
443
+ continue;
444
+ }
387
445
  items.push({
388
446
  targetContract: entry.pythAddress,
389
447
  onBehalfOfAccount: sender,
@@ -418,30 +476,40 @@ export function createPythPlugin(config = {}) {
418
476
  for (const feed of feeds) {
419
477
  const pythAddress = getAddress(feed.pythAddress);
420
478
  if (!trusted.has(pythAddress.toLowerCase())) {
421
- logPythPluginError(pythAddress, [feed.feedId], new Error(`Untrusted Pyth contract for chainId ${chainId}`));
422
- continue;
479
+ const error = new PluginExecutionFatalError(`Untrusted Pyth contract for chainId ${chainId}`);
480
+ logPythPluginError(pythAddress, [feed.feedId], error);
481
+ throw error;
423
482
  }
424
483
  const set = grouped.get(pythAddress) ?? new Set();
425
484
  set.add(feed.feedId);
426
485
  grouped.set(pythAddress, set);
427
486
  }
428
487
  const entries = [];
429
- let hadError = false;
430
488
  await Promise.all([...grouped.entries()].map(async ([pythAddress, feedSet]) => {
431
489
  const feedIds = [...feedSet];
432
- try {
433
- const updates = await adapter.queryPythUpdateData(feedIds);
434
- if (!updates.length)
435
- return;
436
- const fee = await adapter.queryPythUpdateFee(provider, pythAddress, updates);
437
- entries.push({ pythAddress, feedIds, updates, fee });
490
+ const bundle = await adapter.queryPythUpdateBundle(feedIds);
491
+ const { updates } = bundle;
492
+ if (!updates.length) {
493
+ throw new PluginExecutionFatalError("Pyth Hermes returned no update data");
494
+ }
495
+ if (bundle.feedIds.length !== bundle.publishTimes.length ||
496
+ bundle.feedIds.length === 0) {
497
+ throw new PluginExecutionFatalError("Pyth Hermes response is missing publish-time evidence");
438
498
  }
439
- catch (err) {
440
- hadError = true;
441
- logPythPluginError(pythAddress, feedIds, err);
499
+ const fee = await adapter.queryPythUpdateFee(provider, pythAddress, updates);
500
+ if (fee > maxUpdateFee) {
501
+ throw new PluginExecutionFatalError(`Pyth update fee ${fee.toString()} exceeds max ${maxUpdateFee.toString()}`);
442
502
  }
503
+ entries.push({
504
+ pythAddress,
505
+ feedIds: bundle.feedIds,
506
+ publishTimes: bundle.publishTimes,
507
+ updates,
508
+ fee,
509
+ });
443
510
  }));
444
- return entries.length || !hadError ? { entries } : undefined;
511
+ entries.sort((left, right) => left.pythAddress.localeCompare(right.pythAddress));
512
+ return { entries };
445
513
  },
446
514
  async getReadPrepend(ctx, prefetch) {
447
515
  if (hasPythPrefetch(prefetch)) {
@@ -469,7 +537,7 @@ export function createPythPlugin(config = {}) {
469
537
  // Prepend the prefetched Pyth update once. Pyth updates are
470
538
  // multicall-scoped: a single update at the head of the first
471
539
  // evcBatch serves every health-check downstream in that batch.
472
- const built = buildBatchItemsFromPrefetch(prefetch.pyth.entries, sender);
540
+ const built = buildBatchItemsFromPrefetch(prefetch.pyth.entries, sender, true);
473
541
  if (!built.items.length)
474
542
  return plan;
475
543
  return prependToBatch(plan, built.items);
@@ -493,7 +561,7 @@ export function createPythPlugin(config = {}) {
493
561
  processed.push(entry);
494
562
  continue;
495
563
  }
496
- const result = await buildPythBatchItems(feeds, adapter, provider, chainId, getTrustedPythAddresses(chainId), maxUpdateFee, sender);
564
+ const result = await buildPythBatchItems(feeds, adapter, provider, chainId, getTrustedPythAddresses(chainId), maxUpdateFee, sender, true);
497
565
  processed.push(result.items.length
498
566
  ? prependToBatch([entry], result.items)[0]
499
567
  : entry);
@@ -1 +1 @@
1
- {"version":3,"file":"pythPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/pyth/pythPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pythPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/pyth/pythPlugin.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ export interface PluginBatchItems {
8
8
  totalValue: bigint;
9
9
  }
10
10
  /**
11
- * A plugin failure that makes continuing with the unmodified plan unsafe.
12
- * SDK plan processing and prefetch APIs propagate this error to their caller.
11
+ * A plugin failure with an explicitly safety-critical classification. SDK plan
12
+ * processing and prefetch APIs propagate this and every other plugin error.
13
13
  */
14
14
  export declare class PluginExecutionFatalError extends Error {
15
15
  constructor(message: string, options?: ErrorOptions);
@@ -41,6 +41,8 @@ export type PythPluginPrefetch = {
41
41
  entries: Array<{
42
42
  pythAddress: Address;
43
43
  feedIds: Hex[];
44
+ /** Publish time for each feedIds entry, in the same order. */
45
+ publishTimes: number[];
44
46
  updates: Hex[];
45
47
  fee: bigint;
46
48
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { isEVCBatchOperation, } from "../services/executionService/executionServiceTypes.js";
2
2
  /**
3
- * A plugin failure that makes continuing with the unmodified plan unsafe.
4
- * SDK plan processing and prefetch APIs propagate this error to their caller.
3
+ * A plugin failure with an explicitly safety-critical classification. SDK plan
4
+ * processing and prefetch APIs propagate this and every other plugin error.
5
5
  */
6
6
  export class PluginExecutionFatalError extends Error {
7
7
  constructor(message, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/types.ts"],"names":[],"mappings":"AAIA,OAAO,EACN,mBAAmB,GAKnB,MAAM,uDAAuD,CAAC;AAO/D;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACnD,YAAY,OAAe,EAAE,OAAsB;QAClD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IACzC,CAAC;CACD;AAmFD;;GAEG;AACH,MAAM,UAAU,cAAc,CAC7B,IAAqB,EACrB,KAAqB;IAErB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAA0B,EAAE,EAAE;QAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,CAAC,UAAU,EAAE,GAAG,gBAAgB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YACtD,IAAI,UAAU,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,OAAO;oBACN,GAAG,KAAK;oBACR,KAAK,EAAE;wBACN;4BACC,GAAG,UAAU;4BACb,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;yBACtC;wBACD,GAAG,gBAAgB;qBACnB;iBACD,CAAC;YACH,CAAC;YACD,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/types.ts"],"names":[],"mappings":"AAIA,OAAO,EACN,mBAAmB,GAKnB,MAAM,uDAAuD,CAAC;AAO/D;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IACnD,YAAY,OAAe,EAAE,OAAsB;QAClD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IACzC,CAAC;CACD;AAqFD;;GAEG;AACH,MAAM,UAAU,cAAc,CAC7B,IAAqB,EACrB,KAAqB;IAErB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAA0B,EAAE,EAAE;QAC9C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7C,SAAS,GAAG,IAAI,CAAC;YACjB,MAAM,CAAC,UAAU,EAAE,GAAG,gBAAgB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YACtD,IAAI,UAAU,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnD,OAAO;oBACN,GAAG,KAAK;oBACR,KAAK,EAAE;wBACN;4BACC,GAAG,UAAU;4BACb,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;yBACtC;wBACD,GAAG,gBAAgB;qBACnB;iBACD,CAAC;YACH,CAAC;YACD,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -22,7 +22,7 @@ import type { IREULLockService } from "../services/reulLockService/index.js";
22
22
  import { type ISafeAccountService } from "../services/safeAccountService/index.js";
23
23
  import type { IPositionMigrationService } from "../services/positionMigrationService/index.js";
24
24
  import { type IActivityService, type IActivityServiceWithLiquidations } from "../services/activityService/index.js";
25
- import { type EulerPlugin, type PluginPrefetchData } from "../plugins/types.js";
25
+ import type { EulerPlugin, PluginPrefetchData } from "../plugins/types.js";
26
26
  import type { TransactionPlan } from "../services/executionService/executionServiceTypes.js";
27
27
  import type { AddressOrAccount } from "../entities/Account.js";
28
28
  export interface EulerSDKOptions<TVaultEntity extends IVaultEntity = VaultEntity> {
@@ -86,8 +86,8 @@ export declare class EulerSDK<TVaultEntity extends IVaultEntity = VaultEntity> {
86
86
  /**
87
87
  * Run all plugins' processPlan methods on a transaction plan.
88
88
  * Plugins execute in array order; each receives the plan as modified by previous plugins.
89
- * Recoverable plugin errors are caught and skipped. PluginExecutionFatalError
90
- * is propagated because continuing without that plugin would be unsafe.
89
+ * Every plugin failure is propagated. A write plan must never continue after
90
+ * silently omitting plugin effects such as oracle updates or access gates.
91
91
  *
92
92
  * `prefetch` carries per-plugin form-level data (Pyth Hermes updates,
93
93
  * keyring vault gating, …) so the plugin can skip its own network I/O.
@@ -98,8 +98,8 @@ export declare class EulerSDK<TVaultEntity extends IVaultEntity = VaultEntity> {
98
98
  * record keyed by plugin name; known SDK slots (`pyth`, `keyring`) are
99
99
  * typed. Run once per form-load so per-quote prepare/estimate/simulate can
100
100
  * pass the result back via `processPlugins(plan, account, chainId, prefetch)`
101
- * without re-doing the expensive lookups. Recoverable plugin errors omit that
102
- * plugin's payload; PluginExecutionFatalError is propagated to the caller.
101
+ * without re-doing the expensive lookups. Every plugin failure is propagated;
102
+ * callers must not mistake missing safety evidence for an empty payload.
103
103
  */
104
104
  prefetchPluginData(plan: TransactionPlan, account: AddressOrAccount, chainId: number): Promise<PluginPrefetchData>;
105
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAClG,OAAO,KAAK,EACX,iBAAiB,EACjB,WAAW,EACX,MAAM,8CAA8C,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAEN,KAAK,mBAAmB,EACxB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAIN,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAEN,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,eAAe,CAC/B,YAAY,SAAS,YAAY,GAAG,WAAW;IAE/C,cAAc,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9C,gBAAgB,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAClD,aAAa,EAAE,cAAc,CAAC;IAC9B,aAAa,EAAE,cAAc,CAAC;IAC9B,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,sBAAsB,EAAE,uBAAuB,CAAC;IAChD,gBAAgB,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAClD,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,eAAe,EAAE,gBAAgB,CAAC;IAClC,UAAU,EAAE,WAAW,CAAC;IACxB,kBAAkB,EAAE,mBAAmB,CAAC;IACxC,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,WAAW,EAAE,YAAY,CAAC;IAC1B,gBAAgB,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAClD,YAAY,EAAE,aAAa,CAAC;IAC5B,cAAc,EAAE,eAAe,CAAC;IAChC,mBAAmB,EAAE,oBAAoB,CAAC;IAC1C,oBAAoB,EAAE,qBAAqB,CAAC;IAC5C,cAAc,EAAE,eAAe,CAAC;IAChC,eAAe,EAAE,gBAAgB,CAAC;IAClC,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,mBAAmB,CAAC;IACzC,wBAAwB,EAAE,yBAAyB,CAAC;IACpD,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,qBAAa,QAAQ,CAAC,YAAY,SAAS,YAAY,GAAG,WAAW;IACpE,SAAgB,cAAc,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9D,SAAgB,gBAAgB,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAClE,SAAgB,aAAa,EAAE,cAAc,CAAC;IAC9C,SAAgB,aAAa,EAAE,cAAc,CAAC;IAC9C,SAAgB,gBAAgB,EAAE,iBAAiB,CAAC;IACpD,SAAgB,sBAAsB,EAAE,uBAAuB,CAAC;IAChE,SAAgB,gBAAgB,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAClE,SAAgB,iBAAiB,EAAE,kBAAkB,CAAC;IACtD,SAAgB,eAAe,EAAE,gBAAgB,CAAC;IAClD,SAAgB,UAAU,EAAE,WAAW,CAAC;IACxC,SAAgB,kBAAkB,EAAE,mBAAmB,CAAC;IACxD,SAAgB,gBAAgB,EAAE,iBAAiB,CAAC;IACpD,SAAgB,WAAW,EAAE,YAAY,CAAC;IAC1C,SAAgB,gBAAgB,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAClE,SAAgB,YAAY,EAAE,aAAa,CAAC;IAC5C,SAAgB,cAAc,EAAE,eAAe,CAAC;IAChD,SAAgB,mBAAmB,EAAE,oBAAoB,CAAC;IAC1D,SAAgB,oBAAoB,EAAE,qBAAqB,CAAC;IAC5D,SAAgB,cAAc,EAAE,eAAe,CAAC;IAChD,SAAgB,eAAe,EAAE,gBAAgB,CAAC;IAClD,SAAgB,kBAAkB,EAAE,mBAAmB,CAAC;IACxD,SAAgB,wBAAwB,EAAE,yBAAyB,CAAC;IACpE;;;;OAIG;IACH,SAAgB,eAAe,EAAE,gCAAgC,CAAC;IAClE,SAAgB,OAAO,EAAE,WAAW,EAAE,CAAC;gBAE3B,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC;IAkClD;;;;;;;;OAQG;IACG,cAAc,CACnB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,eAAe,CAAC;IAsB3B;;;;;;;OAOG;IACG,kBAAkB,CACvB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC;CA4B9B"}
1
+ {"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { SafeAccountService, } from "../services/safeAccountService/index.js";
2
2
  import { ActivityService, ensureActivityLiquidationsSupport, UnavailableActivityAdapter, } from "../services/activityService/index.js";
3
- import { PluginExecutionFatalError, } from "../plugins/types.js";
4
3
  export class EulerSDK {
5
4
  accountService;
6
5
  portfolioService;
@@ -63,8 +62,8 @@ export class EulerSDK {
63
62
  /**
64
63
  * Run all plugins' processPlan methods on a transaction plan.
65
64
  * Plugins execute in array order; each receives the plan as modified by previous plugins.
66
- * Recoverable plugin errors are caught and skipped. PluginExecutionFatalError
67
- * is propagated because continuing without that plugin would be unsafe.
65
+ * Every plugin failure is propagated. A write plan must never continue after
66
+ * silently omitting plugin effects such as oracle updates or access gates.
68
67
  *
69
68
  * `prefetch` carries per-plugin form-level data (Pyth Hermes updates,
70
69
  * keyring vault gating, …) so the plugin can skip its own network I/O.
@@ -75,17 +74,7 @@ export class EulerSDK {
75
74
  for (const plugin of this.plugins) {
76
75
  if (!plugin.processPlan)
77
76
  continue;
78
- try {
79
- plan = await plugin.processPlan(plan, account, chainId, this, prefetch);
80
- }
81
- catch (err) {
82
- if (err instanceof PluginExecutionFatalError)
83
- throw err;
84
- if (typeof console !== "undefined") {
85
- console.warn(`[euler-v2-sdk] plugin "${plugin.name}" processPlan failed`, err);
86
- }
87
- // Plugin failed — skip it gracefully, operation proceeds without this plugin's enrichment
88
- }
77
+ plan = await plugin.processPlan(plan, account, chainId, this, prefetch);
89
78
  }
90
79
  return plan;
91
80
  }
@@ -94,8 +83,8 @@ export class EulerSDK {
94
83
  * record keyed by plugin name; known SDK slots (`pyth`, `keyring`) are
95
84
  * typed. Run once per form-load so per-quote prepare/estimate/simulate can
96
85
  * pass the result back via `processPlugins(plan, account, chainId, prefetch)`
97
- * without re-doing the expensive lookups. Recoverable plugin errors omit that
98
- * plugin's payload; PluginExecutionFatalError is propagated to the caller.
86
+ * without re-doing the expensive lookups. Every plugin failure is propagated;
87
+ * callers must not mistake missing safety evidence for an empty payload.
99
88
  */
100
89
  async prefetchPluginData(plan, account, chainId) {
101
90
  if (this.plugins.length === 0)
@@ -103,18 +92,8 @@ export class EulerSDK {
103
92
  const entries = await Promise.all(this.plugins.map(async (plugin) => {
104
93
  if (!plugin.prefetch)
105
94
  return null;
106
- try {
107
- const data = await plugin.prefetch(plan, account, chainId, this);
108
- return data === undefined ? null : [plugin.name, data];
109
- }
110
- catch (err) {
111
- if (err instanceof PluginExecutionFatalError)
112
- throw err;
113
- if (typeof console !== "undefined") {
114
- console.warn(`[euler-v2-sdk] plugin "${plugin.name}" prefetch failed`, err);
115
- }
116
- return null;
117
- }
95
+ const data = await plugin.prefetch(plan, account, chainId, this);
96
+ return data === undefined ? null : [plugin.name, data];
118
97
  }));
119
98
  const result = {};
120
99
  for (const entry of entries) {