@aztec/p2p 0.0.1-commit.9d2bcf6d → 0.0.1-commit.9ef841308

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 (459) hide show
  1. package/README.md +129 -3
  2. package/dest/client/factory.d.ts +11 -11
  3. package/dest/client/factory.d.ts.map +1 -1
  4. package/dest/client/factory.js +55 -17
  5. package/dest/client/interface.d.ts +46 -33
  6. package/dest/client/interface.d.ts.map +1 -1
  7. package/dest/client/p2p_client.d.ts +39 -51
  8. package/dest/client/p2p_client.d.ts.map +1 -1
  9. package/dest/client/p2p_client.js +157 -224
  10. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +21 -11
  11. package/dest/config.d.ts +55 -18
  12. package/dest/config.d.ts.map +1 -1
  13. package/dest/config.js +102 -38
  14. package/dest/errors/tx-pool.error.d.ts +8 -0
  15. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  16. package/dest/errors/tx-pool.error.js +9 -0
  17. package/dest/index.d.ts +2 -2
  18. package/dest/index.d.ts.map +1 -1
  19. package/dest/index.js +1 -1
  20. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +104 -88
  21. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  22. package/dest/mem_pools/attestation_pool/attestation_pool.js +445 -3
  23. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  24. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  25. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  26. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  27. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  28. package/dest/mem_pools/attestation_pool/index.js +1 -2
  29. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  30. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  31. package/dest/mem_pools/attestation_pool/mocks.js +2 -2
  32. package/dest/mem_pools/index.d.ts +3 -3
  33. package/dest/mem_pools/index.d.ts.map +1 -1
  34. package/dest/mem_pools/index.js +1 -1
  35. package/dest/mem_pools/instrumentation.d.ts +4 -2
  36. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  37. package/dest/mem_pools/instrumentation.js +16 -14
  38. package/dest/mem_pools/interface.d.ts +5 -5
  39. package/dest/mem_pools/interface.d.ts.map +1 -1
  40. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  41. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  42. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  43. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  44. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  45. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  46. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  47. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  48. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  49. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  50. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  51. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  52. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  53. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  54. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  55. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  56. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  57. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  58. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  59. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  66. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_mining_rule.js +16 -35
  67. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  69. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_reorg_rule.js +39 -24
  70. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  79. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  80. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  81. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  82. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  83. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  84. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  85. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +215 -0
  86. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  87. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  88. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +134 -0
  89. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  90. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +220 -0
  91. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  92. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  93. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  94. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  95. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  96. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  97. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  98. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  99. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  100. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  101. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +923 -0
  103. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +1 -1
  104. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  105. package/dest/msg_validators/attestation_validator/attestation_validator.js +5 -4
  106. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +3 -3
  107. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  108. package/dest/msg_validators/clock_tolerance.d.ts +1 -1
  109. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  110. package/dest/msg_validators/clock_tolerance.js +4 -3
  111. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -4
  112. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  113. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  114. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -4
  115. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  117. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -8
  118. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/proposal_validator/proposal_validator.js +53 -41
  120. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  121. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  122. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  123. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  124. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  125. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  126. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  127. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  128. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  129. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +16 -3
  130. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
  132. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  133. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  134. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  135. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  136. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  137. package/dest/msg_validators/tx_validator/data_validator.js +35 -2
  138. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +13 -3
  139. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/double_spend_validator.js +4 -4
  141. package/dest/msg_validators/tx_validator/factory.d.ts +133 -6
  142. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/factory.js +247 -60
  144. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  145. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  147. package/dest/msg_validators/tx_validator/gas_validator.d.ts +67 -3
  148. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  149. package/dest/msg_validators/tx_validator/gas_validator.js +104 -37
  150. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  151. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  152. package/dest/msg_validators/tx_validator/index.js +2 -0
  153. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  154. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  156. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  157. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  158. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  159. package/dest/msg_validators/tx_validator/phases_validator.d.ts +22 -2
  160. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  161. package/dest/msg_validators/tx_validator/phases_validator.js +72 -24
  162. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +20 -4
  163. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  164. package/dest/msg_validators/tx_validator/timestamp_validator.js +6 -6
  165. package/dest/services/discv5/discV5_service.d.ts +1 -1
  166. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  167. package/dest/services/discv5/discV5_service.js +4 -2
  168. package/dest/services/dummy_service.d.ts +13 -5
  169. package/dest/services/dummy_service.d.ts.map +1 -1
  170. package/dest/services/dummy_service.js +10 -4
  171. package/dest/services/encoding.d.ts +7 -3
  172. package/dest/services/encoding.d.ts.map +1 -1
  173. package/dest/services/encoding.js +18 -11
  174. package/dest/services/gossipsub/index.d.ts +3 -0
  175. package/dest/services/gossipsub/index.d.ts.map +1 -0
  176. package/dest/services/gossipsub/index.js +2 -0
  177. package/dest/services/gossipsub/scoring.d.ts +21 -3
  178. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  179. package/dest/services/gossipsub/scoring.js +24 -7
  180. package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
  181. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  182. package/dest/services/gossipsub/topic_score_params.js +346 -0
  183. package/dest/services/libp2p/libp2p_service.d.ts +99 -49
  184. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  185. package/dest/services/libp2p/libp2p_service.js +554 -377
  186. package/dest/services/peer-manager/metrics.d.ts +3 -1
  187. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  188. package/dest/services/peer-manager/metrics.js +6 -0
  189. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  190. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  191. package/dest/services/peer-manager/peer_manager.js +24 -9
  192. package/dest/services/peer-manager/peer_scoring.d.ts +5 -2
  193. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  194. package/dest/services/peer-manager/peer_scoring.js +53 -12
  195. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +14 -10
  196. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  197. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +89 -112
  198. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +4 -7
  199. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  200. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +11 -13
  201. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  202. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +31 -46
  203. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -11
  204. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  205. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +52 -15
  206. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
  207. package/dest/services/reqresp/interface.d.ts +10 -1
  208. package/dest/services/reqresp/interface.d.ts.map +1 -1
  209. package/dest/services/reqresp/interface.js +15 -1
  210. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  211. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  212. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +16 -11
  213. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +21 -10
  214. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  215. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +27 -11
  216. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  217. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  218. package/dest/services/reqresp/protocols/tx.js +20 -0
  219. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  220. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  221. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  222. package/dest/services/reqresp/reqresp.d.ts +1 -1
  223. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  224. package/dest/services/reqresp/reqresp.js +30 -14
  225. package/dest/services/service.d.ts +45 -3
  226. package/dest/services/service.d.ts.map +1 -1
  227. package/dest/services/tx_collection/config.d.ts +22 -4
  228. package/dest/services/tx_collection/config.d.ts.map +1 -1
  229. package/dest/services/tx_collection/config.js +49 -3
  230. package/dest/services/tx_collection/fast_tx_collection.d.ts +6 -8
  231. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  232. package/dest/services/tx_collection/fast_tx_collection.js +88 -88
  233. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  234. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  235. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  236. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  237. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  238. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  239. package/dest/services/tx_collection/index.d.ts +3 -2
  240. package/dest/services/tx_collection/index.d.ts.map +1 -1
  241. package/dest/services/tx_collection/index.js +1 -0
  242. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  243. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  244. package/dest/services/tx_collection/instrumentation.js +2 -1
  245. package/dest/services/tx_collection/proposal_tx_collector.d.ts +15 -15
  246. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  247. package/dest/services/tx_collection/proposal_tx_collector.js +6 -6
  248. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  249. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  250. package/dest/services/tx_collection/request_tracker.js +84 -0
  251. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  252. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  253. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  254. package/dest/services/tx_collection/tx_collection.d.ts +23 -13
  255. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  256. package/dest/services/tx_collection/tx_collection.js +75 -3
  257. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  258. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  259. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  260. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  261. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  262. package/dest/services/tx_collection/tx_source.js +26 -7
  263. package/dest/services/tx_file_store/config.d.ts +1 -3
  264. package/dest/services/tx_file_store/config.d.ts.map +1 -1
  265. package/dest/services/tx_file_store/config.js +0 -4
  266. package/dest/services/tx_file_store/tx_file_store.d.ts +4 -3
  267. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
  268. package/dest/services/tx_file_store/tx_file_store.js +9 -6
  269. package/dest/services/tx_provider.d.ts +4 -4
  270. package/dest/services/tx_provider.d.ts.map +1 -1
  271. package/dest/services/tx_provider.js +9 -8
  272. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  273. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  274. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  275. package/dest/test-helpers/mock-pubsub.d.ts +35 -4
  276. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  277. package/dest/test-helpers/mock-pubsub.js +114 -5
  278. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  279. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  280. package/dest/test-helpers/reqresp-nodes.js +4 -3
  281. package/dest/test-helpers/testbench-utils.d.ts +43 -38
  282. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  283. package/dest/test-helpers/testbench-utils.js +149 -61
  284. package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -2
  285. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  286. package/dest/testbench/p2p_client_testbench_worker.js +58 -28
  287. package/dest/testbench/worker_client_manager.d.ts +3 -1
  288. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  289. package/dest/testbench/worker_client_manager.js +6 -3
  290. package/dest/util.d.ts +10 -5
  291. package/dest/util.d.ts.map +1 -1
  292. package/dest/util.js +2 -9
  293. package/package.json +14 -14
  294. package/src/client/factory.ts +106 -30
  295. package/src/client/interface.ts +56 -34
  296. package/src/client/p2p_client.ts +190 -269
  297. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +34 -15
  298. package/src/config.ts +158 -44
  299. package/src/errors/tx-pool.error.ts +12 -0
  300. package/src/index.ts +1 -1
  301. package/src/mem_pools/attestation_pool/attestation_pool.ts +497 -91
  302. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  303. package/src/mem_pools/attestation_pool/index.ts +9 -2
  304. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  305. package/src/mem_pools/index.ts +2 -2
  306. package/src/mem_pools/instrumentation.ts +17 -13
  307. package/src/mem_pools/interface.ts +4 -4
  308. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  309. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  310. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  311. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  312. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  313. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  314. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  315. package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
  316. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  317. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  318. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  319. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  320. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  321. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  322. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  323. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  324. package/src/mem_pools/tx_pool_v2/interfaces.ts +247 -0
  325. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +343 -0
  326. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  327. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  328. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  329. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1105 -0
  330. package/src/msg_validators/attestation_validator/README.md +49 -0
  331. package/src/msg_validators/attestation_validator/attestation_validator.ts +5 -4
  332. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +2 -2
  333. package/src/msg_validators/clock_tolerance.ts +4 -3
  334. package/src/msg_validators/proposal_validator/README.md +123 -0
  335. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +14 -4
  336. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +20 -7
  337. package/src/msg_validators/proposal_validator/proposal_validator.ts +69 -45
  338. package/src/msg_validators/tx_validator/README.md +119 -0
  339. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  340. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  341. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  342. package/src/msg_validators/tx_validator/block_header_validator.ts +15 -3
  343. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  344. package/src/msg_validators/tx_validator/data_validator.ts +42 -1
  345. package/src/msg_validators/tx_validator/double_spend_validator.ts +11 -6
  346. package/src/msg_validators/tx_validator/factory.ts +394 -78
  347. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  348. package/src/msg_validators/tx_validator/gas_validator.ts +123 -27
  349. package/src/msg_validators/tx_validator/index.ts +2 -0
  350. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  351. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  352. package/src/msg_validators/tx_validator/phases_validator.ts +82 -27
  353. package/src/msg_validators/tx_validator/timestamp_validator.ts +23 -18
  354. package/src/services/discv5/discV5_service.ts +4 -2
  355. package/src/services/dummy_service.ts +18 -6
  356. package/src/services/encoding.ts +18 -10
  357. package/src/services/gossipsub/README.md +641 -0
  358. package/src/services/gossipsub/index.ts +2 -0
  359. package/src/services/gossipsub/scoring.ts +29 -5
  360. package/src/services/gossipsub/topic_score_params.ts +487 -0
  361. package/src/services/libp2p/libp2p_service.ts +579 -410
  362. package/src/services/peer-manager/metrics.ts +7 -0
  363. package/src/services/peer-manager/peer_manager.ts +28 -9
  364. package/src/services/peer-manager/peer_scoring.ts +46 -5
  365. package/src/services/reqresp/README.md +229 -0
  366. package/src/services/reqresp/batch-tx-requester/README.md +53 -14
  367. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +89 -122
  368. package/src/services/reqresp/batch-tx-requester/interface.ts +3 -6
  369. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +30 -71
  370. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
  371. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
  372. package/src/services/reqresp/interface.ts +26 -1
  373. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +23 -14
  374. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +38 -15
  375. package/src/services/reqresp/protocols/tx.ts +22 -0
  376. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  377. package/src/services/reqresp/reqresp.ts +35 -15
  378. package/src/services/service.ts +58 -2
  379. package/src/services/tx_collection/config.ts +74 -6
  380. package/src/services/tx_collection/fast_tx_collection.ts +94 -97
  381. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  382. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  383. package/src/services/tx_collection/index.ts +2 -1
  384. package/src/services/tx_collection/instrumentation.ts +7 -1
  385. package/src/services/tx_collection/proposal_tx_collector.ts +21 -27
  386. package/src/services/tx_collection/request_tracker.ts +127 -0
  387. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  388. package/src/services/tx_collection/tx_collection.ts +114 -19
  389. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  390. package/src/services/tx_collection/tx_source.ts +28 -8
  391. package/src/services/tx_file_store/config.ts +0 -6
  392. package/src/services/tx_file_store/tx_file_store.ts +10 -8
  393. package/src/services/tx_provider.ts +10 -9
  394. package/src/test-helpers/make-test-p2p-clients.ts +4 -6
  395. package/src/test-helpers/mock-pubsub.ts +155 -9
  396. package/src/test-helpers/reqresp-nodes.ts +5 -7
  397. package/src/test-helpers/testbench-utils.ts +156 -74
  398. package/src/testbench/p2p_client_testbench_worker.ts +64 -31
  399. package/src/testbench/worker_client_manager.ts +13 -6
  400. package/src/util.ts +16 -14
  401. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  402. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  403. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  404. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  405. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  406. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  407. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  408. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  409. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  410. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  411. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  412. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  413. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  414. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  415. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  416. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  417. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  418. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  419. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  420. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  421. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  422. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  423. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  424. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  425. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  426. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  427. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  428. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  429. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  430. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  431. package/dest/mem_pools/tx_pool/index.js +0 -2
  432. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  433. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  434. package/dest/mem_pools/tx_pool/priority.js +0 -15
  435. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  436. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  437. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  438. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  439. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  440. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  441. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  442. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  443. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  444. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  445. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  446. package/src/mem_pools/tx_pool/README.md +0 -270
  447. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  448. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  449. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  450. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  451. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  452. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  453. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  454. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  455. package/src/mem_pools/tx_pool/index.ts +0 -2
  456. package/src/mem_pools/tx_pool/priority.ts +0 -20
  457. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  458. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  459. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
@@ -5,27 +5,46 @@ import { getComponentsVersionsFromConfig } from '@aztec/stdlib/versioning';
5
5
  import { makeTracedFetch } from '@aztec/telemetry-client';
6
6
  export class NodeRpcTxSource {
7
7
  client;
8
+ txValidator;
8
9
  info;
9
- constructor(client, info){
10
+ constructor(client, txValidator, info){
10
11
  this.client = client;
12
+ this.txValidator = txValidator;
11
13
  this.info = info;
12
14
  }
13
- static fromUrl(nodeUrl, versions) {
15
+ static fromUrl(nodeUrl, txValidator, versions) {
14
16
  const client = createAztecNodeClient(nodeUrl, versions, makeTracedFetch([
15
17
  1,
16
18
  2,
17
19
  3
18
20
  ], false));
19
- return new NodeRpcTxSource(client, nodeUrl);
21
+ return new NodeRpcTxSource(client, txValidator, nodeUrl);
20
22
  }
21
23
  getInfo() {
22
24
  return this.info;
23
25
  }
24
- getTxsByHash(txHashes) {
25
- return this.client.getTxsByHash(txHashes);
26
+ async getTxsByHash(txHashes) {
27
+ return this.verifyTxs(await this.client.getTxsByHash(txHashes));
28
+ }
29
+ async verifyTxs(txs) {
30
+ // Validate tx hashes for all collected txs from external sources
31
+ const validTxs = [];
32
+ const invalidTxHashes = [];
33
+ await Promise.all(txs.map(async (tx)=>{
34
+ const validation = await this.txValidator.validateTx(tx);
35
+ if (validation.result === 'valid') {
36
+ validTxs.push(tx);
37
+ } else {
38
+ invalidTxHashes.push(tx.getTxHash().toString());
39
+ }
40
+ }));
41
+ return {
42
+ validTxs: validTxs,
43
+ invalidTxHashes: invalidTxHashes
44
+ };
26
45
  }
27
46
  }
28
- export function createNodeRpcTxSources(urls, chainConfig) {
47
+ export function createNodeRpcTxSources(urls, txValidator, chainConfig) {
29
48
  const versions = getComponentsVersionsFromConfig(chainConfig, protocolContractsHash, getVKTreeRoot());
30
- return urls.map((url)=>NodeRpcTxSource.fromUrl(url, versions));
49
+ return urls.map((url)=>NodeRpcTxSource.fromUrl(url, txValidator, versions));
31
50
  }
@@ -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.
@@ -13,6 +13,7 @@ export declare class TxFileStore {
13
13
  private readonly config;
14
14
  private readonly instrumentation;
15
15
  private readonly log;
16
+ private readonly basePath;
16
17
  private uploadQueue;
17
18
  private activeUploads;
18
19
  private readonly queueProcessor;
@@ -31,7 +32,7 @@ export declare class TxFileStore {
31
32
  * @param fileStoreOverride - Optional FileStore for testing (bypasses createFileStore).
32
33
  * @returns The file store instance, or undefined if not configured/enabled.
33
34
  */
34
- static create(txPool: TxPool, config: TxFileStoreConfig, log?: Logger, telemetry?: TelemetryClient, fileStoreOverride?: FileStore): Promise<TxFileStore | undefined>;
35
+ static create(txPool: TxPoolV2, config: TxFileStoreConfig, basePath: string, log?: Logger, telemetry?: TelemetryClient, fileStoreOverride?: FileStore): Promise<TxFileStore | undefined>;
35
36
  /** Starts listening to TxPool events and uploading txs. */
36
37
  start(): void;
37
38
  /** Stops listening and waits for pending uploads to complete. */
@@ -44,4 +45,4 @@ export declare class TxFileStore {
44
45
  /** Returns the number of pending uploads (queued + in-flight). */
45
46
  getPendingUploadCount(): number;
46
47
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZmlsZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3R4X2ZpbGVfc3RvcmUvdHhfZmlsZV9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEUsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQWdCLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHckQ7OztHQUdHO0FBQ0gscUJBQWEsV0FBVztJQVlwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVM7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWU7SUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBZnRCLE9BQU8sQ0FBQyxXQUFXLENBQVk7SUFDL0IsT0FBTyxDQUFDLGFBQWEsQ0FBSztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBaUI7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQTRCO0lBRTNELHFEQUFxRDtJQUNyRCxPQUFPLENBQUMsYUFBYSxDQUEwQjtJQUMvQyxPQUFPLENBQUMsa0JBQWtCLENBQWdCO0lBQzFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQVE7SUFFekMsT0FBTyxlQVdOO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxPQUFhLE1BQU0sQ0FDakIsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsaUJBQWlCLEVBQ3pCLEdBQUcsR0FBRSxNQUEwQyxFQUMvQyxTQUFTLEdBQUUsZUFBc0MsRUFDakQsaUJBQWlCLENBQUMsRUFBRSxTQUFTLEdBQzVCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBb0JsQztJQUVELDJEQUEyRDtJQUNwRCxLQUFLLElBQUksSUFBSSxDQU9uQjtJQUVELGlFQUFpRTtJQUNwRCxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUlqQztJQUVELE9BQU8sQ0FBQyxVQUFVO1lBZ0JKLGlCQUFpQjtZQVlqQixRQUFRO0lBdUN0QiwyRUFBMkU7SUFDOUQsS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJbEM7SUFFRCxrRUFBa0U7SUFDM0QscUJBQXFCLElBQUksTUFBTSxDQUVyQztDQUNGIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfZmlsZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3R4X2ZpbGVfc3RvcmUvdHhfZmlsZV9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEUsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdyRDs7O0dBR0c7QUFDSCxxQkFBYSxXQUFXO0lBWXBCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUztJQUMxQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZTtJQUNoQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUc7SUFDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRO0lBaEIzQixPQUFPLENBQUMsV0FBVyxDQUFZO0lBQy9CLE9BQU8sQ0FBQyxhQUFhLENBQUs7SUFDMUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQWlCO0lBQ2hELE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFpRDtJQUVoRixxREFBcUQ7SUFDckQsT0FBTyxDQUFDLGFBQWEsQ0FBMEI7SUFDL0MsT0FBTyxDQUFDLGtCQUFrQixDQUFnQjtJQUMxQyxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFRO0lBRXpDLE9BQU8sZUFZTjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBYSxNQUFNLENBQ2pCLE1BQU0sRUFBRSxRQUFRLEVBQ2hCLE1BQU0sRUFBRSxpQkFBaUIsRUFDekIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsR0FBRyxHQUFFLE1BQTBDLEVBQy9DLFNBQVMsR0FBRSxlQUFzQyxFQUNqRCxpQkFBaUIsQ0FBQyxFQUFFLFNBQVMsR0FDNUIsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsQ0FvQmxDO0lBRUQsMkRBQTJEO0lBQ3BELEtBQUssSUFBSSxJQUFJLENBT25CO0lBRUQsaUVBQWlFO0lBQ3BELElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBSWpDO0lBRUQsT0FBTyxDQUFDLFVBQVU7WUFnQkosaUJBQWlCO1lBWWpCLFFBQVE7SUF1Q3RCLDJFQUEyRTtJQUM5RCxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUlsQztJQUVELGtFQUFrRTtJQUMzRCxxQkFBcUIsSUFBSSxNQUFNLENBRXJDO0NBQ0YifQ==
@@ -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;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAhB3B,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,eAYN;IAED;;;;;;;;OAQG;IACH,OAAa,MAAM,CACjB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,MAAM,EAChB,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"}
@@ -14,6 +14,7 @@ import { TxFileStoreInstrumentation } from './instrumentation.js';
14
14
  config;
15
15
  instrumentation;
16
16
  log;
17
+ basePath;
17
18
  uploadQueue;
18
19
  activeUploads;
19
20
  queueProcessor;
@@ -21,12 +22,13 @@ import { TxFileStoreInstrumentation } from './instrumentation.js';
21
22
  /** Recently uploaded tx hashes for deduplication. */ recentUploads;
22
23
  recentUploadsOrder;
23
24
  maxRecentUploads;
24
- constructor(fileStore, txPool, config, instrumentation, log){
25
+ constructor(fileStore, txPool, config, instrumentation, log, basePath){
25
26
  this.fileStore = fileStore;
26
27
  this.txPool = txPool;
27
28
  this.config = config;
28
29
  this.instrumentation = instrumentation;
29
30
  this.log = log;
31
+ this.basePath = basePath;
30
32
  this.uploadQueue = [];
31
33
  this.activeUploads = 0;
32
34
  this.recentUploads = new Set();
@@ -45,7 +47,7 @@ import { TxFileStoreInstrumentation } from './instrumentation.js';
45
47
  * @param telemetry - Optional telemetry client.
46
48
  * @param fileStoreOverride - Optional FileStore for testing (bypasses createFileStore).
47
49
  * @returns The file store instance, or undefined if not configured/enabled.
48
- */ static async create(txPool, config, log = createLogger('p2p:tx_file_store'), telemetry = getTelemetryClient(), fileStoreOverride) {
50
+ */ static async create(txPool, config, basePath, log = createLogger('p2p:tx_file_store'), telemetry = getTelemetryClient(), fileStoreOverride) {
49
51
  if (!config.txFileStoreEnabled) {
50
52
  log.debug('Tx file store is disabled');
51
53
  return undefined;
@@ -61,9 +63,10 @@ import { TxFileStoreInstrumentation } from './instrumentation.js';
61
63
  }
62
64
  const instrumentation = new TxFileStoreInstrumentation(telemetry, 'TxFileStore');
63
65
  log.info('Created tx file store', {
64
- url: config.txFileStoreUrl
66
+ url: config.txFileStoreUrl,
67
+ basePath
65
68
  });
66
- return new TxFileStore(fileStore, txPool, config, instrumentation, log);
69
+ return new TxFileStore(fileStore, txPool, config, instrumentation, log, basePath);
67
70
  }
68
71
  /** Starts listening to TxPool events and uploading txs. */ start() {
69
72
  this.queueProcessor.start();
@@ -102,7 +105,7 @@ import { TxFileStoreInstrumentation } from './instrumentation.js';
102
105
  }
103
106
  async uploadTx(tx) {
104
107
  const txHash = tx.getTxHash().toString();
105
- const path = `txs/${txHash}.bin`;
108
+ const path = `${this.basePath}/txs/${txHash}.bin`;
106
109
  const timer = new Timer();
107
110
  if (this.recentUploads.has(txHash)) {
108
111
  return;
@@ -117,7 +120,7 @@ import { TxFileStoreInstrumentation } from './instrumentation.js';
117
120
  }
118
121
  }
119
122
  await retry(()=>this.fileStore.save(path, tx.toBuffer(), {
120
- compress: false
123
+ compress: true
121
124
  }), `Uploading tx ${txHash}`, makeBackoff([
122
125
  0.1,
123
126
  0.5,
@@ -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
  /**
@@ -17,10 +17,10 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
17
17
  export declare class TxProvider implements ITxProvider {
18
18
  private txCollection;
19
19
  private txPool;
20
- private txValidator;
20
+ private blockProposalTransactionValidator;
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, blockProposalTransactionValidator: Pick<P2PClient, 'validateTxsReceivedInBlockProposal'>, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcHJvdmlkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy90eF9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBZSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBOEIsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0U7OztHQUdHO0FBQ0gscUJBQWEsVUFBVyxZQUFXLFdBQVc7SUFJMUMsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsaUNBQWlDO0lBQ3pDLE9BQU8sQ0FBQyxHQUFHO0lBTmIsU0FBUyxDQUFDLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQztJQUVyRCxZQUNVLFlBQVksRUFBRSxZQUFZLEVBQzFCLE1BQU0sRUFBRSxRQUFRLEVBQ2hCLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsb0NBQW9DLENBQUMsRUFDeEYsR0FBRyxHQUFFLE1BQXlDLEVBQ3RELE1BQU0sR0FBRSxlQUFzQyxFQUcvQztJQUVELHNEQUFzRDtJQUN6QyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBQUMsQ0FrQjdGO0lBRUQsa0ZBQWtGO0lBQzNFLHNCQUFzQixDQUMzQixhQUFhLEVBQUUsYUFBYSxFQUM1QixXQUFXLEVBQUUsV0FBVyxFQUN4QixJQUFJLEVBQUU7UUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUFDLFFBQVEsRUFBRSxJQUFJLENBQUE7S0FBRSxHQUN2RCxPQUFPLENBQUM7UUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBTzlDO0lBRUQsbUVBQW1FO0lBQzVELGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxJQUFJLENBQUE7S0FBRSxHQUFHLE9BQU8sQ0FBQztRQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBQUMsQ0FPNUc7WUFFYSwyQkFBMkI7SUFnQ3pDLE9BQU8sQ0FBQyxRQUFRO1lBS0Ysb0JBQW9CO1lBMEZwQixjQUFjO0lBWTVCLE9BQU8sQ0FBQyxtQkFBbUI7WUFPYixrQkFBa0I7Q0FPakMifQ==
@@ -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,iCAAiC;IACzC,OAAO,CAAC,GAAG;IANb,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC;IAErD,YACU,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,QAAQ,EAChB,iCAAiC,EAAE,IAAI,CAAC,SAAS,EAAE,oCAAoC,CAAC,EACxF,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"}
@@ -10,13 +10,13 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
10
10
  */ export class TxProvider {
11
11
  txCollection;
12
12
  txPool;
13
- txValidator;
13
+ blockProposalTransactionValidator;
14
14
  log;
15
15
  instrumentation;
16
- constructor(txCollection, txPool, txValidator, log = createLogger('p2p:tx-collector'), client = getTelemetryClient()){
16
+ constructor(txCollection, txPool, blockProposalTransactionValidator, log = createLogger('p2p:tx-collector'), client = getTelemetryClient()){
17
17
  this.txCollection = txCollection;
18
18
  this.txPool = txPool;
19
- this.txValidator = txValidator;
19
+ this.blockProposalTransactionValidator = blockProposalTransactionValidator;
20
20
  this.log = log;
21
21
  this.instrumentation = new TxProviderInstrumentation(client, 'TxProvider');
22
22
  }
@@ -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
- await this.txValidator.validate(txs);
217
- await this.txPool.addTxs(txs);
217
+ await this.blockProposalTransactionValidator.validateTxsReceivedInBlockProposal(txs);
218
+ await this.txPool.addProtectedTxs(txs, blockHeader);
218
219
  }
219
220
  }
@@ -1,15 +1,14 @@
1
1
  import type { EpochCache } from '@aztec/epoch-cache';
2
2
  import { type Logger } from '@aztec/foundation/log';
3
3
  import type { WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
4
- import { P2PClientType } from '@aztec/stdlib/p2p';
5
4
  import type { P2PClient } from '../client/p2p_client.js';
6
5
  import type { P2PConfig } from '../config.js';
7
6
  import type { AttestationPool } from '../mem_pools/attestation_pool/attestation_pool.js';
8
- import type { TxPool } from '../mem_pools/tx_pool/index.js';
7
+ import type { TxPoolV2 } from '../mem_pools/tx_pool_v2/interfaces.js';
9
8
  import { type MockGossipSubNetwork } from './mock-pubsub.js';
10
9
  export interface MakeTestP2PClientOptions {
11
10
  mockAttestationPool: AttestationPool;
12
- mockTxPool: TxPool;
11
+ mockTxPool: TxPoolV2;
13
12
  mockEpochCache: EpochCache;
14
13
  mockWorldState: WorldStateSynchronizer;
15
14
  alwaysTrueVerifier?: boolean;
@@ -26,7 +25,7 @@ export interface MakeTestP2PClientOptions {
26
25
  * @param options - The options for the client.
27
26
  * @returns The created and already started client.
28
27
  */
29
- export declare function makeAndStartTestP2PClient(peerIdPrivateKey: string, port: number, peers: string[], options: MakeTestP2PClientOptions): Promise<P2PClient<P2PClientType.Full>>;
28
+ export declare function makeAndStartTestP2PClient(peerIdPrivateKey: string, port: number, peers: string[], options: MakeTestP2PClientOptions): Promise<P2PClient>;
30
29
  /**
31
30
  * Creates a single P2P client for testing purposes.
32
31
  * @param peerIdPrivateKey - The private key of the peer.
@@ -35,7 +34,7 @@ export declare function makeAndStartTestP2PClient(peerIdPrivateKey: string, port
35
34
  * @param options - The options for the client.
36
35
  * @returns The created client.
37
36
  */
38
- export declare function makeTestP2PClient(peerIdPrivateKey: string, port: number, peers: string[], { alwaysTrueVerifier, p2pBaseConfig, p2pConfigOverrides, mockAttestationPool, mockTxPool, mockEpochCache, mockWorldState, mockGossipSubNetwork, logger }: MakeTestP2PClientOptions): Promise<P2PClient<P2PClientType.Full>>;
37
+ export declare function makeTestP2PClient(peerIdPrivateKey: string, port: number, peers: string[], { alwaysTrueVerifier, p2pBaseConfig, p2pConfigOverrides, mockAttestationPool, mockTxPool, mockEpochCache, mockWorldState, mockGossipSubNetwork, logger }: MakeTestP2PClientOptions): Promise<P2PClient>;
39
38
  /**
40
39
  * Creates a number of P2P clients and immediately starts them for testing purposes.
41
40
  * @param numberOfPeers - The number of clients to create.
@@ -43,7 +42,7 @@ export declare function makeTestP2PClient(peerIdPrivateKey: string, port: number
43
42
  * @returns The created and started clients.
44
43
  */
45
44
  export declare function makeAndStartTestP2PClients(numberOfPeers: number, testConfig: MakeTestP2PClientOptions): Promise<{
46
- client: P2PClient<P2PClientType.Full>;
45
+ client: P2PClient;
47
46
  peerPrivateKey: string;
48
47
  port: number;
49
48
  enr: string;
@@ -55,10 +54,10 @@ export declare function makeAndStartTestP2PClients(numberOfPeers: number, testCo
55
54
  * @returns The created clients.
56
55
  */
57
56
  export declare function makeTestP2PClients(numberOfPeers: number, testConfig: MakeTestP2PClientOptions): Promise<{
58
- client: P2PClient<P2PClientType.Full>;
57
+ client: P2PClient;
59
58
  peerPrivateKey: string;
60
59
  port: number;
61
60
  enr: string;
62
61
  }[]>;
63
62
  export declare function startTestP2PClients(clients: P2PClient[]): Promise<void>;
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS10ZXN0LXAycC1jbGllbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL21ha2UtdGVzdC1wMnAtY2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFLbEUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHbEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBSTVELE9BQU8sRUFBRSxLQUFLLG9CQUFvQixFQUFrQyxNQUFNLGtCQUFrQixDQUFDO0FBRzdGLE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDO0lBQ3JDLFVBQVUsRUFBRSxNQUFNLENBQUM7SUFDbkIsY0FBYyxFQUFFLFVBQVUsQ0FBQztJQUMzQixjQUFjLEVBQUUsc0JBQXNCLENBQUM7SUFDdkMsa0JBQWtCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0IsYUFBYSxFQUFFLFNBQVMsQ0FBQztJQUN6QixrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEIsb0JBQW9CLENBQUMsRUFBRSxvQkFBb0IsQ0FBQztDQUM3QztBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0IseUJBQXlCLENBQzdDLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFDWixLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQ2YsT0FBTyxFQUFFLHdCQUF3QiwwQ0FNbEM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLGlCQUFpQixDQUNyQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQ3hCLElBQUksRUFBRSxNQUFNLEVBQ1osS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUNmLEVBQ0Usa0JBQXlCLEVBQ3pCLGFBQWEsRUFDYixrQkFBdUIsRUFDdkIsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixjQUFjLEVBQ2QsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixNQUF3QyxFQUN6QyxFQUFFLHdCQUF3QiwwQ0EyQzVCO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsMEJBQTBCLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsd0JBQXdCOzs7OztLQXVDM0c7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQixrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx3QkFBd0I7Ozs7O0tBZ0NuRztBQUVELHdCQUFzQixtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUc3RCJ9
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS10ZXN0LXAycC1jbGllbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL21ha2UtdGVzdC1wMnAtY2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFJbEUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUk5RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJdEUsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQWtDLE1BQU0sa0JBQWtCLENBQUM7QUFHN0YsTUFBTSxXQUFXLHdCQUF3QjtJQUN2QyxtQkFBbUIsRUFBRSxlQUFlLENBQUM7SUFDckMsVUFBVSxFQUFFLFFBQVEsQ0FBQztJQUNyQixjQUFjLEVBQUUsVUFBVSxDQUFDO0lBQzNCLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztJQUN2QyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUM3QixhQUFhLEVBQUUsU0FBUyxDQUFDO0lBQ3pCLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixvQkFBb0IsQ0FBQyxFQUFFLG9CQUFvQixDQUFDO0NBQzdDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQix5QkFBeUIsQ0FDN0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixJQUFJLEVBQUUsTUFBTSxFQUNaLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFDZixPQUFPLEVBQUUsd0JBQXdCLHNCQU1sQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFDWixLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQ2YsRUFDRSxrQkFBeUIsRUFDekIsYUFBYSxFQUNiLGtCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLE1BQXdDLEVBQ3pDLEVBQUUsd0JBQXdCLHNCQTBDNUI7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx3QkFBd0I7Ozs7O0tBdUMzRztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLHdCQUF3Qjs7Ozs7S0FnQ25HO0FBRUQsd0JBQXNCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBRzdEIn0=
@@ -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;AAIlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,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,sBAMlC;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,sBA0C5B;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"}
@@ -4,7 +4,6 @@ import { createLogger } from '@aztec/foundation/log';
4
4
  import { retryUntil } from '@aztec/foundation/retry';
5
5
  import { sleep } from '@aztec/foundation/sleep';
6
6
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
7
- import { P2PClientType } from '@aztec/stdlib/p2p';
8
7
  import { createP2PClient } from '../client/index.js';
9
8
  import { generatePeerIdPrivateKeys } from '../test-helpers/generate-peer-id-private-keys.js';
10
9
  import { getPorts } from './get-ports.js';
@@ -49,7 +48,7 @@ import { AlwaysFalseCircuitVerifier, AlwaysTrueCircuitVerifier } from './reqresp
49
48
  await l2BlockSource.createBlocks(100);
50
49
  const proofVerifier = alwaysTrueVerifier ? new AlwaysTrueCircuitVerifier() : new AlwaysFalseCircuitVerifier();
51
50
  const kvStore = await openTmpStore('test');
52
- const client = await createP2PClient(P2PClientType.Full, config, l2BlockSource, proofVerifier, mockWorldState, mockEpochCache, 'test-p2p-client', undefined, undefined, {
51
+ const client = await createP2PClient(config, l2BlockSource, proofVerifier, mockWorldState, mockEpochCache, 'test-p2p-client', undefined, undefined, {
53
52
  txPool: mockTxPool,
54
53
  attestationPool: mockAttestationPool,
55
54
  store: kvStore,
@@ -1,15 +1,38 @@
1
- import { P2PClientType } from '@aztec/stdlib/p2p';
2
1
  import type { GossipsubEvents, GossipsubMessage } from '@chainsafe/libp2p-gossipsub';
3
2
  import type { MsgIdStr, PeerIdStr, PublishOpts, TopicStr } from '@chainsafe/libp2p-gossipsub/types';
4
3
  import { type Libp2pStatus, type PeerId, type PublishResult, type TopicValidatorResult, TypedEventEmitter } from '@libp2p/interface';
4
+ import type { AddressManager, ConnectionManager } from '@libp2p/interface-internal';
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
  /**
9
12
  * Given a mock gossip sub network, returns a factory function that creates an instance LibP2PService connected to it.
10
13
  * Designed to be used in tests in P2PClientDeps.p2pServiceFactory.
11
14
  */
12
- export declare function getMockPubSubP2PServiceFactory<T extends P2PClientType>(network: MockGossipSubNetwork): (...args: Parameters<(typeof LibP2PService<T>)['new']>) => Promise<LibP2PService<T>>;
15
+ export declare function getMockPubSubP2PServiceFactory(network: MockGossipSubNetwork): (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService>;
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.
@@ -21,9 +44,13 @@ export declare class MockPubSub implements PubSubLibp2p {
21
44
  private gossipSub;
22
45
  constructor(peerId: PeerId, network: MockGossipSubNetwork);
23
46
  get services(): {
24
- pubsub: Pick<import("@chainsafe/libp2p-gossipsub").GossipSub, "addEventListener" | "direct" | "publish" | "removeEventListener" | "reportMessageValidationResult" | "subscribe"> & {
47
+ pubsub: Pick<import("@chainsafe/libp2p-gossipsub").GossipSub, "addEventListener" | "direct" | "getMeshPeers" | "publish" | "removeEventListener" | "reportMessageValidationResult" | "subscribe"> & {
25
48
  score: Pick<import("@chainsafe/libp2p-gossipsub/score").PeerScore, "score">;
26
49
  };
50
+ components: {
51
+ addressManager: AddressManager;
52
+ connectionManager: ConnectionManager;
53
+ };
27
54
  };
28
55
  start(): void | Promise<void>;
29
56
  stop(): void | Promise<void>;
@@ -42,6 +69,7 @@ declare class MockGossipSubService extends TypedEventEmitter<GossipsubEvents> im
42
69
  receive(msg: GossipsubMessage): void;
43
70
  subscribe(topic: TopicStr): void;
44
71
  reportMessageValidationResult(msgId: MsgIdStr, propagationSource: PeerIdStr, acceptance: TopicValidatorResult): void;
72
+ getMeshPeers(topic?: TopicStr): PeerIdStr[];
45
73
  }
46
74
  /**
47
75
  * Mock gossip sub network used for testing.
@@ -49,11 +77,14 @@ declare class MockGossipSubService extends TypedEventEmitter<GossipsubEvents> im
49
77
  */
50
78
  export declare class MockGossipSubNetwork {
51
79
  private peers;
80
+ private reqRespPeers;
52
81
  private nextMsgId;
53
82
  private logger;
54
83
  getPeers(): PeerId[];
55
84
  registerPeer(peer: MockGossipSubService): void;
85
+ registerReqRespPeer(peer: MockReqResp): void;
86
+ getReqRespPeers(): MockReqResp[];
56
87
  publishToPeers(topic: TopicStr, data: Uint8Array, sender: PeerId): void;
57
88
  }
58
89
  export {};
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1wdWJzdWIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LWhlbHBlcnMvbW9jay1wdWJzdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2xELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BHLE9BQU8sRUFDTCxLQUFLLFlBQVksRUFDakIsS0FBSyxNQUFNLEVBQ1gsS0FBSyxhQUFhLEVBQ2xCLEtBQUssb0JBQW9CLEVBQ3pCLGlCQUFpQixFQUNsQixNQUFNLG1CQUFtQixDQUFDO0FBSTNCLE9BQU8sRUFBNkQsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHaEgsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9DLEtBQUssZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTNEOzs7R0FHRztBQUNILHdCQUFnQiw4QkFBOEIsQ0FBQyxDQUFDLFNBQVMsYUFBYSxFQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEdBQzVCLENBQUMsR0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0F3Q3RGO0FBRUQ7Ozs7R0FJRztBQUNILHFCQUFhLFVBQVcsWUFBVyxZQUFZO0lBTXBDLE1BQU0sRUFBRSxNQUFNO0lBTGhCLE1BQU0sRUFBRSxZQUFZLENBQWE7SUFFeEMsT0FBTyxDQUFDLFNBQVMsQ0FBbUI7SUFFcEMsWUFDUyxNQUFNLEVBQUUsTUFBTSxFQUNyQixPQUFPLEVBQUUsb0JBQW9CLEVBRzlCO0lBRUQsSUFBSSxRQUFROzs7O01BSVg7SUFFRCxLQUFLLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHNUI7SUFDRCxJQUFJLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHM0I7Q0FDRjtBQUVELGNBQU0sb0JBQXFCLFNBQVEsaUJBQWlCLENBQUMsZUFBZSxDQUFFLFlBQVcsZ0JBQWdCO0lBTXRGLE1BQU0sRUFBRSxNQUFNO0lBQ3JCLE9BQU8sQ0FBQyxPQUFPO0lBTmpCLE9BQU8sQ0FBQyxNQUFNLENBQTJDO0lBQ2xELGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBYTtJQUNuRCxTQUFnQixNQUFNLGNBQXFCO0lBRTNDLFlBQ1MsTUFBTSxFQUFFLE1BQU0sRUFDYixPQUFPLEVBQUUsb0JBQW9CLEVBSXRDO0lBRUQsS0FBSzs7TUFFSDtJQUVGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FJdEY7SUFFRCxPQUFPLENBQUMsR0FBRyxFQUFFLGdCQUFnQixRQU01QjtJQUVELFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FHL0I7SUFFRCw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEdBQUcsSUFBSSxDQUtuSDtDQUNGO0FBRUQ7OztHQUdHO0FBQ0gscUJBQWEsb0JBQW9CO0lBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQThCO0lBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUs7SUFFdEIsT0FBTyxDQUFDLE1BQU0sQ0FBbUQ7SUFFMUQsUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUUxQjtJQUVNLFlBQVksQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEdBQUcsSUFBSSxDQUVwRDtJQUVNLGNBQWMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBZTdFO0NBQ0YifQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1wdWJzdWIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LWhlbHBlcnMvbW9jay1wdWJzdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEcsT0FBTyxFQUNMLEtBQUssWUFBWSxFQUNqQixLQUFLLE1BQU0sRUFDWCxLQUFLLGFBQWEsRUFDbEIsS0FBSyxvQkFBb0IsRUFDekIsaUJBQWlCLEVBQ2xCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJcEYsT0FBTyxFQUErQyxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdEcsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssZUFBZSxFQUNwQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHlCQUF5QixFQUM5QixLQUFLLDBCQUEwQixFQUMvQixLQUFLLDRCQUE0QixFQUNqQyxLQUFLLGNBQWMsRUFFcEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUcxQyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0MsS0FBSyxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFM0Q7OztHQUdHO0FBQ0gsd0JBQWdCLDhCQUE4QixDQUM1QyxPQUFPLEVBQUUsb0JBQW9C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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":"AAQA,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;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIpF,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,CAC5C,OAAO,EAAE,oBAAoB,GAC5B,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAsChF;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;;;;;;;;MAYX;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;IAED,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,EAAE,CAQ1C;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"}