@aztec/p2p 0.0.1-commit.e6bd8901 → 0.0.1-commit.ec7ac5448

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 (555) hide show
  1. package/README.md +129 -3
  2. package/dest/bootstrap/bootstrap.d.ts +4 -3
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +4 -4
  5. package/dest/client/factory.d.ts +11 -11
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +60 -19
  8. package/dest/client/interface.d.ts +54 -34
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +43 -52
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +181 -224
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +315 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  19. package/dest/config.d.ts +67 -16
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +112 -39
  22. package/dest/errors/p2p-service.error.d.ts +9 -0
  23. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  24. package/dest/errors/p2p-service.error.js +10 -0
  25. package/dest/errors/tx-pool.error.d.ts +8 -0
  26. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  27. package/dest/errors/tx-pool.error.js +9 -0
  28. package/dest/index.d.ts +2 -2
  29. package/dest/index.d.ts.map +1 -1
  30. package/dest/index.js +1 -1
  31. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +106 -88
  32. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool.js +448 -3
  34. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  35. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  36. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  37. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  38. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/index.js +1 -2
  40. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  41. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  42. package/dest/mem_pools/attestation_pool/mocks.js +2 -2
  43. package/dest/mem_pools/index.d.ts +3 -3
  44. package/dest/mem_pools/index.d.ts.map +1 -1
  45. package/dest/mem_pools/index.js +1 -1
  46. package/dest/mem_pools/instrumentation.d.ts +4 -2
  47. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  48. package/dest/mem_pools/instrumentation.js +18 -16
  49. package/dest/mem_pools/interface.d.ts +5 -5
  50. package/dest/mem_pools/interface.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  52. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  53. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  54. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  55. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  57. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  58. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  77. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_mining_rule.js +16 -35
  78. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  80. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_reorg_rule.js +39 -24
  81. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  90. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  91. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  93. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  94. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  96. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +215 -0
  97. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  99. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +134 -0
  100. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +220 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  103. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +923 -0
  114. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  115. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/attestation_validator/attestation_validator.js +20 -11
  117. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +5 -3
  118. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +9 -4
  120. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  121. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  122. package/dest/msg_validators/clock_tolerance.js +54 -3
  123. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +7 -4
  124. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  126. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +7 -4
  127. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  129. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +15 -8
  130. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/proposal_validator/proposal_validator.js +70 -50
  132. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  133. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  135. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  136. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  137. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  138. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  139. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  140. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  141. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  142. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  144. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  145. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  147. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  148. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  149. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  150. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  151. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  152. package/dest/msg_validators/tx_validator/data_validator.js +39 -3
  153. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  154. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  156. package/dest/msg_validators/tx_validator/factory.d.ts +137 -5
  157. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  158. package/dest/msg_validators/tx_validator/factory.js +255 -58
  159. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  160. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  161. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  162. package/dest/msg_validators/tx_validator/gas_validator.d.ts +68 -3
  163. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  164. package/dest/msg_validators/tx_validator/gas_validator.js +114 -44
  165. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  166. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  167. package/dest/msg_validators/tx_validator/index.js +2 -0
  168. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  169. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  170. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  171. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  172. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  173. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  174. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  175. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  176. package/dest/msg_validators/tx_validator/phases_validator.js +75 -27
  177. package/dest/msg_validators/tx_validator/size_validator.d.ts +3 -1
  178. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -1
  179. package/dest/msg_validators/tx_validator/size_validator.js +4 -1
  180. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  181. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  182. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  183. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  184. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  185. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  186. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  187. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  188. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  189. package/dest/services/data_store.d.ts +1 -1
  190. package/dest/services/data_store.d.ts.map +1 -1
  191. package/dest/services/data_store.js +14 -10
  192. package/dest/services/discv5/discV5_service.js +1 -1
  193. package/dest/services/dummy_service.d.ts +28 -5
  194. package/dest/services/dummy_service.d.ts.map +1 -1
  195. package/dest/services/dummy_service.js +52 -2
  196. package/dest/services/encoding.d.ts +7 -3
  197. package/dest/services/encoding.d.ts.map +1 -1
  198. package/dest/services/encoding.js +18 -11
  199. package/dest/services/gossipsub/index.d.ts +3 -0
  200. package/dest/services/gossipsub/index.d.ts.map +1 -0
  201. package/dest/services/gossipsub/index.js +2 -0
  202. package/dest/services/gossipsub/scoring.d.ts +21 -3
  203. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  204. package/dest/services/gossipsub/scoring.js +24 -7
  205. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  206. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  207. package/dest/services/gossipsub/topic_score_params.js +363 -0
  208. package/dest/services/index.d.ts +2 -1
  209. package/dest/services/index.d.ts.map +1 -1
  210. package/dest/services/index.js +1 -0
  211. package/dest/services/libp2p/instrumentation.d.ts +1 -1
  212. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  213. package/dest/services/libp2p/instrumentation.js +14 -3
  214. package/dest/services/libp2p/libp2p_service.d.ts +98 -50
  215. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  216. package/dest/services/libp2p/libp2p_service.js +580 -449
  217. package/dest/services/peer-manager/metrics.d.ts +4 -2
  218. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  219. package/dest/services/peer-manager/metrics.js +26 -5
  220. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  221. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  222. package/dest/services/peer-manager/peer_manager.js +24 -9
  223. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  224. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  225. package/dest/services/peer-manager/peer_scoring.js +65 -14
  226. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +51 -0
  227. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  228. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +543 -0
  229. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  230. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  231. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  232. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +47 -0
  233. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  234. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  235. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  236. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  237. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  238. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  239. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  240. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  241. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  242. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  243. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  244. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  245. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  246. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  247. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  248. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  249. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  250. package/dest/services/reqresp/interface.d.ts +25 -9
  251. package/dest/services/reqresp/interface.d.ts.map +1 -1
  252. package/dest/services/reqresp/interface.js +23 -10
  253. package/dest/services/reqresp/metrics.d.ts +6 -5
  254. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  255. package/dest/services/reqresp/metrics.js +16 -5
  256. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  257. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  258. package/dest/services/reqresp/protocols/block_txs/bitvector.js +5 -0
  259. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  260. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  261. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  262. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +29 -6
  263. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  264. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +59 -13
  265. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  266. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  267. package/dest/services/reqresp/protocols/index.js +0 -1
  268. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  269. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  270. package/dest/services/reqresp/protocols/tx.js +21 -3
  271. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  272. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  273. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  274. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  275. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  276. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  277. package/dest/services/reqresp/reqresp.d.ts +9 -2
  278. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  279. package/dest/services/reqresp/reqresp.js +95 -34
  280. package/dest/services/service.d.ts +46 -4
  281. package/dest/services/service.d.ts.map +1 -1
  282. package/dest/services/tx_collection/config.d.ts +22 -1
  283. package/dest/services/tx_collection/config.d.ts.map +1 -1
  284. package/dest/services/tx_collection/config.js +55 -1
  285. package/dest/services/tx_collection/fast_tx_collection.d.ts +7 -7
  286. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  287. package/dest/services/tx_collection/fast_tx_collection.js +95 -84
  288. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  289. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  290. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  291. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  292. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  293. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  294. package/dest/services/tx_collection/index.d.ts +3 -1
  295. package/dest/services/tx_collection/index.d.ts.map +1 -1
  296. package/dest/services/tx_collection/index.js +2 -0
  297. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  298. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  299. package/dest/services/tx_collection/instrumentation.js +10 -2
  300. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  301. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  302. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  303. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  304. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  305. package/dest/services/tx_collection/request_tracker.js +84 -0
  306. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  307. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  308. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  309. package/dest/services/tx_collection/tx_collection.d.ts +25 -15
  310. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  311. package/dest/services/tx_collection/tx_collection.js +79 -7
  312. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  313. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  314. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  315. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  316. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  317. package/dest/services/tx_collection/tx_source.js +26 -7
  318. package/dest/services/tx_file_store/config.d.ts +16 -0
  319. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  320. package/dest/services/tx_file_store/config.js +22 -0
  321. package/dest/services/tx_file_store/index.d.ts +4 -0
  322. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  323. package/dest/services/tx_file_store/index.js +3 -0
  324. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  325. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  326. package/dest/services/tx_file_store/instrumentation.js +29 -0
  327. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  328. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  329. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  330. package/dest/services/tx_provider.d.ts +4 -4
  331. package/dest/services/tx_provider.d.ts.map +1 -1
  332. package/dest/services/tx_provider.js +9 -8
  333. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  334. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  335. package/dest/services/tx_provider_instrumentation.js +5 -5
  336. package/dest/test-helpers/index.d.ts +3 -1
  337. package/dest/test-helpers/index.d.ts.map +1 -1
  338. package/dest/test-helpers/index.js +2 -0
  339. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  340. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  341. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  342. package/dest/test-helpers/mock-pubsub.d.ts +40 -6
  343. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  344. package/dest/test-helpers/mock-pubsub.js +139 -13
  345. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  346. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  347. package/dest/test-helpers/reqresp-nodes.js +5 -5
  348. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  349. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  350. package/dest/test-helpers/test_tx_provider.js +41 -0
  351. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  352. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  353. package/dest/test-helpers/testbench-utils.js +386 -0
  354. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  355. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  356. package/dest/testbench/p2p_client_testbench_worker.js +276 -143
  357. package/dest/testbench/worker_client_manager.d.ts +60 -6
  358. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  359. package/dest/testbench/worker_client_manager.js +280 -46
  360. package/dest/util.d.ts +3 -3
  361. package/dest/util.d.ts.map +1 -1
  362. package/package.json +14 -14
  363. package/src/bootstrap/bootstrap.ts +7 -4
  364. package/src/client/factory.ts +114 -38
  365. package/src/client/interface.ts +65 -35
  366. package/src/client/p2p_client.ts +217 -269
  367. package/src/client/test/tx_proposal_collector/README.md +227 -0
  368. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +355 -0
  369. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  370. package/src/config.ts +182 -44
  371. package/src/errors/p2p-service.error.ts +11 -0
  372. package/src/errors/tx-pool.error.ts +12 -0
  373. package/src/index.ts +1 -1
  374. package/src/mem_pools/attestation_pool/attestation_pool.ts +501 -91
  375. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  376. package/src/mem_pools/attestation_pool/index.ts +9 -2
  377. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  378. package/src/mem_pools/index.ts +2 -2
  379. package/src/mem_pools/instrumentation.ts +19 -14
  380. package/src/mem_pools/interface.ts +4 -4
  381. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  382. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  383. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  384. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  385. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  386. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  387. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  388. package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
  389. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  390. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  391. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  392. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  393. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  394. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  395. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  396. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  397. package/src/mem_pools/tx_pool_v2/interfaces.ts +247 -0
  398. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +343 -0
  399. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  400. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  401. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  402. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1105 -0
  403. package/src/msg_validators/attestation_validator/README.md +49 -0
  404. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -9
  405. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +14 -5
  406. package/src/msg_validators/clock_tolerance.ts +72 -3
  407. package/src/msg_validators/proposal_validator/README.md +123 -0
  408. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +17 -4
  409. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +23 -7
  410. package/src/msg_validators/proposal_validator/proposal_validator.ts +81 -51
  411. package/src/msg_validators/tx_validator/README.md +119 -0
  412. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  413. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  414. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  415. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  416. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  417. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  418. package/src/msg_validators/tx_validator/data_validator.ts +48 -3
  419. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  420. package/src/msg_validators/tx_validator/factory.ts +413 -56
  421. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  422. package/src/msg_validators/tx_validator/gas_validator.ts +154 -36
  423. package/src/msg_validators/tx_validator/index.ts +2 -0
  424. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  425. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  426. package/src/msg_validators/tx_validator/phases_validator.ts +87 -30
  427. package/src/msg_validators/tx_validator/size_validator.ts +6 -2
  428. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  429. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  430. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  431. package/src/services/data_store.ts +14 -19
  432. package/src/services/discv5/discV5_service.ts +1 -1
  433. package/src/services/dummy_service.ts +66 -3
  434. package/src/services/encoding.ts +18 -10
  435. package/src/services/gossipsub/README.md +641 -0
  436. package/src/services/gossipsub/index.ts +2 -0
  437. package/src/services/gossipsub/scoring.ts +29 -5
  438. package/src/services/gossipsub/topic_score_params.ts +519 -0
  439. package/src/services/index.ts +1 -0
  440. package/src/services/libp2p/instrumentation.ts +15 -2
  441. package/src/services/libp2p/libp2p_service.ts +626 -502
  442. package/src/services/peer-manager/metrics.ts +28 -4
  443. package/src/services/peer-manager/peer_manager.ts +28 -9
  444. package/src/services/peer-manager/peer_scoring.ts +56 -6
  445. package/src/services/reqresp/README.md +229 -0
  446. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  447. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +673 -0
  448. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  449. package/src/services/reqresp/batch-tx-requester/interface.ts +54 -0
  450. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  451. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  452. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  453. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  454. package/src/services/reqresp/connection-sampler/connection_sampler.ts +16 -0
  455. package/src/services/reqresp/interface.ts +48 -10
  456. package/src/services/reqresp/metrics.ts +33 -9
  457. package/src/services/reqresp/protocols/block_txs/bitvector.ts +7 -0
  458. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  459. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +74 -9
  460. package/src/services/reqresp/protocols/index.ts +0 -1
  461. package/src/services/reqresp/protocols/tx.ts +23 -3
  462. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  463. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  464. package/src/services/reqresp/reqresp.ts +116 -32
  465. package/src/services/service.ts +61 -3
  466. package/src/services/tx_collection/config.ts +83 -1
  467. package/src/services/tx_collection/fast_tx_collection.ts +111 -91
  468. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  469. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  470. package/src/services/tx_collection/index.ts +6 -0
  471. package/src/services/tx_collection/instrumentation.ts +17 -2
  472. package/src/services/tx_collection/proposal_tx_collector.ts +108 -0
  473. package/src/services/tx_collection/request_tracker.ts +127 -0
  474. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  475. package/src/services/tx_collection/tx_collection.ts +118 -23
  476. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  477. package/src/services/tx_collection/tx_source.ts +28 -8
  478. package/src/services/tx_file_store/config.ts +37 -0
  479. package/src/services/tx_file_store/index.ts +3 -0
  480. package/src/services/tx_file_store/instrumentation.ts +36 -0
  481. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  482. package/src/services/tx_provider.ts +10 -9
  483. package/src/services/tx_provider_instrumentation.ts +11 -5
  484. package/src/test-helpers/index.ts +2 -0
  485. package/src/test-helpers/make-test-p2p-clients.ts +4 -6
  486. package/src/test-helpers/mock-pubsub.ts +177 -14
  487. package/src/test-helpers/reqresp-nodes.ts +7 -9
  488. package/src/test-helpers/test_tx_provider.ts +64 -0
  489. package/src/test-helpers/testbench-utils.ts +457 -0
  490. package/src/testbench/p2p_client_testbench_worker.ts +393 -134
  491. package/src/testbench/worker_client_manager.ts +367 -48
  492. package/src/util.ts +8 -2
  493. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  494. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  495. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  496. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  497. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  498. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  499. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  500. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  501. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  502. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  503. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  504. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  505. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  506. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  507. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  508. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  509. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  510. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  511. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  512. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  513. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  514. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  515. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  516. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  517. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  518. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  519. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  520. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  521. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  522. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  523. package/dest/mem_pools/tx_pool/index.js +0 -2
  524. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  525. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  526. package/dest/mem_pools/tx_pool/priority.js +0 -15
  527. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  528. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  529. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  530. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  531. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  532. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  533. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  534. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  535. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  536. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  537. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  538. package/dest/services/reqresp/protocols/block.js +0 -32
  539. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  540. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  541. package/src/mem_pools/tx_pool/README.md +0 -270
  542. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  543. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  544. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  545. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  546. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  547. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  548. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  549. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  550. package/src/mem_pools/tx_pool/index.ts +0 -2
  551. package/src/mem_pools/tx_pool/priority.ts +0 -20
  552. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  553. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  554. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  555. package/src/services/reqresp/protocols/block.ts +0 -37
@@ -1 +1 @@
1
- {"version":3,"file":"connection_sampler.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/connection-sampler/connection_sampler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhE,qBAAa,aAAa;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,UAEjB;CACF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAY1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAdvB,OAAO,CAAC,eAAe,CAAiB;IAGxC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAG3E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAEpD,OAAO,CAAC,WAAW,CAA0C;IAE7D,YACmB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,EACtB,MAAM,yCAAiD,EACvD,IAAI,GAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;KAAO,EAM/F;IAED;;OAEG;IACG,IAAI,kBAST;IAED;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAK5D;IAED;;;;;;;;;;;OAWG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B;QACD,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAqCA;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAsCnF;IAID;;;;;;;OAOG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBtF;IAED;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCzC;YAKa,uBAAuB;CAuBtC"}
1
+ {"version":3,"file":"connection_sampler.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/connection-sampler/connection_sampler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhE,qBAAa,aAAa;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,UAEjB;CACF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAY1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAdvB,OAAO,CAAC,eAAe,CAAiB;IAGxC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAG3E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAEpD,OAAO,CAAC,WAAW,CAA0C;IAE7D,YACmB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,EACtB,MAAM,yCAAiD,EACvD,IAAI,GAAE;QAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;KAAO,EAM/F;IAED;;OAEG;IACG,IAAI,kBAST;IAED;;;;;OAKG;IACH,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,SAAS,CAK5D;IAED;;;;;;;;;;;OAWG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B;QACD,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAqCA;IASM,qCAAqC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAO9E;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAsCnF;IAID;;;;;;;OAOG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBtF;IAED;;OAEG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCzC;YAKa,uBAAuB;CAuBtC"}
@@ -107,6 +107,18 @@ export class RandomSampler {
107
107
  sampledPeers
108
108
  };
109
109
  }
110
+ /*
111
+ * Returns all peers sorted by connection count ascending,
112
+ * meaning that the peers with the least number of active connections are earlier in an array
113
+ *
114
+ * @param: excluding - peers to exclude
115
+ * @return: list of peer ids
116
+ * */ getPeerListSortedByConnectionCountAsc(excluding) {
117
+ return this.libp2p.getPeers().filter((id)=>!excluding?.has(id.toString())).map((id)=>({
118
+ id,
119
+ count: this.activeConnectionsCount.get(id.toString()) ?? 0
120
+ })).sort((a, b)=>a.count - b.count).map((p)=>p.id);
121
+ }
110
122
  /**
111
123
  * Samples a batch of unique peers from the libp2p node, prioritizing peers without active connections
112
124
  *
@@ -1,8 +1,7 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { L2Block } from '@aztec/stdlib/block';
3
1
  import { TxArray, TxHashArray } from '@aztec/stdlib/tx';
4
2
  import type { PeerId } from '@libp2p/interface';
5
3
  import type { P2PReqRespConfig } from './config.js';
4
+ import type { ConnectionSampler } from './connection-sampler/connection_sampler.js';
6
5
  import { AuthRequest, AuthResponse } from './protocols/auth.js';
7
6
  import { BlockTxsRequest, BlockTxsResponse } from './protocols/block_txs/block_txs_reqresp.js';
8
7
  import { StatusMessage } from './protocols/status.js';
@@ -11,7 +10,6 @@ export declare const PING_PROTOCOL = "/aztec/req/ping/1.0.0";
11
10
  export declare const STATUS_PROTOCOL = "/aztec/req/status/1.0.0";
12
11
  export declare const GOODBYE_PROTOCOL = "/aztec/req/goodbye/1.0.0";
13
12
  export declare const TX_REQ_PROTOCOL = "/aztec/req/tx/1.0.0";
14
- export declare const BLOCK_REQ_PROTOCOL = "/aztec/req/block/1.0.0";
15
13
  export declare const AUTH_PROTOCOL = "/aztec/req/auth/1.0.0";
16
14
  export declare const BLOCK_TXS_REQ_PROTOCOL = "/aztec/req/block_txs/1.0.0";
17
15
  export declare enum ReqRespSubProtocol {
@@ -19,7 +17,6 @@ export declare enum ReqRespSubProtocol {
19
17
  STATUS = "/aztec/req/status/1.0.0",
20
18
  GOODBYE = "/aztec/req/goodbye/1.0.0",
21
19
  TX = "/aztec/req/tx/1.0.0",
22
- BLOCK = "/aztec/req/block/1.0.0",
23
20
  AUTH = "/aztec/req/auth/1.0.0",
24
21
  BLOCK_TXS = "/aztec/req/block_txs/1.0.0"
25
22
  }
@@ -75,6 +72,17 @@ type ResponseValidator<RequestIdentifier, Response> = (request: RequestIdentifie
75
72
  export type ReqRespSubProtocolValidators = {
76
73
  [S in ReqRespSubProtocol]: ResponseValidator<any, any>;
77
74
  };
75
+ /**
76
+ * Protocols that are always allowed without authentication, even when p2pAllowOnlyValidators is enabled.
77
+ * These are needed for the handshake and connection management flow.
78
+ * All other protocols require the remote peer to be authenticated.
79
+ */
80
+ export declare const UNAUTHENTICATED_ALLOWED_PROTOCOLS: ReadonlySet<ReqRespSubProtocol>;
81
+ /**
82
+ * Callback that checks whether a peer should be rejected from req/resp data protocols.
83
+ * Returns true if the peer should be rejected (i.e. p2pAllowOnlyValidators is on and peer is unauthenticated).
84
+ */
85
+ export type ShouldRejectPeer = (peerId: string) => boolean;
78
86
  export declare const DEFAULT_SUB_PROTOCOL_VALIDATORS: ReqRespSubProtocolValidators;
79
87
  export declare class ValidationError extends Error {
80
88
  constructor(message: string);
@@ -140,10 +148,6 @@ export declare const subProtocolMap: {
140
148
  request: typeof RequestableBuffer;
141
149
  response: typeof RequestableBuffer;
142
150
  };
143
- "/aztec/req/block/1.0.0": {
144
- request: typeof Fr;
145
- response: typeof L2Block;
146
- };
147
151
  "/aztec/req/auth/1.0.0": {
148
152
  request: typeof AuthRequest;
149
153
  response: typeof AuthResponse;
@@ -153,6 +157,15 @@ export declare const subProtocolMap: {
153
157
  response: typeof BlockTxsResponse;
154
158
  };
155
159
  };
160
+ /**
161
+ * Type for a function that calculates the expected response size in KB for a given request.
162
+ */
163
+ export type ExpectedResponseSizeCalculator = (requestBuffer: Buffer) => number;
164
+ /**
165
+ * Map of sub-protocols to their expected response size calculators.
166
+ * These are used to validate that responses don't exceed expected sizes based on request parameters.
167
+ */
168
+ export declare const subProtocolSizeCalculators: Record<ReqRespSubProtocol, ExpectedResponseSizeCalculator>;
156
169
  export interface ReqRespInterface {
157
170
  start(subProtocolHandlers: Partial<ReqRespSubProtocolHandlers>, subProtocolValidators: ReqRespSubProtocolValidators): Promise<void>;
158
171
  addSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
@@ -160,6 +173,9 @@ export interface ReqRespInterface {
160
173
  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']>[]>;
161
174
  sendRequestToPeer(peerId: PeerId, subProtocol: ReqRespSubProtocol, payload: Buffer, dialTimeout?: number): Promise<ReqRespResponse>;
162
175
  updateConfig(config: Partial<P2PReqRespConfig>): void;
176
+ /** Sets the callback used to reject unauthenticated peers on gated req/resp protocols. */
177
+ setShouldRejectPeer(checker: ShouldRejectPeer): void;
178
+ getConnectionSampler(): Pick<ConnectionSampler, 'getPeerListSortedByConnectionCountAsc'>;
163
179
  }
164
180
  export {};
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLakQsZUFBTyxNQUFNLGFBQWEsMEJBQTBCLENBQUM7QUFDckQsZUFBTyxNQUFNLGVBQWUsNEJBQTRCLENBQUM7QUFDekQsZUFBTyxNQUFNLGdCQUFnQiw2QkFBNkIsQ0FBQztBQUMzRCxlQUFPLE1BQU0sZUFBZSx3QkFBd0IsQ0FBQztBQUNyRCxlQUFPLE1BQU0sa0JBQWtCLDJCQUEyQixDQUFDO0FBQzNELGVBQU8sTUFBTSxhQUFhLDBCQUEwQixDQUFDO0FBQ3JELGVBQU8sTUFBTSxzQkFBc0IsK0JBQStCLENBQUM7QUFFbkUsb0JBQVksa0JBQWtCO0lBQzVCLElBQUksMEJBQWdCO0lBQ3BCLE1BQU0sNEJBQWtCO0lBQ3hCLE9BQU8sNkJBQW1CO0lBQzFCLEVBQUUsd0JBQWtCO0lBQ3BCLEtB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
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUNMLGVBQWUsRUFDZixnQkFBZ0IsRUFFakIsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBS2pELGVBQU8sTUFBTSxhQUFhLDBCQUEwQixDQUFDO0FBQ3JELGVBQU8sTUFBTSxlQUFlLDRCQUE0QixDQUFDO0FBQ3pELGVBQU8sTUFBTSxnQkFBZ0IsNkJBQTZCLENBQUM7QUFDM0QsZUFBTyxNQUFNLGVBQWUsd0JBQXdCLENBQUM7QUFDckQsZUFBTyxNQUFNLGFBQWEsMEJBQTBCLENBQUM7QUFDckQsZUFBTyxNQUFNLHNCQUFzQiwrQkFBK0IsQ0FBQztBQUVuRSxvQkFBWSxrQkFBa0I7SUFDNUIsSUFBSSwwQkFBZ0I7SUFDcEIsTUFBTSw0QkFBa0I7SUFDeEIsT0FBTyw2QkFBbUI7SUFDMUIsRUFBRSx3QkFBa0I7SUFDcEIsSUFBSSwwQkFBZ0I7SUFDcEIsU0FBUywrQkFBeUI7Q0FDbkM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE1BQU0seUJBQXlCLEdB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
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/interface.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,14 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { L2Block } from '@aztec/stdlib/block';
3
1
  import { TxArray, TxHashArray } from '@aztec/stdlib/tx';
4
2
  import { AuthRequest, AuthResponse } from './protocols/auth.js';
5
- import { BlockTxsRequest, BlockTxsResponse } from './protocols/block_txs/block_txs_reqresp.js';
3
+ import { BlockTxsRequest, BlockTxsResponse, calculateBlockTxsResponseSize } from './protocols/block_txs/block_txs_reqresp.js';
6
4
  import { StatusMessage } from './protocols/status.js';
5
+ import { calculateTxResponseSize } from './protocols/tx.js';
7
6
  /*
8
7
  * Request Response Sub Protocols
9
8
  */ export const PING_PROTOCOL = '/aztec/req/ping/1.0.0';
10
9
  export const STATUS_PROTOCOL = '/aztec/req/status/1.0.0';
11
10
  export const GOODBYE_PROTOCOL = '/aztec/req/goodbye/1.0.0';
12
11
  export const TX_REQ_PROTOCOL = '/aztec/req/tx/1.0.0';
13
- export const BLOCK_REQ_PROTOCOL = '/aztec/req/block/1.0.0';
14
12
  export const AUTH_PROTOCOL = '/aztec/req/auth/1.0.0';
15
13
  export const BLOCK_TXS_REQ_PROTOCOL = '/aztec/req/block_txs/1.0.0';
16
14
  export var ReqRespSubProtocol = /*#__PURE__*/ function(ReqRespSubProtocol) {
@@ -18,18 +16,26 @@ export var ReqRespSubProtocol = /*#__PURE__*/ function(ReqRespSubProtocol) {
18
16
  ReqRespSubProtocol[ReqRespSubProtocol["STATUS"] = STATUS_PROTOCOL] = "STATUS";
19
17
  ReqRespSubProtocol[ReqRespSubProtocol["GOODBYE"] = GOODBYE_PROTOCOL] = "GOODBYE";
20
18
  ReqRespSubProtocol[ReqRespSubProtocol["TX"] = TX_REQ_PROTOCOL] = "TX";
21
- ReqRespSubProtocol[ReqRespSubProtocol["BLOCK"] = BLOCK_REQ_PROTOCOL] = "BLOCK";
22
19
  ReqRespSubProtocol[ReqRespSubProtocol["AUTH"] = AUTH_PROTOCOL] = "AUTH";
23
20
  ReqRespSubProtocol[ReqRespSubProtocol["BLOCK_TXS"] = BLOCK_TXS_REQ_PROTOCOL] = "BLOCK_TXS";
24
21
  return ReqRespSubProtocol;
25
22
  }({});
26
23
  export const noopValidator = ()=>Promise.resolve(true);
24
+ /**
25
+ * Protocols that are always allowed without authentication, even when p2pAllowOnlyValidators is enabled.
26
+ * These are needed for the handshake and connection management flow.
27
+ * All other protocols require the remote peer to be authenticated.
28
+ */ export const UNAUTHENTICATED_ALLOWED_PROTOCOLS = new Set([
29
+ ReqRespSubProtocol.PING,
30
+ ReqRespSubProtocol.STATUS,
31
+ ReqRespSubProtocol.AUTH,
32
+ ReqRespSubProtocol.GOODBYE
33
+ ]);
27
34
  export const DEFAULT_SUB_PROTOCOL_VALIDATORS = {
28
35
  [ReqRespSubProtocol.PING]: noopValidator,
29
36
  [ReqRespSubProtocol.STATUS]: noopValidator,
30
37
  [ReqRespSubProtocol.TX]: noopValidator,
31
38
  [ReqRespSubProtocol.GOODBYE]: noopValidator,
32
- [ReqRespSubProtocol.BLOCK]: noopValidator,
33
39
  [ReqRespSubProtocol.AUTH]: noopValidator,
34
40
  [ReqRespSubProtocol.BLOCK_TXS]: noopValidator
35
41
  };
@@ -88,10 +94,6 @@ export const DEFAULT_SUB_PROTOCOL_VALIDATORS = {
88
94
  request: RequestableBuffer,
89
95
  response: RequestableBuffer
90
96
  },
91
- [ReqRespSubProtocol.BLOCK]: {
92
- request: Fr,
93
- response: L2Block
94
- },
95
97
  [ReqRespSubProtocol.AUTH]: {
96
98
  request: AuthRequest,
97
99
  response: AuthResponse
@@ -101,3 +103,14 @@ export const DEFAULT_SUB_PROTOCOL_VALIDATORS = {
101
103
  response: BlockTxsResponse
102
104
  }
103
105
  };
106
+ /**
107
+ * Map of sub-protocols to their expected response size calculators.
108
+ * These are used to validate that responses don't exceed expected sizes based on request parameters.
109
+ */ export const subProtocolSizeCalculators = {
110
+ [ReqRespSubProtocol.TX]: calculateTxResponseSize,
111
+ [ReqRespSubProtocol.BLOCK_TXS]: calculateBlockTxsResponseSize,
112
+ [ReqRespSubProtocol.STATUS]: ()=>1,
113
+ [ReqRespSubProtocol.PING]: ()=>1,
114
+ [ReqRespSubProtocol.AUTH]: ()=>1,
115
+ [ReqRespSubProtocol.GOODBYE]: ()=>1
116
+ };
@@ -1,4 +1,5 @@
1
1
  import type { TelemetryClient, Tracer } from '@aztec/telemetry-client';
2
+ import { ReqRespSubProtocol } from './interface.js';
2
3
  export declare class ReqRespMetrics {
3
4
  readonly telemetryClient: TelemetryClient;
4
5
  readonly tracer: Tracer;
@@ -7,9 +8,9 @@ export declare class ReqRespMetrics {
7
8
  private readonly failedOutboundRequests;
8
9
  private readonly failedInboundRequests;
9
10
  constructor(telemetryClient: TelemetryClient, name?: string);
10
- recordRequestSent(protocol: string): void;
11
- recordRequestReceived(protocol: string): void;
12
- recordRequestError(protocol: string): void;
13
- recordResponseError(protocol: string): void;
11
+ recordRequestSent(protocol: ReqRespSubProtocol): void;
12
+ recordRequestReceived(protocol: ReqRespSubProtocol): void;
13
+ recordRequestError(protocol: ReqRespSubProtocol): void;
14
+ recordResponseError(protocol: ReqRespSubProtocol): void;
14
15
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBRXRGLHFCQUFhLGNBQWM7SUFVdkIsUUFBUSxDQUFDLGVBQWUsRUFBRSxlQUFlO0lBVDNDLFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQWdCO0lBQzdDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQWdCO0lBRWpELE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQWdCO0lBQ3ZELE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQWdCO0lBRXRELFlBQ1csZUFBZSxFQUFFLGVBQWUsRUFDekMsSUFBSSxTQUFZLEVBV2pCO0lBRU0saUJBQWlCLENBQUMsUUFBUSxFQUFFLE1BQU0sUUFFeEM7SUFFTSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxRQUU1QztJQUVNLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxNQUFNLFFBRXpDO0lBRU0sbUJBQW1CLENBQUMsUUFBUSxFQUFFLE1BQU0sUUFFMUM7Q0FDRiJ9
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBRXRGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELHFCQUFhLGNBQWM7SUFVdkIsUUFBUSxDQUFDLGVBQWUsRUFBRSxlQUFlO0lBVDNDLFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQWdCO0lBQzdDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQWdCO0lBRWpELE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQWdCO0lBQ3ZELE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQWdCO0lBRXRELFlBQ1csZUFBZSxFQUFFLGVBQWUsRUFDekMsSUFBSSxTQUFZLEVBaUNqQjtJQUVNLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsUUFFcEQ7SUFFTSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLFFBRXhEO0lBRU0sa0JBQWtCLENBQUMsUUFBUSxFQUFFLGtCQUFrQixRQUVyRDtJQUVNLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsUUFFdEQ7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/metrics.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAiB,MAAM,yBAAyB,CAAC;AAEtF,qBAAa,cAAc;IAUvB,QAAQ,CAAC,eAAe,EAAE,eAAe;IAT3C,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IAEjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAgB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgB;IAEtD,YACW,eAAe,EAAE,eAAe,EACzC,IAAI,SAAY,EAWjB;IAEM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,QAExC;IAEM,qBAAqB,CAAC,QAAQ,EAAE,MAAM,QAE5C;IAEM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,QAEzC;IAEM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,QAE1C;CACF"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/metrics.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAiB,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,qBAAa,cAAc;IAUvB,QAAQ,CAAC,eAAe,EAAE,eAAe;IAT3C,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IAEjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAgB;IACvD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgB;IAEtD,YACW,eAAe,EAAE,eAAe,EACzC,IAAI,SAAY,EAiCjB;IAEM,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,QAEpD;IAEM,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,QAExD;IAEM,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,QAErD;IAEM,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,QAEtD;CACF"}
@@ -1,5 +1,6 @@
1
1
  // Request response metrics
2
- import { Attributes, Metrics } from '@aztec/telemetry-client';
2
+ import { Attributes, Metrics, createUpDownCounterWithDefault } from '@aztec/telemetry-client';
3
+ import { ReqRespSubProtocol } from './interface.js';
3
4
  export class ReqRespMetrics {
4
5
  telemetryClient;
5
6
  tracer;
@@ -11,10 +12,20 @@ export class ReqRespMetrics {
11
12
  this.telemetryClient = telemetryClient;
12
13
  this.tracer = telemetryClient.getTracer(name);
13
14
  const meter = telemetryClient.getMeter(name);
14
- this.sentRequests = meter.createUpDownCounter(Metrics.P2P_REQ_RESP_SENT_REQUESTS);
15
- this.receivedRequests = meter.createUpDownCounter(Metrics.P2P_REQ_RESP_RECEIVED_REQUESTS);
16
- this.failedOutboundRequests = meter.createUpDownCounter(Metrics.P2P_REQ_RESP_FAILED_OUTBOUND_REQUESTS);
17
- this.failedInboundRequests = meter.createUpDownCounter(Metrics.P2P_REQ_RESP_FAILED_INBOUND_REQUESTS);
15
+ const protocolAttrs = {
16
+ [Attributes.P2P_REQ_RESP_PROTOCOL]: [
17
+ ReqRespSubProtocol.PING,
18
+ ReqRespSubProtocol.STATUS,
19
+ ReqRespSubProtocol.GOODBYE,
20
+ ReqRespSubProtocol.TX,
21
+ ReqRespSubProtocol.AUTH,
22
+ ReqRespSubProtocol.BLOCK_TXS
23
+ ]
24
+ };
25
+ this.sentRequests = createUpDownCounterWithDefault(meter, Metrics.P2P_REQ_RESP_SENT_REQUESTS, protocolAttrs);
26
+ this.receivedRequests = createUpDownCounterWithDefault(meter, Metrics.P2P_REQ_RESP_RECEIVED_REQUESTS, protocolAttrs);
27
+ this.failedOutboundRequests = createUpDownCounterWithDefault(meter, Metrics.P2P_REQ_RESP_FAILED_OUTBOUND_REQUESTS, protocolAttrs);
28
+ this.failedInboundRequests = createUpDownCounterWithDefault(meter, Metrics.P2P_REQ_RESP_FAILED_INBOUND_REQUESTS, protocolAttrs);
18
29
  }
19
30
  recordRequestSent(protocol) {
20
31
  this.sentRequests.add(1, {
@@ -13,6 +13,10 @@ export declare class BitVector {
13
13
  * Returns all indices which are set to true
14
14
  * */
15
15
  getTrueIndices(): number[];
16
+ /**
17
+ * Returns true if no indices are set to true
18
+ * */
19
+ isEmpty(): boolean;
16
20
  /**
17
21
  * Serializes the BitVector object into a Buffer
18
22
  *
@@ -27,4 +31,4 @@ export declare class BitVector {
27
31
  static fromBuffer(buffer: Buffer | BufferReader): BitVector;
28
32
  static byteLength(length: number): number;
29
33
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0dmVjdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9wcm90b2NvbHMvYmxvY2tfdHhzL2JpdHZlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBSTlFOztHQUVHO0FBQ0gscUJBQWEsU0FBUztJQUNwQixPQUFPLENBQUMsTUFBTSxDQUFTO0lBQ3ZCLE9BQU8sQ0FBQyxNQUFNLENBQVM7SUFFdkIsWUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBR3pDO0lBU0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBbUJ4RDtJQUVELFNBQVMsSUFBSSxNQUFNLENBRWxCO0lBU0QsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUU1QjtJQUVEOztTQUVLO0lBQ0wsY0FBYyxJQUFJLE1BQU0sRUFBRSxDQUV6QjtJQUVEOzs7O1NBSUs7SUFDTCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVEOzs7O1NBSUs7SUFDTCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFNBQVMsQ0FhMUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLFVBRS9CO0NBQ0YifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0dmVjdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9wcm90b2NvbHMvYmxvY2tfdHhzL2JpdHZlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBSTlFOztHQUVHO0FBQ0gscUJBQWEsU0FBUztJQUNwQixPQUFPLENBQUMsTUFBTSxDQUFTO0lBQ3ZCLE9BQU8sQ0FBQyxNQUFNLENBQVM7SUFFdkIsWUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBR3pDO0lBU0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBbUJ4RDtJQUVELFNBQVMsSUFBSSxNQUFNLENBRWxCO0lBU0QsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUU1QjtJQUVEOztTQUVLO0lBQ0wsY0FBYyxJQUFJLE1BQU0sRUFBRSxDQUV6QjtJQUVEOztTQUVLO0lBQ0wsT0FBTyxJQUFJLE9BQU8sQ0FFakI7SUFFRDs7OztTQUlLO0lBQ0wsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRDs7OztTQUlLO0lBQ0wsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxTQUFTLENBYTFEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxVQUUvQjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"bitvector.d.ts","sourceRoot":"","sources":["../../../../../src/services/reqresp/protocols/block_txs/bitvector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IAEvB,YAAY,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAGzC;IASD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAmBxD;IAED,SAAS,IAAI,MAAM,CAElB;IASD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5B;IAED;;SAEK;IACL,cAAc,IAAI,MAAM,EAAE,CAEzB;IAED;;;;SAIK;IACL,QAAQ,IAAI,MAAM,CAEjB;IAED;;;;SAIK;IACL,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAa1D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,UAE/B;CACF"}
1
+ {"version":3,"file":"bitvector.d.ts","sourceRoot":"","sources":["../../../../../src/services/reqresp/protocols/block_txs/bitvector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAI9E;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IAEvB,YAAY,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAGzC;IASD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAmBxD;IAED,SAAS,IAAI,MAAM,CAElB;IASD,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5B;IAED;;SAEK;IACL,cAAc,IAAI,MAAM,EAAE,CAEzB;IAED;;SAEK;IACL,OAAO,IAAI,OAAO,CAEjB;IAED;;;;SAIK;IACL,QAAQ,IAAI,MAAM,CAEjB;IAED;;;;SAIK;IACL,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAa1D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,UAE/B;CACF"}
@@ -51,6 +51,11 @@ import { MAX_TXS_PER_BLOCK } from '../../constants.js';
51
51
  }, (_, i)=>i).filter((i)=>this.isSet(i));
52
52
  }
53
53
  /**
54
+ * Returns true if no indices are set to true
55
+ * */ isEmpty() {
56
+ return this.getTrueIndices().length === 0;
57
+ }
58
+ /**
54
59
  * Serializes the BitVector object into a Buffer
55
60
  *
56
61
  * @returns Buffer representation of the BitVector object
@@ -1,11 +1,13 @@
1
- import type { AttestationPool } from '../../../../mem_pools/attestation_pool/attestation_pool.js';
2
- import type { TxPool } from '../../../../mem_pools/index.js';
1
+ import type { L2BlockSource } from '@aztec/stdlib/block';
2
+ import type { AttestationPoolApi } from '../../../../mem_pools/attestation_pool/attestation_pool.js';
3
+ import type { TxPoolV2 } from '../../../../mem_pools/tx_pool_v2/interfaces.js';
3
4
  import type { ReqRespSubProtocolHandler } from '../../interface.js';
4
5
  /**
5
6
  * Handler for block txs requests
6
7
  * @param attestationPool - the attestation pool to check for block proposals
7
- * @param mempools - the mempools containing the tx pool
8
+ * @param archiver - the archiver to look up blocks by archive root
9
+ * @param txPool - the tx pool to fetch transactions from
8
10
  * @returns the BlockTxs request handler
9
11
  */
10
- export declare function reqRespBlockTxsHandler(attestationPool: AttestationPool, txPool: TxPool): ReqRespSubProtocolHandler;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX2hhbmRsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDbEcsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUtwRTs7Ozs7R0FLRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcseUJBQXlCLENBbUNsSCJ9
12
+ export declare function reqRespBlockTxsHandler(attestationPool: AttestationPoolApi, archiver: L2BlockSource, txPool: TxPoolV2): ReqRespSubProtocolHandler;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX2hhbmRsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLekQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3BFOzs7Ozs7R0FNRztBQUNILHdCQUFnQixzQkFBc0IsQ0FDcEMsZUFBZSxFQUFFLGtCQUFrQixFQUNuQyxRQUFRLEVBQUUsYUFBYSxFQUN2QixNQUFNLEVBQUUsUUFBUSxHQUNmLHlCQUF5QixDQW1EM0IifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"block_txs_handler.d.ts","sourceRoot":"","sources":["../../../../../src/services/reqresp/protocols/block_txs/block_txs_handler.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4DAA4D,CAAC;AAClG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAKpE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAmClH"}
1
+ {"version":3,"file":"block_txs_handler.d.ts","sourceRoot":"","sources":["../../../../../src/services/reqresp/protocols/block_txs/block_txs_handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;AACrG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAKpE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,kBAAkB,EACnC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,QAAQ,GACf,yBAAyB,CAmD3B"}
@@ -1,3 +1,4 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
1
2
  import { TxArray } from '@aztec/stdlib/tx';
2
3
  import { ReqRespStatus, ReqRespStatusError } from '../../status.js';
3
4
  import { BitVector } from './bitvector.js';
@@ -5,9 +6,10 @@ import { BlockTxsRequest, BlockTxsResponse } from './block_txs_reqresp.js';
5
6
  /**
6
7
  * Handler for block txs requests
7
8
  * @param attestationPool - the attestation pool to check for block proposals
8
- * @param mempools - the mempools containing the tx pool
9
+ * @param archiver - the archiver to look up blocks by archive root
10
+ * @param txPool - the tx pool to fetch transactions from
9
11
  * @returns the BlockTxs request handler
10
- */ export function reqRespBlockTxsHandler(attestationPool, txPool) {
12
+ */ export function reqRespBlockTxsHandler(attestationPool, archiver, txPool) {
11
13
  /**
12
14
  * Handler for block txs requests
13
15
  * @param msg - the block txs request message
@@ -22,18 +24,34 @@ import { BlockTxsRequest, BlockTxsResponse } from './block_txs_reqresp.js';
22
24
  cause: err
23
25
  });
24
26
  }
25
- const blockProposal = await attestationPool.getBlockProposal(request.blockHash.toString());
26
- if (!blockProposal) {
27
+ // First try attestation pool, then fall back to archiver
28
+ let txHashes = (await attestationPool.getBlockProposal(request.archiveRoot.toString()))?.txHashes;
29
+ if (!txHashes) {
30
+ txHashes = (await archiver.getL2BlockByArchive(request.archiveRoot))?.body.txEffects.map((effect)=>effect.txHash);
31
+ }
32
+ let requestedTxsHashes;
33
+ if (request.txHashes.length > 0) {
34
+ requestedTxsHashes = request.txHashes;
35
+ }
36
+ // This is scenario in which we don't have this block the peer is requesting from us
37
+ // But peer has sent requested tx hashes, so we can send them the transactions
38
+ if (!txHashes && requestedTxsHashes !== undefined) {
39
+ const responseTxs = (await txPool.getTxsByHash(requestedTxsHashes)).filter((tx)=>!!tx);
40
+ const response = new BlockTxsResponse(Fr.zero(), new TxArray(...responseTxs), BitVector.init(0, []));
41
+ return response.toBuffer();
42
+ }
43
+ // If we don't have this block and peer has not sent requested tx hashes
44
+ if (!txHashes) {
27
45
  throw new ReqRespStatusError(ReqRespStatus.NOT_FOUND);
28
46
  }
29
- const txsAvailableInPool = await txPool.hasTxs(blockProposal.txHashes);
30
- //Map txs in the pool to their indices in the block proposal
47
+ const txsAvailableInPool = await txPool.hasTxs(txHashes);
48
+ // Map txs in the pool to their indices in the block
31
49
  const availableIndices = txsAvailableInPool.map((hasTx, idx)=>hasTx ? idx : -1).filter((idx)=>idx !== -1);
32
- const responseBitVector = BitVector.init(blockProposal.txHashes.length, availableIndices);
50
+ const responseBitVector = BitVector.init(txHashes.length, availableIndices);
33
51
  const requestedIndices = new Set(request.txIndices.getTrueIndices());
34
- const requestedTxsHashes = blockProposal.txHashes.filter((_, idx)=>requestedIndices.has(idx));
52
+ requestedTxsHashes = txHashes.filter((_, idx)=>requestedIndices.has(idx));
35
53
  const responseTxs = (await txPool.getTxsByHash(requestedTxsHashes)).filter((tx)=>!!tx);
36
- const response = new BlockTxsResponse(request.blockHash, new TxArray(...responseTxs), responseBitVector);
54
+ const response = new BlockTxsResponse(request.archiveRoot, new TxArray(...responseTxs), responseBitVector);
37
55
  return response.toBuffer();
38
56
  };
39
57
  }
@@ -1,14 +1,31 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { BufferReader } from '@aztec/foundation/serialize';
3
- import { TxArray } from '@aztec/stdlib/tx';
3
+ import { TxArray, type TxHash, TxHashArray } from '@aztec/stdlib/tx';
4
4
  import { BitVector } from './bitvector.js';
5
+ /** Minimal interface for a block source that provides tx hashes and an archive root. */
6
+ export interface BlockTxsSource {
7
+ txHashes: TxHash[];
8
+ archive: Fr;
9
+ }
5
10
  /**
6
11
  * Request message for requesting specific transactions from a block
7
12
  */
8
13
  export declare class BlockTxsRequest {
9
- readonly blockHash: Fr;
14
+ readonly archiveRoot: Fr;
15
+ readonly txHashes: TxHashArray;
10
16
  readonly txIndices: BitVector;
11
- constructor(blockHash: Fr, txIndices: BitVector);
17
+ constructor(archiveRoot: Fr, txHashes: TxHashArray, txIndices: BitVector);
18
+ /**
19
+ * Creates new BlockTxsRequest given a block txs source and missing tx hashes.
20
+ *
21
+ * @param blockTxsSource - The block or proposal for which we are making the request
22
+ * @param missingTxHashes - Tx hashes from the source we are missing
23
+ * @param includeFullTxHashes - Whether to include full list of missing tx hashes in the request or just Bitvector indices
24
+ *
25
+ * @returns undefined if there were no missingTxHashes matching the source hashes, otherwise
26
+ * returns new BlockTxsRequest
27
+ */
28
+ static fromTxsSourceAndMissingTxs(blockTxsSource: BlockTxsSource, missingTxHashes: TxHash[], includeFullTxHashes?: boolean): BlockTxsRequest | undefined;
12
29
  /**
13
30
  * Deserializes the BlockTxRequest object from a Buffer
14
31
  * @param buffer - Buffer or BufferReader object to deserialize
@@ -25,10 +42,10 @@ export declare class BlockTxsRequest {
25
42
  * Response message containing requested transactions from a block
26
43
  */
27
44
  export declare class BlockTxsResponse {
28
- readonly blockHash: Fr;
45
+ readonly archiveRoot: Fr;
29
46
  readonly txs: TxArray;
30
47
  readonly txIndices: BitVector;
31
- constructor(blockHash: Fr, txs: TxArray, txIndices: BitVector);
48
+ constructor(archiveRoot: Fr, txs: TxArray, txIndices: BitVector);
32
49
  /**
33
50
  * Deserializes the BlockTxResponse object from a Buffer
34
51
  * @param buffer - Buffer or BufferReader object to deserialize
@@ -44,4 +61,10 @@ export declare class BlockTxsResponse {
44
61
  toBuffer(): Buffer;
45
62
  static empty(): BlockTxsResponse;
46
63
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX3JlcXJlc3AuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX3JlcXJlc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQzs7R0FFRztBQUNILHFCQUFhLGVBQWU7SUFFeEIsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFO0lBR3RCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUztJQUovQixZQUNXLFNBQVMsRUFBRSxFQUFFLEVBR2IsU0FBUyxFQUFFLFNBQVMsRUFDM0I7SUFFSjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxlQUFlLENBTWhFO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FFakI7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsZ0JBQWdCO0lBRXpCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRTtJQUN0QixRQUFRLENBQUMsR0FBRyxFQUFFLE9BQU87SUFHckIsUUFBUSxDQUFDLFNBQVMsRUFBRSxTQUFTO0lBTC9CLFlBQ1csU0FBUyxFQUFFLEVBQUUsRUFDYixHQUFHLEVBQUUsT0FBTyxFQUdaLFNBQVMsRUFBRSxTQUFTLEVBQzNCO0lBRUo7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsZ0JBQWdCLENBT2pFO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksZ0JBQWdCLENBRS9CO0NBQ0YifQ==
64
+ /**
65
+ * Calculate the expected response size for a BLOCK_TXS request.
66
+ * @param requestBuffer - The serialized request buffer containing BlockTxsRequest
67
+ * @returns Expected response size in KB
68
+ */
69
+ export declare function calculateBlockTxsResponseSize(requestBuffer: Buffer): number;
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX3JlcXJlc3AuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX3JlcXJlc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFFOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0Msd0ZBQXdGO0FBQ3hGLE1BQU0sV0FBVyxjQUFjO0lBQzdCLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuQixPQUFPLEVBQUUsRUFBRSxDQUFDO0NBQ2I7QUFFRDs7R0FFRztBQUNILHFCQUFhLGVBQWU7SUFHeEIsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBRXhCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsV0FBVztJQUs5QixRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVM7SUFUL0IsWUFFVyxXQUFXLEVBQUUsRUFBRSxFQUVmLFFBQVEsRUFBRSxXQUFXLEVBS3JCLFNBQVMsRUFBRSxTQUFTLEVBQzNCO0lBRUo7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUMvQixjQUFjLEVBQUUsY0FBYyxFQUM5QixlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQ3pCLG1CQUFtQixVQUFRLEdBQzFCLGVBQWUsR0FBRyxTQUFTLENBb0I3QjtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGVBQWUsQ0FPaEU7SUFFRDs7O09BR0c7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxnQkFBZ0I7SUFFekIsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBQ3hCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTztJQUdyQixRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVM7SUFML0IsWUFDVyxXQUFXLEVBQUUsRUFBRSxFQUNmLEdBQUcsRUFBRSxPQUFPLEVBR1osU0FBUyxFQUFFLFNBQVMsRUFDM0I7SUFFSjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxnQkFBZ0IsQ0FPakU7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FFL0I7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsNkJBQTZCLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBUzNFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"block_txs_reqresp.d.ts","sourceRoot":"","sources":["../../../../../src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,qBAAa,eAAe;IAExB,QAAQ,CAAC,SAAS,EAAE,EAAE;IAGtB,QAAQ,CAAC,SAAS,EAAE,SAAS;IAJ/B,YACW,SAAS,EAAE,EAAE,EAGb,SAAS,EAAE,SAAS,EAC3B;IAEJ;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,CAMhE;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAEjB;CACF;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,QAAQ,CAAC,SAAS,EAAE,EAAE;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO;IAGrB,QAAQ,CAAC,SAAS,EAAE,SAAS;IAL/B,YACW,SAAS,EAAE,EAAE,EACb,GAAG,EAAE,OAAO,EAGZ,SAAS,EAAE,SAAS,EAC3B;IAEJ;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAOjE;IAED;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;CACF"}
1
+ {"version":3,"file":"block_txs_reqresp.d.ts","sourceRoot":"","sources":["../../../../../src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,EAAE,CAAC;CACb;AAED;;GAEG;AACH,qBAAa,eAAe;IAGxB,QAAQ,CAAC,WAAW,EAAE,EAAE;IAExB,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAK9B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAT/B,YAEW,WAAW,EAAE,EAAE,EAEf,QAAQ,EAAE,WAAW,EAKrB,SAAS,EAAE,SAAS,EAC3B;IAEJ;;;;;;;;;OASG;IACH,MAAM,CAAC,0BAA0B,CAC/B,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,MAAM,EAAE,EACzB,mBAAmB,UAAQ,GAC1B,eAAe,GAAG,SAAS,CAoB7B;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,CAOhE;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAEjB;CACF;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,QAAQ,CAAC,WAAW,EAAE,EAAE;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO;IAGrB,QAAQ,CAAC,SAAS,EAAE,SAAS;IAL/B,YACW,WAAW,EAAE,EAAE,EACf,GAAG,EAAE,OAAO,EAGZ,SAAS,EAAE,SAAS,EAC3B;IAEJ;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAOjE;IAED;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;CACF;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAS3E"}
@@ -1,34 +1,66 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
- import { TxArray } from '@aztec/stdlib/tx';
3
+ import { MAX_TX_SIZE_KB } from '@aztec/stdlib/p2p';
4
+ import { TxArray, TxHashArray } from '@aztec/stdlib/tx';
4
5
  import { BitVector } from './bitvector.js';
5
6
  /**
6
7
  * Request message for requesting specific transactions from a block
7
8
  */ export class BlockTxsRequest {
8
- blockHash;
9
+ archiveRoot;
10
+ txHashes;
9
11
  txIndices;
10
- constructor(blockHash, // BitVector indicating which txs from the proposal we are requesting
12
+ constructor(// Archive root after the proposed block is applied (proposal identifier)
13
+ archiveRoot, // Hashes of txs we are requesting
14
+ txHashes, // BitVector indicating which txs from the proposal we are requesting
11
15
  // 1 means we want the tx, 0 means we don't
16
+ // If we know peer has the Block Proposal then we can use this BitVector
17
+ // Otherwise we can use this optimization
12
18
  txIndices){
13
- this.blockHash = blockHash;
19
+ this.archiveRoot = archiveRoot;
20
+ this.txHashes = txHashes;
14
21
  this.txIndices = txIndices;
15
22
  }
16
23
  /**
24
+ * Creates new BlockTxsRequest given a block txs source and missing tx hashes.
25
+ *
26
+ * @param blockTxsSource - The block or proposal for which we are making the request
27
+ * @param missingTxHashes - Tx hashes from the source we are missing
28
+ * @param includeFullTxHashes - Whether to include full list of missing tx hashes in the request or just Bitvector indices
29
+ *
30
+ * @returns undefined if there were no missingTxHashes matching the source hashes, otherwise
31
+ * returns new BlockTxsRequest
32
+ */ static fromTxsSourceAndMissingTxs(blockTxsSource, missingTxHashes, includeFullTxHashes = false) {
33
+ if (missingTxHashes.length === 0) {
34
+ return undefined; // No missing txs to request
35
+ }
36
+ const missingHashesSet = new Set(missingTxHashes.map((t)=>t.toString()));
37
+ // We cannot request txs that are not part of the block
38
+ if (!missingHashesSet.isSubsetOf(new Set(blockTxsSource.txHashes.map((t)=>t.toString())))) {
39
+ return undefined;
40
+ }
41
+ const missingIndices = blockTxsSource.txHashes.map((hash, idx)=>missingHashesSet.has(hash.toString()) ? idx : -1).filter((i)=>i != -1);
42
+ const requestBitVector = BitVector.init(blockTxsSource.txHashes.length, missingIndices);
43
+ const hashes = includeFullTxHashes ? new TxHashArray(...missingTxHashes) : new TxHashArray();
44
+ return new BlockTxsRequest(blockTxsSource.archive, hashes, requestBitVector);
45
+ }
46
+ /**
17
47
  * Deserializes the BlockTxRequest object from a Buffer
18
48
  * @param buffer - Buffer or BufferReader object to deserialize
19
49
  * @returns An instance of BlockTxRequest
20
50
  */ static fromBuffer(buffer) {
21
51
  const reader = BufferReader.asReader(buffer);
22
- const blockHash = Fr.fromBuffer(reader);
52
+ const archiveRoot = Fr.fromBuffer(reader);
53
+ const txHashes = TxHashArray.fromBuffer(reader);
23
54
  const txIndices = BitVector.fromBuffer(reader);
24
- return new BlockTxsRequest(blockHash, txIndices);
55
+ return new BlockTxsRequest(archiveRoot, txHashes, txIndices);
25
56
  }
26
57
  /**
27
58
  * Serializes the BlockTxRequest object into a Buffer
28
59
  * @returns Buffer representation of the BlockTxRequest object
29
60
  */ toBuffer() {
30
61
  return serializeToBuffer([
31
- this.blockHash,
62
+ this.archiveRoot,
63
+ this.txHashes.toBuffer(),
32
64
  this.txIndices.toBuffer()
33
65
  ]);
34
66
  }
@@ -36,13 +68,13 @@ import { BitVector } from './bitvector.js';
36
68
  /**
37
69
  * Response message containing requested transactions from a block
38
70
  */ export class BlockTxsResponse {
39
- blockHash;
71
+ archiveRoot;
40
72
  txs;
41
73
  txIndices;
42
- constructor(blockHash, txs, // BitVector indicating which txs from the proposal are available at the peer
74
+ constructor(archiveRoot, txs, // BitVector indicating which txs from the proposal are available at the peer
43
75
  // 1 means the tx is available, 0 means it is not
44
76
  txIndices){
45
- this.blockHash = blockHash;
77
+ this.archiveRoot = archiveRoot;
46
78
  this.txs = txs;
47
79
  this.txIndices = txIndices;
48
80
  }
@@ -52,10 +84,10 @@ import { BitVector } from './bitvector.js';
52
84
  * @returns An instance of BlockTxResponse
53
85
  */ static fromBuffer(buffer) {
54
86
  const reader = BufferReader.asReader(buffer);
55
- const blockHash = Fr.fromBuffer(reader);
87
+ const archiveRoot = Fr.fromBuffer(reader);
56
88
  const txs = TxArray.fromBuffer(reader);
57
89
  const txIndices = BitVector.fromBuffer(reader);
58
- return new BlockTxsResponse(blockHash, txs, txIndices);
90
+ return new BlockTxsResponse(archiveRoot, txs, txIndices);
59
91
  }
60
92
  /**
61
93
  * Serializes the BlockTxResponse object into a Buffer
@@ -64,7 +96,7 @@ import { BitVector } from './bitvector.js';
64
96
  * @returns Buffer representation of the BlockTxResponse object
65
97
  */ toBuffer() {
66
98
  return serializeToBuffer([
67
- this.blockHash,
99
+ this.archiveRoot,
68
100
  this.txs.toBuffer(),
69
101
  this.txIndices.toBuffer()
70
102
  ]);
@@ -73,3 +105,17 @@ import { BitVector } from './bitvector.js';
73
105
  return new BlockTxsResponse(Fr.ZERO, new TxArray(), BitVector.init(0, []));
74
106
  }
75
107
  }
108
+ /**
109
+ * Calculate the expected response size for a BLOCK_TXS request.
110
+ * @param requestBuffer - The serialized request buffer containing BlockTxsRequest
111
+ * @returns Expected response size in KB
112
+ */ export function calculateBlockTxsResponseSize(requestBuffer) {
113
+ try {
114
+ const request = BlockTxsRequest.fromBuffer(requestBuffer);
115
+ const requestedTxCount = request.txIndices.getTrueIndices().length;
116
+ return requestedTxCount * MAX_TX_SIZE_KB + 1; // +1 KB overhead for serialization
117
+ } catch {
118
+ // If we can't parse the request, fall back to allowing a single transaction response
119
+ return MAX_TX_SIZE_KB + 1;
120
+ }
121
+ }