@aztec/p2p 0.0.1-commit.7ac86ea28 → 0.0.1-commit.7b86788

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 (124) hide show
  1. package/dest/client/factory.d.ts +4 -5
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +15 -26
  4. package/dest/client/interface.d.ts +6 -13
  5. package/dest/client/interface.d.ts.map +1 -1
  6. package/dest/client/p2p_client.d.ts +5 -13
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +3 -58
  9. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +1 -2
  10. package/dest/config.d.ts +2 -5
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +0 -5
  13. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +1 -1
  14. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
  15. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  16. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +2 -0
  17. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
  18. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
  19. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  20. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +10 -6
  21. package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
  22. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  23. package/dest/mem_pools/tx_pool_v2/index.js +1 -1
  24. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +7 -5
  25. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  26. package/dest/mem_pools/tx_pool_v2/interfaces.js +2 -1
  27. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +26 -4
  28. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  29. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +48 -7
  30. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
  31. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  32. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +9 -10
  33. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +2 -2
  34. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  35. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +2 -2
  36. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  37. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +173 -146
  38. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +2 -2
  39. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  40. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  41. package/dest/msg_validators/tx_validator/factory.d.ts +114 -6
  42. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  43. package/dest/msg_validators/tx_validator/factory.js +219 -58
  44. package/dest/msg_validators/tx_validator/gas_validator.d.ts +58 -3
  45. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  46. package/dest/msg_validators/tx_validator/gas_validator.js +73 -36
  47. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  48. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  49. package/dest/msg_validators/tx_validator/index.js +1 -0
  50. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  51. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  52. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  53. package/dest/services/dummy_service.d.ts +2 -3
  54. package/dest/services/dummy_service.d.ts.map +1 -1
  55. package/dest/services/dummy_service.js +1 -4
  56. package/dest/services/encoding.d.ts +2 -2
  57. package/dest/services/encoding.d.ts.map +1 -1
  58. package/dest/services/encoding.js +7 -7
  59. package/dest/services/libp2p/libp2p_service.d.ts +15 -13
  60. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  61. package/dest/services/libp2p/libp2p_service.js +64 -80
  62. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +1 -1
  63. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  64. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +14 -37
  65. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +17 -11
  66. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  67. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +49 -15
  68. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
  69. package/dest/services/reqresp/reqresp.d.ts +1 -1
  70. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  71. package/dest/services/reqresp/reqresp.js +2 -1
  72. package/dest/services/service.d.ts +2 -2
  73. package/dest/services/service.d.ts.map +1 -1
  74. package/dest/services/tx_provider.d.ts +3 -3
  75. package/dest/services/tx_provider.d.ts.map +1 -1
  76. package/dest/services/tx_provider.js +4 -4
  77. package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
  78. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  79. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  80. package/dest/test-helpers/mock-pubsub.d.ts +2 -3
  81. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  82. package/dest/test-helpers/mock-pubsub.js +2 -2
  83. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  84. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  85. package/dest/test-helpers/reqresp-nodes.js +2 -2
  86. package/dest/test-helpers/testbench-utils.d.ts +2 -2
  87. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  88. package/dest/testbench/p2p_client_testbench_worker.js +5 -5
  89. package/package.json +14 -14
  90. package/src/client/factory.ts +22 -46
  91. package/src/client/interface.ts +5 -19
  92. package/src/client/p2p_client.ts +4 -88
  93. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +1 -2
  94. package/src/config.ts +1 -9
  95. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +1 -1
  96. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -0
  97. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +2 -2
  98. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +10 -6
  99. package/src/mem_pools/tx_pool_v2/index.ts +1 -1
  100. package/src/mem_pools/tx_pool_v2/interfaces.ts +7 -4
  101. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +65 -10
  102. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +11 -11
  103. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +1 -1
  104. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +179 -148
  105. package/src/msg_validators/tx_validator/README.md +115 -0
  106. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -3
  107. package/src/msg_validators/tx_validator/factory.ts +353 -77
  108. package/src/msg_validators/tx_validator/gas_validator.ts +90 -27
  109. package/src/msg_validators/tx_validator/index.ts +1 -0
  110. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  111. package/src/services/dummy_service.ts +1 -5
  112. package/src/services/encoding.ts +5 -6
  113. package/src/services/libp2p/libp2p_service.ts +75 -90
  114. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +14 -42
  115. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +63 -24
  116. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
  117. package/src/services/reqresp/reqresp.ts +3 -1
  118. package/src/services/service.ts +1 -1
  119. package/src/services/tx_provider.ts +2 -2
  120. package/src/test-helpers/make-test-p2p-clients.ts +0 -2
  121. package/src/test-helpers/mock-pubsub.ts +3 -6
  122. package/src/test-helpers/reqresp-nodes.ts +2 -5
  123. package/src/test-helpers/testbench-utils.ts +1 -1
  124. package/src/testbench/p2p_client_testbench_worker.ts +2 -6
@@ -4,7 +4,6 @@ import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
4
  import type { L2BlockSource } from '@aztec/stdlib/block';
5
5
  import type { ContractDataSource } from '@aztec/stdlib/contract';
6
6
  import type { ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
7
- import { P2PClientType } from '@aztec/stdlib/p2p';
8
7
  import type { TelemetryClient } from '@aztec/telemetry-client';
9
8
 
10
9
  import type { GossipsubEvents, GossipsubMessage } from '@chainsafe/libp2p-gossipsub';
@@ -42,11 +41,10 @@ type GossipSubService = PubSubLibp2p['services']['pubsub'];
42
41
  * Given a mock gossip sub network, returns a factory function that creates an instance LibP2PService connected to it.
43
42
  * Designed to be used in tests in P2PClientDeps.p2pServiceFactory.
44
43
  */
45
- export function getMockPubSubP2PServiceFactory<T extends P2PClientType>(
44
+ export function getMockPubSubP2PServiceFactory(
46
45
  network: MockGossipSubNetwork,
47
- ): (...args: Parameters<(typeof LibP2PService<T>)['new']>) => Promise<LibP2PService<T>> {
46
+ ): (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService> {
48
47
  return (
49
- clientType: P2PClientType,
50
48
  config: P2PConfig,
51
49
  peerId: PeerId,
52
50
  deps: {
@@ -66,8 +64,7 @@ export function getMockPubSubP2PServiceFactory<T extends P2PClientType>(
66
64
  const peerManager = new DummyPeerManager(peerId, network);
67
65
  const reqresp: ReqRespInterface = new MockReqResp(peerId, network);
68
66
  const peerDiscoveryService = new DummyPeerDiscoveryService();
69
- const service = new LibP2PService<T>(
70
- clientType as T,
67
+ const service = new LibP2PService(
71
68
  config,
72
69
  libp2p,
73
70
  peerDiscoveryService,
@@ -12,7 +12,6 @@ import type {
12
12
  IVCProofVerificationResult,
13
13
  WorldStateSynchronizer,
14
14
  } from '@aztec/stdlib/interfaces/server';
15
- import type { P2PClientType } from '@aztec/stdlib/p2p';
16
15
  import type { Tx } from '@aztec/stdlib/tx';
17
16
  import { compressComponentVersions } from '@aztec/stdlib/versioning';
18
17
  import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
@@ -107,8 +106,7 @@ export async function createLibp2pNode(
107
106
  *
108
107
  *
109
108
  */
110
- export async function createTestLibP2PService<T extends P2PClientType>(
111
- clientType: T,
109
+ export async function createTestLibP2PService(
112
110
  boostrapAddrs: string[] = [],
113
111
  archiver: L2BlockSource & ContractDataSource,
114
112
  worldStateSynchronizer: WorldStateSynchronizer,
@@ -159,8 +157,7 @@ export async function createTestLibP2PService<T extends P2PClientType>(
159
157
  p2pNode.services.pubsub.score.params.appSpecificScore = (peerId: string) =>
160
158
  peerManager.shouldDisableP2PGossip(peerId) ? -Infinity : peerManager.getPeerScore(peerId);
161
159
 
162
- return new LibP2PService<T>(
163
- clientType,
160
+ return new LibP2PService(
164
161
  config,
165
162
  p2pNode as PubSubLibp2p,
166
163
  discoveryService,
@@ -76,7 +76,7 @@ export class InMemoryTxPool extends EventEmitter implements TxPoolV2 {
76
76
  return Promise.resolve({ accepted, ignored: [], rejected: [] });
77
77
  }
78
78
 
79
- canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored' | 'rejected'> {
79
+ canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored'> {
80
80
  const key = tx.getTxHash().toString();
81
81
  if (this.txsByHash.has(key)) {
82
82
  return Promise.resolve('ignored');
@@ -19,7 +19,7 @@ import { protocolContractsHash } from '@aztec/protocol-contracts';
19
19
  import type { L2BlockSource } from '@aztec/stdlib/block';
20
20
  import type { ContractDataSource } from '@aztec/stdlib/contract';
21
21
  import type { ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
22
- import { type BlockProposal, P2PClientType, P2PMessage } from '@aztec/stdlib/p2p';
22
+ import { type BlockProposal, P2PMessage } from '@aztec/stdlib/p2p';
23
23
  import { ChonkProof } from '@aztec/stdlib/proofs';
24
24
  import { makeAztecAddress, makeBlockHeader, makeBlockProposal, mockTx } from '@aztec/stdlib/testing';
25
25
  import { Tx, TxHash, type TxValidationResult } from '@aztec/stdlib/tx';
@@ -86,12 +86,11 @@ export interface BenchReadyMessage {
86
86
  }
87
87
  const txCache = new Map<number, Tx[]>();
88
88
 
89
- class TestLibP2PService<T extends P2PClientType = P2PClientType.Full> extends LibP2PService<T> {
89
+ class TestLibP2PService extends LibP2PService {
90
90
  private disableTxValidation: boolean;
91
91
  private gossipMessageCount = 0;
92
92
 
93
93
  constructor(
94
- clientType: T,
95
94
  config: P2PConfig,
96
95
  node: PubSubLibp2p,
97
96
  peerDiscoveryService: PeerDiscoveryService,
@@ -107,7 +106,6 @@ class TestLibP2PService<T extends P2PClientType = P2PClientType.Full> extends Li
107
106
  disableTxValidation = true,
108
107
  ) {
109
108
  super(
110
- clientType,
111
109
  config,
112
110
  node,
113
111
  peerDiscoveryService,
@@ -365,7 +363,6 @@ process.on('message', async msg => {
365
363
  };
366
364
 
367
365
  const client = await createP2PClient(
368
- P2PClientType.Full,
369
366
  config as P2PConfig & DataStoreConfig,
370
367
  l2BlockSource,
371
368
  proofVerifier as ClientProtocolCircuitVerifier,
@@ -378,7 +375,6 @@ process.on('message', async msg => {
378
375
  );
379
376
 
380
377
  const testService = new TestLibP2PService(
381
- P2PClientType.Full,
382
378
  config,
383
379
  (client as any).p2pService.node,
384
380
  (client as any).p2pService.peerDiscoveryService,