ponder 0.18.0 → 0.18.2

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 (46) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/esm/indexing-store/index.js +8 -4
  3. package/dist/esm/indexing-store/index.js.map +1 -1
  4. package/dist/esm/indexing-store/utils.js +3 -1
  5. package/dist/esm/indexing-store/utils.js.map +1 -1
  6. package/dist/esm/rpc/actions.js +2 -16
  7. package/dist/esm/rpc/actions.js.map +1 -1
  8. package/dist/esm/runtime/filter.js +80 -32
  9. package/dist/esm/runtime/filter.js.map +1 -1
  10. package/dist/esm/sync-historical/in-memory.js +1 -2
  11. package/dist/esm/sync-historical/in-memory.js.map +1 -1
  12. package/dist/esm/sync-historical/index.js +1 -2
  13. package/dist/esm/sync-historical/index.js.map +1 -1
  14. package/dist/esm/sync-realtime/bloom.js +72 -64
  15. package/dist/esm/sync-realtime/bloom.js.map +1 -1
  16. package/dist/esm/sync-realtime/index.js +79 -50
  17. package/dist/esm/sync-realtime/index.js.map +1 -1
  18. package/dist/esm/utils/copy.js +77 -56
  19. package/dist/esm/utils/copy.js.map +1 -1
  20. package/dist/esm/utils/decodeEventLog.js +20 -6
  21. package/dist/esm/utils/decodeEventLog.js.map +1 -1
  22. package/dist/types/indexing-store/index.d.ts.map +1 -1
  23. package/dist/types/indexing-store/utils.d.ts.map +1 -1
  24. package/dist/types/rpc/actions.d.ts +2 -3
  25. package/dist/types/rpc/actions.d.ts.map +1 -1
  26. package/dist/types/runtime/filter.d.ts +24 -1
  27. package/dist/types/runtime/filter.d.ts.map +1 -1
  28. package/dist/types/sync-historical/in-memory.d.ts.map +1 -1
  29. package/dist/types/sync-historical/index.d.ts.map +1 -1
  30. package/dist/types/sync-realtime/bloom.d.ts +52 -8
  31. package/dist/types/sync-realtime/bloom.d.ts.map +1 -1
  32. package/dist/types/sync-realtime/index.d.ts.map +1 -1
  33. package/dist/types/utils/copy.d.ts +10 -2
  34. package/dist/types/utils/copy.d.ts.map +1 -1
  35. package/dist/types/utils/decodeEventLog.d.ts.map +1 -1
  36. package/package.json +5 -5
  37. package/src/indexing-store/index.ts +8 -4
  38. package/src/indexing-store/utils.ts +3 -1
  39. package/src/rpc/actions.ts +1 -21
  40. package/src/runtime/filter.ts +116 -52
  41. package/src/sync-historical/in-memory.ts +0 -2
  42. package/src/sync-historical/index.ts +0 -2
  43. package/src/sync-realtime/bloom.ts +129 -79
  44. package/src/sync-realtime/index.ts +114 -72
  45. package/src/utils/copy.ts +83 -64
  46. package/src/utils/decodeEventLog.ts +28 -6
@@ -1,13 +1,13 @@
1
- import { hexToNumber, numberToHex, zeroHash, } from "viem";
1
+ import { hexToBytes, hexToNumber, numberToHex, zeroHash, } from "viem";
2
2
  import { ShutdownError } from '../internal/errors.js';
3
3
  import { debug_traceBlockByHash, eth_getBlockByHash, eth_getBlockByNumber, eth_getLogs, eth_getTransactionReceipts, validateLogsAndBlock, validateReceiptsAndBlock, validateTracesAndBlock, validateTransactionsAndBlock, } from '../rpc/actions.js';
4
- import { getChildAddress, getFilterFactories, isAddressFactory, isAddressMatched, isBlockFilterMatched, isLogFactoryMatched, isLogFilterMatched, isTraceFilterMatched, isTransactionFilterMatched, isTransferFilterMatched, } from '../runtime/filter.js';
4
+ import { getChildAddress, getFilterFactories, isAddressFactory, isAddressMatched, isBlockFilterMatched, isBlockInFilter, isLogFactoryMatched, isLogFilterMatched, isTraceFilterMatched, isTransactionFilterMatched, isTransferFilterMatched, mergeLogFiltersToBlockRequest, } from '../runtime/filter.js';
5
5
  import { getFactoryFragmentId, getFactoryFragmentIds, } from '../runtime/fragments.js';
6
6
  import { isAsyncExecutionChain } from '../utils/finality.js';
7
7
  import { createLock } from '../utils/mutex.js';
8
8
  import { range } from '../utils/range.js';
9
9
  import { startClock } from '../utils/timer.js';
10
- import { isFilterInBloom, isInBloom, zeroLogsBloom } from "./bloom.js";
10
+ import { getFactoryBloom, getLogFilterBloom, isFactoryInBloom, isFilterInBloom, isInBloom, zeroLogsBloom, } from "./bloom.js";
11
11
  const MAX_LATEST_BLOCK_ATTEMPT_MS = 10 * 60 * 1000; // 10 minutes
12
12
  const MAX_QUEUED_BLOCKS = 50;
13
13
  export const createRealtimeSync = (args) => {
@@ -67,6 +67,8 @@ export const createRealtimeSync = (args) => {
67
67
  factoryFragmentIds.set(factory, getFactoryFragmentIds(factory));
68
68
  }
69
69
  }
70
+ const logFilterBlooms = logFilters.map(getLogFilterBloom);
71
+ const factoryBlooms = factories.map(getFactoryBloom);
70
72
  const getLatestUnfinalizedBlock = () => {
71
73
  if (unfinalizedBlocks.length === 0) {
72
74
  return finalizedBlock;
@@ -98,27 +100,41 @@ export const createRealtimeSync = (args) => {
98
100
  ////////
99
101
  // Logs
100
102
  ////////
101
- // "eth_getLogs" calls can be skipped if no filters match `newHeadBlock.logsBloom`.
102
103
  // Async-execution chains cannot reliably use blooms to filter or validate logs.
104
+ // A zero `logsBloom` is treated as missing.
103
105
  const isAsyncExecution = isAsyncExecutionChain(args.chain.id);
104
- const shouldRequestLogs = isAsyncExecution
105
- ? logFilters.length > 0
106
- : maybeBlockHeader.logsBloom === zeroLogsBloom ||
107
- logFilters.some((filter) => isFilterInBloom({ block: maybeBlockHeader, filter }));
106
+ const blockNumber = hexToNumber(maybeBlockHeader.number);
107
+ const bloom = hexToBytes(maybeBlockHeader.logsBloom);
108
+ const logsRequestFilter = mergeLogFiltersToBlockRequest({
109
+ logFilters: logFilters.filter((logFilter, i) => isBlockInFilter(logFilter, blockNumber) &&
110
+ (isAsyncExecution ||
111
+ maybeBlockHeader.logsBloom === zeroLogsBloom ||
112
+ isFilterInBloom({ bloom, filter: logFilterBlooms[i] }))),
113
+ factories: factories.filter((factory, i) => isBlockInFilter(factory, blockNumber) &&
114
+ (isAsyncExecution ||
115
+ maybeBlockHeader.logsBloom === zeroLogsBloom ||
116
+ isFactoryInBloom({ bloom, factory: factoryBlooms[i] }))),
117
+ });
118
+ const shouldRequestLogs = logsRequestFilter !== undefined;
108
119
  let logs = [];
109
120
  if (shouldRequestLogs) {
121
+ const logsRequestParams = {
122
+ blockHash: maybeBlockHeader.hash,
123
+ address: logsRequestFilter.address,
124
+ topics: logsRequestFilter.topics,
125
+ };
110
126
  if (block === undefined) {
111
127
  [block, logs] = await Promise.all([
112
128
  eth_getBlockByHash(args.rpc, [maybeBlockHeader.hash, true], context),
113
- eth_getLogs(args.rpc, [{ blockHash: maybeBlockHeader.hash }], context),
129
+ eth_getLogs(args.rpc, [logsRequestParams], context),
114
130
  ]);
115
131
  }
116
132
  else {
117
- logs = await eth_getLogs(args.rpc, [{ blockHash: block.hash }], context);
133
+ logs = await eth_getLogs(args.rpc, [logsRequestParams], context);
118
134
  }
119
135
  validateLogsAndBlock(logs, block, {
120
136
  method: "eth_getLogs",
121
- params: [{ blockHash: block.hash }],
137
+ params: [logsRequestParams],
122
138
  }, ethGetBlockMethod === "eth_getBlockByNumber"
123
139
  ? {
124
140
  method: "eth_getBlockByNumber",
@@ -127,44 +143,7 @@ export const createRealtimeSync = (args) => {
127
143
  : {
128
144
  method: "eth_getBlockByHash",
129
145
  params: [block.hash, true],
130
- }, isAsyncExecutionChain(args.chain.id));
131
- if (isAsyncExecutionChain(args.chain.id) === false) {
132
- // Note: Exact `logsBloom` validations were considered too strict to add to `validateLogsAndBlock`.
133
- let isInvalidLogsBloom = false;
134
- for (const log of logs) {
135
- if (isInBloom(block.logsBloom, log.address) === false) {
136
- isInvalidLogsBloom = true;
137
- }
138
- if (log.topics[0] &&
139
- isInBloom(block.logsBloom, log.topics[0]) === false) {
140
- isInvalidLogsBloom = true;
141
- }
142
- if (log.topics[1] &&
143
- isInBloom(block.logsBloom, log.topics[1]) === false) {
144
- isInvalidLogsBloom = true;
145
- }
146
- if (log.topics[2] &&
147
- isInBloom(block.logsBloom, log.topics[2]) === false) {
148
- isInvalidLogsBloom = true;
149
- }
150
- if (log.topics[3] &&
151
- isInBloom(block.logsBloom, log.topics[3]) === false) {
152
- isInvalidLogsBloom = true;
153
- }
154
- if (isInvalidLogsBloom) {
155
- args.common.logger.warn({
156
- msg: "Detected inconsistent RPC responses. Log not found in block.logsBloom.",
157
- action: "fetch_block_data",
158
- chain: args.chain.name,
159
- chain_id: args.chain.id,
160
- number: hexToNumber(block.number),
161
- hash: block.hash,
162
- logIndex: hexToNumber(log.logIndex),
163
- });
164
- break;
165
- }
166
- }
167
- }
146
+ });
168
147
  for (const log of logs) {
169
148
  if (log.transactionHash === zeroHash) {
170
149
  args.common.logger.warn({
@@ -179,7 +158,8 @@ export const createRealtimeSync = (args) => {
179
158
  }
180
159
  }
181
160
  }
182
- if (shouldRequestLogs === false && logFilters.length > 0) {
161
+ if (shouldRequestLogs === false &&
162
+ (logFilters.length > 0 || factories.length > 0)) {
183
163
  args.common.logger.trace({
184
164
  msg: "Skipped eth_getLogs request due to bloom filter result",
185
165
  action: "fetch_block_data",
@@ -222,12 +202,14 @@ export const createRealtimeSync = (args) => {
222
202
  ////////
223
203
  // Record `blockChildAddresses` that contain factory child addresses
224
204
  const blockChildAddresses = new Map();
205
+ const factoryLogs = new Set();
225
206
  const childAddressDecodeFailureIds = new Set();
226
207
  let childAddressDecodeFailureCount = 0;
227
208
  let childAddressDecodeSuccessCount = 0;
228
209
  for (const factory of factories) {
229
210
  for (const log of logs) {
230
211
  if (isLogFactoryMatched({ factory, log })) {
212
+ factoryLogs.add(log);
231
213
  let address;
232
214
  try {
233
215
  address = getChildAddress({ log, factory });
@@ -290,6 +272,53 @@ export const createRealtimeSync = (args) => {
290
272
  }
291
273
  return isMatched;
292
274
  });
275
+ if (isAsyncExecution === false && block !== undefined) {
276
+ // Note: Exact `logsBloom` validations were considered too strict to add to `validateLogsAndBlock`.
277
+ const logsBloom = hexToBytes(block.logsBloom);
278
+ const checkedInputs = new Set();
279
+ let isInvalidLogsBloom = false;
280
+ for (const log of [...factoryLogs, ...logs]) {
281
+ if (checkedInputs.has(log.address) === false &&
282
+ isInBloom(logsBloom, log.address) === false) {
283
+ isInvalidLogsBloom = true;
284
+ }
285
+ if (log.topics[0] &&
286
+ checkedInputs.has(log.topics[0]) === false &&
287
+ isInBloom(logsBloom, log.topics[0]) === false) {
288
+ isInvalidLogsBloom = true;
289
+ }
290
+ if (log.topics[1] &&
291
+ checkedInputs.has(log.topics[1]) === false &&
292
+ isInBloom(logsBloom, log.topics[1]) === false) {
293
+ isInvalidLogsBloom = true;
294
+ }
295
+ if (log.topics[2] &&
296
+ checkedInputs.has(log.topics[2]) === false &&
297
+ isInBloom(logsBloom, log.topics[2]) === false) {
298
+ isInvalidLogsBloom = true;
299
+ }
300
+ if (log.topics[3] &&
301
+ checkedInputs.has(log.topics[3]) === false &&
302
+ isInBloom(logsBloom, log.topics[3]) === false) {
303
+ isInvalidLogsBloom = true;
304
+ }
305
+ if (isInvalidLogsBloom) {
306
+ args.common.logger.warn({
307
+ msg: "Detected inconsistent RPC responses. Log not found in block.logsBloom.",
308
+ action: "fetch_block_data",
309
+ chain: args.chain.name,
310
+ chain_id: args.chain.id,
311
+ number: hexToNumber(block.number),
312
+ hash: block.hash,
313
+ logIndex: hexToNumber(log.logIndex),
314
+ });
315
+ break;
316
+ }
317
+ checkedInputs.add(log.address);
318
+ for (const topic of log.topics)
319
+ checkedInputs.add(topic);
320
+ }
321
+ }
293
322
  // Initial weak trace filtering before full filtering with factory addresses in handleBlock
294
323
  traces = traces.filter((trace) => {
295
324
  let isMatched = false;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync-realtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync-realtime/index.ts"],"names":[],"mappings":"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"}
@@ -3,66 +3,87 @@ import util from "node:util";
3
3
  * Symbol used to mark objects that are copied on write.
4
4
  */
5
5
  export const COPY_ON_WRITE = Symbol.for("ponder:copyOnWrite");
6
- const copyOnWriteCopies = new WeakMap();
7
- function inspectCopyOnWrite() {
8
- return copyOnWriteCopies.get(this) ?? this[COPY_ON_WRITE] ?? this;
6
+ /**
7
+ * Target of a copy-on-write proxy.
8
+ *
9
+ * Note: The handler is shared by all proxies, so the state of each proxy
10
+ * is stored in its target.
11
+ */
12
+ class CopyOnWriteTarget {
13
+ constructor(obj) {
14
+ Object.defineProperty(this, "obj", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: void 0
19
+ });
20
+ Object.defineProperty(this, "copiedObject", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: void 0
25
+ });
26
+ this.obj = obj;
27
+ this.copiedObject = undefined;
28
+ }
29
+ // Note: `this` is the proxy when called by `util.inspect`.
30
+ [util.inspect.custom]() {
31
+ // @ts-expect-error
32
+ return this[COPY_ON_WRITE] ?? this.copiedObject ?? this.obj;
33
+ }
9
34
  }
35
+ const getCopiedObject = (target) => {
36
+ if (target.copiedObject === undefined) {
37
+ target.copiedObject = structuredClone(target.obj);
38
+ }
39
+ return target.copiedObject;
40
+ };
41
+ const copyOnWriteHandler = {
42
+ get(target, prop, receiver) {
43
+ if (prop === COPY_ON_WRITE) {
44
+ return target.copiedObject ?? target.obj;
45
+ }
46
+ let result = Reflect.get(target.copiedObject ?? target.obj, prop, receiver);
47
+ if (typeof result === "object" &&
48
+ result !== null &&
49
+ target.copiedObject === undefined) {
50
+ result = Reflect.get(getCopiedObject(target), prop, receiver);
51
+ }
52
+ return result;
53
+ },
54
+ set(target, prop, newValue, receiver) {
55
+ return Reflect.set(getCopiedObject(target), prop, newValue, receiver);
56
+ },
57
+ deleteProperty(target, prop) {
58
+ return Reflect.deleteProperty(getCopiedObject(target), prop);
59
+ },
60
+ defineProperty(target, prop, descriptor) {
61
+ return Reflect.defineProperty(getCopiedObject(target), prop, descriptor);
62
+ },
63
+ ownKeys(target) {
64
+ return Reflect.ownKeys(target.copiedObject ?? target.obj);
65
+ },
66
+ has(target, prop) {
67
+ return Reflect.has(target.copiedObject ?? target.obj, prop);
68
+ },
69
+ getOwnPropertyDescriptor(target, prop) {
70
+ return Reflect.getOwnPropertyDescriptor(target.copiedObject ?? target.obj, prop);
71
+ },
72
+ getPrototypeOf(target) {
73
+ return Reflect.getPrototypeOf(target.copiedObject ?? target.obj);
74
+ },
75
+ };
10
76
  /**
11
- * Create a copy-on-write proxy for an object.
77
+ * Create a copy-on-write proxy for a plain object.
78
+ *
79
+ * @dev Arrays and other exotic objects are not supported. The proxy target
80
+ * is a `CopyOnWriteTarget`, not `obj`, so the proxy invariants break for
81
+ * non-configurable properties such as `Array.length`:
82
+ * `Object.keys()` and spread throw a `TypeError`, and `Array.isArray()`
83
+ * returns `false`.
12
84
  */
13
85
  export const copyOnWrite = (obj) => {
14
- let copiedObject;
15
- Object.defineProperty(obj, util.inspect.custom, {
16
- value: inspectCopyOnWrite,
17
- configurable: true,
18
- });
19
- const proxy = new Proxy(obj, {
20
- get(target, prop, receiver) {
21
- if (prop === COPY_ON_WRITE) {
22
- return copiedObject ?? target;
23
- }
24
- let result = Reflect.get(copiedObject ?? target, prop, receiver);
25
- if (typeof result === "object" &&
26
- result !== null &&
27
- copiedObject === undefined) {
28
- copiedObject = structuredClone(target);
29
- copyOnWriteCopies.set(proxy, copiedObject);
30
- result = Reflect.get(copiedObject, prop, receiver);
31
- }
32
- return result;
33
- },
34
- set(target, prop, newValue, receiver) {
35
- if (copiedObject === undefined) {
36
- copiedObject = structuredClone(target);
37
- copyOnWriteCopies.set(proxy, copiedObject);
38
- }
39
- return Reflect.set(copiedObject, prop, newValue, receiver);
40
- },
41
- deleteProperty(target, prop) {
42
- if (copiedObject === undefined) {
43
- copiedObject = structuredClone(target);
44
- copyOnWriteCopies.set(proxy, copiedObject);
45
- }
46
- return Reflect.deleteProperty(copiedObject, prop);
47
- },
48
- defineProperty(target, prop, descriptor) {
49
- if (copiedObject === undefined) {
50
- copiedObject = structuredClone(target);
51
- copyOnWriteCopies.set(proxy, copiedObject);
52
- }
53
- return Reflect.defineProperty(copiedObject, prop, descriptor);
54
- },
55
- ownKeys(target) {
56
- return Reflect.ownKeys(copiedObject ?? target);
57
- },
58
- has(target, prop) {
59
- return Reflect.has(copiedObject ?? target, prop);
60
- },
61
- getOwnPropertyDescriptor(target, prop) {
62
- return Reflect.getOwnPropertyDescriptor(copiedObject ?? target, prop);
63
- },
64
- });
65
- return proxy;
86
+ return new Proxy(new CopyOnWriteTarget(obj), copyOnWriteHandler);
66
87
  };
67
88
  /**
68
89
  * Create a deep copy of an object.
@@ -1 +1 @@
1
- {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/utils/copy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copy.js","sourceRoot":"","sources":["../../../src/utils/copy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,23 @@
1
1
  import { DecodeLogDataMismatch, DecodeLogTopicsMismatch, } from "viem";
2
2
  import { decodeAbiParameter, decodeAbiParameters, } from "./decodeAbiParameters.js";
3
3
  import { toLowerCase } from "./lowercase.js";
4
+ /** Inputs of each `abiItem`, so that they aren't recomputed for every log. */
5
+ const inputsCache = new WeakMap();
6
+ const getInputs = (abiItem) => {
7
+ let result = inputsCache.get(abiItem);
8
+ if (result === undefined) {
9
+ const { inputs } = abiItem;
10
+ result = {
11
+ isUnnamed: inputs?.some((x) => !("name" in x && x.name)),
12
+ indexedInputs: inputs
13
+ .map((x, i) => [x, i])
14
+ .filter(([x]) => "indexed" in x && x.indexed),
15
+ nonIndexedInputs: inputs.filter((x) => !("indexed" in x && x.indexed)),
16
+ };
17
+ inputsCache.set(abiItem, result);
18
+ }
19
+ return result;
20
+ };
4
21
  /**
5
22
  * Decode an event log.
6
23
  *
@@ -8,12 +25,9 @@ import { toLowerCase } from "./lowercase.js";
8
25
  */
9
26
  export function decodeEventLog({ abiItem, topics, data, }) {
10
27
  const { inputs } = abiItem;
11
- const isUnnamed = inputs?.some((x) => !("name" in x && x.name));
28
+ const { isUnnamed, indexedInputs, nonIndexedInputs } = getInputs(abiItem);
12
29
  const args = isUnnamed ? [] : {};
13
30
  // Decode topics (indexed args).
14
- const indexedInputs = inputs
15
- .map((x, i) => [x, i])
16
- .filter(([x]) => "indexed" in x && x.indexed);
17
31
  for (let i = 0; i < indexedInputs.length; i++) {
18
32
  const [param, argIndex] = indexedInputs[i];
19
33
  const topic = topics[i + 1];
@@ -29,7 +43,6 @@ export function decodeEventLog({ abiItem, topics, data, }) {
29
43
  });
30
44
  }
31
45
  // Decode data (non-indexed args).
32
- const nonIndexedInputs = inputs.filter((x) => !("indexed" in x && x.indexed));
33
46
  if (nonIndexedInputs.length > 0) {
34
47
  if (data && data !== "0x") {
35
48
  const out = [];
@@ -60,7 +73,8 @@ export function decodeEventLog({ abiItem, topics, data, }) {
60
73
  });
61
74
  }
62
75
  }
63
- return Object.values(args).length > 0 ? args : undefined;
76
+ // Note: Every input sets a value in `args`.
77
+ return inputs.length > 0 ? args : undefined;
64
78
  }
65
79
  const ARRAY_REGEX = /^(.*)\[(\d+)?\]$/;
66
80
  function decodeTopic({ param, value }) {
@@ -1 +1 @@
1
- {"version":3,"file":"decodeEventLog.js","sourceRoot":"","sources":["../../../src/utils/decodeEventLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EACrB,uBAAuB,GAExB,MAAM,MAAM,CAAC;AACd,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,MAAM,EACN,IAAI,GAKL;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,SAAS,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtC,gCAAgC;IAChC,MAAM,aAAa,GAAG,MAAM;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAU,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,uBAAuB,CAAC;gBAChC,OAAO;gBACP,KAAK,EAAE,KAA4C;aACpD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,WAAW,CAAC;YAChE,KAAK;YACL,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,EAA4D,CAAC;YACzE,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,EAAE;gBAC1C,GAAG;gBACH,aAAa,EAAE,WAAW;aAC3B,CAAC,CAAC;YACH,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACvC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACnC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAE,CAAC,IAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;gBACD,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,OAAO;gBACP,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,gBAAgB;gBACxB,IAAI,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAEvC,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAuC;IACxE,IACE,KAAK,CAAC,IAAI,KAAK,QAAQ;QACvB,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,KAAK,CAAC,IAAI,KAAK,OAAO;QACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"decodeEventLog.js","sourceRoot":"","sources":["../../../src/utils/decodeEventLog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/indexing-store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAOX,KAAK,KAAK,EACX,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAYnD,OAAO,KAAK,EACV,oBAAoB,EACpB,MAAM,EACN,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAMxC,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACf,EAAE,EAAE,EAAE,CAAC;IACP,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,UACrB,KAAK,OACP,MAAM,QACL,GAAG,SACF,IAAI,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,SAetC,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,UACrB,KAAK,UACJ,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,SAchD,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,KAAK,UACJ,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,OAC1C,MAAM,YACD,MAAM,SASjB,CAAC;AAEF,eAAO,MAAM,mBAAmB,uFAM7B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,KAAK,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,aAyiBH,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/indexing-store/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAOX,KAAK,KAAK,EACX,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAYnD,OAAO,KAAK,EACV,oBAAoB,EACpB,MAAM,EACN,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAMxC,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACf,EAAE,EAAE,EAAE,CAAC;IACP,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,UACrB,KAAK,OACP,MAAM,QACL,GAAG,SACF,IAAI,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,SAetC,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,UACrB,KAAK,UACJ,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,SAchD,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,KAAK,UACJ,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,OAC1C,MAAM,YACD,MAAM,SASjB,CAAC;AAEF,eAAO,MAAM,mBAAmB,uFAM7B;IACD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,KAAK,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,aA6iBH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/indexing-store/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EAIX,KAAK,GAAG,EAER,KAAK,KAAK,EACX,MAAM,aAAa,CAAC;AAwBrB;;;GAGG;AACH,eAAO,MAAM,aAAa,WAAY,MAAM,YAE3C,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,aAAa,WAAY,MAAM,YAAY,OAAO,YAW9D,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,KAAK,EAAE,yMAYjD,CAAC;AAEF,eAAO,MAAM,eAAe,WAClB,MAAM,SACP,OAAO,YACJ,OAAO,KAChB,OAuCF,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,KAAK,OACP;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,YACrB,OAAO;;CAyBlB,CAAC;AAEF,eAAO,MAAM,kBAAkB,UACtB,KAAK,OACP;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;;CAShC,CAAC;AAEF,eAAO,MAAM,WAAW,UACf,KAAK,OACP,MAAM,SACJ,IAAI,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,KACpC,MAkBF,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,UAAW,KAAK,OAAO,MAAM,KAAG,IAAI,OAAO,CASxE,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/indexing-store/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EAIX,KAAK,GAAG,EAER,KAAK,KAAK,EACX,MAAM,aAAa,CAAC;AAwBrB;;;GAGG;AACH,eAAO,MAAM,aAAa,WAAY,MAAM,YAE3C,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,aAAa,WAAY,MAAM,YAAY,OAAO,YAW9D,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,KAAK,EAAE,yMAYjD,CAAC;AAEF,eAAO,MAAM,eAAe,WAClB,MAAM,SACP,OAAO,YACJ,OAAO,KAChB,OAuCF,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,KAAK,OACP;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,YACrB,OAAO;;CAyBlB,CAAC;AAEF,eAAO,MAAM,kBAAkB,UACtB,KAAK,OACP;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;;CAWhC,CAAC;AAEF,eAAO,MAAM,WAAW,UACf,KAAK,OACP,MAAM,SACJ,IAAI,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,KACpC,MAkBF,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,UAAW,KAAK,OAAO,MAAM,KAAG,IAAI,OAAO,CASxE,CAAC"}
@@ -2,6 +2,7 @@ import { type GetLogsRetryHelperParameters } from "@ponder/utils";
2
2
  import { type Hash } from "viem";
3
3
  import type { LightBlock, SyncBlock, SyncBlockHeader, SyncLog, SyncTrace, SyncTransaction, SyncTransactionReceipt } from '../internal/types.js';
4
4
  import type { RequestParameters, Rpc } from './index.js';
5
+ export declare const ADDRESS_CHUNK_SIZE = 50;
5
6
  /**
6
7
  * Helper function for "eth_getBlockByNumber" request.
7
8
  */
@@ -135,14 +136,12 @@ export declare const validateTransactionsAndBlock: (block: SyncBlock, request: E
135
136
  * Validate that the logs are consistent with the block.
136
137
  *
137
138
  * @dev Allows `log.transactionHash` to be `zeroHash`.
138
- * @dev Allows `block.logsBloom` to be `zeroLogsBloom`.
139
- * @dev Skips bloom validation on async-execution chains.
140
139
  */
141
140
  export declare const validateLogsAndBlock: (logs: SyncLog[], block: SyncBlock, logsRequest: Extract<RequestParameters, {
142
141
  method: "eth_getLogs";
143
142
  }>, blockRequest: Extract<RequestParameters, {
144
143
  method: "eth_getBlockByNumber" | "eth_getBlockByHash";
145
- }>, isAsyncExecutionChain: boolean) => void;
144
+ }>) => void;
146
145
  /**
147
146
  * Validate that the traces are consistent with the block.
148
147
  */