ponder 0.17.0 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # ponder
2
2
 
3
+ ## 0.17.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2338](https://github.com/ponder-sh/ponder/pull/2338) [`1aedab8`](https://github.com/ponder-sh/ponder/commit/1aedab815eb4e304b9c0a928e014307c5d71e333) Thanks [@kyscott18](https://github.com/kyscott18)! - Improved sync performance by removing redundant block range constraints from event queries.
8
+
3
9
  ## 0.17.0
4
10
 
5
11
  ### Minor Changes
@@ -351,15 +351,26 @@ export const createSyncStore = ({ common, qb, }) => {
351
351
  }
352
352
  },
353
353
  getEventData: async ({ filters, fromBlock, toBlock, chainId, limit }, context) => {
354
- const logFilters = filters.filter((f) => f.type === "log");
355
- const transactionFilters = filters.filter((f) => f.type === "transaction");
356
- const traceFilters = filters.filter((f) => f.type === "trace");
357
- const transferFilters = filters.filter((f) => f.type === "transfer");
354
+ const activeFilters = filters.filter((filter) => isFilterInBlockRange({ filter, fromBlock, toBlock }));
355
+ const logFilters = activeFilters.filter((f) => f.type === "log");
356
+ const transactionFilters = activeFilters.filter((f) => f.type === "transaction");
357
+ const traceFilters = activeFilters.filter((f) => f.type === "trace");
358
+ const transferFilters = activeFilters.filter((f) => f.type === "transfer");
359
+ const logBlockRange = getFilterBlockRange({
360
+ filters: logFilters,
361
+ fromBlock,
362
+ toBlock,
363
+ });
364
+ const traceBlockRange = getFilterBlockRange({
365
+ filters: [...traceFilters, ...transferFilters],
366
+ fromBlock,
367
+ toBlock,
368
+ });
358
369
  const shouldQueryBlocks = true;
359
370
  const shouldQueryLogs = logFilters.length > 0;
360
371
  const shouldQueryTraces = traceFilters.length > 0 || transferFilters.length > 0;
361
372
  const shouldQueryTransactions = transactionFilters.length > 0 || shouldQueryLogs || shouldQueryTraces;
362
- const shouldQueryTransactionReceipts = filters.some((filter) => filter.hasTransactionReceipt);
373
+ const shouldQueryTransactionReceipts = activeFilters.some((filter) => filter.hasTransactionReceipt);
363
374
  // Note: `LogSelect` doesn't exist because all log columns are required.
364
375
  const blockSelect = {
365
376
  number: PONDER_SYNC.blocks.number,
@@ -431,7 +442,7 @@ export const createSyncStore = ({ common, qb, }) => {
431
442
  const tracesQuery = qb.raw
432
443
  .select(traceSelect)
433
444
  .from(PONDER_SYNC.traces)
434
- .where(and(eq(PONDER_SYNC.traces.chainId, BigInt(chainId)), gte(PONDER_SYNC.traces.blockNumber, BigInt(fromBlock)), lte(PONDER_SYNC.traces.blockNumber, BigInt(toBlock)), or(...traceFilters.map((filter) => traceFilter(filter)), ...transferFilters.map((filter) => transferFilter(filter)))))
445
+ .where(and(eq(PONDER_SYNC.traces.chainId, BigInt(chainId)), gte(PONDER_SYNC.traces.blockNumber, BigInt(traceBlockRange.fromBlock)), lte(PONDER_SYNC.traces.blockNumber, BigInt(traceBlockRange.toBlock)), or(...traceFilters.map((filter) => traceFilter(filter)), ...transferFilters.map((filter) => transferFilter(filter)))))
435
446
  .orderBy(asc(PONDER_SYNC.traces.blockNumber), asc(PONDER_SYNC.traces.transactionIndex), asc(PONDER_SYNC.traces.traceIndex))
436
447
  .limit(limit);
437
448
  const logsQuery = qb.raw
@@ -447,7 +458,7 @@ export const createSyncStore = ({ common, qb, }) => {
447
458
  data: PONDER_SYNC.logs.data,
448
459
  })
449
460
  .from(PONDER_SYNC.logs)
450
- .where(and(eq(PONDER_SYNC.logs.chainId, BigInt(chainId)), gte(PONDER_SYNC.logs.blockNumber, BigInt(fromBlock)), lte(PONDER_SYNC.logs.blockNumber, BigInt(toBlock)), or(...logFilters.map((filter) => logFilter(filter)))))
461
+ .where(and(eq(PONDER_SYNC.logs.chainId, BigInt(chainId)), gte(PONDER_SYNC.logs.blockNumber, BigInt(logBlockRange.fromBlock)), lte(PONDER_SYNC.logs.blockNumber, BigInt(logBlockRange.toBlock)), or(...logFilters.map((filter) => logFilter(filter)))))
451
462
  .orderBy(asc(PONDER_SYNC.logs.blockNumber), asc(PONDER_SYNC.logs.logIndex))
452
463
  .limit(limit);
453
464
  let endClock = startClock();
@@ -780,6 +791,23 @@ const addressFilter = (address, column) => {
780
791
  return eq(column, address);
781
792
  return sql `true`;
782
793
  };
794
+ /**
795
+ * @dev It's an invariant that the returned `fromBlock <= toBlock`.
796
+ */
797
+ export const getFilterBlockRange = ({ filters, fromBlock, toBlock, }) => {
798
+ if (filters.length === 0)
799
+ return { fromBlock, toBlock };
800
+ const ranges = filters.map((filter) => ({
801
+ fromBlock: Math.max(fromBlock, filter.fromBlock ?? fromBlock),
802
+ toBlock: Math.min(toBlock, filter.toBlock ?? toBlock),
803
+ }));
804
+ return {
805
+ fromBlock: Math.min(...ranges.map((range) => range.fromBlock)),
806
+ toBlock: Math.max(...ranges.map((range) => range.toBlock)),
807
+ };
808
+ };
809
+ const isFilterInBlockRange = ({ filter, fromBlock, toBlock, }) => (filter.fromBlock ?? Number.NEGATIVE_INFINITY) <= toBlock &&
810
+ (filter.toBlock ?? Number.POSITIVE_INFINITY) >= fromBlock;
783
811
  export const logFilter = (filter) => {
784
812
  const conditions = [];
785
813
  for (const idx of [0, 1, 2, 3]) {
@@ -796,35 +824,17 @@ export const logFilter = (filter) => {
796
824
  }
797
825
  }
798
826
  conditions.push(addressFilter(filter.address, PONDER_SYNC.logs.address));
799
- if (filter.fromBlock !== undefined) {
800
- conditions.push(gte(PONDER_SYNC.logs.blockNumber, BigInt(filter.fromBlock)));
801
- }
802
- if (filter.toBlock !== undefined) {
803
- conditions.push(lte(PONDER_SYNC.logs.blockNumber, BigInt(filter.toBlock)));
804
- }
805
827
  return and(...conditions);
806
828
  };
807
829
  export const blockFilter = (filter) => {
808
830
  const conditions = [];
809
831
  conditions.push(sql `(blocks.number - ${filter.offset}) % ${filter.interval} = 0`);
810
- if (filter.fromBlock !== undefined) {
811
- conditions.push(gte(PONDER_SYNC.blocks.number, BigInt(filter.fromBlock)));
812
- }
813
- if (filter.toBlock !== undefined) {
814
- conditions.push(lte(PONDER_SYNC.blocks.number, BigInt(filter.toBlock)));
815
- }
816
832
  return and(...conditions);
817
833
  };
818
834
  export const transactionFilter = (filter) => {
819
835
  const conditions = [];
820
836
  conditions.push(addressFilter(filter.fromAddress, PONDER_SYNC.transactions.from));
821
837
  conditions.push(addressFilter(filter.toAddress, PONDER_SYNC.transactions.to));
822
- if (filter.fromBlock !== undefined) {
823
- conditions.push(gte(PONDER_SYNC.transactions.blockNumber, BigInt(filter.fromBlock)));
824
- }
825
- if (filter.toBlock !== undefined) {
826
- conditions.push(lte(PONDER_SYNC.transactions.blockNumber, BigInt(filter.toBlock)));
827
- }
828
838
  return and(...conditions);
829
839
  };
830
840
  export const transferFilter = (filter) => {
@@ -834,12 +844,6 @@ export const transferFilter = (filter) => {
834
844
  if (filter.includeReverted === false) {
835
845
  conditions.push(isNull(PONDER_SYNC.traces.error));
836
846
  }
837
- if (filter.fromBlock !== undefined) {
838
- conditions.push(gte(PONDER_SYNC.traces.blockNumber, BigInt(filter.fromBlock)));
839
- }
840
- if (filter.toBlock !== undefined) {
841
- conditions.push(lte(PONDER_SYNC.traces.blockNumber, BigInt(filter.toBlock)));
842
- }
843
847
  return and(...conditions);
844
848
  };
845
849
  export const traceFilter = (filter) => {
@@ -855,12 +859,6 @@ export const traceFilter = (filter) => {
855
859
  if (filter.functionSelector !== undefined) {
856
860
  conditions.push(eq(sql `substring(traces.input from 1 for 10)`, filter.functionSelector));
857
861
  }
858
- if (filter.fromBlock !== undefined) {
859
- conditions.push(gte(PONDER_SYNC.traces.blockNumber, BigInt(filter.fromBlock)));
860
- }
861
- if (filter.toBlock !== undefined) {
862
- conditions.push(lte(PONDER_SYNC.traces.blockNumber, BigInt(filter.toBlock)));
863
- }
864
862
  return and(...conditions);
865
863
  };
866
864
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync-store/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync-store/index.ts"],"names":[],"mappings":"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"}
@@ -127,6 +127,17 @@ export declare const createSyncStore: ({ common, qb, }: {
127
127
  common: Common;
128
128
  qb: QB<typeof PONDER_SYNC>;
129
129
  }) => SyncStore;
130
+ /**
131
+ * @dev It's an invariant that the returned `fromBlock <= toBlock`.
132
+ */
133
+ export declare const getFilterBlockRange: ({ filters, fromBlock, toBlock, }: {
134
+ filters: Pick<Filter, "fromBlock" | "toBlock">[];
135
+ fromBlock: number;
136
+ toBlock: number;
137
+ }) => {
138
+ fromBlock: number;
139
+ toBlock: number;
140
+ };
130
141
  export declare const logFilter: (filter: LogFilter) => SQL;
131
142
  export declare const blockFilter: (filter: BlockFilter) => SQL;
132
143
  export declare const transactionFilter: (filter: TransactionFilter) => SQL;
@@ -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.0",
3
+ "version": "0.17.1",
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.0"
105
+ "@ponder/client": "0.17.1"
106
106
  },
107
107
  "engines": {
108
108
  "node": ">=22"
@@ -748,26 +748,40 @@ export const createSyncStore = ({
748
748
  traces: InternalTrace[];
749
749
  cursor: number;
750
750
  }> => {
751
- const logFilters = filters.filter(
751
+ const activeFilters = filters.filter((filter) =>
752
+ isFilterInBlockRange({ filter, fromBlock, toBlock }),
753
+ );
754
+ const logFilters = activeFilters.filter(
752
755
  (f): f is LogFilter => f.type === "log",
753
756
  );
754
- const transactionFilters = filters.filter(
757
+ const transactionFilters = activeFilters.filter(
755
758
  (f): f is TransactionFilter => f.type === "transaction",
756
759
  );
757
- const traceFilters = filters.filter(
760
+ const traceFilters = activeFilters.filter(
758
761
  (f): f is TraceFilter => f.type === "trace",
759
762
  );
760
- const transferFilters = filters.filter(
763
+ const transferFilters = activeFilters.filter(
761
764
  (f): f is TransferFilter => f.type === "transfer",
762
765
  );
763
766
 
767
+ const logBlockRange = getFilterBlockRange({
768
+ filters: logFilters,
769
+ fromBlock,
770
+ toBlock,
771
+ });
772
+ const traceBlockRange = getFilterBlockRange({
773
+ filters: [...traceFilters, ...transferFilters],
774
+ fromBlock,
775
+ toBlock,
776
+ });
777
+
764
778
  const shouldQueryBlocks = true;
765
779
  const shouldQueryLogs = logFilters.length > 0;
766
780
  const shouldQueryTraces =
767
781
  traceFilters.length > 0 || transferFilters.length > 0;
768
782
  const shouldQueryTransactions =
769
783
  transactionFilters.length > 0 || shouldQueryLogs || shouldQueryTraces;
770
- const shouldQueryTransactionReceipts = filters.some(
784
+ const shouldQueryTransactionReceipts = activeFilters.some(
771
785
  (filter) => filter.hasTransactionReceipt,
772
786
  );
773
787
 
@@ -913,8 +927,14 @@ export const createSyncStore = ({
913
927
  .where(
914
928
  and(
915
929
  eq(PONDER_SYNC.traces.chainId, BigInt(chainId)),
916
- gte(PONDER_SYNC.traces.blockNumber, BigInt(fromBlock)),
917
- lte(PONDER_SYNC.traces.blockNumber, BigInt(toBlock)),
930
+ gte(
931
+ PONDER_SYNC.traces.blockNumber,
932
+ BigInt(traceBlockRange.fromBlock),
933
+ ),
934
+ lte(
935
+ PONDER_SYNC.traces.blockNumber,
936
+ BigInt(traceBlockRange.toBlock),
937
+ ),
918
938
  or(
919
939
  ...traceFilters.map((filter) => traceFilter(filter)),
920
940
  ...transferFilters.map((filter) => transferFilter(filter)),
@@ -944,8 +964,8 @@ export const createSyncStore = ({
944
964
  .where(
945
965
  and(
946
966
  eq(PONDER_SYNC.logs.chainId, BigInt(chainId)),
947
- gte(PONDER_SYNC.logs.blockNumber, BigInt(fromBlock)),
948
- lte(PONDER_SYNC.logs.blockNumber, BigInt(toBlock)),
967
+ gte(PONDER_SYNC.logs.blockNumber, BigInt(logBlockRange.fromBlock)),
968
+ lte(PONDER_SYNC.logs.blockNumber, BigInt(logBlockRange.toBlock)),
949
969
  or(...logFilters.map((filter) => logFilter(filter))),
950
970
  ),
951
971
  )
@@ -1481,6 +1501,43 @@ const addressFilter = (
1481
1501
  return sql`true`;
1482
1502
  };
1483
1503
 
1504
+ /**
1505
+ * @dev It's an invariant that the returned `fromBlock <= toBlock`.
1506
+ */
1507
+ export const getFilterBlockRange = ({
1508
+ filters,
1509
+ fromBlock,
1510
+ toBlock,
1511
+ }: {
1512
+ filters: Pick<Filter, "fromBlock" | "toBlock">[];
1513
+ fromBlock: number;
1514
+ toBlock: number;
1515
+ }) => {
1516
+ if (filters.length === 0) return { fromBlock, toBlock };
1517
+
1518
+ const ranges = filters.map((filter) => ({
1519
+ fromBlock: Math.max(fromBlock, filter.fromBlock ?? fromBlock),
1520
+ toBlock: Math.min(toBlock, filter.toBlock ?? toBlock),
1521
+ }));
1522
+
1523
+ return {
1524
+ fromBlock: Math.min(...ranges.map((range) => range.fromBlock)),
1525
+ toBlock: Math.max(...ranges.map((range) => range.toBlock)),
1526
+ };
1527
+ };
1528
+
1529
+ const isFilterInBlockRange = ({
1530
+ filter,
1531
+ fromBlock,
1532
+ toBlock,
1533
+ }: {
1534
+ filter: Pick<Filter, "fromBlock" | "toBlock">;
1535
+ fromBlock: number;
1536
+ toBlock: number;
1537
+ }) =>
1538
+ (filter.fromBlock ?? Number.NEGATIVE_INFINITY) <= toBlock &&
1539
+ (filter.toBlock ?? Number.POSITIVE_INFINITY) >= fromBlock;
1540
+
1484
1541
  export const logFilter = (filter: LogFilter): SQL => {
1485
1542
  const conditions: SQL[] = [];
1486
1543
 
@@ -1498,15 +1555,6 @@ export const logFilter = (filter: LogFilter): SQL => {
1498
1555
 
1499
1556
  conditions.push(addressFilter(filter.address, PONDER_SYNC.logs.address));
1500
1557
 
1501
- if (filter.fromBlock !== undefined) {
1502
- conditions.push(
1503
- gte(PONDER_SYNC.logs.blockNumber, BigInt(filter.fromBlock!)),
1504
- );
1505
- }
1506
- if (filter.toBlock !== undefined) {
1507
- conditions.push(lte(PONDER_SYNC.logs.blockNumber, BigInt(filter.toBlock!)));
1508
- }
1509
-
1510
1558
  return and(...conditions)!;
1511
1559
  };
1512
1560
 
@@ -1517,13 +1565,6 @@ export const blockFilter = (filter: BlockFilter): SQL => {
1517
1565
  sql`(blocks.number - ${filter.offset}) % ${filter.interval} = 0`,
1518
1566
  );
1519
1567
 
1520
- if (filter.fromBlock !== undefined) {
1521
- conditions.push(gte(PONDER_SYNC.blocks.number, BigInt(filter.fromBlock!)));
1522
- }
1523
- if (filter.toBlock !== undefined) {
1524
- conditions.push(lte(PONDER_SYNC.blocks.number, BigInt(filter.toBlock!)));
1525
- }
1526
-
1527
1568
  return and(...conditions)!;
1528
1569
  };
1529
1570
 
@@ -1535,17 +1576,6 @@ export const transactionFilter = (filter: TransactionFilter): SQL => {
1535
1576
  );
1536
1577
  conditions.push(addressFilter(filter.toAddress, PONDER_SYNC.transactions.to));
1537
1578
 
1538
- if (filter.fromBlock !== undefined) {
1539
- conditions.push(
1540
- gte(PONDER_SYNC.transactions.blockNumber, BigInt(filter.fromBlock!)),
1541
- );
1542
- }
1543
- if (filter.toBlock !== undefined) {
1544
- conditions.push(
1545
- lte(PONDER_SYNC.transactions.blockNumber, BigInt(filter.toBlock!)),
1546
- );
1547
- }
1548
-
1549
1579
  return and(...conditions)!;
1550
1580
  };
1551
1581
 
@@ -1559,17 +1589,6 @@ export const transferFilter = (filter: TransferFilter): SQL => {
1559
1589
  conditions.push(isNull(PONDER_SYNC.traces.error));
1560
1590
  }
1561
1591
 
1562
- if (filter.fromBlock !== undefined) {
1563
- conditions.push(
1564
- gte(PONDER_SYNC.traces.blockNumber, BigInt(filter.fromBlock!)),
1565
- );
1566
- }
1567
- if (filter.toBlock !== undefined) {
1568
- conditions.push(
1569
- lte(PONDER_SYNC.traces.blockNumber, BigInt(filter.toBlock!)),
1570
- );
1571
- }
1572
-
1573
1592
  return and(...conditions)!;
1574
1593
  };
1575
1594
 
@@ -1593,16 +1612,5 @@ export const traceFilter = (filter: TraceFilter): SQL => {
1593
1612
  );
1594
1613
  }
1595
1614
 
1596
- if (filter.fromBlock !== undefined) {
1597
- conditions.push(
1598
- gte(PONDER_SYNC.traces.blockNumber, BigInt(filter.fromBlock!)),
1599
- );
1600
- }
1601
- if (filter.toBlock !== undefined) {
1602
- conditions.push(
1603
- lte(PONDER_SYNC.traces.blockNumber, BigInt(filter.toBlock!)),
1604
- );
1605
- }
1606
-
1607
1615
  return and(...conditions)!;
1608
1616
  };