ponder 0.8.28 → 0.8.29
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/dist/bin/ponder.js +15 -5
- package/dist/bin/ponder.js.map +1 -1
- package/package.json +1 -1
- package/src/sync/index.ts +23 -7
package/dist/bin/ponder.js
CHANGED
|
@@ -10357,12 +10357,18 @@ var createSync = async (args) => {
|
|
|
10357
10357
|
network,
|
|
10358
10358
|
onFatalError: args.onFatalError
|
|
10359
10359
|
});
|
|
10360
|
+
const realtimeQueue = createQueue({
|
|
10361
|
+
initialStart: true,
|
|
10362
|
+
browser: false,
|
|
10363
|
+
concurrency: 1,
|
|
10364
|
+
worker: async (event) => onRealtimeSyncEvent({ event, network })
|
|
10365
|
+
});
|
|
10360
10366
|
const realtimeSync = createRealtimeSync({
|
|
10361
10367
|
common: args.common,
|
|
10362
10368
|
sources,
|
|
10363
10369
|
requestQueue,
|
|
10364
10370
|
network,
|
|
10365
|
-
onEvent: (event) =>
|
|
10371
|
+
onEvent: (event) => realtimeQueue.add(event).catch((error) => {
|
|
10366
10372
|
args.common.logger.error({
|
|
10367
10373
|
service: "sync",
|
|
10368
10374
|
msg: `Fatal error: Unable to process ${event.type} event`,
|
|
@@ -10403,6 +10409,7 @@ var createSync = async (args) => {
|
|
|
10403
10409
|
syncProgress,
|
|
10404
10410
|
historicalSync,
|
|
10405
10411
|
realtimeSync,
|
|
10412
|
+
realtimeQueue,
|
|
10406
10413
|
unfinalizedBlocks: []
|
|
10407
10414
|
});
|
|
10408
10415
|
status[network.name] = { block: null, ready: false };
|
|
@@ -10650,9 +10657,6 @@ var createSync = async (args) => {
|
|
|
10650
10657
|
const prev = getOmnichainCheckpoint("finalized");
|
|
10651
10658
|
syncProgress.finalized = event.block;
|
|
10652
10659
|
const checkpoint = getOmnichainCheckpoint("finalized");
|
|
10653
|
-
if (checkpoint > prev) {
|
|
10654
|
-
args.onRealtimeEvent({ type: "finalize", checkpoint });
|
|
10655
|
-
}
|
|
10656
10660
|
if (getChainCheckpoint({ syncProgress, network, tag: "finalized" }) > getOmnichainCheckpoint("current")) {
|
|
10657
10661
|
args.common.logger.warn({
|
|
10658
10662
|
service: "sync",
|
|
@@ -10721,6 +10725,9 @@ var createSync = async (args) => {
|
|
|
10721
10725
|
chainId: network.chainId
|
|
10722
10726
|
});
|
|
10723
10727
|
}
|
|
10728
|
+
if (checkpoint > prev) {
|
|
10729
|
+
args.onRealtimeEvent({ type: "finalize", checkpoint });
|
|
10730
|
+
}
|
|
10724
10731
|
if (isSyncEnd(syncProgress)) {
|
|
10725
10732
|
args.common.metrics.ponder_sync_is_realtime.set(
|
|
10726
10733
|
{ network: network.name },
|
|
@@ -10838,8 +10845,11 @@ var createSync = async (args) => {
|
|
|
10838
10845
|
isKilled = true;
|
|
10839
10846
|
const promises = [];
|
|
10840
10847
|
for (const network of args.networks) {
|
|
10841
|
-
const { historicalSync, realtimeSync } = perNetworkSync.get(network);
|
|
10848
|
+
const { historicalSync, realtimeSync, realtimeQueue } = perNetworkSync.get(network);
|
|
10842
10849
|
historicalSync.kill();
|
|
10850
|
+
realtimeQueue.pause();
|
|
10851
|
+
realtimeQueue.clear();
|
|
10852
|
+
promises.push(realtimeQueue.onIdle());
|
|
10843
10853
|
promises.push(realtimeSync.kill());
|
|
10844
10854
|
}
|
|
10845
10855
|
await Promise.all(promises);
|