@aztec/p2p 0.61.0 → 0.63.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 (54) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +3 -1
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +7 -3
  4. package/dest/client/index.d.ts +1 -1
  5. package/dest/client/index.d.ts.map +1 -1
  6. package/dest/client/index.js +2 -2
  7. package/dest/client/p2p_client.d.ts +11 -5
  8. package/dest/client/p2p_client.d.ts.map +1 -1
  9. package/dest/client/p2p_client.js +95 -27
  10. package/dest/config.d.ts +4 -4
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +6 -5
  13. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  14. package/dest/mem_pools/attestation_pool/mocks.js +5 -3
  15. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +3 -2
  16. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  17. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +30 -5
  18. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +3 -2
  19. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
  20. package/dest/mem_pools/tx_pool/memory_tx_pool.js +26 -5
  21. package/dest/mem_pools/tx_pool/tx_pool.d.ts +8 -2
  22. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  23. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  24. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -3
  25. package/dest/mocks/index.d.ts +3 -3
  26. package/dest/mocks/index.d.ts.map +1 -1
  27. package/dest/mocks/index.js +10 -9
  28. package/dest/service/discV5_service.d.ts +2 -1
  29. package/dest/service/discV5_service.d.ts.map +1 -1
  30. package/dest/service/discV5_service.js +6 -2
  31. package/dest/service/libp2p_service.d.ts.map +1 -1
  32. package/dest/service/libp2p_service.js +6 -3
  33. package/dest/tx_validator/double_spend_validator.d.ts.map +1 -1
  34. package/dest/tx_validator/double_spend_validator.js +2 -2
  35. package/dest/tx_validator/metadata_validator.d.ts.map +1 -1
  36. package/dest/tx_validator/metadata_validator.js +2 -5
  37. package/dest/util.d.ts +1 -1
  38. package/dest/util.d.ts.map +1 -1
  39. package/package.json +7 -6
  40. package/src/bootstrap/bootstrap.ts +5 -3
  41. package/src/client/index.ts +3 -2
  42. package/src/client/p2p_client.ts +118 -34
  43. package/src/config.ts +10 -9
  44. package/src/mem_pools/attestation_pool/mocks.ts +4 -2
  45. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +35 -6
  46. package/src/mem_pools/tx_pool/memory_tx_pool.ts +32 -6
  47. package/src/mem_pools/tx_pool/tx_pool.ts +9 -2
  48. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +34 -2
  49. package/src/mocks/index.ts +17 -9
  50. package/src/service/discV5_service.ts +10 -1
  51. package/src/service/libp2p_service.ts +6 -1
  52. package/src/tx_validator/double_spend_validator.ts +3 -1
  53. package/src/tx_validator/metadata_validator.ts +1 -5
  54. package/src/util.ts +1 -1
@@ -1,13 +1,15 @@
1
+ import { type TelemetryClient } from '@aztec/telemetry-client';
1
2
  import type { PeerId } from '@libp2p/interface';
2
3
  import type { BootnodeConfig } from '../config.js';
3
4
  /**
4
5
  * Encapsulates a 'Bootstrap' node, used for the purpose of assisting new joiners in acquiring peers.
5
6
  */
6
7
  export declare class BootstrapNode {
8
+ private telemetry;
7
9
  private logger;
8
10
  private node?;
9
11
  private peerId?;
10
- constructor(logger?: import("@aztec/foundation/log").Logger);
12
+ constructor(telemetry: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
11
13
  /**
12
14
  * Starts the bootstrap node.
13
15
  * @param config - A partial P2P configuration. No need for TCP values as well as aztec node specific values.
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD;;GAEG;AACH,qBAAa,aAAa;IAIZ,OAAO,CAAC,MAAM;IAH1B,OAAO,CAAC,IAAI,CAAC,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEJ,MAAM,yCAA2C;IAErE;;;;OAIG;IACU,KAAK,CAAC,MAAM,EAAE,cAAc;IA8CzC;;;OAGG;IACU,IAAI;IAMjB;;;OAGG;IACI,SAAS;IAOT,MAAM;CAMd"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD;;GAEG;AACH,qBAAa,aAAa;IAIZ,OAAO,CAAC,SAAS;IAAmB,OAAO,CAAC,MAAM;IAH9D,OAAO,CAAC,IAAI,CAAC,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEJ,SAAS,EAAE,eAAe,EAAU,MAAM,yCAA2C;IAEzG;;;;OAIG;IACU,KAAK,CAAC,MAAM,EAAE,cAAc;IA+CzC;;;OAGG;IACU,IAAI;IAMjB;;;OAGG;IACI,SAAS;IAOT,MAAM;CAMd"}
@@ -1,4 +1,5 @@
1
1
  import { createDebugLogger } from '@aztec/foundation/log';
2
+ import { OtelMetricsAdapter } from '@aztec/telemetry-client';
2
3
  import { Discv5 } from '@chainsafe/discv5';
3
4
  import { SignableENR } from '@chainsafe/enr';
4
5
  import { multiaddr } from '@multiformats/multiaddr';
@@ -9,7 +10,8 @@ import { convertToMultiaddr } from '../util.js';
9
10
  * Encapsulates a 'Bootstrap' node, used for the purpose of assisting new joiners in acquiring peers.
10
11
  */
11
12
  export class BootstrapNode {
12
- constructor(logger = createDebugLogger('aztec:p2p_bootstrap')) {
13
+ constructor(telemetry, logger = createDebugLogger('aztec:p2p_bootstrap')) {
14
+ this.telemetry = telemetry;
13
15
  this.logger = logger;
14
16
  this.node = undefined;
15
17
  }
@@ -31,6 +33,7 @@ export class BootstrapNode {
31
33
  enr.setLocationMultiaddr(publicAddr);
32
34
  enr.set(AZTEC_ENR_KEY, Uint8Array.from([AZTEC_NET]));
33
35
  this.logger.info(`Starting bootstrap node ${peerId}, listening on ${listenAddrUdp.toString()}`);
36
+ const metricsRegistry = new OtelMetricsAdapter(this.telemetry);
34
37
  this.node = Discv5.create({
35
38
  enr,
36
39
  peerId,
@@ -39,6 +42,7 @@ export class BootstrapNode {
39
42
  lookupTimeout: 2000,
40
43
  allowUnverifiedSessions: true,
41
44
  },
45
+ metricsRegistry,
42
46
  });
43
47
  this.node.on('multiaddrUpdated', (addr) => {
44
48
  this.logger.info('Advertised socket address updated', { addr: addr.toString() });
@@ -63,7 +67,7 @@ export class BootstrapNode {
63
67
  async stop() {
64
68
  // stop libp2p
65
69
  await this.node?.stop();
66
- this.logger.debug('libp2p has stopped');
70
+ this.logger.debug('Discv5 has stopped');
67
71
  }
68
72
  /**
69
73
  * Returns the peerId of this node.
@@ -82,4 +86,4 @@ export class BootstrapNode {
82
86
  return this.node?.enr.toENR();
83
87
  }
84
88
  }
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLE1BQU0sRUFBMkIsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFrQixTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQW9CLFNBQVMsaUJBQWlCLENBQUMscUJBQXFCLENBQUM7UUFBakQsV0FBTSxHQUFOLE1BQU0sQ0FBMkM7UUFIN0QsU0FBSSxHQUFZLFNBQVMsQ0FBQztJQUdzQyxDQUFDO0lBRXpFOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQXNCO1FBQ3ZDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBRyxNQUFNLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMs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
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jvb3RzdHJhcC9ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUF3QixNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxNQUFNLEVBQTJCLE1BQU0sbUJBQW1CLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBa0IsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUFvQixTQUEwQixFQUFVLFNBQVMsaUJBQWlCLENBQUMscUJBQXFCLENBQUM7UUFBckYsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUEyQztRQUhqRyxTQUFJLEdBQVksU0FBUyxDQUFDO0lBRzBFLENBQUM7SUFFN0c7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBc0I7UUFDdkMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzFFLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENB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
@@ -1,6 +1,6 @@
1
1
  import type { ClientProtocolCircuitVerifier, L2BlockSource, WorldStateSynchronizer } from '@aztec/circuit-types';
2
2
  import { type AztecKVStore } from '@aztec/kv-store';
3
- import { type DataStoreConfig } from '@aztec/kv-store/utils';
3
+ import { type DataStoreConfig } from '@aztec/kv-store/config';
4
4
  import { type TelemetryClient } from '@aztec/telemetry-client';
5
5
  import { P2PClient } from '../client/p2p_client.js';
6
6
  import { type P2PConfig } from '../config.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAe,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEzF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+DAA+D,CAAC;AAGzG,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAM3E,cAAc,iBAAiB,CAAC;AAEhC,eAAO,MAAM,eAAe,YACjB,SAAS,GAAG,eAAe,iBACrB,aAAa,iBACb,6BAA6B,0BACpB,sBAAsB,cACnC,eAAe,SACpB;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,uBAmCF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEzF,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,+DAA+D,CAAC;AAGzG,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAM3E,cAAc,iBAAiB,CAAC;AAEhC,eAAO,MAAM,eAAe,YACjB,SAAS,GAAG,eAAe,iBACrB,aAAa,iBACb,6BAA6B,0BACpB,sBAAsB,cACnC,eAAe,SACpB;IACJ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,uBAmCF,CAAC"}
@@ -23,7 +23,7 @@ export const createP2PClient = async (_config, l2BlockSource, proofVerifier, wor
23
23
  config = await configureP2PClientAddresses(_config);
24
24
  // Create peer discovery service
25
25
  const peerId = await createLibP2PPeerId(config.peerIdPrivateKey);
26
- const discoveryService = new DiscV5Service(peerId, config);
26
+ const discoveryService = new DiscV5Service(peerId, config, telemetry);
27
27
  p2pService = await LibP2PService.new(config, discoveryService, peerId, mempools, l2BlockSource, proofVerifier, worldStateSynchronizer, store, telemetry);
28
28
  }
29
29
  else {
@@ -31,4 +31,4 @@ export const createP2PClient = async (_config, l2BlockSource, proofVerifier, wor
31
31
  }
32
32
  return new P2PClient(store, l2BlockSource, mempools, p2pService, config.keepProvenTxsInPoolFor, telemetry);
33
33
  };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBd0IsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3BELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBRW5HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBRWpILE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekQsY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUNsQyxPQUFvQyxFQUNwQyxhQUE0QixFQUM1QixhQUE0QyxFQUM1QyxzQkFBOEMsRUFDOUMsWUFBNkIsSUFBSSxtQkFBbUIsRUFBRSxFQUN0RCxPQUtJLEVBQUUsRUFDTixFQUFFO0lBQ0YsSUFBSSxNQUFNLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBHLE1BQU0sUUFBUSxHQUFhO1FBQ3pCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksYUFBYSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7UUFDMUQsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7UUFDL0UsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUkseUJBQXlCLENBQUMsU0FBUyxDQUFDO0tBQzFGLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQztJQUVmLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxNQUFNLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBELGdDQUFnQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNELFVBQVUsR0FBRyxNQUFNLGFBQWEsQ0FBQyxHQUFHLENBQ2xDLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFFBQVEsRUFDUixhQUFhLEVBQ2IsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDN0csQ0FBQyxDQUFDIn0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFbkcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFFakgsT0FBTyxFQUFFLGFBQWEsRUFBZSxNQUFNLCtCQUErQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV6RCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQ2xDLE9BQW9DLEVBQ3BDLGFBQTRCLEVBQzVCLGFBQTRDLEVBQzVDLHNCQUE4QyxFQUM5QyxZQUE2QixJQUFJLG1CQUFtQixFQUFFLEVBQ3RELE9BS0ksRUFBRSxFQUNOLEVBQUU7SUFDRixJQUFJLE1BQU0sR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEcsTUFBTSxRQUFRLEdBQWE7UUFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztRQUMxRCxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLHVCQUF1QixDQUFDLFNBQVMsQ0FBQztRQUMvRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSx5QkFBeUIsQ0FBQyxTQUFTLENBQUM7S0FDMUYsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDO0lBRWYsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDdkIsTUFBTSxHQUFHLE1BQU0sMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFcEQsZ0NBQWdDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXRFLFVBQVUsR0FBRyxNQUFNLGFBQWEsQ0FBQyxHQUFHLENBQ2xDLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFFBQVEsRUFDUixhQUFhLEVBQ2IsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixLQUFLLEVBQ0wsU0FBUyxDQUNWLENBQUM7SUFDSixDQUFDO1NBQU0sQ0FBQztRQUNOLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsc0JBQXNCLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDN0csQ0FBQyxDQUFDIn0=
@@ -1,4 +1,4 @@
1
- import { type BlockAttestation, type BlockProposal, type EpochProofQuote, type L2BlockId, type L2BlockSource, type Tx, type TxHash } from '@aztec/circuit-types';
1
+ import { type BlockAttestation, type BlockProposal, type EpochProofQuote, type L2BlockId, type L2BlockSource, type L2BlockStreamEvent, type L2Tips, type Tx, type TxHash } from '@aztec/circuit-types';
2
2
  import { type AztecKVStore } from '@aztec/kv-store';
3
3
  import { type TelemetryClient, WithTracer } from '@aztec/telemetry-client';
4
4
  import { type ENR } from '@chainsafe/enr';
@@ -142,10 +142,6 @@ export declare class P2PClient extends WithTracer implements P2P {
142
142
  private p2pService;
143
143
  private keepProvenTxsFor;
144
144
  private log;
145
- /** L2 block download to stay in sync with latest blocks. */
146
- private latestBlockDownloader;
147
- /** L2 block download to stay in sync with proven blocks. */
148
- private provenBlockDownloader;
149
145
  /** Property that indicates whether the client is running. */
150
146
  private stopping;
151
147
  /** The JS promise that will be running to keep the client's data in sync. Can be interrupted if the client is stopped. */
@@ -155,11 +151,13 @@ export declare class P2PClient extends WithTracer implements P2P {
155
151
  private syncResolve?;
156
152
  private latestBlockNumberAtStart;
157
153
  private provenBlockNumberAtStart;
154
+ private synchedBlockHashes;
158
155
  private synchedLatestBlockNumber;
159
156
  private synchedProvenBlockNumber;
160
157
  private txPool;
161
158
  private attestationPool;
162
159
  private epochProofQuotePool;
160
+ private blockStream;
163
161
  /**
164
162
  * In-memory P2P client constructor.
165
163
  * @param store - The client's instance of the KV store.
@@ -170,6 +168,9 @@ export declare class P2PClient extends WithTracer implements P2P {
170
168
  * @param log - A logger.
171
169
  */
172
170
  constructor(store: AztecKVStore, l2BlockSource: L2BlockSource, mempools: MemPools, p2pService: P2PService, keepProvenTxsFor: number, telemetryClient: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
171
+ getL2BlockHash(number: number): Promise<string | undefined>;
172
+ getL2Tips(): Promise<L2Tips>;
173
+ handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
173
174
  /**
174
175
  * Adds an EpochProofQuote to the pool and broadcasts an EpochProofQuote to other peers.
175
176
  * @param quote - the quote to broadcast
@@ -292,6 +293,11 @@ export declare class P2PClient extends WithTracer implements P2P {
292
293
  * @returns Empty promise.
293
294
  */
294
295
  private handleProvenL2Blocks;
296
+ /**
297
+ * Updates the tx pool after a chain prune.
298
+ * @param latestBlock - The block number the chain was pruned to.
299
+ */
300
+ private handlePruneL2Blocks;
295
301
  private startServiceIfSynched;
296
302
  /**
297
303
  * Method to set the value of the current state.
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { __classPrivateFieldGet, __esDecorate, __runInitializers } from "tslib";
2
- import { L2BlockDownloader, } from '@aztec/circuit-types';
2
+ import { L2BlockStream, } from '@aztec/circuit-types';
3
3
  import { INITIAL_L2_BLOCK_NUM } from '@aztec/circuits.js/constants';
4
4
  import { createDebugLogger } from '@aztec/foundation/log';
5
5
  import { Attributes, WithTracer, trackSpan } from '@aztec/telemetry-client';
@@ -47,19 +47,70 @@ let P2PClient = (() => {
47
47
  this.syncResolve = undefined;
48
48
  this.latestBlockNumberAtStart = -1;
49
49
  this.provenBlockNumberAtStart = -1;
50
- const { blockCheckIntervalMS: checkInterval, l2QueueSize: p2pL2QueueSize } = getP2PConfigFromEnv();
51
- const l2DownloaderOpts = { maxQueueSize: p2pL2QueueSize, pollIntervalMS: checkInterval };
52
- // TODO(palla/prover-node): This effectively downloads blocks twice from the archiver, which is an issue
53
- // if the archiver is remote. We should refactor this so the downloader keeps a single queue and handles
54
- // latest/proven metadata, as well as block reorgs.
55
- this.latestBlockDownloader = new L2BlockDownloader(l2BlockSource, l2DownloaderOpts);
56
- this.provenBlockDownloader = new L2BlockDownloader(l2BlockSource, { ...l2DownloaderOpts, proven: true });
50
+ const { blockCheckIntervalMS, blockRequestBatchSize } = getP2PConfigFromEnv();
51
+ this.blockStream = new L2BlockStream(l2BlockSource, this, this, {
52
+ batchSize: blockRequestBatchSize,
53
+ pollIntervalMS: blockCheckIntervalMS,
54
+ });
55
+ this.synchedBlockHashes = store.openMap('p2p_pool_block_hashes');
57
56
  this.synchedLatestBlockNumber = store.openSingleton('p2p_pool_last_l2_block');
58
57
  this.synchedProvenBlockNumber = store.openSingleton('p2p_pool_last_proven_l2_block');
59
58
  this.txPool = mempools.txPool;
60
59
  this.attestationPool = mempools.attestationPool;
61
60
  this.epochProofQuotePool = mempools.epochProofQuotePool;
62
61
  }
62
+ getL2BlockHash(number) {
63
+ return Promise.resolve(this.synchedBlockHashes.get(number));
64
+ }
65
+ getL2Tips() {
66
+ const latestBlockNumber = this.getSyncedLatestBlockNum();
67
+ let latestBlockHash;
68
+ const provenBlockNumber = this.getSyncedProvenBlockNum();
69
+ let provenBlockHash;
70
+ if (latestBlockNumber > 0) {
71
+ latestBlockHash = this.synchedBlockHashes.get(latestBlockNumber);
72
+ if (typeof latestBlockHash === 'undefined') {
73
+ this.log.warn(`Block hash for latest block ${latestBlockNumber} not found`);
74
+ throw new Error();
75
+ }
76
+ }
77
+ if (provenBlockNumber > 0) {
78
+ provenBlockHash = this.synchedBlockHashes.get(provenBlockNumber);
79
+ if (typeof provenBlockHash === 'undefined') {
80
+ this.log.warn(`Block hash for proven block ${provenBlockNumber} not found`);
81
+ throw new Error();
82
+ }
83
+ }
84
+ return Promise.resolve({
85
+ latest: { hash: latestBlockHash, number: latestBlockNumber },
86
+ proven: { hash: provenBlockHash, number: provenBlockNumber },
87
+ finalized: { hash: provenBlockHash, number: provenBlockNumber },
88
+ });
89
+ }
90
+ async handleBlockStreamEvent(event) {
91
+ this.log.debug(`Handling block stream event ${event.type}`);
92
+ switch (event.type) {
93
+ case 'blocks-added':
94
+ await this.handleLatestL2Blocks(event.blocks);
95
+ break;
96
+ case 'chain-finalized':
97
+ // TODO (alexg): I think we can prune the block hashes map here
98
+ break;
99
+ case 'chain-proven': {
100
+ const from = this.getSyncedProvenBlockNum() + 1;
101
+ const limit = event.blockNumber - from + 1;
102
+ await this.handleProvenL2Blocks(await this.l2BlockSource.getBlocks(from, limit));
103
+ break;
104
+ }
105
+ case 'chain-pruned':
106
+ await this.handlePruneL2Blocks(event.blockNumber);
107
+ break;
108
+ default: {
109
+ const _ = event;
110
+ break;
111
+ }
112
+ }
113
+ }
63
114
  /**
64
115
  * Adds an EpochProofQuote to the pool and broadcasts an EpochProofQuote to other peers.
65
116
  * @param quote - the quote to broadcast
@@ -110,20 +161,7 @@ let P2PClient = (() => {
110
161
  }
111
162
  // publish any txs in TxPool after its doing initial sync
112
163
  this.syncPromise = this.syncPromise.then(() => this.publishStoredTxs());
113
- // start looking for further blocks
114
- const processLatest = async () => {
115
- while (!this.stopping) {
116
- await this.latestBlockDownloader.getBlocks(1).then(this.handleLatestL2Blocks.bind(this));
117
- }
118
- };
119
- const processProven = async () => {
120
- while (!this.stopping) {
121
- await this.provenBlockDownloader.getBlocks(1).then(this.handleProvenL2Blocks.bind(this));
122
- }
123
- };
124
- this.runningPromise = Promise.all([processLatest(), processProven()]).then(() => { });
125
- this.latestBlockDownloader.start(syncedLatestBlock);
126
- this.provenBlockDownloader.start(syncedLatestBlock);
164
+ this.blockStream.start();
127
165
  this.log.verbose(`Started block downloader from block ${syncedLatestBlock}`);
128
166
  return this.syncPromise;
129
167
  }
@@ -136,8 +174,7 @@ let P2PClient = (() => {
136
174
  this.stopping = true;
137
175
  await this.p2pService.stop();
138
176
  this.log.debug('Stopped p2p service');
139
- await this.latestBlockDownloader.stop();
140
- await this.provenBlockDownloader.stop();
177
+ await this.blockStream.stop();
141
178
  this.log.debug('Stopped block downloader');
142
179
  await this.runningPromise;
143
180
  this.setCurrentState(P2PClientState.STOPPED);
@@ -196,7 +233,7 @@ let P2PClient = (() => {
196
233
  else if (filter === 'mined') {
197
234
  return this.txPool
198
235
  .getMinedTxHashes()
199
- .map(txHash => this.txPool.getTxByHash(txHash))
236
+ .map(([txHash]) => this.txPool.getTxByHash(txHash))
200
237
  .filter((tx) => !!tx);
201
238
  }
202
239
  else if (filter === 'pending') {
@@ -305,7 +342,7 @@ let P2PClient = (() => {
305
342
  async markTxsAsMinedFromBlocks(blocks) {
306
343
  for (const block of blocks) {
307
344
  const txHashes = block.body.txEffects.map(txEffect => txEffect.txHash);
308
- await this.txPool.markAsMined(txHashes);
345
+ await this.txPool.markAsMined(txHashes, block.number);
309
346
  }
310
347
  }
311
348
  /**
@@ -331,6 +368,7 @@ let P2PClient = (() => {
331
368
  }
332
369
  await this.markTxsAsMinedFromBlocks(blocks);
333
370
  const lastBlockNum = blocks[blocks.length - 1].number;
371
+ await Promise.all(blocks.map(block => this.synchedBlockHashes.set(block.number, block.hash().toString())));
334
372
  await this.synchedLatestBlockNumber.set(lastBlockNum);
335
373
  this.log.debug(`Synched to latest block ${lastBlockNum}`);
336
374
  await this.startServiceIfSynched();
@@ -364,6 +402,36 @@ let P2PClient = (() => {
364
402
  }
365
403
  await this.startServiceIfSynched();
366
404
  }
405
+ /**
406
+ * Updates the tx pool after a chain prune.
407
+ * @param latestBlock - The block number the chain was pruned to.
408
+ */
409
+ async handlePruneL2Blocks(latestBlock) {
410
+ const txsToDelete = [];
411
+ for (const tx of this.txPool.getAllTxs()) {
412
+ // every tx that's been generated against a block that has now been pruned is no longer valid
413
+ if (tx.data.constants.historicalHeader.globalVariables.blockNumber.toNumber() > latestBlock) {
414
+ txsToDelete.push(tx.getTxHash());
415
+ }
416
+ }
417
+ this.log.info(`Detected chain prune. Removing invalid txs count=${txsToDelete.length} newLatestBlock=${latestBlock} previousLatestBlock=${this.getSyncedLatestBlockNum()}`);
418
+ // delete invalid txs (both pending and mined)
419
+ await this.txPool.deleteTxs(txsToDelete);
420
+ // everything left in the mined set was built against a block on the proven chain so its still valid
421
+ // move back to pending the txs that were reorged out of the chain
422
+ // NOTE: we can't move _all_ txs back to pending because the tx pool could keep hold of mined txs for longer
423
+ // (see this.keepProvenTxsFor)
424
+ const txsToMoveToPending = [];
425
+ for (const [txHash, blockNumber] of this.txPool.getMinedTxHashes()) {
426
+ if (blockNumber > latestBlock) {
427
+ txsToMoveToPending.push(txHash);
428
+ }
429
+ }
430
+ this.log.info(`Moving ${txsToMoveToPending.length} mined txs back to pending`);
431
+ await this.txPool.markMinedAsPending(txsToMoveToPending);
432
+ await this.synchedLatestBlockNumber.set(latestBlock);
433
+ // no need to update block hashes, as they will be updated as new blocks are added
434
+ }
367
435
  async startServiceIfSynched() {
368
436
  if (this.currentState === P2PClientState.SYNCHING &&
369
437
  this.getSyncedLatestBlockNum() >= this.latestBlockNumberAtStart &&
@@ -416,4 +484,4 @@ let P2PClient = (() => {
416
484
  _a;
417
485
  })();
418
486
  export { P2PClient };
419
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUtMLGlCQUFpQixHQUtsQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxVQUFVLEVBQXdCLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4QixtREFBSSxDQUFBO0lBQ0osMkRBQVEsQ0FBQTtJQUNSLHlEQUFPLENBQUE7SUFDUCx5REFBTyxDQUFBO0FBQ1QsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCO0FBK0lEOztHQUVHO0lBQ1UsU0FBUzs7c0JBQVMsVUFBVTs7O3NCQUE1QixTQUFVLFNBQVEsV0FBVTtZQTBCdkM7Ozs7Ozs7O2VBUUc7WUFDSCxZQUNFLEtBQW1CLEVBQ1gsYUFBNEIsRUFDcEMsUUFBa0IsRUFDVixVQUFzQixFQUN0QixnQkFBd0IsRUFDaEMsZUFBZ0MsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7Z0JBRTVDLEtBQUssQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7O2dCQVA1QixrQkFBYSxJQXJDWixtREFBUyxFQXFDVixhQUFhLEVBQWU7Z0JBRTVCLGVBQVUsR0FBVixVQUFVLENBQVk7Z0JBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtnQkFFeEIsUUFBRyxH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
487
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvcDJwX2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQU9MLGFBQWEsR0FLZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxVQUFVLEVBQXdCLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFLbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4QixtREFBSSxDQUFBO0lBQ0osMkRBQVEsQ0FBQTtJQUNSLHlEQUFPLENBQUE7SUFDUCx5REFBTyxDQUFBO0FBQ1QsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCO0FBK0lEOztHQUVHO0lBQ1UsU0FBUzs7c0JBQVMsVUFBVTs7O3NCQUE1QixTQUFVLFNBQVEsV0FBVTtZQXVCdkM7Ozs7Ozs7O2VBUUc7WUFDSCxZQUNFLEtBQW1CLEVBQ1gsYUFBNEIsRUFDcEMsUUFBa0IsRUFDVixVQUFzQixFQUN0QixnQkFBd0IsRUFDaEMsZUFBZ0MsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7Z0JBRTVDLEtBQUssQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7O2dCQVA1QixrQkFBYSxJQWxDWixtREFBUyxFQWtDVixhQUFhLEVBQWU7Z0JBRTVCLGVBQVUsR0FBVixVQUFVLENBQVk7Z0JBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtnQkFFeEIsUUFBRyxHQUFI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
package/dest/config.d.ts CHANGED
@@ -12,6 +12,10 @@ export interface P2PConfig extends P2PReqRespConfig {
12
12
  * The frequency in which to check for new L2 blocks.
13
13
  */
14
14
  blockCheckIntervalMS: number;
15
+ /**
16
+ * The number of blocks to fetch in a single batch.
17
+ */
18
+ blockRequestBatchSize: number;
15
19
  /**
16
20
  * The frequency in which to check for new peers.
17
21
  */
@@ -56,10 +60,6 @@ export interface P2PConfig extends P2PReqRespConfig {
56
60
  * The maximum number of peers (a peer count above this will cause the node to refuse connection attempts)
57
61
  */
58
62
  maxPeerCount: number;
59
- /**
60
- * Data directory for peer & tx databases.
61
- */
62
- dataDirectory?: string;
63
63
  /**
64
64
  * If announceUdpAddress or announceTcpAddress are not provided, query for the IP address of the machine. Default is false.
65
65
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,6BAA6B,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,+HAA+H;IAC/H,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,yCAAyC,EAAE,MAAM,CAAC;IAElD;;OAEG;IACH,wCAAwC,EAAE,MAAM,CAAC;IAEjD;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAgJ3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,SAAS,EACT,oBAAoB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAC5E,GACC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAUhD,eAAO,MAAM,sBAAsB,uIAA4D,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,6BAA6B,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,+HAA+H;IAC/H,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,yCAAyC,EAAE,MAAM,CAAC;IAElD;;OAEG;IACH,wCAAwC,EAAE,MAAM,CAAC;IAEjD;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAiJ3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,SAAS,EACT,oBAAoB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAC5E,GACC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAUhD,eAAO,MAAM,sBAAsB,uIAA4D,CAAC"}
package/dest/config.js CHANGED
@@ -63,10 +63,6 @@ export const p2pConfigMappings = {
63
63
  description: 'The maximum number of peers to connect to.',
64
64
  ...numberConfigHelper(100),
65
65
  },
66
- dataDirectory: {
67
- env: 'DATA_DIRECTORY',
68
- description: 'Data directory for peer & tx databases. Will use temporary location if not set.',
69
- },
70
66
  queryForIp: {
71
67
  env: 'P2P_QUERY_FOR_IP',
72
68
  description: 'If announceUdpAddress or announceTcpAddress are not provided, query for the IP address of the machine. Default is false.',
@@ -138,6 +134,11 @@ export const p2pConfigMappings = {
138
134
  description: 'The chain id of the L1 chain.',
139
135
  ...numberConfigHelper(31337),
140
136
  },
137
+ blockRequestBatchSize: {
138
+ env: 'P2P_BLOCK_REQUEST_BATCH_SIZE',
139
+ description: 'The number of blocks to fetch in a single batch.',
140
+ ...numberConfigHelper(20),
141
+ },
141
142
  ...p2pReqRespConfigMappings,
142
143
  };
143
144
  /**
@@ -158,4 +159,4 @@ const bootnodeConfigKeys = [
158
159
  'udpListenAddress',
159
160
  ];
160
161
  export const bootnodeConfigMappings = pickConfigMappings(p2pConfigMappings, bootnodeConfigKeys);
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBeUIsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWlKOUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWtDO0lBQzlELFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxhQUFhO1FBQ2xCLFdBQVcsRUFBRSwrREFBK0Q7UUFDNUUsR0FBRyxtQkFBbUIsRUFBRTtLQUN6QjtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELG1CQUFtQixFQUFFO1FBQ25CLEdBQUcsRUFBRSw0QkFBNEI7UUFDakMsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsV0FB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
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBeUIsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWlKOUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWtDO0lBQzlELFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxhQUFhO1FBQ2xCLFdBQVcsRUFBRSwrREFBK0Q7UUFDNUUsR0FBRyxtQkFBbUIsRUFBRTtLQUN6QjtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELG1CQUFtQixFQUFFO1FBQ25CLEdBQUcsRUFBRSw0QkFBNEI7UUFDakMsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxxQkFBcUI7UUFDMUIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsV0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA4B,MAAM,sBAAsB,CAAC;AAGlF,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C;;;;GAIG;AACH,eAAO,MAAM,eAAe,yBAG3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,WAClB,iBAAiB,SACnB,MAAM,YACH,EAAE,KACV,QAAQ,gBAAgB,CAY1B,CAAC"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsD,MAAM,sBAAsB,CAAC;AAG5G,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAG9C;;;;GAIG;AACH,eAAO,MAAM,eAAe,yBAG3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,WAClB,iBAAiB,SACnB,MAAM,YACH,EAAE,KACV,QAAQ,gBAAgB,CAc1B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { BlockAttestation, ConsensusPayload, TxHash } from '@aztec/circuit-types';
1
+ import { BlockAttestation, ConsensusPayload, SignatureDomainSeperator, TxHash } from '@aztec/circuit-types';
2
2
  import { makeHeader } from '@aztec/circuits.js/testing';
3
3
  import { Signature } from '@aztec/foundation/eth-signature';
4
4
  import { Fr } from '@aztec/foundation/fields';
@@ -23,9 +23,11 @@ export const mockAttestation = async (signer, slot = 0, archive = Fr.random()) =
23
23
  const header = makeHeader(1, 2, slot);
24
24
  const txs = [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
25
25
  const payload = new ConsensusPayload(header, archive, txs);
26
- const message = `0x${payload.getPayloadToSign().toString('hex')}`;
26
+ const message = `0x${payload
27
+ .getPayloadToSign(SignatureDomainSeperator.blockAttestation)
28
+ .toString('hex')}`;
27
29
  const sigString = await signer.signMessage({ message });
28
30
  const signature = Signature.from0xString(sigString);
29
31
  return new BlockAttestation(payload, signature);
30
32
  };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2F0dGVzdGF0aW9uX3Bvb2wvbW9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUNsQyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hDLE9BQU8sbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUNsQyxNQUF5QixFQUN6QixPQUFlLENBQUMsRUFDaEIsVUFBYyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQ0UsRUFBRTtJQUM3QixnREFBZ0Q7SUFDaEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUUxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFM0QsTUFBTSxPQUFPLEdBQWtCLEtBQUssT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDakYsTUFBTSxTQUFTLEdBQUcsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUV4RCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDIn0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL2F0dGVzdGF0aW9uX3Bvb2wvbW9ja3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsRUFBRTtJQUNsQyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hDLE9BQU8sbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsS0FBSyxFQUNsQyxNQUF5QixFQUN6QixPQUFlLENBQUMsRUFDaEIsVUFBYyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQ0UsRUFBRTtJQUM3QixnREFBZ0Q7SUFDaEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUUxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFM0QsTUFBTSxPQUFPLEdBQWtCLEtBQUssT0FBTztTQUN4QyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQztTQUMzRCxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNyQixNQUFNLFNBQVMsR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXhELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNsRCxDQUFDLENBQUMifQ==
@@ -14,9 +14,10 @@ export declare class AztecKVTxPool implements TxPool {
14
14
  * @param log - A logger.
15
15
  */
16
16
  constructor(store: AztecKVStore, telemetry: TelemetryClient, log?: Logger);
17
- markAsMined(txHashes: TxHash[]): Promise<void>;
17
+ markAsMined(txHashes: TxHash[], blockNumber: number): Promise<void>;
18
+ markMinedAsPending(txHashes: TxHash[]): Promise<void>;
18
19
  getPendingTxHashes(): TxHash[];
19
- getMinedTxHashes(): TxHash[];
20
+ getMinedTxHashes(): [TxHash, number][];
20
21
  getTxStatus(txHash: TxHash): 'pending' | 'mined' | undefined;
21
22
  /**
22
23
  * Checks if a transaction exists in the pool and returns it.
@@ -1 +1 @@
1
- {"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAgC,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;;IAe1C;;;;OAIG;gBACS,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,SAAqC;IAU9F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9C,kBAAkB,IAAI,MAAM,EAAE;IAI9B,gBAAgB,IAAI,MAAM,EAAE;IAI5B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAWnE;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvC;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnD;;;OAGG;IACI,SAAS,IAAI,EAAE,EAAE;IAIxB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;CAGlC"}
1
+ {"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,YAAY,EAAgC,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,qBAAa,aAAc,YAAW,MAAM;;IAe1C;;;;OAIG;gBACS,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,SAAqC;IAU9F,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BrD,kBAAkB,IAAI,MAAM,EAAE;IAI9B,gBAAgB,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;IAOtC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;IAWnE;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,GAAG,SAAS;IAKlD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBvC;;;;OAIG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnD;;;OAGG;IACI,SAAS,IAAI,EAAE,EAAE;IAIxB;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;CAGlC"}