ponder 0.14.13 → 0.15.0
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 +16 -0
- package/dist/esm/bin/commands/createViews.js +28 -11
- package/dist/esm/bin/commands/createViews.js.map +1 -1
- package/dist/esm/bin/commands/dev.js +42 -22
- package/dist/esm/bin/commands/dev.js.map +1 -1
- package/dist/esm/bin/commands/prune.js +3 -0
- package/dist/esm/bin/commands/prune.js.map +1 -1
- package/dist/esm/bin/commands/serve.js +4 -1
- package/dist/esm/bin/commands/serve.js.map +1 -1
- package/dist/esm/bin/commands/start.js +18 -6
- package/dist/esm/bin/commands/start.js.map +1 -1
- package/dist/esm/bin/isolatedController.js +200 -0
- package/dist/esm/bin/isolatedController.js.map +1 -0
- package/dist/esm/bin/isolatedWorker.js +146 -0
- package/dist/esm/bin/isolatedWorker.js.map +1 -0
- package/dist/esm/build/config.js +322 -402
- package/dist/esm/build/config.js.map +1 -1
- package/dist/esm/build/index.js +8 -11
- package/dist/esm/build/index.js.map +1 -1
- package/dist/esm/build/pre.js +1 -4
- package/dist/esm/build/pre.js.map +1 -1
- package/dist/esm/build/schema.js +25 -3
- package/dist/esm/build/schema.js.map +1 -1
- package/dist/esm/client/index.js +306 -42
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/database/actions.js +264 -104
- package/dist/esm/database/actions.js.map +1 -1
- package/dist/esm/database/index.js +39 -33
- package/dist/esm/database/index.js.map +1 -1
- package/dist/esm/database/queryBuilder.js +1 -0
- package/dist/esm/database/queryBuilder.js.map +1 -1
- package/dist/esm/drizzle/index.js +11 -7
- package/dist/esm/drizzle/index.js.map +1 -1
- package/dist/esm/drizzle/onchain.js +18 -0
- package/dist/esm/drizzle/onchain.js.map +1 -1
- package/dist/esm/indexing/client.js +32 -25
- package/dist/esm/indexing/client.js.map +1 -1
- package/dist/esm/indexing/index.js +110 -178
- package/dist/esm/indexing/index.js.map +1 -1
- package/dist/esm/indexing/profile.js +1 -1
- package/dist/esm/indexing/profile.js.map +1 -1
- package/dist/esm/indexing-store/cache.js +196 -274
- package/dist/esm/indexing-store/cache.js.map +1 -1
- package/dist/esm/indexing-store/historical.js +17 -13
- package/dist/esm/indexing-store/historical.js.map +1 -1
- package/dist/esm/indexing-store/index.js +10 -1
- package/dist/esm/indexing-store/index.js.map +1 -1
- package/dist/esm/indexing-store/profile.js +3 -3
- package/dist/esm/indexing-store/profile.js.map +1 -1
- package/dist/esm/indexing-store/realtime.js +27 -2
- package/dist/esm/indexing-store/realtime.js.map +1 -1
- package/dist/esm/internal/errors.js +28 -0
- package/dist/esm/internal/errors.js.map +1 -1
- package/dist/esm/internal/metrics.js +279 -82
- package/dist/esm/internal/metrics.js.map +1 -1
- package/dist/esm/internal/options.js +1 -0
- package/dist/esm/internal/options.js.map +1 -1
- package/dist/esm/internal/telemetry.js +1 -1
- package/dist/esm/internal/telemetry.js.map +1 -1
- package/dist/esm/rpc/http.js +130 -0
- package/dist/esm/rpc/http.js.map +1 -0
- package/dist/esm/rpc/index.js +38 -7
- package/dist/esm/rpc/index.js.map +1 -1
- package/dist/esm/runtime/events.js +179 -212
- package/dist/esm/runtime/events.js.map +1 -1
- package/dist/esm/runtime/filter.js +71 -0
- package/dist/esm/runtime/filter.js.map +1 -1
- package/dist/esm/runtime/fragments.js +78 -73
- package/dist/esm/runtime/fragments.js.map +1 -1
- package/dist/esm/runtime/historical.js +306 -130
- package/dist/esm/runtime/historical.js.map +1 -1
- package/dist/esm/runtime/index.js +183 -58
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/isolated.js +462 -0
- package/dist/esm/runtime/isolated.js.map +1 -0
- package/dist/esm/runtime/multichain.js +80 -73
- package/dist/esm/runtime/multichain.js.map +1 -1
- package/dist/esm/runtime/omnichain.js +82 -75
- package/dist/esm/runtime/omnichain.js.map +1 -1
- package/dist/esm/runtime/realtime.js +198 -66
- package/dist/esm/runtime/realtime.js.map +1 -1
- package/dist/esm/sync-historical/index.js +416 -457
- package/dist/esm/sync-historical/index.js.map +1 -1
- package/dist/esm/sync-realtime/bloom.js +3 -3
- package/dist/esm/sync-realtime/bloom.js.map +1 -1
- package/dist/esm/sync-realtime/index.js +27 -46
- package/dist/esm/sync-realtime/index.js.map +1 -1
- package/dist/esm/sync-store/index.js +112 -63
- package/dist/esm/sync-store/index.js.map +1 -1
- package/dist/esm/utils/abi.js +20 -32
- package/dist/esm/utils/abi.js.map +1 -1
- package/dist/esm/utils/chunk.js +8 -0
- package/dist/esm/utils/chunk.js.map +1 -0
- package/dist/esm/utils/promiseAllSettledWithThrow.js +19 -0
- package/dist/esm/utils/promiseAllSettledWithThrow.js.map +1 -0
- package/dist/esm/{client/parse.js → utils/sql-parse.js} +94 -80
- package/dist/esm/utils/sql-parse.js.map +1 -0
- package/dist/types/bin/commands/createViews.d.ts.map +1 -1
- package/dist/types/bin/commands/dev.d.ts.map +1 -1
- package/dist/types/bin/commands/prune.d.ts.map +1 -1
- package/dist/types/bin/commands/serve.d.ts.map +1 -1
- package/dist/types/bin/commands/start.d.ts.map +1 -1
- package/dist/types/bin/isolatedController.d.ts +13 -0
- package/dist/types/bin/isolatedController.d.ts.map +1 -0
- package/dist/types/bin/isolatedWorker.d.ts +9 -0
- package/dist/types/bin/isolatedWorker.d.ts.map +1 -0
- package/dist/types/build/config.d.ts +29 -11
- package/dist/types/build/config.d.ts.map +1 -1
- package/dist/types/build/index.d.ts +3 -2
- package/dist/types/build/index.d.ts.map +1 -1
- package/dist/types/build/pre.d.ts +1 -1
- package/dist/types/build/pre.d.ts.map +1 -1
- package/dist/types/build/schema.d.ts +5 -3
- package/dist/types/build/schema.d.ts.map +1 -1
- package/dist/types/client/index.d.ts +1 -1
- package/dist/types/client/index.d.ts.map +1 -1
- package/dist/types/config/index.d.ts +3 -3
- package/dist/types/config/index.d.ts.map +1 -1
- package/dist/types/database/actions.d.ts +53 -7
- package/dist/types/database/actions.d.ts.map +1 -1
- package/dist/types/database/index.d.ts +21 -21
- package/dist/types/database/index.d.ts.map +1 -1
- package/dist/types/database/queryBuilder.d.ts.map +1 -1
- package/dist/types/drizzle/index.d.ts +4 -5
- package/dist/types/drizzle/index.d.ts.map +1 -1
- package/dist/types/drizzle/onchain.d.ts +6 -0
- package/dist/types/drizzle/onchain.d.ts.map +1 -1
- package/dist/types/indexing/client.d.ts.map +1 -1
- package/dist/types/indexing/index.d.ts +2 -5
- package/dist/types/indexing/index.d.ts.map +1 -1
- package/dist/types/indexing-store/cache.d.ts +3 -2
- package/dist/types/indexing-store/cache.d.ts.map +1 -1
- package/dist/types/indexing-store/historical.d.ts +2 -1
- package/dist/types/indexing-store/historical.d.ts.map +1 -1
- package/dist/types/indexing-store/index.d.ts +1 -0
- package/dist/types/indexing-store/index.d.ts.map +1 -1
- package/dist/types/indexing-store/realtime.d.ts +2 -1
- package/dist/types/indexing-store/realtime.d.ts.map +1 -1
- package/dist/types/internal/errors.d.ts +5 -0
- package/dist/types/internal/errors.d.ts.map +1 -1
- package/dist/types/internal/metrics.d.ts +21 -0
- package/dist/types/internal/metrics.d.ts.map +1 -1
- package/dist/types/internal/options.d.ts +2 -0
- package/dist/types/internal/options.d.ts.map +1 -1
- package/dist/types/internal/types.d.ts +66 -58
- package/dist/types/internal/types.d.ts.map +1 -1
- package/dist/types/rpc/http.d.ts +17 -0
- package/dist/types/rpc/http.d.ts.map +1 -0
- package/dist/types/rpc/index.d.ts.map +1 -1
- package/dist/types/runtime/events.d.ts +4 -4
- package/dist/types/runtime/events.d.ts.map +1 -1
- package/dist/types/runtime/filter.d.ts +5 -1
- package/dist/types/runtime/filter.d.ts.map +1 -1
- package/dist/types/runtime/fragments.d.ts +4 -3
- package/dist/types/runtime/fragments.d.ts.map +1 -1
- package/dist/types/runtime/historical.d.ts +29 -13
- package/dist/types/runtime/historical.d.ts.map +1 -1
- package/dist/types/runtime/index.d.ts +49 -6
- package/dist/types/runtime/index.d.ts.map +1 -1
- package/dist/types/runtime/init.d.ts +5 -5
- package/dist/types/runtime/init.d.ts.map +1 -1
- package/dist/types/runtime/isolated.d.ts +14 -0
- package/dist/types/runtime/isolated.d.ts.map +1 -0
- package/dist/types/runtime/multichain.d.ts.map +1 -1
- package/dist/types/runtime/omnichain.d.ts.map +1 -1
- package/dist/types/runtime/realtime.d.ts +21 -10
- package/dist/types/runtime/realtime.d.ts.map +1 -1
- package/dist/types/sync-historical/index.d.ts +18 -8
- package/dist/types/sync-historical/index.d.ts.map +1 -1
- package/dist/types/sync-realtime/bloom.d.ts.map +1 -1
- package/dist/types/sync-realtime/index.d.ts +2 -2
- package/dist/types/sync-realtime/index.d.ts.map +1 -1
- package/dist/types/sync-store/index.d.ts +9 -9
- package/dist/types/sync-store/index.d.ts.map +1 -1
- package/dist/types/utils/abi.d.ts +3 -34
- package/dist/types/utils/abi.d.ts.map +1 -1
- package/dist/types/utils/chunk.d.ts +2 -0
- package/dist/types/utils/chunk.d.ts.map +1 -0
- package/dist/types/utils/promiseAllSettledWithThrow.d.ts +8 -0
- package/dist/types/utils/promiseAllSettledWithThrow.d.ts.map +1 -0
- package/dist/types/utils/sql-parse.d.ts +21 -0
- package/dist/types/utils/sql-parse.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/bin/commands/createViews.ts +35 -15
- package/src/bin/commands/dev.ts +43 -21
- package/src/bin/commands/prune.ts +6 -0
- package/src/bin/commands/serve.ts +4 -1
- package/src/bin/commands/start.ts +20 -5
- package/src/bin/isolatedController.ts +300 -0
- package/src/bin/isolatedWorker.ts +192 -0
- package/src/build/config.ts +570 -632
- package/src/build/index.ts +14 -14
- package/src/build/pre.ts +1 -4
- package/src/build/schema.ts +49 -4
- package/src/client/index.ts +386 -48
- package/src/config/index.ts +3 -3
- package/src/database/actions.ts +469 -120
- package/src/database/index.ts +85 -58
- package/src/database/queryBuilder.ts +1 -0
- package/src/drizzle/index.ts +15 -7
- package/src/drizzle/onchain.ts +19 -0
- package/src/indexing/client.ts +38 -25
- package/src/indexing/index.ts +137 -230
- package/src/indexing/profile.ts +1 -1
- package/src/indexing-store/cache.ts +285 -414
- package/src/indexing-store/historical.ts +20 -10
- package/src/indexing-store/index.ts +16 -0
- package/src/indexing-store/profile.ts +3 -3
- package/src/indexing-store/realtime.ts +28 -0
- package/src/internal/errors.ts +26 -0
- package/src/internal/metrics.ts +341 -111
- package/src/internal/options.ts +4 -0
- package/src/internal/telemetry.ts +1 -1
- package/src/internal/types.ts +70 -87
- package/src/rpc/http.ts +164 -0
- package/src/rpc/index.ts +39 -7
- package/src/runtime/events.ts +195 -240
- package/src/runtime/filter.ts +85 -1
- package/src/runtime/fragments.ts +109 -113
- package/src/runtime/historical.ts +467 -189
- package/src/runtime/index.ts +337 -69
- package/src/runtime/init.ts +5 -5
- package/src/runtime/isolated.ts +768 -0
- package/src/runtime/multichain.ts +137 -102
- package/src/runtime/omnichain.ts +138 -106
- package/src/runtime/realtime.ts +322 -123
- package/src/sync-historical/index.ts +556 -692
- package/src/sync-realtime/bloom.ts +7 -3
- package/src/sync-realtime/index.ts +31 -46
- package/src/sync-store/index.ts +189 -95
- package/src/utils/abi.ts +33 -90
- package/src/utils/chunk.ts +7 -0
- package/src/utils/promiseAllSettledWithThrow.ts +27 -0
- package/src/{client/parse.ts → utils/sql-parse.ts} +100 -90
- package/dist/esm/client/parse.js.map +0 -1
- package/dist/types/client/parse.d.ts +0 -14
- package/dist/types/client/parse.d.ts.map +0 -1
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import crypto from "node:crypto";
|
|
2
2
|
import { extractBlockNumberParam } from '../indexing/client.js';
|
|
3
|
-
import { isAddressFactory, unionFilterIncludeBlock, unionFilterIncludeTrace, unionFilterIncludeTransaction, unionFilterIncludeTransactionReceipt, } from '../runtime/filter.js';
|
|
4
|
-
import { encodeFragment, getFragments } from '../runtime/fragments.js';
|
|
3
|
+
import { getFilterFactories, isAddressFactory, unionFilterIncludeBlock, unionFilterIncludeTrace, unionFilterIncludeTransaction, unionFilterIncludeTransactionReceipt, } from '../runtime/filter.js';
|
|
4
|
+
import { encodeFragment, getFactoryFragments, getFragments, } from '../runtime/fragments.js';
|
|
5
|
+
import { intervalUnion } from '../utils/interval.js';
|
|
5
6
|
import { toLowerCase } from '../utils/lowercase.js';
|
|
6
7
|
import { orderObject } from '../utils/order.js';
|
|
7
8
|
import { startClock } from '../utils/timer.js';
|
|
8
9
|
import { and, asc, desc, eq, gte, inArray, isNull, lt, lte, or, sql, } from "drizzle-orm";
|
|
9
|
-
import { unionAll } from "drizzle-orm/pg-core";
|
|
10
|
+
import { unionAll, } from "drizzle-orm/pg-core";
|
|
10
11
|
import { hexToNumber, isHex } from "viem";
|
|
11
12
|
import { encodeBlock, encodeLog, encodeTrace, encodeTransaction, encodeTransactionReceipt, } from "./encode.js";
|
|
12
13
|
import * as PONDER_SYNC from "./schema.js";
|
|
13
|
-
export const createSyncStore = ({ common,
|
|
14
|
+
export const createSyncStore = ({ common, qb, }) => {
|
|
14
15
|
const syncStore = {
|
|
15
|
-
insertIntervals: async ({ intervals, chainId }, context) => {
|
|
16
|
-
if (intervals.length === 0)
|
|
16
|
+
insertIntervals: async ({ intervals, factoryIntervals, chainId }, context) => {
|
|
17
|
+
if (intervals.length === 0 && factoryIntervals.length === 0)
|
|
17
18
|
return;
|
|
18
19
|
const perFragmentIntervals = new Map();
|
|
19
20
|
const values = [];
|
|
@@ -27,6 +28,15 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
27
28
|
perFragmentIntervals.get(fragmentId).push(interval);
|
|
28
29
|
}
|
|
29
30
|
}
|
|
31
|
+
for (const { factory, interval } of factoryIntervals) {
|
|
32
|
+
for (const fragment of getFactoryFragments(factory)) {
|
|
33
|
+
const fragmentId = encodeFragment(fragment);
|
|
34
|
+
if (perFragmentIntervals.has(fragmentId) === false) {
|
|
35
|
+
perFragmentIntervals.set(fragmentId, []);
|
|
36
|
+
}
|
|
37
|
+
perFragmentIntervals.get(fragmentId).push(interval);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
30
40
|
// NOTE: In order to force proper range union behavior, `interval[1]` must
|
|
31
41
|
// be rounded up.
|
|
32
42
|
for (const [fragmentId, intervals] of perFragmentIntervals) {
|
|
@@ -46,7 +56,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
46
56
|
}
|
|
47
57
|
const batchSize = Math.floor(common.options.databaseMaxQueryParameters / 3);
|
|
48
58
|
for (let i = 0; i < values.length; i += batchSize) {
|
|
49
|
-
await
|
|
59
|
+
await qb.wrap({ label: "insert_intervals" }, (db) => db
|
|
50
60
|
.insert(PONDER_SYNC.intervals)
|
|
51
61
|
.values(values.slice(i, i + batchSize))
|
|
52
62
|
.onConflictDoUpdate({
|
|
@@ -56,20 +66,39 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
56
66
|
}
|
|
57
67
|
},
|
|
58
68
|
getIntervals: async ({ filters }, context) => {
|
|
59
|
-
const queries =
|
|
69
|
+
const queries = [];
|
|
70
|
+
let index = 0;
|
|
71
|
+
for (const filter of filters) {
|
|
60
72
|
const fragments = getFragments(filter);
|
|
61
|
-
|
|
62
|
-
.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
for (const fragment of fragments) {
|
|
74
|
+
queries.push(qb.raw
|
|
75
|
+
.select({
|
|
76
|
+
mergedBlocks: sql `range_agg(unnested.blocks)`.as("merged_blocks"),
|
|
77
|
+
fragment: sql.raw(`'${index++}'`).as("fragment"),
|
|
78
|
+
})
|
|
79
|
+
.from(qb.raw
|
|
80
|
+
.select({ blocks: sql.raw("unnest(blocks)").as("blocks") })
|
|
81
|
+
.from(PONDER_SYNC.intervals)
|
|
82
|
+
.where(sql.raw(`fragment_id IN (${fragment.adjacentIds.map((id) => `'${id}'`).join(", ")})`))
|
|
83
|
+
.as("unnested")));
|
|
84
|
+
for (const factory of getFilterFactories(filter)) {
|
|
85
|
+
for (const fragment of getFactoryFragments(factory)) {
|
|
86
|
+
queries.push(qb.raw
|
|
87
|
+
.select({
|
|
88
|
+
mergedBlocks: sql `range_agg(unnested.blocks)`.as("merged_blocks"),
|
|
89
|
+
fragment: sql.raw(`'${index++}'`).as("fragment"),
|
|
90
|
+
})
|
|
91
|
+
.from(qb.raw
|
|
92
|
+
.select({
|
|
93
|
+
blocks: sql.raw("unnest(blocks)").as("blocks"),
|
|
94
|
+
})
|
|
95
|
+
.from(PONDER_SYNC.intervals)
|
|
96
|
+
.where(sql.raw(`fragment_id = '${encodeFragment(fragment)}'`))
|
|
97
|
+
.as("unnested")));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
73
102
|
let rows = [];
|
|
74
103
|
if (queries.length > 1) {
|
|
75
104
|
// Note: This query has no parameters, but there is a bug with
|
|
@@ -77,7 +106,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
77
106
|
// Related: https://github.com/drizzle-team/drizzle-orm/issues/1740
|
|
78
107
|
const batchSize = 200;
|
|
79
108
|
for (let i = 0; i < queries.length; i += batchSize) {
|
|
80
|
-
const _rows = await
|
|
109
|
+
const _rows = await qb.wrap({ label: "select_intervals" }, () =>
|
|
81
110
|
// @ts-expect-error
|
|
82
111
|
unionAll(...queries.slice(i, i + batchSize)), context);
|
|
83
112
|
if (i === 0) {
|
|
@@ -89,24 +118,51 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
89
118
|
}
|
|
90
119
|
}
|
|
91
120
|
else {
|
|
92
|
-
rows = await
|
|
121
|
+
rows = await qb.wrap({ label: "select_intervals" }, () => queries[0].execute(), context);
|
|
93
122
|
}
|
|
94
123
|
const result = new Map();
|
|
95
124
|
// NOTE: `interval[1]` must be rounded down in order to offset the previous
|
|
96
125
|
// rounding.
|
|
97
|
-
|
|
98
|
-
|
|
126
|
+
index = 0;
|
|
127
|
+
for (const filter of filters) {
|
|
99
128
|
const fragments = getFragments(filter);
|
|
100
129
|
result.set(filter, []);
|
|
101
|
-
for (
|
|
102
|
-
const fragment = fragments[j];
|
|
130
|
+
for (const fragment of fragments) {
|
|
103
131
|
const intervals = rows
|
|
104
|
-
.filter((row) => row.
|
|
105
|
-
.filter((row) => row.fragment === `${j}`)
|
|
132
|
+
.filter((row) => row.fragment === `${index}`)
|
|
106
133
|
.map((row) => (row.mergedBlocks
|
|
107
134
|
? JSON.parse(`[${row.mergedBlocks.slice(1, -1)}]`)
|
|
108
135
|
: []).map((interval) => [interval[0], interval[1] - 1]))[0];
|
|
136
|
+
index += 1;
|
|
109
137
|
result.get(filter).push({ fragment: fragment.fragment, intervals });
|
|
138
|
+
for (const factory of getFilterFactories(filter)) {
|
|
139
|
+
result.set(factory, []);
|
|
140
|
+
for (const fragment of getFactoryFragments(factory)) {
|
|
141
|
+
const intervals = rows
|
|
142
|
+
.filter((row) => row.fragment === `${index}`)
|
|
143
|
+
.map((row) => (row.mergedBlocks
|
|
144
|
+
? JSON.parse(`[${row.mergedBlocks.slice(1, -1)}]`)
|
|
145
|
+
: []).map((interval) => [interval[0], interval[1] - 1]))[0];
|
|
146
|
+
index += 1;
|
|
147
|
+
result.get(factory).push({ fragment, intervals });
|
|
148
|
+
}
|
|
149
|
+
// Note: This is a stand-in for a migration to the `intervals` table
|
|
150
|
+
// required in `v0.15`. It is an invariant that filter with factories
|
|
151
|
+
// have a row in the intervals table for both the filter and the factory.
|
|
152
|
+
// If this invariant is broken, it must be because of the migration from
|
|
153
|
+
// `v0.14` to `v0.15`. In this case, we can assume that the factory interval
|
|
154
|
+
// is the same as the filter interval.
|
|
155
|
+
const filterIntervals = intervalUnion(result.get(filter).flatMap(({ intervals }) => intervals));
|
|
156
|
+
const factoryIntervals = intervalUnion(result.get(factory).flatMap(({ intervals }) => intervals));
|
|
157
|
+
if (filterIntervals.length > 0 &&
|
|
158
|
+
factoryIntervals.length === 0 &&
|
|
159
|
+
filter.fromBlock === factory.fromBlock &&
|
|
160
|
+
filter.toBlock === factory.toBlock) {
|
|
161
|
+
for (const factoryInterval of result.get(factory)) {
|
|
162
|
+
factoryInterval.intervals = filterIntervals;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
110
166
|
}
|
|
111
167
|
}
|
|
112
168
|
return result;
|
|
@@ -117,7 +173,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
117
173
|
const { id, ..._factory } = factory;
|
|
118
174
|
const batchSize = Math.floor(common.options.databaseMaxQueryParameters / 3);
|
|
119
175
|
const values = [];
|
|
120
|
-
const factoryInsert =
|
|
176
|
+
const factoryInsert = qb.raw.$with("factory_insert").as(qb.raw
|
|
121
177
|
.insert(PONDER_SYNC.factories)
|
|
122
178
|
.values({ factory: _factory })
|
|
123
179
|
// @ts-expect-error bug with drizzle-orm
|
|
@@ -136,7 +192,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
136
192
|
});
|
|
137
193
|
}
|
|
138
194
|
for (let i = 0; i < values.length; i += batchSize) {
|
|
139
|
-
await
|
|
195
|
+
await qb.wrap({ label: "insert_child_addresses" }, (db) => db
|
|
140
196
|
.with(factoryInsert)
|
|
141
197
|
.insert(PONDER_SYNC.factoryAddresses)
|
|
142
198
|
.values(values.slice(i, i + batchSize)), context);
|
|
@@ -144,7 +200,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
144
200
|
},
|
|
145
201
|
getChildAddresses: ({ factory }, context) => {
|
|
146
202
|
const { id, ..._factory } = factory;
|
|
147
|
-
const factoryInsert =
|
|
203
|
+
const factoryInsert = qb.raw.$with("factory_insert").as(qb.raw
|
|
148
204
|
.insert(PONDER_SYNC.factories)
|
|
149
205
|
.values({ factory: _factory })
|
|
150
206
|
// @ts-expect-error bug with drizzle-orm
|
|
@@ -153,7 +209,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
153
209
|
target: PONDER_SYNC.factories.factory,
|
|
154
210
|
set: { factory: sql `excluded.factory` },
|
|
155
211
|
}));
|
|
156
|
-
return
|
|
212
|
+
return qb
|
|
157
213
|
.wrap({ label: "select_child_addresses" }, (db) => db
|
|
158
214
|
.with(factoryInsert)
|
|
159
215
|
.select({
|
|
@@ -161,9 +217,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
161
217
|
blockNumber: PONDER_SYNC.factoryAddresses.blockNumber,
|
|
162
218
|
})
|
|
163
219
|
.from(PONDER_SYNC.factoryAddresses)
|
|
164
|
-
.where(eq(PONDER_SYNC.factoryAddresses.factoryId,
|
|
165
|
-
.select({ id: factoryInsert.id })
|
|
166
|
-
.from(factoryInsert))), context)
|
|
220
|
+
.where(eq(PONDER_SYNC.factoryAddresses.factoryId, qb.raw.select({ id: factoryInsert.id }).from(factoryInsert))), context)
|
|
167
221
|
.then((rows) => {
|
|
168
222
|
const result = new Map();
|
|
169
223
|
for (const { address, blockNumber } of rows) {
|
|
@@ -176,7 +230,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
176
230
|
});
|
|
177
231
|
},
|
|
178
232
|
getSafeCrashRecoveryBlock: async ({ chainId, timestamp }, context) => {
|
|
179
|
-
const rows = await
|
|
233
|
+
const rows = await qb.wrap({ label: "select_crash_recovery_block" }, (db) => db
|
|
180
234
|
.select({
|
|
181
235
|
number: PONDER_SYNC.blocks.number,
|
|
182
236
|
timestamp: PONDER_SYNC.blocks.timestamp,
|
|
@@ -200,7 +254,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
200
254
|
// both a log filter and a factory, the checkpoint must be included
|
|
201
255
|
// in the db.
|
|
202
256
|
for (let i = 0; i < logs.length; i += batchSize) {
|
|
203
|
-
await
|
|
257
|
+
await qb.wrap({ label: "insert_logs" }, (db) => db
|
|
204
258
|
.insert(PONDER_SYNC.logs)
|
|
205
259
|
.values(logs
|
|
206
260
|
.slice(i, i + batchSize)
|
|
@@ -222,7 +276,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
222
276
|
const batchSize = Math.floor(common.options.databaseMaxQueryParameters /
|
|
223
277
|
Object.keys(encodeBlock({ block: blocks[0], chainId })).length);
|
|
224
278
|
for (let i = 0; i < blocks.length; i += batchSize) {
|
|
225
|
-
await
|
|
279
|
+
await qb.wrap({ label: "insert_blocks" }, (db) => db
|
|
226
280
|
.insert(PONDER_SYNC.blocks)
|
|
227
281
|
.values(blocks
|
|
228
282
|
.slice(i, i + batchSize)
|
|
@@ -243,7 +297,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
243
297
|
chainId,
|
|
244
298
|
})).length);
|
|
245
299
|
for (let i = 0; i < transactions.length; i += batchSize) {
|
|
246
|
-
await
|
|
300
|
+
await qb.wrap({ label: "insert_transactions" }, (db) => db
|
|
247
301
|
.insert(PONDER_SYNC.transactions)
|
|
248
302
|
.values(transactions
|
|
249
303
|
.slice(i, i + batchSize)
|
|
@@ -268,7 +322,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
268
322
|
chainId,
|
|
269
323
|
})).length);
|
|
270
324
|
for (let i = 0; i < transactionReceipts.length; i += batchSize) {
|
|
271
|
-
await
|
|
325
|
+
await qb.wrap({ label: "insert_transaction_receipts" }, (db) => db
|
|
272
326
|
.insert(PONDER_SYNC.transactionReceipts)
|
|
273
327
|
.values(transactionReceipts
|
|
274
328
|
.slice(i, i + batchSize)
|
|
@@ -298,7 +352,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
298
352
|
chainId,
|
|
299
353
|
})).length);
|
|
300
354
|
for (let i = 0; i < traces.length; i += batchSize) {
|
|
301
|
-
await
|
|
355
|
+
await qb.wrap({ label: "insert_traces" }, (db) => db
|
|
302
356
|
.insert(PONDER_SYNC.traces)
|
|
303
357
|
.values(traces
|
|
304
358
|
.slice(i, i + batchSize)
|
|
@@ -333,7 +387,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
333
387
|
// @ts-ignore
|
|
334
388
|
blockSelect[column] = PONDER_SYNC.blocks[column];
|
|
335
389
|
}
|
|
336
|
-
const blocksQuery =
|
|
390
|
+
const blocksQuery = qb.raw
|
|
337
391
|
.select(blockSelect)
|
|
338
392
|
.from(PONDER_SYNC.blocks)
|
|
339
393
|
.where(and(eq(PONDER_SYNC.blocks.chainId, BigInt(chainId)), gte(PONDER_SYNC.blocks.number, BigInt(fromBlock)), lte(PONDER_SYNC.blocks.number, BigInt(toBlock))))
|
|
@@ -351,7 +405,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
351
405
|
// @ts-ignore
|
|
352
406
|
transactionSelect[column] = PONDER_SYNC.transactions[column];
|
|
353
407
|
}
|
|
354
|
-
const transactionsQuery =
|
|
408
|
+
const transactionsQuery = qb.raw
|
|
355
409
|
.select(transactionSelect)
|
|
356
410
|
.from(PONDER_SYNC.transactions)
|
|
357
411
|
.where(and(eq(PONDER_SYNC.transactions.chainId, BigInt(chainId)), gte(PONDER_SYNC.transactions.blockNumber, BigInt(fromBlock)), lte(PONDER_SYNC.transactions.blockNumber, BigInt(toBlock))))
|
|
@@ -369,7 +423,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
369
423
|
transactionReceiptSelect[column] =
|
|
370
424
|
PONDER_SYNC.transactionReceipts[column];
|
|
371
425
|
}
|
|
372
|
-
const transactionReceiptsQuery =
|
|
426
|
+
const transactionReceiptsQuery = qb.raw
|
|
373
427
|
.select(transactionReceiptSelect)
|
|
374
428
|
.from(PONDER_SYNC.transactionReceipts)
|
|
375
429
|
.where(and(eq(PONDER_SYNC.transactionReceipts.chainId, BigInt(chainId)), gte(PONDER_SYNC.transactionReceipts.blockNumber, BigInt(fromBlock)), lte(PONDER_SYNC.transactionReceipts.blockNumber, BigInt(toBlock))))
|
|
@@ -391,13 +445,13 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
391
445
|
// @ts-ignore
|
|
392
446
|
traceSelect[column] = PONDER_SYNC.traces[column];
|
|
393
447
|
}
|
|
394
|
-
const tracesQuery =
|
|
448
|
+
const tracesQuery = qb.raw
|
|
395
449
|
.select(traceSelect)
|
|
396
450
|
.from(PONDER_SYNC.traces)
|
|
397
451
|
.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)))))
|
|
398
452
|
.orderBy(asc(PONDER_SYNC.traces.blockNumber), asc(PONDER_SYNC.traces.transactionIndex), asc(PONDER_SYNC.traces.traceIndex))
|
|
399
453
|
.limit(limit);
|
|
400
|
-
const logsQuery =
|
|
454
|
+
const logsQuery = qb.raw
|
|
401
455
|
.select({
|
|
402
456
|
blockNumber: PONDER_SYNC.logs.blockNumber,
|
|
403
457
|
logIndex: PONDER_SYNC.logs.logIndex,
|
|
@@ -416,19 +470,19 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
416
470
|
let endClock = startClock();
|
|
417
471
|
const [blocksRows, transactionsRows, transactionReceiptsRows, logsRows, tracesRows,] = await Promise.all([
|
|
418
472
|
shouldQueryBlocks
|
|
419
|
-
?
|
|
473
|
+
? qb.wrap({ label: "select_blocks" }, () => blocksQuery)
|
|
420
474
|
: [],
|
|
421
475
|
shouldQueryTransactions
|
|
422
|
-
?
|
|
476
|
+
? qb.wrap({ label: "select_transactions" }, () => transactionsQuery, context)
|
|
423
477
|
: [],
|
|
424
478
|
shouldQueryTransactionReceipts
|
|
425
|
-
?
|
|
479
|
+
? qb.wrap({ label: "select_transaction_receipts" }, () => transactionReceiptsQuery, context)
|
|
426
480
|
: [],
|
|
427
481
|
shouldQueryLogs
|
|
428
|
-
?
|
|
482
|
+
? qb.wrap({ label: "select_logs" }, () => logsQuery, context)
|
|
429
483
|
: [],
|
|
430
484
|
shouldQueryTraces
|
|
431
|
-
?
|
|
485
|
+
? qb.wrap({ label: "select_traces" }, () => tracesQuery, context)
|
|
432
486
|
: [],
|
|
433
487
|
]);
|
|
434
488
|
const supremum = Math.min(blocksRows.length < limit
|
|
@@ -618,7 +672,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
618
672
|
blockNumber: blockNumber ? BigInt(blockNumber) : undefined,
|
|
619
673
|
result,
|
|
620
674
|
}));
|
|
621
|
-
await
|
|
675
|
+
await qb.wrap({ label: "insert_rpc_requests" }, (db) => db
|
|
622
676
|
.insert(PONDER_SYNC.rpcRequestResults)
|
|
623
677
|
.values(values)
|
|
624
678
|
.onConflictDoNothing({
|
|
@@ -657,7 +711,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
657
711
|
const maxBlockNumber = Math.max(...blockNumbers);
|
|
658
712
|
const nonBlockRequestHashes = requestHashes.filter((_, i) => blockNumbersByRequest[i] === undefined);
|
|
659
713
|
const result = await Promise.all([
|
|
660
|
-
|
|
714
|
+
qb.wrap({ label: "select_rpc_requests" }, (db) => db
|
|
661
715
|
.select({
|
|
662
716
|
request_hash: PONDER_SYNC.rpcRequestResults.requestHash,
|
|
663
717
|
result: PONDER_SYNC.rpcRequestResults.result,
|
|
@@ -666,7 +720,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
666
720
|
.where(and(eq(PONDER_SYNC.rpcRequestResults.chainId, BigInt(chainId)), gte(PONDER_SYNC.rpcRequestResults.blockNumber, BigInt(minBlockNumber)), lte(PONDER_SYNC.rpcRequestResults.blockNumber, BigInt(maxBlockNumber)))), context),
|
|
667
721
|
nonBlockRequestHashes.length === 0
|
|
668
722
|
? []
|
|
669
|
-
:
|
|
723
|
+
: qb.wrap({ label: "select_rpc_requests" }, (db) => db
|
|
670
724
|
.select({
|
|
671
725
|
request_hash: PONDER_SYNC.rpcRequestResults.requestHash,
|
|
672
726
|
result: PONDER_SYNC.rpcRequestResults.result,
|
|
@@ -683,7 +737,7 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
683
737
|
}
|
|
684
738
|
return requestHashes.map((requestHash) => results.get(requestHash));
|
|
685
739
|
}
|
|
686
|
-
const result = await
|
|
740
|
+
const result = await qb.wrap({ label: "select_rpc_requests" }, (db) => db
|
|
687
741
|
.select({
|
|
688
742
|
request_hash: PONDER_SYNC.rpcRequestResults.requestHash,
|
|
689
743
|
result: PONDER_SYNC.rpcRequestResults.result,
|
|
@@ -700,11 +754,11 @@ export const createSyncStore = ({ common, database, }) => {
|
|
|
700
754
|
if (blocks.length === 0)
|
|
701
755
|
return;
|
|
702
756
|
const numbers = blocks.map(({ number }) => BigInt(hexToNumber(number)));
|
|
703
|
-
await
|
|
757
|
+
await qb.wrap({ label: "delete_rpc_requests" }, (db) => db
|
|
704
758
|
.delete(PONDER_SYNC.rpcRequestResults)
|
|
705
759
|
.where(and(eq(PONDER_SYNC.rpcRequestResults.chainId, BigInt(chainId)), inArray(PONDER_SYNC.rpcRequestResults.blockNumber, numbers))), context);
|
|
706
760
|
},
|
|
707
|
-
pruneByChain: async ({ chainId }, context) =>
|
|
761
|
+
pruneByChain: async ({ chainId }, context) => qb.transaction(async (tx) => {
|
|
708
762
|
await tx.wrap({ label: "delete_logs" }, (db) => db
|
|
709
763
|
.delete(PONDER_SYNC.logs)
|
|
710
764
|
.where(eq(PONDER_SYNC.logs.chainId, BigInt(chainId)))
|
|
@@ -818,12 +872,7 @@ export const traceFilter = (filter) => {
|
|
|
818
872
|
conditions.push(eq(PONDER_SYNC.traces.type, filter.callType));
|
|
819
873
|
}
|
|
820
874
|
if (filter.functionSelector !== undefined) {
|
|
821
|
-
|
|
822
|
-
conditions.push(inArray(sql `substring(traces.input from 1 for 10)`, filter.functionSelector));
|
|
823
|
-
}
|
|
824
|
-
else {
|
|
825
|
-
conditions.push(eq(sql `substring(traces.input from 1 for 10)`, filter.functionSelector));
|
|
826
|
-
}
|
|
875
|
+
conditions.push(eq(sql `substring(traces.input from 1 for 10)`, filter.functionSelector));
|
|
827
876
|
}
|
|
828
877
|
if (filter.fromBlock !== undefined) {
|
|
829
878
|
conditions.push(gte(PONDER_SYNC.traces.blockNumber, BigInt(filter.fromBlock)));
|
|
@@ -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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"}
|