@aztec/p2p 2.0.3 → 2.1.0-rc.2

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 (45) hide show
  1. package/dest/client/factory.d.ts.map +1 -1
  2. package/dest/client/factory.js +3 -0
  3. package/dest/client/interface.d.ts +3 -3
  4. package/dest/client/interface.d.ts.map +1 -1
  5. package/dest/client/p2p_client.d.ts +1 -7
  6. package/dest/client/p2p_client.d.ts.map +1 -1
  7. package/dest/client/p2p_client.js +12 -16
  8. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +13 -3
  9. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  10. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +93 -40
  11. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +15 -4
  12. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
  13. package/dest/mem_pools/tx_pool/memory_tx_pool.js +81 -9
  14. package/dest/mem_pools/tx_pool/tx_pool.d.ts +12 -4
  15. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  16. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  17. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +130 -6
  18. package/dest/msg_validators/tx_validator/double_spend_validator.js +1 -1
  19. package/dest/services/libp2p/libp2p_service.d.ts +0 -1
  20. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  21. package/dest/services/libp2p/libp2p_service.js +6 -10
  22. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  23. package/dest/services/peer-manager/peer_manager.js +15 -8
  24. package/dest/services/reqresp/interface.d.ts +0 -9
  25. package/dest/services/reqresp/interface.d.ts.map +1 -1
  26. package/dest/services/reqresp/interface.js +0 -17
  27. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  28. package/dest/services/reqresp/reqresp.js +12 -8
  29. package/dest/services/tx_provider.js +1 -1
  30. package/dest/testbench/p2p_client_testbench_worker.js +2 -1
  31. package/package.json +14 -15
  32. package/src/client/factory.ts +7 -0
  33. package/src/client/interface.ts +3 -3
  34. package/src/client/p2p_client.ts +11 -18
  35. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +104 -42
  36. package/src/mem_pools/tx_pool/memory_tx_pool.ts +89 -10
  37. package/src/mem_pools/tx_pool/tx_pool.ts +11 -4
  38. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +114 -7
  39. package/src/msg_validators/tx_validator/double_spend_validator.ts +1 -1
  40. package/src/services/libp2p/libp2p_service.ts +7 -11
  41. package/src/services/peer-manager/peer_manager.ts +9 -10
  42. package/src/services/reqresp/interface.ts +0 -21
  43. package/src/services/reqresp/reqresp.ts +13 -9
  44. package/src/services/tx_provider.ts +1 -1
  45. package/src/testbench/p2p_client_testbench_worker.ts +1 -0
@@ -13,6 +13,8 @@ import { getPendingTxPriority } from './priority.js';
13
13
  */ txs;
14
14
  minedTxs;
15
15
  pendingTxs;
16
+ deletedMinedTxHashes;
17
+ blockToDeletedMinedTxHash;
16
18
  metrics;
17
19
  /**
18
20
  * Class constructor for in-memory TxPool. Initiates our transaction pool as a JS Map.
@@ -29,6 +31,8 @@ import { getPendingTxPriority } from './priority.js';
29
31
  this.txs = new Map();
30
32
  this.minedTxs = new Map();
31
33
  this.pendingTxs = new Set();
34
+ this.deletedMinedTxHashes = new Map();
35
+ this.blockToDeletedMinedTxHash = new Map();
32
36
  this.metrics = new PoolInstrumentation(telemetry, PoolName.TX_POOL, this.countTx);
33
37
  }
34
38
  countTx;
@@ -38,6 +42,19 @@ import { getPendingTxPriority } from './priority.js';
38
42
  markAsMined(txHashes, blockHeader) {
39
43
  const keys = txHashes.map((x)=>x.toBigInt());
40
44
  for (const key of keys){
45
+ // If this tx was previously soft-deleted, remove it from the deleted sets
46
+ if (this.deletedMinedTxHashes.has(key)) {
47
+ const originalBlock = this.deletedMinedTxHashes.get(key);
48
+ this.deletedMinedTxHashes.delete(key);
49
+ // Remove from block-to-hash mapping
50
+ const txHashesForBlock = this.blockToDeletedMinedTxHash.get(originalBlock);
51
+ if (txHashesForBlock) {
52
+ txHashesForBlock.delete(key);
53
+ if (txHashesForBlock.size === 0) {
54
+ this.blockToDeletedMinedTxHash.delete(originalBlock);
55
+ }
56
+ }
57
+ }
41
58
  this.minedTxs.set(key, blockHeader.globalVariables.blockNumber);
42
59
  this.pendingTxs.delete(key);
43
60
  }
@@ -60,7 +77,11 @@ import { getPendingTxPriority } from './priority.js';
60
77
  async getPendingTxHashes() {
61
78
  const txs = (await this.getAllTxs()).sort((tx1, tx2)=>-getPendingTxPriority(tx1).localeCompare(getPendingTxPriority(tx2)));
62
79
  const txHashes = await Promise.all(txs.map((tx)=>tx.getTxHash()));
63
- return txHashes.filter((txHash)=>this.pendingTxs.has(txHash.toBigInt()));
80
+ // No need to check deleted since pending txs are never soft-deleted
81
+ return txHashes.filter((txHash)=>{
82
+ const key = txHash.toBigInt();
83
+ return this.pendingTxs.has(key);
84
+ });
64
85
  }
65
86
  getMinedTxHashes() {
66
87
  return Promise.resolve(Array.from(this.minedTxs.entries()).map(([txHash, blockNumber])=>[
@@ -69,16 +90,20 @@ import { getPendingTxPriority } from './priority.js';
69
90
  ]));
70
91
  }
71
92
  getPendingTxCount() {
93
+ // Soft-deleted transactions are always mined, never pending
72
94
  return Promise.resolve(this.pendingTxs.size);
73
95
  }
74
96
  getTxStatus(txHash) {
75
97
  const key = txHash.toBigInt();
76
- if (this.pendingTxs.has(key)) {
77
- return Promise.resolve('pending');
98
+ if (this.deletedMinedTxHashes.has(key)) {
99
+ return Promise.resolve('deleted');
78
100
  }
79
101
  if (this.minedTxs.has(key)) {
80
102
  return Promise.resolve('mined');
81
103
  }
104
+ if (this.pendingTxs.has(key)) {
105
+ return Promise.resolve('pending');
106
+ }
82
107
  return Promise.resolve(undefined);
83
108
  }
84
109
  /**
@@ -130,14 +155,33 @@ import { getPendingTxPriority } from './priority.js';
130
155
  }
131
156
  /**
132
157
  * Deletes transactions from the pool. Tx hashes that are not present are ignored.
133
- * @param txHashes - An array of tx hashes to be removed from the tx pool.
134
- * @returns The number of transactions that was deleted from the pool.
135
- */ deleteTxs(txHashes) {
158
+ * Mined transactions are soft-deleted with a timestamp, pending transactions are permanently deleted.
159
+ * @param txHashes - An array of tx hashes to be deleted from the tx pool.
160
+ * @returns Empty promise.
161
+ */ deleteTxs(txHashes, opts) {
136
162
  for (const txHash of txHashes){
137
163
  const key = txHash.toBigInt();
138
- this.txs.delete(key);
139
- this.pendingTxs.delete(key);
140
- this.minedTxs.delete(key);
164
+ if (this.txs.has(key)) {
165
+ if (this.minedTxs.has(key)) {
166
+ const blockNumber = this.minedTxs.get(key);
167
+ this.minedTxs.delete(key);
168
+ // Soft-delete mined transactions: remove from mined set but keep in storage
169
+ if (opts?.permanently) {
170
+ // Permanently delete mined transactions if specified
171
+ this.txs.delete(key);
172
+ } else {
173
+ this.deletedMinedTxHashes.set(key, blockNumber);
174
+ if (!this.blockToDeletedMinedTxHash.has(blockNumber)) {
175
+ this.blockToDeletedMinedTxHash.set(blockNumber, new Set());
176
+ }
177
+ this.blockToDeletedMinedTxHash.get(blockNumber).add(key);
178
+ }
179
+ } else {
180
+ // Permanently delete pending transactions
181
+ this.txs.delete(key);
182
+ this.pendingTxs.delete(key);
183
+ }
184
+ }
141
185
  }
142
186
  return Promise.resolve();
143
187
  }
@@ -157,4 +201,32 @@ import { getPendingTxPriority } from './priority.js';
157
201
  markTxsAsNonEvictable(_) {
158
202
  return Promise.resolve();
159
203
  }
204
+ /**
205
+ * Permanently deletes deleted mined transactions from blocks up to and including the specified block number.
206
+ * @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
207
+ * @returns The number of transactions permanently deleted.
208
+ */ cleanupDeletedMinedTxs(blockNumber) {
209
+ let deletedCount = 0;
210
+ const blocksToDelete = [];
211
+ // Find all blocks up to the specified block number
212
+ for (const [block, txHashes] of this.blockToDeletedMinedTxHash.entries()){
213
+ if (block <= blockNumber) {
214
+ // Permanently delete all transactions from this block
215
+ for (const txHash of txHashes){
216
+ this.txs.delete(txHash);
217
+ this.deletedMinedTxHashes.delete(txHash);
218
+ deletedCount++;
219
+ }
220
+ blocksToDelete.push(block);
221
+ }
222
+ }
223
+ // Clean up block-to-hash mapping
224
+ for (const block of blocksToDelete){
225
+ this.blockToDeletedMinedTxHash.delete(block);
226
+ }
227
+ if (deletedCount > 0) {
228
+ this.log.debug(`Permanently deleted ${deletedCount} deleted mined txs from blocks up to ${blockNumber}`);
229
+ }
230
+ return Promise.resolve(deletedCount);
231
+ }
160
232
  }
@@ -63,7 +63,9 @@ export interface TxPool extends TypedEventEmitter<TxPoolEvents> {
63
63
  * Deletes transactions from the pool. Tx hashes that are not present are ignored.
64
64
  * @param txHashes - An array of tx hashes to be removed from the tx pool.
65
65
  */
66
- deleteTxs(txHashes: TxHash[]): Promise<void>;
66
+ deleteTxs(txHashes: TxHash[], opts?: {
67
+ permanently?: boolean;
68
+ }): Promise<void>;
67
69
  /**
68
70
  * Gets all transactions currently in the tx pool.
69
71
  * @returns An array of transaction objects found in the tx pool.
@@ -87,11 +89,11 @@ export interface TxPool extends TypedEventEmitter<TxPoolEvents> {
87
89
  */
88
90
  getMinedTxHashes(): Promise<[tx: TxHash, blockNumber: number][]>;
89
91
  /**
90
- * Returns whether the given tx hash is flagged as pending or mined.
92
+ * Returns whether the given tx hash is flagged as pending, mined, or deleted.
91
93
  * @param txHash - Hash of the tx to query.
92
- * @returns Pending or mined depending on its status, or undefined if not found.
94
+ * @returns Pending, mined, or deleted depending on its status, or undefined if not found.
93
95
  */
94
- getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | undefined>;
96
+ getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
95
97
  /**
96
98
  * Configure the maximum size of the tx pool
97
99
  * @param maxSizeBytes - The maximum size in bytes of the mempool. Set to undefined to disable it
@@ -104,5 +106,11 @@ export interface TxPool extends TypedEventEmitter<TxPoolEvents> {
104
106
  * @param txHashes - Hashes of the transactions to mark as non-evictible.
105
107
  */
106
108
  markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
109
+ /**
110
+ * Permanently deletes deleted mined transactions from blocks up to and including the specified block number.
111
+ * @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
112
+ * @returns The number of transactions permanently deleted.
113
+ */
114
+ cleanupDeletedMinedTxs(blockNumber: number): Promise<number>;
107
115
  }
108
116
  //# sourceMappingURL=tx_pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IAC7D;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAErD;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAE9D;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAE/C;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAE7D;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3B;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpC;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAExC,qDAAqD;IACrD,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAErC;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEjE;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAEtE;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAE1C,yCAAyC;IACzC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5B;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D"}
1
+ {"version":3,"file":"tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/tx_pool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tx_pool_test_suite.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/tx_pool_test_suite.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,MAAM,QAkMrD"}
1
+ {"version":3,"file":"tx_pool_test_suite.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/tx_pool_test_suite.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,MAAM,QA6SrD"}
@@ -58,16 +58,29 @@ import { BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
58
58
  tx3
59
59
  ]));
60
60
  });
61
- it('removes txs from the pool', async ()=>{
62
- const tx1 = await mockTx();
61
+ it('permanently deletes pending txs and soft-deletes mined txs', async ()=>{
62
+ const pendingTx = await mockTx(1);
63
+ const minedTx = await mockTx(2);
63
64
  await pool.addTxs([
64
- tx1
65
+ pendingTx,
66
+ minedTx
65
67
  ]);
68
+ await pool.markAsMined([
69
+ minedTx.getTxHash()
70
+ ], minedBlockHeader);
71
+ // Delete a pending tx - should be permanently deleted
66
72
  await pool.deleteTxs([
67
- tx1.getTxHash()
73
+ pendingTx.getTxHash()
74
+ ]);
75
+ await expect(pool.getTxByHash(pendingTx.getTxHash())).resolves.toBeUndefined();
76
+ await expect(pool.getTxStatus(pendingTx.getTxHash())).resolves.toBeUndefined();
77
+ // Delete a mined tx - should be soft-deleted (still in storage)
78
+ await pool.deleteTxs([
79
+ minedTx.getTxHash()
68
80
  ]);
69
- await expect(pool.getTxByHash(tx1.getTxHash())).resolves.toBeFalsy();
70
- await expect(pool.getTxStatus(tx1.getTxHash())).resolves.toBeUndefined();
81
+ await expect(pool.getTxByHash(minedTx.getTxHash())).resolves.toBeDefined();
82
+ await expect(pool.getTxStatus(minedTx.getTxHash())).resolves.toEqual('deleted');
83
+ await expect(pool.getMinedTxHashes()).resolves.toEqual([]);
71
84
  await expect(pool.getPendingTxCount()).resolves.toEqual(0);
72
85
  });
73
86
  it('marks txs as mined', async ()=>{
@@ -267,4 +280,115 @@ import { BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
267
280
  tx2
268
281
  ].map((tx)=>tx.getTxHash()));
269
282
  });
283
+ describe('soft-delete', ()=>{
284
+ it('soft-deletes mined txs and keeps them in storage', async ()=>{
285
+ const txs = await Promise.all([
286
+ mockTx(1),
287
+ mockTx(2),
288
+ mockTx(3)
289
+ ]);
290
+ await pool.addTxs(txs);
291
+ // Mark first tx as mined
292
+ await pool.markAsMined([
293
+ txs[0].getTxHash()
294
+ ], minedBlockHeader);
295
+ // Verify initial state
296
+ await expect(pool.getPendingTxCount()).resolves.toBe(2);
297
+ await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeDefined();
298
+ await expect(pool.getTxByHash(txs[1].getTxHash())).resolves.toBeDefined();
299
+ // Delete mined tx - should be soft-deleted
300
+ await pool.deleteTxs([
301
+ txs[0].getTxHash()
302
+ ]);
303
+ // Delete pending tx - should be permanently deleted
304
+ await pool.deleteTxs([
305
+ txs[1].getTxHash()
306
+ ]);
307
+ // Verify mined tx still exists in storage but has 'deleted' status
308
+ await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeDefined();
309
+ await expect(pool.getTxStatus(txs[0].getTxHash())).resolves.toEqual('deleted');
310
+ // Verify pending tx is permanently deleted
311
+ await expect(pool.getTxByHash(txs[1].getTxHash())).resolves.toBeUndefined();
312
+ await expect(pool.getTxStatus(txs[1].getTxHash())).resolves.toBeUndefined();
313
+ // Verify remaining pending count
314
+ await expect(pool.getPendingTxCount()).resolves.toBe(1);
315
+ // Verify pending hashes don't include deleted txs
316
+ const pendingHashes = await pool.getPendingTxHashes();
317
+ expect(pendingHashes).toHaveLength(1);
318
+ expect(pendingHashes.map((h)=>h.toString())).toContain(txs[2].getTxHash().toString());
319
+ });
320
+ it('cleans up old deleted mined transactions', async ()=>{
321
+ const txs = await Promise.all([
322
+ mockTx(1),
323
+ mockTx(2),
324
+ mockTx(3)
325
+ ]);
326
+ await pool.addTxs(txs);
327
+ // Mark first two as mined in block 1
328
+ await pool.markAsMined([
329
+ txs[0].getTxHash(),
330
+ txs[1].getTxHash()
331
+ ], minedBlockHeader);
332
+ // Soft-delete mined transactions
333
+ await pool.deleteTxs([
334
+ txs[0].getTxHash(),
335
+ txs[1].getTxHash()
336
+ ]);
337
+ // Clean up deleted mined txs from block 1 and earlier
338
+ const deletedCount = await pool.cleanupDeletedMinedTxs(1);
339
+ // Verify old transactions are permanently deleted
340
+ expect(deletedCount).toBe(2);
341
+ await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeUndefined();
342
+ await expect(pool.getTxByHash(txs[1].getTxHash())).resolves.toBeUndefined();
343
+ await expect(pool.getTxByHash(txs[2].getTxHash())).resolves.toBeDefined();
344
+ });
345
+ it('does not clean up recent deleted mined transactions', async ()=>{
346
+ const txs = await Promise.all([
347
+ mockTx(1),
348
+ mockTx(2)
349
+ ]);
350
+ await pool.addTxs(txs);
351
+ // Mark as mined in block 2
352
+ const laterBlockHeader = BlockHeader.empty({
353
+ globalVariables: GlobalVariables.empty({
354
+ blockNumber: 2,
355
+ timestamp: 0n
356
+ })
357
+ });
358
+ await pool.markAsMined([
359
+ txs[0].getTxHash()
360
+ ], laterBlockHeader);
361
+ // Soft-delete a mined transaction
362
+ await pool.deleteTxs([
363
+ txs[0].getTxHash()
364
+ ]);
365
+ // Try to clean up with block 1 (before the mined block)
366
+ const deletedCount = await pool.cleanupDeletedMinedTxs(1);
367
+ // Verify no transactions were cleaned up
368
+ expect(deletedCount).toBe(0);
369
+ await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeDefined();
370
+ });
371
+ it('restores deleted mined tx when it is mined again', async ()=>{
372
+ const tx = await mockTx(1);
373
+ await pool.addTxs([
374
+ tx
375
+ ]);
376
+ // Mark as mined
377
+ await pool.markAsMined([
378
+ tx.getTxHash()
379
+ ], minedBlockHeader);
380
+ // Soft-delete it
381
+ await pool.deleteTxs([
382
+ tx.getTxHash()
383
+ ]);
384
+ await expect(pool.getTxStatus(tx.getTxHash())).resolves.toEqual('deleted');
385
+ // Mark as mined again (e.g., after a reorg)
386
+ await pool.markAsMined([
387
+ tx.getTxHash()
388
+ ], minedBlockHeader);
389
+ // Should be back to mined status
390
+ await expect(pool.getTxStatus(tx.getTxHash())).resolves.toEqual('mined');
391
+ await expect(pool.getTxByHash(tx.getTxHash())).resolves.toBeDefined();
392
+ });
393
+ });
270
394
  }
@@ -9,7 +9,7 @@ export class DoubleSpendTxValidator {
9
9
  async validateTx(tx) {
10
10
  const nullifiers = tx instanceof Tx ? tx.data.getNonEmptyNullifiers() : tx.txEffect.nullifiers;
11
11
  // Ditch this tx if it has repeated nullifiers
12
- const uniqueNullifiers = new Set(nullifiers);
12
+ const uniqueNullifiers = new Set(nullifiers.map((n)=>n.toBigInt()));
13
13
  if (uniqueNullifiers.size !== nullifiers.length) {
14
14
  this.#log.verbose(`Rejecting tx ${'txHash' in tx ? tx.txHash : tx.hash} for emitting duplicate nullifiers`);
15
15
  return {
@@ -9,7 +9,6 @@ import { Tx } from '@aztec/stdlib/tx';
9
9
  import { type TelemetryClient, WithTracer } from '@aztec/telemetry-client';
10
10
  import { ENR } from '@chainsafe/enr';
11
11
  import { type Message, type PeerId } from '@libp2p/interface';
12
- import '@libp2p/kad-dht';
13
12
  import type { P2PConfig } from '../../config.js';
14
13
  import type { MemPools } from '../../mem_pools/interface.js';
15
14
  import { type PubSubLibp2p } from '../../util.js';
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,6 @@ import { yamux } from '@chainsafe/libp2p-yamux';
25
25
  import { bootstrap } from '@libp2p/bootstrap';
26
26
  import { identify } from '@libp2p/identify';
27
27
  import { TopicValidatorResult } from '@libp2p/interface';
28
- import '@libp2p/kad-dht';
29
28
  import { mplex } from '@libp2p/mplex';
30
29
  import { tcp } from '@libp2p/tcp';
31
30
  import { createLibp2p } from 'libp2p';
@@ -165,7 +164,7 @@ import { P2PInstrumentation } from './instrumentation.js';
165
164
  // The connection attempts to the node on TCP layer are not necessarily valid Aztec peers so we want to have a bit of leeway here
166
165
  // If we hit the limit, the connection will be temporarily accepted and immediately dropped.
167
166
  // Docs: https://nodejs.org/api/net.html#servermaxconnections
168
- maxConnections: Math.ceil(maxPeerCount * 1.5),
167
+ maxConnections: maxPeerCount * 2,
169
168
  // socket option: the maximum length of the queue of pending connections
170
169
  // https://nodejs.org/dist/latest-v22.x/docs/api/net.html#serverlisten
171
170
  // it's not safe if we increase this number
@@ -176,7 +175,7 @@ import { P2PInstrumentation } from './instrumentation.js';
176
175
  // In case closeAbove is reached, the server stops listening altogether
177
176
  // It's important that there is enough difference between closeAbove and listenAbove,
178
177
  // otherwise the server.listener will flap between being closed and open potentially degrading perf even more
179
- closeAbove: maxPeerCount * 2,
178
+ closeAbove: maxPeerCount * 3,
180
179
  listenBelow: Math.floor(maxPeerCount * 0.9)
181
180
  }
182
181
  })
@@ -192,7 +191,9 @@ import { P2PInstrumentation } from './instrumentation.js';
192
191
  ],
193
192
  connectionManager: {
194
193
  minConnections: 0,
195
- maxConnections: maxPeerCount,
194
+ // We set maxConnections above maxPeerCount because if we hit limit of maxPeerCount
195
+ // libp2p will start aggressively rejecting all new connections, preventing network discovery and crawling.
196
+ maxConnections: maxPeerCount * 2,
196
197
  maxParallelDials: 100,
197
198
  dialTimeout: 30_000,
198
199
  maxPeerAddrsToDial: 5,
@@ -311,10 +312,6 @@ import { P2PInstrumentation } from './instrumentation.js';
311
312
  const goodbyeHandler = reqGoodbyeHandler(this.peerManager);
312
313
  const blockHandler = reqRespBlockHandler(this.archiver);
313
314
  const statusHandler = reqRespStatusHandler(this.protocolVersion, this.worldStateSynchronizer, this.logger);
314
- // In case P2P client doesnt'have attestation pool,
315
- // const blockTxsHandler = this.mempools.attestationPool
316
- // ? reqRespBlockTxsHandler(this.mempools.attestationPool, this.mempools.txPool)
317
- // : def;
318
315
  const requestResponseHandlers = {
319
316
  [ReqRespSubProtocol.PING]: pingHandler,
320
317
  [ReqRespSubProtocol.STATUS]: statusHandler.bind(this),
@@ -596,8 +593,7 @@ import { P2PInstrumentation } from './instrumentation.js';
596
593
  async processValidBlockProposal(block, sender) {
597
594
  const slot = block.slotNumber.toBigInt();
598
595
  const previousSlot = slot - 1n;
599
- const epoch = slot / 32n;
600
- this.logger.verbose(`Received block ${block.blockNumber} for slot ${slot} epoch ${epoch} from external peer ${sender.toString()}.`, {
596
+ this.logger.verbose(`Received block ${block.blockNumber} for slot ${slot} from external peer ${sender.toString()}.`, {
601
597
  p2pMessageIdentifier: await block.p2pMessageIdentifier(),
602
598
  slot: block.slotNumber.toNumber(),
603
599
  archive: block.archive.toString(),
@@ -1 +1 @@
1
- {"version":3,"file":"peer_manager.d.ts","sourceRoot":"","sources":["../../../src/services/peer-manager/peer_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer_manager.d.ts","sourceRoot":"","sources":["../../../src/services/peer-manager/peer_manager.ts"],"names":[],"mappings":"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"}
@@ -727,7 +727,7 @@ export class PeerManager {
727
727
  const response = await this.reqresp.sendRequestToPeer(peerId, ReqRespSubProtocol.AUTH, authRequest.toBuffer());
728
728
  const { status } = response;
729
729
  if (status !== ReqRespStatus.SUCCESS) {
730
- this.logger.debug(`Disconnecting peer ${peerId} who failed to respond auth handshake`, {
730
+ this.logger.verbose(`Disconnecting peer ${peerId} who failed to respond auth handshake`, {
731
731
  peerId,
732
732
  status: ReqRespStatus[status]
733
733
  });
@@ -744,7 +744,7 @@ export class PeerManager {
744
744
  const peerAuthResponse = AuthResponse.fromBuffer(data);
745
745
  const peerStatusMessage = peerAuthResponse.status;
746
746
  if (!ourStatus.validate(peerStatusMessage)) {
747
- this.logger.debug(`Disconnecting peer ${peerId} due to failed status handshake as part of auth.`, logData);
747
+ this.logger.verbose(`Disconnecting peer ${peerId} due to failed status handshake as part of auth.`, logData);
748
748
  this.markAuthHandshakeFailed(peerId);
749
749
  this.markPeerForDisconnect(peerId);
750
750
  return;
@@ -755,8 +755,8 @@ export class PeerManager {
755
755
  const registeredValidators = await this.epochCache.getRegisteredValidators();
756
756
  const found = registeredValidators.find((v)=>v.toString() === sender.toString()) !== undefined;
757
757
  if (!found) {
758
- this.logger.debug(`Disconnecting peer ${peerId} due to failed auth handshake, peer is not a registered validator.`, {
759
- peerId,
758
+ this.logger.verbose(`Disconnecting peer ${peerId} due to failed auth handshake, peer is not a registered validator.`, {
759
+ ...logData,
760
760
  address: sender.toString()
761
761
  });
762
762
  this.markAuthHandshakeFailed(peerId);
@@ -766,17 +766,24 @@ export class PeerManager {
766
766
  // Check to see that this validator address isn't already allocated to a different peer
767
767
  const peerForAddress = this.authenticatedValidatorAddressToPeerId.get(sender.toString());
768
768
  if (peerForAddress !== undefined && peerForAddress.toString() !== peerIdString) {
769
- this.logger.debug(`Received auth for validator ${sender.toString()} from peer ${peerIdString}, but this validator is already authenticated to peer ${peerForAddress.toString()}`);
769
+ this.logger.verbose(`Received auth for validator ${sender.toString()} from peer ${peerIdString}, but this validator is already authenticated to peer ${peerForAddress.toString()}`, {
770
+ ...logData,
771
+ address: sender.toString()
772
+ });
770
773
  return;
771
774
  }
772
775
  this.markAuthHandshakeSuccess(peerId);
773
776
  this.authenticatedPeerIdToValidatorAddress.set(peerIdString, sender);
774
777
  this.authenticatedValidatorAddressToPeerId.set(sender.toString(), peerId);
775
- this.logger.info(`Successfully completed auth handshake with peer ${peerId}, validator address ${sender.toString()}`, logData);
778
+ this.logger.info(`Successfully completed auth handshake with peer ${peerId}, validator address ${sender.toString()}`, {
779
+ ...logData,
780
+ address: sender.toString()
781
+ });
776
782
  } catch (err) {
777
783
  //TODO: maybe hard ban these peers in the future
778
- this.logger.debug(`Disconnecting peer ${peerId} due to error during auth handshake: ${err.message ?? err}`, {
779
- peerId
784
+ this.logger.verbose(`Disconnecting peer ${peerId} due to error during auth handshake: ${err.message}`, {
785
+ peerId,
786
+ err
780
787
  });
781
788
  this.markAuthHandshakeFailed(peerId);
782
789
  this.markPeerForDisconnect(peerId);
@@ -86,15 +86,6 @@ export declare class ValidationError extends Error {
86
86
  export type SubProtocolMap = {
87
87
  [S in ReqRespSubProtocol]: RequestResponsePair<InstanceType<(typeof subProtocolMap)[S]['request']>, InstanceType<(typeof subProtocolMap)[S]['response']>>;
88
88
  };
89
- /**
90
- * Default handler for unimplemented sub protocols, this SHOULD be overwritten
91
- * by the service, but is provided as a fallback
92
- */
93
- export declare const defaultHandler: (_msg: any) => Promise<Buffer>;
94
- /**
95
- * Default sub protocol handlers - this SHOULD be overwritten by the service,
96
- */
97
- export declare const DEFAULT_SUB_PROTOCOL_HANDLERS: ReqRespSubProtocolHandlers;
98
89
  /**
99
90
  * The Request Response Pair interface defines the methods that each
100
91
  * request response pair must implement
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,eAAe,4BAA4B,CAAC;AACzD,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAC3D,eAAO,MAAM,eAAe,wBAAwB,CAAC;AACrD,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAC3D,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,sBAAsB,+BAA+B,CAAC;AAEnE,oBAAY,kBAAkB;IAC5B,IAAI,0BAAgB;IACpB,MAAM,4BAAkB;IACxB,OAAO,6BAAmB;IAC1B,EAAE,wBAAkB;IACpB,KAAK,2BAAqB;IAC1B,IAAI,0BAAgB;IACpB,SAAS,+BAAyB;CACnC;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEzF;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;AAE9F;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC;IAC1B;;OAEG;IACH,WAAW,EAAE,cAAc,CAAC;CAC7B;AAED,eAAO,MAAM,aAAa,wBAA8B,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;AAE/F,KAAK,iBAAiB,CAAC,iBAAiB,EAAE,QAAQ,IAAI,CACpD,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,4BAA4B,GAAG;KACxC,CAAC,IAAI,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,4BAQ7C,CAAC;AAIF,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAG5B;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;KAC1B,CAAC,IAAI,kBAAkB,GAAG,mBAAmB,CAC5C,YAAY,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACnD,YAAY,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CACrD;CACF,CAAC;AAEF;;;GAGG;AACH,UAAU,mBAAmB,CAAC,GAAG,SAAS;IAAE,QAAQ,IAAI,MAAM,CAAA;CAAE,EAAE,GAAG;IACnE;;OAEG;IACH,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IACrC;;OAEG;IACH,QAAQ,EAAE;QACR,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QAC1B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;KACjC,CAAC;CACH;AAWD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,kBAAkB,EAC7D,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,MAAM,GACb,YAAY,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAEtD;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IACT,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAEjC,QAAQ;IAIR,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM;CAGjC;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B1B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CACH,mBAAmB,EAAE,OAAO,CAAC,0BAA0B,CAAC,EACxD,qBAAqB,EAAE,4BAA4B,GAClD,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,cAAc,CACZ,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,yBAAyB,EAClC,SAAS,CAAC,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,gBAAgB,CAAC,WAAW,SAAS,kBAAkB,EACrD,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAChE,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5B,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;CACvD"}
@@ -39,23 +39,6 @@ export const DEFAULT_SUB_PROTOCOL_VALIDATORS = {
39
39
  super(message);
40
40
  }
41
41
  }
42
- /**
43
- * Default handler for unimplemented sub protocols, this SHOULD be overwritten
44
- * by the service, but is provided as a fallback
45
- */ export const defaultHandler = (_msg)=>{
46
- return Promise.resolve(Buffer.from('unimplemented'));
47
- };
48
- /**
49
- * Default sub protocol handlers - this SHOULD be overwritten by the service,
50
- */ export const DEFAULT_SUB_PROTOCOL_HANDLERS = {
51
- [ReqRespSubProtocol.PING]: defaultHandler,
52
- [ReqRespSubProtocol.STATUS]: defaultHandler,
53
- [ReqRespSubProtocol.TX]: defaultHandler,
54
- [ReqRespSubProtocol.GOODBYE]: defaultHandler,
55
- [ReqRespSubProtocol.BLOCK]: defaultHandler,
56
- [ReqRespSubProtocol.AUTH]: defaultHandler,
57
- [ReqRespSubProtocol.BLOCK_TXS]: defaultHandler
58
- };
59
42
  /*
60
43
  * Small helper function which parses buffer into specific response type
61
44
  * It is needed to make TypeScript happy, as it cannot infer the type from the buffer
@@ -1 +1 @@
1
- {"version":3,"file":"reqresp.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/reqresp.ts"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,eAAe,EAAiC,MAAM,yBAAyB,CAAC;AAE1G,OAAO,KAAK,EAAsB,MAAM,EAAU,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AASxB;;;;;;;;;;;;;GAaG;AACH,qBAAa,OAAQ,YAAW,gBAAgB;IAiB5C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAlBhB,OAAO,CAAC,0BAA0B,CAAiD;IACnF,OAAO,CAAC,aAAa,CAA2C;IAGhE,OAAO,CAAC,mBAAmB,CAA6D;IACxF,OAAO,CAAC,qBAAqB,CAAiE;IAE9F,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,OAAO,CAAiB;gBAG9B,MAAM,EAAE,gBAAgB,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,yCAA8B,EAC5C,UAAU,GAAE,OAAO,CAAC,4BAA4B,CAAM,EACtD,eAAe,GAAE,eAAsC;IAkBlD,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAU5D,IAAI,MAAM,6CAET;IAED;;OAEG;IACG,KAAK,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,4BAA4B;IAiB1G,cAAc,CAClB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,yBAAyB,EAClC,SAAS,GAAE,4BAA4B,CAAC,kBAAkB,CAAgD,GACzG,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACG,IAAI;IAoBV;;;;;;;;;;;;;;;;;;;;;OAqBG;IAQG,gBAAgB,CAAC,WAAW,SAAS,kBAAkB,EAC3D,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAChE,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,SAAQ,EACjB,QAAQ,SAA+C,EACvD,gBAAgB,SAAI,GACnB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;IAgJnE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAKU,iBAAiB,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAA2B,GACvC,OAAO,CAAC,eAAe,CAAC;IAsD3B;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;;;OAMG;YACW,WAAW;IA6CzB;;;;;;;;;;;;;;;;OAgBG;YAKW,aAAa;IAuD3B;;;;;;;SAOK;YACS,aAAa;IA4B3B;;;;;;;OAOG;YACW,YAAY;IAmC1B,OAAO,CAAC,kBAAkB;IAO1B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAyB/B,OAAO,CAAC,0BAA0B;CA8DnC"}
1
+ {"version":3,"file":"reqresp.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/reqresp.ts"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,eAAe,EAAiC,MAAM,yBAAyB,CAAC;AAE1G,OAAO,KAAK,EAAsB,MAAM,EAAU,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AASxB;;;;;;;;;;;;;GAaG;AACH,qBAAa,OAAQ,YAAW,gBAAgB;IAgB5C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAjBhB,OAAO,CAAC,0BAA0B,CAAiD;IACnF,OAAO,CAAC,aAAa,CAA2C;IAEhE,OAAO,CAAC,mBAAmB,CAA2C;IACtE,OAAO,CAAC,qBAAqB,CAA6C;IAE1E,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,OAAO,CAAiB;gBAG9B,MAAM,EAAE,gBAAgB,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,yCAA8B,EAC5C,UAAU,GAAE,OAAO,CAAC,4BAA4B,CAAM,EACtD,eAAe,GAAE,eAAsC;IAkBlD,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAU5D,IAAI,MAAM,6CAET;IAED;;OAEG;IACG,KAAK,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,4BAA4B;IAkB1G,cAAc,CAClB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,yBAAyB,EAClC,SAAS,GAAE,4BAA4B,CAAC,kBAAkB,CAAgD,GACzG,OAAO,CAAC,IAAI,CAAC;IAahB;;OAEG;IACG,IAAI;IAoBV;;;;;;;;;;;;;;;;;;;;;OAqBG;IAQG,gBAAgB,CAAC,WAAW,SAAS,kBAAkB,EAC3D,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAChE,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,SAAQ,EACjB,QAAQ,SAA+C,EACvD,gBAAgB,SAAI,GACnB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;IAgJnE;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAKU,iBAAiB,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAA2B,GACvC,OAAO,CAAC,eAAe,CAAC;IAsD3B;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;;;OAMG;YACW,WAAW;IA6CzB;;;;;;;;;;;;;;;;OAgBG;YAKW,aAAa;IAuD3B;;;;;;;SAOK;YACS,aAAa;IAgC3B;;;;;;;OAOG;YACW,YAAY;IAmC1B,OAAO,CAAC,kBAAkB;IAO1B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAyB/B,OAAO,CAAC,0BAA0B;CA8DnC"}