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.
@@ -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) => onRealtimeSyncEvent({ event, network }).catch((error) => {
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);