ponder 0.17.11 → 0.18.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 +30 -0
- package/dist/esm/bin/commands/codegen.js +3 -3
- package/dist/esm/bin/commands/codegen.js.map +1 -1
- package/dist/esm/bin/commands/dev.js +3 -3
- package/dist/esm/bin/commands/dev.js.map +1 -1
- package/dist/esm/bin/commands/serve.js +3 -3
- package/dist/esm/bin/commands/serve.js.map +1 -1
- package/dist/esm/bin/commands/start.js +3 -3
- package/dist/esm/bin/commands/start.js.map +1 -1
- package/dist/esm/build/config.js +19 -20
- package/dist/esm/build/config.js.map +1 -1
- package/dist/esm/build/index.js +79 -65
- package/dist/esm/build/index.js.map +1 -1
- package/dist/esm/build/plugin.js +9 -0
- package/dist/esm/build/plugin.js.map +1 -1
- package/dist/esm/build/stacktrace.js +25 -68
- package/dist/esm/build/stacktrace.js.map +1 -1
- package/dist/esm/database/index.js +83 -67
- package/dist/esm/database/index.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/indexing/client.js +35 -23
- package/dist/esm/indexing/client.js.map +1 -1
- package/dist/esm/indexing/index.js +3 -1
- package/dist/esm/indexing/index.js.map +1 -1
- package/dist/esm/indexing/profile.js +4 -3
- package/dist/esm/indexing/profile.js.map +1 -1
- package/dist/esm/indexing-store/index.js +2 -2
- package/dist/esm/indexing-store/index.js.map +1 -1
- package/dist/esm/rpc/actions.js +143 -67
- package/dist/esm/rpc/actions.js.map +1 -1
- package/dist/esm/runtime/events.js +33 -19
- package/dist/esm/runtime/events.js.map +1 -1
- package/dist/esm/runtime/filter.js +10 -9
- package/dist/esm/runtime/filter.js.map +1 -1
- package/dist/esm/runtime/fragments.js +50 -24
- package/dist/esm/runtime/fragments.js.map +1 -1
- package/dist/esm/runtime/historical.js +212 -68
- package/dist/esm/runtime/historical.js.map +1 -1
- package/dist/esm/runtime/index.js +11 -15
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/isolated.js +1 -0
- package/dist/esm/runtime/isolated.js.map +1 -1
- package/dist/esm/runtime/multichain.js +1 -0
- package/dist/esm/runtime/multichain.js.map +1 -1
- package/dist/esm/runtime/omnichain.js +1 -0
- package/dist/esm/runtime/omnichain.js.map +1 -1
- package/dist/esm/runtime/realtime.js +17 -16
- package/dist/esm/runtime/realtime.js.map +1 -1
- package/dist/esm/server/index.js +8 -6
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/sync-historical/in-memory.js +539 -0
- package/dist/esm/sync-historical/in-memory.js.map +1 -0
- package/dist/esm/sync-historical/index.js +46 -63
- package/dist/esm/sync-historical/index.js.map +1 -1
- package/dist/esm/sync-realtime/index.js +56 -83
- package/dist/esm/sync-realtime/index.js.map +1 -1
- package/dist/esm/sync-store/encode.js +1 -6
- package/dist/esm/sync-store/encode.js.map +1 -1
- package/dist/esm/sync-store/index.js +58 -62
- package/dist/esm/sync-store/index.js.map +1 -1
- package/dist/esm/sync-store/schema.js +23 -15
- package/dist/esm/sync-store/schema.js.map +1 -1
- package/dist/esm/sync-store/sql/ponder_rpc_cache_1/copy.sql +23 -0
- package/dist/esm/sync-store/sql/ponder_rpc_cache_1/create.sql +130 -0
- package/dist/esm/utils/copy.js +4 -4
- package/dist/esm/utils/copy.js.map +1 -1
- package/dist/esm/utils/finality.js +41 -32
- package/dist/esm/utils/finality.js.map +1 -1
- package/dist/esm/utils/pglite.js +0 -65
- package/dist/esm/utils/pglite.js.map +1 -1
- package/dist/types/bin/commands/codegen.d.ts.map +1 -1
- package/dist/types/bin/commands/dev.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/build/config.d.ts.map +1 -1
- package/dist/types/build/index.d.ts.map +1 -1
- package/dist/types/build/plugin.d.ts.map +1 -1
- package/dist/types/build/stacktrace.d.ts +1 -12
- package/dist/types/build/stacktrace.d.ts.map +1 -1
- package/dist/types/config/index.d.ts +12 -2
- package/dist/types/config/index.d.ts.map +1 -1
- package/dist/types/database/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/indexing/client.d.ts.map +1 -1
- package/dist/types/indexing/profile.d.ts.map +1 -1
- package/dist/types/indexing-store/index.d.ts.map +1 -1
- package/dist/types/internal/types.d.ts +8 -13
- package/dist/types/internal/types.d.ts.map +1 -1
- package/dist/types/rpc/actions.d.ts +30 -0
- package/dist/types/rpc/actions.d.ts.map +1 -1
- package/dist/types/runtime/events.d.ts.map +1 -1
- package/dist/types/runtime/filter.d.ts.map +1 -1
- package/dist/types/runtime/fragments.d.ts +9 -1
- package/dist/types/runtime/fragments.d.ts.map +1 -1
- package/dist/types/runtime/historical.d.ts +18 -1
- package/dist/types/runtime/historical.d.ts.map +1 -1
- package/dist/types/runtime/index.d.ts +1 -0
- package/dist/types/runtime/index.d.ts.map +1 -1
- package/dist/types/runtime/isolated.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/types/server/index.d.ts.map +1 -1
- package/dist/types/sync-historical/in-memory.d.ts +24 -0
- package/dist/types/sync-historical/in-memory.d.ts.map +1 -0
- package/dist/types/sync-historical/index.d.ts.map +1 -1
- package/dist/types/sync-realtime/index.d.ts +3 -2
- package/dist/types/sync-realtime/index.d.ts.map +1 -1
- package/dist/types/sync-store/encode.d.ts.map +1 -1
- package/dist/types/sync-store/index.d.ts +3 -3
- package/dist/types/sync-store/index.d.ts.map +1 -1
- package/dist/types/sync-store/schema.d.ts +63 -98
- package/dist/types/sync-store/schema.d.ts.map +1 -1
- package/dist/types/types/eth.d.ts +2 -8
- package/dist/types/types/eth.d.ts.map +1 -1
- package/dist/types/utils/finality.d.ts +12 -9
- package/dist/types/utils/finality.d.ts.map +1 -1
- package/dist/types/utils/pglite.d.ts +0 -18
- package/dist/types/utils/pglite.d.ts.map +1 -1
- package/package.json +5 -11
- package/src/bin/commands/codegen.ts +3 -3
- package/src/bin/commands/dev.ts +3 -3
- package/src/bin/commands/serve.ts +3 -3
- package/src/bin/commands/start.ts +3 -3
- package/src/build/config.ts +29 -28
- package/src/build/index.ts +88 -71
- package/src/build/plugin.ts +6 -0
- package/src/build/stacktrace.ts +38 -65
- package/src/config/index.ts +12 -2
- package/src/database/index.ts +132 -89
- package/src/index.ts +5 -0
- package/src/indexing/client.ts +56 -40
- package/src/indexing/index.ts +4 -1
- package/src/indexing/profile.ts +5 -2
- package/src/indexing-store/index.ts +2 -8
- package/src/internal/types.ts +10 -13
- package/src/rpc/actions.ts +211 -77
- package/src/runtime/events.ts +40 -19
- package/src/runtime/filter.ts +11 -11
- package/src/runtime/fragments.ts +70 -26
- package/src/runtime/historical.ts +314 -97
- package/src/runtime/index.ts +27 -14
- package/src/runtime/isolated.ts +1 -0
- package/src/runtime/multichain.ts +1 -0
- package/src/runtime/omnichain.ts +1 -0
- package/src/runtime/realtime.ts +24 -25
- package/src/server/index.ts +14 -7
- package/src/sync-historical/in-memory.ts +834 -0
- package/src/sync-historical/index.ts +76 -120
- package/src/sync-realtime/index.ts +73 -133
- package/src/sync-store/encode.ts +1 -6
- package/src/sync-store/index.ts +90 -95
- package/src/sync-store/schema.ts +24 -27
- package/src/types/eth.ts +2 -8
- package/src/utils/copy.ts +3 -3
- package/src/utils/finality.ts +67 -34
- package/src/utils/pglite.ts +0 -79
- package/dist/esm/sync-store/migrations.js +0 -1595
- package/dist/esm/sync-store/migrations.js.map +0 -1
- package/dist/types/sync-store/migrations.d.ts +0 -8
- package/dist/types/sync-store/migrations.d.ts.map +0 -1
- package/src/sync-store/migrations.ts +0 -1801
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { hexToNumber
|
|
1
|
+
import { hexToNumber } from "viem";
|
|
2
2
|
import { ShutdownError } from '../internal/errors.js';
|
|
3
3
|
import { eth_getBlockByNumber } from '../rpc/actions.js';
|
|
4
4
|
import { buildEvents, decodeEvents } from './events.js';
|
|
5
|
+
import { createInMemoryHistoricalSync } from '../sync-historical/in-memory.js';
|
|
5
6
|
import { createHistoricalSync } from '../sync-historical/index.js';
|
|
6
7
|
import { createSyncStore } from '../sync-store/index.js';
|
|
7
8
|
import { decodeCheckpoint, encodeCheckpoint, MAX_CHECKPOINT, min, ZERO_CHECKPOINT, } from '../utils/checkpoint.js';
|
|
8
9
|
import { estimate } from '../utils/estimate.js';
|
|
10
|
+
import { getFinalizedBlock } from '../utils/finality.js';
|
|
9
11
|
import { formatPercentage } from '../utils/format.js';
|
|
10
12
|
import { bufferAsyncGenerator, createCallbackGenerator, mergeAsyncGenerators, } from '../utils/generators.js';
|
|
11
13
|
import { intervalSum } from '../utils/interval.js';
|
|
@@ -17,6 +19,7 @@ import { getOmnichainCheckpoint } from "./omnichain.js";
|
|
|
17
19
|
export async function* getHistoricalEventsOmnichain(params) {
|
|
18
20
|
let pendingEvents = [];
|
|
19
21
|
let isCatchup = false;
|
|
22
|
+
let lastUnfinalizedRefetch = Date.now();
|
|
20
23
|
const perChainCursor = new Map();
|
|
21
24
|
while (true) {
|
|
22
25
|
const eventGenerators = Array.from(params.perChainSync.entries()).map(async function* ([chain, { syncProgress, childAddresses, cachedIntervals },]) {
|
|
@@ -43,6 +46,10 @@ export async function* getHistoricalEventsOmnichain(params) {
|
|
|
43
46
|
chain.id) {
|
|
44
47
|
from = crashRecoveryCheckpoint;
|
|
45
48
|
}
|
|
49
|
+
else if (chain.cacheRpcRequests === false) {
|
|
50
|
+
// Note: When the rpc cache is disabled, blocks in the sync-store can be stale.
|
|
51
|
+
from = syncProgress.getCheckpoint({ tag: "start" });
|
|
52
|
+
}
|
|
46
53
|
else {
|
|
47
54
|
const fromBlock = await createSyncStore({
|
|
48
55
|
common: params.common,
|
|
@@ -107,7 +114,7 @@ export async function* getHistoricalEventsOmnichain(params) {
|
|
|
107
114
|
Number(decodeCheckpoint(to).blockNumber),
|
|
108
115
|
]),
|
|
109
116
|
});
|
|
110
|
-
const
|
|
117
|
+
const eventGeneratorParams = {
|
|
111
118
|
common: params.common,
|
|
112
119
|
chain,
|
|
113
120
|
rpc,
|
|
@@ -121,7 +128,10 @@ export async function* getHistoricalEventsOmnichain(params) {
|
|
|
121
128
|
(params.indexingBuild.chains.length + 1)) + 6,
|
|
122
129
|
database: params.database,
|
|
123
130
|
isCatchup,
|
|
124
|
-
}
|
|
131
|
+
};
|
|
132
|
+
const eventGenerator = chain.cacheRpcRequests
|
|
133
|
+
? getLocalEventGenerator(eventGeneratorParams)
|
|
134
|
+
: getLocalInMemoryEventGenerator(eventGeneratorParams);
|
|
125
135
|
for await (let { events: rawEvents, checkpoint, blockRange, } of eventGenerator) {
|
|
126
136
|
const endClock = startClock();
|
|
127
137
|
let events = decodeEvents(params.common, chain, eventCallbacks, rawEvents);
|
|
@@ -179,6 +189,11 @@ export async function* getHistoricalEventsOmnichain(params) {
|
|
|
179
189
|
for await (const mergeResults of eventGenerator) {
|
|
180
190
|
yield { type: "events", result: mergeResults };
|
|
181
191
|
}
|
|
192
|
+
if (params.indexingBuild.chains.every((chain) => Date.now() - lastUnfinalizedRefetch <
|
|
193
|
+
Math.max(chain.reorgWindow * 1_000, 30_000))) {
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
lastUnfinalizedRefetch = Date.now();
|
|
182
197
|
const context = {
|
|
183
198
|
logger: params.common.logger.child({ action: "refetch_finalized_block" }),
|
|
184
199
|
retryNullBlockRequest: true,
|
|
@@ -187,10 +202,12 @@ export async function* getHistoricalEventsOmnichain(params) {
|
|
|
187
202
|
const finalizedBlocks = await Promise.all(params.indexingBuild.chains.map((chain, i) => {
|
|
188
203
|
const rpc = params.indexingBuild.rpcs[i];
|
|
189
204
|
return eth_getBlockByNumber(rpc, ["latest", false], context)
|
|
190
|
-
.then((latest) =>
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
205
|
+
.then((latest) => getFinalizedBlock({
|
|
206
|
+
chain,
|
|
207
|
+
rpc,
|
|
208
|
+
latestBlock: latest,
|
|
209
|
+
lowerBound: params.perChainSync.get(chain).syncProgress.finalized,
|
|
210
|
+
}))
|
|
194
211
|
.then((finalizedBlock) => {
|
|
195
212
|
const finalizedBlockNumber = hexToNumber(finalizedBlock.number);
|
|
196
213
|
params.common.logger.debug({
|
|
@@ -203,23 +220,14 @@ export async function* getHistoricalEventsOmnichain(params) {
|
|
|
203
220
|
return finalizedBlock;
|
|
204
221
|
});
|
|
205
222
|
}));
|
|
206
|
-
let shouldCatchup = false;
|
|
207
223
|
for (let i = 0; i < params.indexingBuild.chains.length; i++) {
|
|
208
224
|
const chain = params.indexingBuild.chains[i];
|
|
209
225
|
const oldFinalizedBlock = params.perChainSync.get(chain).syncProgress.finalized;
|
|
210
|
-
const newFinalizedBlock = finalizedBlocks[i];
|
|
211
|
-
if (hexToNumber(newFinalizedBlock.number) -
|
|
212
|
-
hexToNumber(oldFinalizedBlock.number) >
|
|
213
|
-
chain.finalityBlockCount) {
|
|
214
|
-
shouldCatchup = true;
|
|
215
|
-
break;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (shouldCatchup === false)
|
|
219
|
-
break;
|
|
220
|
-
for (let i = 0; i < params.indexingBuild.chains.length; i++) {
|
|
221
|
-
const chain = params.indexingBuild.chains[i];
|
|
222
226
|
const finalizedBlock = finalizedBlocks[i];
|
|
227
|
+
if (hexToNumber(finalizedBlock.number) <
|
|
228
|
+
hexToNumber(oldFinalizedBlock.number)) {
|
|
229
|
+
throw new Error(`Finalized block for chain "${chain.name}" cannot move backwards`);
|
|
230
|
+
}
|
|
223
231
|
params.perChainSync.get(chain).syncProgress.finalized = finalizedBlock;
|
|
224
232
|
}
|
|
225
233
|
isCatchup = true;
|
|
@@ -248,6 +256,10 @@ export async function* getHistoricalEventsMultichain(params) {
|
|
|
248
256
|
chain.id) {
|
|
249
257
|
from = crashRecoveryCheckpoint;
|
|
250
258
|
}
|
|
259
|
+
else if (chain.cacheRpcRequests === false) {
|
|
260
|
+
// Note: When the rpc cache is disabled, blocks in the sync-store can be stale.
|
|
261
|
+
from = syncProgress.getCheckpoint({ tag: "start" });
|
|
262
|
+
}
|
|
251
263
|
else {
|
|
252
264
|
const fromBlock = await createSyncStore({
|
|
253
265
|
common: params.common,
|
|
@@ -289,7 +301,7 @@ export async function* getHistoricalEventsMultichain(params) {
|
|
|
289
301
|
Number(decodeCheckpoint(to).blockNumber),
|
|
290
302
|
]),
|
|
291
303
|
});
|
|
292
|
-
const
|
|
304
|
+
const eventGeneratorParams = {
|
|
293
305
|
common: params.common,
|
|
294
306
|
chain,
|
|
295
307
|
rpc,
|
|
@@ -303,7 +315,10 @@ export async function* getHistoricalEventsMultichain(params) {
|
|
|
303
315
|
(params.indexingBuild.chains.length + 1)) + 6,
|
|
304
316
|
database: params.database,
|
|
305
317
|
isCatchup,
|
|
306
|
-
}
|
|
318
|
+
};
|
|
319
|
+
const eventGenerator = chain.cacheRpcRequests
|
|
320
|
+
? getLocalEventGenerator(eventGeneratorParams)
|
|
321
|
+
: getLocalInMemoryEventGenerator(eventGeneratorParams);
|
|
307
322
|
for await (const { events: rawEvents, checkpoint, blockRange, } of eventGenerator) {
|
|
308
323
|
const endClock = startClock();
|
|
309
324
|
let events = decodeEvents(params.common, chain, eventCallbacks, rawEvents);
|
|
@@ -335,7 +350,8 @@ export async function* getHistoricalEventsMultichain(params) {
|
|
|
335
350
|
perChainCursor.set(chain, to);
|
|
336
351
|
});
|
|
337
352
|
yield* mergeAsyncGenerators(eventGenerators);
|
|
338
|
-
if (Date.now() - lastUnfinalizedRefetch <
|
|
353
|
+
if (params.indexingBuild.chains.every((chain) => Date.now() - lastUnfinalizedRefetch <
|
|
354
|
+
Math.max(chain.reorgWindow * 1_000, 30_000))) {
|
|
339
355
|
break;
|
|
340
356
|
}
|
|
341
357
|
lastUnfinalizedRefetch = Date.now();
|
|
@@ -347,10 +363,12 @@ export async function* getHistoricalEventsMultichain(params) {
|
|
|
347
363
|
const finalizedBlocks = await Promise.all(params.indexingBuild.chains.map((chain, i) => {
|
|
348
364
|
const rpc = params.indexingBuild.rpcs[i];
|
|
349
365
|
return eth_getBlockByNumber(rpc, ["latest", false], context)
|
|
350
|
-
.then((
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
366
|
+
.then((latestBlock) => getFinalizedBlock({
|
|
367
|
+
chain,
|
|
368
|
+
rpc,
|
|
369
|
+
latestBlock,
|
|
370
|
+
lowerBound: params.perChainSync.get(chain).syncProgress.finalized,
|
|
371
|
+
}))
|
|
354
372
|
.then((finalizedBlock) => {
|
|
355
373
|
const finalizedBlockNumber = hexToNumber(finalizedBlock.number);
|
|
356
374
|
params.common.logger.debug({
|
|
@@ -363,23 +381,14 @@ export async function* getHistoricalEventsMultichain(params) {
|
|
|
363
381
|
return finalizedBlock;
|
|
364
382
|
});
|
|
365
383
|
}));
|
|
366
|
-
let shouldCatchup = false;
|
|
367
384
|
for (let i = 0; i < params.indexingBuild.chains.length; i++) {
|
|
368
385
|
const chain = params.indexingBuild.chains[i];
|
|
386
|
+
const finalizedBlock = finalizedBlocks[i];
|
|
369
387
|
const oldFinalizedBlock = params.perChainSync.get(chain).syncProgress.finalized;
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
chain.finalityBlockCount) {
|
|
374
|
-
shouldCatchup = true;
|
|
375
|
-
break;
|
|
388
|
+
if (hexToNumber(finalizedBlock.number) <
|
|
389
|
+
hexToNumber(oldFinalizedBlock.number)) {
|
|
390
|
+
continue;
|
|
376
391
|
}
|
|
377
|
-
}
|
|
378
|
-
if (shouldCatchup === false)
|
|
379
|
-
break;
|
|
380
|
-
for (let i = 0; i < params.indexingBuild.chains.length; i++) {
|
|
381
|
-
const chain = params.indexingBuild.chains[i];
|
|
382
|
-
const finalizedBlock = finalizedBlocks[i];
|
|
383
392
|
params.perChainSync.get(chain).syncProgress.finalized = finalizedBlock;
|
|
384
393
|
}
|
|
385
394
|
isCatchup = true;
|
|
@@ -429,7 +438,7 @@ export async function* getHistoricalEventsIsolated(params) {
|
|
|
429
438
|
Number(decodeCheckpoint(to).blockNumber),
|
|
430
439
|
]),
|
|
431
440
|
});
|
|
432
|
-
const
|
|
441
|
+
const eventGeneratorParams = {
|
|
433
442
|
common: params.common,
|
|
434
443
|
chain: params.chain,
|
|
435
444
|
rpc,
|
|
@@ -443,7 +452,10 @@ export async function* getHistoricalEventsIsolated(params) {
|
|
|
443
452
|
(params.indexingBuild.chains.length + 1)) + 6,
|
|
444
453
|
database: params.database,
|
|
445
454
|
isCatchup,
|
|
446
|
-
}
|
|
455
|
+
};
|
|
456
|
+
const eventGenerator = params.chain.cacheRpcRequests
|
|
457
|
+
? getLocalEventGenerator(eventGeneratorParams)
|
|
458
|
+
: getLocalInMemoryEventGenerator(eventGeneratorParams);
|
|
447
459
|
for await (const { events: rawEvents, checkpoint, blockRange, } of eventGenerator) {
|
|
448
460
|
const endClock = startClock();
|
|
449
461
|
let events = decodeEvents(params.common, params.chain, eventCallbacks, rawEvents);
|
|
@@ -473,7 +485,8 @@ export async function* getHistoricalEventsIsolated(params) {
|
|
|
473
485
|
yield { chainId: params.chain.id, events, checkpoint, blockRange };
|
|
474
486
|
}
|
|
475
487
|
cursor = to;
|
|
476
|
-
if (Date.now() - lastUnfinalizedRefetch <
|
|
488
|
+
if (params.indexingBuild.chains.every((chain) => Date.now() - lastUnfinalizedRefetch <
|
|
489
|
+
Math.max(chain.reorgWindow * 1_000, 30_000))) {
|
|
477
490
|
break;
|
|
478
491
|
}
|
|
479
492
|
lastUnfinalizedRefetch = Date.now();
|
|
@@ -481,10 +494,12 @@ export async function* getHistoricalEventsIsolated(params) {
|
|
|
481
494
|
logger: params.common.logger.child({ action: "refetch_finalized_block" }),
|
|
482
495
|
};
|
|
483
496
|
const endClock = startClock();
|
|
484
|
-
const finalizedBlock = await eth_getBlockByNumber(rpc, ["latest", false], context).then((latest) =>
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
497
|
+
const finalizedBlock = await eth_getBlockByNumber(rpc, ["latest", false], context).then((latest) => getFinalizedBlock({
|
|
498
|
+
chain: params.chain,
|
|
499
|
+
rpc,
|
|
500
|
+
latestBlock: latest,
|
|
501
|
+
lowerBound: params.syncProgress.finalized,
|
|
502
|
+
}));
|
|
488
503
|
const finalizedBlockNumber = hexToNumber(finalizedBlock.number);
|
|
489
504
|
params.common.logger.debug({
|
|
490
505
|
msg: "Refetched finalized block for backfill cutover",
|
|
@@ -493,9 +508,7 @@ export async function* getHistoricalEventsIsolated(params) {
|
|
|
493
508
|
finalized_block: finalizedBlockNumber,
|
|
494
509
|
duration: endClock(),
|
|
495
510
|
});
|
|
496
|
-
if (hexToNumber(
|
|
497
|
-
hexToNumber(params.syncProgress.finalized.number) <=
|
|
498
|
-
params.chain.finalityBlockCount) {
|
|
511
|
+
if (finalizedBlockNumber < hexToNumber(params.syncProgress.finalized.number)) {
|
|
499
512
|
break;
|
|
500
513
|
}
|
|
501
514
|
params.syncProgress.finalized = finalizedBlock;
|
|
@@ -649,7 +662,7 @@ export async function* getLocalEventGenerator(params) {
|
|
|
649
662
|
await new Promise(setImmediate);
|
|
650
663
|
const blockRange = [cursor, queryCursor];
|
|
651
664
|
cursor = queryCursor + 1;
|
|
652
|
-
if (cursor
|
|
665
|
+
if (cursor > toBlock) {
|
|
653
666
|
yield { events, checkpoint: params.to, blockRange };
|
|
654
667
|
}
|
|
655
668
|
else if (blocks.length > 0) {
|
|
@@ -664,6 +677,137 @@ export async function* getLocalEventGenerator(params) {
|
|
|
664
677
|
}
|
|
665
678
|
}
|
|
666
679
|
}
|
|
680
|
+
export async function* getLocalInMemoryEventGenerator(params) {
|
|
681
|
+
const backfillEndClock = startClock();
|
|
682
|
+
const label = { chain: params.chain.name };
|
|
683
|
+
let first = hexToNumber(params.syncProgress.start.number);
|
|
684
|
+
const last = params.syncProgress.end === undefined
|
|
685
|
+
? params.syncProgress.finalized
|
|
686
|
+
: hexToNumber(params.syncProgress.end.number) >
|
|
687
|
+
hexToNumber(params.syncProgress.finalized.number)
|
|
688
|
+
? params.syncProgress.finalized
|
|
689
|
+
: params.syncProgress.end;
|
|
690
|
+
if (hexToNumber(params.syncProgress.start.number) >
|
|
691
|
+
hexToNumber(params.syncProgress.finalized.number)) {
|
|
692
|
+
params.syncProgress.current = params.syncProgress.finalized;
|
|
693
|
+
params.common.logger.info({
|
|
694
|
+
msg: "Skipped fetching backfill JSON-RPC data (chain only requires live indexing)",
|
|
695
|
+
chain: params.chain.name,
|
|
696
|
+
chain_id: params.chain.id,
|
|
697
|
+
finalized_block: hexToNumber(params.syncProgress.finalized.number),
|
|
698
|
+
start_block: hexToNumber(params.syncProgress.start.number),
|
|
699
|
+
});
|
|
700
|
+
params.common.metrics.ponder_sync_block.set(label, hexToNumber(params.syncProgress.current.number));
|
|
701
|
+
params.common.metrics.ponder_sync_block_timestamp.set(label, hexToNumber(params.syncProgress.current.timestamp));
|
|
702
|
+
params.common.metrics.ponder_historical_total_blocks.set(label, 0);
|
|
703
|
+
params.common.metrics.ponder_historical_cached_blocks.set(label, 0);
|
|
704
|
+
params.common.metrics.ponder_historical_completed_blocks.set(label, 0);
|
|
705
|
+
return;
|
|
706
|
+
}
|
|
707
|
+
const totalInterval = [
|
|
708
|
+
hexToNumber(params.syncProgress.start.number),
|
|
709
|
+
hexToNumber(last.number),
|
|
710
|
+
];
|
|
711
|
+
const total = totalInterval[1] - totalInterval[0] + 1;
|
|
712
|
+
params.common.metrics.ponder_historical_total_blocks.set(label, total);
|
|
713
|
+
params.common.metrics.ponder_historical_cached_blocks.set(label, 0);
|
|
714
|
+
if (params.syncProgress.current === undefined) {
|
|
715
|
+
if (params.isCatchup === false) {
|
|
716
|
+
params.common.logger.info({
|
|
717
|
+
msg: "Started fetching backfill JSON-RPC data",
|
|
718
|
+
chain: params.chain.name,
|
|
719
|
+
chain_id: params.chain.id,
|
|
720
|
+
});
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
else {
|
|
724
|
+
params.common.metrics.ponder_sync_block.set(label, hexToNumber(params.syncProgress.current.number));
|
|
725
|
+
params.common.metrics.ponder_sync_block_timestamp.set(label, hexToNumber(params.syncProgress.current.timestamp));
|
|
726
|
+
if (params.isCatchup === false) {
|
|
727
|
+
params.common.logger.info({
|
|
728
|
+
msg: "Started fetching backfill JSON-RPC data",
|
|
729
|
+
chain: params.chain.name,
|
|
730
|
+
chain_id: params.chain.id,
|
|
731
|
+
});
|
|
732
|
+
}
|
|
733
|
+
first = Math.max(first, hexToNumber(params.syncProgress.current.number) + 1);
|
|
734
|
+
}
|
|
735
|
+
const fromBlock = Number(decodeCheckpoint(params.from).blockNumber);
|
|
736
|
+
const { intervals: requiredIntervals } = getRequiredIntervalsWithFilters({
|
|
737
|
+
interval: [fromBlock, hexToNumber(last.number)],
|
|
738
|
+
filters: params.eventCallbacks.map(({ filter }) => filter),
|
|
739
|
+
cachedIntervals: params.cachedIntervals,
|
|
740
|
+
});
|
|
741
|
+
const { factoryIntervals: requiredFactoryIntervals } = getRequiredIntervalsWithFilters({
|
|
742
|
+
interval: [first, hexToNumber(last.number)],
|
|
743
|
+
filters: params.eventCallbacks.map(({ filter }) => filter),
|
|
744
|
+
cachedIntervals: params.cachedIntervals,
|
|
745
|
+
});
|
|
746
|
+
const historicalSync = createInMemoryHistoricalSync({
|
|
747
|
+
common: params.common,
|
|
748
|
+
chain: params.chain,
|
|
749
|
+
rpc: params.rpc,
|
|
750
|
+
childAddress: params.childAddresses,
|
|
751
|
+
});
|
|
752
|
+
params.common.metrics.ponder_historical_completed_blocks.inc(label, Math.max(0, Math.min(fromBlock, hexToNumber(last.number) + 1) - first));
|
|
753
|
+
let cursor = fromBlock;
|
|
754
|
+
for await (const blockData of historicalSync.syncBlockData({
|
|
755
|
+
requiredIntervals,
|
|
756
|
+
requiredFactoryIntervals,
|
|
757
|
+
})) {
|
|
758
|
+
const endClock = startClock();
|
|
759
|
+
const rawEvents = buildEvents({
|
|
760
|
+
eventCallbacks: params.eventCallbacks,
|
|
761
|
+
blocks: blockData.blocks,
|
|
762
|
+
logs: blockData.logs,
|
|
763
|
+
transactions: blockData.transactions,
|
|
764
|
+
transactionReceipts: blockData.transactionReceipts,
|
|
765
|
+
traces: blockData.traces,
|
|
766
|
+
childAddresses: params.childAddresses,
|
|
767
|
+
chainId: params.chain.id,
|
|
768
|
+
});
|
|
769
|
+
params.common.logger.trace({
|
|
770
|
+
msg: "Constructed events from block data",
|
|
771
|
+
chain: params.chain.name,
|
|
772
|
+
chain_id: params.chain.id,
|
|
773
|
+
block_range: JSON.stringify([cursor, blockData.cursor]),
|
|
774
|
+
event_count: rawEvents.length,
|
|
775
|
+
duration: endClock(),
|
|
776
|
+
});
|
|
777
|
+
params.common.metrics.ponder_historical_extract_duration.inc({ step: "build" }, endClock());
|
|
778
|
+
params.common.metrics.ponder_historical_completed_blocks.inc(label, blockData.cursor - cursor + 1);
|
|
779
|
+
const blockRange = [cursor, blockData.cursor];
|
|
780
|
+
cursor = blockData.cursor + 1;
|
|
781
|
+
const lastBlock = blockData.blocks[blockData.blocks.length - 1];
|
|
782
|
+
params.common.metrics.ponder_sync_block.set(label, Number(lastBlock.number));
|
|
783
|
+
params.common.metrics.ponder_sync_block_timestamp.set(label, Number(lastBlock.timestamp));
|
|
784
|
+
const checkpoint = encodeCheckpoint({
|
|
785
|
+
...MAX_CHECKPOINT,
|
|
786
|
+
blockTimestamp: lastBlock.timestamp,
|
|
787
|
+
chainId: BigInt(params.chain.id),
|
|
788
|
+
blockNumber: lastBlock.number,
|
|
789
|
+
});
|
|
790
|
+
yield { events: rawEvents, checkpoint, blockRange };
|
|
791
|
+
}
|
|
792
|
+
// Advance through the entire scanned range, including blocks without events.
|
|
793
|
+
params.syncProgress.current = last;
|
|
794
|
+
params.common.metrics.ponder_historical_completed_blocks.inc(label, Math.max(0, hexToNumber(last.number) - cursor + 1));
|
|
795
|
+
params.common.metrics.ponder_sync_block.set(label, hexToNumber(last.number));
|
|
796
|
+
params.common.metrics.ponder_sync_block_timestamp.set(label, hexToNumber(last.timestamp));
|
|
797
|
+
if (cursor <= hexToNumber(last.number)) {
|
|
798
|
+
yield {
|
|
799
|
+
events: [],
|
|
800
|
+
checkpoint: params.to,
|
|
801
|
+
blockRange: [cursor, hexToNumber(last.number)],
|
|
802
|
+
};
|
|
803
|
+
}
|
|
804
|
+
params.common.logger.info({
|
|
805
|
+
msg: "Finished fetching backfill JSON-RPC data",
|
|
806
|
+
chain: params.chain.name,
|
|
807
|
+
chain_id: params.chain.id,
|
|
808
|
+
duration: backfillEndClock(),
|
|
809
|
+
});
|
|
810
|
+
}
|
|
667
811
|
export async function* getLocalSyncGenerator(params) {
|
|
668
812
|
const backfillEndClock = startClock();
|
|
669
813
|
const label = { chain: params.chain.name };
|
|
@@ -694,6 +838,7 @@ export async function* getLocalSyncGenerator(params) {
|
|
|
694
838
|
params.common.metrics.ponder_sync_block_timestamp.set(label, hexToNumber(params.syncProgress.current.timestamp));
|
|
695
839
|
params.common.metrics.ponder_historical_total_blocks.set(label, 0);
|
|
696
840
|
params.common.metrics.ponder_historical_cached_blocks.set(label, 0);
|
|
841
|
+
params.common.metrics.ponder_historical_completed_blocks.set(label, 0);
|
|
697
842
|
return;
|
|
698
843
|
}
|
|
699
844
|
const totalInterval = [
|
|
@@ -709,8 +854,17 @@ export async function* getLocalSyncGenerator(params) {
|
|
|
709
854
|
const total = totalInterval[1] - totalInterval[0] + 1;
|
|
710
855
|
params.common.metrics.ponder_historical_total_blocks.set(label, total);
|
|
711
856
|
params.common.metrics.ponder_historical_cached_blocks.set(label, total - required);
|
|
712
|
-
|
|
713
|
-
|
|
857
|
+
if (params.syncProgress.current === undefined) {
|
|
858
|
+
if (params.isCatchup === false) {
|
|
859
|
+
params.common.logger.info({
|
|
860
|
+
msg: "Started fetching backfill JSON-RPC data",
|
|
861
|
+
chain: params.chain.name,
|
|
862
|
+
chain_id: params.chain.id,
|
|
863
|
+
cache_rate: "0%",
|
|
864
|
+
});
|
|
865
|
+
}
|
|
866
|
+
}
|
|
867
|
+
else {
|
|
714
868
|
params.common.metrics.ponder_sync_block.set(label, hexToNumber(params.syncProgress.current.number));
|
|
715
869
|
params.common.metrics.ponder_sync_block_timestamp.set(label, hexToNumber(params.syncProgress.current.timestamp));
|
|
716
870
|
// `getEvents` can make progress without calling `sync`, so immediately "yield"
|
|
@@ -739,14 +893,6 @@ export async function* getLocalSyncGenerator(params) {
|
|
|
739
893
|
}
|
|
740
894
|
first = Math.max(first, hexToNumber(params.syncProgress.current.number) + 1);
|
|
741
895
|
}
|
|
742
|
-
else {
|
|
743
|
-
params.common.logger.info({
|
|
744
|
-
msg: "Started fetching backfill JSON-RPC data",
|
|
745
|
-
chain: params.chain.name,
|
|
746
|
-
chain_id: params.chain.id,
|
|
747
|
-
cache_rate: "0%",
|
|
748
|
-
});
|
|
749
|
-
}
|
|
750
896
|
const historicalSync = createHistoricalSync(params);
|
|
751
897
|
const { callback: intervalCallback, generator: intervalGenerator } = createCallbackGenerator();
|
|
752
898
|
intervalCallback({
|
|
@@ -806,13 +952,11 @@ export async function* getLocalSyncGenerator(params) {
|
|
|
806
952
|
logs,
|
|
807
953
|
syncStore,
|
|
808
954
|
});
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
});
|
|
815
|
-
}
|
|
955
|
+
await syncStore.insertIntervals({
|
|
956
|
+
intervals: requiredIntervals,
|
|
957
|
+
factoryIntervals: requiredFactoryIntervals,
|
|
958
|
+
chainId: params.chain.id,
|
|
959
|
+
});
|
|
816
960
|
return closestToTipBlock;
|
|
817
961
|
})
|
|
818
962
|
.catch((error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historical.js","sourceRoot":"","sources":["../../../src/runtime/historical.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"historical.js","sourceRoot":"","sources":["../../../src/runtime/historical.ts"],"names":[],"mappings":"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"}
|