ponder 0.8.28 → 0.8.30
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 +17 -7
- package/dist/bin/ponder.js.map +1 -1
- package/package.json +1 -1
- package/src/database/index.ts +2 -2
- package/src/sync/index.ts +23 -7
package/dist/bin/ponder.js
CHANGED
|
@@ -4651,7 +4651,7 @@ var createDatabase = ({
|
|
|
4651
4651
|
(column) => `"${getColumnCasing(column, "snake_case")}"`
|
|
4652
4652
|
);
|
|
4653
4653
|
await sql2.raw(`
|
|
4654
|
-
CREATE OR REPLACE FUNCTION ${tableName.triggerFn}
|
|
4654
|
+
CREATE OR REPLACE FUNCTION "${preBuild.namespace}".${tableName.triggerFn}
|
|
4655
4655
|
RETURNS TRIGGER AS $$
|
|
4656
4656
|
BEGIN
|
|
4657
4657
|
IF TG_OP = 'INSERT' THEN
|
|
@@ -4671,7 +4671,7 @@ $$ LANGUAGE plpgsql
|
|
|
4671
4671
|
await sql2.raw(`
|
|
4672
4672
|
CREATE OR REPLACE TRIGGER "${tableName.trigger}"
|
|
4673
4673
|
AFTER INSERT OR UPDATE OR DELETE ON "${preBuild.namespace}"."${tableName.sql}"
|
|
4674
|
-
FOR EACH ROW EXECUTE FUNCTION ${tableName.triggerFn};
|
|
4674
|
+
FOR EACH ROW EXECUTE FUNCTION "${preBuild.namespace}".${tableName.triggerFn};
|
|
4675
4675
|
`).execute(qb.internal);
|
|
4676
4676
|
}
|
|
4677
4677
|
});
|
|
@@ -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);
|