@aztec/p2p 0.0.1-commit.6230a0c → 0.0.1-commit.64b6bbb

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 (269) hide show
  1. package/dest/client/factory.d.ts +5 -5
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +40 -9
  4. package/dest/client/interface.d.ts +33 -15
  5. package/dest/client/interface.d.ts.map +1 -1
  6. package/dest/client/p2p_client.d.ts +33 -36
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +104 -139
  9. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +1 -1
  10. package/dest/config.d.ts +14 -5
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +11 -1
  13. package/dest/index.d.ts +2 -1
  14. package/dest/index.d.ts.map +1 -1
  15. package/dest/index.js +1 -0
  16. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +102 -88
  17. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  18. package/dest/mem_pools/attestation_pool/attestation_pool.js +436 -3
  19. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  20. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  21. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  22. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  23. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  24. package/dest/mem_pools/attestation_pool/index.js +1 -2
  25. package/dest/mem_pools/index.d.ts +3 -2
  26. package/dest/mem_pools/index.d.ts.map +1 -1
  27. package/dest/mem_pools/index.js +1 -1
  28. package/dest/mem_pools/interface.d.ts +5 -5
  29. package/dest/mem_pools/interface.d.ts.map +1 -1
  30. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  31. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  32. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  33. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  34. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  35. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  36. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +87 -0
  37. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  38. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +180 -0
  39. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  40. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  41. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +119 -0
  42. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  43. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  44. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +90 -0
  45. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  46. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  47. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +89 -0
  48. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  49. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  50. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  51. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +131 -0
  52. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  53. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +17 -0
  54. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  55. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +63 -0
  57. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  58. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +91 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +70 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +63 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  69. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  70. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  72. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +197 -0
  73. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/interfaces.js +6 -0
  75. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +93 -0
  76. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +127 -0
  78. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  79. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  80. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  81. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +99 -0
  82. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +332 -0
  84. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +55 -0
  85. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +156 -0
  87. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +69 -0
  88. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +751 -0
  90. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +3 -3
  91. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  92. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +3 -3
  93. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  94. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +16 -3
  95. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  96. package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
  97. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +13 -3
  98. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  99. package/dest/msg_validators/tx_validator/double_spend_validator.js +4 -4
  100. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +20 -4
  101. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  102. package/dest/msg_validators/tx_validator/timestamp_validator.js +2 -2
  103. package/dest/services/dummy_service.d.ts +10 -2
  104. package/dest/services/dummy_service.d.ts.map +1 -1
  105. package/dest/services/dummy_service.js +6 -0
  106. package/dest/services/encoding.d.ts +2 -2
  107. package/dest/services/encoding.d.ts.map +1 -1
  108. package/dest/services/encoding.js +2 -2
  109. package/dest/services/gossipsub/index.d.ts +3 -0
  110. package/dest/services/gossipsub/index.d.ts.map +1 -0
  111. package/dest/services/gossipsub/index.js +2 -0
  112. package/dest/services/gossipsub/scoring.d.ts +21 -3
  113. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  114. package/dest/services/gossipsub/scoring.js +24 -7
  115. package/dest/services/gossipsub/topic_score_params.d.ts +161 -0
  116. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  117. package/dest/services/gossipsub/topic_score_params.js +324 -0
  118. package/dest/services/libp2p/libp2p_service.d.ts +84 -35
  119. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  120. package/dest/services/libp2p/libp2p_service.js +368 -273
  121. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  122. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  123. package/dest/services/peer-manager/peer_scoring.js +25 -2
  124. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +4 -4
  125. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  126. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +8 -8
  127. package/dest/services/reqresp/interface.d.ts +10 -1
  128. package/dest/services/reqresp/interface.d.ts.map +1 -1
  129. package/dest/services/reqresp/interface.js +15 -1
  130. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  131. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  132. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +16 -11
  133. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +21 -10
  134. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  135. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +27 -11
  136. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  137. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  138. package/dest/services/reqresp/protocols/tx.js +20 -0
  139. package/dest/services/reqresp/reqresp.d.ts +1 -1
  140. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  141. package/dest/services/reqresp/reqresp.js +11 -4
  142. package/dest/services/service.d.ts +35 -1
  143. package/dest/services/service.d.ts.map +1 -1
  144. package/dest/services/tx_collection/config.d.ts +10 -4
  145. package/dest/services/tx_collection/config.d.ts.map +1 -1
  146. package/dest/services/tx_collection/config.js +19 -3
  147. package/dest/services/tx_collection/fast_tx_collection.d.ts +6 -5
  148. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  149. package/dest/services/tx_collection/fast_tx_collection.js +27 -17
  150. package/dest/services/tx_collection/file_store_tx_collection.d.ts +44 -0
  151. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  152. package/dest/services/tx_collection/file_store_tx_collection.js +118 -0
  153. package/dest/services/tx_collection/file_store_tx_source.d.ts +27 -0
  154. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  155. package/dest/services/tx_collection/file_store_tx_source.js +57 -0
  156. package/dest/services/tx_collection/index.d.ts +3 -2
  157. package/dest/services/tx_collection/index.d.ts.map +1 -1
  158. package/dest/services/tx_collection/index.js +1 -0
  159. package/dest/services/tx_collection/proposal_tx_collector.d.ts +12 -12
  160. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  161. package/dest/services/tx_collection/proposal_tx_collector.js +4 -5
  162. package/dest/services/tx_collection/slow_tx_collection.d.ts +3 -1
  163. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  164. package/dest/services/tx_collection/slow_tx_collection.js +48 -19
  165. package/dest/services/tx_collection/tx_collection.d.ts +17 -7
  166. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  167. package/dest/services/tx_collection/tx_collection.js +58 -2
  168. package/dest/services/tx_collection/tx_collection_sink.d.ts +15 -6
  169. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  170. package/dest/services/tx_collection/tx_collection_sink.js +13 -7
  171. package/dest/services/tx_file_store/config.d.ts +1 -3
  172. package/dest/services/tx_file_store/config.d.ts.map +1 -1
  173. package/dest/services/tx_file_store/config.js +0 -4
  174. package/dest/services/tx_file_store/tx_file_store.d.ts +3 -3
  175. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
  176. package/dest/services/tx_provider.d.ts +3 -3
  177. package/dest/services/tx_provider.d.ts.map +1 -1
  178. package/dest/services/tx_provider.js +5 -4
  179. package/dest/test-helpers/make-test-p2p-clients.d.ts +3 -3
  180. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  181. package/dest/test-helpers/mock-pubsub.d.ts +27 -1
  182. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  183. package/dest/test-helpers/mock-pubsub.js +97 -2
  184. package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
  185. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  186. package/dest/test-helpers/reqresp-nodes.js +2 -1
  187. package/dest/test-helpers/testbench-utils.d.ts +38 -38
  188. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  189. package/dest/test-helpers/testbench-utils.js +124 -61
  190. package/dest/testbench/p2p_client_testbench_worker.js +2 -2
  191. package/package.json +14 -14
  192. package/src/client/factory.ts +68 -12
  193. package/src/client/interface.ts +39 -14
  194. package/src/client/p2p_client.ts +139 -162
  195. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +1 -1
  196. package/src/config.ts +26 -2
  197. package/src/index.ts +1 -0
  198. package/src/mem_pools/attestation_pool/attestation_pool.ts +488 -91
  199. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  200. package/src/mem_pools/attestation_pool/index.ts +9 -2
  201. package/src/mem_pools/index.ts +4 -1
  202. package/src/mem_pools/interface.ts +4 -4
  203. package/src/mem_pools/tx_pool_v2/README.md +259 -0
  204. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  205. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  206. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +234 -0
  207. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +147 -0
  208. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +118 -0
  209. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +111 -0
  210. package/src/mem_pools/tx_pool_v2/eviction/index.ts +23 -0
  211. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +164 -0
  212. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  213. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  214. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +86 -0
  215. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +72 -0
  216. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +31 -0
  217. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  218. package/src/mem_pools/tx_pool_v2/interfaces.ts +227 -0
  219. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +207 -0
  220. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  221. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +417 -0
  222. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +212 -0
  223. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +895 -0
  224. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +2 -2
  225. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +2 -2
  226. package/src/msg_validators/tx_validator/block_header_validator.ts +15 -3
  227. package/src/msg_validators/tx_validator/double_spend_validator.ts +11 -6
  228. package/src/msg_validators/tx_validator/timestamp_validator.ts +19 -14
  229. package/src/services/dummy_service.ts +12 -0
  230. package/src/services/encoding.ts +2 -2
  231. package/src/services/gossipsub/README.md +626 -0
  232. package/src/services/gossipsub/index.ts +2 -0
  233. package/src/services/gossipsub/scoring.ts +29 -5
  234. package/src/services/gossipsub/topic_score_params.ts +451 -0
  235. package/src/services/libp2p/libp2p_service.ts +370 -275
  236. package/src/services/peer-manager/peer_scoring.ts +25 -0
  237. package/src/services/reqresp/batch-tx-requester/README.md +7 -7
  238. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +11 -11
  239. package/src/services/reqresp/interface.ts +26 -1
  240. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +23 -14
  241. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +38 -15
  242. package/src/services/reqresp/protocols/tx.ts +22 -0
  243. package/src/services/reqresp/reqresp.ts +13 -3
  244. package/src/services/service.ts +40 -0
  245. package/src/services/tx_collection/config.ts +32 -6
  246. package/src/services/tx_collection/fast_tx_collection.ts +28 -26
  247. package/src/services/tx_collection/file_store_tx_collection.ts +152 -0
  248. package/src/services/tx_collection/file_store_tx_source.ts +70 -0
  249. package/src/services/tx_collection/index.ts +2 -1
  250. package/src/services/tx_collection/proposal_tx_collector.ts +12 -14
  251. package/src/services/tx_collection/slow_tx_collection.ts +55 -26
  252. package/src/services/tx_collection/tx_collection.ts +78 -12
  253. package/src/services/tx_collection/tx_collection_sink.ts +17 -7
  254. package/src/services/tx_file_store/config.ts +0 -6
  255. package/src/services/tx_file_store/tx_file_store.ts +4 -4
  256. package/src/services/tx_provider.ts +8 -7
  257. package/src/test-helpers/make-test-p2p-clients.ts +3 -3
  258. package/src/test-helpers/mock-pubsub.ts +133 -3
  259. package/src/test-helpers/reqresp-nodes.ts +2 -1
  260. package/src/test-helpers/testbench-utils.ts +122 -74
  261. package/src/testbench/p2p_client_testbench_worker.ts +2 -2
  262. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  263. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  264. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  265. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  266. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  267. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  268. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  269. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
@@ -12,7 +12,7 @@ import { TxCollectionInstrumentation } from './instrumentation.js';
12
12
  super(), this.txPool = txPool, this.log = log;
13
13
  this.instrumentation = new TxCollectionInstrumentation(telemetryClient, 'TxCollection');
14
14
  }
15
- async collect(collectValidTxsFn, requested, info) {
15
+ async collect(collectValidTxsFn, requested, info, context) {
16
16
  this.log.trace(`Requesting ${requested.length} txs via ${info.description}`, {
17
17
  ...info,
18
18
  requestedTxs: requested.map((t)=>t.toString())
@@ -80,20 +80,26 @@ import { TxCollectionInstrumentation } from './instrumentation.js';
80
80
  return await this.foundTxs(validTxs, {
81
81
  ...info,
82
82
  duration
83
- });
83
+ }, context);
84
84
  }
85
- async foundTxs(txs, info) {
85
+ async foundTxs(txs, info, context) {
86
86
  // Report metrics for the collection
87
87
  this.instrumentation.increaseTxsFor(info.method, txs.length, info.duration);
88
88
  // Mark txs as found in the slow missing txs set and all fast requests
89
89
  this.emit('txs-added', {
90
90
  txs
91
91
  });
92
- // Add the txs to the tx pool (should not fail, but we catch it just in case)
92
+ // Add the txs to the tx pool using the appropriate method based on context
93
93
  try {
94
- await this.txPool.addTxs(txs, {
95
- source: `tx-collection`
96
- });
94
+ if (context.type === 'mined') {
95
+ await this.txPool.addMinedTxs(txs, context.block.header, {
96
+ source: 'tx-collection'
97
+ });
98
+ } else {
99
+ await this.txPool.addProtectedTxs(txs, context.blockHeader, {
100
+ source: 'tx-collection'
101
+ });
102
+ }
97
103
  } catch (err) {
98
104
  this.log.error(`Error adding txs to the pool via ${info.description}`, err, {
99
105
  ...info,
@@ -5,8 +5,6 @@ import { type ConfigMappingsType } from '@aztec/foundation/config';
5
5
  export type TxFileStoreConfig = {
6
6
  /** URL for uploading txs to file storage (s3://, gs://, file://) */
7
7
  txFileStoreUrl?: string;
8
- /** URL for downloading txs from file storage */
9
- txFileStoreDownloadUrl?: string;
10
8
  /** Max concurrent uploads */
11
9
  txFileStoreUploadConcurrency: number;
12
10
  /** Max queue size to prevent unbounded memory growth */
@@ -15,4 +13,4 @@ export type TxFileStoreConfig = {
15
13
  txFileStoreEnabled: boolean;
16
14
  };
17
15
  export declare const txFileStoreConfigMappings: ConfigMappingsType<TxFileStoreConfig>;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfZmlsZV9zdG9yZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQTJDLE1BQU0sMEJBQTBCLENBQUM7QUFFNUc7O0dBRUc7QUFDSCxNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsb0VBQW9FO0lBQ3BFLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4QixnREFBZ0Q7SUFDaEQsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEMsNkJBQTZCO0lBQzdCLDRCQUE0QixFQUFFLE1BQU0sQ0FBQztJQUNyQyx3REFBd0Q7SUFDeEQsdUJBQXVCLEVBQUUsTUFBTSxDQUFDO0lBQ2hDLGtDQUFrQztJQUNsQyxrQkFBa0IsRUFBRSxPQUFPLENBQUM7Q0FDN0IsQ0FBQztBQUVGLGVBQU8sTUFBTSx5QkFBeUIsRUFBRSxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0F3QjNFLENBQUMifQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfZmlsZV9zdG9yZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQTJDLE1BQU0sMEJBQTBCLENBQUM7QUFFNUc7O0dBRUc7QUFDSCxNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsb0VBQW9FO0lBQ3BFLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN4Qiw2QkFBNkI7SUFDN0IsNEJBQTRCLEVBQUUsTUFBTSxDQUFDO0lBQ3JDLHdEQUF3RDtJQUN4RCx1QkFBdUIsRUFBRSxNQUFNLENBQUM7SUFDaEMsa0NBQWtDO0lBQ2xDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQztDQUM3QixDQUFDO0FBRUYsZUFBTyxNQUFNLHlCQUF5QixFQUFFLGtCQUFrQixDQUFDLGlCQUFpQixDQW9CM0UsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/tx_file_store/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA2C,MAAM,0BAA0B,CAAC;AAE5G;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6BAA6B;IAC7B,4BAA4B,EAAE,MAAM,CAAC;IACrC,wDAAwD;IACxD,uBAAuB,EAAE,MAAM,CAAC;IAChC,kCAAkC;IAClC,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CAwB3E,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/tx_file_store/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA2C,MAAM,0BAA0B,CAAC;AAE5G;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6BAA6B;IAC7B,4BAA4B,EAAE,MAAM,CAAC;IACrC,wDAAwD;IACxD,uBAAuB,EAAE,MAAM,CAAC;IAChC,kCAAkC;IAClC,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CAoB3E,CAAC"}
@@ -4,10 +4,6 @@ export const txFileStoreConfigMappings = {
4
4
  env: 'TX_FILE_STORE_URL',
5
5
  description: 'URL for uploading txs to file storage (s3://, gs://, file://)'
6
6
  },
7
- txFileStoreDownloadUrl: {
8
- env: 'TX_FILE_STORE_DOWNLOAD_URL',
9
- description: 'URL for downloading txs from file storage'
10
- },
11
7
  txFileStoreUploadConcurrency: {
12
8
  env: 'TX_FILE_STORE_UPLOAD_CONCURRENCY',
13
9
  description: 'Maximum number of concurrent tx uploads',
@@ -1,7 +1,7 @@
1
1
  import { type Logger } from '@aztec/foundation/log';
2
2
  import { type FileStore } from '@aztec/stdlib/file-store';
3
3
  import { type TelemetryClient } from '@aztec/telemetry-client';
4
- import type { TxPool } from '../../mem_pools/tx_pool/index.js';
4
+ import type { TxPoolV2 } from '../../mem_pools/index.js';
5
5
  import type { TxFileStoreConfig } from './config.js';
6
6
  /**
7
7
  * Uploads validated transactions to a file store as a fallback retrieval mechanism.
@@ -31,7 +31,7 @@ export declare class TxFileStore {
31
31
  * @param fileStoreOverride - Optional FileStore for testing (bypasses createFileStore).
32
32
  * @returns The file store instance, or undefined if not configured/enabled.
33
33
  */
34
- static create(txPool: TxPool, config: TxFileStoreConfig, log?: Logger, telemetry?: TelemetryClient, fileStoreOverride?: FileStore): Promise<TxFileStore | undefined>;
34
+ static create(txPool: TxPoolV2, config: TxFileStoreConfig, log?: Logger, telemetry?: TelemetryClient, fileStoreOverride?: FileStore): Promise<TxFileStore | undefined>;
35
35
  /** Starts listening to TxPool events and uploading txs. */
36
36
  start(): void;
37
37
  /** Stops listening and waits for pending uploads to complete. */
@@ -44,4 +44,4 @@ export declare class TxFileStore {
44
44
  /** Returns the number of pending uploads (queued + in-flight). */
45
45
  getPendingUploadCount(): number;
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZmlsZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3R4X2ZpbGVfc3RvcmUvdHhfZmlsZV9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEUsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQWdCLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHckQ7OztHQUdHO0FBQ0gscUJBQWEsV0FBVztJQVlwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWU7SUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBZnRCLE9BQU8sQ0FBQyxXQUFXLENBQVk7SUFDL0IsT0FBTyxDQUFDLGFBQWEsQ0FBSztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBaUI7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQTRCO0lBRTNELHFEQUFxRDtJQUNyRCxPQUFPLENBQUMsYUFBYSxDQUEwQjtJQUMvQyxPQUFPLENBQUMsa0JBQWtCLENBQWdCO0lBQzFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQVE7SUFFekMsT0FBTyxlQVdOO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsaUJBQWlCLEVBQ3pCLEdBQUcsR0FBRSxNQUEwQyxFQUMvQyxTQUFTLEdBQUUsZUFBc0MsRUFDakQsaUJBQWlCLENBQUMsRUFBRSxTQUFTLEdBQzVCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBb0JsQztJQUVELDJEQUEyRDtJQUNwRCxLQUFLLElBQUksSUFBSSxDQU9uQjtJQUVELGlFQUFpRTtJQUNwRCxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUlqQztJQUVELE9BQU8sQ0FBQyxVQUFVO1lBZ0JKLGlCQUFpQjtZQVlqQixRQUFRO0lBdUN0QiwyRUFBMkU7SUFDOUQsS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJbEM7SUFFRCxrRUFBa0U7SUFDM0QscUJBQXFCLElBQUksTUFBTSxDQUVyQztDQUNGIn0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZmlsZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3R4X2ZpbGVfc3RvcmUvdHhfZmlsZV9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEUsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdyRDs7O0dBR0c7QUFDSCxxQkFBYSxXQUFXO0lBWXBCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZTtJQUNoQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUc7SUFmdEIsT0FBTyxDQUFDLFdBQVcsQ0FBWTtJQUMvQixPQUFPLENBQUMsYUFBYSxDQUFLO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFpQjtJQUNoRCxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBaUQ7SUFFaEYscURBQXFEO0lBQ3JELE9BQU8sQ0FBQyxhQUFhLENBQTBCO0lBQy9DLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBZ0I7SUFDMUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBUTtJQUV6QyxPQUFPLGVBV047SUFFRDs7Ozs7Ozs7T0FRRztJQUNILE9BQWEsTUFBTSxDQUNqQixNQUFNLEVBQUUsUUFBUSxFQUNoQixNQUFNLEVBQUUsaUJBQWlCLEVBQ3pCLEdBQUcsR0FBRSxNQUEwQyxFQUMvQyxTQUFTLEdBQUUsZUFBc0MsRUFDakQsaUJBQWlCLENBQUMsRUFBRSxTQUFTLEdBQzVCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBb0JsQztJQUVELDJEQUEyRDtJQUNwRCxLQUFLLElBQUksSUFBSSxDQU9uQjtJQUVELGlFQUFpRTtJQUNwRCxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUlqQztJQUVELE9BQU8sQ0FBQyxVQUFVO1lBZ0JKLGlCQUFpQjtZQVlqQixRQUFRO0lBdUN0QiwyRUFBMkU7SUFDOUQsS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJbEM7SUFFRCxrRUFBa0U7SUFDM0QscUJBQXFCLElBQUksTUFBTSxDQUVyQztDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"tx_file_store.d.ts","sourceRoot":"","sources":["../../../src/services/tx_file_store/tx_file_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD;;;GAGG;AACH,qBAAa,WAAW;IAYpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAftB,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAE3D,qDAAqD;IACrD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAEzC,OAAO,eAWN;IAED;;;;;;;;OAQG;IACH,OAAa,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,EACzB,GAAG,GAAE,MAA0C,EAC/C,SAAS,GAAE,eAAsC,EACjD,iBAAiB,CAAC,EAAE,SAAS,GAC5B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAoBlC;IAED,2DAA2D;IACpD,KAAK,IAAI,IAAI,CAOnB;IAED,iEAAiE;IACpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjC;IAED,OAAO,CAAC,UAAU;YAgBJ,iBAAiB;YAYjB,QAAQ;IAuCtB,2EAA2E;IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAIlC;IAED,kEAAkE;IAC3D,qBAAqB,IAAI,MAAM,CAErC;CACF"}
1
+ {"version":3,"file":"tx_file_store.d.ts","sourceRoot":"","sources":["../../../src/services/tx_file_store/tx_file_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD;;;GAGG;AACH,qBAAa,WAAW;IAYpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAftB,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiD;IAEhF,qDAAqD;IACrD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IAEzC,OAAO,eAWN;IAED;;;;;;;;OAQG;IACH,OAAa,MAAM,CACjB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,iBAAiB,EACzB,GAAG,GAAE,MAA0C,EAC/C,SAAS,GAAE,eAAsC,EACjD,iBAAiB,CAAC,EAAE,SAAS,GAC5B,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAoBlC;IAED,2DAA2D;IACpD,KAAK,IAAI,IAAI,CAOnB;IAED,iEAAiE;IACpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAIjC;IAED,OAAO,CAAC,UAAU;YAgBJ,iBAAiB;YAYjB,QAAQ;IAuCtB,2EAA2E;IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAIlC;IAED,kEAAkE;IAC3D,qBAAqB,IAAI,MAAM,CAErC;CACF"}
@@ -7,7 +7,7 @@ import { Tx, TxHash } from '@aztec/stdlib/tx';
7
7
  import { type TelemetryClient } from '@aztec/telemetry-client';
8
8
  import type { PeerId } from '@libp2p/interface';
9
9
  import type { P2PClient } from '../client/p2p_client.js';
10
- import type { TxPool } from '../mem_pools/index.js';
10
+ import type { TxPoolV2 } from '../mem_pools/tx_pool_v2/interfaces.js';
11
11
  import type { TxCollection } from './tx_collection/tx_collection.js';
12
12
  import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
13
13
  /**
@@ -20,7 +20,7 @@ export declare class TxProvider implements ITxProvider {
20
20
  private txValidator;
21
21
  private log;
22
22
  protected instrumentation: TxProviderInstrumentation;
23
- constructor(txCollection: TxCollection, txPool: TxPool, txValidator: Pick<P2PClient, 'validate'>, log?: Logger, client?: TelemetryClient);
23
+ constructor(txCollection: TxCollection, txPool: TxPoolV2, txValidator: Pick<P2PClient, 'validate'>, log?: Logger, client?: TelemetryClient);
24
24
  /** Returns txs from the tx pool given their hashes.*/
25
25
  getAvailableTxs(txHashes: TxHash[]): Promise<{
26
26
  txs: Tx[];
@@ -48,4 +48,4 @@ export declare class TxProvider implements ITxProvider {
48
48
  private extractFromProposal;
49
49
  private processProposalTxs;
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcHJvdmlkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy90eF9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBZSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUE4QixZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUU3RTs7O0dBR0c7QUFDSCxxQkFBYSxVQUFXLFlBQVcsV0FBVztJQUkxQyxPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxXQUFXO0lBQ25CLE9BQU8sQ0FBQyxHQUFHO0lBTmIsU0FBUyxDQUFDLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQztJQUVyRCxZQUNVLFlBQVksRUFBRSxZQUFZLEVBQzFCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQ3hDLEdBQUcsR0FBRSxNQUF5QyxFQUN0RCxNQUFNLEdBQUUsZUFBc0MsRUFHL0M7SUFFRCxzREFBc0Q7SUFDekMsZUFBZSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBa0I3RjtJQUVELGtGQUFrRjtJQUMzRSxzQkFBc0IsQ0FDM0IsYUFBYSxFQUFFLGFBQWEsRUFDNUIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsSUFBSSxFQUFFO1FBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFBQyxRQUFRLEVBQUUsSUFBSSxDQUFBO0tBQUUsR0FDdkQsT0FBTyxDQUFDO1FBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFBO0tBQUUsQ0FBQyxDQU85QztJQUVELG1FQUFtRTtJQUM1RCxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7UUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFBO0tBQUUsR0FBRyxPQUFPLENBQUM7UUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBTzVHO1lBRWEsMkJBQTJCO0lBZ0N6QyxPQUFPLENBQUMsUUFBUTtZQUtGLG9CQUFvQjtZQXlGcEIsY0FBYztJQVk1QixPQUFPLENBQUMsbUJBQW1CO1lBT2Isa0JBQWtCO0NBT2pDIn0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcHJvdmlkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy90eF9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBZSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBOEIsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0U7OztHQUdHO0FBQ0gscUJBQWEsVUFBVyxZQUFXLFdBQVc7SUFJMUMsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsR0FBRztJQU5iLFNBQVMsQ0FBQyxlQUFlLEVBQUUseUJBQXlCLENBQUM7SUFFckQsWUFDVSxZQUFZLEVBQUUsWUFBWSxFQUMxQixNQUFNLEVBQUUsUUFBUSxFQUNoQixXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsRUFDeEMsR0FBRyxHQUFFLE1BQXlDLEVBQ3RELE1BQU0sR0FBRSxlQUFzQyxFQUcvQztJQUVELHNEQUFzRDtJQUN6QyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBQUMsQ0FrQjdGO0lBRUQsa0ZBQWtGO0lBQzNFLHNCQUFzQixDQUMzQixhQUFhLEVBQUUsYUFBYSxFQUM1QixXQUFXLEVBQUUsV0FBVyxFQUN4QixJQUFJLEVBQUU7UUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUFDLFFBQVEsRUFBRSxJQUFJLENBQUE7S0FBRSxHQUN2RCxPQUFPLENBQUM7UUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBTzlDO0lBRUQsbUVBQW1FO0lBQzVELGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxJQUFJLENBQUE7S0FBRSxHQUFHLE9BQU8sQ0FBQztRQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBQUMsQ0FPNUc7WUFFYSwyQkFBMkI7SUFnQ3pDLE9BQU8sQ0FBQyxRQUFRO1lBS0Ysb0JBQW9CO1lBMEZwQixjQUFjO0lBWTVCLE9BQU8sQ0FBQyxtQkFBbUI7WUFPYixrQkFBa0I7Q0FPakMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"tx_provider.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAA8B,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAI1C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IANb,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC;IAErD,YACU,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACxC,GAAG,GAAE,MAAyC,EACtD,MAAM,GAAE,eAAsC,EAG/C;IAED,sDAAsD;IACzC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAkB7F;IAED,kFAAkF;IAC3E,sBAAsB,CAC3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,GACvD,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO9C;IAED,mEAAmE;IAC5D,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO5G;YAEa,2BAA2B;IAgCzC,OAAO,CAAC,QAAQ;YAKF,oBAAoB;YAyFpB,cAAc;IAY5B,OAAO,CAAC,mBAAmB;YAOb,kBAAkB;CAOjC"}
1
+ {"version":3,"file":"tx_provider.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,EAA8B,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAI1C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IANb,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC;IAErD,YACU,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,QAAQ,EAChB,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACxC,GAAG,GAAE,MAAyC,EACtD,MAAM,GAAE,eAAsC,EAG/C;IAED,sDAAsD;IACzC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAkB7F;IAED,kFAAkF;IAC3E,sBAAsB,CAC3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,GACvD,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO9C;IAED,mEAAmE;IAC5D,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO5G;YAEa,2BAA2B;IAgCzC,OAAO,CAAC,QAAQ;YAKF,oBAAoB;YA0FpB,cAAc;IAY5B,OAAO,CAAC,mBAAmB;YAOb,kBAAkB;CAOjC"}
@@ -123,6 +123,7 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
123
123
  // Take txs from the proposal body if there are any
124
124
  // Note that we still have to validate these txs, but we do it in parallel with tx collection
125
125
  const proposal = request.type === 'proposal' ? request.blockProposal : undefined;
126
+ const proposalBlockHeader = proposal?.blockHeader;
126
127
  const txsFromProposal = this.extractFromProposal(proposal, [
127
128
  ...missingTxHashes
128
129
  ]);
@@ -137,7 +138,7 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
137
138
  });
138
139
  }
139
140
  if (missingTxHashes.size === 0) {
140
- await this.processProposalTxs(txsFromProposal);
141
+ await this.processProposalTxs(txsFromProposal, proposalBlockHeader);
141
142
  this.instrumentation.incTxsFromP2P(0, txHashes.length);
142
143
  return {
143
144
  txsFromMempool,
@@ -149,7 +150,7 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
149
150
  this.collectFromP2P(request, [
150
151
  ...missingTxHashes
151
152
  ], opts),
152
- this.processProposalTxs(txsFromProposal)
153
+ this.processProposalTxs(txsFromProposal, proposalBlockHeader)
153
154
  ]);
154
155
  if (txsFromNetwork.length > 0) {
155
156
  txsFromNetwork.forEach((tx)=>missingTxHashes.delete(tx.txHash.toString()));
@@ -209,11 +210,11 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
209
210
  }
210
211
  return compactArray(proposal.txs ?? []).filter((tx)=>missingTxHashes.includes(tx.getTxHash().toString()));
211
212
  }
212
- async processProposalTxs(txs) {
213
+ async processProposalTxs(txs, blockHeader) {
213
214
  if (txs.length === 0) {
214
215
  return;
215
216
  }
216
217
  await this.txValidator.validate(txs);
217
- await this.txPool.addTxs(txs);
218
+ await this.txPool.addProtectedTxs(txs, blockHeader);
218
219
  }
219
220
  }
@@ -5,11 +5,11 @@ import { P2PClientType } from '@aztec/stdlib/p2p';
5
5
  import type { P2PClient } from '../client/p2p_client.js';
6
6
  import type { P2PConfig } from '../config.js';
7
7
  import type { AttestationPool } from '../mem_pools/attestation_pool/attestation_pool.js';
8
- import type { TxPool } from '../mem_pools/tx_pool/index.js';
8
+ import type { TxPoolV2 } from '../mem_pools/tx_pool_v2/interfaces.js';
9
9
  import { type MockGossipSubNetwork } from './mock-pubsub.js';
10
10
  export interface MakeTestP2PClientOptions {
11
11
  mockAttestationPool: AttestationPool;
12
- mockTxPool: TxPool;
12
+ mockTxPool: TxPoolV2;
13
13
  mockEpochCache: EpochCache;
14
14
  mockWorldState: WorldStateSynchronizer;
15
15
  alwaysTrueVerifier?: boolean;
@@ -61,4 +61,4 @@ export declare function makeTestP2PClients(numberOfPeers: number, testConfig: Ma
61
61
  enr: string;
62
62
  }[]>;
63
63
  export declare function startTestP2PClients(clients: P2PClient[]): Promise<void>;
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS10ZXN0LXAycC1jbGllbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL21ha2UtdGVzdC1wMnAtY2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFLbEUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSTVELE9BQU8sRUFBRSxLQUFLLG9CQUFvQixFQUFrQyxNQUFNLGtCQUFrQixDQUFDO0FBRzdGLE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDO0lBQ3JDLFVBQVUsRUFBRSxNQUFNLENBQUM7SUFDbkIsY0FBYyxFQUFFLFVBQVUsQ0FBQztJQUMzQixjQUFjLEVBQUUsc0JBQXNCLENBQUM7SUFDdkMsa0JBQWtCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0IsYUFBYSxFQUFFLFNBQVMsQ0FBQztJQUN6QixrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEIsb0JBQW9CLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztDQUM3QztBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0IseUJBQXlCLENBQzdDLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFDWixLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQ2YsT0FBTyxFQUFFLHdCQUF3QiwwQ0FNbEM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUNyQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLElBQUksRUFBRSxNQUFNLEVBQ1osS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUNmLEVBQ0Usa0JBQXlCLEVBQ3pCLGFBQWEsRUFDYixrQkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixjQUFjLEVBQ2QsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixNQUF3QyxFQUN6QyxFQUFFLHdCQUF3QiwwQ0EyQzVCO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsMEJBQTBCLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsd0JBQXdCOzs7OztLQXVDM0c7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQixrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx3QkFBd0I7Ozs7O0tBZ0NuRztBQUVELHdCQUFzQixtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUc3RCJ9
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS10ZXN0LXAycC1jbGllbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL21ha2UtdGVzdC1wMnAtY2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFLbEUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxLQUFLLG9CQUFvQixFQUFrQyxNQUFNLGtCQUFrQixDQUFDO0FBRzdGLE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDO0lBQ3JDLFVBQVUsRUFBRSxRQUFRLENBQUM7SUFDckIsY0FBYyxFQUFFLFVBQVUsQ0FBQztJQUMzQixjQUFjLEVBQUUsc0JBQXNCLENBQUM7SUFDdkMsa0JBQWtCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0IsYUFBYSxFQUFFLFNBQVMsQ0FBQztJQUN6QixrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEIsb0JBQW9CLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztDQUM3QztBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0IseUJBQXlCLENBQzdDLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFDWixLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQ2YsT0FBTyxFQUFFLHdCQUF3QiwwQ0FNbEM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUNyQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLElBQUksRUFBRSxNQUFNLEVBQ1osS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUNmLEVBQ0Usa0JBQXlCLEVBQ3pCLGFBQWEsRUFDYixrQkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixjQUFjLEVBQ2QsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixNQUF3QyxFQUN6QyxFQUFFLHdCQUF3QiwwQ0EyQzVCO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsMEJBQTBCLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsd0JBQXdCOzs7OztLQXVDM0c7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQixrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx3QkFBd0I7Ozs7O0tBZ0NuRztBQUVELHdCQUFzQixtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUc3RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"make-test-p2p-clients.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-test-p2p-clients.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAI5D,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,kBAAkB,CAAC;AAG7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,eAAe,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,UAAU,CAAC;IAC3B,cAAc,EAAE,sBAAsB,CAAC;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,wBAAwB,0CAMlC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,EACE,kBAAyB,EACzB,aAAa,EACb,kBAAuB,EACvB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAwC,EACzC,EAAE,wBAAwB,0CA2C5B;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAuC3G;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAgCnG;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAG7D"}
1
+ {"version":3,"file":"make-test-p2p-clients.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-test-p2p-clients.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAItE,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,kBAAkB,CAAC;AAG7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,eAAe,CAAC;IACrC,UAAU,EAAE,QAAQ,CAAC;IACrB,cAAc,EAAE,UAAU,CAAC;IAC3B,cAAc,EAAE,sBAAsB,CAAC;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,wBAAwB,0CAMlC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,EACE,kBAAyB,EACzB,aAAa,EACb,kBAAuB,EACvB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAwC,EACzC,EAAE,wBAAwB,0CA2C5B;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAuC3G;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAgCnG;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAG7D"}
@@ -3,6 +3,9 @@ import type { GossipsubEvents, GossipsubMessage } from '@chainsafe/libp2p-gossip
3
3
  import type { MsgIdStr, PeerIdStr, PublishOpts, TopicStr } from '@chainsafe/libp2p-gossipsub/types';
4
4
  import { type Libp2pStatus, type PeerId, type PublishResult, type TopicValidatorResult, TypedEventEmitter } from '@libp2p/interface';
5
5
  import { LibP2PService } from '../services/index.js';
6
+ import type { P2PReqRespConfig } from '../services/reqresp/config.js';
7
+ import type { ConnectionSampler } from '../services/reqresp/connection-sampler/connection_sampler.js';
8
+ import { type ReqRespInterface, type ReqRespResponse, type ReqRespSubProtocol, type ReqRespSubProtocolHandler, type ReqRespSubProtocolHandlers, type ReqRespSubProtocolValidators, type SubProtocolMap } from '../services/reqresp/interface.js';
6
9
  import type { PubSubLibp2p } from '../util.js';
7
10
  type GossipSubService = PubSubLibp2p['services']['pubsub'];
8
11
  /**
@@ -10,6 +13,26 @@ type GossipSubService = PubSubLibp2p['services']['pubsub'];
10
13
  * Designed to be used in tests in P2PClientDeps.p2pServiceFactory.
11
14
  */
12
15
  export declare function getMockPubSubP2PServiceFactory<T extends P2PClientType>(network: MockGossipSubNetwork): (...args: Parameters<(typeof LibP2PService<T>)['new']>) => Promise<LibP2PService<T>>;
16
+ /**
17
+ * Mock implementation of ReqRespInterface that routes requests to other peers' handlers through the mock network.
18
+ * When a peer calls sendBatchRequest, the mock iterates over network peers and invokes their registered handler
19
+ * for the sub-protocol, simulating the request-response protocol without actual libp2p streams.
20
+ */
21
+ declare class MockReqResp implements ReqRespInterface {
22
+ private peerId;
23
+ private network;
24
+ private handlers;
25
+ private logger;
26
+ constructor(peerId: PeerId, network: MockGossipSubNetwork);
27
+ updateConfig(_config: Partial<P2PReqRespConfig>): void;
28
+ start(subProtocolHandlers: Partial<ReqRespSubProtocolHandlers>, _subProtocolValidators: ReqRespSubProtocolValidators): Promise<void>;
29
+ addSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, _validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
30
+ stop(): Promise<void>;
31
+ getHandler(subProtocol: ReqRespSubProtocol): ReqRespSubProtocolHandler | undefined;
32
+ sendBatchRequest<SubProtocol extends ReqRespSubProtocol>(subProtocol: SubProtocol, requests: InstanceType<SubProtocolMap[SubProtocol]['request']>[], pinnedPeer: PeerId | undefined, _timeoutMs?: number, _maxPeers?: number, _maxRetryAttempts?: number): Promise<InstanceType<SubProtocolMap[SubProtocol]['response']>[]>;
33
+ sendRequestToPeer(peerId: PeerId, subProtocol: ReqRespSubProtocol, payload: Buffer, _dialTimeout?: number): Promise<ReqRespResponse>;
34
+ getConnectionSampler(): Pick<ConnectionSampler, 'getPeerListSortedByConnectionCountAsc'>;
35
+ }
13
36
  /**
14
37
  * Implementation of PubSub services that relies on a mock gossip sub network.
15
38
  * This is used in tests to simulate a gossip sub network without needing a real P2P network.
@@ -49,11 +72,14 @@ declare class MockGossipSubService extends TypedEventEmitter<GossipsubEvents> im
49
72
  */
50
73
  export declare class MockGossipSubNetwork {
51
74
  private peers;
75
+ private reqRespPeers;
52
76
  private nextMsgId;
53
77
  private logger;
54
78
  getPeers(): PeerId[];
55
79
  registerPeer(peer: MockGossipSubService): void;
80
+ registerReqRespPeer(peer: MockReqResp): void;
81
+ getReqRespPeers(): MockReqResp[];
56
82
  publishToPeers(topic: TopicStr, data: Uint8Array, sender: PeerId): void;
57
83
  }
58
84
  export {};
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1wdWJzdWIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LWhlbHBlcnMvbW9jay1wdWJzdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2xELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BHLE9BQU8sRUFDTCxLQUFLLFlBQVksRUFDakIsS0FBSyxNQUFNLEVBQ1gsS0FBSyxhQUFhLEVBQ2xCLEtBQUssb0JBQW9CLEVBQ3pCLGlCQUFpQixFQUNsQixNQUFNLG1CQUFtQixDQUFDO0FBSTNCLE9BQU8sRUFBNkQsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHaEgsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DLEtBQUssZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTNEOzs7R0FHRztBQUNILHdCQUFnQiw4QkFBOEIsQ0FBQyxDQUFDLFNBQVMsYUFBYSxFQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEdBQzVCLENBQUMsR0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0F3Q3RGO0FBRUQ7Ozs7R0FJRztBQUNILHFCQUFhLFVBQVcsWUFBVyxZQUFZO0lBTXBDLE1BQU0sRUFBRSxNQUFNO0lBTGhCLE1BQU0sRUFBRSxZQUFZLENBQWE7SUFFeEMsT0FBTyxDQUFDLFNBQVMsQ0FBbUI7SUFFcEMsWUFDUyxNQUFNLEVBQUUsTUFBTSxFQUNyQixPQUFPLEVBQUUsb0JBQW9CLEVBRzlCO0lBRUQsSUFBSSxRQUFROzs7O01BSVg7SUFFRCxLQUFLLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHNUI7SUFDRCxJQUFJLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHM0I7Q0FDRjtBQUVELGNBQU0sb0JBQXFCLFNBQVEsaUJBQWlCLENBQUMsZUFBZSxDQUFFLFlBQVcsZ0JBQWdCO0lBTXRGLE1BQU0sRUFBRSxNQUFNO0lBQ3JCLE9BQU8sQ0FBQyxPQUFPO0lBTmpCLE9BQU8sQ0FBQyxNQUFNLENBQTJDO0lBQ2xELGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBYTtJQUNuRCxTQUFnQixNQUFNLGNBQXFCO0lBRTNDLFlBQ1MsTUFBTSxFQUFFLE1BQU0sRUFDYixPQUFPLEVBQUUsb0JBQW9CLEVBSXRDO0lBRUQsS0FBSzs7TUFFSDtJQUVGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FJdEY7SUFFRCxPQUFPLENBQUMsR0FBRyxFQUFFLGdCQUFnQixRQU01QjtJQUVELFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FHL0I7SUFFRCw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEdBQUcsSUFBSSxDQUtuSDtDQUNGO0FBRUQ7OztHQUdHO0FBQ0gscUJBQWEsb0JBQW9CO0lBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQThCO0lBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUs7SUFFdEIsT0FBTyxDQUFDLE1BQU0sQ0FBbUQ7SUFFMUQsUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUUxQjtJQUVNLFlBQVksQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEdBQUcsSUFBSSxDQUVwRDtJQUVNLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBZTdFO0NBQ0YifQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1wdWJzdWIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LWhlbHBlcnMvbW9jay1wdWJzdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2xELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BHLE9BQU8sRUFDTCxLQUFLLFlBQVksRUFDakIsS0FBSyxNQUFNLEVBQ1gsS0FBSyxhQUFhLEVBQ2xCLEtBQUssb0JBQW9CLEVBQ3pCLGlCQUFpQixFQUNsQixNQUFNLG1CQUFtQixDQUFDO0FBSTNCLE9BQU8sRUFBK0MsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3RHLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLGVBQWUsRUFDcEIsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyx5QkFBeUIsRUFDOUIsS0FBSywwQkFBMEIsRUFDL0IsS0FBSyw0QkFBNEIsRUFDakMsS0FBSyxjQUFjLEVBRXBCLE1BQU0sa0NBQWtDLENBQUM7QUFHMUMsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DLEtBQUssZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTNEOzs7R0FHRztBQUNILHdCQUFnQiw4QkFBOEIsQ0FBQyxDQUFDLFNBQVMsYUFBYSxFQUNwRSxPQUFPLEVBQUUsb0JB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
@@ -1 +1 @@
1
- {"version":3,"file":"mock-pubsub.d.ts","sourceRoot":"","sources":["../../src/test-helpers/mock-pubsub.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAA6D,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGhH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,KAAK,gBAAgB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,aAAa,EACpE,OAAO,EAAE,oBAAoB,GAC5B,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAwCtF;AAED;;;;GAIG;AACH,qBAAa,UAAW,YAAW,YAAY;IAMpC,MAAM,EAAE,MAAM;IALhB,MAAM,EAAE,YAAY,CAAa;IAExC,OAAO,CAAC,SAAS,CAAmB;IAEpC,YACS,MAAM,EAAE,MAAM,EACrB,OAAO,EAAE,oBAAoB,EAG9B;IAED,IAAI,QAAQ;;;;MAIX;IAED,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5B;IACD,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3B;CACF;AAED,cAAM,oBAAqB,SAAQ,iBAAiB,CAAC,eAAe,CAAE,YAAW,gBAAgB;IAMtF,MAAM,EAAE,MAAM;IACrB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,MAAM,CAA2C;IAClD,gBAAgB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAa;IACnD,SAAgB,MAAM,cAAqB;IAE3C,YACS,MAAM,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,EAItC;IAED,KAAK;;MAEH;IAEF,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAItF;IAED,OAAO,CAAC,GAAG,EAAE,gBAAgB,QAM5B;IAED,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAG/B;IAED,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAKnH;CACF;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,MAAM,CAAmD;IAE1D,QAAQ,IAAI,MAAM,EAAE,CAE1B;IAEM,YAAY,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAEpD;IAEM,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAe7E;CACF"}
1
+ {"version":3,"file":"mock-pubsub.d.ts","sourceRoot":"","sources":["../../src/test-helpers/mock-pubsub.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAA+C,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8DAA8D,CAAC;AACtG,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,KAAK,gBAAgB,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,aAAa,EACpE,OAAO,EAAE,oBAAoB,GAC5B,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAwCtF;AAED;;;;GAIG;AACH,cAAM,WAAY,YAAW,gBAAgB;IAKzC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,MAAM,CAAyC;IAEvD,YACU,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,EAGtC;IAED,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAG;IAEzD,KAAK,CACH,mBAAmB,EAAE,OAAO,CAAC,0BAA0B,CAAC,EACxD,sBAAsB,EAAE,4BAA4B,GACnD,OAAO,CAAC,IAAI,CAAC,CAGf;IAED,cAAc,CACZ,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,yBAAyB,EAClC,UAAU,CAAC,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,GAC5D,OAAO,CAAC,IAAI,CAAC,CAGf;IAED,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAGpB;IAED,UAAU,CAAC,WAAW,EAAE,kBAAkB,GAAG,yBAAyB,GAAG,SAAS,CAEjF;IAEK,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,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CA0BlE;IAEK,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,eAAe,CAAC,CAY1B;IAED,oBAAoB,IAAI,IAAI,CAAC,iBAAiB,EAAE,uCAAuC,CAAC,CAQvF;CACF;AAED;;;;GAIG;AACH,qBAAa,UAAW,YAAW,YAAY;IAMpC,MAAM,EAAE,MAAM;IALhB,MAAM,EAAE,YAAY,CAAa;IAExC,OAAO,CAAC,SAAS,CAAmB;IAEpC,YACS,MAAM,EAAE,MAAM,EACrB,OAAO,EAAE,oBAAoB,EAG9B;IAED,IAAI,QAAQ;;;;MAIX;IAED,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5B;IACD,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3B;CACF;AAED,cAAM,oBAAqB,SAAQ,iBAAiB,CAAC,eAAe,CAAE,YAAW,gBAAgB;IAMtF,MAAM,EAAE,MAAM;IACrB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,MAAM,CAA2C;IAClD,gBAAgB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAa;IACnD,SAAgB,MAAM,cAAqB;IAE3C,YACS,MAAM,EAAE,MAAM,EACb,OAAO,EAAE,oBAAoB,EAItC;IAED,KAAK;;MAEH;IAEF,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAItF;IAED,OAAO,CAAC,GAAG,EAAE,gBAAgB,QAM5B;IAED,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAG/B;IAED,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAKnH;CACF;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,MAAM,CAAmD;IAE1D,QAAQ,IAAI,MAAM,EAAE,CAE1B;IAEM,YAAY,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAEpD;IAEM,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAElD;IAEM,eAAe,IAAI,WAAW,EAAE,CAEtC;IAEM,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAe7E;CACF"}
@@ -1,6 +1,8 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { TypedEventEmitter } from '@libp2p/interface';
3
- import { DummyPeerDiscoveryService, DummyPeerManager, DummyReqResp, LibP2PService } from '../services/index.js';
3
+ import { DummyPeerDiscoveryService, DummyPeerManager, LibP2PService } from '../services/index.js';
4
+ import { responseFromBuffer } from '../services/reqresp/interface.js';
5
+ import { ReqRespStatus } from '../services/reqresp/status.js';
4
6
  import { GossipSubEvent } from '../types/index.js';
5
7
  /**
6
8
  * Given a mock gossip sub network, returns a factory function that creates an instance LibP2PService connected to it.
@@ -10,12 +12,98 @@ import { GossipSubEvent } from '../types/index.js';
10
12
  deps.logger.verbose('Creating mock PubSub service');
11
13
  const libp2p = new MockPubSub(peerId, network);
12
14
  const peerManager = new DummyPeerManager(peerId, network);
13
- const reqresp = new DummyReqResp();
15
+ const reqresp = new MockReqResp(peerId, network);
14
16
  const peerDiscoveryService = new DummyPeerDiscoveryService();
15
17
  const service = new LibP2PService(clientType, config, libp2p, peerDiscoveryService, reqresp, peerManager, deps.mempools, deps.l2BlockSource, deps.epochCache, deps.proofVerifier, deps.worldStateSynchronizer, deps.telemetry, deps.logger);
16
18
  return Promise.resolve(service);
17
19
  };
18
20
  }
21
+ /**
22
+ * Mock implementation of ReqRespInterface that routes requests to other peers' handlers through the mock network.
23
+ * When a peer calls sendBatchRequest, the mock iterates over network peers and invokes their registered handler
24
+ * for the sub-protocol, simulating the request-response protocol without actual libp2p streams.
25
+ */ class MockReqResp {
26
+ peerId;
27
+ network;
28
+ handlers;
29
+ logger;
30
+ constructor(peerId, network){
31
+ this.peerId = peerId;
32
+ this.network = network;
33
+ this.handlers = {};
34
+ this.logger = createLogger('p2p:test:mock-reqresp');
35
+ network.registerReqRespPeer(this);
36
+ }
37
+ updateConfig(_config) {}
38
+ start(subProtocolHandlers, _subProtocolValidators) {
39
+ Object.assign(this.handlers, subProtocolHandlers);
40
+ return Promise.resolve();
41
+ }
42
+ addSubProtocol(subProtocol, handler, _validator) {
43
+ this.handlers[subProtocol] = handler;
44
+ return Promise.resolve();
45
+ }
46
+ stop() {
47
+ this.handlers = {};
48
+ return Promise.resolve();
49
+ }
50
+ getHandler(subProtocol) {
51
+ return this.handlers[subProtocol];
52
+ }
53
+ async sendBatchRequest(subProtocol, requests, pinnedPeer, _timeoutMs, _maxPeers, _maxRetryAttempts) {
54
+ const responses = [];
55
+ const peers = this.network.getReqRespPeers().filter((p)=>!p.peerId.equals(this.peerId));
56
+ const targetPeers = pinnedPeer ? peers.filter((p)=>p.peerId.equals(pinnedPeer)) : peers;
57
+ for (const request of requests){
58
+ const requestBuffer = request.toBuffer();
59
+ for (const peer of targetPeers){
60
+ const handler = peer.getHandler(subProtocol);
61
+ if (!handler) {
62
+ continue;
63
+ }
64
+ try {
65
+ const responseBuffer = await handler(this.peerId, requestBuffer);
66
+ if (responseBuffer.length > 0) {
67
+ const response = responseFromBuffer(subProtocol, responseBuffer);
68
+ responses.push(response);
69
+ break;
70
+ }
71
+ } catch (err) {
72
+ this.logger.debug(`Mock reqresp handler error from peer ${peer.peerId}`, {
73
+ err
74
+ });
75
+ }
76
+ }
77
+ }
78
+ return responses;
79
+ }
80
+ async sendRequestToPeer(peerId, subProtocol, payload, _dialTimeout) {
81
+ const peer = this.network.getReqRespPeers().find((p)=>p.peerId.equals(peerId));
82
+ const handler = peer?.getHandler(subProtocol);
83
+ if (!handler) {
84
+ return {
85
+ status: ReqRespStatus.SUCCESS,
86
+ data: Buffer.from([])
87
+ };
88
+ }
89
+ try {
90
+ const data = await handler(this.peerId, payload);
91
+ return {
92
+ status: ReqRespStatus.SUCCESS,
93
+ data
94
+ };
95
+ } catch {
96
+ return {
97
+ status: ReqRespStatus.FAILURE
98
+ };
99
+ }
100
+ }
101
+ getConnectionSampler() {
102
+ return {
103
+ getPeerListSortedByConnectionCountAsc: ()=>this.network.getReqRespPeers().filter((p)=>!p.peerId.equals(this.peerId)).map((p)=>p.peerId)
104
+ };
105
+ }
106
+ }
19
107
  /**
20
108
  * Implementation of PubSub services that relies on a mock gossip sub network.
21
109
  * This is used in tests to simulate a gossip sub network without needing a real P2P network.
@@ -96,6 +184,7 @@ class MockGossipSubService extends TypedEventEmitter {
96
184
  * All instances of MockGossipSubService connected to the same network will instantly receive the same messages.
97
185
  */ export class MockGossipSubNetwork {
98
186
  peers = [];
187
+ reqRespPeers = [];
99
188
  nextMsgId = 0;
100
189
  logger = createLogger('p2p:test:mock-gossipsub-network');
101
190
  getPeers() {
@@ -104,6 +193,12 @@ class MockGossipSubService extends TypedEventEmitter {
104
193
  registerPeer(peer) {
105
194
  this.peers.push(peer);
106
195
  }
196
+ registerReqRespPeer(peer) {
197
+ this.reqRespPeers.push(peer);
198
+ }
199
+ getReqRespPeers() {
200
+ return this.reqRespPeers;
201
+ }
107
202
  publishToPeers(topic, data, sender) {
108
203
  const msgId = (this.nextMsgId++).toString();
109
204
  this.logger.debug(`Network is distributing message on topic ${topic}`, {
@@ -67,4 +67,4 @@ export declare function createBootstrapNodeFromPrivateKey(privateKey: string, po
67
67
  */
68
68
  export declare function getBootstrapNodeEnr(privateKey: string, port: number): Promise<SignableENR>;
69
69
  export declare function createBootstrapNode(port: number, telemetry?: TelemetryClient, chainConfig?: ChainConfig): Promise<BootstrapNode>;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC1ub2Rlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtaGVscGVycy9yZXFyZXNwLW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTXJELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3ZCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBT25GLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQW9DLE1BQU0sUUFBUSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSww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
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC1ub2Rlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtaGVscGVycy9yZXFyZXNwLW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTXJELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3ZCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBT25GLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQW9DLE1BQU0sUUFBUSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSww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
@@ -1 +1 @@
1
- {"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import getPort from 'get-port';
18
18
  import { createLibp2p } from 'libp2p';
19
19
  import { BootstrapNode } from '../bootstrap/bootstrap.js';
20
20
  import { DiscV5Service } from '../services/discv5/discV5_service.js';
21
+ import { APP_SPECIFIC_WEIGHT } from '../services/gossipsub/scoring.js';
21
22
  import { LibP2PService } from '../services/libp2p/libp2p_service.js';
22
23
  import { PeerManager } from '../services/peer-manager/peer_manager.js';
23
24
  import { PeerScoring } from '../services/peer-manager/peer_scoring.js';
@@ -102,7 +103,7 @@ import { getVersions } from '../versioning.js';
102
103
  const versions = getVersions(config);
103
104
  const protocolVersion = compressComponentVersions(versions);
104
105
  const peerManager = new PeerManager(p2pNode, discoveryService, config, telemetry, createLogger(`p2p:peer_manager`), peerScoring, reqresp, worldStateSynchronizer, protocolVersion, epochCache);
105
- p2pNode.services.pubsub.score.params.appSpecificWeight = 10;
106
+ p2pNode.services.pubsub.score.params.appSpecificWeight = APP_SPECIFIC_WEIGHT;
106
107
  p2pNode.services.pubsub.score.params.appSpecificScore = (peerId)=>peerManager.shouldDisableP2PGossip(peerId) ? -Infinity : peerManager.getPeerScore(peerId);
107
108
  return new LibP2PService(clientType, config, p2pNode, discoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry);
108
109
  }