ponder 0.9.8 → 0.9.9

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.
Files changed (90) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/esm/bin/commands/list.js +25 -31
  3. package/dist/esm/bin/commands/list.js.map +1 -1
  4. package/dist/esm/bin/utils/run.js +111 -98
  5. package/dist/esm/bin/utils/run.js.map +1 -1
  6. package/dist/esm/database/index.js +335 -288
  7. package/dist/esm/database/index.js.map +1 -1
  8. package/dist/esm/drizzle/index.js +9 -16
  9. package/dist/esm/drizzle/index.js.map +1 -1
  10. package/dist/esm/drizzle/kit/index.js +17 -2
  11. package/dist/esm/drizzle/kit/index.js.map +1 -1
  12. package/dist/esm/graphql/index.js +1 -1
  13. package/dist/esm/graphql/index.js.map +1 -1
  14. package/dist/esm/graphql/middleware.js +5 -5
  15. package/dist/esm/graphql/middleware.js.map +1 -1
  16. package/dist/esm/indexing/index.js +285 -8
  17. package/dist/esm/indexing/index.js.map +1 -1
  18. package/dist/esm/indexing/ponderActions.js +2 -2
  19. package/dist/esm/indexing/ponderActions.js.map +1 -1
  20. package/dist/esm/indexing-store/cache.js +355 -0
  21. package/dist/esm/indexing-store/cache.js.map +1 -0
  22. package/dist/esm/indexing-store/historical.js +144 -466
  23. package/dist/esm/indexing-store/historical.js.map +1 -1
  24. package/dist/esm/indexing-store/index.js +13 -1
  25. package/dist/esm/indexing-store/index.js.map +1 -1
  26. package/dist/esm/indexing-store/realtime.js +9 -49
  27. package/dist/esm/indexing-store/realtime.js.map +1 -1
  28. package/dist/esm/internal/options.js +1 -1
  29. package/dist/esm/server/index.js +2 -5
  30. package/dist/esm/server/index.js.map +1 -1
  31. package/dist/esm/sync/index.js +2 -2
  32. package/dist/esm/utils/pg.js +17 -0
  33. package/dist/esm/utils/pg.js.map +1 -1
  34. package/dist/types/bin/commands/list.d.ts.map +1 -1
  35. package/dist/types/bin/utils/run.d.ts.map +1 -1
  36. package/dist/types/database/index.d.ts +246 -26
  37. package/dist/types/database/index.d.ts.map +1 -1
  38. package/dist/types/drizzle/index.d.ts +7 -9
  39. package/dist/types/drizzle/index.d.ts.map +1 -1
  40. package/dist/types/drizzle/kit/index.d.ts +117 -0
  41. package/dist/types/drizzle/kit/index.d.ts.map +1 -1
  42. package/dist/types/graphql/middleware.d.ts.map +1 -1
  43. package/dist/types/indexing/index.d.ts +32 -559
  44. package/dist/types/indexing/index.d.ts.map +1 -1
  45. package/dist/types/indexing/ponderActions.d.ts +1 -2
  46. package/dist/types/indexing/ponderActions.d.ts.map +1 -1
  47. package/dist/types/indexing-store/cache.d.ts +96 -0
  48. package/dist/types/indexing-store/cache.d.ts.map +1 -0
  49. package/dist/types/indexing-store/historical.d.ts +8 -13
  50. package/dist/types/indexing-store/historical.d.ts.map +1 -1
  51. package/dist/types/indexing-store/index.d.ts +6 -5
  52. package/dist/types/indexing-store/index.d.ts.map +1 -1
  53. package/dist/types/indexing-store/realtime.d.ts +1 -1
  54. package/dist/types/indexing-store/realtime.d.ts.map +1 -1
  55. package/dist/types/internal/options.d.ts +2 -2
  56. package/dist/types/server/index.d.ts.map +1 -1
  57. package/dist/types/utils/pg.d.ts.map +1 -1
  58. package/package.json +2 -2
  59. package/src/bin/commands/list.ts +39 -50
  60. package/src/bin/utils/run.ts +137 -130
  61. package/src/database/index.ts +473 -357
  62. package/src/drizzle/index.ts +15 -19
  63. package/src/drizzle/kit/index.ts +23 -1
  64. package/src/graphql/index.ts +3 -3
  65. package/src/graphql/middleware.ts +5 -6
  66. package/src/indexing/index.ts +435 -16
  67. package/src/indexing/ponderActions.ts +2 -5
  68. package/src/indexing-store/cache.ts +548 -0
  69. package/src/indexing-store/historical.ts +175 -677
  70. package/src/indexing-store/index.ts +28 -9
  71. package/src/indexing-store/realtime.ts +16 -92
  72. package/src/internal/options.ts +2 -2
  73. package/src/server/index.ts +2 -7
  74. package/src/sync/index.ts +2 -2
  75. package/src/utils/pg.ts +21 -0
  76. package/dist/esm/indexing/service.js +0 -312
  77. package/dist/esm/indexing/service.js.map +0 -1
  78. package/dist/esm/indexing-store/metadata.js +0 -46
  79. package/dist/esm/indexing-store/metadata.js.map +0 -1
  80. package/dist/esm/utils/extend.js +0 -28
  81. package/dist/esm/utils/extend.js.map +0 -1
  82. package/dist/types/indexing/service.d.ts +0 -73
  83. package/dist/types/indexing/service.d.ts.map +0 -1
  84. package/dist/types/indexing-store/metadata.d.ts +0 -10
  85. package/dist/types/indexing-store/metadata.d.ts.map +0 -1
  86. package/dist/types/utils/extend.d.ts +0 -13
  87. package/dist/types/utils/extend.d.ts.map +0 -1
  88. package/src/indexing/service.ts +0 -501
  89. package/src/indexing-store/metadata.ts +0 -66
  90. package/src/utils/extend.ts +0 -55
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # ponder
2
2
 
3
+ ## 0.9.9
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1499](https://github.com/ponder-sh/ponder/pull/1499) [`6afbd955c3bb00bf35729593164eb568354b72a1`](https://github.com/ponder-sh/ponder/commit/6afbd955c3bb00bf35729593164eb568354b72a1) Thanks [@kyscott18](https://github.com/kyscott18)! - Improve historical indexing performance.
8
+
3
9
  ## 0.9.8
4
10
 
5
11
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import { createBuild } from '../../build/index.js';
2
- import { createDatabase, } from '../../database/index.js';
2
+ import { createDatabase, getPonderMeta } from '../../database/index.js';
3
3
  import { createLogger } from '../../internal/logger.js';
4
4
  import { MetricsService } from '../../internal/metrics.js';
5
5
  import { buildOptions } from '../../internal/options.js';
@@ -7,7 +7,9 @@ import { createShutdown } from '../../internal/shutdown.js';
7
7
  import { createTelemetry } from '../../internal/telemetry.js';
8
8
  import { printTable } from '../../ui/Table.js';
9
9
  import { formatEta } from '../../utils/format.js';
10
- import { sql } from "kysely";
10
+ import { and, eq, inArray, sql } from "drizzle-orm";
11
+ import { unionAll } from "drizzle-orm/pg-core";
12
+ import { pgSchema } from "drizzle-orm/pg-core";
11
13
  import { createExit } from "../utils/exit.js";
12
14
  const emptySchemaBuild = {
13
15
  schema: {},
@@ -46,36 +48,28 @@ export async function list({ cliOptions }) {
46
48
  preBuild: buildResult.result,
47
49
  schemaBuild: emptySchemaBuild,
48
50
  });
49
- const ponderSchemas = await database.qb.internal
50
- .selectFrom("information_schema.tables")
51
- // @ts-ignore
52
- .select(["table_name", "table_schema"])
53
- // @ts-ignore
54
- .where("table_name", "=", "_ponder_meta")
55
- .where(
51
+ const SCHEMATA = pgSchema("information_schema").table("schemata", (t) => ({
52
+ schema_name: t.text().notNull(),
53
+ }));
54
+ const TABLES = pgSchema("information_schema").table("tables", (t) => ({
55
+ table_name: t.text().notNull(),
56
+ table_schema: t.text().notNull(),
57
+ }));
58
+ const ponderSchemas = await database.qb.drizzle
59
+ .select({ tableName: TABLES.table_name, tableSchema: TABLES.table_schema })
60
+ .from(TABLES)
61
+ .where(and(eq(TABLES.table_name, "_ponder_meta"), inArray(TABLES.table_schema, database.qb.drizzle
62
+ .select({ schemaName: SCHEMATA.schema_name })
63
+ .from(SCHEMATA))));
64
+ const queries = ponderSchemas.map((row) => database.qb.drizzle
65
+ .select({
66
+ value: getPonderMeta(row.tableSchema).value,
67
+ schema: sql `${row.tableSchema}`.as("schema"),
68
+ })
69
+ .from(getPonderMeta(row.tableSchema))
70
+ .where(eq(getPonderMeta(row.tableSchema).key, "app")));
56
71
  // @ts-ignore
57
- "table_schema", "in", database.qb.internal
58
- // @ts-ignore
59
- .selectFrom("information_schema.schemata")
60
- // @ts-ignore
61
- .select("schema_name"))
62
- .execute();
63
- let union;
64
- for (const row of ponderSchemas) {
65
- // @ts-ignore
66
- const query = database.qb.internal
67
- .selectFrom(`${row.table_schema}._ponder_meta`)
68
- .select(["value", sql `${row.table_schema}`.as("schema")])
69
- // @ts-ignore
70
- .where("key", "=", "app");
71
- if (union === undefined) {
72
- union = query;
73
- }
74
- else {
75
- union = union.unionAll(query);
76
- }
77
- }
78
- const result = ponderSchemas.length === 0 ? [] : await union.execute();
72
+ const result = await unionAll(...queries);
79
73
  printTable({
80
74
  columns: [
81
75
  { title: "Schema", key: "table_schema", align: "left" },
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/bin/commands/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/bin/commands/list.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { runCodegen } from './codegen.js';
2
+ import { createIndexingCache } from '../../indexing-store/cache.js';
2
3
  import { createHistoricalIndexingStore } from '../../indexing-store/historical.js';
3
- import { getMetadataStore } from '../../indexing-store/metadata.js';
4
4
  import { createRealtimeIndexingStore } from '../../indexing-store/realtime.js';
5
- import { createIndexingService } from '../../indexing/index.js';
5
+ import { createIndexing } from '../../indexing/index.js';
6
6
  import { getAppProgress } from '../../internal/metrics.js';
7
7
  import { createSyncStore } from '../../sync-store/index.js';
8
8
  import { createSync, splitEvents } from '../../sync/index.js';
@@ -16,9 +16,9 @@ import { createRequestQueue } from '../../utils/requestQueue.js';
16
16
  export async function run({ common, preBuild, schemaBuild, indexingBuild, database, onFatalError, onReloadableError, }) {
17
17
  const initialCheckpoint = await database.recoverCheckpoint();
18
18
  await database.migrateSync();
19
+ runCodegen({ common });
19
20
  const requestQueues = indexingBuild.networks.map((network) => createRequestQueue({ network, common }));
20
21
  const syncStore = createSyncStore({ common, database });
21
- const metadataStore = getMetadataStore({ database });
22
22
  const realtimeMutex = createMutex();
23
23
  const sync = await createSync({
24
24
  common,
@@ -35,21 +35,19 @@ export async function run({ common, preBuild, schemaBuild, indexingBuild, databa
35
35
  initialCheckpoint,
36
36
  ordering: preBuild.ordering,
37
37
  });
38
- const indexingService = createIndexingService({
38
+ const indexing = createIndexing({
39
39
  common,
40
40
  indexingBuild,
41
41
  requestQueues,
42
42
  syncStore,
43
43
  });
44
- const historicalIndexingStore = createHistoricalIndexingStore({
44
+ const indexingCache = createIndexingCache({
45
45
  common,
46
- schemaBuild,
47
46
  database,
48
- isDatabaseEmpty: initialCheckpoint === ZERO_CHECKPOINT_STRING,
47
+ schemaBuild,
48
+ checkpoint: initialCheckpoint,
49
49
  });
50
- indexingService.setIndexingStore(historicalIndexingStore);
51
- runCodegen({ common });
52
- await metadataStore.setStatus(sync.getStatus());
50
+ await database.setStatus(sync.getStatus());
53
51
  for (const network of indexingBuild.networks) {
54
52
  const label = { network: network.name };
55
53
  common.metrics.ponder_historical_total_indexing_seconds.set(label, Math.max(sync.seconds[network.name].end - sync.seconds[network.name].start, 0));
@@ -62,92 +60,92 @@ export async function run({ common, preBuild, schemaBuild, indexingBuild, databa
62
60
  common.metrics.start_timestamp = Date.now();
63
61
  // If the initial checkpoint is zero, we need to run setup events.
64
62
  if (initialCheckpoint === ZERO_CHECKPOINT_STRING) {
65
- const result = await indexingService.processSetupEvents({
66
- sources: indexingBuild.sources,
67
- networks: indexingBuild.networks,
63
+ const historicalIndexingStore = createHistoricalIndexingStore({
64
+ common,
65
+ schemaBuild,
66
+ database,
67
+ indexingCache,
68
+ db: database.qb.drizzle,
69
+ });
70
+ const result = await indexing.processSetupEvents({
71
+ db: historicalIndexingStore,
68
72
  });
69
73
  if (result.status === "error") {
70
74
  onReloadableError(result.error);
71
75
  return;
72
76
  }
73
77
  }
74
- let lastFlush = Date.now();
75
78
  // Run historical indexing until complete.
76
79
  for await (const events of sync.getEvents()) {
77
80
  if (events.length > 0) {
78
- const eventChunks = chunk(events, 93);
79
- for (const eventChunk of eventChunks) {
80
- const result = await indexingService.processEvents({
81
- events: eventChunk,
82
- });
83
- if (result.status === "error") {
84
- onReloadableError(result.error);
85
- return;
86
- }
87
- const checkpoint = decodeCheckpoint(eventChunk[eventChunk.length - 1].checkpoint);
88
- if (preBuild.ordering === "multichain") {
89
- const network = indexingBuild.networks.find((network) => network.chainId === Number(checkpoint.chainId));
90
- common.metrics.ponder_historical_completed_indexing_seconds.set({ network: network.name }, Math.max(checkpoint.blockTimestamp - sync.seconds[network.name].start, 0));
91
- common.metrics.ponder_indexing_timestamp.set({ network: network.name }, checkpoint.blockTimestamp);
92
- }
93
- else {
94
- for (const network of indexingBuild.networks) {
95
- common.metrics.ponder_historical_completed_indexing_seconds.set({ network: network.name }, Math.max(checkpoint.blockTimestamp - sync.seconds[network.name].start, 0));
96
- common.metrics.ponder_indexing_timestamp.set({ network: network.name }, checkpoint.blockTimestamp);
97
- }
98
- }
99
- // Note: allows for terminal and logs to be updated
100
- await new Promise(setImmediate);
101
- }
102
- // underlying metrics collection is actually synchronous
103
- // https://github.com/siimon/prom-client/blob/master/lib/histogram.js#L102-L125
104
- const { eta, progress } = await getAppProgress(common.metrics);
105
- if (eta === undefined || progress === undefined) {
106
- common.logger.info({
107
- service: "app",
108
- msg: `Indexed ${events.length} events`,
109
- });
110
- }
111
- else {
112
- common.logger.info({
113
- service: "app",
114
- msg: `Indexed ${events.length} events with ${formatPercentage(progress)} complete and ${formatEta(eta * 1000)} remaining`,
115
- });
116
- }
117
- // Persist the indexing store to the db if it is too full. The `finalized`
118
- // checkpoint is used as a mutex. Any rows in the reorg table that may
119
- // have been written because of raw sql access are deleted. Also must truncate
120
- // the reorg tables that may have been written because of raw sql access.
121
- if ((historicalIndexingStore.isCacheFull() && events.length > 0) ||
122
- (common.options.command === "dev" &&
123
- lastFlush + 5000 < Date.now() &&
124
- events.length > 0)) {
125
- if (historicalIndexingStore.isCacheFull()) {
126
- common.logger.debug({
127
- service: "indexing",
128
- msg: `Indexing cache has exceeded ${common.options.indexingCacheMaxBytes} MB limit, starting flush`,
81
+ await database.retry(async () => {
82
+ try {
83
+ await database.qb.drizzle.transaction(async (tx) => {
84
+ const historicalIndexingStore = createHistoricalIndexingStore({
85
+ common,
86
+ schemaBuild,
87
+ database,
88
+ indexingCache,
89
+ db: tx,
90
+ });
91
+ const eventChunks = chunk(events, 93);
92
+ for (const eventChunk of eventChunks) {
93
+ const result = await indexing.processEvents({
94
+ events: eventChunk,
95
+ db: historicalIndexingStore,
96
+ });
97
+ await historicalIndexingStore.queue.onIdle();
98
+ if (result.status === "error") {
99
+ onReloadableError(result.error);
100
+ return;
101
+ }
102
+ const checkpoint = decodeCheckpoint(eventChunk[eventChunk.length - 1].checkpoint);
103
+ if (preBuild.ordering === "multichain") {
104
+ const network = indexingBuild.networks.find((network) => network.chainId === Number(checkpoint.chainId));
105
+ common.metrics.ponder_historical_completed_indexing_seconds.set({ network: network.name }, Math.max(checkpoint.blockTimestamp -
106
+ sync.seconds[network.name].start, 0));
107
+ common.metrics.ponder_indexing_timestamp.set({ network: network.name }, checkpoint.blockTimestamp);
108
+ }
109
+ else {
110
+ for (const network of indexingBuild.networks) {
111
+ common.metrics.ponder_historical_completed_indexing_seconds.set({ network: network.name }, Math.max(checkpoint.blockTimestamp -
112
+ sync.seconds[network.name].start, 0));
113
+ common.metrics.ponder_indexing_timestamp.set({ network: network.name }, checkpoint.blockTimestamp);
114
+ }
115
+ }
116
+ // Note: allows for terminal and logs to be updated
117
+ await new Promise(setImmediate);
118
+ }
119
+ // underlying metrics collection is actually synchronous
120
+ // https://github.com/siimon/prom-client/blob/master/lib/histogram.js#L102-L125
121
+ const { eta, progress } = await getAppProgress(common.metrics);
122
+ if (eta === undefined || progress === undefined) {
123
+ common.logger.info({
124
+ service: "app",
125
+ msg: `Indexed ${events.length} events`,
126
+ });
127
+ }
128
+ else {
129
+ common.logger.info({
130
+ service: "app",
131
+ msg: `Indexed ${events.length} events with ${formatPercentage(progress)} complete and ${formatEta(eta * 1000)} remaining`,
132
+ });
133
+ }
134
+ await indexingCache.flush({ db: tx });
135
+ await database.finalize({
136
+ checkpoint: events[events.length - 1].checkpoint,
137
+ db: tx,
138
+ });
129
139
  });
140
+ indexingCache.commit();
130
141
  }
131
- else {
132
- common.logger.debug({
133
- service: "indexing",
134
- msg: "Dev server periodic flush triggered, starting flush",
135
- });
142
+ catch (error) {
143
+ indexingCache.rollback();
144
+ throw error;
136
145
  }
137
- await database.finalize({ checkpoint: ZERO_CHECKPOINT_STRING });
138
- await historicalIndexingStore.flush();
139
- await database.complete({ checkpoint: ZERO_CHECKPOINT_STRING });
140
- await database.finalize({
141
- checkpoint: events[events.length - 1].checkpoint,
142
- });
143
- lastFlush = Date.now();
144
- common.logger.debug({
145
- service: "indexing",
146
- msg: "Completed flush",
147
- });
148
- }
146
+ });
149
147
  }
150
- await metadataStore.setStatus(sync.getStatus());
148
+ await database.setStatus(sync.getStatus());
151
149
  }
152
150
  // Persist the indexing store to the db. The `finalized`
153
151
  // checkpoint is used as a mutex. Any rows in the reorg table that may
@@ -157,10 +155,17 @@ export async function run({ common, preBuild, schemaBuild, indexingBuild, databa
157
155
  service: "indexing",
158
156
  msg: "Completed all historical events, starting final flush",
159
157
  });
160
- await database.finalize({ checkpoint: ZERO_CHECKPOINT_STRING });
161
- await historicalIndexingStore.flush();
162
- await database.complete({ checkpoint: ZERO_CHECKPOINT_STRING });
163
- await database.finalize({ checkpoint: sync.getFinalizedCheckpoint() });
158
+ await database.retry(async () => {
159
+ await database.qb.drizzle.transaction(async (tx) => {
160
+ await indexingCache.flush({ db: tx });
161
+ indexingCache.clear();
162
+ await database.finalize({
163
+ checkpoint: sync.getFinalizedCheckpoint(),
164
+ db: tx,
165
+ });
166
+ });
167
+ });
168
+ indexingCache.clear();
164
169
  // Manually update metrics to fix a UI bug that occurs when the end
165
170
  // checkpoint is between the last processed event and the finalized
166
171
  // checkpoint.
@@ -174,6 +179,11 @@ export async function run({ common, preBuild, schemaBuild, indexingBuild, databa
174
179
  service: "indexing",
175
180
  msg: "Completed historical indexing",
176
181
  });
182
+ const realtimeIndexingStore = createRealtimeIndexingStore({
183
+ common,
184
+ schemaBuild,
185
+ database,
186
+ });
177
187
  const onRealtimeEvent = realtimeMutex(async (event) => {
178
188
  switch (event.type) {
179
189
  case "block": {
@@ -192,8 +202,9 @@ export async function run({ common, preBuild, schemaBuild, indexingBuild, databa
192
202
  service: "app",
193
203
  msg: `Decoded ${events.length} '${network.name}' events for block ${Number(decodeCheckpoint(checkpoint).blockNumber)}`,
194
204
  });
195
- const result = await indexingService.processEvents({
205
+ const result = await indexing.processEvents({
196
206
  events,
207
+ db: realtimeIndexingStore,
197
208
  });
198
209
  common.logger.info({
199
210
  service: "app",
@@ -202,7 +213,7 @@ export async function run({ common, preBuild, schemaBuild, indexingBuild, databa
202
213
  if (result.status === "error")
203
214
  onReloadableError(result.error);
204
215
  // Set reorg table `checkpoint` column for newly inserted rows.
205
- await database.complete({ checkpoint });
216
+ await database.complete({ checkpoint, db: database.qb.drizzle });
206
217
  if (preBuild.ordering === "multichain") {
207
218
  const network = indexingBuild.networks.find((network) => network.chainId ===
208
219
  Number(decodeCheckpoint(checkpoint).chainId));
@@ -215,16 +226,23 @@ export async function run({ common, preBuild, schemaBuild, indexingBuild, databa
215
226
  }
216
227
  }
217
228
  }
218
- await metadataStore.setStatus(event.status);
229
+ await database.setStatus(event.status);
219
230
  break;
220
231
  }
221
232
  case "reorg":
222
233
  await database.removeTriggers();
223
- await database.revert({ checkpoint: event.checkpoint });
234
+ await database.retry(async () => {
235
+ await database.qb.drizzle.transaction(async (tx) => {
236
+ await database.revert({ checkpoint: event.checkpoint, tx });
237
+ });
238
+ });
224
239
  await database.createTriggers();
225
240
  break;
226
241
  case "finalize":
227
- await database.finalize({ checkpoint: event.checkpoint });
242
+ await database.finalize({
243
+ checkpoint: event.checkpoint,
244
+ db: database.qb.drizzle,
245
+ });
228
246
  break;
229
247
  default:
230
248
  never(event);
@@ -232,13 +250,8 @@ export async function run({ common, preBuild, schemaBuild, indexingBuild, databa
232
250
  });
233
251
  await database.createIndexes();
234
252
  await database.createTriggers();
235
- indexingService.setIndexingStore(createRealtimeIndexingStore({
236
- common,
237
- schemaBuild,
238
- database,
239
- }));
240
253
  await sync.startRealtime();
241
- await metadataStore.setStatus(sync.getStatus());
254
+ await database.setStatus(sync.getStatus());
242
255
  common.logger.info({
243
256
  service: "server",
244
257
  msg: "Started returning 200 responses from /ready endpoint",
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/bin/utils/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/bin/utils/run.ts"],"names":[],"mappings":"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"}