@o1-labs/mina-archive-node-graphql 0.0.6 → 2.0.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.
Files changed (176) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +92 -268
  3. package/build/src/blockchain/utils.js.map +1 -1
  4. package/build/src/config.js +86 -0
  5. package/build/src/config.js.map +1 -0
  6. package/build/src/db/archive-node-adapter/archive-node-adapter.js +29 -2
  7. package/build/src/db/archive-node-adapter/archive-node-adapter.js.map +1 -1
  8. package/build/src/db/archive-node-adapter/postgres-options.js +35 -0
  9. package/build/src/db/archive-node-adapter/postgres-options.js.map +1 -0
  10. package/build/src/db/sql/best-chain.js +5 -0
  11. package/build/src/db/sql/best-chain.js.map +1 -0
  12. package/build/src/db/sql/events-actions/queries.js +102 -21
  13. package/build/src/db/sql/events-actions/queries.js.map +1 -1
  14. package/build/src/db/sql/verification-key-updates/queries.js +100 -0
  15. package/build/src/db/sql/verification-key-updates/queries.js.map +1 -0
  16. package/build/src/db/sql/zkapp-commands/queries.js +363 -0
  17. package/build/src/db/sql/zkapp-commands/queries.js.map +1 -0
  18. package/build/src/db/sql/zkapp-commands/types.js +2 -0
  19. package/build/src/db/sql/zkapp-commands/types.js.map +1 -0
  20. package/build/src/errors/error.js +4 -1
  21. package/build/src/errors/error.js.map +1 -1
  22. package/build/src/index.js +44 -7
  23. package/build/src/index.js.map +1 -1
  24. package/build/src/resolvers.js +42 -23
  25. package/build/src/resolvers.js.map +1 -1
  26. package/build/src/schema-version.js +2 -0
  27. package/build/src/schema-version.js.map +1 -0
  28. package/build/src/server/cors.js +41 -0
  29. package/build/src/server/cors.js.map +1 -0
  30. package/build/src/server/graceful-shutdown.js +42 -0
  31. package/build/src/server/graceful-shutdown.js.map +1 -0
  32. package/build/src/server/graphql-armor.js +39 -0
  33. package/build/src/server/graphql-armor.js.map +1 -0
  34. package/build/src/server/logger.js +45 -0
  35. package/build/src/server/logger.js.map +1 -0
  36. package/build/src/server/metrics.js +72 -0
  37. package/build/src/server/metrics.js.map +1 -0
  38. package/build/src/server/plugins.js +31 -15
  39. package/build/src/server/plugins.js.map +1 -1
  40. package/build/src/server/rate-limit.js +143 -0
  41. package/build/src/server/rate-limit.js.map +1 -0
  42. package/build/src/server/readiness.js +45 -0
  43. package/build/src/server/readiness.js.map +1 -0
  44. package/build/src/server/request-logging.js +58 -0
  45. package/build/src/server/request-logging.js.map +1 -0
  46. package/build/src/server/server.js +38 -13
  47. package/build/src/server/server.js.map +1 -1
  48. package/build/src/services/actions-service/actions-service.js +26 -15
  49. package/build/src/services/actions-service/actions-service.js.map +1 -1
  50. package/build/src/services/blocks-service/blocks-service.js +10 -9
  51. package/build/src/services/blocks-service/blocks-service.js.map +1 -1
  52. package/build/src/services/network-service/network-service.js +17 -9
  53. package/build/src/services/network-service/network-service.js.map +1 -1
  54. package/build/src/services/verification-key-updates-service/verification-key-updates-service.interface.js +2 -0
  55. package/build/src/services/verification-key-updates-service/verification-key-updates-service.interface.js.map +1 -0
  56. package/build/src/services/verification-key-updates-service/verification-key-updates-service.js +41 -0
  57. package/build/src/services/verification-key-updates-service/verification-key-updates-service.js.map +1 -0
  58. package/build/src/services/zkapp-commands-service/zkapp-commands-service.interface.js +2 -0
  59. package/build/src/services/zkapp-commands-service/zkapp-commands-service.interface.js.map +1 -0
  60. package/build/src/services/zkapp-commands-service/zkapp-commands-service.js +115 -0
  61. package/build/src/services/zkapp-commands-service/zkapp-commands-service.js.map +1 -0
  62. package/build/src/tracing/jaeger-tracing.js +2 -1
  63. package/build/src/tracing/jaeger-tracing.js.map +1 -1
  64. package/build/tests/devnet-dump/action-state-invariants.js +165 -0
  65. package/build/tests/devnet-dump/action-state-invariants.js.map +1 -0
  66. package/build/tests/devnet-dump/devnet-dump.test.js +24 -10
  67. package/build/tests/devnet-dump/devnet-dump.test.js.map +1 -1
  68. package/build/tests/devnet-dump/setup.js +63 -17
  69. package/build/tests/devnet-dump/setup.js.map +1 -1
  70. package/build/tests/integration/action-state-ordering.test.js +139 -0
  71. package/build/tests/integration/action-state-ordering.test.js.map +1 -0
  72. package/build/tests/integration/action-state-setup.js +48 -0
  73. package/build/tests/integration/action-state-setup.js.map +1 -0
  74. package/build/tests/integration/consensus-vs-chain.test.js +81 -0
  75. package/build/tests/integration/consensus-vs-chain.test.js.map +1 -0
  76. package/build/tests/integration/integration.test.js +166 -2
  77. package/build/tests/integration/integration.test.js.map +1 -1
  78. package/build/tests/integration/postgres-timeout.test.js +92 -0
  79. package/build/tests/integration/postgres-timeout.test.js.map +1 -0
  80. package/build/tests/integration/setup.js +58 -1
  81. package/build/tests/integration/setup.js.map +1 -1
  82. package/build/tests/integration/verification-key-setup.js +49 -0
  83. package/build/tests/integration/verification-key-setup.js.map +1 -0
  84. package/build/tests/integration/verification-key-updates.test.js +159 -0
  85. package/build/tests/integration/verification-key-updates.test.js.map +1 -0
  86. package/build/tests/live-api/events.test.js +11 -7
  87. package/build/tests/live-api/events.test.js.map +1 -1
  88. package/build/tests/live-api/networkState.test.js +1 -0
  89. package/build/tests/live-api/networkState.test.js.map +1 -1
  90. package/build/tests/live-network/live-network.test.js +1 -0
  91. package/build/tests/live-network/live-network.test.js.map +1 -1
  92. package/build/tests/resolvers.test.js +65 -37
  93. package/build/tests/resolvers.test.js.map +1 -1
  94. package/build/tests/services/verification-key-updates-service/verification-key-updates-service.test.js +35 -0
  95. package/build/tests/services/verification-key-updates-service/verification-key-updates-service.test.js.map +1 -0
  96. package/build/tests/services/zkapp-commands-service/zkapp-commands-service.test.js +159 -0
  97. package/build/tests/services/zkapp-commands-service/zkapp-commands-service.test.js.map +1 -0
  98. package/build/tests/test-helpers.js +15 -0
  99. package/build/tests/test-helpers.js.map +1 -1
  100. package/build/tests/unit/best-chain-anchor.test.js +70 -0
  101. package/build/tests/unit/best-chain-anchor.test.js.map +1 -0
  102. package/build/tests/unit/config.test.js +106 -0
  103. package/build/tests/unit/config.test.js.map +1 -0
  104. package/build/tests/unit/cors.test.js +95 -0
  105. package/build/tests/unit/cors.test.js.map +1 -0
  106. package/build/tests/unit/error-masking.test.js +119 -0
  107. package/build/tests/unit/error-masking.test.js.map +1 -0
  108. package/build/tests/unit/graceful-shutdown.test.js +99 -0
  109. package/build/tests/unit/graceful-shutdown.test.js.map +1 -0
  110. package/build/tests/unit/graphql-armor.test.js +121 -0
  111. package/build/tests/unit/graphql-armor.test.js.map +1 -0
  112. package/build/tests/unit/logging.test.js +120 -0
  113. package/build/tests/unit/logging.test.js.map +1 -0
  114. package/build/tests/unit/metrics.test.js +114 -0
  115. package/build/tests/unit/metrics.test.js.map +1 -0
  116. package/build/tests/unit/network-service.test.js +66 -0
  117. package/build/tests/unit/network-service.test.js.map +1 -0
  118. package/build/tests/unit/postgres-options.test.js +56 -0
  119. package/build/tests/unit/postgres-options.test.js.map +1 -0
  120. package/build/tests/unit/rate-limit.test.js +271 -0
  121. package/build/tests/unit/rate-limit.test.js.map +1 -0
  122. package/build/tests/unit/readiness.test.js +75 -0
  123. package/build/tests/unit/readiness.test.js.map +1 -0
  124. package/build/tests/unit/schema-nullability.test.js +40 -0
  125. package/build/tests/unit/schema-nullability.test.js.map +1 -0
  126. package/build/tests/unit/schema-version.test.js +48 -0
  127. package/build/tests/unit/schema-version.test.js.map +1 -0
  128. package/build/tests/unit/yoga-http-contract.test.js +30 -0
  129. package/build/tests/unit/yoga-http-contract.test.js.map +1 -0
  130. package/build/tests/unit/zkapp-commands-gating.test.js +38 -0
  131. package/build/tests/unit/zkapp-commands-gating.test.js.map +1 -0
  132. package/build/zkapp/utils.js +2 -0
  133. package/build/zkapp/utils.js.map +1 -1
  134. package/package.json +33 -14
  135. package/schema.graphql +126 -8
  136. package/src/blockchain/types.ts +65 -1
  137. package/src/blockchain/utils.ts +26 -2
  138. package/src/config.ts +133 -0
  139. package/src/db/archive-node-adapter/archive-node-adapter.interface.ts +26 -3
  140. package/src/db/archive-node-adapter/archive-node-adapter.ts +65 -2
  141. package/src/db/archive-node-adapter/postgres-options.ts +90 -0
  142. package/src/db/sql/best-chain.ts +34 -0
  143. package/src/db/sql/events-actions/queries.ts +168 -24
  144. package/src/db/sql/verification-key-updates/queries.ts +132 -0
  145. package/src/db/sql/zkapp-commands/queries.ts +406 -0
  146. package/src/db/sql/zkapp-commands/types.ts +43 -0
  147. package/src/envionment.d.ts +20 -0
  148. package/src/errors/error.ts +17 -1
  149. package/src/index.ts +64 -7
  150. package/src/resolvers-types.ts +311 -24
  151. package/src/resolvers.ts +70 -34
  152. package/src/schema-version.ts +24 -0
  153. package/src/server/cors.ts +97 -0
  154. package/src/server/graceful-shutdown.ts +76 -0
  155. package/src/server/graphql-armor.ts +78 -0
  156. package/src/server/logger.ts +72 -0
  157. package/src/server/metrics.ts +104 -0
  158. package/src/server/plugins.ts +53 -19
  159. package/src/server/rate-limit.ts +274 -0
  160. package/src/server/readiness.ts +78 -0
  161. package/src/server/request-logging.ts +83 -0
  162. package/src/server/server.ts +70 -15
  163. package/src/services/actions-service/actions-service.ts +87 -24
  164. package/src/services/blocks-service/blocks-service.ts +16 -14
  165. package/src/services/network-service/network-service.ts +30 -12
  166. package/src/services/verification-key-updates-service/verification-key-updates-service.interface.ts +9 -0
  167. package/src/services/verification-key-updates-service/verification-key-updates-service.ts +72 -0
  168. package/src/services/zkapp-commands-service/zkapp-commands-service.interface.ts +9 -0
  169. package/src/services/zkapp-commands-service/zkapp-commands-service.ts +181 -0
  170. package/src/tracing/jaeger-tracing.ts +2 -1
  171. package/build/tests/consensus/run-compare.js +0 -40
  172. package/build/tests/consensus/run-compare.js.map +0 -1
  173. package/build/tests/consensus/select-consensus-precomputed.js +0 -80
  174. package/build/tests/consensus/select-consensus-precomputed.js.map +0 -1
  175. package/build/tests/consensus/types.js +0 -15
  176. package/build/tests/consensus/types.js.map +0 -1
@@ -1,12 +1,18 @@
1
1
  import { describe, test, before, after } from 'node:test';
2
2
  import assert from 'node:assert';
3
+ import { execFileSync } from 'node:child_process';
4
+ import path from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
3
6
  import { EventsService } from '../../src/services/events-service/events-service.js';
4
7
  import { ActionsService } from '../../src/services/actions-service/actions-service.js';
5
8
  import { NetworkService } from '../../src/services/network-service/network-service.js';
6
9
  import { BlocksService } from '../../src/services/blocks-service/blocks-service.js';
10
+ import { ZkappCommandsService } from '../../src/services/zkapp-commands-service/zkapp-commands-service.js';
11
+ import { VerificationKeyUpdatesService } from '../../src/services/verification-key-updates-service/verification-key-updates-service.js';
7
12
  import { BlockStatusFilter } from '../../src/blockchain/types.js';
13
+ import { BlockSortByInput } from '../../src/resolvers-types.js';
8
14
  import { TracingState } from '../../src/tracing/tracer.js';
9
- import { setupTestDatabase, teardownTestDatabase, createTestClient, } from './setup.js';
15
+ import { setupTestDatabase, teardownTestDatabase, createTestClient, connectionString, } from './setup.js';
10
16
  const nullOptions = { tracingState: new TracingState(undefined) };
11
17
  let client;
12
18
  before(async () => {
@@ -102,7 +108,10 @@ describe('BlocksService (integration)', () => {
102
108
  const allBlocks = await blocksService.getBlocks({ canonical: true }, 1, 'BLOCKHEIGHT_DESC', nullOptions);
103
109
  const latestTime = new Date(allBlocks[0].dateTime);
104
110
  const oneHourBefore = new Date(latestTime.getTime() - 3600000);
105
- const blocks = await blocksService.getBlocks({ dateTime_gte: oneHourBefore.toISOString(), dateTime_lt: latestTime.toISOString() }, null, null, nullOptions);
111
+ const blocks = await blocksService.getBlocks({
112
+ dateTime_gte: oneHourBefore.toISOString(),
113
+ dateTime_lt: latestTime.toISOString(),
114
+ }, null, null, nullOptions);
106
115
  for (const block of blocks) {
107
116
  const blockTime = new Date(block.dateTime);
108
117
  assert.ok(blockTime >= oneHourBefore && blockTime < latestTime);
@@ -122,10 +131,83 @@ describe('NetworkService (integration)', () => {
122
131
  });
123
132
  test('pending height > canonical height', async () => {
124
133
  const state = await networkService.getNetworkState(nullOptions);
134
+ assert.ok(state.maxBlockHeight, 'fixture seeds both canonical and pending rows');
125
135
  assert.ok(state.maxBlockHeight.pendingMaxBlockHeight >
126
136
  state.maxBlockHeight.canonicalMaxBlockHeight);
127
137
  });
128
138
  });
139
+ describe('Hard-fork shape (integration)', () => {
140
+ const ORPHAN_ABOVE_TIP = '3NKorphan_above_the_pending_tip_hard_fork_shape';
141
+ let blocksService;
142
+ let networkService;
143
+ let tipHeight;
144
+ before(async () => {
145
+ blocksService = new BlocksService(client);
146
+ networkService = new NetworkService(client);
147
+ const [tip] = await client.unsafe(`SELECT height FROM blocks WHERE chain_status = 'pending' ORDER BY height DESC LIMIT 1`);
148
+ tipHeight = Number(tip.height);
149
+ await client.unsafe(`
150
+ INSERT INTO blocks (
151
+ id, state_hash, parent_id, parent_hash, creator_id, block_winner_id,
152
+ last_vrf_output,
153
+ snarked_ledger_hash_id, staking_epoch_data_id, next_epoch_data_id,
154
+ min_window_density, sub_window_densities, total_currency,
155
+ ledger_hash, height, global_slot_since_hard_fork, global_slot_since_genesis,
156
+ protocol_version_id, proposed_protocol_version_id,
157
+ timestamp, chain_status
158
+ )
159
+ SELECT
160
+ (SELECT max(id) + 1 FROM blocks),
161
+ '${ORPHAN_ABOVE_TIP}',
162
+ id,
163
+ state_hash,
164
+ creator_id,
165
+ block_winner_id,
166
+ last_vrf_output,
167
+ snarked_ledger_hash_id,
168
+ staking_epoch_data_id,
169
+ next_epoch_data_id,
170
+ min_window_density,
171
+ sub_window_densities,
172
+ total_currency,
173
+ ledger_hash,
174
+ height + 1,
175
+ global_slot_since_hard_fork + 1,
176
+ global_slot_since_genesis + 1,
177
+ protocol_version_id,
178
+ proposed_protocol_version_id,
179
+ (timestamp::bigint + 60000)::text,
180
+ 'orphaned'
181
+ FROM blocks
182
+ WHERE chain_status = 'pending'
183
+ ORDER BY height DESC
184
+ LIMIT 1
185
+ `);
186
+ });
187
+ after(async () => {
188
+ await client.unsafe(`DELETE FROM blocks WHERE state_hash = '${ORPHAN_ABOVE_TIP}'`);
189
+ });
190
+ test('networkState ignores the abandoned block above the tip', async () => {
191
+ const state = await networkService.getNetworkState(nullOptions);
192
+ assert.ok(state.maxBlockHeight);
193
+ assert.strictEqual(state.maxBlockHeight.pendingMaxBlockHeight, tipHeight);
194
+ });
195
+ test('inBestChain=true still reaches the pending tip', async () => {
196
+ const blocks = await blocksService.getBlocks({ inBestChain: true, blockHeight_gte: tipHeight }, null, null, nullOptions);
197
+ assert.deepStrictEqual(blocks.map((b) => Number(b.blockHeight)), [tipHeight], 'the pending tip must be in the best chain even with an orphan above it');
198
+ assert.notStrictEqual(blocks[0].stateHash, ORPHAN_ABOVE_TIP);
199
+ });
200
+ test('the best chain and networkState agree on the tip', async () => {
201
+ const state = await networkService.getNetworkState(nullOptions);
202
+ const blocks = await blocksService.getBlocks({ inBestChain: true }, null, BlockSortByInput.BlockheightDesc, nullOptions);
203
+ assert.ok(state.maxBlockHeight);
204
+ assert.strictEqual(Number(blocks[0].blockHeight), state.maxBlockHeight.pendingMaxBlockHeight);
205
+ });
206
+ test('inBestChain=false reports the abandoned block', async () => {
207
+ const blocks = await blocksService.getBlocks({ inBestChain: false, blockHeight_gte: tipHeight }, null, null, nullOptions);
208
+ assert.deepStrictEqual(blocks.map((b) => b.stateHash), [ORPHAN_ABOVE_TIP]);
209
+ });
210
+ });
129
211
  describe('EventsService (integration)', () => {
130
212
  let eventsService;
131
213
  before(() => {
@@ -198,6 +280,86 @@ describe('ActionsService (integration)', () => {
198
280
  });
199
281
  });
200
282
  });
283
+ describe('Base fixture zkApp coverage (integration)', () => {
284
+ const SDK_ADDRESS = 'B62qiaEMrWiYdK7LcJ2ScdMyG8LzUxi7yaw17XvBD34on7UKfhAkRML';
285
+ const SDK_VK_HASH = '330109536550383627416201330124291596191867681867265169258470531313815097966';
286
+ const SDK_COMMAND_HASH = '5JuSdkFixtureAppZkappCommandForSdkTestsHashPadding1';
287
+ test('events: the applied command at the canonical tip is decoded', async () => {
288
+ const events = await new EventsService(client).getEvents({ address: SDK_ADDRESS, status: BlockStatusFilter.canonical }, nullOptions);
289
+ assert.strictEqual(events.length, 1);
290
+ assert.strictEqual(events[0].blockInfo.height, 25);
291
+ assert.deepStrictEqual(events[0].eventData.map((e) => e.data), [['0', '1']]);
292
+ assert.strictEqual(events[0].eventData[0].transactionInfo.status, 'applied');
293
+ });
294
+ test('actions: the applied command at the canonical tip is decoded', async () => {
295
+ const actions = await new ActionsService(client).getActions({ address: SDK_ADDRESS, status: BlockStatusFilter.canonical }, nullOptions);
296
+ assert.strictEqual(actions.length, 1);
297
+ assert.strictEqual(actions[0].blockInfo.height, 25);
298
+ assert.deepStrictEqual(actions[0].actionData.map((a) => a.data), [['2', '3']]);
299
+ });
300
+ test('verificationKeyUpdates: the key set at height 25 is returned', async () => {
301
+ const updates = await new VerificationKeyUpdatesService(client).getVerificationKeyUpdates({ verificationKeyHash: SDK_VK_HASH, from: 1, to: 27 }, nullOptions);
302
+ assert.deepStrictEqual(updates.map((u) => [u.address, u.blockInfo.height]), [[SDK_ADDRESS, 25]]);
303
+ });
304
+ test('blocks: the canonical tip carries the command as applied', () => {
305
+ const here = path.dirname(fileURLToPath(import.meta.url));
306
+ const blocksServicePath = path.resolve(here, '../../src/services/blocks-service/blocks-service.js');
307
+ const tracerPath = path.resolve(here, '../../src/tracing/tracer.js');
308
+ const script = `
309
+ const postgres = (await import('postgres')).default;
310
+ const { BlocksService } = await import(${JSON.stringify(blocksServicePath)});
311
+ const { TracingState } = await import(${JSON.stringify(tracerPath)});
312
+ const client = postgres(${JSON.stringify(connectionString)}, { max: 1 });
313
+ try {
314
+ const blocks = await new BlocksService(client).getBlocks(
315
+ { canonical: true, blockHeight_gte: 25, blockHeight_lt: 26 },
316
+ null,
317
+ null,
318
+ { tracingState: new TracingState(undefined) }
319
+ );
320
+ console.log(JSON.stringify(blocks.map((b) => ({
321
+ height: b.blockHeight,
322
+ zkappCommands: b.transactions.zkappCommands,
323
+ }))));
324
+ } finally {
325
+ await client.end();
326
+ }
327
+ `;
328
+ const out = execFileSync(process.execPath, ['--input-type=module', '-e', script], {
329
+ env: { ...process.env, ENABLE_BLOCK_TRANSACTION_DETAILS: 'true' },
330
+ encoding: 'utf-8',
331
+ });
332
+ const blocks = JSON.parse(out.trim());
333
+ assert.strictEqual(blocks.length, 1);
334
+ assert.strictEqual(Number(blocks[0].height), 25);
335
+ const command = blocks[0].zkappCommands.find((c) => c.hash === SDK_COMMAND_HASH);
336
+ assert.ok(command, 'the fixture command should be in the height 25 block');
337
+ assert.strictEqual(command.status, 'applied');
338
+ assert.strictEqual(command.failureReason, null);
339
+ });
340
+ });
341
+ describe('ZkappCommandsService (integration)', () => {
342
+ let zkappCommandsService;
343
+ before(() => {
344
+ zkappCommandsService = new ZkappCommandsService(client);
345
+ });
346
+ test('returns successful zkApp commands with account updates', async () => {
347
+ const commands = await zkappCommandsService.getZkappCommands({
348
+ blockStatus: BlockStatusFilter.canonical,
349
+ from: 25,
350
+ to: 26,
351
+ }, nullOptions);
352
+ const seeded = commands.find((command) => command.hash === 'integration-test-zkapp-command-hash');
353
+ assert.ok(seeded, `seeded command not returned; got ${commands
354
+ .map((c) => c.hash)
355
+ .join(', ')}`);
356
+ assert.strictEqual(seeded.blockInfo.height, 25);
357
+ assert.strictEqual(seeded.blockInfo.chainStatus, 'canonical');
358
+ assert.strictEqual(seeded.accountUpdates.length, 1);
359
+ assert.ok(seeded.accountUpdates[0].publicKey.length > 0);
360
+ assert.deepStrictEqual(seeded.accountUpdates[0].events, []);
361
+ });
362
+ });
201
363
  describe('Schema validation (integration)', () => {
202
364
  test('all required tables exist', async () => {
203
365
  const tables = await client `
@@ -210,11 +372,13 @@ describe('Schema validation (integration)', () => {
210
372
  'accounts_accessed',
211
373
  'blocks_zkapp_commands',
212
374
  'zkapp_commands',
375
+ 'zkapp_fee_payer_body',
213
376
  'zkapp_account_update',
214
377
  'zkapp_account_update_body',
215
378
  'zkapp_events',
216
379
  'zkapp_field_array',
217
380
  'zkapp_field',
381
+ 'zkapp_updates',
218
382
  'zkapp_accounts',
219
383
  'zkapp_action_states',
220
384
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../../tests/integration/integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../../tests/integration/integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { describe, test, before, after } from 'node:test';
2
+ import assert from 'node:assert';
3
+ import postgres from 'postgres';
4
+ import { buildPostgresOptions } from '../../src/db/archive-node-adapter/postgres-options.js';
5
+ import { setupTestDatabase, teardownTestDatabase, connectionString, } from './setup.js';
6
+ const QUERY_CANCELED = '57014';
7
+ const TEST_DATABASE = decodeURIComponent(new URL(connectionString).pathname.slice(1));
8
+ function quoteIdentifier(identifier) {
9
+ return `"${identifier.replaceAll('"', '""')}"`;
10
+ }
11
+ function quoteLiteral(value) {
12
+ return `'${value.replaceAll("'", "''")}'`;
13
+ }
14
+ async function setDatabaseStatementTimeout(value) {
15
+ const sql = postgres(connectionString, { max: 1 });
16
+ try {
17
+ await sql.unsafe(`ALTER DATABASE ${quoteIdentifier(TEST_DATABASE)} SET statement_timeout = ${quoteLiteral(value)}`);
18
+ }
19
+ finally {
20
+ await sql.end();
21
+ }
22
+ }
23
+ async function resetDatabaseStatementTimeout() {
24
+ const sql = postgres(connectionString, { max: 1 });
25
+ try {
26
+ await sql.unsafe(`ALTER DATABASE ${quoteIdentifier(TEST_DATABASE)} RESET statement_timeout`);
27
+ }
28
+ finally {
29
+ await sql.end();
30
+ }
31
+ }
32
+ describe('Postgres statement timeout', () => {
33
+ before(async () => {
34
+ await setupTestDatabase();
35
+ });
36
+ after(async () => {
37
+ await teardownTestDatabase();
38
+ });
39
+ test('cancels a query that exceeds the timeout', async () => {
40
+ const sql = postgres(connectionString, buildPostgresOptions({ PG_STATEMENT_TIMEOUT: '200' }));
41
+ try {
42
+ await assert.rejects(() => sql `SELECT pg_sleep(1)`, (error) => error.code === QUERY_CANCELED, 'a query past statement_timeout should be cancelled by Postgres');
43
+ }
44
+ finally {
45
+ await sql.end();
46
+ }
47
+ });
48
+ test('the connection stays usable after a cancellation', async () => {
49
+ const sql = postgres(connectionString, buildPostgresOptions({ PG_STATEMENT_TIMEOUT: '200' }));
50
+ try {
51
+ await assert.rejects(() => sql `SELECT pg_sleep(1)`);
52
+ const [row] = await sql `SELECT 1 AS ok`;
53
+ assert.strictEqual(row.ok, 1);
54
+ }
55
+ finally {
56
+ await sql.end();
57
+ }
58
+ });
59
+ test('a query inside the timeout is unaffected', async () => {
60
+ const sql = postgres(connectionString, buildPostgresOptions({ PG_STATEMENT_TIMEOUT: '5000' }));
61
+ try {
62
+ const [row] = await sql `SELECT 1 AS ok`;
63
+ assert.strictEqual(row.ok, 1);
64
+ }
65
+ finally {
66
+ await sql.end();
67
+ }
68
+ });
69
+ test('PG_STATEMENT_TIMEOUT=0 disables the timeout', async () => {
70
+ const sql = postgres(connectionString, buildPostgresOptions({ PG_STATEMENT_TIMEOUT: '0' }));
71
+ try {
72
+ const [row] = await sql `SELECT pg_sleep(0.3), 1 AS ok`;
73
+ assert.strictEqual(row.ok, 1);
74
+ }
75
+ finally {
76
+ await sql.end();
77
+ }
78
+ });
79
+ test('PG_STATEMENT_TIMEOUT=0 sends an explicit session-level disable', async () => {
80
+ await setDatabaseStatementTimeout('1s');
81
+ const sql = postgres(connectionString, buildPostgresOptions({ PG_STATEMENT_TIMEOUT: '0' }));
82
+ try {
83
+ const [row] = await sql `SELECT current_setting('statement_timeout') AS t`;
84
+ assert.strictEqual(row.t, '0');
85
+ }
86
+ finally {
87
+ await sql.end();
88
+ await resetDatabaseStatementTimeout();
89
+ }
90
+ });
91
+ });
92
+ //# sourceMappingURL=postgres-timeout.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-timeout.test.js","sourceRoot":"","sources":["../../../tests/integration/postgres-timeout.test.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,8 @@ export async function setupTestDatabase() {
22
22
  finally {
23
23
  await admin.end();
24
24
  }
25
- execSync(`PGPASSWORD=${PG_TEST_PASSWORD} psql -h ${PG_TEST_HOST} -p ${PG_TEST_PORT} -U ${PG_TEST_USER} -d ${PG_TEST_DB} -f ${ARCHIVE_DUMP_PATH}`, { stdio: 'pipe' });
25
+ const stopOnError = ARCHIVE_DUMP_PATH === DEFAULT_DUMP_PATH ? '-v ON_ERROR_STOP=1 ' : '';
26
+ execSync(`PGPASSWORD=${PG_TEST_PASSWORD} psql ${stopOnError}-h ${PG_TEST_HOST} -p ${PG_TEST_PORT} -U ${PG_TEST_USER} -d ${PG_TEST_DB} -f ${ARCHIVE_DUMP_PATH}`, { stdio: 'pipe' });
26
27
  const db = postgres(connectionString, { max: 1 });
27
28
  try {
28
29
  await db.unsafe(`
@@ -60,6 +61,62 @@ export async function setupTestDatabase() {
60
61
  FROM blocks
61
62
  WHERE height = (SELECT max(height) FROM blocks)
62
63
  LIMIT 1
64
+ `);
65
+ await db.unsafe(`
66
+ WITH inserted_fee_payer AS (
67
+ INSERT INTO zkapp_fee_payer_body (
68
+ public_key_id,
69
+ fee,
70
+ valid_until,
71
+ nonce
72
+ )
73
+ SELECT
74
+ (SELECT id FROM public_keys ORDER BY id LIMIT 1),
75
+ '100000000',
76
+ NULL,
77
+ 0
78
+ RETURNING id
79
+ ),
80
+ inserted_command AS (
81
+ INSERT INTO zkapp_commands (
82
+ zkapp_fee_payer_body_id,
83
+ zkapp_account_updates_ids,
84
+ memo,
85
+ hash
86
+ )
87
+ SELECT
88
+ inserted_fee_payer.id,
89
+ ARRAY[(SELECT id FROM zkapp_account_update ORDER BY id LIMIT 1)],
90
+ 'integration-test-memo',
91
+ 'integration-test-zkapp-command-hash'
92
+ FROM inserted_fee_payer
93
+ RETURNING id
94
+ )
95
+ INSERT INTO blocks_zkapp_commands (
96
+ block_id,
97
+ zkapp_command_id,
98
+ sequence_no,
99
+ status,
100
+ failure_reasons_ids
101
+ )
102
+ SELECT
103
+ canonical_tip.id,
104
+ inserted_command.id,
105
+ COALESCE((
106
+ SELECT max(sequence_no) + 1
107
+ FROM blocks_zkapp_commands
108
+ WHERE block_id = canonical_tip.id
109
+ ), 0),
110
+ 'applied',
111
+ NULL
112
+ FROM inserted_command
113
+ CROSS JOIN (
114
+ SELECT id
115
+ FROM blocks
116
+ WHERE chain_status = 'canonical'
117
+ ORDER BY height DESC
118
+ LIMIT 1
119
+ ) canonical_tip
63
120
  `);
64
121
  }
65
122
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../tests/integration/setup.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW,CAAC;AAC7D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC;AACxD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,UAAU,CAAC;AAC5D,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,UAAU,CAAC;AACpE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,uBAAuB,CAAC;AAErE,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,2CAA2C,CAAC,CAAC;AACnG,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,YAAY,IAAI,gBAAgB,IAAI,YAAY,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;AAE/H,SAAS,qBAAqB,CAAC,EAAE,GAAG,UAAU;IAC5C,OAAO,cAAc,YAAY,IAAI,gBAAgB,IAAI,YAAY,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;AAChG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC;QAEH,MAAM,KAAK,CAAC,MAAM,CAChB,2EAA2E,UAAU,+BAA+B,CACrH,CAAC;QACF,MAAM,KAAK,CAAC,MAAM,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC,MAAM,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IACtD,CAAC;YAAS,CAAC;QACT,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAGD,QAAQ,CACN,cAAc,gBAAgB,YAAY,YAAY,OAAO,YAAY,OAAO,YAAY,OAAO,UAAU,OAAO,iBAAiB,EAAE,EACvI,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC;IAGF,MAAM,EAAE,GAAG,QAAQ,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmCf,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,CAChB,2EAA2E,UAAU,+BAA+B,CACrH,CAAC;QACF,MAAM,KAAK,CAAC,MAAM,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;YAAS,CAAC;QACT,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,QAAQ,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../tests/integration/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { execSync } from 'child_process';
2
+ import postgres from 'postgres';
3
+ import path from 'path';
4
+ const PG_TEST_HOST = process.env.PG_TEST_HOST ?? 'localhost';
5
+ const PG_TEST_PORT = process.env.PG_TEST_PORT ?? '5432';
6
+ const PG_TEST_USER = process.env.PG_TEST_USER ?? 'postgres';
7
+ const PG_TEST_PASSWORD = process.env.PG_TEST_PASSWORD ?? 'postgres';
8
+ const PG_TEST_DB = process.env.PG_VERIFICATION_KEY_TEST_DB ??
9
+ 'archive_node_api_verification_key_test';
10
+ const FIXTURE_DIR = path.resolve(process.cwd(), 'tests/integration/fixtures');
11
+ const BASE_DUMP = process.env.ARCHIVE_DUMP_PATH ?? path.join(FIXTURE_DIR, 'archive_db.sql');
12
+ const VERIFICATION_KEY_FIXTURE = path.join(FIXTURE_DIR, 'verification_key_updates.sql');
13
+ export const connectionString = `postgres://${PG_TEST_USER}:${PG_TEST_PASSWORD}@${PG_TEST_HOST}:${PG_TEST_PORT}/${PG_TEST_DB}`;
14
+ function adminConnectionString(db = 'postgres') {
15
+ return `postgres://${PG_TEST_USER}:${PG_TEST_PASSWORD}@${PG_TEST_HOST}:${PG_TEST_PORT}/${db}`;
16
+ }
17
+ function applySqlFile(file, { stopOnError }) {
18
+ execSync(`PGPASSWORD=${PG_TEST_PASSWORD} psql ${stopOnError ? '-v ON_ERROR_STOP=1' : ''} ` +
19
+ `-h ${PG_TEST_HOST} -p ${PG_TEST_PORT} -U ${PG_TEST_USER} -d ${PG_TEST_DB} -f ${file}`, { stdio: 'pipe' });
20
+ }
21
+ export async function setupTestDatabase() {
22
+ const admin = postgres(adminConnectionString(), { max: 1 });
23
+ try {
24
+ await admin.unsafe(`SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '${PG_TEST_DB}' AND pid <> pg_backend_pid()`);
25
+ await admin.unsafe(`DROP DATABASE IF EXISTS ${PG_TEST_DB}`);
26
+ await admin.unsafe(`CREATE DATABASE ${PG_TEST_DB}`);
27
+ }
28
+ finally {
29
+ await admin.end();
30
+ }
31
+ applySqlFile(BASE_DUMP, {
32
+ stopOnError: process.env.ARCHIVE_DUMP_PATH === undefined,
33
+ });
34
+ applySqlFile(VERIFICATION_KEY_FIXTURE, { stopOnError: true });
35
+ }
36
+ export async function teardownTestDatabase() {
37
+ const admin = postgres(adminConnectionString(), { max: 1 });
38
+ try {
39
+ await admin.unsafe(`SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '${PG_TEST_DB}' AND pid <> pg_backend_pid()`);
40
+ await admin.unsafe(`DROP DATABASE IF EXISTS ${PG_TEST_DB}`);
41
+ }
42
+ finally {
43
+ await admin.end();
44
+ }
45
+ }
46
+ export function createTestClient() {
47
+ return postgres(connectionString, { max: 5 });
48
+ }
49
+ //# sourceMappingURL=verification-key-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-key-setup.js","sourceRoot":"","sources":["../../../tests/integration/verification-key-setup.ts"],"names":[],"mappings":"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"}