ponder 0.17.7 → 0.17.8

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # ponder
2
2
 
3
+ ## 0.17.8
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2366](https://github.com/ponder-sh/ponder/pull/2366) [`bbcaa43`](https://github.com/ponder-sh/ponder/commit/bbcaa43982b92cbfd1d4b91f66a0b4ae824c3d43) Thanks [@kyscott18](https://github.com/kyscott18)! - Improved backfill sync performance by merging more compatible JSON-RPC `eth_getLogs` requests.
8
+
3
9
  ## 0.17.7
4
10
 
5
11
  ### Patch Changes
@@ -1,4 +1,5 @@
1
- import { hexToNumber } from "viem";
1
+ import { hexToNumber, numberToHex } from "viem";
2
+ import { sanitizeLogTopics } from '../rpc/index.js';
2
3
  import { toLowerCase } from '../utils/lowercase.js';
3
4
  /** Returns true if `address` is an address filter. */
4
5
  export const isAddressFactory = (address) => {
@@ -9,6 +10,125 @@ export const isAddressFactory = (address) => {
9
10
  }
10
11
  return Array.isArray(address) ? isAddressFactory(address[0]) : true;
11
12
  };
13
+ const logRequestKeys = [
14
+ "address",
15
+ "topic0",
16
+ "topic1",
17
+ "topic2",
18
+ "topic3",
19
+ ];
20
+ const getLogRequestValue = (request, key) => {
21
+ if (key === "address")
22
+ return request.params[0].address;
23
+ const topic = request.params[0].topics?.[Number(key.slice(-1))];
24
+ return topic === null ? undefined : topic;
25
+ };
26
+ /** Returns `true` if `left` and `right` overlap by at least 80% of the smaller interval's length. */
27
+ const hasSufficientLogIntervalOverlap = (left, right) => {
28
+ const overlapStart = Math.max(left[0], right[0]);
29
+ const overlapEnd = Math.min(left[1], right[1]);
30
+ if (overlapStart > overlapEnd)
31
+ return false;
32
+ const overlapLength = overlapEnd - overlapStart + 1;
33
+ const smallerIntervalLength = Math.min(left[1] - left[0] + 1, right[1] - right[0] + 1);
34
+ return overlapLength / smallerIntervalLength >= 0.8;
35
+ };
36
+ const mergeLogFilterValue = (left, right) => left === undefined || right === undefined
37
+ ? undefined
38
+ : [
39
+ ...new Set([
40
+ ...(Array.isArray(left) ? left : [left]),
41
+ ...(Array.isArray(right) ? right : [right]),
42
+ ]),
43
+ ];
44
+ /**
45
+ * Merge `LogFilter`s into the smallest possible set of "eth_getLogs" requests.
46
+ *
47
+ * @dev Two filters are merged into a single request when:
48
+ * 1. their required intervals overlap by at least 80% (of the smaller
49
+ * interval's length), and
50
+ * 2. at most one of `address`, `topic0`, `topic1`, `topic2`, or `topic3`
51
+ * differs between them.
52
+ * The one differing dimension (if any) is unioned into an array.
53
+ *
54
+ * @dev Factory addresses are resolved into concrete child addresses (or
55
+ * `undefined`, above `factoryAddressCountThreshold`) before merging, so
56
+ * requests originating from different factories can still be merged.
57
+ */
58
+ export const mergeLogFiltersToRequests = (filters, childAddresses, factoryAddressCountThreshold) => {
59
+ const requests = [];
60
+ for (const { filter, interval } of filters) {
61
+ if (filter.type !== "log")
62
+ continue;
63
+ let address;
64
+ if (isAddressFactory(filter.address)) {
65
+ const addresses = childAddresses.get(filter.address.id);
66
+ if (addresses.size === 0)
67
+ continue;
68
+ address =
69
+ addresses.size >= factoryAddressCountThreshold
70
+ ? undefined
71
+ : Array.from(addresses.keys());
72
+ }
73
+ else {
74
+ address = filter.address;
75
+ }
76
+ const candidate = {
77
+ method: "eth_getLogs",
78
+ params: [
79
+ {
80
+ address,
81
+ topics: sanitizeLogTopics([
82
+ filter.topic0,
83
+ filter.topic1 ?? null,
84
+ filter.topic2 ?? null,
85
+ filter.topic3 ?? null,
86
+ ]),
87
+ fromBlock: numberToHex(interval[0]),
88
+ toBlock: numberToHex(interval[1]),
89
+ },
90
+ ],
91
+ };
92
+ let isMerged = false;
93
+ for (const request of requests) {
94
+ if (hasSufficientLogIntervalOverlap([
95
+ hexToNumber(request.params[0].fromBlock),
96
+ hexToNumber(request.params[0].toBlock),
97
+ ], interval) === false) {
98
+ continue;
99
+ }
100
+ const numberOfDifferences = logRequestKeys.filter((key) => JSON.stringify(getLogRequestValue(request, key)) !==
101
+ JSON.stringify(getLogRequestValue(candidate, key))).length;
102
+ if (numberOfDifferences > 1)
103
+ continue;
104
+ const requestParams = request.params[0];
105
+ for (const key of logRequestKeys) {
106
+ const requestValue = getLogRequestValue(request, key);
107
+ const candidateValue = getLogRequestValue(candidate, key);
108
+ if (JSON.stringify(requestValue) === JSON.stringify(candidateValue)) {
109
+ continue;
110
+ }
111
+ const mergedValue = mergeLogFilterValue(requestValue, candidateValue);
112
+ if (key === "address") {
113
+ requestParams.address = mergedValue;
114
+ }
115
+ else {
116
+ const topics = [...(requestParams.topics ?? [])];
117
+ topics[Number(key.slice(-1))] = mergedValue ?? null;
118
+ requestParams.topics = sanitizeLogTopics(topics);
119
+ }
120
+ }
121
+ requestParams.fromBlock = numberToHex(Math.min(hexToNumber(requestParams.fromBlock), interval[0]));
122
+ requestParams.toBlock = numberToHex(Math.max(hexToNumber(requestParams.toBlock), interval[1]));
123
+ isMerged = true;
124
+ break;
125
+ }
126
+ if (isMerged === false) {
127
+ requests.push(candidate);
128
+ }
129
+ }
130
+ return requests;
131
+ };
12
132
  export const getChildAddress = ({ log, factory, }) => {
13
133
  if (factory.childAddressLocation.startsWith("offset")) {
14
134
  const childAddressOffset = Number(factory.childAddressLocation.substring(6));
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/runtime/filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/runtime/filter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { getLogsRetryHelper } from "@ponder/utils";
2
2
  import { hexToNumber, numberToHex, toHex, zeroHash, } from "viem";
3
3
  import { debug_traceBlockByNumber, eth_getBlockByNumber, eth_getBlockReceipts, eth_getLogs, eth_getTransactionReceipt, validateLogsAndBlock, validateReceiptsAndBlock, validateTracesAndBlock, validateTransactionsAndBlock, } from '../rpc/actions.js';
4
- import { sanitizeLogTopics } from '../rpc/index.js';
5
- import { getChildAddress, isAddressFactory, isAddressMatched, isBlockFilterMatched, isBlockInFilter, isLogFactoryMatched, isLogFilterMatched, isTraceFilterMatched, isTransactionFilterMatched, isTransferFilterMatched, } from '../runtime/filter.js';
4
+ import { getChildAddress, isAddressFactory, isAddressMatched, isBlockFilterMatched, isBlockInFilter, isLogFactoryMatched, isLogFilterMatched, isTraceFilterMatched, isTransactionFilterMatched, isTransferFilterMatched, mergeLogFiltersToRequests, } from '../runtime/filter.js';
6
5
  import { dedupe } from '../utils/dedupe.js';
7
6
  import { getChunks, intervalBounds, intervalRange, } from '../utils/interval.js';
8
7
  import { promiseAllSettledWithThrow } from '../utils/promiseAllSettledWithThrow.js';
@@ -20,29 +19,30 @@ export const createHistoricalSync = (args) => {
20
19
  let logsRequestMetadata = {
21
20
  estimatedRange: 500,
22
21
  };
22
+ ////////
23
+ // Helper functions for sync tasks
24
+ ////////
23
25
  /**
24
26
  * Split "eth_getLogs" requests into ranges inferred from errors
25
27
  * and batch requests.
26
28
  */
27
- const syncLogsDynamic = async ({ address, topic0, topic1, topic2, topic3, interval }, context) => {
29
+ const syncLogsDynamic = async (params, context) => {
30
+ const { address, topics } = params;
28
31
  const intervals = getChunks({
29
- interval,
32
+ interval: [
33
+ hexToNumber(params.fromBlock),
34
+ hexToNumber(params.toBlock),
35
+ ],
30
36
  maxChunkSize: args.chain.ethGetLogsBlockRange ??
31
37
  logsRequestMetadata.confirmedRange ??
32
38
  logsRequestMetadata.estimatedRange,
33
39
  });
34
- const topics = sanitizeLogTopics([
35
- topic0 ?? null,
36
- topic1 ?? null,
37
- topic2 ?? null,
38
- topic3 ?? null,
39
- ]);
40
- const logs = await Promise.all(intervals.map((interval) => eth_getLogs(args.rpc, [
40
+ const logs = await Promise.all(intervals.map(([fromBlock, toBlock]) => eth_getLogs(args.rpc, [
41
41
  {
42
42
  address,
43
43
  topics,
44
- fromBlock: numberToHex(interval[0]),
45
- toBlock: numberToHex(interval[1]),
44
+ fromBlock: numberToHex(fromBlock),
45
+ toBlock: numberToHex(toBlock),
46
46
  },
47
47
  ], context).catch((error) => {
48
48
  // Note: skip eth_getLogs range retry logic if the chain
@@ -55,8 +55,8 @@ export const createHistoricalSync = (args) => {
55
55
  {
56
56
  address,
57
57
  topics,
58
- fromBlock: toHex(interval[0]),
59
- toBlock: toHex(interval[1]),
58
+ fromBlock: toHex(fromBlock),
59
+ toBlock: toHex(toBlock),
60
60
  },
61
61
  ],
62
62
  error: error,
@@ -77,7 +77,12 @@ export const createHistoricalSync = (args) => {
77
77
  ? range
78
78
  : undefined,
79
79
  };
80
- return syncLogsDynamic({ address, topic0, topic1, topic2, topic3, interval }, context);
80
+ return syncLogsDynamic({
81
+ address,
82
+ topics,
83
+ fromBlock: numberToHex(fromBlock),
84
+ toBlock: numberToHex(toBlock),
85
+ }, context);
81
86
  }))).then((logs) => logs.flat());
82
87
  /**
83
88
  * Dynamically increase the range used in "eth_getLogs" if an
@@ -140,11 +145,12 @@ export const createHistoricalSync = (args) => {
140
145
  const syncAddressFactory = async (factory, interval, context) => {
141
146
  const logs = await syncLogsDynamic({
142
147
  address: factory.address,
143
- topic0: factory.eventSelector,
144
- interval,
148
+ topics: [factory.eventSelector],
149
+ fromBlock: numberToHex(interval[0]),
150
+ toBlock: numberToHex(interval[1]),
145
151
  }, context);
146
152
  const childAddresses = new Map();
147
- const childAddressesRecord = args.childAddresses.get(factory.id);
153
+ const factoryChildAddresses = args.childAddresses.get(factory.id);
148
154
  const childAddressDecodeFailureIds = new Set();
149
155
  let childAddressDecodeFailureCount = 0;
150
156
  let childAddressDecodeSuccessCount = 0;
@@ -177,12 +183,12 @@ export const createHistoricalSync = (args) => {
177
183
  throw error;
178
184
  }
179
185
  }
180
- const existingBlockNumber = childAddressesRecord.get(address);
186
+ const existingBlockNumber = factoryChildAddresses.get(address);
181
187
  const newBlockNumber = hexToNumber(log.blockNumber);
182
188
  if (existingBlockNumber === undefined ||
183
189
  existingBlockNumber > newBlockNumber) {
184
190
  childAddresses.set(address, newBlockNumber);
185
- childAddressesRecord.set(address, newBlockNumber);
191
+ factoryChildAddresses.set(address, newBlockNumber);
186
192
  }
187
193
  }
188
194
  }
@@ -220,117 +226,10 @@ export const createHistoricalSync = (args) => {
220
226
  await Promise.all(requiredFactoryIntervals.map(async ({ factory, interval }) => {
221
227
  childAddresses.set(factory.id, await syncAddressFactory(factory, interval, context));
222
228
  }));
223
- const mergedEthGetLogsParams = new Map();
224
- const singleEthGetLogsParams = [];
225
- for (const { filter, interval } of requiredIntervals) {
226
- if (filter.type !== "log")
227
- continue;
228
- const hasAddress = filter.address !== undefined;
229
- const hasTopic1 = filter.topic1 !== undefined && filter.topic1 !== null;
230
- const hasTopic2 = filter.topic2 !== undefined && filter.topic2 !== null;
231
- const hasTopic3 = filter.topic3 !== undefined && filter.topic3 !== null;
232
- if (hasAddress === false || hasTopic1 || hasTopic2 || hasTopic3) {
233
- if (isAddressFactory(filter.address)) {
234
- const childAddresses = args.childAddresses.get(filter.address.id);
235
- if (childAddresses.size === 0) {
236
- continue;
237
- }
238
- singleEthGetLogsParams.push({
239
- address: childAddresses.size >=
240
- args.common.options.factoryAddressCountThreshold
241
- ? undefined
242
- : Array.from(childAddresses.keys()),
243
- topic0: filter.topic0,
244
- topic1: filter.topic1,
245
- topic2: filter.topic2,
246
- topic3: filter.topic3,
247
- interval,
248
- });
249
- }
250
- else {
251
- singleEthGetLogsParams.push({
252
- address: filter.address,
253
- topic0: filter.topic0,
254
- topic1: filter.topic1,
255
- topic2: filter.topic2,
256
- topic3: filter.topic3,
257
- interval,
258
- });
259
- }
260
- continue;
261
- }
262
- let addressKey;
263
- if (isAddressFactory(filter.address)) {
264
- addressKey = filter.address.id;
265
- }
266
- else if (Array.isArray(filter.address)) {
267
- addressKey = filter.address.join("_");
268
- }
269
- else {
270
- addressKey = filter.address;
271
- }
272
- if (mergedEthGetLogsParams.has(addressKey) === false) {
273
- if (isAddressFactory(filter.address)) {
274
- const childAddresses = args.childAddresses.get(filter.address.id);
275
- if (childAddresses.size === 0) {
276
- continue;
277
- }
278
- mergedEthGetLogsParams.set(addressKey, {
279
- address: childAddresses.size >=
280
- args.common.options.factoryAddressCountThreshold
281
- ? undefined
282
- : Array.from(childAddresses.keys()),
283
- topic0: filter.topic0,
284
- topic1: filter.topic1,
285
- topic2: filter.topic2,
286
- topic3: filter.topic3,
287
- interval,
288
- });
289
- }
290
- else {
291
- mergedEthGetLogsParams.set(addressKey, {
292
- address: filter.address,
293
- topic0: filter.topic0,
294
- topic1: filter.topic1,
295
- topic2: filter.topic2,
296
- topic3: filter.topic3,
297
- interval,
298
- });
299
- }
300
- }
301
- else {
302
- const existingInterval = mergedEthGetLogsParams.get(addressKey).interval;
303
- const existingTopic0 = mergedEthGetLogsParams.get(addressKey)
304
- .topic0;
305
- if (Array.isArray(existingTopic0)) {
306
- if (existingTopic0.includes(filter.topic0) === false) {
307
- mergedEthGetLogsParams.get(addressKey).topic0 = [
308
- ...existingTopic0,
309
- filter.topic0,
310
- ];
311
- }
312
- }
313
- else {
314
- if (existingTopic0 !== filter.topic0) {
315
- mergedEthGetLogsParams.get(addressKey).topic0 = [
316
- existingTopic0,
317
- filter.topic0,
318
- ];
319
- }
320
- }
321
- mergedEthGetLogsParams.get(addressKey).interval = intervalBounds([
322
- existingInterval,
323
- interval,
324
- ]);
325
- }
326
- }
327
- const ethGetLogsParams = dedupe([
328
- ...singleEthGetLogsParams,
329
- ...Array.from(mergedEthGetLogsParams.values()),
330
- ], (params) => JSON.stringify(params));
229
+ const ethGetLogsRequests = mergeLogFiltersToRequests(requiredIntervals, args.childAddresses, args.common.options.factoryAddressCountThreshold);
331
230
  let logs = [];
332
- await Promise.all(ethGetLogsParams.map(async (params) => {
333
- const _logs = await syncLogsDynamic(params, context);
231
+ await Promise.all(ethGetLogsRequests.map(async (request) => {
232
+ const _logs = await syncLogsDynamic(request.params[0], context);
334
233
  for (const log of _logs) {
335
234
  logs.push(log);
336
235
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync-historical/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAIL,WAAW,EAEX,WAAW,EAEX,KAAK,EACL,QAAQ,GACT,MAAM,MAAM,CAAC;AAiBd,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAY,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EACL,SAAS,EAET,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA8B9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAoC,EACpB,EAAE;IAClB;;OAEG;IACH,IAAI,eAAe,GAAG,IAAI,CAAC;IAE3B;;;OAGG;IACH,IAAI,mBAAmB,GAKnB;QACF,cAAc,EAAE,GAAG;KACpB,CAAC;IAeF;;;OAGG;IACH,MAAM,eAAe,GAAG,KAAK,EAC3B,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAoB,EACvE,OAAuC,EACnB,EAAE;QACtB,MAAM,SAAS,GAAG,SAAS,CAAC;YAC1B,QAAQ;YACR,YAAY,EACV,IAAI,CAAC,KAAK,CAAC,oBAAoB;gBAC/B,mBAAmB,CAAC,cAAc;gBAClC,mBAAmB,CAAC,cAAc;SACrC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,iBAAiB,CAAC;YAC/B,MAAM,IAAI,IAAI;YACd,MAAM,IAAI,IAAI;YACd,MAAM,IAAI,IAAI;YACd,MAAM,IAAI,IAAI;SACf,CAAE,CAAC;QAEJ,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzB,WAAW,CACT,IAAI,CAAC,GAAG,EACR;YACE;gBACE,OAAO;gBACP,MAAM;gBACN,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAClC;SACF,EACD,OAAO,CACR,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,wDAAwD;YACxD,4BAA4B;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;gBAC9C,MAAM,EAAE;oBACN;wBACE,OAAO;wBACP,MAAM;wBACN,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC7B,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBAC5B;iBACF;gBACD,KAAK,EAAE,KAAiB;aACzB,CAAC,CAAC;YAEH,IAAI,oBAAoB,CAAC,WAAW,KAAK,KAAK;gBAAE,MAAM,KAAK,CAAC;YAE5D,MAAM,KAAK,GACT,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC;gBACpD,WAAW,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBACvB,GAAG,EAAE,2BAA2B;gBAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gBACvB,KAAK;aACN,CAAC,CAAC;YAEH,mBAAmB,GAAG;gBACpB,cAAc,EAAE,KAAK;gBACrB,cAAc,EAAE,oBAAoB,CAAC,gBAAgB;oBACnD,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,SAAS;aACd,CAAC;YAEF,OAAO,eAAe,CACpB,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EACrD,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CACH,CACF,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE9B;;;WAGG;QAEH,IAAI,mBAAmB,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACrD,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAC7C,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAC1C,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,KAAK,EACnC,KAAgB,EAChB,iBAA4B,EAC5B,OAAuC,EACJ,EAAE;QACrC,IAAI,iBAAiB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC/C,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAC7C,IAAI,CAAC,GAAG,EACR,CAAC,IAAI,CAAC,EACN,OAAO,CACR,CAAC;gBAEF,wBAAwB,CACtB,CAAC,OAAO,CAAC,EACT,KAAK,EACL;oBACE,MAAM,EAAE,2BAA2B;oBACnC,MAAM,EAAE,CAAC,IAAI,CAAC;iBACf,EACD;oBACE,MAAM,EAAE,sBAAsB;oBAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;iBAC7B,CACF,CAAC;gBAEF,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,CACH,CAAC;YAEF,OAAO,mBAAmB,CAAC;QAC7B,CAAC;QAED,IAAI,aAAuC,CAAC;QAC5C,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,oBAAoB,CACxC,IAAI,CAAC,GAAG,EACR,CAAC,KAAK,CAAC,IAAI,CAAC,EACZ,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,MAAe,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACtB,GAAG,EAAE,kFAAkF;gBACvF,MAAM,EAAE,kBAAkB;gBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gBACvB,KAAK;aACN,CAAC,CAAC;YAEH,eAAe,GAAG,KAAK,CAAC;YACxB,OAAO,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QAED,wBAAwB,CACtB,aAAa,EACb,KAAK,EACL;YACE,MAAM,EAAE,sBAAsB;YAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SACrB,EACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;SAC7B,CACF,CAAC;QAEF,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3D,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAC/C,CAAC;QAEF,OAAO,mBAAmB,CAAC;IAC7B,CAAC,CAAC;IAEF;;;;OAIG;IACH,MAAM,kBAAkB,GAAG,KAAK,EAC9B,OAAgB,EAChB,QAAkB,EAClB,OAAuC,EACR,EAAE;QACjC,MAAM,IAAI,GAAG,MAAM,eAAe,CAChC;YACE,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,aAAa;YAC7B,QAAQ;SACT,EACD,OAAO,CACR,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAmB,CAAC;QAClD,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC;QAElE,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAU,CAAC;QACvD,IAAI,8BAA8B,GAAG,CAAC,CAAC;QACvC,IAAI,8BAA8B,GAAG,CAAC,CAAC;QAEvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,mBAAmB,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAC1C,IAAI,OAAgB,CAAC;gBACrB,IAAI,CAAC;oBACH,OAAO,GAAG,eAAe,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC5C,8BAA8B,EAAE,CAAC;gBACnC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBAClC,8BAA8B,EAAE,CAAC;wBACjC,IAAI,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;4BAC3D,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;4BAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gCACvB,GAAG,EAAE,yFAAyF;gCAC9F,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gCACtB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gCACvB,OAAO,EAAE,OAAO,CAAC,QAAQ;gCACzB,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;gCAC1C,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;gCACpC,IAAI,EAAE,GAAG,CAAC,IAAI;gCACd,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;6BACnC,CAAC,CAAC;wBACL,CAAC;wBACD,SAAS;oBACX,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9D,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAEpD,IACE,mBAAmB,KAAK,SAAS;oBACjC,mBAAmB,GAAG,cAAc,EACpC,CAAC;oBACD,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;oBAC5C,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,8BAA8B,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBACvB,GAAG,EAAE,+EAA+E;gBACpF,aAAa,EAAE,8BAA8B;gBAC7C,aAAa,EAAE,8BAA8B;aAC9C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,kBAAkB,CAAC,EACvB,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,SAAS,GACV;YACC,MAAM,OAAO,GAAG;gBACd,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;aACjE,CAAC;YACF,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAmB,IAAI,GAAG,EAAE,CAAC;YAEjD,yCAAyC;YAEzC,MAAM,oBAAoB,GAGtB,IAAI,GAAG,EAAE,CAAC;YAEd,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,wBAAwB,EAAE,CAAC;gBAC7D,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBACzC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,GAAG,CAC/C,OAAO,CAAC,EAAE,CACV,CAAC,QAAQ,CAAC;oBAEZ,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC,QAAQ,GAAG,cAAc,CAAC;wBAC9D,gBAAgB;wBAChB,QAAQ;qBACT,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,wBAAwB,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;YAErE,MAAM,OAAO,CAAC,GAAG,CACf,wBAAwB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC3D,cAAc,CAAC,GAAG,CAChB,OAAO,CAAC,EAAE,EACV,MAAM,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAE,CACtD,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,sBAAsB,GAAkC,IAAI,GAAG,EAAE,CAAC;YACxE,MAAM,sBAAsB,GAAuB,EAAE,CAAC;YAEtD,KAAK,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,iBAAiB,EAAE,CAAC;gBACrD,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;oBAAE,SAAS;gBAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC;gBAChD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;gBACxE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;gBACxE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;gBAExE,IAAI,UAAU,KAAK,KAAK,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;oBAChE,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;wBACrC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC;wBAEnE,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;4BAC9B,SAAS;wBACX,CAAC;wBAED,sBAAsB,CAAC,IAAI,CAAC;4BAC1B,OAAO,EACL,cAAc,CAAC,IAAI;gCACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4BAA4B;gCAC9C,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;4BACvC,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,QAAQ;yBACT,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,sBAAsB,CAAC,IAAI,CAAC;4BAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,QAAQ;yBACT,CAAC,CAAC;oBACL,CAAC;oBAED,SAAS;gBACX,CAAC;gBAED,IAAI,UAAkB,CAAC;gBACvB,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBACrC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBACzC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,MAAM,CAAC,OAAkB,CAAC;gBACzC,CAAC;gBAED,IAAI,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC;oBACrD,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;wBACrC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC;wBAEnE,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;4BAC9B,SAAS;wBACX,CAAC;wBAED,sBAAsB,CAAC,GAAG,CAAC,UAAU,EAAE;4BACrC,OAAO,EACL,cAAc,CAAC,IAAI;gCACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4BAA4B;gCAC9C,CAAC,CAAC,SAAS;gCACX,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;4BACvC,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,QAAQ;yBACT,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,sBAAsB,CAAC,GAAG,CAAC,UAAU,EAAE;4BACrC,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,QAAQ;yBACT,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,gBAAgB,GACpB,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,QAAQ,CAAC;oBACnD,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAE;yBAC3D,MAAqB,CAAC;oBAEzB,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;wBAClC,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;4BACrD,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,MAAM,GAAG;gCAC/C,GAAG,cAAc;gCACjB,MAAM,CAAC,MAAM;6BACd,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,cAAc,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;4BACrC,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,MAAM,GAAG;gCAC/C,cAAc;gCACd,MAAM,CAAC,MAAM;6BACd,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAED,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,QAAQ,GAAG,cAAc,CAAC;wBAChE,gBAAgB;wBAChB,QAAQ;qBACT,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,CAC7B;gBACE,GAAG,sBAAsB;gBACzB,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC;aAC/C,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACnC,CAAC;YAEF,IAAI,IAAI,GAAc,EAAE,CAAC;YAEzB,MAAM,OAAO,CAAC,GAAG,CACf,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACpC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACrD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CACH,CAAC;YAEF,iEAAiE;YACjE,WAAW;YACX,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEnE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;wBACtB,GAAG,EAAE,yFAAyF;wBAC9F,MAAM,EAAE,kBAAkB;wBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;wBACtB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;wBACvB,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;wBACpC,IAAI,EAAE,GAAG,CAAC,SAAS;wBACnB,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;qBACpC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC/C,iBAAiB,IAAI,IAAI,CAAC;YAC5B,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CACtB;gBACE,GAAG,EAAE,0BAA0B;gBAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gBACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACrC,SAAS,EAAE,IAAI,CAAC,MAAM;gBACtB,mBAAmB,EAAE,iBAAiB;gBACtC,QAAQ,EAAE,QAAQ,EAAE;aACrB,EACD,CAAC,OAAO,EAAE,aAAa,CAAC,CACzB,CAAC;YAEF,MAAM,0BAA0B,CAC9B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACtC,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,CAC9B,SAAS,CAAC,oBAAoB,CAC5B;gBACE,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,OAAO;gBACrD,cAAc;gBACd,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;aACvB,EACD,OAAO,CACR,CACJ,CACF,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE;YAClE,MAAM,OAAO,GAAG;gBACd,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;aACjE,CAAC;YACF,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;YAE9B,MAAM,YAAY,GAAkB,EAAE,CAAC;YACvC,MAAM,kBAAkB,GAAwB,EAAE,CAAC;YACnD,MAAM,YAAY,GAAkB,EAAE,CAAC;YACvC,MAAM,UAAU,GAAgB,EAAE,CAAC;YACnC,MAAM,eAAe,GAAqB,EAAE,CAAC;YAE7C,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;gBAC3C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,OAAO,CAAC,CAAC,CAAC;wBACb,YAAY,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC;wBACzC,MAAM;oBACR,CAAC;oBACD,KAAK,aAAa,CAAC,CAAC,CAAC;wBACnB,kBAAkB,CAAC,IAAI,CAAC,MAA2B,CAAC,CAAC;wBACrD,MAAM;oBACR,CAAC;oBACD,KAAK,OAAO,CAAC,CAAC,CAAC;wBACb,YAAY,CAAC,IAAI,CAAC,MAAqB,CAAC,CAAC;wBACzC,MAAM;oBACR,CAAC;oBACD,KAAK,KAAK,CAAC,CAAC,CAAC;wBACX,UAAU,CAAC,IAAI,CAAC,MAAmB,CAAC,CAAC;wBACrC,MAAM;oBACR,CAAC;oBACD,KAAK,UAAU,CAAC,CAAC,CAAC;wBAChB,eAAe,CAAC,IAAI,CAAC,MAAwB,CAAC,CAAC;wBAC/C,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAC;YAClD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACjD,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC5C,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACpC,CAAC;gBACD,YAAY,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,iBAAwC,CAAC;YAE7C,MAAM,aAAa,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;gBAClD,IAAI,KAA4B,CAAC;gBAEjC,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAQ,CAAC;gBAC7C,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAAQ,CAAC;gBAEpD,QAAQ;gBACR,OAAO;gBACP,QAAQ;gBAER,IAAI,IAAI,GAAc,EAAE,CAAC;gBACzB,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBAClC,KAAK,GAAG,MAAM,oBAAoB,CAChC,IAAI,CAAC,GAAG,EACR,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAChC,OAAO,CACR,CAAC;oBAEF,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;wBACnD,IAAI,SAAS,GAAG,KAAK,CAAC;wBAEtB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;4BAChC,IACE,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gCACnC,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;oCAC/B,CAAC,CAAC,gBAAgB,CAAC;wCACf,OAAO,EAAE,GAAG,CAAC,OAAO;wCACpB,WAAW;wCACX,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CACrC,MAAM,CAAC,OAAO,CAAC,EAAE,CACjB;qCACH,CAAC;oCACJ,CAAC,CAAC,IAAI,CAAC,EACT,CAAC;gCACD,SAAS,GAAG,IAAI,CAAC;gCAEjB,IAAI,GAAG,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;oCACrC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oCAC9C,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;wCACjC,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;wCAErD,mBAAmB;wCACnB,MAAM;oCACR,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,OAAO,SAAS,CAAC;oBACnB,CAAC,CAAC,CAAC;oBAEH,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpB,mEAAmE;wBACnE,kDAAkD;wBAClD,oBAAoB,CAClB,IAAI,EACJ,KAAK,EACL;4BACE,MAAM,EAAE,aAAa;4BACrB,MAAM,EAAE;gCACN;oCACE,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC;oCAC7B,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC;iCAC5B;6BACF;yBACF,EACD;4BACE,MAAM,EAAE,sBAAsB;4BAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;yBACnC,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,QAAQ;gBACR,SAAS;gBACT,QAAQ;gBAER,MAAM,mBAAmB,GACvB,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;oBACnE,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9B,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CACrC,CAAC;gBAEJ,IAAI,MAAM,GAAgB,EAAE,CAAC;gBAC7B,IAAI,mBAAmB,EAAE,CAAC;oBACxB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACxB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;4BAClC,oBAAoB,CAClB,IAAI,CAAC,GAAG,EACR,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAChC,OAAO,CACR;4BACD,wBAAwB,CACtB,IAAI,CAAC,GAAG,EACR,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EACpD,OAAO,CACR;yBACF,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,MAAM,wBAAwB,CACrC,IAAI,CAAC,GAAG,EACR,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EACpD,OAAO,CACR,CAAC;oBACJ,CAAC;oBAED,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC/B,IAAI,SAAS,GAAG,KAAK,CAAC;wBACtB,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;4BACrC,IACE,uBAAuB,CAAC;gCACtB,MAAM;gCACN,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;6BACvC,CAAC;gCACF,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;oCACnC,CAAC,CAAC,gBAAgB,CAAC;wCACf,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;wCACzB,WAAW;wCACX,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CACrC,MAAM,CAAC,WAAW,CAAC,EAAE,CACrB;qCACH,CAAC;oCACJ,CAAC,CAAC,IAAI,CAAC;gCACT,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC;oCACjC,CAAC,CAAC,gBAAgB,CAAC;wCACf,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;wCACvB,WAAW;wCACX,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CACrC,MAAM,CAAC,SAAS,CAAC,EAAE,CACnB;qCACH,CAAC;oCACJ,CAAC,CAAC,IAAI,CAAC,EACT,CAAC;gCACD,SAAS,GAAG,IAAI,CAAC;gCACjB,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gCAChD,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;oCACjC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oCACvD,qBAAqB;oCACrB,MAAM;gCACR,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;4BAClC,IACE,oBAAoB,CAAC;gCACnB,MAAM;gCACN,KAAK,EAAE,KAAK,CAAC,KAAK;gCAClB,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;6BACvC,CAAC;gCACF,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;oCACnC,CAAC,CAAC,gBAAgB,CAAC;wCACf,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;wCACzB,WAAW;wCACX,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CACrC,MAAM,CAAC,WAAW,CAAC,EAAE,CACrB;qCACH,CAAC;oCACJ,CAAC,CAAC,IAAI,CAAC;gCACT,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC;oCACjC,CAAC,CAAC,gBAAgB,CAAC;wCACf,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;wCACvB,WAAW;wCACX,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CACrC,MAAM,CAAC,SAAS,CAAC,EAAE,CACnB;qCACH,CAAC;oCACJ,CAAC,CAAC,IAAI,CAAC,EACT,CAAC;gCACD,SAAS,GAAG,IAAI,CAAC;gCACjB,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gCAChD,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;oCACjC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oCACvD,qBAAqB;oCACrB,MAAM;gCACR,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,OAAO,SAAS,CAAC;oBACnB,CAAC,CAAC,CAAC;oBAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,sBAAsB,CACpB,MAAM,EACN,KAAK,EACL;4BACE,MAAM,EAAE,0BAA0B;4BAClC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;yBACvD,EACD;4BACE,MAAM,EAAE,sBAAsB;4BAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;yBACnC,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,QAAQ;gBACR,QAAQ;gBACR,QAAQ;gBAER,IACE,KAAK,KAAK,SAAS;oBACnB,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3B,oBAAoB,CAAC;wBACnB,MAAM;wBACN,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;qBACvC,CAAC,CACH,EACD,CAAC;oBACD,KAAK,GAAG,MAAM,oBAAoB,CAChC,IAAI,CAAC,GAAG,EACR,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAChC,OAAO,CACR,CAAC;gBACJ,CAAC;gBAED,QAAQ;gBACR,eAAe;gBACf,QAAQ;gBAER,qCAAqC;gBACrC,IACE,KAAK,KAAK,SAAS;oBACnB,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACjC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CACrC,KAAK,KAAK,EACX,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,KAAK,GAAG,MAAM,oBAAoB,CAChC,IAAI,CAAC,GAAG,EACR,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAChC,OAAO,CACR,CAAC;gBACJ,CAAC;gBAED,IACE,iBAAiB,KAAK,SAAS;oBAC/B,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,EACjE,CAAC;oBACD,iBAAiB,GAAG,KAAK,CAAC;gBAC5B,CAAC;gBAED,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;oBAC7D,IAAI,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC3D,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;wBACxC,IACE,0BAA0B,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;4BACnD,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;gCACnC,CAAC,CAAC,gBAAgB,CAAC;oCACf,OAAO,EAAE,WAAW,CAAC,IAAI;oCACzB,WAAW;oCACX,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CACrC,MAAM,CAAC,WAAW,CAAC,EAAE,CACrB;iCACH,CAAC;gCACJ,CAAC,CAAC,IAAI,CAAC;4BACT,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC;gCACjC,CAAC,CAAC,gBAAgB,CAAC;oCACf,OAAO,EAAE,WAAW,CAAC,EAAE,IAAI,SAAS;oCACpC,WAAW;oCACX,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CACrC,MAAM,CAAC,SAAS,CAAC,EAAE,CACnB;iCACH,CAAC;gCACJ,CAAC,CAAC,IAAI,CAAC,EACT,CAAC;4BACD,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;4BAClD,SAAS,GAAG,IAAI,CAAC;wBACnB,CAAC;oBACH,CAAC;oBACD,OAAO,SAAS,CAAC;gBACnB,CAAC,CAAC,CAAC;gBAEH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,4BAA4B,CAAC,KAAK,EAAE;wBAClC,MAAM,EAAE,sBAAsB;wBAC9B,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;qBACnC,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAyB,CAAC;gBAC5D,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;oBACvC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACxD,CAAC;gBAED,QAAQ;gBACR,uBAAuB;gBACvB,QAAQ;gBAER,MAAM,mBAAmB,GAAG,MAAM,uBAAuB,CACvD,KAAK,EACL,2BAA2B,CAC5B,CAAC;gBAEF,UAAU,IAAI,CAAC,CAAC;gBAChB,gBAAgB,IAAI,YAAY,CAAC,MAAM,CAAC;gBACxC,YAAY,IAAI,mBAAmB,CAAC,MAAM,CAAC;gBAC3C,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC;gBAE5B,yCAAyC;gBACzC,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;gBAElC,MAAM,0BAA0B,CAAC;oBAC/B,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;oBACnE,SAAS,CAAC,kBAAkB,CAAC;wBAC3B,YAAY;wBACZ,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;qBACvB,CAAC;oBACF,SAAS,CAAC,yBAAyB,CAAC;wBAClC,mBAAmB;wBACnB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;qBACvB,CAAC;oBACF,SAAS,CAAC,YAAY,CAAC;wBACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAC7B,KAAK;4BACL,KAAK,EAAE,KAAM;4BACb,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAE;yBAC5D,CAAC,CAAC;wBACH,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;qBACvB,CAAC;oBACF,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;iBACvD,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,wCAAwC;YACxC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAChC,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAC,EACjC,GAAG,CACJ,CAAC;YAEF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,WAAW,CAAC;oBACxB,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,iBAAiB;oBAC9B,MAAM,EAAE,aAAa;iBACtB,CAAC,CAAC;gBAEH,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CACrE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CACtB;gBACE,GAAG,EAAE,oBAAoB;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gBACvB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACrC,WAAW,EAAE,UAAU;gBACvB,iBAAiB,EAAE,gBAAgB;gBACnC,aAAa,EAAE,YAAY;gBAC3B,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,QAAQ,EAAE;aACrB,EACD,CAAC,OAAO,EAAE,aAAa,CAAC,CACzB,CAAC;YAEF,OAAO,iBAAiB,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync-historical/index.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,7 @@ export declare const createIndexing: ({ common, indexingBuild: { eventCallbacks,
62
62
  [eventName: string]: number;
63
63
  };
64
64
  }) => Indexing;
65
- export declare const createEventProxy: <T extends Block | Transaction | TransactionReceipt | Trace>(columnAccessPattern: ColumnAccessPattern, type: "block" | "trace" | "transaction" | "transactionReceipt", indexingErrorHandler: IndexingErrorHandler, resetFilterInclude: (eventName: string) => void) => {
65
+ export declare const createEventProxy: <T extends Trace | Block | Transaction | TransactionReceipt>(columnAccessPattern: ColumnAccessPattern, type: "block" | "trace" | "transaction" | "transactionReceipt", indexingErrorHandler: IndexingErrorHandler, resetFilterInclude: (eventName: string) => void) => {
66
66
  proxy: T;
67
67
  underlying: T;
68
68
  eventName: string;
@@ -1,8 +1,39 @@
1
- import { type Address } from "viem";
1
+ import { type Address, type Hex } from "viem";
2
2
  import type { BlockFilter, Factory, Filter, InternalBlock, InternalLog, InternalTrace, InternalTransaction, LogFactory, LogFilter, RequiredBlockColumns, RequiredLogColumns, RequiredTraceColumns, RequiredTransactionColumns, RequiredTransactionReceiptColumns, SyncBlock, SyncBlockHeader, SyncLog, SyncTrace, SyncTransaction, TraceFilter, TransactionFilter, TransferFilter } from '../internal/types.js';
3
+ import { type RequestParameters } from '../rpc/index.js';
4
+ import type { ChildAddresses, IntervalWithFilter } from './index.js';
3
5
  import type { Block, Log, Trace, Transaction, TransactionReceipt } from '../types/eth.js';
4
6
  /** Returns true if `address` is an address filter. */
5
7
  export declare const isAddressFactory: (address: Address | Address[] | Factory | undefined | null) => address is LogFactory;
8
+ type EthGetLogsRequest = Extract<RequestParameters, {
9
+ method: "eth_getLogs";
10
+ }> & {
11
+ params: [
12
+ Extract<Extract<RequestParameters, {
13
+ method: "eth_getLogs";
14
+ }>["params"][0], {
15
+ blockHash?: undefined;
16
+ }> & {
17
+ fromBlock: Hex;
18
+ toBlock: Hex;
19
+ }
20
+ ];
21
+ };
22
+ /**
23
+ * Merge `LogFilter`s into the smallest possible set of "eth_getLogs" requests.
24
+ *
25
+ * @dev Two filters are merged into a single request when:
26
+ * 1. their required intervals overlap by at least 80% (of the smaller
27
+ * interval's length), and
28
+ * 2. at most one of `address`, `topic0`, `topic1`, `topic2`, or `topic3`
29
+ * differs between them.
30
+ * The one differing dimension (if any) is unioned into an array.
31
+ *
32
+ * @dev Factory addresses are resolved into concrete child addresses (or
33
+ * `undefined`, above `factoryAddressCountThreshold`) before merging, so
34
+ * requests originating from different factories can still be merged.
35
+ */
36
+ export declare const mergeLogFiltersToRequests: (filters: IntervalWithFilter[], childAddresses: ChildAddresses, factoryAddressCountThreshold: number) => EthGetLogsRequest[];
6
37
  export declare const getChildAddress: ({ log, factory, }: {
7
38
  log: SyncLog;
8
39
  factory: Factory;
@@ -84,4 +115,5 @@ export declare const unionFilterIncludeBlock: (filters: Filter[]) => (keyof Bloc
84
115
  export declare const unionFilterIncludeTransaction: (filters: Filter[]) => (keyof Transaction)[];
85
116
  export declare const unionFilterIncludeTransactionReceipt: (filters: Filter[]) => (keyof TransactionReceipt)[];
86
117
  export declare const unionFilterIncludeTrace: (filters: Filter[]) => (keyof Trace)[];
118
+ export {};
87
119
  //# sourceMappingURL=filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/runtime/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,MAAM,EACN,aAAa,EACb,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,iCAAiC,EACjC,SAAS,EACT,eAAe,EACf,OAAO,EACP,SAAS,EACT,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,KAAK,EACL,GAAG,EACH,KAAK,EACL,WAAW,EACX,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAGxB,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,YAClB,OAAO,GAAG,OAAO,EAAE,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,0BAU1D,CAAC;AAEF,eAAO,MAAM,eAAe,sBAGzB;IACD,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB,KAAG,OAoBH,CAAC;AAEF,eAAO,MAAM,gBAAgB,8CAI1B;IACD,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,IAAI,OAAO,EAAE,MAAM,CAAC,CAAC;CACtC,YAUA,CAAC;AA0BF;;GAEG;AACH,eAAO,MAAM,mBAAmB,sBAG7B;IACD,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC;CAC5B,KAAG,OA4BH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,qBAG5B;IACD,MAAM,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC;CAC5B,KAAG,OAyBH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,6BAGpC;IACD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,mBAAmB,GAAG,eAAe,CAAC;CACpD,KAAG,OAiCH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,8BAI9B;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,EAAE,KAAK,aAAa,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;CAClD,KAAG,OAsCH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,8BAIjC;IACD,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,KAAK,EAAE,KAAK,aAAa,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;CAClD,KAAG,OAwCH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,uBAG9B;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,KAAK,aAAa,GAAG,SAAS,GAAG,eAAe,EAAE,QAAQ,CAAC,CAAC;CACpE,KAAG,OAUH,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,MAAM,KAAG,OAAO,EAqB1D,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,MAAM,KAAG,MAqBnD,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,MAAM,KAAG,MAwBjD,CAAC;AAEF,eAAO,MAAM,eAAe,WAAY,MAAM,eAAe,MAAM,YAUlE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,EAoB9C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,EAItD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,CAAC,MAAM,WAAW,CAAC,EAiB1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,0BAA0B,EAMlE,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,CAAC,MAAM,kBAAkB,CAAC,EAUxE,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,iCAAiC,EACvD,CAAC;AAE3B,eAAO,MAAM,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,EAa9C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,oBAAoB,EAStD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC,EAM1C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,kBAAkB,EAAsB,CAAC;AAE1E,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,SAAS,CACE,CAAC;AAEhE,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,SAAS,CACE,CAAC;AAEjE,eAAO,MAAM,uBAAuB,EAAE,SAAS,CAAC,SAAS,CAIxD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,SAAS,CAAC,SAAS,CAIzD,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,iBAAiB,CAAC,SAAS,CAMxE,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,iBAAiB,CAAC,SAAS,CAMzE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,SAAS,CAI5D,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,SAAS,CAI7D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,cAAc,CAAC,SAAS,CAIlE,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,cAAc,CAAC,SAAS,CAInE,CAAC;AAEF,eAAO,MAAM,uBAAuB,YAAa,MAAM,EAAE,KAAG,CAAC,MAAM,KAAK,CAAC,EAWxE,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAC/B,MAAM,EAAE,KAChB,CAAC,MAAM,WAAW,CAAC,EAWrB,CAAC;AAEF,eAAO,MAAM,oCAAoC,YACtC,MAAM,EAAE,KAChB,CAAC,MAAM,kBAAkB,CAAC,EAc5B,CAAC;AAEF,eAAO,MAAM,uBAAuB,YAAa,MAAM,EAAE,KAAG,CAAC,MAAM,KAAK,CAAC,EAWxE,CAAC"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/runtime/filter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type Address } from "viem";
2
2
  import type { Common } from '../internal/common.js';
3
3
  import type { Chain, FactoryId, SyncBlock, SyncLog } from '../internal/types.js';
4
- import { type Rpc } from '../rpc/index.js';
4
+ import type { Rpc } from '../rpc/index.js';
5
5
  import type { IntervalWithFactory, IntervalWithFilter } from '../runtime/index.js';
6
6
  import type { SyncStore } from '../sync-store/index.js';
7
7
  import { type Interval } from '../utils/interval.js';
@@ -17,6 +17,7 @@ export type HistoricalSync = {
17
17
  }): Promise<SyncLog[]>;
18
18
  /**
19
19
  * Sync block data that must be queried for a single block (block, transactions, receipts, traces).
20
+ * @returns Closest-to-tip synced block.
20
21
  */
21
22
  syncBlockData(params: {
22
23
  interval: Interval;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync-historical/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EASb,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAEV,KAAK,EAEL,SAAS,EAET,SAAS,EACT,OAAO,EAOR,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EAAE,KAAK,GAAG,EAAqB,MAAM,gBAAgB,CAAC;AAa7D,OAAO,KAAK,EAEV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAEL,KAAK,QAAQ,EAGd,MAAM,qBAAqB,CAAC;AAK7B,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,QAAQ,CAAC;QACnB,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;QACxC,wBAAwB,EAAE,mBAAmB,EAAE,CAAC;QAChD,SAAS,EAAE,SAAS,CAAC;KACtB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvB;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,QAAQ,CAAC;QACnB,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;QACxC,IAAI,EAAE,OAAO,EAAE,CAAC;QAChB,SAAS,EAAE,SAAS,CAAC;KACtB,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;CACpC,CAAC;AAEF,KAAK,8BAA8B,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,SACzB,8BAA8B,KACnC,cAw6BF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync-historical/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EAQb,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAEV,KAAK,EAEL,SAAS,EAET,SAAS,EACT,OAAO,EAOR,MAAM,qBAAqB,CAAC;AAY7B,OAAO,KAAK,EAAqB,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAc7D,OAAO,KAAK,EAEV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAEL,KAAK,QAAQ,EAGd,MAAM,qBAAqB,CAAC;AAK7B,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,QAAQ,CAAC;QACnB,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;QACxC,wBAAwB,EAAE,mBAAmB,EAAE,CAAC;QAChD,SAAS,EAAE,SAAS,CAAC;KACtB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE;QACpB,QAAQ,EAAE,QAAQ,CAAC;QACnB,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;QACxC,IAAI,EAAE,OAAO,EAAE,CAAC;QAChB,SAAS,EAAE,SAAS,CAAC;KACtB,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;CACpC,CAAC;AAEF,KAAK,8BAA8B,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,cAAc,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,SACzB,8BAA8B,KACnC,cAgzBF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ponder",
3
- "version": "0.17.7",
3
+ "version": "0.17.8",
4
4
  "description": "An open-source TypeScript framework for EVM data indexing",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -102,7 +102,7 @@
102
102
  "rimraf": "^5.0.5",
103
103
  "tsx": "^4.19.2",
104
104
  "vitest": "1.6.1",
105
- "@ponder/client": "0.17.7"
105
+ "@ponder/client": "0.17.8"
106
106
  },
107
107
  "engines": {
108
108
  "node": ">=22"
@@ -1,4 +1,4 @@
1
- import { type Address, hexToNumber } from "viem";
1
+ import { type Address, type Hex, hexToNumber, numberToHex } from "viem";
2
2
  import type {
3
3
  BlockFilter,
4
4
  Factory,
@@ -23,6 +23,8 @@ import type {
23
23
  TransactionFilter,
24
24
  TransferFilter,
25
25
  } from "@/internal/types.js";
26
+ import { type RequestParameters, sanitizeLogTopics } from "@/rpc/index.js";
27
+ import type { ChildAddresses, IntervalWithFilter } from "@/runtime/index.js";
26
28
  import type {
27
29
  Block,
28
30
  Log,
@@ -30,6 +32,7 @@ import type {
30
32
  Transaction,
31
33
  TransactionReceipt,
32
34
  } from "@/types/eth.js";
35
+ import type { Interval } from "@/utils/interval.js";
33
36
  import { toLowerCase } from "@/utils/lowercase.js";
34
37
 
35
38
  /** Returns true if `address` is an address filter. */
@@ -46,6 +49,179 @@ export const isAddressFactory = (
46
49
  return Array.isArray(address) ? isAddressFactory(address[0]) : true;
47
50
  };
48
51
 
52
+ type EthGetLogsRequest = Extract<
53
+ RequestParameters,
54
+ { method: "eth_getLogs" }
55
+ > & {
56
+ params: [
57
+ Extract<
58
+ Extract<RequestParameters, { method: "eth_getLogs" }>["params"][0],
59
+ { blockHash?: undefined }
60
+ > & { fromBlock: Hex; toBlock: Hex },
61
+ ];
62
+ };
63
+
64
+ const logRequestKeys = [
65
+ "address",
66
+ "topic0",
67
+ "topic1",
68
+ "topic2",
69
+ "topic3",
70
+ ] as const;
71
+
72
+ const getLogRequestValue = (
73
+ request: EthGetLogsRequest,
74
+ key: (typeof logRequestKeys)[number],
75
+ ): Hex | Hex[] | undefined => {
76
+ if (key === "address") return request.params[0].address;
77
+
78
+ const topic = request.params[0].topics?.[Number(key.slice(-1))];
79
+ return topic === null ? undefined : topic;
80
+ };
81
+
82
+ /** Returns `true` if `left` and `right` overlap by at least 80% of the smaller interval's length. */
83
+ const hasSufficientLogIntervalOverlap = (
84
+ left: Interval,
85
+ right: Interval,
86
+ ): boolean => {
87
+ const overlapStart = Math.max(left[0], right[0]);
88
+ const overlapEnd = Math.min(left[1], right[1]);
89
+ if (overlapStart > overlapEnd) return false;
90
+
91
+ const overlapLength = overlapEnd - overlapStart + 1;
92
+ const smallerIntervalLength = Math.min(
93
+ left[1] - left[0] + 1,
94
+ right[1] - right[0] + 1,
95
+ );
96
+
97
+ return overlapLength / smallerIntervalLength >= 0.8;
98
+ };
99
+
100
+ const mergeLogFilterValue = <value extends Hex>(
101
+ left: value | value[] | undefined,
102
+ right: value | value[] | undefined,
103
+ ): value[] | undefined =>
104
+ left === undefined || right === undefined
105
+ ? undefined
106
+ : [
107
+ ...new Set([
108
+ ...(Array.isArray(left) ? left : [left]),
109
+ ...(Array.isArray(right) ? right : [right]),
110
+ ]),
111
+ ];
112
+
113
+ /**
114
+ * Merge `LogFilter`s into the smallest possible set of "eth_getLogs" requests.
115
+ *
116
+ * @dev Two filters are merged into a single request when:
117
+ * 1. their required intervals overlap by at least 80% (of the smaller
118
+ * interval's length), and
119
+ * 2. at most one of `address`, `topic0`, `topic1`, `topic2`, or `topic3`
120
+ * differs between them.
121
+ * The one differing dimension (if any) is unioned into an array.
122
+ *
123
+ * @dev Factory addresses are resolved into concrete child addresses (or
124
+ * `undefined`, above `factoryAddressCountThreshold`) before merging, so
125
+ * requests originating from different factories can still be merged.
126
+ */
127
+ export const mergeLogFiltersToRequests = (
128
+ filters: IntervalWithFilter[],
129
+ childAddresses: ChildAddresses,
130
+ factoryAddressCountThreshold: number,
131
+ ): EthGetLogsRequest[] => {
132
+ const requests: EthGetLogsRequest[] = [];
133
+
134
+ for (const { filter, interval } of filters) {
135
+ if (filter.type !== "log") continue;
136
+
137
+ let address: Hex | Hex[] | undefined;
138
+ if (isAddressFactory(filter.address)) {
139
+ const addresses = childAddresses.get(filter.address.id)!;
140
+ if (addresses.size === 0) continue;
141
+
142
+ address =
143
+ addresses.size >= factoryAddressCountThreshold
144
+ ? undefined
145
+ : Array.from(addresses.keys());
146
+ } else {
147
+ address = filter.address;
148
+ }
149
+
150
+ const candidate: EthGetLogsRequest = {
151
+ method: "eth_getLogs",
152
+ params: [
153
+ {
154
+ address,
155
+ topics: sanitizeLogTopics([
156
+ filter.topic0,
157
+ filter.topic1 ?? null,
158
+ filter.topic2 ?? null,
159
+ filter.topic3 ?? null,
160
+ ]),
161
+ fromBlock: numberToHex(interval[0]),
162
+ toBlock: numberToHex(interval[1]),
163
+ },
164
+ ],
165
+ };
166
+
167
+ let isMerged = false;
168
+
169
+ for (const request of requests) {
170
+ if (
171
+ hasSufficientLogIntervalOverlap(
172
+ [
173
+ hexToNumber(request.params[0].fromBlock),
174
+ hexToNumber(request.params[0].toBlock),
175
+ ],
176
+ interval,
177
+ ) === false
178
+ ) {
179
+ continue;
180
+ }
181
+
182
+ const numberOfDifferences = logRequestKeys.filter(
183
+ (key) =>
184
+ JSON.stringify(getLogRequestValue(request, key)) !==
185
+ JSON.stringify(getLogRequestValue(candidate, key)),
186
+ ).length;
187
+ if (numberOfDifferences > 1) continue;
188
+
189
+ const requestParams = request.params[0];
190
+ for (const key of logRequestKeys) {
191
+ const requestValue = getLogRequestValue(request, key);
192
+ const candidateValue = getLogRequestValue(candidate, key);
193
+ if (JSON.stringify(requestValue) === JSON.stringify(candidateValue)) {
194
+ continue;
195
+ }
196
+
197
+ const mergedValue = mergeLogFilterValue(requestValue, candidateValue);
198
+ if (key === "address") {
199
+ requestParams.address = mergedValue;
200
+ } else {
201
+ const topics = [...(requestParams.topics ?? [])];
202
+ topics[Number(key.slice(-1))] = mergedValue ?? null;
203
+ requestParams.topics = sanitizeLogTopics(topics);
204
+ }
205
+ }
206
+
207
+ requestParams.fromBlock = numberToHex(
208
+ Math.min(hexToNumber(requestParams.fromBlock), interval[0]),
209
+ );
210
+ requestParams.toBlock = numberToHex(
211
+ Math.max(hexToNumber(requestParams.toBlock), interval[1]),
212
+ );
213
+ isMerged = true;
214
+ break;
215
+ }
216
+
217
+ if (isMerged === false) {
218
+ requests.push(candidate);
219
+ }
220
+ }
221
+
222
+ return requests;
223
+ };
224
+
49
225
  export const getChildAddress = ({
50
226
  log,
51
227
  factory,
@@ -4,7 +4,6 @@ import {
4
4
  type Hash,
5
5
  type Hex,
6
6
  hexToNumber,
7
- type LogTopic,
8
7
  numberToHex,
9
8
  type RpcError,
10
9
  toHex,
@@ -37,7 +36,7 @@ import {
37
36
  validateTracesAndBlock,
38
37
  validateTransactionsAndBlock,
39
38
  } from "@/rpc/actions.js";
40
- import { type Rpc, sanitizeLogTopics } from "@/rpc/index.js";
39
+ import type { RequestParameters, Rpc } from "@/rpc/index.js";
41
40
  import {
42
41
  getChildAddress,
43
42
  isAddressFactory,
@@ -49,6 +48,7 @@ import {
49
48
  isTraceFilterMatched,
50
49
  isTransactionFilterMatched,
51
50
  isTransferFilterMatched,
51
+ mergeLogFiltersToRequests,
52
52
  } from "@/runtime/filter.js";
53
53
  import type {
54
54
  ChildAddresses,
@@ -79,6 +79,7 @@ export type HistoricalSync = {
79
79
  }): Promise<SyncLog[]>;
80
80
  /**
81
81
  * Sync block data that must be queried for a single block (block, transactions, receipts, traces).
82
+ * @returns Closest-to-tip synced block.
82
83
  */
83
84
  syncBlockData(params: {
84
85
  interval: Interval;
@@ -120,48 +121,37 @@ export const createHistoricalSync = (
120
121
  // Helper functions for sync tasks
121
122
  ////////
122
123
 
123
- type EthGetLogsParams = {
124
- address: Address | Address[] | undefined;
125
- topic0?: LogTopic;
126
- topic1?: LogTopic;
127
- topic2?: LogTopic;
128
- topic3?: LogTopic;
129
- interval: Interval;
130
- };
131
-
132
124
  /**
133
125
  * Split "eth_getLogs" requests into ranges inferred from errors
134
126
  * and batch requests.
135
127
  */
136
128
  const syncLogsDynamic = async (
137
- { address, topic0, topic1, topic2, topic3, interval }: EthGetLogsParams,
129
+ params: Extract<RequestParameters, { method: "eth_getLogs" }>["params"][0],
138
130
  context?: Parameters<Rpc["request"]>[1],
139
131
  ): Promise<SyncLog[]> => {
132
+ const { address, topics } = params;
133
+
140
134
  const intervals = getChunks({
141
- interval,
135
+ interval: [
136
+ hexToNumber(params.fromBlock as Hex),
137
+ hexToNumber(params.toBlock as Hex),
138
+ ],
142
139
  maxChunkSize:
143
140
  args.chain.ethGetLogsBlockRange ??
144
141
  logsRequestMetadata.confirmedRange ??
145
142
  logsRequestMetadata.estimatedRange,
146
143
  });
147
144
 
148
- const topics = sanitizeLogTopics([
149
- topic0 ?? null,
150
- topic1 ?? null,
151
- topic2 ?? null,
152
- topic3 ?? null,
153
- ])!;
154
-
155
145
  const logs = await Promise.all(
156
- intervals.map((interval) =>
146
+ intervals.map(([fromBlock, toBlock]) =>
157
147
  eth_getLogs(
158
148
  args.rpc,
159
149
  [
160
150
  {
161
151
  address,
162
152
  topics,
163
- fromBlock: numberToHex(interval[0]),
164
- toBlock: numberToHex(interval[1]),
153
+ fromBlock: numberToHex(fromBlock),
154
+ toBlock: numberToHex(toBlock),
165
155
  },
166
156
  ],
167
157
  context,
@@ -177,8 +167,8 @@ export const createHistoricalSync = (
177
167
  {
178
168
  address,
179
169
  topics,
180
- fromBlock: toHex(interval[0]),
181
- toBlock: toHex(interval[1]),
170
+ fromBlock: toHex(fromBlock),
171
+ toBlock: toHex(toBlock),
182
172
  },
183
173
  ],
184
174
  error: error as RpcError,
@@ -205,7 +195,12 @@ export const createHistoricalSync = (
205
195
  };
206
196
 
207
197
  return syncLogsDynamic(
208
- { address, topic0, topic1, topic2, topic3, interval },
198
+ {
199
+ address,
200
+ topics,
201
+ fromBlock: numberToHex(fromBlock),
202
+ toBlock: numberToHex(toBlock),
203
+ },
209
204
  context,
210
205
  );
211
206
  }),
@@ -318,14 +313,15 @@ export const createHistoricalSync = (
318
313
  const logs = await syncLogsDynamic(
319
314
  {
320
315
  address: factory.address,
321
- topic0: factory.eventSelector,
322
- interval,
316
+ topics: [factory.eventSelector],
317
+ fromBlock: numberToHex(interval[0]),
318
+ toBlock: numberToHex(interval[1]),
323
319
  },
324
320
  context,
325
321
  );
326
322
 
327
323
  const childAddresses = new Map<Address, number>();
328
- const childAddressesRecord = args.childAddresses.get(factory.id)!;
324
+ const factoryChildAddresses = args.childAddresses.get(factory.id)!;
329
325
 
330
326
  const childAddressDecodeFailureIds = new Set<string>();
331
327
  let childAddressDecodeFailureCount = 0;
@@ -358,7 +354,7 @@ export const createHistoricalSync = (
358
354
  throw error;
359
355
  }
360
356
  }
361
- const existingBlockNumber = childAddressesRecord.get(address);
357
+ const existingBlockNumber = factoryChildAddresses.get(address);
362
358
  const newBlockNumber = hexToNumber(log.blockNumber);
363
359
 
364
360
  if (
@@ -366,7 +362,7 @@ export const createHistoricalSync = (
366
362
  existingBlockNumber > newBlockNumber
367
363
  ) {
368
364
  childAddresses.set(address, newBlockNumber);
369
- childAddressesRecord.set(address, newBlockNumber);
365
+ factoryChildAddresses.set(address, newBlockNumber);
370
366
  }
371
367
  }
372
368
  }
@@ -428,132 +424,17 @@ export const createHistoricalSync = (
428
424
  }),
429
425
  );
430
426
 
431
- const mergedEthGetLogsParams: Map<string, EthGetLogsParams> = new Map();
432
- const singleEthGetLogsParams: EthGetLogsParams[] = [];
433
-
434
- for (const { filter, interval } of requiredIntervals) {
435
- if (filter.type !== "log") continue;
436
-
437
- const hasAddress = filter.address !== undefined;
438
- const hasTopic1 = filter.topic1 !== undefined && filter.topic1 !== null;
439
- const hasTopic2 = filter.topic2 !== undefined && filter.topic2 !== null;
440
- const hasTopic3 = filter.topic3 !== undefined && filter.topic3 !== null;
441
-
442
- if (hasAddress === false || hasTopic1 || hasTopic2 || hasTopic3) {
443
- if (isAddressFactory(filter.address)) {
444
- const childAddresses = args.childAddresses.get(filter.address.id)!;
445
-
446
- if (childAddresses.size === 0) {
447
- continue;
448
- }
449
-
450
- singleEthGetLogsParams.push({
451
- address:
452
- childAddresses.size >=
453
- args.common.options.factoryAddressCountThreshold
454
- ? undefined
455
- : Array.from(childAddresses.keys()),
456
- topic0: filter.topic0,
457
- topic1: filter.topic1,
458
- topic2: filter.topic2,
459
- topic3: filter.topic3,
460
- interval,
461
- });
462
- } else {
463
- singleEthGetLogsParams.push({
464
- address: filter.address,
465
- topic0: filter.topic0,
466
- topic1: filter.topic1,
467
- topic2: filter.topic2,
468
- topic3: filter.topic3,
469
- interval,
470
- });
471
- }
472
-
473
- continue;
474
- }
475
-
476
- let addressKey: string;
477
- if (isAddressFactory(filter.address)) {
478
- addressKey = filter.address.id;
479
- } else if (Array.isArray(filter.address)) {
480
- addressKey = filter.address.join("_");
481
- } else {
482
- addressKey = filter.address as Address;
483
- }
484
-
485
- if (mergedEthGetLogsParams.has(addressKey) === false) {
486
- if (isAddressFactory(filter.address)) {
487
- const childAddresses = args.childAddresses.get(filter.address.id)!;
488
-
489
- if (childAddresses.size === 0) {
490
- continue;
491
- }
492
-
493
- mergedEthGetLogsParams.set(addressKey, {
494
- address:
495
- childAddresses.size >=
496
- args.common.options.factoryAddressCountThreshold
497
- ? undefined
498
- : Array.from(childAddresses.keys()),
499
- topic0: filter.topic0,
500
- topic1: filter.topic1,
501
- topic2: filter.topic2,
502
- topic3: filter.topic3,
503
- interval,
504
- });
505
- } else {
506
- mergedEthGetLogsParams.set(addressKey, {
507
- address: filter.address,
508
- topic0: filter.topic0,
509
- topic1: filter.topic1,
510
- topic2: filter.topic2,
511
- topic3: filter.topic3,
512
- interval,
513
- });
514
- }
515
- } else {
516
- const existingInterval =
517
- mergedEthGetLogsParams.get(addressKey)!.interval;
518
- const existingTopic0 = mergedEthGetLogsParams.get(addressKey)!
519
- .topic0 as Hex | Hex[];
520
-
521
- if (Array.isArray(existingTopic0)) {
522
- if (existingTopic0.includes(filter.topic0) === false) {
523
- mergedEthGetLogsParams.get(addressKey)!.topic0 = [
524
- ...existingTopic0,
525
- filter.topic0,
526
- ];
527
- }
528
- } else {
529
- if (existingTopic0 !== filter.topic0) {
530
- mergedEthGetLogsParams.get(addressKey)!.topic0 = [
531
- existingTopic0,
532
- filter.topic0,
533
- ];
534
- }
535
- }
536
-
537
- mergedEthGetLogsParams.get(addressKey)!.interval = intervalBounds([
538
- existingInterval,
539
- interval,
540
- ]);
541
- }
542
- }
543
-
544
- const ethGetLogsParams = dedupe(
545
- [
546
- ...singleEthGetLogsParams,
547
- ...Array.from(mergedEthGetLogsParams.values()),
548
- ],
549
- (params) => JSON.stringify(params),
427
+ const ethGetLogsRequests = mergeLogFiltersToRequests(
428
+ requiredIntervals,
429
+ args.childAddresses,
430
+ args.common.options.factoryAddressCountThreshold,
550
431
  );
551
432
 
552
433
  let logs: SyncLog[] = [];
553
434
 
554
435
  await Promise.all(
555
- ethGetLogsParams.map(async (params) => {
556
- const _logs = await syncLogsDynamic(params, context);
436
+ ethGetLogsRequests.map(async (request) => {
437
+ const _logs = await syncLogsDynamic(request.params[0], context);
557
438
  for (const log of _logs) {
558
439
  logs.push(log);
559
440
  }