@aztec/p2p 0.0.1-commit.001888fc → 0.0.1-commit.017a351

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 (403) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +1 -1
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +9 -1
  4. package/dest/client/factory.d.ts +4 -3
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +28 -23
  7. package/dest/client/interface.d.ts +14 -5
  8. package/dest/client/interface.d.ts.map +1 -1
  9. package/dest/client/p2p_client.d.ts +13 -9
  10. package/dest/client/p2p_client.d.ts.map +1 -1
  11. package/dest/client/p2p_client.js +78 -20
  12. package/dest/config.d.ts +135 -99
  13. package/dest/config.d.ts.map +1 -1
  14. package/dest/config.js +62 -7
  15. package/dest/errors/p2p-service.error.d.ts +9 -0
  16. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  17. package/dest/errors/p2p-service.error.js +10 -0
  18. package/dest/errors/reqresp.error.d.ts +1 -20
  19. package/dest/errors/reqresp.error.d.ts.map +1 -1
  20. package/dest/errors/reqresp.error.js +0 -21
  21. package/dest/index.d.ts +1 -2
  22. package/dest/index.d.ts.map +1 -1
  23. package/dest/index.js +0 -1
  24. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +99 -59
  25. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  26. package/dest/mem_pools/attestation_pool/attestation_pool.js +265 -199
  27. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  28. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  29. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +181 -65
  30. package/dest/mem_pools/attestation_pool/mocks.d.ts +1 -1
  31. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/mocks.js +6 -4
  33. package/dest/mem_pools/index.d.ts +1 -2
  34. package/dest/mem_pools/index.d.ts.map +1 -1
  35. package/dest/mem_pools/instrumentation.d.ts +1 -1
  36. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  37. package/dest/mem_pools/instrumentation.js +17 -1
  38. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +1 -5
  39. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -1
  40. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +1 -7
  41. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -1
  42. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  43. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -0
  44. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  45. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  46. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  47. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
  48. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +8 -5
  49. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  50. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +5 -2
  51. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  52. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +13 -6
  53. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +1 -1
  54. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  55. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +75 -84
  56. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +9 -3
  57. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  58. package/dest/msg_validators/attestation_validator/attestation_validator.js +37 -12
  59. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +7 -3
  60. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  61. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +4 -5
  62. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  63. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  64. package/dest/msg_validators/clock_tolerance.js +56 -3
  65. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -2
  66. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  67. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -2
  68. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  69. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +10 -2
  70. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  71. package/dest/msg_validators/proposal_validator/proposal_validator.js +46 -12
  72. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  73. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  74. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +8 -15
  75. package/dest/msg_validators/tx_validator/allowed_public_setup.js +3 -3
  76. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  77. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  78. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  79. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  80. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  81. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  82. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  83. package/dest/msg_validators/tx_validator/data_validator.d.ts +2 -1
  84. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  85. package/dest/msg_validators/tx_validator/data_validator.js +36 -2
  86. package/dest/msg_validators/tx_validator/factory.d.ts +6 -5
  87. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  88. package/dest/msg_validators/tx_validator/factory.js +21 -11
  89. package/dest/msg_validators/tx_validator/gas_validator.d.ts +36 -4
  90. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  91. package/dest/msg_validators/tx_validator/gas_validator.js +50 -33
  92. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  93. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  94. package/dest/msg_validators/tx_validator/index.js +2 -0
  95. package/dest/msg_validators/tx_validator/phases_validator.js +1 -1
  96. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +2 -1
  97. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  98. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -0
  99. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  100. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  101. package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
  102. package/dest/services/data_store.d.ts +1 -1
  103. package/dest/services/data_store.d.ts.map +1 -1
  104. package/dest/services/data_store.js +5 -5
  105. package/dest/services/discv5/discV5_service.d.ts +2 -1
  106. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  107. package/dest/services/discv5/discV5_service.js +35 -8
  108. package/dest/services/dummy_service.d.ts +11 -15
  109. package/dest/services/dummy_service.d.ts.map +1 -1
  110. package/dest/services/dummy_service.js +12 -16
  111. package/dest/services/encoding.d.ts +5 -1
  112. package/dest/services/encoding.d.ts.map +1 -1
  113. package/dest/services/encoding.js +7 -1
  114. package/dest/services/gossipsub/topic_score_params.d.ts +13 -2
  115. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  116. package/dest/services/gossipsub/topic_score_params.js +21 -4
  117. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  118. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  119. package/dest/services/libp2p/instrumentation.js +14 -0
  120. package/dest/services/libp2p/libp2p_service.d.ts +36 -46
  121. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  122. package/dest/services/libp2p/libp2p_service.js +272 -262
  123. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  124. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  125. package/dest/services/peer-manager/peer_manager.js +38 -10
  126. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  127. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  128. package/dest/services/peer-manager/peer_scoring.js +32 -10
  129. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +4 -14
  130. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  131. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +78 -100
  132. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +8 -6
  133. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  134. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +4 -4
  135. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  136. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +7 -7
  137. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +5 -14
  138. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -1
  139. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +6 -20
  140. package/dest/services/reqresp/config.d.ts +3 -3
  141. package/dest/services/reqresp/config.d.ts.map +1 -1
  142. package/dest/services/reqresp/interface.d.ts +16 -18
  143. package/dest/services/reqresp/interface.d.ts.map +1 -1
  144. package/dest/services/reqresp/interface.js +10 -20
  145. package/dest/services/reqresp/metrics.d.ts +1 -1
  146. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  147. package/dest/services/reqresp/metrics.js +0 -1
  148. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +4 -3
  149. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  150. package/dest/services/reqresp/protocols/block_txs/bitvector.js +3 -2
  151. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  152. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  153. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +31 -28
  154. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +12 -7
  155. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  156. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +42 -24
  157. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  158. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  159. package/dest/services/reqresp/protocols/index.js +0 -1
  160. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  161. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  162. package/dest/services/reqresp/protocols/tx.js +1 -3
  163. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  164. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  165. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  166. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  167. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  168. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  169. package/dest/services/reqresp/reqresp.d.ts +7 -29
  170. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  171. package/dest/services/reqresp/reqresp.js +41 -214
  172. package/dest/services/service.d.ts +9 -12
  173. package/dest/services/service.d.ts.map +1 -1
  174. package/dest/services/tx_collection/config.d.ts +2 -23
  175. package/dest/services/tx_collection/config.d.ts.map +1 -1
  176. package/dest/services/tx_collection/config.js +2 -55
  177. package/dest/services/tx_collection/file_store_tx_collection.d.ts +12 -28
  178. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -1
  179. package/dest/services/tx_collection/file_store_tx_collection.js +43 -83
  180. package/dest/services/tx_collection/file_store_tx_source.d.ts +5 -4
  181. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
  182. package/dest/services/tx_collection/file_store_tx_source.js +39 -29
  183. package/dest/services/tx_collection/index.d.ts +2 -3
  184. package/dest/services/tx_collection/index.d.ts.map +1 -1
  185. package/dest/services/tx_collection/index.js +0 -1
  186. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  187. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  188. package/dest/services/tx_collection/instrumentation.js +0 -2
  189. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  190. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  191. package/dest/services/tx_collection/request_tracker.js +84 -0
  192. package/dest/services/tx_collection/tx_collection.d.ts +36 -55
  193. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  194. package/dest/services/tx_collection/tx_collection.js +275 -119
  195. package/dest/services/tx_collection/tx_collection_sink.d.ts +1 -1
  196. package/dest/services/tx_collection/tx_collection_sink.js +2 -2
  197. package/dest/services/tx_collection/tx_source.d.ts +6 -5
  198. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  199. package/dest/services/tx_collection/tx_source.js +9 -7
  200. package/dest/services/tx_file_store/tx_file_store.d.ts +1 -3
  201. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
  202. package/dest/services/tx_file_store/tx_file_store.js +4 -14
  203. package/dest/services/tx_provider.d.ts +3 -1
  204. package/dest/services/tx_provider.d.ts.map +1 -1
  205. package/dest/services/tx_provider.js +3 -0
  206. package/dest/test-helpers/make-test-p2p-clients.d.ts +1 -1
  207. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  208. package/dest/test-helpers/make-test-p2p-clients.js +5 -2
  209. package/dest/test-helpers/mock-pubsub.d.ts +23 -9
  210. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  211. package/dest/test-helpers/mock-pubsub.js +44 -44
  212. package/dest/test-helpers/reqresp-nodes.d.ts +4 -5
  213. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  214. package/dest/test-helpers/reqresp-nodes.js +16 -18
  215. package/dest/test-helpers/test_tx_provider.d.ts +3 -1
  216. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -1
  217. package/dest/test-helpers/test_tx_provider.js +3 -0
  218. package/dest/test-helpers/testbench-utils.d.ts +12 -14
  219. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  220. package/dest/test-helpers/testbench-utils.js +38 -14
  221. package/dest/testbench/p2p_client_testbench_worker.d.ts +3 -5
  222. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  223. package/dest/testbench/p2p_client_testbench_worker.js +83 -38
  224. package/dest/testbench/worker_client_manager.d.ts +10 -6
  225. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  226. package/dest/testbench/worker_client_manager.js +51 -9
  227. package/dest/util.d.ts +11 -6
  228. package/dest/util.d.ts.map +1 -1
  229. package/dest/util.js +35 -14
  230. package/dest/versioning.d.ts +3 -6
  231. package/dest/versioning.d.ts.map +1 -1
  232. package/dest/versioning.js +3 -24
  233. package/package.json +15 -14
  234. package/src/bootstrap/bootstrap.ts +9 -1
  235. package/src/client/factory.ts +48 -23
  236. package/src/client/interface.ts +15 -11
  237. package/src/client/p2p_client.ts +91 -41
  238. package/src/client/test/{tx_proposal_collector/README.md → p2p_client.batch_tx_requester.bench.README.md} +23 -53
  239. package/src/config.ts +123 -6
  240. package/src/errors/p2p-service.error.ts +11 -0
  241. package/src/errors/reqresp.error.ts +0 -25
  242. package/src/index.ts +0 -1
  243. package/src/mem_pools/attestation_pool/attestation_pool.ts +316 -241
  244. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +204 -68
  245. package/src/mem_pools/attestation_pool/mocks.ts +13 -8
  246. package/src/mem_pools/index.ts +0 -3
  247. package/src/mem_pools/instrumentation.ts +5 -1
  248. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +1 -9
  249. package/src/mem_pools/tx_pool_v2/eviction/index.ts +1 -0
  250. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  251. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +3 -3
  252. package/src/mem_pools/tx_pool_v2/interfaces.ts +7 -4
  253. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +20 -8
  254. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +75 -90
  255. package/src/msg_validators/attestation_validator/README.md +1 -1
  256. package/src/msg_validators/attestation_validator/attestation_validator.ts +41 -9
  257. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +14 -7
  258. package/src/msg_validators/clock_tolerance.ts +73 -3
  259. package/src/msg_validators/proposal_validator/README.md +4 -4
  260. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +12 -2
  261. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +17 -2
  262. package/src/msg_validators/proposal_validator/proposal_validator.ts +54 -10
  263. package/src/msg_validators/tx_validator/README.md +11 -3
  264. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -12
  265. package/src/msg_validators/tx_validator/allowed_public_setup.ts +3 -3
  266. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  267. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  268. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  269. package/src/msg_validators/tx_validator/data_validator.ts +44 -1
  270. package/src/msg_validators/tx_validator/factory.ts +25 -7
  271. package/src/msg_validators/tx_validator/gas_validator.ts +82 -33
  272. package/src/msg_validators/tx_validator/index.ts +2 -0
  273. package/src/msg_validators/tx_validator/phases_validator.ts +1 -1
  274. package/src/msg_validators/tx_validator/tx_proof_validator.ts +2 -0
  275. package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
  276. package/src/services/data_store.ts +5 -13
  277. package/src/services/discv5/discV5_service.ts +38 -5
  278. package/src/services/dummy_service.ts +14 -39
  279. package/src/services/encoding.ts +9 -1
  280. package/src/services/gossipsub/topic_score_params.ts +36 -4
  281. package/src/services/libp2p/instrumentation.ts +14 -0
  282. package/src/services/libp2p/libp2p_service.ts +302 -300
  283. package/src/services/peer-manager/peer_manager.ts +44 -10
  284. package/src/services/peer-manager/peer_scoring.ts +27 -5
  285. package/src/services/reqresp/README.md +0 -14
  286. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  287. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +74 -112
  288. package/src/services/reqresp/batch-tx-requester/interface.ts +11 -5
  289. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +6 -6
  290. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +12 -25
  291. package/src/services/reqresp/config.ts +2 -2
  292. package/src/services/reqresp/interface.ts +21 -47
  293. package/src/services/reqresp/metrics.ts +0 -1
  294. package/src/services/reqresp/protocols/block_txs/bitvector.ts +3 -2
  295. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +34 -30
  296. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +47 -20
  297. package/src/services/reqresp/protocols/index.ts +0 -1
  298. package/src/services/reqresp/protocols/tx.ts +1 -3
  299. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  300. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  301. package/src/services/reqresp/reqresp.ts +45 -260
  302. package/src/services/service.ts +12 -28
  303. package/src/services/tx_collection/config.ts +3 -80
  304. package/src/services/tx_collection/file_store_tx_collection.ts +54 -103
  305. package/src/services/tx_collection/file_store_tx_source.ts +43 -31
  306. package/src/services/tx_collection/index.ts +1 -6
  307. package/src/services/tx_collection/instrumentation.ts +1 -7
  308. package/src/services/tx_collection/request_tracker.ts +127 -0
  309. package/src/services/tx_collection/tx_collection.ts +331 -176
  310. package/src/services/tx_collection/tx_collection_sink.ts +2 -2
  311. package/src/services/tx_collection/tx_source.ts +8 -7
  312. package/src/services/tx_file_store/tx_file_store.ts +5 -17
  313. package/src/services/tx_provider.ts +5 -0
  314. package/src/test-helpers/make-test-p2p-clients.ts +3 -0
  315. package/src/test-helpers/mock-pubsub.ts +46 -60
  316. package/src/test-helpers/reqresp-nodes.ts +12 -22
  317. package/src/test-helpers/test_tx_provider.ts +5 -0
  318. package/src/test-helpers/testbench-utils.ts +50 -28
  319. package/src/testbench/p2p_client_testbench_worker.ts +87 -54
  320. package/src/testbench/worker_client_manager.ts +59 -20
  321. package/src/util.ts +32 -17
  322. package/src/versioning.ts +3 -33
  323. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +0 -2
  324. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +0 -1
  325. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +0 -304
  326. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +0 -73
  327. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +0 -1
  328. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +0 -8
  329. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  330. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  331. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  332. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  333. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  334. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  335. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  336. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  337. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  338. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  339. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  340. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -123
  341. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  342. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  343. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
  344. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  345. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  346. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  347. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  348. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  349. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  350. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  351. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  352. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  353. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  354. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  355. package/dest/mem_pools/tx_pool/index.js +0 -2
  356. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  357. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  358. package/dest/mem_pools/tx_pool/priority.js +0 -15
  359. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  360. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  361. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  362. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  363. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  364. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -402
  365. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -64
  366. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  367. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -151
  368. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  369. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  370. package/dest/services/reqresp/protocols/block.js +0 -32
  371. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -54
  372. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  373. package/dest/services/tx_collection/fast_tx_collection.js +0 -327
  374. package/dest/services/tx_collection/missing_txs_tracker.d.ts +0 -32
  375. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +0 -1
  376. package/dest/services/tx_collection/missing_txs_tracker.js +0 -27
  377. package/dest/services/tx_collection/proposal_tx_collector.d.ts +0 -49
  378. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +0 -1
  379. package/dest/services/tx_collection/proposal_tx_collector.js +0 -50
  380. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -57
  381. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  382. package/dest/services/tx_collection/slow_tx_collection.js +0 -211
  383. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +0 -345
  384. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +0 -43
  385. package/src/mem_pools/tx_pool/README.md +0 -270
  386. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  387. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  388. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  389. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -163
  390. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  391. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  392. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  393. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  394. package/src/mem_pools/tx_pool/index.ts +0 -2
  395. package/src/mem_pools/tx_pool/priority.ts +0 -20
  396. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  397. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -321
  398. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -161
  399. package/src/services/reqresp/protocols/block.ts +0 -37
  400. package/src/services/tx_collection/fast_tx_collection.ts +0 -387
  401. package/src/services/tx_collection/missing_txs_tracker.ts +0 -52
  402. package/src/services/tx_collection/proposal_tx_collector.ts +0 -113
  403. package/src/services/tx_collection/slow_tx_collection.ts +0 -266
@@ -1,18 +1,18 @@
1
1
  import { chunkWrapAround } from '@aztec/foundation/collection';
2
- import { TimeoutError } from '@aztec/foundation/error';
3
2
  import { createLogger } from '@aztec/foundation/log';
4
3
  import { FifoMemoryQueue, Semaphore } from '@aztec/foundation/queue';
5
4
  import { sleep } from '@aztec/foundation/sleep';
6
- import { DateProvider, executeTimeout } from '@aztec/foundation/timer';
5
+ import { DateProvider } from '@aztec/foundation/timer';
7
6
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
8
7
  import { TxHash } from '@aztec/stdlib/tx';
8
+ import { strict as assert } from 'assert';
9
9
  import { ReqRespSubProtocol } from '.././interface.js';
10
10
  import { BlockTxsRequest, BlockTxsResponse } from '.././protocols/index.js';
11
11
  import { ReqRespStatus } from '.././status.js';
12
12
  import { DEFAULT_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD, DEFAULT_BATCH_TX_REQUESTER_DUMB_PARALLEL_WORKER_COUNT, DEFAULT_BATCH_TX_REQUESTER_SMART_PARALLEL_WORKER_COUNT, DEFAULT_BATCH_TX_REQUESTER_TX_BATCH_SIZE } from './config.js';
13
13
  import { MissingTxMetadataCollection } from './missing_txs.js';
14
14
  import { PeerCollection } from './peer_collection.js';
15
- import { BatchRequestTxValidator } from './tx_validator.js';
15
+ import { createBatchRequestTxValidator } from './tx_validator.js';
16
16
  /*
17
17
  * Tries to fetch all missing transaction until deadline is hit.
18
18
  * Transactions are yield by calling run*() method
@@ -30,78 +30,64 @@ import { BatchRequestTxValidator } from './tx_validator.js';
30
30
  * - Bad peer:
31
31
  * - Is the peer which was unable to send us successful response N times in a row
32
32
  * */ export class BatchTxRequester {
33
+ requestTracker;
33
34
  blockTxsSource;
34
35
  pinnedPeer;
35
- timeoutMs;
36
36
  p2pService;
37
37
  logger;
38
- dateProvider;
39
38
  opts;
40
39
  peers;
41
40
  txsMetadata;
42
- deadline;
43
41
  smartRequesterSemaphore;
44
42
  txQueue;
45
43
  txValidator;
46
44
  smartParallelWorkerCount;
47
45
  dumbParallelWorkerCount;
48
46
  txBatchSize;
49
- constructor(missingTxsTracker, blockTxsSource, pinnedPeer, timeoutMs, p2pService, logger, dateProvider, opts){
47
+ constructor(requestTracker, blockTxsSource, pinnedPeer, p2pService, logger, dateProvider, opts){
48
+ this.requestTracker = requestTracker;
50
49
  this.blockTxsSource = blockTxsSource;
51
50
  this.pinnedPeer = pinnedPeer;
52
- this.timeoutMs = timeoutMs;
53
51
  this.p2pService = p2pService;
54
52
  this.logger = logger ?? createLogger('p2p:reqresp_batch');
55
- this.dateProvider = dateProvider ?? new DateProvider();
56
53
  this.opts = opts ?? {};
57
54
  this.smartParallelWorkerCount = this.opts.smartParallelWorkerCount ?? DEFAULT_BATCH_TX_REQUESTER_SMART_PARALLEL_WORKER_COUNT;
58
55
  this.dumbParallelWorkerCount = this.opts.dumbParallelWorkerCount ?? DEFAULT_BATCH_TX_REQUESTER_DUMB_PARALLEL_WORKER_COUNT;
59
56
  this.txBatchSize = this.opts.txBatchSize ?? DEFAULT_BATCH_TX_REQUESTER_TX_BATCH_SIZE;
60
- this.deadline = this.dateProvider.now() + this.timeoutMs;
61
57
  this.txQueue = new FifoMemoryQueue(this.logger);
62
- this.txValidator = this.opts.txValidator ?? new BatchRequestTxValidator(this.p2pService.txValidatorConfig);
58
+ this.txValidator = this.opts.txValidator ?? createBatchRequestTxValidator(this.p2pService.txValidatorConfig);
63
59
  if (this.opts.peerCollection) {
64
60
  this.peers = this.opts.peerCollection;
65
61
  } else {
66
62
  const badPeerThreshold = this.opts.badPeerThreshold ?? DEFAULT_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD;
67
- this.peers = new PeerCollection(this.p2pService.connectionSampler, this.pinnedPeer, this.dateProvider, badPeerThreshold, this.p2pService.peerScoring);
63
+ this.peers = new PeerCollection(this.p2pService.connectionSampler, this.pinnedPeer, dateProvider ?? new DateProvider(), badPeerThreshold, this.p2pService.peerScoring);
68
64
  }
69
- this.txsMetadata = new MissingTxMetadataCollection(missingTxsTracker, this.txBatchSize);
65
+ this.txsMetadata = new MissingTxMetadataCollection(requestTracker, this.txBatchSize);
70
66
  this.smartRequesterSemaphore = this.opts.semaphore ?? new Semaphore(0);
71
67
  }
72
68
  /*
73
- * Fetches all missing transactions and yields them one by one
69
+ * Fetches all missing transactions and yields them one by one
74
70
  * */ async *run() {
75
- // Our timeout is represented in milliseconds but queue expects seconds
76
- // We also want to make sure we wait at least 1 second in case of very low timeouts
77
- const timeoutQueueAfter = Math.max(Math.ceil(this.timeoutMs / 1_000), 1);
78
71
  try {
79
72
  if (this.txsMetadata.getMissingTxHashes().size === 0) {
80
73
  return undefined;
81
74
  }
82
- // Start workers in background
83
- const workersPromise = executeTimeout(()=>Promise.allSettled([
84
- this.smartRequester(),
85
- this.dumbRequester(),
86
- this.pinnedPeerRequester()
87
- ]), this.timeoutMs).finally(()=>{
75
+ // Start workers in background. Workers stop themselves via requestTracker.checkCancelled().
76
+ const workersPromise = Promise.allSettled([
77
+ this.smartRequester(),
78
+ this.dumbRequester(),
79
+ this.pinnedPeerRequester()
80
+ ]).finally(()=>{
88
81
  this.txQueue.end();
89
82
  });
83
+ // Yield txs as workers put them on the queue. The queue's end() drains remaining items
84
+ // before returning null, so we don't lose any txs.
90
85
  while(true){
91
- const tx = await this.txQueue.get(timeoutQueueAfter);
92
- // null indicates that the queue has ended
86
+ const tx = await this.txQueue.get();
93
87
  if (tx === null) {
94
88
  break;
95
89
  }
96
90
  yield tx;
97
- if (this.shouldStop()) {
98
- // Drain queue before ending
99
- let remaining;
100
- while((remaining = this.txQueue.getImmediate()) !== undefined){
101
- yield remaining;
102
- }
103
- break;
104
- }
105
91
  }
106
92
  this.unlockSmartRequesterSemaphores();
107
93
  await workersPromise;
@@ -280,7 +266,13 @@ import { BatchRequestTxValidator } from './tx_validator.js';
280
266
  * */ async smartWorkerLoop(pickNextPeer, request, workerIndex) {
281
267
  try {
282
268
  this.logger.trace(`Smart worker ${workerIndex} started`);
283
- await executeTimeout((_)=>this.smartRequesterSemaphore.acquire(), this.timeoutMs);
269
+ await Promise.race([
270
+ this.smartRequesterSemaphore.acquire(),
271
+ this.requestTracker.cancellationToken
272
+ ]);
273
+ if (this.requestTracker.checkCancelled()) {
274
+ return;
275
+ }
284
276
  this.logger.trace(`Smart worker ${workerIndex} acquired semaphore`);
285
277
  while(!this.shouldStop()){
286
278
  const peerId = pickNextPeer();
@@ -301,7 +293,13 @@ import { BatchRequestTxValidator } from './tx_validator.js';
301
293
  //
302
294
  // When a dumb peer responds with valid txIndices, it gets
303
295
  // promoted to smart and releases the semaphore, waking this worker.
304
- await executeTimeout((_)=>this.smartRequesterSemaphore.acquire(), this.timeoutMs);
296
+ await Promise.race([
297
+ this.smartRequesterSemaphore.acquire(),
298
+ this.requestTracker.cancellationToken
299
+ ]);
300
+ if (this.requestTracker.checkCancelled()) {
301
+ break;
302
+ }
305
303
  this.logger.debug(`Worker loop smart: acquired next smart peer`);
306
304
  continue;
307
305
  }
@@ -324,11 +322,7 @@ import { BatchRequestTxValidator } from './tx_validator.js';
324
322
  });
325
323
  }
326
324
  } catch (err) {
327
- if (err instanceof TimeoutError) {
328
- this.logger.debug(`Smart worker ${workerIndex} timed out waiting for semaphore`);
329
- } else {
330
- this.logger.error(`Smart worker ${workerIndex} encountered an error: ${err}`);
331
- }
325
+ this.logger.error(`Smart worker ${workerIndex} encountered an error: ${err}`);
332
326
  } finally{
333
327
  this.logger.debug(`Smart worker ${workerIndex} finished`);
334
328
  }
@@ -348,6 +342,13 @@ import { BatchRequestTxValidator } from './tx_validator.js';
348
342
  return;
349
343
  }
350
344
  const blockResponse = BlockTxsResponse.fromBuffer(response.data);
345
+ // Validate response. Peers will be penalised by the validator if they send invalid response.
346
+ const isValid = await this.p2pService.validateRequestedBlockTxsConsistency(request, blockResponse, peerId);
347
+ if (!isValid) {
348
+ this.logger.debug(`Peer ${peerId.toString()} sent invalid response`);
349
+ this.handleFailResponseFromPeer(peerId, ReqRespStatus.INTERNAL_ERROR);
350
+ return;
351
+ }
351
352
  await this.handleSuccessResponseFromPeer(peerId, blockResponse);
352
353
  } catch (err) {
353
354
  this.logger.error(`Failed to get valid response from peer ${peerId.toString()}: ${err.message}`, {
@@ -363,24 +364,23 @@ import { BatchRequestTxValidator } from './tx_validator.js';
363
364
  * Handles failed response form the peer
364
365
  * There are 3 scenarios
365
366
  * - RATE_LIMIT_EXCEEDED: We mark this and don't query this peer again for some_time
367
+ * - INTERNAL_ERROR: We use this to cover cases where the request-response consistency validation fails.
366
368
  * - FAILURE and UNKNOWN: We penalise this, if peer has been penalised this way N times they are not queried again
367
369
  * this implies we will query these peers couple of more times and give them a chance to "redeem" themselves before completely ignoring them
368
370
  */ handleFailResponseFromPeer(peerId, responseStatus) {
369
- if (responseStatus === ReqRespStatus.FAILURE || responseStatus === ReqRespStatus.UNKNOWN) {
370
- this.peers.penalisePeer(peerId, PeerErrorSeverity.HighToleranceError);
371
- this.peers.markPeerDumb(peerId);
372
- this.txsMetadata.clearPeerData(peerId);
373
- return;
374
- }
375
- // NOT_FOUND means the peer pruned its block proposal — it can no longer serve
376
- // index-based requests, but this is a legitimate state so we don't penalize.
377
- if (responseStatus === ReqRespStatus.NOT_FOUND) {
378
- this.peers.markPeerDumb(peerId);
379
- this.txsMetadata.clearPeerData(peerId);
380
- return;
381
- }
382
- if (responseStatus === ReqRespStatus.RATE_LIMIT_EXCEEDED) {
383
- this.peers.markPeerRateLimitExceeded(peerId);
371
+ switch(responseStatus){
372
+ case ReqRespStatus.RATE_LIMIT_EXCEEDED:
373
+ this.peers.markPeerRateLimitExceeded(peerId);
374
+ return;
375
+ case ReqRespStatus.INTERNAL_ERROR:
376
+ this.peers.markPeerDumb(peerId);
377
+ this.txsMetadata.clearPeerData(peerId);
378
+ return;
379
+ default:
380
+ this.peers.penalisePeer(peerId, PeerErrorSeverity.HighToleranceError);
381
+ this.peers.markPeerDumb(peerId);
382
+ this.txsMetadata.clearPeerData(peerId);
383
+ return;
384
384
  }
385
385
  }
386
386
  /*
@@ -396,16 +396,16 @@ import { BatchRequestTxValidator } from './tx_validator.js';
396
396
  * Handles received txs.
397
397
  * Transactions are validated and then put on async queue
398
398
  * to be yielded by main running loop
399
- * */ async handleReceivedTxs(peerId, txs) {
399
+ */ async handleReceivedTxs(peerId, txs) {
400
400
  const newTxs = txs.filter((tx)=>!this.txsMetadata.alreadyFetched(tx.txHash));
401
401
  if (newTxs.length === 0) {
402
402
  return;
403
403
  }
404
- //TODO: this validation can be slow, maybe spawn worker just for validation
404
+ // TODO: this validation can be slow, maybe spawn worker just for validation
405
405
  // We could use the async queue for communication.
406
406
  const validationResults = await Promise.allSettled(newTxs.map(async (tx)=>({
407
407
  tx,
408
- isValid: (await this.txValidator.validateRequestedTx(tx)).result === 'valid'
408
+ isValid: (await this.txValidator.validateTx(tx)).result === 'valid'
409
409
  })));
410
410
  let hasInvalidTx = false;
411
411
  validationResults.forEach((result)=>{
@@ -418,6 +418,9 @@ import { BatchRequestTxValidator } from './tx_validator.js';
418
418
  }
419
419
  });
420
420
  if (hasInvalidTx) {
421
+ this.logger.warn(`Penalizing peer ${peerId.toString()} for sending invalid transactions in batch response`, {
422
+ peerId
423
+ });
421
424
  this.peers.penalisePeer(peerId, PeerErrorSeverity.LowToleranceError);
422
425
  } else {
423
426
  // If we have received successful response from the peer, they have "redeemed" themselves and not considered bad anymore
@@ -445,9 +448,10 @@ import { BatchRequestTxValidator } from './tx_validator.js';
445
448
  if (smartPeersAreDisabled) {
446
449
  return;
447
450
  }
448
- const hasArchiveRootMismatch = this.blockTxsSource.archive.toString() !== response.archiveRoot.toString();
449
- if (hasArchiveRootMismatch) {
450
- this.handleArchiveRootMismatch(peerId, response);
451
+ // If the peer doesn't have the block, we mark them as dumb.
452
+ if (!response.peerHasBlock()) {
453
+ this.peers.markPeerDumb(peerId);
454
+ this.txsMetadata.clearPeerData(peerId);
451
455
  return;
452
456
  }
453
457
  // We mark peer as "smart" only if they have some txs we are missing
@@ -461,18 +465,6 @@ import { BatchRequestTxValidator } from './tx_validator.js';
461
465
  // Unblock smart workers
462
466
  this.smartRequesterSemaphore.release();
463
467
  }
464
- /**
465
- * Handles an archive root mismatch between local state and peer response.
466
- *
467
- * - Response archive is Fr.ZERO (peer pruned proposal, legitimate): marks peer dumb.
468
- * - Non-zero archive mismatch (malicious response): penalises + marks dumb.
469
- */ handleArchiveRootMismatch(peerId, response) {
470
- if (!response.archiveRoot.isZero()) {
471
- this.peers.penalisePeer(peerId, PeerErrorSeverity.LowToleranceError);
472
- }
473
- this.peers.markPeerDumb(peerId);
474
- this.txsMetadata.clearPeerData(peerId);
475
- }
476
468
  peerHasSomeTxsWeAreMissing(_peerId, response) {
477
469
  if (response.txIndices.isEmpty()) {
478
470
  return false;
@@ -486,14 +478,9 @@ import { BatchRequestTxValidator } from './tx_validator.js';
486
478
  this.txsMetadata.markPeerHas(peerId, txsPeerHas);
487
479
  }
488
480
  extractHashesPeerHasFromResponse(response) {
489
- const hashes = [];
490
- const indicesOfHashesPeerHas = new Set(response.txIndices.getTrueIndices());
491
- this.blockTxsSource.txHashes.forEach((hash, idx)=>{
492
- if (indicesOfHashesPeerHas.has(idx)) {
493
- hashes.push(hash);
494
- }
495
- });
496
- return hashes;
481
+ // Should already have been validated, but just in case.
482
+ assert(response.txIndices.getLength() === this.blockTxsSource.txHashes.length);
483
+ return response.txIndices.getTrueIndices().map((idx)=>this.blockTxsSource.txHashes[idx]);
497
484
  }
498
485
  /*
499
486
  * Helper function to crate round robin indexer -
@@ -517,23 +504,12 @@ import { BatchRequestTxValidator } from './tx_validator.js';
517
504
  };
518
505
  }
519
506
  /*
520
- * @returns true if all missing txs have been fetched */ fetchedAllTxs() {
521
- return this.txsMetadata.getMissingTxHashes().size == 0;
522
- }
523
- /*
524
- * Checks if the BatchTxRequester should stop fetching missing txs
525
- * Conditions for stopping are:
526
- * - There have been no missing transactions to start with
527
- * - All transactions have been fetched
528
- * - The deadline has been hit (no more time to fetch)
529
- * - This process has been cancelled via abortSignal
530
- *
531
- * @returns true if BatchTxRequester should stop, otherwise false*/ shouldStop() {
532
- const aborted = this.opts.abortSignal?.aborted ?? false;
533
- if (aborted) {
507
+ * Checks if the BatchTxRequester should stop fetching missing txs.
508
+ * Delegates to requestTracker which covers: deadline hit, all txs fetched, or external cancellation. */ shouldStop() {
509
+ if (this.requestTracker.checkCancelled()) {
534
510
  this.unlockSmartRequesterSemaphores();
535
511
  }
536
- return aborted || this.fetchedAllTxs() || this.dateProvider.now() > this.deadline;
512
+ return this.requestTracker.checkCancelled();
537
513
  }
538
514
  /*
539
515
  * Helper function which unlocks all smart requester semaphores
@@ -547,10 +523,12 @@ import { BatchRequestTxValidator } from './tx_validator.js';
547
523
  * Sleeps for the given duration, but clamped to the deadline.
548
524
  * This ensures we don't sleep past the deadline.
549
525
  * */ async sleepClampedToDeadline(durationMs) {
550
- const remaining = this.deadline - this.dateProvider.now();
551
- const thereIsTimeRemaining = remaining > 0;
552
- if (thereIsTimeRemaining) {
553
- await sleep(Math.min(durationMs, remaining));
526
+ if (this.requestTracker.checkCancelled()) {
527
+ return;
554
528
  }
529
+ await Promise.race([
530
+ sleep(durationMs),
531
+ this.requestTracker.cancellationToken
532
+ ]);
555
533
  }
556
534
  }
@@ -1,11 +1,12 @@
1
1
  import type { ISemaphore } from '@aztec/foundation/queue';
2
2
  import type { PeerErrorSeverity } from '@aztec/stdlib/p2p';
3
- import type { Tx, TxHash } from '@aztec/stdlib/tx';
3
+ import type { Tx, TxHash, TxValidator } from '@aztec/stdlib/tx';
4
4
  import type { PeerId } from '@libp2p/interface';
5
5
  import type { ConnectionSampler } from '../connection-sampler/connection_sampler.js';
6
+ import type { BlockTxsRequest, BlockTxsResponse } from '../index.js';
6
7
  import type { ReqRespInterface } from '../interface.js';
7
8
  import type { IPeerCollection } from './peer_collection.js';
8
- import type { BatchRequestTxValidatorConfig, IBatchRequestTxValidator } from './tx_validator.js';
9
+ import type { BatchRequestTxValidatorConfig } from './tx_validator.js';
9
10
  export interface IPeerPenalizer {
10
11
  penalizePeer(peerId: PeerId, penalty: PeerErrorSeverity): void;
11
12
  }
@@ -26,13 +27,15 @@ export interface ITxMetadataCollection {
26
27
  */
27
28
  export interface BatchTxRequesterLibP2PService {
28
29
  /** ReqResp interface for sending requests to peers */
29
- reqResp: Pick<ReqRespInterface, 'sendBatchRequest' | 'sendRequestToPeer'>;
30
+ reqResp: Pick<ReqRespInterface, 'sendRequestToPeer'>;
30
31
  /** Connection sampler for getting peer lists */
31
32
  connectionSampler: Pick<ConnectionSampler, 'getPeerListSortedByConnectionCountAsc'>;
32
33
  /** Configuration needed for transaction validation */
33
34
  txValidatorConfig: BatchRequestTxValidatorConfig;
34
35
  /** Peer scoring for penalizing peers */
35
36
  peerScoring: IPeerPenalizer;
37
+ /** Validate the requested block transactions request-response consistency */
38
+ validateRequestedBlockTxsConsistency: (request: BlockTxsRequest, response: BlockTxsResponse, peerId: PeerId) => Promise<boolean>;
36
39
  }
37
40
  export interface BatchTxRequesterOptions {
38
41
  smartParallelWorkerCount?: number;
@@ -41,8 +44,7 @@ export interface BatchTxRequesterOptions {
41
44
  badPeerThreshold?: number;
42
45
  semaphore?: ISemaphore;
43
46
  peerCollection?: IPeerCollection;
44
- abortSignal?: AbortSignal;
45
47
  /** Optional tx validator for testing - if not provided, one is created from p2pService.txValidatorConfig */
46
- txValidator?: IBatchRequestTxValidator;
48
+ txValidator?: TxValidator;
47
49
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9iYXRjaC10eC1yZXF1ZXN0ZXIvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpHLE1BQU0sV0FBVyxjQUFjO0lBQzdCLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Q0FDaEU7QUFFRCxNQUFNLFdBQVcscUJBQXFCO0lBQ3BDLGtCQUFrQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM3QywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ25ELGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNwQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUM5QywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNqRCxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFFeEMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztJQUN0RCw0RkFBNEY7SUFDNUYsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0NBQ3JDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsNkJBQTZCO0lBQzVDLHNEQUFzRDtJQUN0RCxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDLENBQUM7SUFDMUUsZ0RBQWdEO0lBQ2hELGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDO0lBQ3BGLHNEQUFzRDtJQUN0RCxpQkFBaUIsRUFBRSw2QkFBNkIsQ0FBQztJQUNqRCx3Q0FBd0M7SUFDeEMsV0FBVyxFQUFFLGNBQWMsQ0FBQztDQUM3QjtBQUVELE1BQU0sV0FBVyx1QkFBdUI7SUFDdEMsd0JBQXdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbEMsdUJBQXVCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDakMsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRTFCLFNBQVMsQ0FBQyxFQUFFLFVBQVUsQ0FBQztJQUN2QixjQUFjLENBQUMsRUFBRSxlQUFlLENBQUM7SUFDakMsV0FBVyxDQUFDLEVBQUUsV0FBVyxDQUFDO0lBQzFCLDRHQUE0RztJQUM1RyxXQUFXLENBQUMsRUFBRSx3QkFBd0IsQ0FBQztDQUN4QyJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9iYXRjaC10eC1yZXF1ZXN0ZXIvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdkUsTUFBTSxXQUFXLGNBQWM7SUFDN0IsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixHQUFHLElBQUksQ0FBQztDQUNoRTtBQUVELE1BQU0sV0FBVyxxQkFBcUI7SUFDcEMsa0JBQWtCLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzdDLDBCQUEwQixDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDbkQsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQzlDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2pELGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUV4QyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3RELDRGQUE0RjtJQUM1RixhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUM7Q0FDckM7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyw2QkFBNkI7SUFDNUMsc0RBQXNEO0lBQ3RELE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNyRCxnREFBZ0Q7SUFDaEQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLHVDQUF1QyxDQUFDLENBQUM7SUFDcEYsc0RBQXNEO0lBQ3RELGlCQUFpQixFQUFFLDZCQUE2QixDQUFDO0lBQ2pELHdDQUF3QztJQUN4QyxXQUFXLEVBQUUsY0FBYyxDQUFDO0lBQzVCLDZFQUE2RTtJQUM3RSxvQ0FBb0MsRUFBRSxDQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUN4QixRQUFRLEVBQUUsZ0JBQWdCLEVBQzFCLE1BQU0sRUFBRSxNQUFNLEtBQ1gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0NBQ3ZCO0FBRUQsTUFBTSxXQUFXLHVCQUF1QjtJQUN0Qyx3QkFBd0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQyx1QkFBdUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNqQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDckIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFMUIsU0FBUyxDQUFDLEVBQUUsVUFBVSxDQUFDO0lBQ3ZCLGNBQWMsQ0FBQyxFQUFFLGVBQWUsQ0FBQztJQUNqQyw0R0FBNEc7SUFDNUcsV0FBVyxDQUFDLEVBQUUsV0FBVyxDQUFDO0NBQzNCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAC7C,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAExC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtD,4FAA4F;IAC5F,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,sDAAsD;IACtD,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;IAC1E,gDAAgD;IAChD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,uCAAuC,CAAC,CAAC;IACpF,sDAAsD;IACtD,iBAAiB,EAAE,6BAA6B,CAAC;IACjD,wCAAwC;IACxC,WAAW,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4GAA4G;IAC5G,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAC7C,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAExC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtD,4FAA4F;IAC5F,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,sDAAsD;IACtD,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACrD,gDAAgD;IAChD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,uCAAuC,CAAC,CAAC;IACpF,sDAAsD;IACtD,iBAAiB,EAAE,6BAA6B,CAAC;IACjD,wCAAwC;IACxC,WAAW,EAAE,cAAc,CAAC;IAC5B,6EAA6E;IAC7E,oCAAoC,EAAE,CACpC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,4GAA4G;IAC5G,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B"}
@@ -1,6 +1,6 @@
1
1
  import { type Tx, TxHash } from '@aztec/stdlib/tx';
2
2
  import type { PeerId } from '@libp2p/interface';
3
- import type { IMissingTxsTracker } from '../../tx_collection/missing_txs_tracker.js';
3
+ import type { IRequestTracker } from '../../tx_collection/request_tracker.js';
4
4
  import type { ITxMetadataCollection } from './interface.js';
5
5
  declare class MissingTxMetadata {
6
6
  readonly txHash: string;
@@ -15,10 +15,10 @@ declare class MissingTxMetadata {
15
15
  isInFlight(): boolean;
16
16
  }
17
17
  export declare class MissingTxMetadataCollection implements ITxMetadataCollection {
18
- private missingTxsTracker;
18
+ private requestTracker;
19
19
  private readonly txBatchSize;
20
20
  private txMetadata;
21
- constructor(missingTxsTracker: IMissingTxsTracker, txBatchSize?: number);
21
+ constructor(requestTracker: IRequestTracker, txBatchSize?: number);
22
22
  getPrioritizingNotInFlightAndLowerRequestCount(txs: string[]): MissingTxMetadata[];
23
23
  getMissingTxHashes(): Set<string>;
24
24
  getTxsPeerHas(peer: PeerId): Set<string>;
@@ -32,4 +32,4 @@ export declare class MissingTxMetadataCollection implements ITxMetadataCollectio
32
32
  clearPeerData(peerId: PeerId): void;
33
33
  }
34
34
  export {};
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzc2luZ190eHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL2JhdGNoLXR4LXJlcXVlc3Rlci9taXNzaW5nX3R4cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVyRixPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELGNBQU0saUJBQWlCO2FBRUgsTUFBTSxFQUFFLE1BQU07SUFDdkIsY0FBYztJQUNkLGFBQWE7SUFDYixFQUFFLEVBQUUsRUFBRSxHQUFHLFNBQVM7YUFDVCxLQUFLO0lBTHZCLFlBQ2tCLE1BQU0sRUFBRSxNQUFNLEVBQ3ZCLGNBQWMsU0FBSSxFQUNsQixhQUFhLFNBQUksRUFDakIsRUFBRSxHQUFFLEVBQUUsR0FBRyxTQUFxQixFQUNyQixLQUFLLGNBQW9CLEVBQ3ZDO0lBRUcsZUFBZSxTQUVyQjtJQUVNLFlBQVksU0FFbEI7SUFFTSxlQUFlLFNBRXJCO0lBRU0sVUFBVSxJQUFJLE9BQU8sQ0FFM0I7Q0FDRjtBQU9ELHFCQUFhLDJCQUE0QixZQUFXLHFCQUFxQjtJQUlyRSxPQUFPLENBQUMsaUJBQWlCO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUo5QixPQUFPLENBQUMsVUFBVSxDQUF3QztJQUUxRCxZQUNVLGlCQUFpQixFQUFFLGtCQUFrQixFQUM1QixXQUFXLEdBQUUsTUFBaUQsRUFHaEY7SUFFTSw4Q0FBOEMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsQ0FleEY7SUFFTSxrQkFBa0IsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBRXZDO0lBRU0sYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQVc5QztJQUVNLDBCQUEwQixDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBdUJ4RDtJQUVNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxRQUVsQztJQU9NLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxNQUFNLFFBRTVDO0lBTU0sMEJBQTBCLENBQUMsTUFBTSxFQUFFLE1BQU0sUUFFL0M7SUFFTSxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBRTdDO0lBRU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBY2xEO0lBRU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQVVsRDtJQUVNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxRQUtsQztDQUNGIn0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzc2luZ190eHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL2JhdGNoLXR4LXJlcXVlc3Rlci9taXNzaW5nX3R4cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxjQUFNLGlCQUFpQjthQUVILE1BQU0sRUFBRSxNQUFNO0lBQ3ZCLGNBQWM7SUFDZCxhQUFhO0lBQ2IsRUFBRSxFQUFFLEVBQUUsR0FBRyxTQUFTO2FBQ1QsS0FBSztJQUx2QixZQUNrQixNQUFNLEVBQUUsTUFBTSxFQUN2QixjQUFjLFNBQUksRUFDbEIsYUFBYSxTQUFJLEVBQ2pCLEVBQUUsR0FBRSxFQUFFLEdBQUcsU0FBcUIsRUFDckIsS0FBSyxjQUFvQixFQUN2QztJQUVHLGVBQWUsU0FFckI7SUFFTSxZQUFZLFNBRWxCO0lBRU0sZUFBZSxTQUVyQjtJQUVNLFVBQVUsSUFBSSxPQUFPLENBRTNCO0NBQ0Y7QUFPRCxxQkFBYSwyQkFBNEIsWUFBVyxxQkFBcUI7SUFJckUsT0FBTyxDQUFDLGNBQWM7SUFDdEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXO0lBSjlCLE9BQU8sQ0FBQyxVQUFVLENBQXdDO0lBRTFELFlBQ1UsY0FBYyxFQUFFLGVBQWUsRUFDdEIsV0FBVyxHQUFFLE1BQWlELEVBR2hGO0lBRU0sOENBQThDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLGlCQUFpQixFQUFFLENBZXhGO0lBRU0sa0JBQWtCLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUV2QztJQUVNLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FXOUM7SUFFTSwwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQXVCeEQ7SUFFTSxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sUUFFbEM7SUFPTSx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxRQUU1QztJQU1NLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxNQUFNLFFBRS9DO0lBRU0sY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUU3QztJQUVNLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQWNsRDtJQUVNLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFVbEQ7SUFFTSxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sUUFLbEM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"missing_txs.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/missing_txs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,cAAM,iBAAiB;aAEH,MAAM,EAAE,MAAM;IACvB,cAAc;IACd,aAAa;IACb,EAAE,EAAE,EAAE,GAAG,SAAS;aACT,KAAK;IALvB,YACkB,MAAM,EAAE,MAAM,EACvB,cAAc,SAAI,EAClB,aAAa,SAAI,EACjB,EAAE,GAAE,EAAE,GAAG,SAAqB,EACrB,KAAK,cAAoB,EACvC;IAEG,eAAe,SAErB;IAEM,YAAY,SAElB;IAEM,eAAe,SAErB;IAEM,UAAU,IAAI,OAAO,CAE3B;CACF;AAOD,qBAAa,2BAA4B,YAAW,qBAAqB;IAIrE,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJ9B,OAAO,CAAC,UAAU,CAAwC;IAE1D,YACU,iBAAiB,EAAE,kBAAkB,EAC5B,WAAW,GAAE,MAAiD,EAGhF;IAEM,8CAA8C,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAexF;IAEM,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEvC;IAEM,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAW9C;IAEM,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBxD;IAEM,aAAa,CAAC,MAAM,EAAE,MAAM,QAElC;IAOM,uBAAuB,CAAC,MAAM,EAAE,MAAM,QAE5C;IAMM,0BAA0B,CAAC,MAAM,EAAE,MAAM,QAE/C;IAEM,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7C;IAEM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAclD;IAEM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAUlD;IAEM,aAAa,CAAC,MAAM,EAAE,MAAM,QAKlC;CACF"}
1
+ {"version":3,"file":"missing_txs.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/missing_txs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAE9E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,cAAM,iBAAiB;aAEH,MAAM,EAAE,MAAM;IACvB,cAAc;IACd,aAAa;IACb,EAAE,EAAE,EAAE,GAAG,SAAS;aACT,KAAK;IALvB,YACkB,MAAM,EAAE,MAAM,EACvB,cAAc,SAAI,EAClB,aAAa,SAAI,EACjB,EAAE,GAAE,EAAE,GAAG,SAAqB,EACrB,KAAK,cAAoB,EACvC;IAEG,eAAe,SAErB;IAEM,YAAY,SAElB;IAEM,eAAe,SAErB;IAEM,UAAU,IAAI,OAAO,CAE3B;CACF;AAOD,qBAAa,2BAA4B,YAAW,qBAAqB;IAIrE,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJ9B,OAAO,CAAC,UAAU,CAAwC;IAE1D,YACU,cAAc,EAAE,eAAe,EACtB,WAAW,GAAE,MAAiD,EAGhF;IAEM,8CAA8C,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAexF;IAEM,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEvC;IAEM,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAW9C;IAEM,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBxD;IAEM,aAAa,CAAC,MAAM,EAAE,MAAM,QAElC;IAOM,uBAAuB,CAAC,MAAM,EAAE,MAAM,QAE5C;IAMM,0BAA0B,CAAC,MAAM,EAAE,MAAM,QAE/C;IAEM,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7C;IAEM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAclD;IAEM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAUlD;IAEM,aAAa,CAAC,MAAM,EAAE,MAAM,QAKlC;CACF"}
@@ -31,14 +31,14 @@ class MissingTxMetadata {
31
31
  * This could be better optimized but given expected count of missing txs (N < 100)
32
32
  * At the moment there is no need for it. And benefit is that we have everything in single store
33
33
  * */ export class MissingTxMetadataCollection {
34
- missingTxsTracker;
34
+ requestTracker;
35
35
  txBatchSize;
36
36
  txMetadata;
37
- constructor(missingTxsTracker, txBatchSize = DEFAULT_BATCH_TX_REQUESTER_TX_BATCH_SIZE){
38
- this.missingTxsTracker = missingTxsTracker;
37
+ constructor(requestTracker, txBatchSize = DEFAULT_BATCH_TX_REQUESTER_TX_BATCH_SIZE){
38
+ this.requestTracker = requestTracker;
39
39
  this.txBatchSize = txBatchSize;
40
40
  this.txMetadata = new Map();
41
- missingTxsTracker.missingTxHashes.forEach((hash)=>this.txMetadata.set(hash, new MissingTxMetadata(hash)));
41
+ requestTracker.missingTxHashes.forEach((hash)=>this.txMetadata.set(hash, new MissingTxMetadata(hash)));
42
42
  }
43
43
  getPrioritizingNotInFlightAndLowerRequestCount(txs) {
44
44
  const filtered = Array.from(this.txMetadata.values()).filter((txMeta)=>txs.includes(txMeta.txHash.toString()));
@@ -57,7 +57,7 @@ class MissingTxMetadata {
57
57
  ];
58
58
  }
59
59
  getMissingTxHashes() {
60
- return this.missingTxsTracker.missingTxHashes;
60
+ return this.requestTracker.missingTxHashes;
61
61
  }
62
62
  getTxsPeerHas(peer) {
63
63
  const peerIdStr = peer.toString();
@@ -102,7 +102,7 @@ class MissingTxMetadata {
102
102
  this.txMetadata.get(txHash.toString())?.markNotInFlight();
103
103
  }
104
104
  alreadyFetched(txHash) {
105
- return !this.missingTxsTracker.isMissing(txHash.toString());
105
+ return !this.requestTracker.isMissing(txHash.toString());
106
106
  }
107
107
  markFetched(peerId, tx) {
108
108
  const txHashStr = tx.txHash.toString();
@@ -116,7 +116,7 @@ class MissingTxMetadata {
116
116
  return false;
117
117
  }
118
118
  txMeta.peers.add(peerId.toString());
119
- return this.missingTxsTracker.markFetched(tx);
119
+ return this.requestTracker.markFetched(tx);
120
120
  }
121
121
  markPeerHas(peerId, txHash) {
122
122
  const peerIdStr = peerId.toString();
@@ -1,20 +1,11 @@
1
1
  import type { ClientProtocolCircuitVerifier } from '@aztec/stdlib/interfaces/server';
2
- import { Tx, type TxValidationResult, type TxValidator } from '@aztec/stdlib/tx';
2
+ import type { TxValidator } from '@aztec/stdlib/tx';
3
+ import type { TxValidationCache } from '../../../msg_validators/tx_validator/tx_validation_cache.js';
3
4
  export interface BatchRequestTxValidatorConfig {
4
5
  l1ChainId: number;
5
6
  rollupVersion: number;
6
7
  proofVerifier: ClientProtocolCircuitVerifier;
8
+ txValidationCache?: TxValidationCache;
7
9
  }
8
- export interface IBatchRequestTxValidator {
9
- validateRequestedTx(tx: Tx): Promise<TxValidationResult>;
10
- validateRequestedTxs(txs: Tx[]): Promise<TxValidationResult[]>;
11
- }
12
- export declare class BatchRequestTxValidator implements IBatchRequestTxValidator {
13
- private readonly config;
14
- readonly txValidator: TxValidator;
15
- constructor(config: BatchRequestTxValidatorConfig);
16
- validateRequestedTx(tx: Tx): Promise<TxValidationResult>;
17
- validateRequestedTxs(txs: Tx[]): Promise<TxValidationResult[]>;
18
- static createRequestedTxValidator(config: BatchRequestTxValidatorConfig): TxValidator;
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9iYXRjaC10eC1yZXF1ZXN0ZXIvdHhfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckYsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLGtCQUFrQixFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJakYsTUFBTSxXQUFXLDZCQUE2QjtJQUM1QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsYUFBYSxFQUFFLDZCQUE2QixDQUFDO0NBQzlDO0FBRUQsTUFBTSxXQUFXLHdCQUF3QjtJQUN2QyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pELG9CQUFvQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0NBQ2hFO0FBRUQscUJBQWEsdUJBQXdCLFlBQVcsd0JBQXdCO0lBRTFELE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQURuQyxRQUFRLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztJQUNsQyxZQUE2QixNQUFNLEVBQUUsNkJBQTZCLEVBRWpFO0lBRVksbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FFcEU7SUFFWSxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FFMUU7SUFFRCxNQUFNLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLDZCQUE2QixHQUFHLFdBQVcsQ0FLcEY7Q0FDRiJ9
10
+ export declare function createBatchRequestTxValidator(config: BatchRequestTxValidatorConfig): TxValidator;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfdmFsaWRhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9iYXRjaC10eC1yZXF1ZXN0ZXIvdHhfdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckYsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUVyRyxNQUFNLFdBQVcsNkJBQTZCO0lBQzVDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixhQUFhLEVBQUUsNkJBQTZCLENBQUM7SUFDN0MsaUJBQWlCLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztDQUN2QztBQUVELHdCQUFnQiw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsNkJBQTZCLEdBQUcsV0FBVyxDQVVoRyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"tx_validator.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/tx_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,EAAE,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIjF,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,6BAA6B,CAAC;CAC9C;AAED,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzD,oBAAoB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;CAChE;AAED,qBAAa,uBAAwB,YAAW,wBAAwB;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IADnC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,YAA6B,MAAM,EAAE,6BAA6B,EAEjE;IAEY,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAEpE;IAEY,oBAAoB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAE1E;IAED,MAAM,CAAC,0BAA0B,CAAC,MAAM,EAAE,6BAA6B,GAAG,WAAW,CAKpF;CACF"}
1
+ {"version":3,"file":"tx_validator.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/tx_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6DAA6D,CAAC;AAErG,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,6BAA6B,CAAC;IAC7C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,6BAA6B,GAAG,WAAW,CAUhG"}
@@ -1,21 +1,7 @@
1
- import { createTxValidatorForReqResponseReceivedTxs } from '../../../msg_validators/index.js';
2
- export class BatchRequestTxValidator {
3
- config;
4
- txValidator;
5
- constructor(config){
6
- this.config = config;
7
- this.txValidator = BatchRequestTxValidator.createRequestedTxValidator(this.config);
8
- }
9
- async validateRequestedTx(tx) {
10
- return await this.txValidator.validateTx(tx);
11
- }
12
- async validateRequestedTxs(txs) {
13
- return await Promise.all(txs.map((tx)=>this.validateRequestedTx(tx)));
14
- }
15
- static createRequestedTxValidator(config) {
16
- return createTxValidatorForReqResponseReceivedTxs(config.proofVerifier, {
17
- l1ChainId: config.l1ChainId,
18
- rollupVersion: config.rollupVersion
19
- });
20
- }
1
+ import { createTxValidatorForOnDemandReceivedTxs } from '../../../msg_validators/index.js';
2
+ export function createBatchRequestTxValidator(config) {
3
+ return createTxValidatorForOnDemandReceivedTxs(config.proofVerifier, {
4
+ l1ChainId: config.l1ChainId,
5
+ rollupVersion: config.rollupVersion
6
+ }, /*bindings=*/ undefined, config.txValidationCache);
21
7
  }
@@ -1,4 +1,4 @@
1
- import { type ConfigMapping } from '@aztec/foundation/config';
1
+ import { type ConfigMappingsType } from '@aztec/foundation/config';
2
2
  export declare const DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS = 10000;
3
3
  export declare const DEFAULT_OVERALL_REQUEST_TIMEOUT_MS = 10000;
4
4
  export declare const DEFAULT_REQRESP_DIAL_TIMEOUT_MS = 5000;
@@ -14,5 +14,5 @@ export interface P2PReqRespConfig {
14
14
  /** How long to wait for the dial protocol to establish a connection */
15
15
  dialTimeoutMs: number;
16
16
  }
17
- export declare const p2pReqRespConfigMappings: Record<keyof P2PReqRespConfig, ConfigMapping>;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUEyQyxNQUFNLDBCQUEwQixDQUFDO0FBRXZHLGVBQU8sTUFBTSxxQ0FBcUMsUUFBUyxDQUFDO0FBQzVELGVBQU8sTUFBTSxrQ0FBa0MsUUFBUyxDQUFDO0FBQ3pELGVBQU8sTUFBTSwrQkFBK0IsT0FBUSxDQUFDO0FBQ3JELGVBQU8sTUFBTSw4QkFBOEIsUUFBUSxDQUFDO0FBR3BELGVBQU8sTUFBTSwwQkFBMEIsRUFBRSxnQkFLeEMsQ0FBQztBQUVGLE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsNERBQTREO0lBQzVELHVCQUF1QixFQUFFLE1BQU0sQ0FBQztJQUVoQyx1RUFBdUU7SUFDdkUsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO0lBRW5DLGtIQUFrSDtJQUNsSCx3QkFBd0IsRUFBRSxPQUFPLENBQUM7SUFFbEMsdUVBQXVFO0lBQ3ZFLGFBQWEsRUFBRSxNQUFNLENBQUM7Q0FDdkI7QUFFRCxlQUFPLE1BQU0sd0JBQXdCLEVBQUUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEVBQUUsYUFBYSxDQXNCbEYsQ0FBQyJ9
17
+ export declare const p2pReqRespConfigMappings: ConfigMappingsType<P2PReqRespConfig>;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQTJDLE1BQU0sMEJBQTBCLENBQUM7QUFFNUcsZUFBTyxNQUFNLHFDQUFxQyxRQUFTLENBQUM7QUFDNUQsZUFBTyxNQUFNLGtDQUFrQyxRQUFTLENBQUM7QUFDekQsZUFBTyxNQUFNLCtCQUErQixPQUFRLENBQUM7QUFDckQsZUFBTyxNQUFNLDhCQUE4QixRQUFRLENBQUM7QUFHcEQsZUFBTyxNQUFNLDBCQUEwQixFQUFFLGdCQUt4QyxDQUFDO0FBRUYsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQiw0REFBNEQ7SUFDNUQsdUJBQXVCLEVBQUUsTUFBTSxDQUFDO0lBRWhDLHVFQUF1RTtJQUN2RSwwQkFBMEIsRUFBRSxNQUFNLENBQUM7SUFFbkMsa0hBQWtIO0lBQ2xILHdCQUF3QixFQUFFLE9BQU8sQ0FBQztJQUVsQyx1RUFBdUU7SUFDdkUsYUFBYSxFQUFFLE1BQU0sQ0FBQztDQUN2QjtBQUVELGVBQU8sTUFBTSx3QkFBd0IsRUFBRSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FzQnpFLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA2C,MAAM,0BAA0B,CAAC;AAEvG,eAAO,MAAM,qCAAqC,QAAS,CAAC;AAC5D,eAAO,MAAM,kCAAkC,QAAS,CAAC;AACzD,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AACrD,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAGpD,eAAO,MAAM,0BAA0B,EAAE,gBAKxC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,uBAAuB,EAAE,MAAM,CAAC;IAEhC,uEAAuE;IACvE,0BAA0B,EAAE,MAAM,CAAC;IAEnC,kHAAkH;IAClH,wBAAwB,EAAE,OAAO,CAAC;IAElC,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,gBAAgB,EAAE,aAAa,CAsBlF,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA2C,MAAM,0BAA0B,CAAC;AAE5G,eAAO,MAAM,qCAAqC,QAAS,CAAC;AAC5D,eAAO,MAAM,kCAAkC,QAAS,CAAC;AACzD,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AACrD,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAGpD,eAAO,MAAM,0BAA0B,EAAE,gBAKxC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,uBAAuB,EAAE,MAAM,CAAC;IAEhC,uEAAuE;IACvE,0BAA0B,EAAE,MAAM,CAAC;IAEnC,kHAAkH;IAClH,wBAAwB,EAAE,OAAO,CAAC;IAElC,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CAsBzE,CAAC"}