@o1-labs/mina-archive-node-graphql 0.0.6

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 (138) hide show
  1. package/README.md +321 -0
  2. package/build/benchmark/setup.js +32 -0
  3. package/build/benchmark/setup.js.map +1 -0
  4. package/build/src/blockchain/constants.js +2 -0
  5. package/build/src/blockchain/constants.js.map +1 -0
  6. package/build/src/blockchain/types.js +7 -0
  7. package/build/src/blockchain/types.js.map +1 -0
  8. package/build/src/blockchain/utils.js +39 -0
  9. package/build/src/blockchain/utils.js.map +1 -0
  10. package/build/src/consensus/mina-consensus.js +59 -0
  11. package/build/src/consensus/mina-consensus.js.map +1 -0
  12. package/build/src/context.js +10 -0
  13. package/build/src/context.js.map +1 -0
  14. package/build/src/db/archive-node-adapter/archive-node-adapter.interface.js +2 -0
  15. package/build/src/db/archive-node-adapter/archive-node-adapter.interface.js.map +1 -0
  16. package/build/src/db/archive-node-adapter/archive-node-adapter.js +47 -0
  17. package/build/src/db/archive-node-adapter/archive-node-adapter.js.map +1 -0
  18. package/build/src/db/sql/events-actions/queries.js +438 -0
  19. package/build/src/db/sql/events-actions/queries.js.map +1 -0
  20. package/build/src/db/sql/events-actions/types.js +2 -0
  21. package/build/src/db/sql/events-actions/types.js.map +1 -0
  22. package/build/src/errors/error.js +17 -0
  23. package/build/src/errors/error.js.map +1 -0
  24. package/build/src/index.js +27 -0
  25. package/build/src/index.js.map +1 -0
  26. package/build/src/resolvers-types.js +8 -0
  27. package/build/src/resolvers-types.js.map +1 -0
  28. package/build/src/resolvers.js +67 -0
  29. package/build/src/resolvers.js.map +1 -0
  30. package/build/src/server/plugins.js +39 -0
  31. package/build/src/server/plugins.js.map +1 -0
  32. package/build/src/server/server.js +25 -0
  33. package/build/src/server/server.js.map +1 -0
  34. package/build/src/services/actions-service/actions-service.interface.js +2 -0
  35. package/build/src/services/actions-service/actions-service.interface.js.map +1 -0
  36. package/build/src/services/actions-service/actions-service.js +94 -0
  37. package/build/src/services/actions-service/actions-service.js.map +1 -0
  38. package/build/src/services/blocks-service/blocks-service.interface.js +2 -0
  39. package/build/src/services/blocks-service/blocks-service.interface.js.map +1 -0
  40. package/build/src/services/blocks-service/blocks-service.js +263 -0
  41. package/build/src/services/blocks-service/blocks-service.js.map +1 -0
  42. package/build/src/services/data-adapters/database-row-adapters.js +116 -0
  43. package/build/src/services/data-adapters/database-row-adapters.js.map +1 -0
  44. package/build/src/services/events-service/events-service.interface.js +2 -0
  45. package/build/src/services/events-service/events-service.interface.js.map +1 -0
  46. package/build/src/services/events-service/events-service.js +64 -0
  47. package/build/src/services/events-service/events-service.js.map +1 -0
  48. package/build/src/services/network-service/network-service.interface.js +2 -0
  49. package/build/src/services/network-service/network-service.interface.js.map +1 -0
  50. package/build/src/services/network-service/network-service.js +31 -0
  51. package/build/src/services/network-service/network-service.js.map +1 -0
  52. package/build/src/tracing/jaeger-setup.js +39 -0
  53. package/build/src/tracing/jaeger-setup.js.map +1 -0
  54. package/build/src/tracing/jaeger-tracing.js +29 -0
  55. package/build/src/tracing/jaeger-tracing.js.map +1 -0
  56. package/build/src/tracing/tracer.js +31 -0
  57. package/build/src/tracing/tracer.js.map +1 -0
  58. package/build/tests/__mocks__/generate_mock_data.js +13 -0
  59. package/build/tests/__mocks__/generate_mock_data.js.map +1 -0
  60. package/build/tests/consensus/run-compare.js +40 -0
  61. package/build/tests/consensus/run-compare.js.map +1 -0
  62. package/build/tests/consensus/select-consensus-precomputed.js +80 -0
  63. package/build/tests/consensus/select-consensus-precomputed.js.map +1 -0
  64. package/build/tests/consensus/types.js +15 -0
  65. package/build/tests/consensus/types.js.map +1 -0
  66. package/build/tests/devnet-dump/devnet-dump.test.js +311 -0
  67. package/build/tests/devnet-dump/devnet-dump.test.js.map +1 -0
  68. package/build/tests/devnet-dump/setup.js +58 -0
  69. package/build/tests/devnet-dump/setup.js.map +1 -0
  70. package/build/tests/integration/integration.test.js +226 -0
  71. package/build/tests/integration/integration.test.js.map +1 -0
  72. package/build/tests/integration/setup.js +82 -0
  73. package/build/tests/integration/setup.js.map +1 -0
  74. package/build/tests/live-api/actions.test.js +4 -0
  75. package/build/tests/live-api/actions.test.js.map +1 -0
  76. package/build/tests/live-api/blocks.test.js +116 -0
  77. package/build/tests/live-api/blocks.test.js.map +1 -0
  78. package/build/tests/live-api/events.test.js +97 -0
  79. package/build/tests/live-api/events.test.js.map +1 -0
  80. package/build/tests/live-api/networkState.test.js +27 -0
  81. package/build/tests/live-api/networkState.test.js.map +1 -0
  82. package/build/tests/live-network/live-network.test.js +144 -0
  83. package/build/tests/live-network/live-network.test.js.map +1 -0
  84. package/build/tests/live-network/setup.js +206 -0
  85. package/build/tests/live-network/setup.js.map +1 -0
  86. package/build/tests/resolvers.test.js +475 -0
  87. package/build/tests/resolvers.test.js.map +1 -0
  88. package/build/tests/services/actions-service/actions-service.test.js +124 -0
  89. package/build/tests/services/actions-service/actions-service.test.js.map +1 -0
  90. package/build/tests/services/blocks-service/blocks-service.test.js +348 -0
  91. package/build/tests/services/blocks-service/blocks-service.test.js.map +1 -0
  92. package/build/tests/services/events-service/events-service.test.js +185 -0
  93. package/build/tests/services/events-service/events-service.test.js.map +1 -0
  94. package/build/tests/test-helpers.js +11 -0
  95. package/build/tests/test-helpers.js.map +1 -0
  96. package/build/tests/unit/blockchain-utils.test.js +106 -0
  97. package/build/tests/unit/blockchain-utils.test.js.map +1 -0
  98. package/build/tests/unit/consensus.test.js +154 -0
  99. package/build/tests/unit/consensus.test.js.map +1 -0
  100. package/build/tests/unit/error-handling.test.js +52 -0
  101. package/build/tests/unit/error-handling.test.js.map +1 -0
  102. package/build/tests/utils.test.js +313 -0
  103. package/build/tests/utils.test.js.map +1 -0
  104. package/build/zkapp/contract.js +144 -0
  105. package/build/zkapp/contract.js.map +1 -0
  106. package/build/zkapp/utils.js +174 -0
  107. package/build/zkapp/utils.js.map +1 -0
  108. package/package.json +85 -0
  109. package/schema.graphql +221 -0
  110. package/src/blockchain/constants.ts +2 -0
  111. package/src/blockchain/types.ts +121 -0
  112. package/src/blockchain/utils.ts +54 -0
  113. package/src/consensus/mina-consensus.ts +137 -0
  114. package/src/context.ts +18 -0
  115. package/src/db/archive-node-adapter/archive-node-adapter.interface.ts +23 -0
  116. package/src/db/archive-node-adapter/archive-node-adapter.ts +101 -0
  117. package/src/db/sql/events-actions/queries.ts +490 -0
  118. package/src/db/sql/events-actions/types.ts +208 -0
  119. package/src/envionment.d.ts +18 -0
  120. package/src/errors/error.ts +20 -0
  121. package/src/index.ts +31 -0
  122. package/src/resolvers-types.ts +754 -0
  123. package/src/resolvers.ts +102 -0
  124. package/src/server/plugins.ts +56 -0
  125. package/src/server/server.ts +30 -0
  126. package/src/services/actions-service/actions-service.interface.ts +9 -0
  127. package/src/services/actions-service/actions-service.ts +195 -0
  128. package/src/services/blocks-service/blocks-service.interface.ts +11 -0
  129. package/src/services/blocks-service/blocks-service.ts +407 -0
  130. package/src/services/data-adapters/database-row-adapters.ts +261 -0
  131. package/src/services/events-service/events-service.interface.ts +6 -0
  132. package/src/services/events-service/events-service.ts +118 -0
  133. package/src/services/network-service/network-service.interface.ts +5 -0
  134. package/src/services/network-service/network-service.ts +53 -0
  135. package/src/tracing/jaeger-setup.ts +65 -0
  136. package/src/tracing/jaeger-tracing.ts +44 -0
  137. package/src/tracing/tracer.ts +52 -0
  138. package/tsconfig.json +104 -0
@@ -0,0 +1,348 @@
1
+ import { test, before, describe } from 'node:test';
2
+ import assert from 'node:assert';
3
+ import { BlocksService, } from '../../../src/services/blocks-service/blocks-service.js';
4
+ import { makeClient } from '../../test-helpers.js';
5
+ describe('BlocksService', () => {
6
+ let service;
7
+ before(() => {
8
+ service = new BlocksService(makeClient());
9
+ });
10
+ describe('rowsToBlocks', () => {
11
+ const baseRow = {
12
+ id: 1,
13
+ height: 100,
14
+ creator: 'B62qtest1',
15
+ state_hash: '3NKtest1',
16
+ parent_hash: '3NKparent1',
17
+ timestamp: '1700000000000',
18
+ coinbase_amount: '720000000000',
19
+ };
20
+ test('maps basic block fields correctly', () => {
21
+ const blocks = service.rowsToBlocks([baseRow]);
22
+ assert.strictEqual(blocks.length, 1);
23
+ assert.strictEqual(blocks[0].blockHeight, 100);
24
+ assert.strictEqual(blocks[0].creator, 'B62qtest1');
25
+ assert.strictEqual(blocks[0].stateHash, '3NKtest1');
26
+ assert.strictEqual(blocks[0].parentHash, '');
27
+ assert.strictEqual(blocks[0].dateTime, new Date(1700000000000).toISOString());
28
+ assert.strictEqual(blocks[0].transactions.coinbase, '720000000000');
29
+ });
30
+ test('returns empty arrays when no transaction maps provided', () => {
31
+ const blocks = service.rowsToBlocks([baseRow]);
32
+ assert.deepStrictEqual(blocks[0].transactions.userCommands, []);
33
+ assert.deepStrictEqual(blocks[0].transactions.zkappCommands, []);
34
+ assert.deepStrictEqual(blocks[0].transactions.feeTransfer, []);
35
+ });
36
+ test('defaults coinbase to "0" when coinbase_amount is missing', () => {
37
+ const row = { ...baseRow, coinbase_amount: undefined };
38
+ const blocks = service.rowsToBlocks([row]);
39
+ assert.strictEqual(blocks[0].transactions.coinbase, '0');
40
+ });
41
+ test('attaches user commands to correct block by id', () => {
42
+ const uc = {
43
+ hash: 'CkpTest1',
44
+ kind: 'PAYMENT',
45
+ from: 'B62qFrom',
46
+ to: 'B62qTo',
47
+ amount: '1000000000',
48
+ fee: '10000000',
49
+ memo: 'E4YM2',
50
+ nonce: 5,
51
+ status: 'applied',
52
+ failureReason: null,
53
+ };
54
+ const ucMap = new Map([[1, [uc]]]);
55
+ const blocks = service.rowsToBlocks([baseRow], ucMap);
56
+ assert.strictEqual(blocks[0].transactions.userCommands.length, 1);
57
+ assert.deepStrictEqual(blocks[0].transactions.userCommands[0], uc);
58
+ });
59
+ test('attaches zkapp commands to correct block by id', () => {
60
+ const zk = {
61
+ hash: 'CkpZkTest1',
62
+ feePayer: 'B62qFeePayer',
63
+ fee: '20000000',
64
+ memo: 'E4YM2',
65
+ status: 'applied',
66
+ failureReason: null,
67
+ };
68
+ const zkMap = new Map([[1, [zk]]]);
69
+ const blocks = service.rowsToBlocks([baseRow], new Map(), zkMap);
70
+ assert.strictEqual(blocks[0].transactions.zkappCommands.length, 1);
71
+ assert.deepStrictEqual(blocks[0].transactions.zkappCommands[0], zk);
72
+ });
73
+ test('attaches fee transfers to correct block by id', () => {
74
+ const ft = {
75
+ recipient: 'B62qRecipient',
76
+ fee: '5000000',
77
+ type: 'fee_transfer',
78
+ };
79
+ const ftMap = new Map([[1, [ft]]]);
80
+ const blocks = service.rowsToBlocks([baseRow], new Map(), new Map(), ftMap);
81
+ assert.strictEqual(blocks[0].transactions.feeTransfer.length, 1);
82
+ assert.deepStrictEqual(blocks[0].transactions.feeTransfer[0], ft);
83
+ });
84
+ test('returns empty arrays for blocks with no matching transaction data', () => {
85
+ const ucMap = new Map([[999, []]]);
86
+ const blocks = service.rowsToBlocks([baseRow], ucMap);
87
+ assert.deepStrictEqual(blocks[0].transactions.userCommands, []);
88
+ assert.deepStrictEqual(blocks[0].transactions.zkappCommands, []);
89
+ assert.deepStrictEqual(blocks[0].transactions.feeTransfer, []);
90
+ });
91
+ test('correctly distributes transactions across multiple blocks', () => {
92
+ const row1 = { ...baseRow, id: 1, height: 100 };
93
+ const row2 = { ...baseRow, id: 2, height: 101, state_hash: '3NKtest2' };
94
+ const uc1 = {
95
+ hash: 'CkpUc1',
96
+ kind: 'PAYMENT',
97
+ from: 'B62qA',
98
+ to: 'B62qB',
99
+ amount: '100',
100
+ fee: '10',
101
+ memo: '',
102
+ nonce: 1,
103
+ status: 'applied',
104
+ failureReason: null,
105
+ };
106
+ const uc2 = {
107
+ hash: 'CkpUc2',
108
+ kind: 'STAKE_DELEGATION',
109
+ from: 'B62qC',
110
+ to: 'B62qD',
111
+ amount: '0',
112
+ fee: '20',
113
+ memo: '',
114
+ nonce: 2,
115
+ status: 'applied',
116
+ failureReason: null,
117
+ };
118
+ const ucMap = new Map([
119
+ [1, [uc1]],
120
+ [2, [uc2]],
121
+ ]);
122
+ const blocks = service.rowsToBlocks([row1, row2], ucMap);
123
+ assert.strictEqual(blocks[0].transactions.userCommands.length, 1);
124
+ assert.strictEqual(blocks[0].transactions.userCommands[0].hash, 'CkpUc1');
125
+ assert.strictEqual(blocks[1].transactions.userCommands.length, 1);
126
+ assert.strictEqual(blocks[1].transactions.userCommands[0].hash, 'CkpUc2');
127
+ });
128
+ test('handles empty rows array', () => {
129
+ const blocks = service.rowsToBlocks([]);
130
+ assert.strictEqual(blocks.length, 0);
131
+ });
132
+ test('handles multiple transactions per block', () => {
133
+ const uc1 = {
134
+ hash: 'CkpA',
135
+ kind: 'PAYMENT',
136
+ from: 'B62qA',
137
+ to: 'B62qB',
138
+ amount: '100',
139
+ fee: '10',
140
+ memo: '',
141
+ nonce: 1,
142
+ status: 'applied',
143
+ failureReason: null,
144
+ };
145
+ const uc2 = {
146
+ hash: 'CkpB',
147
+ kind: 'PAYMENT',
148
+ from: 'B62qC',
149
+ to: 'B62qD',
150
+ amount: '200',
151
+ fee: '20',
152
+ memo: '',
153
+ nonce: 2,
154
+ status: 'applied',
155
+ failureReason: null,
156
+ };
157
+ const ucMap = new Map([[1, [uc1, uc2]]]);
158
+ const blocks = service.rowsToBlocks([baseRow], ucMap);
159
+ assert.strictEqual(blocks[0].transactions.userCommands.length, 2);
160
+ assert.strictEqual(blocks[0].transactions.userCommands[0].hash, 'CkpA');
161
+ assert.strictEqual(blocks[0].transactions.userCommands[1].hash, 'CkpB');
162
+ });
163
+ });
164
+ describe('mapUserCommandRow', () => {
165
+ test('maps all fields from DB row to domain type', () => {
166
+ const row = {
167
+ block_id: 1,
168
+ hash: '5JvC8BFT69YF5WWb4J2r9kCJRLXTUq8rk5XDahtaTYEC817FGEZU',
169
+ kind: 'payment',
170
+ from: 'B62qrmRJosdwWKwFXjfLEA7fNaPDkAiSkGmGDLiPQkphCcnC7agyYEZ',
171
+ to: 'B62qrmRJosdwWKwFXjfLEA7fNaPDkAiSkGmGDLiPQkphCcnC7agyYEZ',
172
+ amount: '10000000',
173
+ fee: '10000000',
174
+ memo: 'E4YxxEftXeg4FRz1Y93u8Ja2Zd5mcw6CZmmVn5m3HJgkFEt2LPcf5',
175
+ nonce: 99693,
176
+ status: 'applied',
177
+ failure_reason: null,
178
+ };
179
+ const result = service.mapUserCommandRow(row);
180
+ assert.strictEqual(result.hash, row.hash);
181
+ assert.strictEqual(result.kind, 'payment');
182
+ assert.strictEqual(result.from, row.from);
183
+ assert.strictEqual(result.to, row.to);
184
+ assert.strictEqual(result.amount, '10000000');
185
+ assert.strictEqual(result.fee, '10000000');
186
+ assert.strictEqual(result.memo, row.memo);
187
+ assert.strictEqual(result.nonce, 99693);
188
+ assert.strictEqual(result.status, 'applied');
189
+ assert.strictEqual(result.failureReason, null);
190
+ });
191
+ test('maps failure_reason to failureReason when present', () => {
192
+ const row = {
193
+ block_id: 1,
194
+ hash: 'CkpTest',
195
+ kind: 'payment',
196
+ from: 'B62qA',
197
+ to: 'B62qB',
198
+ amount: '0',
199
+ fee: '10000000',
200
+ memo: '',
201
+ nonce: 1,
202
+ status: 'failed',
203
+ failure_reason: 'Amount_insufficient_to_create_account',
204
+ };
205
+ const result = service.mapUserCommandRow(row);
206
+ assert.strictEqual(result.failureReason, 'Amount_insufficient_to_create_account');
207
+ });
208
+ });
209
+ describe('mapZkAppCommandRow', () => {
210
+ test('maps all fields from DB row to domain type', () => {
211
+ const row = {
212
+ block_id: 1,
213
+ hash: '5Ju4L33n8e9LgYYtUfynLwpK4cL8m3gnKAS1yYctjSbcqS3KtYRe',
214
+ fee_payer: 'B62qnnpLG75StiXuw8qTJmsPYSzFx6eWQQFjiqe7JEP7hYCeYJphdcP',
215
+ fee: '26100000',
216
+ memo: 'E4YM2vTHhWEg66xpj52JErHUBU4pZ1yageL4TVDDpTTSsv8mK6YaH',
217
+ status: 'applied',
218
+ failure_reasons_ids: null,
219
+ };
220
+ const result = service.mapZkAppCommandRow(row);
221
+ assert.strictEqual(result.hash, row.hash);
222
+ assert.strictEqual(result.feePayer, row.fee_payer);
223
+ assert.strictEqual(result.fee, '26100000');
224
+ assert.strictEqual(result.memo, row.memo);
225
+ assert.strictEqual(result.status, 'applied');
226
+ assert.strictEqual(result.failureReason, null);
227
+ });
228
+ test('maps failure_reasons_ids to failureReason when present as string', () => {
229
+ const row = {
230
+ block_id: 1,
231
+ hash: 'CkpTest',
232
+ fee_payer: 'B62qA',
233
+ fee: '10000000',
234
+ memo: '',
235
+ status: 'failed',
236
+ failure_reasons_ids: '{1,2}',
237
+ };
238
+ const result = service.mapZkAppCommandRow(row);
239
+ assert.strictEqual(result.failureReason, '{1,2}');
240
+ });
241
+ test('maps failure_reasons_ids to failureReason when present as array', () => {
242
+ const row = {
243
+ block_id: 1,
244
+ hash: 'CkpTest',
245
+ fee_payer: 'B62qA',
246
+ fee: '10000000',
247
+ memo: '',
248
+ status: 'failed',
249
+ failure_reasons_ids: [6, 165],
250
+ };
251
+ const result = service.mapZkAppCommandRow(row);
252
+ assert.strictEqual(result.failureReason, '6,165');
253
+ });
254
+ });
255
+ describe('mapFeeTransferRow', () => {
256
+ test('maps all fields from DB row to domain type', () => {
257
+ const row = {
258
+ block_id: 1,
259
+ recipient: 'B62qra5hPy6K9mSRYHDUjvyAmXVKvz7ywa1cqqjpdGwB1u4wzG4Uyb1',
260
+ fee: '10000000',
261
+ type: 'fee_transfer',
262
+ };
263
+ const result = service.mapFeeTransferRow(row);
264
+ assert.strictEqual(result.recipient, row.recipient);
265
+ assert.strictEqual(result.fee, '10000000');
266
+ assert.strictEqual(result.type, 'fee_transfer');
267
+ });
268
+ });
269
+ describe('groupBy', () => {
270
+ test('groups rows by key and applies mapper', () => {
271
+ const rows = [
272
+ { block_id: 1, val: 'a' },
273
+ { block_id: 2, val: 'b' },
274
+ { block_id: 1, val: 'c' },
275
+ ];
276
+ const result = service.groupBy(rows, (r) => r.block_id, (r) => r.val);
277
+ assert.deepStrictEqual(result.get(1), ['a', 'c']);
278
+ assert.deepStrictEqual(result.get(2), ['b']);
279
+ assert.strictEqual(result.size, 2);
280
+ });
281
+ test('returns empty map for empty input', () => {
282
+ const result = service.groupBy([], () => 0, (r) => r);
283
+ assert.strictEqual(result.size, 0);
284
+ });
285
+ });
286
+ describe('groupBy + mapper pipeline (raw DB rows to block transactions)', () => {
287
+ test('raw user command rows are grouped and mapped correctly for rowsToBlocks', () => {
288
+ const rawRows = [
289
+ {
290
+ block_id: 10,
291
+ hash: 'CkpTx1',
292
+ kind: 'payment',
293
+ from: 'B62qA',
294
+ to: 'B62qB',
295
+ amount: '5000',
296
+ fee: '100',
297
+ memo: 'E4Ymemo1',
298
+ nonce: 1,
299
+ status: 'applied',
300
+ failure_reason: null,
301
+ },
302
+ {
303
+ block_id: 20,
304
+ hash: 'CkpTx2',
305
+ kind: 'delegation',
306
+ from: 'B62qC',
307
+ to: 'B62qD',
308
+ amount: '0',
309
+ fee: '200',
310
+ memo: 'E4Ymemo2',
311
+ nonce: 3,
312
+ status: 'applied',
313
+ failure_reason: null,
314
+ },
315
+ {
316
+ block_id: 10,
317
+ hash: 'CkpTx3',
318
+ kind: 'payment',
319
+ from: 'B62qE',
320
+ to: 'B62qF',
321
+ amount: '9000',
322
+ fee: '300',
323
+ memo: '',
324
+ nonce: 7,
325
+ status: 'failed',
326
+ failure_reason: 'Amount_insufficient_to_create_account',
327
+ },
328
+ ];
329
+ const ucMap = service.groupBy(rawRows, (r) => r.block_id, (r) => service.mapUserCommandRow(r));
330
+ const blockRows = [
331
+ { id: 10, height: 500, creator: 'B62qCreator1', state_hash: '3NK1', parent_hash: '3NKp1', timestamp: '1700000000000', coinbase_amount: '720000000000' },
332
+ { id: 20, height: 501, creator: 'B62qCreator2', state_hash: '3NK2', parent_hash: '3NKp2', timestamp: '1700000060000', coinbase_amount: '720000000000' },
333
+ ];
334
+ const blocks = service.rowsToBlocks(blockRows, ucMap);
335
+ assert.strictEqual(blocks[0].transactions.userCommands.length, 2);
336
+ assert.strictEqual(blocks[0].transactions.userCommands[0].hash, 'CkpTx1');
337
+ assert.strictEqual(blocks[0].transactions.userCommands[0].kind, 'payment');
338
+ assert.strictEqual(blocks[0].transactions.userCommands[1].hash, 'CkpTx3');
339
+ assert.strictEqual(blocks[0].transactions.userCommands[1].failureReason, 'Amount_insufficient_to_create_account');
340
+ assert.strictEqual(blocks[1].transactions.userCommands.length, 1);
341
+ assert.strictEqual(blocks[1].transactions.userCommands[0].hash, 'CkpTx2');
342
+ assert.strictEqual(blocks[1].transactions.userCommands[0].kind, 'delegation');
343
+ assert.deepStrictEqual(blocks[0].transactions.zkappCommands, []);
344
+ assert.deepStrictEqual(blocks[1].transactions.feeTransfer, []);
345
+ });
346
+ });
347
+ });
348
+ //# sourceMappingURL=blocks-service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks-service.test.js","sourceRoot":"","sources":["../../../../tests/services/blocks-service/blocks-service.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ import { describe, test } from 'node:test';
2
+ import assert from 'node:assert';
3
+ import { EventsService } from '../../../src/services/events-service/events-service.js';
4
+ import { makeClient } from '../../test-helpers.js';
5
+ function makeRow(overrides = {}) {
6
+ return {
7
+ block_id: 1,
8
+ zkapp_id: 1,
9
+ state_hash: 'state_hash_1',
10
+ parent_hash: 'parent_hash_1',
11
+ height: '100',
12
+ global_slot_since_genesis: '200',
13
+ global_slot_since_hard_fork: '200',
14
+ authorization_kind: 'Proof',
15
+ timestamp: '1700000000000',
16
+ chain_status: 'canonical',
17
+ sequence_number: 0,
18
+ ledger_hash: 'ledger_hash_1',
19
+ distance_from_max_block_height: '5',
20
+ zkapp_account_update_id: 1,
21
+ zkapp_account_updates_ids: [1],
22
+ status: 'applied',
23
+ memo: '',
24
+ hash: 'tx_hash_1',
25
+ account_update_event_id: 1,
26
+ event_element_ids: [10],
27
+ event_field_elements_id: 10,
28
+ event_field_element_ids: [100],
29
+ field_id: 100,
30
+ field_value: 'value_a',
31
+ last_vrf_output: 'AABB',
32
+ ...overrides,
33
+ };
34
+ }
35
+ describe('EventsService', () => {
36
+ describe('blocksToEvents', () => {
37
+ let service;
38
+ test('transforms single block with single event', () => {
39
+ service = new EventsService(makeClient());
40
+ const stateHash = 'block_abc';
41
+ const txHash = 'tx_001';
42
+ const fieldId = 42;
43
+ const expectedFieldValue = 'my_field_val';
44
+ const expectedHeight = '150';
45
+ const row = makeRow({
46
+ state_hash: stateHash,
47
+ hash: txHash,
48
+ height: expectedHeight,
49
+ field_id: fieldId,
50
+ field_value: expectedFieldValue,
51
+ event_field_element_ids: [fieldId],
52
+ });
53
+ const blocksMap = new Map();
54
+ const txMap = new Map();
55
+ txMap.set(txHash, [row]);
56
+ blocksMap.set(stateHash, txMap);
57
+ const fieldValues = new Map([[String(fieldId), expectedFieldValue]]);
58
+ const result = service.blocksToEvents(blocksMap, fieldValues);
59
+ assert.strictEqual(result.length, 1);
60
+ assert.strictEqual(result[0].blockInfo.height, Number(expectedHeight));
61
+ assert.strictEqual(result[0].blockInfo.stateHash, stateHash);
62
+ assert.strictEqual(result[0].eventData.length, 1);
63
+ assert.deepStrictEqual(result[0].eventData[0].data, [expectedFieldValue]);
64
+ });
65
+ test('transforms block with multiple transactions', () => {
66
+ service = new EventsService(makeClient());
67
+ const stateHash = 'block_xyz';
68
+ const txHash1 = 'tx_a';
69
+ const txHash2 = 'tx_b';
70
+ const fieldId1 = 100;
71
+ const fieldId2 = 200;
72
+ const fieldVal1 = 'val_alpha';
73
+ const fieldVal2 = 'val_beta';
74
+ const row1 = makeRow({
75
+ state_hash: stateHash,
76
+ hash: txHash1,
77
+ zkapp_account_update_id: 1,
78
+ zkapp_account_updates_ids: [1],
79
+ event_field_elements_id: 10,
80
+ event_element_ids: [10],
81
+ event_field_element_ids: [fieldId1],
82
+ field_id: fieldId1,
83
+ field_value: fieldVal1,
84
+ });
85
+ const row2 = makeRow({
86
+ state_hash: stateHash,
87
+ hash: txHash2,
88
+ zkapp_account_update_id: 2,
89
+ zkapp_account_updates_ids: [2],
90
+ event_field_elements_id: 20,
91
+ event_element_ids: [20],
92
+ event_field_element_ids: [fieldId2],
93
+ field_id: fieldId2,
94
+ field_value: fieldVal2,
95
+ });
96
+ const blocksMap = new Map();
97
+ const txMap = new Map();
98
+ txMap.set(txHash1, [row1]);
99
+ txMap.set(txHash2, [row2]);
100
+ blocksMap.set(stateHash, txMap);
101
+ const fieldValues = new Map([
102
+ [String(fieldId1), fieldVal1],
103
+ [String(fieldId2), fieldVal2],
104
+ ]);
105
+ const result = service.blocksToEvents(blocksMap, fieldValues);
106
+ assert.strictEqual(result.length, 1);
107
+ assert.strictEqual(result[0].eventData.length, 2);
108
+ });
109
+ test('transforms multiple blocks', () => {
110
+ service = new EventsService(makeClient());
111
+ const stateHash1 = 'block_1';
112
+ const stateHash2 = 'block_2';
113
+ const txHash1 = 'tx_1';
114
+ const txHash2 = 'tx_2';
115
+ const row1 = makeRow({
116
+ state_hash: stateHash1,
117
+ hash: txHash1,
118
+ height: '100',
119
+ });
120
+ const row2 = makeRow({
121
+ state_hash: stateHash2,
122
+ hash: txHash2,
123
+ height: '101',
124
+ });
125
+ const blocksMap = new Map();
126
+ const txMap1 = new Map();
127
+ txMap1.set(txHash1, [row1]);
128
+ blocksMap.set(stateHash1, txMap1);
129
+ const txMap2 = new Map();
130
+ txMap2.set(txHash2, [row2]);
131
+ blocksMap.set(stateHash2, txMap2);
132
+ const fieldValues = new Map([['100', 'val']]);
133
+ const result = service.blocksToEvents(blocksMap, fieldValues);
134
+ assert.strictEqual(result.length, 2);
135
+ });
136
+ test('returns empty array for empty input', () => {
137
+ service = new EventsService(makeClient());
138
+ const result = service.blocksToEvents(new Map(), new Map());
139
+ assert.strictEqual(result.length, 0);
140
+ });
141
+ test('handles multi-field events correctly', () => {
142
+ service = new EventsService(makeClient());
143
+ const stateHash = 'block_multi';
144
+ const txHash = 'tx_multi';
145
+ const fieldIdA = 100;
146
+ const fieldIdB = 101;
147
+ const fieldValA = 'field_a';
148
+ const fieldValB = 'field_b';
149
+ const row1 = makeRow({
150
+ state_hash: stateHash,
151
+ hash: txHash,
152
+ event_field_elements_id: 10,
153
+ event_element_ids: [10],
154
+ event_field_element_ids: [fieldIdA, fieldIdB],
155
+ field_id: fieldIdA,
156
+ field_value: fieldValA,
157
+ });
158
+ const row2 = makeRow({
159
+ state_hash: stateHash,
160
+ hash: txHash,
161
+ event_field_elements_id: 10,
162
+ event_element_ids: [10],
163
+ event_field_element_ids: [fieldIdA, fieldIdB],
164
+ field_id: fieldIdB,
165
+ field_value: fieldValB,
166
+ });
167
+ const blocksMap = new Map();
168
+ const txMap = new Map();
169
+ txMap.set(txHash, [row1, row2]);
170
+ blocksMap.set(stateHash, txMap);
171
+ const fieldValues = new Map([
172
+ [String(fieldIdA), fieldValA],
173
+ [String(fieldIdB), fieldValB],
174
+ ]);
175
+ const result = service.blocksToEvents(blocksMap, fieldValues);
176
+ assert.strictEqual(result.length, 1);
177
+ assert.strictEqual(result[0].eventData.length, 1);
178
+ assert.deepStrictEqual(result[0].eventData[0].data, [
179
+ fieldValA,
180
+ fieldValB,
181
+ ]);
182
+ });
183
+ });
184
+ });
185
+ //# sourceMappingURL=events-service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-service.test.js","sourceRoot":"","sources":["../../../../tests/services/events-service/events-service.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export function makeClient() {
2
+ return {
3
+ query: () => { },
4
+ CLOSE: () => { },
5
+ END: () => { },
6
+ PostgresError: class {
7
+ },
8
+ options: {},
9
+ };
10
+ }
11
+ //# sourceMappingURL=test-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../tests/test-helpers.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC;QACb,aAAa,EAAE;SAAQ;QACvB,OAAO,EAAE,EAAE;KACU,CAAC;AAC1B,CAAC"}