ponder 0.17.5 → 0.17.7

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.
@@ -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,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAa1C,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,cA88BF,CAAC"}
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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync-store/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync-store/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ponder",
3
- "version": "0.17.5",
3
+ "version": "0.17.7",
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.5"
105
+ "@ponder/client": "0.17.7"
106
106
  },
107
107
  "engines": {
108
108
  "node": ">=22"
@@ -77,6 +77,34 @@ const flattenSources = <
77
77
  );
78
78
  };
79
79
 
80
+ const validateAddresses = ({
81
+ sourceName,
82
+ addresses,
83
+ }: {
84
+ sourceName: string;
85
+ addresses: Address | readonly Address[];
86
+ }) => {
87
+ if (Array.isArray(addresses) && addresses.length === 0) {
88
+ throw new Error(
89
+ `Validation failed: Invalid address for '${sourceName}'. Got an empty array, expected at least one address.`,
90
+ );
91
+ }
92
+
93
+ for (const address of Array.isArray(addresses) ? addresses : [addresses]) {
94
+ if (!address.startsWith("0x"))
95
+ throw new Error(
96
+ `Validation failed: Invalid prefix for address '${address}'. Got '${address.slice(
97
+ 0,
98
+ 2,
99
+ )}', expected '0x'.`,
100
+ );
101
+ if (address.length !== 42)
102
+ throw new Error(
103
+ `Validation failed: Invalid length for address '${address}'. Got ${address.length}, expected 42 characters.`,
104
+ );
105
+ }
106
+ };
107
+
80
108
  export async function buildIndexingFunctions({
81
109
  common,
82
110
  config,
@@ -407,6 +435,12 @@ export async function buildIndexingFunctions({
407
435
  Array.isArray(resolvedAddress) === false
408
436
  ) {
409
437
  const factoryAddress = resolvedAddress as Factory;
438
+ if (factoryAddress.address !== undefined) {
439
+ validateAddresses({
440
+ sourceName: source.name,
441
+ addresses: factoryAddress.address,
442
+ });
443
+ }
410
444
  const factoryFromBlock =
411
445
  (await resolveBlockNumber(factoryAddress.startBlock, chain)) ??
412
446
  fromBlock;
@@ -433,21 +467,10 @@ export async function buildIndexingFunctions({
433
467
  address = logFactory;
434
468
  } else {
435
469
  if (resolvedAddress !== undefined) {
436
- for (const address of Array.isArray(resolvedAddress)
437
- ? resolvedAddress
438
- : [resolvedAddress as Address]) {
439
- if (!address!.startsWith("0x"))
440
- throw new Error(
441
- `Validation failed: Invalid prefix for address '${address}'. Got '${address!.slice(
442
- 0,
443
- 2,
444
- )}', expected '0x'.`,
445
- );
446
- if (address!.length !== 42)
447
- throw new Error(
448
- `Validation failed: Invalid length for address '${address}'. Got ${address!.length}, expected 42 characters.`,
449
- );
450
- }
470
+ validateAddresses({
471
+ sourceName: source.name,
472
+ addresses: resolvedAddress as Address | readonly Address[],
473
+ });
451
474
  }
452
475
 
453
476
  const validatedAddress = Array.isArray(resolvedAddress)
@@ -708,6 +731,12 @@ export async function buildIndexingFunctions({
708
731
  typeof resolvedAddress === "object" &&
709
732
  !Array.isArray(resolvedAddress)
710
733
  ) {
734
+ if (resolvedAddress.address !== undefined) {
735
+ validateAddresses({
736
+ sourceName: source.name,
737
+ addresses: resolvedAddress.address,
738
+ });
739
+ }
711
740
  const factoryFromBlock =
712
741
  (await resolveBlockNumber(resolvedAddress.startBlock, chain)) ??
713
742
  fromBlock;
@@ -726,21 +755,10 @@ export async function buildIndexingFunctions({
726
755
 
727
756
  address = logFactory;
728
757
  } else {
729
- for (const address of Array.isArray(resolvedAddress)
730
- ? resolvedAddress
731
- : [resolvedAddress]) {
732
- if (!address!.startsWith("0x"))
733
- throw new Error(
734
- `Validation failed: Invalid prefix for address '${address}'. Got '${address!.slice(
735
- 0,
736
- 2,
737
- )}', expected '0x'.`,
738
- );
739
- if (address!.length !== 42)
740
- throw new Error(
741
- `Validation failed: Invalid length for address '${address}'. Got ${address!.length}, expected 42 characters.`,
742
- );
743
- }
758
+ validateAddresses({
759
+ sourceName: source.name,
760
+ addresses: resolvedAddress as Address | readonly Address[],
761
+ });
744
762
 
745
763
  const validatedAddress = Array.isArray(resolvedAddress)
746
764
  ? dedupe(resolvedAddress).map((r) => toLowerCase(r))
@@ -194,7 +194,7 @@ export const client = ({
194
194
  );
195
195
  driver.instance.query(`LISTEN "${channel}"`);
196
196
 
197
- driver.instance.onNotification((_, payload) => {
197
+ const unsubscribe = driver.instance.onNotification((_, payload) => {
198
198
  const tables = JSON.parse(payload!) as string[];
199
199
  tables.push("_ponder_checkpoint");
200
200
  let invalidQueryCount = 0;
@@ -232,6 +232,8 @@ export const client = ({
232
232
  });
233
233
  }
234
234
  });
235
+
236
+ globalThis.PONDER_COMMON.apiShutdown.add(unsubscribe);
235
237
  } else {
236
238
  (async () => {
237
239
  let client: pg.PoolClient | undefined;
@@ -246,6 +248,7 @@ export const client = ({
246
248
 
247
249
  if (hasRegisteredShutdown === false) {
248
250
  globalThis.PONDER_COMMON.apiShutdown.add(() => {
251
+ client?.removeAllListeners("notification");
249
252
  client?.release();
250
253
  client = undefined;
251
254
  });
@@ -20,8 +20,11 @@ import type {
20
20
  } from "@/internal/types.js";
21
21
  import type { RequestParameters, Rpc } from "@/rpc/index.js";
22
22
  import { zeroLogsBloom } from "@/sync-realtime/bloom.js";
23
+ import { chunk } from "@/utils/chunk.js";
23
24
  import { PG_BIGINT_MAX, PG_INTEGER_MAX } from "@/utils/pg.js";
24
25
 
26
+ const ADDRESS_CHUNK_SIZE = 50;
27
+
25
28
  /**
26
29
  * Helper function for "eth_getBlockByNumber" request.
27
30
  */
@@ -93,13 +96,29 @@ export const eth_getLogs = async (
93
96
  params,
94
97
  };
95
98
 
96
- return rpc.request(request, context).then((logs) => {
97
- if (logs === null || logs === undefined) {
98
- throw new Error("Received invalid empty eth_getLogs response.");
99
- }
99
+ const requests: Extract<RequestParameters, { method: "eth_getLogs" }>[] =
100
+ Array.isArray(params[0].address)
101
+ ? chunk(params[0].address, ADDRESS_CHUNK_SIZE).map(
102
+ (address) =>
103
+ ({
104
+ method: "eth_getLogs",
105
+ params: [{ ...params[0], address }],
106
+ }) as Extract<RequestParameters, { method: "eth_getLogs" }>,
107
+ )
108
+ : [request];
109
+
110
+ const responses = await Promise.all(
111
+ requests.map(async (request) => {
112
+ const logs = await rpc.request(request, context);
113
+ if (logs === null || logs === undefined) {
114
+ throw new Error("Received invalid empty eth_getLogs response.");
115
+ }
116
+
117
+ return logs as SyncLog[];
118
+ }),
119
+ );
100
120
 
101
- return standardizeLogs(logs as SyncLog[], request);
102
- });
121
+ return standardizeLogs(responses.flat(), request);
103
122
  };
104
123
 
105
124
  /**
package/src/rpc/index.ts CHANGED
@@ -14,6 +14,7 @@ import {
14
14
  hexToNumber,
15
15
  isHex,
16
16
  JsonRpcVersionUnsupportedError,
17
+ type LogTopic,
17
18
  MethodNotFoundRpcError,
18
19
  MethodNotSupportedRpcError,
19
20
  ParseRpcError,
@@ -57,6 +58,17 @@ export type RequestReturnType<
57
58
  method extends EIP1193Parameters<RpcSchema>["method"],
58
59
  > = Extract<RpcSchema[number], { Method: method }>["ReturnType"];
59
60
 
61
+ export const sanitizeLogTopics = <
62
+ topics extends readonly LogTopic[] | LogTopic[],
63
+ >(
64
+ topics: topics,
65
+ ) => {
66
+ const sanitizedTopics = [...topics];
67
+ while (sanitizedTopics.at(-1) === null) sanitizedTopics.pop();
68
+
69
+ return sanitizedTopics as topics;
70
+ };
71
+
60
72
  export type Rpc = {
61
73
  hostnames: string[];
62
74
  request: <TParameters extends RequestParameters>(
@@ -37,7 +37,7 @@ import {
37
37
  validateTracesAndBlock,
38
38
  validateTransactionsAndBlock,
39
39
  } from "@/rpc/actions.js";
40
- import type { Rpc } from "@/rpc/index.js";
40
+ import { type Rpc, sanitizeLogTopics } from "@/rpc/index.js";
41
41
  import {
42
42
  getChildAddress,
43
43
  isAddressFactory,
@@ -145,120 +145,72 @@ export const createHistoricalSync = (
145
145
  logsRequestMetadata.estimatedRange,
146
146
  });
147
147
 
148
- const topics = [
148
+ const topics = sanitizeLogTopics([
149
149
  topic0 ?? null,
150
150
  topic1 ?? null,
151
151
  topic2 ?? null,
152
152
  topic3 ?? null,
153
- ];
154
-
155
- // Note: the `topics` field is very fragile for many rpc providers, and
156
- // cannot handle extra "null" topics
157
-
158
- if (topics[3] === null) {
159
- topics.pop();
160
- if (topics[2] === null) {
161
- topics.pop();
162
- if (topics[1] === null) {
163
- topics.pop();
164
- if (topics[0] === null) {
165
- topics.pop();
166
- }
167
- }
168
- }
169
- }
170
-
171
- // Batch large arrays of addresses, handling arrays that are empty
172
-
173
- let addressBatches: (Address | Address[] | undefined)[];
174
-
175
- if (address === undefined) {
176
- // no address (match all)
177
- addressBatches = [undefined];
178
- } else if (typeof address === "string") {
179
- // single address
180
- addressBatches = [address];
181
- } else if (address.length === 0) {
182
- // no address (factory with no children)
183
- return [];
184
- } else {
185
- // many addresses
186
- // Note: it is assumed that `address` is deduplicated
187
- addressBatches = [];
188
- for (let i = 0; i < address.length; i += 50) {
189
- addressBatches.push(address.slice(i, i + 50));
190
- }
191
- }
153
+ ])!;
192
154
 
193
155
  const logs = await Promise.all(
194
- intervals.flatMap((interval) =>
195
- addressBatches.map((address) =>
196
- eth_getLogs(
197
- args.rpc,
198
- [
156
+ intervals.map((interval) =>
157
+ eth_getLogs(
158
+ args.rpc,
159
+ [
160
+ {
161
+ address,
162
+ topics,
163
+ fromBlock: numberToHex(interval[0]),
164
+ toBlock: numberToHex(interval[1]),
165
+ },
166
+ ],
167
+ context,
168
+ ).catch((error) => {
169
+ // Note: skip eth_getLogs range retry logic if the chain
170
+ // has a custom block range.
171
+ if (args.chain.ethGetLogsBlockRange !== undefined) {
172
+ throw error;
173
+ }
174
+
175
+ const getLogsErrorResponse = getLogsRetryHelper({
176
+ params: [
199
177
  {
200
178
  address,
201
179
  topics,
202
- fromBlock: numberToHex(interval[0]),
203
- toBlock: numberToHex(interval[1]),
180
+ fromBlock: toHex(interval[0]),
181
+ toBlock: toHex(interval[1]),
204
182
  },
205
183
  ],
206
- context,
207
- ).catch((error) => {
208
- // Note: skip eth_getLogs range retry logic if the chain
209
- // has a custom block range.
210
- if (args.chain.ethGetLogsBlockRange !== undefined) {
211
- throw error;
212
- }
213
-
214
- const getLogsErrorResponse = getLogsRetryHelper({
215
- params: [
216
- {
217
- address,
218
- topics,
219
- fromBlock: toHex(interval[0]),
220
- toBlock: toHex(interval[1]),
221
- },
222
- ],
223
- error: error as RpcError,
224
- });
184
+ error: error as RpcError,
185
+ });
225
186
 
226
- if (getLogsErrorResponse.shouldRetry === false) throw error;
187
+ if (getLogsErrorResponse.shouldRetry === false) throw error;
227
188
 
228
- const range =
229
- hexToNumber(getLogsErrorResponse.ranges[0]!.toBlock) -
230
- hexToNumber(getLogsErrorResponse.ranges[0]!.fromBlock);
189
+ const range =
190
+ hexToNumber(getLogsErrorResponse.ranges[0]!.toBlock) -
191
+ hexToNumber(getLogsErrorResponse.ranges[0]!.fromBlock);
231
192
 
232
- args.common.logger.debug({
233
- msg: "Updated eth_getLogs range",
234
- chain: args.chain.name,
235
- chain_id: args.chain.id,
236
- range,
237
- });
193
+ args.common.logger.debug({
194
+ msg: "Updated eth_getLogs range",
195
+ chain: args.chain.name,
196
+ chain_id: args.chain.id,
197
+ range,
198
+ });
238
199
 
239
- logsRequestMetadata = {
240
- estimatedRange: range,
241
- confirmedRange: getLogsErrorResponse.isSuggestedRange
242
- ? range
243
- : undefined,
244
- };
200
+ logsRequestMetadata = {
201
+ estimatedRange: range,
202
+ confirmedRange: getLogsErrorResponse.isSuggestedRange
203
+ ? range
204
+ : undefined,
205
+ };
245
206
 
246
- return syncLogsDynamic(
247
- { address, topic0, topic1, topic2, topic3, interval },
248
- context,
249
- );
250
- }),
251
- ),
207
+ return syncLogsDynamic(
208
+ { address, topic0, topic1, topic2, topic3, interval },
209
+ context,
210
+ );
211
+ }),
252
212
  ),
253
- ).then((logs) => {
254
- const result: SyncLog[] = [];
255
- for (const _logs of logs) {
256
- for (const log of _logs) {
257
- result.push(log);
258
- }
259
- }
260
- return result;
261
- });
213
+ ).then((logs) => logs.flat());
262
214
 
263
215
  /**
264
216
  * Dynamically increase the range used in "eth_getLogs" if an
@@ -483,13 +435,18 @@ export const createHistoricalSync = (
483
435
  if (filter.type !== "log") continue;
484
436
 
485
437
  const hasAddress = filter.address !== undefined;
486
- const hasTopic1 = filter.topic1 !== undefined;
487
- const hasTopic2 = filter.topic2 !== undefined;
488
- const hasTopic3 = filter.topic3 !== 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;
489
441
 
490
442
  if (hasAddress === false || hasTopic1 || hasTopic2 || hasTopic3) {
491
443
  if (isAddressFactory(filter.address)) {
492
444
  const childAddresses = args.childAddresses.get(filter.address.id)!;
445
+
446
+ if (childAddresses.size === 0) {
447
+ continue;
448
+ }
449
+
493
450
  singleEthGetLogsParams.push({
494
451
  address:
495
452
  childAddresses.size >=
@@ -528,6 +485,11 @@ export const createHistoricalSync = (
528
485
  if (mergedEthGetLogsParams.has(addressKey) === false) {
529
486
  if (isAddressFactory(filter.address)) {
530
487
  const childAddresses = args.childAddresses.get(filter.address.id)!;
488
+
489
+ if (childAddresses.size === 0) {
490
+ continue;
491
+ }
492
+
531
493
  mergedEthGetLogsParams.set(addressKey, {
532
494
  address:
533
495
  childAddresses.size >=
@@ -351,11 +351,15 @@ export const createSyncStore = ({
351
351
  const batchSize = 200;
352
352
 
353
353
  for (let i = 0; i < queries.length; i += batchSize) {
354
+ const batch = queries.slice(i, i + batchSize);
354
355
  const _rows = await qb.wrap(
355
356
  { label: "select_intervals" },
356
- () =>
357
+ () => {
358
+ if (batch.length === 1) return batch[0]!.execute();
359
+
357
360
  // @ts-expect-error
358
- unionAll(...queries.slice(i, i + batchSize)),
361
+ return unionAll(...batch);
362
+ },
359
363
  context,
360
364
  );
361
365