@aztec/p2p 0.0.1-commit.e558bd1c → 0.0.1-commit.e5a3663dd

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 (468) hide show
  1. package/README.md +129 -3
  2. package/dest/client/factory.d.ts +10 -9
  3. package/dest/client/factory.d.ts.map +1 -1
  4. package/dest/client/factory.js +54 -15
  5. package/dest/client/interface.d.ts +47 -34
  6. package/dest/client/interface.d.ts.map +1 -1
  7. package/dest/client/p2p_client.d.ts +39 -51
  8. package/dest/client/p2p_client.d.ts.map +1 -1
  9. package/dest/client/p2p_client.js +173 -226
  10. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +23 -10
  11. package/dest/config.d.ts +137 -92
  12. package/dest/config.d.ts.map +1 -1
  13. package/dest/config.js +113 -40
  14. package/dest/errors/p2p-service.error.d.ts +9 -0
  15. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  16. package/dest/errors/p2p-service.error.js +10 -0
  17. package/dest/errors/tx-pool.error.d.ts +8 -0
  18. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  19. package/dest/errors/tx-pool.error.js +9 -0
  20. package/dest/index.d.ts +2 -2
  21. package/dest/index.d.ts.map +1 -1
  22. package/dest/index.js +1 -1
  23. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +24 -13
  24. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  25. package/dest/mem_pools/attestation_pool/attestation_pool.js +80 -43
  26. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  27. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  28. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +57 -57
  29. package/dest/mem_pools/attestation_pool/index.d.ts +2 -2
  30. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  31. package/dest/mem_pools/attestation_pool/index.js +1 -1
  32. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  33. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/mocks.js +7 -5
  35. package/dest/mem_pools/index.d.ts +2 -2
  36. package/dest/mem_pools/index.d.ts.map +1 -1
  37. package/dest/mem_pools/instrumentation.d.ts +4 -2
  38. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  39. package/dest/mem_pools/instrumentation.js +33 -15
  40. package/dest/mem_pools/interface.d.ts +3 -3
  41. package/dest/mem_pools/interface.d.ts.map +1 -1
  42. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  43. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  44. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  45. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +3 -3
  46. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -1
  47. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +18 -9
  48. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  49. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  50. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +7 -3
  51. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +3 -3
  52. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +12 -4
  54. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +3 -2
  55. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  56. package/dest/mem_pools/tx_pool_v2/eviction/index.js +2 -1
  57. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  58. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +54 -5
  61. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  62. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +8 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +7 -5
  64. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +9 -7
  65. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
  66. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  67. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +14 -6
  68. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +4 -4
  69. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  70. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +16 -4
  71. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +3 -3
  72. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  73. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +3 -3
  74. package/dest/mem_pools/tx_pool_v2/index.d.ts +3 -2
  75. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  76. package/dest/mem_pools/tx_pool_v2/index.js +2 -1
  77. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  78. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  79. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  80. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +33 -12
  81. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  82. package/dest/mem_pools/tx_pool_v2/interfaces.js +5 -1
  83. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +81 -15
  84. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  85. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +147 -19
  86. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +12 -3
  87. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  88. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +50 -45
  89. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +12 -5
  90. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  91. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +17 -6
  92. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +14 -5
  93. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  94. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +365 -189
  95. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +9 -3
  96. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  97. package/dest/msg_validators/attestation_validator/attestation_validator.js +37 -12
  98. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +7 -3
  99. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  100. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +2 -2
  101. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  102. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  103. package/dest/msg_validators/clock_tolerance.js +61 -3
  104. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -4
  105. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  106. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  107. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -4
  108. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  109. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  110. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +19 -8
  111. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  112. package/dest/msg_validators/proposal_validator/proposal_validator.js +88 -44
  113. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  114. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  115. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  116. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  117. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  118. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  119. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  120. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  121. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  122. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  123. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +16 -3
  124. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
  126. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  127. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  128. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  129. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  130. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/tx_validator/data_validator.js +35 -2
  132. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +13 -3
  133. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/tx_validator/double_spend_validator.js +4 -4
  135. package/dest/msg_validators/tx_validator/factory.d.ts +133 -6
  136. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  137. package/dest/msg_validators/tx_validator/factory.js +247 -60
  138. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  139. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  141. package/dest/msg_validators/tx_validator/gas_validator.d.ts +99 -3
  142. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/gas_validator.js +137 -53
  144. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  145. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/index.js +2 -0
  147. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  148. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  149. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  150. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  151. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  152. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  153. package/dest/msg_validators/tx_validator/phases_validator.d.ts +22 -2
  154. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/phases_validator.js +72 -24
  156. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +20 -4
  157. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  158. package/dest/msg_validators/tx_validator/timestamp_validator.js +6 -6
  159. package/dest/services/data_store.d.ts +1 -1
  160. package/dest/services/data_store.d.ts.map +1 -1
  161. package/dest/services/data_store.js +5 -5
  162. package/dest/services/dummy_service.d.ts +13 -6
  163. package/dest/services/dummy_service.d.ts.map +1 -1
  164. package/dest/services/dummy_service.js +13 -5
  165. package/dest/services/encoding.d.ts +7 -3
  166. package/dest/services/encoding.d.ts.map +1 -1
  167. package/dest/services/encoding.js +18 -11
  168. package/dest/services/gossipsub/index.d.ts +3 -0
  169. package/dest/services/gossipsub/index.d.ts.map +1 -0
  170. package/dest/services/gossipsub/index.js +2 -0
  171. package/dest/services/gossipsub/scoring.d.ts +21 -3
  172. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  173. package/dest/services/gossipsub/scoring.js +24 -7
  174. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  175. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  176. package/dest/services/gossipsub/topic_score_params.js +363 -0
  177. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  178. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  179. package/dest/services/libp2p/instrumentation.js +14 -0
  180. package/dest/services/libp2p/libp2p_service.d.ts +42 -39
  181. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  182. package/dest/services/libp2p/libp2p_service.js +336 -269
  183. package/dest/services/peer-manager/metrics.d.ts +3 -1
  184. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  185. package/dest/services/peer-manager/metrics.js +6 -0
  186. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  187. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  188. package/dest/services/peer-manager/peer_manager.js +39 -11
  189. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  190. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  191. package/dest/services/peer-manager/peer_scoring.js +57 -12
  192. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +12 -8
  193. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  194. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +83 -106
  195. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +4 -7
  196. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  197. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +11 -13
  198. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  199. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +31 -46
  200. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -11
  201. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  202. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +52 -15
  203. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
  204. package/dest/services/reqresp/config.d.ts +3 -3
  205. package/dest/services/reqresp/config.d.ts.map +1 -1
  206. package/dest/services/reqresp/interface.d.ts +23 -9
  207. package/dest/services/reqresp/interface.d.ts.map +1 -1
  208. package/dest/services/reqresp/interface.js +23 -10
  209. package/dest/services/reqresp/metrics.d.ts +1 -1
  210. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  211. package/dest/services/reqresp/metrics.js +0 -1
  212. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +3 -3
  213. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  214. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +7 -1
  215. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  216. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +15 -0
  217. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  218. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  219. package/dest/services/reqresp/protocols/index.js +0 -1
  220. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  221. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  222. package/dest/services/reqresp/protocols/tx.js +21 -3
  223. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  224. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  225. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  226. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  227. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  228. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  229. package/dest/services/reqresp/reqresp.d.ts +4 -2
  230. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  231. package/dest/services/reqresp/reqresp.js +40 -15
  232. package/dest/services/service.d.ts +26 -4
  233. package/dest/services/service.d.ts.map +1 -1
  234. package/dest/services/tx_collection/config.d.ts +19 -1
  235. package/dest/services/tx_collection/config.d.ts.map +1 -1
  236. package/dest/services/tx_collection/config.js +46 -0
  237. package/dest/services/tx_collection/fast_tx_collection.d.ts +3 -4
  238. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  239. package/dest/services/tx_collection/fast_tx_collection.js +80 -76
  240. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  241. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  242. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  243. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  244. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  245. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  246. package/dest/services/tx_collection/index.d.ts +2 -1
  247. package/dest/services/tx_collection/index.d.ts.map +1 -1
  248. package/dest/services/tx_collection/index.js +1 -0
  249. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  250. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  251. package/dest/services/tx_collection/instrumentation.js +2 -1
  252. package/dest/services/tx_collection/proposal_tx_collector.d.ts +7 -7
  253. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  254. package/dest/services/tx_collection/proposal_tx_collector.js +5 -4
  255. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  256. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  257. package/dest/services/tx_collection/request_tracker.js +84 -0
  258. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  259. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  260. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  261. package/dest/services/tx_collection/tx_collection.d.ts +23 -13
  262. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  263. package/dest/services/tx_collection/tx_collection.js +75 -3
  264. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  265. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  266. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  267. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  268. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  269. package/dest/services/tx_collection/tx_source.js +26 -7
  270. package/dest/services/tx_file_store/config.d.ts +1 -3
  271. package/dest/services/tx_file_store/config.d.ts.map +1 -1
  272. package/dest/services/tx_file_store/config.js +0 -4
  273. package/dest/services/tx_file_store/tx_file_store.d.ts +4 -3
  274. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
  275. package/dest/services/tx_file_store/tx_file_store.js +9 -6
  276. package/dest/services/tx_provider.d.ts +4 -4
  277. package/dest/services/tx_provider.d.ts.map +1 -1
  278. package/dest/services/tx_provider.js +9 -8
  279. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  280. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  281. package/dest/test-helpers/make-test-p2p-clients.js +4 -2
  282. package/dest/test-helpers/mock-pubsub.d.ts +40 -6
  283. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  284. package/dest/test-helpers/mock-pubsub.js +139 -13
  285. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  286. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  287. package/dest/test-helpers/reqresp-nodes.js +8 -5
  288. package/dest/test-helpers/testbench-utils.d.ts +35 -24
  289. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  290. package/dest/test-helpers/testbench-utils.js +125 -38
  291. package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -2
  292. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  293. package/dest/testbench/p2p_client_testbench_worker.js +84 -27
  294. package/dest/testbench/worker_client_manager.d.ts +10 -1
  295. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  296. package/dest/testbench/worker_client_manager.js +55 -3
  297. package/dest/util.d.ts +3 -3
  298. package/dest/util.d.ts.map +1 -1
  299. package/package.json +14 -14
  300. package/src/client/factory.ts +108 -26
  301. package/src/client/interface.ts +52 -34
  302. package/src/client/p2p_client.ts +201 -269
  303. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +35 -14
  304. package/src/config.ts +181 -46
  305. package/src/errors/p2p-service.error.ts +11 -0
  306. package/src/errors/tx-pool.error.ts +12 -0
  307. package/src/index.ts +1 -1
  308. package/src/mem_pools/attestation_pool/attestation_pool.ts +109 -53
  309. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +61 -57
  310. package/src/mem_pools/attestation_pool/index.ts +3 -3
  311. package/src/mem_pools/attestation_pool/mocks.ts +14 -8
  312. package/src/mem_pools/index.ts +1 -1
  313. package/src/mem_pools/instrumentation.ts +22 -14
  314. package/src/mem_pools/interface.ts +2 -2
  315. package/src/mem_pools/tx_pool_v2/README.md +85 -11
  316. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  317. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +21 -8
  318. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +7 -3
  319. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +18 -4
  320. package/src/mem_pools/tx_pool_v2/eviction/index.ts +5 -0
  321. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  322. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +59 -4
  323. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +5 -5
  324. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +8 -8
  325. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +14 -9
  326. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +33 -6
  327. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +4 -3
  328. package/src/mem_pools/tx_pool_v2/index.ts +2 -1
  329. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  330. package/src/mem_pools/tx_pool_v2/interfaces.ts +35 -12
  331. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +215 -27
  332. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +58 -45
  333. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +34 -8
  334. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +412 -187
  335. package/src/msg_validators/attestation_validator/README.md +49 -0
  336. package/src/msg_validators/attestation_validator/attestation_validator.ts +41 -9
  337. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +12 -2
  338. package/src/msg_validators/clock_tolerance.ts +79 -3
  339. package/src/msg_validators/proposal_validator/README.md +123 -0
  340. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +23 -4
  341. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +34 -7
  342. package/src/msg_validators/proposal_validator/proposal_validator.ts +111 -47
  343. package/src/msg_validators/tx_validator/README.md +127 -0
  344. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  345. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  346. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  347. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  348. package/src/msg_validators/tx_validator/block_header_validator.ts +15 -3
  349. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  350. package/src/msg_validators/tx_validator/data_validator.ts +42 -1
  351. package/src/msg_validators/tx_validator/double_spend_validator.ts +11 -6
  352. package/src/msg_validators/tx_validator/factory.ts +396 -78
  353. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  354. package/src/msg_validators/tx_validator/gas_validator.ts +199 -54
  355. package/src/msg_validators/tx_validator/index.ts +2 -0
  356. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  357. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  358. package/src/msg_validators/tx_validator/phases_validator.ts +82 -27
  359. package/src/msg_validators/tx_validator/timestamp_validator.ts +23 -18
  360. package/src/services/data_store.ts +5 -13
  361. package/src/services/dummy_service.ts +19 -7
  362. package/src/services/encoding.ts +18 -10
  363. package/src/services/gossipsub/README.md +641 -0
  364. package/src/services/gossipsub/index.ts +2 -0
  365. package/src/services/gossipsub/scoring.ts +29 -5
  366. package/src/services/gossipsub/topic_score_params.ts +519 -0
  367. package/src/services/libp2p/instrumentation.ts +14 -0
  368. package/src/services/libp2p/libp2p_service.ts +358 -298
  369. package/src/services/peer-manager/metrics.ts +7 -0
  370. package/src/services/peer-manager/peer_manager.ts +45 -11
  371. package/src/services/peer-manager/peer_scoring.ts +52 -5
  372. package/src/services/reqresp/README.md +229 -0
  373. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  374. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +79 -112
  375. package/src/services/reqresp/batch-tx-requester/interface.ts +3 -6
  376. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +30 -71
  377. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
  378. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
  379. package/src/services/reqresp/config.ts +2 -2
  380. package/src/services/reqresp/interface.ts +45 -10
  381. package/src/services/reqresp/metrics.ts +0 -1
  382. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +2 -2
  383. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +17 -0
  384. package/src/services/reqresp/protocols/index.ts +0 -1
  385. package/src/services/reqresp/protocols/tx.ts +23 -3
  386. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  387. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  388. package/src/services/reqresp/reqresp.ts +53 -16
  389. package/src/services/service.ts +37 -3
  390. package/src/services/tx_collection/config.ts +68 -0
  391. package/src/services/tx_collection/fast_tx_collection.ts +83 -76
  392. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  393. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  394. package/src/services/tx_collection/index.ts +1 -0
  395. package/src/services/tx_collection/instrumentation.ts +7 -1
  396. package/src/services/tx_collection/proposal_tx_collector.ts +9 -13
  397. package/src/services/tx_collection/request_tracker.ts +127 -0
  398. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  399. package/src/services/tx_collection/tx_collection.ts +114 -19
  400. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  401. package/src/services/tx_collection/tx_source.ts +28 -8
  402. package/src/services/tx_file_store/config.ts +0 -6
  403. package/src/services/tx_file_store/tx_file_store.ts +10 -8
  404. package/src/services/tx_provider.ts +10 -9
  405. package/src/test-helpers/make-test-p2p-clients.ts +6 -6
  406. package/src/test-helpers/mock-pubsub.ts +180 -14
  407. package/src/test-helpers/reqresp-nodes.ts +9 -9
  408. package/src/test-helpers/testbench-utils.ts +147 -43
  409. package/src/testbench/p2p_client_testbench_worker.ts +93 -30
  410. package/src/testbench/worker_client_manager.ts +68 -6
  411. package/src/util.ts +8 -2
  412. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  413. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  414. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  415. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  416. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  417. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  418. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  419. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  420. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  421. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  422. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  423. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  424. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  425. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  426. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
  427. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  428. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  429. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  430. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  431. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  432. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  433. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  434. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  435. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  436. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  437. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  438. package/dest/mem_pools/tx_pool/index.js +0 -2
  439. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  440. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  441. package/dest/mem_pools/tx_pool/priority.js +0 -15
  442. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  443. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  444. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  445. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  446. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  447. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  448. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  449. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  450. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  451. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  452. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  453. package/dest/services/reqresp/protocols/block.js +0 -32
  454. package/src/mem_pools/tx_pool/README.md +0 -270
  455. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  456. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  457. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  458. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  459. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  460. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  461. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  462. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  463. package/src/mem_pools/tx_pool/index.ts +0 -2
  464. package/src/mem_pools/tx_pool/priority.ts +0 -20
  465. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  466. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  467. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  468. package/src/services/reqresp/protocols/block.ts +0 -37
@@ -1,14 +1,16 @@
1
1
  import type { DateProvider } from '@aztec/foundation/timer';
2
2
  import type { PeerErrorSeverity } from '@aztec/stdlib/p2p';
3
3
  import type { PeerId } from '@libp2p/interface';
4
+ import type { ConnectionSampler } from '../connection-sampler/connection_sampler.js';
4
5
  import type { IPeerPenalizer } from './interface.js';
5
6
  export declare const RATE_LIMIT_EXCEEDED_PEER_CACHE_TTL = 1000;
6
7
  export interface IPeerCollection {
7
- getAllPeers(): Set<string>;
8
- getSmartPeers(): Set<string>;
9
8
  markPeerSmart(peerId: PeerId): void;
10
- getSmartPeersToQuery(): Array<string>;
11
- getDumbPeersToQuery(): Array<string>;
9
+ markPeerDumb(peerId: PeerId): void;
10
+ /** Sample next peer in round-robin fashion. No smart peers if returns undefined */
11
+ nextSmartPeerToQuery(): PeerId | undefined;
12
+ /** Sample next peer in round-robin fashion. No dumb peers if returns undefined */
13
+ nextDumbPeerToQuery(): PeerId | undefined;
12
14
  thereAreSomeDumbRatelimitExceededPeers(): boolean;
13
15
  penalisePeer(peerId: PeerId, severity: PeerErrorSeverity): void;
14
16
  unMarkPeerAsBad(peerId: PeerId): void;
@@ -22,22 +24,26 @@ export interface IPeerCollection {
22
24
  getNextSmartPeerAvailabilityDelayMs(): number | undefined;
23
25
  }
24
26
  export declare class PeerCollection implements IPeerCollection {
27
+ private readonly connectionSampler;
25
28
  private readonly pinnedPeerId;
26
29
  private readonly dateProvider;
27
30
  private readonly badPeerThreshold;
28
31
  private readonly peerPenalizer?;
29
- private readonly peers;
30
32
  private readonly smartPeers;
31
33
  private readonly inFlightPeers;
32
34
  private readonly rateLimitExceededPeers;
33
35
  private readonly peerPenaltyCounters;
34
36
  private readonly badPeers;
35
- constructor(initialPeers: PeerId[], pinnedPeerId: PeerId | undefined, dateProvider: DateProvider, badPeerThreshold?: number, peerPenalizer?: IPeerPenalizer | undefined);
36
- getAllPeers(): Set<string>;
37
- getSmartPeers(): Set<string>;
37
+ constructor(connectionSampler: Pick<ConnectionSampler, 'getPeerListSortedByConnectionCountAsc'>, pinnedPeerId: PeerId | undefined, dateProvider: DateProvider, badPeerThreshold?: number, peerPenalizer?: IPeerPenalizer | undefined);
38
38
  markPeerSmart(peerId: PeerId): void;
39
- getSmartPeersToQuery(): Array<string>;
40
- getDumbPeersToQuery(): Array<string>;
39
+ markPeerDumb(peerId: PeerId): void;
40
+ private queriedSmartPeers;
41
+ private queriedDumbPeers;
42
+ private static nextPeer;
43
+ nextSmartPeerToQuery(): PeerId | undefined;
44
+ nextDumbPeerToQuery(): PeerId | undefined;
45
+ private get availableSmartPeers();
46
+ private get availableDumbPeers();
41
47
  thereAreSomeDumbRatelimitExceededPeers(): boolean;
42
48
  markPeerInFlight(peerId: PeerId): void;
43
49
  unMarkPeerInFlight(peerId: PeerId): void;
@@ -50,5 +56,7 @@ export declare class PeerCollection implements IPeerCollection {
50
56
  getNextDumbPeerAvailabilityDelayMs(): number | undefined;
51
57
  getNextSmartPeerAvailabilityDelayMs(): number | undefined;
52
58
  private getNextRateLimitDelayMs;
59
+ private orderedPeers;
60
+ private get peers();
53
61
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9iYXRjaC10eC1yZXF1ZXN0ZXIvcGVlcl9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsZUFBTyxNQUFNLGtDQUFrQyxPQUFPLENBQUM7QUFFdkQsTUFBTSxXQUFXLGVBQWU7SUFDOUIsV0FBVyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixhQUFhLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNwQyxvQkFBb0IsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsbUJBQW1CLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLHNDQUFzQyxJQUFJLE9BQU8sQ0FBQztJQUNsRCxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2hFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN0QyxXQUFXLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3pDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2hELHlCQUF5QixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6Qyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDNUQsa0NBQWtDLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN6RCxtQ0FBbUMsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDO0NBQzNEO0FBRUQscUJBQWEsY0FBZSxZQUFXLGVBQWU7SUFXbEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWTtJQUM3QixPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtJQUNqQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztJQWJqQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUV2QixPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBcUI7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQXFCO0lBQ25ELE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQTZCO0lBQ3BFLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQTZCO0lBQ2pFLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFxQjtJQUU5QyxZQUNFLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFDTCxZQUFZLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDaEMsWUFBWSxFQUFFLFlBQVksRUFDMUIsZ0JBQWdCLEdBQUUsTUFBc0QsRUFDeEUsYUFBYSxDQUFDLDRCQUFnQixFQVdoRDtJQUVNLFdBQVcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBRWhDO0lBRU0sYUFBYSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FFbEM7SUFFTSxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBRXpDO0lBRU0sb0JBQW9CLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUkzQztJQUVNLG1CQUFtQixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FNMUM7SUFFTSxzQ0FBc0MsSUFBSSxPQUFPLENBS3ZEO0lBRU0sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1BQU0sUUFFckM7SUFFTSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxRQU12QztJQUVNLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxNQUFNLFFBRzlDO0lBRU0seUJBQXlCLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQWE5QztJQUVNLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsR0FBRyxJQUFJLENBUXJFO0lBRU0sZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLFFBSXBDO0lBRU0sV0FBVyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FFaEM7SUFFTSx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBZWpFO0lBRU0sa0NBQWtDLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FXOUQ7SUFFTSxtQ0FBbUMsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUsvRDtJQUVELE9BQU8sQ0FBQyx1QkFBdUI7Q0EwQmhDIn0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9iYXRjaC10eC1yZXF1ZXN0ZXIvcGVlcl9jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVyRixPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxlQUFPLE1BQU0sa0NBQWtDLE9BQU8sQ0FBQztBQUV2RCxNQUFNLFdBQVcsZUFBZTtJQUM5QixhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDcEMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBRW5DLG1GQUFtRjtJQUNuRixvQkFBb0IsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQzNDLGtGQUFrRjtJQUNsRixtQkFBbUIsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBRTFDLHNDQUFzQyxJQUFJLE9BQU8sQ0FBQztJQUNsRCxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2hFLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN0QyxXQUFXLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3pDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ2hELHlCQUF5QixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6Qyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUM7SUFDNUQsa0NBQWtDLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUN6RCxtQ0FBbUMsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDO0NBQzNEO0FBRUQscUJBQWEsY0FBZSxZQUFXLGVBQWU7SUFRbEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7SUFDbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWTtJQUM3QixPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQjtJQUNqQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztJQVhqQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBcUI7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQXFCO0lBQ25ELE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQTZCO0lBQ3BFLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQTZCO0lBQ2pFLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFxQjtJQUU5QyxZQUNtQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsdUNBQXVDLENBQUMsRUFDbkYsWUFBWSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2hDLFlBQVksRUFBRSxZQUFZLEVBQzFCLGdCQUFnQixHQUFFLE1BQXNELEVBQ3hFLGFBQWEsQ0FBQyw0QkFBZ0IsRUFRaEQ7SUFFTSxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBRXpDO0lBRU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUV4QztJQUdELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBa0M7SUFDM0QsT0FBTyxDQUFDLGdCQUFnQixDQUFrQztJQUUxRCxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVE7SUFlaEIsb0JBQW9CLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FFaEQ7SUFFTSxtQkFBbUIsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUUvQztJQUVELE9BQU8sS0FBSyxtQkFBbUIsR0FJOUI7SUFFRCxPQUFPLEtBQUssa0JBQWtCLEdBSTdCO0lBRU0sc0NBQXNDLElBQUksT0FBTyxDQUt2RDtJQUVNLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLFFBRXJDO0lBRU0sa0JBQWtCLENBQUMsTUFBTSxFQUFFLE1BQU0sUUFNdkM7SUFFTSx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxRQUc5QztJQUVNLHlCQUF5QixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FhOUM7SUFFTSxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEdBQUcsSUFBSSxDQVFyRTtJQUVNLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxRQUlwQztJQUVNLFdBQVcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBRWhDO0lBRU0sdUJBQXVCLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsU0FBUyxDQWVqRTtJQUVNLGtDQUFrQyxJQUFJLE1BQU0sR0FBRyxTQUFTLENBVzlEO0lBRU0sbUNBQW1DLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FLL0Q7SUFFRCxPQUFPLENBQUMsdUJBQXVCO0lBMkIvQixPQUFPLENBQUMsWUFBWSxDQUEwQjtJQUU5QyxPQUFPLEtBQUssS0FBSyxHQW1CaEI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"peer_collection.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/peer_collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer_collection.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/peer_collection.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,19 @@
1
+ import { peerIdFromString } from '@libp2p/peer-id';
1
2
  import { DEFAULT_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD } from './config.js';
2
3
  export const RATE_LIMIT_EXCEEDED_PEER_CACHE_TTL = 1000; // 1s
3
4
  export class PeerCollection {
5
+ connectionSampler;
4
6
  pinnedPeerId;
5
7
  dateProvider;
6
8
  badPeerThreshold;
7
9
  peerPenalizer;
8
- peers;
9
10
  smartPeers;
10
11
  inFlightPeers;
11
12
  rateLimitExceededPeers;
12
13
  peerPenaltyCounters;
13
14
  badPeers;
14
- constructor(initialPeers, pinnedPeerId, dateProvider, badPeerThreshold = DEFAULT_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD, peerPenalizer){
15
+ constructor(connectionSampler, pinnedPeerId, dateProvider, badPeerThreshold = DEFAULT_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD, peerPenalizer){
16
+ this.connectionSampler = connectionSampler;
15
17
  this.pinnedPeerId = pinnedPeerId;
16
18
  this.dateProvider = dateProvider;
17
19
  this.badPeerThreshold = badPeerThreshold;
@@ -21,29 +23,50 @@ export class PeerCollection {
21
23
  this.rateLimitExceededPeers = new Map();
22
24
  this.peerPenaltyCounters = new Map();
23
25
  this.badPeers = new Set();
24
- this.peers = new Set(initialPeers.map((peer)=>peer.toString()));
25
- // Pinned peer is treaded specially, always mark it as in-flight
26
+ this.queriedSmartPeers = new Set();
27
+ this.queriedDumbPeers = new Set();
28
+ this.orderedPeers = new Set();
29
+ // Pinned peer is treated specially, always mark it as in-flight
26
30
  // and never return it as part of smart/dumb peers
27
31
  if (this.pinnedPeerId) {
28
32
  const peerIdStr = this.pinnedPeerId.toString();
29
33
  this.inFlightPeers.add(peerIdStr);
30
- this.peers.delete(peerIdStr);
31
34
  }
32
35
  }
33
- getAllPeers() {
34
- return this.peers;
35
- }
36
- getSmartPeers() {
37
- return this.smartPeers;
38
- }
39
36
  markPeerSmart(peerId) {
40
37
  this.smartPeers.add(peerId.toString());
41
38
  }
42
- getSmartPeersToQuery() {
43
- return Array.from(this.smartPeers.difference(this.getBadPeers().union(this.inFlightPeers).union(this.getRateLimitExceededPeers())));
39
+ markPeerDumb(peerId) {
40
+ this.smartPeers.delete(peerId.toString());
41
+ }
42
+ // We keep track of all peers that are queried for peer sampling algorithm
43
+ queriedSmartPeers;
44
+ queriedDumbPeers;
45
+ static nextPeer(allPeers, queried) {
46
+ if (allPeers.size === 0) {
47
+ return undefined;
48
+ }
49
+ const availablePeers = allPeers.difference(queried);
50
+ let [first] = availablePeers;
51
+ if (first === undefined) {
52
+ // We queried all peers. Start over
53
+ [first] = allPeers;
54
+ queried.clear();
55
+ }
56
+ queried.add(first);
57
+ return peerIdFromString(first);
58
+ }
59
+ nextSmartPeerToQuery() {
60
+ return PeerCollection.nextPeer(this.availableSmartPeers, this.queriedSmartPeers);
61
+ }
62
+ nextDumbPeerToQuery() {
63
+ return PeerCollection.nextPeer(this.availableDumbPeers, this.queriedDumbPeers);
64
+ }
65
+ get availableSmartPeers() {
66
+ return this.peers.intersection(this.smartPeers.difference(this.getBadPeers().union(this.inFlightPeers).union(this.getRateLimitExceededPeers())));
44
67
  }
45
- getDumbPeersToQuery() {
46
- return Array.from(this.peers.difference(this.smartPeers.union(this.getBadPeers()).union(this.inFlightPeers).union(this.getRateLimitExceededPeers())));
68
+ get availableDumbPeers() {
69
+ return this.peers.difference(this.smartPeers.union(this.getBadPeers()).union(this.inFlightPeers).union(this.getRateLimitExceededPeers()));
47
70
  }
48
71
  thereAreSomeDumbRatelimitExceededPeers() {
49
72
  return this.getRateLimitExceededPeers().difference(this.smartPeers.union(this.badPeers).union(this.inFlightPeers)).size > 0;
@@ -136,4 +159,18 @@ export class PeerCollection {
136
159
  }
137
160
  return minExpiry - now;
138
161
  }
162
+ orderedPeers;
163
+ get peers() {
164
+ const pinnedStr = this.pinnedPeerId?.toString();
165
+ const currentlyConnected = new Set(this.connectionSampler.getPeerListSortedByConnectionCountAsc().map((p)=>p.toString()).filter((p)=>p !== pinnedStr));
166
+ // Remove disconnected peers, preserving order of the rest.
167
+ this.orderedPeers = this.orderedPeers.intersection(currentlyConnected);
168
+ // Append newly connected peers at the end (lowest priority).
169
+ for (const peer of currentlyConnected){
170
+ if (!this.orderedPeers.has(peer)) {
171
+ this.orderedPeers.add(peer);
172
+ }
173
+ }
174
+ return this.orderedPeers;
175
+ }
139
176
  }
@@ -1,4 +1,4 @@
1
- import { createTxReqRespValidator } from '../../../msg_validators/tx_validator/factory.js';
1
+ import { createTxValidatorForReqResponseReceivedTxs } from '../../../msg_validators/index.js';
2
2
  export class BatchRequestTxValidator {
3
3
  config;
4
4
  txValidator;
@@ -13,7 +13,7 @@ export class BatchRequestTxValidator {
13
13
  return await Promise.all(txs.map((tx)=>this.validateRequestedTx(tx)));
14
14
  }
15
15
  static createRequestedTxValidator(config) {
16
- return createTxReqRespValidator(config.proofVerifier, {
16
+ return createTxValidatorForReqResponseReceivedTxs(config.proofVerifier, {
17
17
  l1ChainId: config.l1ChainId,
18
18
  rollupVersion: config.rollupVersion
19
19
  });
@@ -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"}
@@ -1,5 +1,3 @@
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';
@@ -12,7 +10,6 @@ export declare const PING_PROTOCOL = "/aztec/req/ping/1.0.0";
12
10
  export declare const STATUS_PROTOCOL = "/aztec/req/status/1.0.0";
13
11
  export declare const GOODBYE_PROTOCOL = "/aztec/req/goodbye/1.0.0";
14
12
  export declare const TX_REQ_PROTOCOL = "/aztec/req/tx/1.0.0";
15
- export declare const BLOCK_REQ_PROTOCOL = "/aztec/req/block/1.0.0";
16
13
  export declare const AUTH_PROTOCOL = "/aztec/req/auth/1.0.0";
17
14
  export declare const BLOCK_TXS_REQ_PROTOCOL = "/aztec/req/block_txs/1.0.0";
18
15
  export declare enum ReqRespSubProtocol {
@@ -20,7 +17,6 @@ export declare enum ReqRespSubProtocol {
20
17
  STATUS = "/aztec/req/status/1.0.0",
21
18
  GOODBYE = "/aztec/req/goodbye/1.0.0",
22
19
  TX = "/aztec/req/tx/1.0.0",
23
- BLOCK = "/aztec/req/block/1.0.0",
24
20
  AUTH = "/aztec/req/auth/1.0.0",
25
21
  BLOCK_TXS = "/aztec/req/block_txs/1.0.0"
26
22
  }
@@ -76,6 +72,17 @@ type ResponseValidator<RequestIdentifier, Response> = (request: RequestIdentifie
76
72
  export type ReqRespSubProtocolValidators = {
77
73
  [S in ReqRespSubProtocol]: ResponseValidator<any, any>;
78
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;
79
86
  export declare const DEFAULT_SUB_PROTOCOL_VALIDATORS: ReqRespSubProtocolValidators;
80
87
  export declare class ValidationError extends Error {
81
88
  constructor(message: string);
@@ -141,10 +148,6 @@ export declare const subProtocolMap: {
141
148
  request: typeof RequestableBuffer;
142
149
  response: typeof RequestableBuffer;
143
150
  };
144
- "/aztec/req/block/1.0.0": {
145
- request: typeof Fr;
146
- response: typeof L2Block;
147
- };
148
151
  "/aztec/req/auth/1.0.0": {
149
152
  request: typeof AuthRequest;
150
153
  response: typeof AuthResponse;
@@ -154,6 +157,15 @@ export declare const subProtocolMap: {
154
157
  response: typeof BlockTxsResponse;
155
158
  };
156
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>;
157
169
  export interface ReqRespInterface {
158
170
  start(subProtocolHandlers: Partial<ReqRespSubProtocolHandlers>, subProtocolValidators: ReqRespSubProtocolValidators): Promise<void>;
159
171
  addSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
@@ -161,7 +173,9 @@ export interface ReqRespInterface {
161
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']>[]>;
162
174
  sendRequestToPeer(peerId: PeerId, subProtocol: ReqRespSubProtocol, payload: Buffer, dialTimeout?: number): Promise<ReqRespResponse>;
163
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;
164
178
  getConnectionSampler(): Pick<ConnectionSampler, 'getPeerListSortedByConnectionCountAsc'>;
165
179
  }
166
180
  export {};
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUtqRCxlQUFPLE1BQU0sYUFBYSwwQkFBMEIsQ0FBQztBQUNyRCxlQUFPLE1BQU0sZUFBZSw0QkFBNEIsQ0FBQztBQUN6RCxlQUFPLE1BQU0sZ0JBQWdCLDZCQUE2QixDQUFDO0FBQzNELGVBQU8sTUFBTSxlQUFlLHdCQUF3QixDQUFDO0FBQ3JELGVBQU8sTUFBTSxrQkFBa0IsMkJBQTJCLENBQUM7QUFDM0QsZUFBTyxNQUFNLGFBQWEsMEJBQTBCLENBQUM7QUFDckQsZUFBTyxNQUFNLHNCQUFzQiwrQkFBK0IsQ0FBQztBQUVuRSxvQkFBWSxrQkFBa0I7SUFDNUIsSUFBSSwwQkFBZ0I7SUFDcEIsTUFBTSw0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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
+ };
@@ -13,4 +13,4 @@ export declare class ReqRespMetrics {
13
13
  recordRequestError(protocol: ReqRespSubProtocol): void;
14
14
  recordResponseError(protocol: ReqRespSubProtocol): void;
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBRXRGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELHFCQUFhLGNBQWM7SUFVdkIsUUFBUSxDQUFDLGVBQWUsRUFBRSxlQUFlO0lBVDNDLFNBQWdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQWdCO0lBQzdDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQWdCO0lBRWpELE9BQU8sQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQWdCO0lBQ3ZELE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQWdCO0lBRXRELFlBQ1csZUFBZSxFQUFFLGVBQWUsRUFDekMsSUFBSSxTQUFZLEVBa0NqQjtJQUVNLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsUUFFcEQ7SUFFTSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLFFBRXhEO0lBRU0sa0JBQWtCLENBQUMsUUFBUSxFQUFFLGtCQUFrQixRQUVyRDtJQUVNLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsUUFFdEQ7Q0FDRiJ9
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,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,EAkCjB;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
+ {"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"}
@@ -18,7 +18,6 @@ export class ReqRespMetrics {
18
18
  ReqRespSubProtocol.STATUS,
19
19
  ReqRespSubProtocol.GOODBYE,
20
20
  ReqRespSubProtocol.TX,
21
- ReqRespSubProtocol.BLOCK,
22
21
  ReqRespSubProtocol.AUTH,
23
22
  ReqRespSubProtocol.BLOCK_TXS
24
23
  ]
@@ -1,6 +1,6 @@
1
1
  import type { L2BlockSource } from '@aztec/stdlib/block';
2
2
  import type { AttestationPoolApi } from '../../../../mem_pools/attestation_pool/attestation_pool.js';
3
- import type { TxPool } from '../../../../mem_pools/index.js';
3
+ import type { TxPoolV2 } from '../../../../mem_pools/tx_pool_v2/interfaces.js';
4
4
  import type { ReqRespSubProtocolHandler } from '../../interface.js';
5
5
  /**
6
6
  * Handler for block txs requests
@@ -9,5 +9,5 @@ import type { ReqRespSubProtocolHandler } from '../../interface.js';
9
9
  * @param txPool - the tx pool to fetch transactions from
10
10
  * @returns the BlockTxs request handler
11
11
  */
12
- export declare function reqRespBlockTxsHandler(attestationPool: AttestationPoolApi, archiver: L2BlockSource, txPool: TxPool): ReqRespSubProtocolHandler;
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX2hhbmRsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLekQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3BFOzs7Ozs7R0FNRztBQUNILHdCQUFnQixzQkFBc0IsQ0FDcEMsZUFBZSxFQUFFLGtCQUFrQixFQUNuQyxRQUFRLEVBQUUsYUFBYSxFQUN2QixNQUFNLEVBQUUsTUFBTSxHQUNiLHlCQUF5QixDQW1EM0IifQ==
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":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;AACrG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAKpE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,kBAAkB,EACnC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,GACb,yBAAyB,CAmD3B"}
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"}
@@ -61,4 +61,10 @@ export declare class BlockTxsResponse {
61
61
  toBuffer(): Buffer;
62
62
  static empty(): BlockTxsResponse;
63
63
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX3JlcXJlc3AuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX3JlcXJlc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0Msd0ZBQXdGO0FBQ3hGLE1BQU0sV0FBVyxjQUFjO0lBQzdCLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuQixPQUFPLEVBQUUsRUFBRSxDQUFDO0NBQ2I7QUFFRDs7R0FFRztBQUNILHFCQUFhLGVBQWU7SUFHeEIsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBRXhCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsV0FBVztJQUs5QixRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVM7SUFUL0IsWUFFVyxXQUFXLEVBQUUsRUFBRSxFQUVmLFFBQVEsRUFBRSxXQUFXLEVBS3JCLFNBQVMsRUFBRSxTQUFTLEVBQzNCO0lBRUo7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUMvQixjQUFjLEVBQUUsY0FBYyxFQUM5QixlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQ3pCLG1CQUFtQixVQUFRLEdBQzFCLGVBQWUsR0FBRyxTQUFTLENBb0I3QjtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGVBQWUsQ0FPaEU7SUFFRDs7O09BR0c7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxnQkFBZ0I7SUFFekIsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBQ3hCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTztJQUdyQixRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVM7SUFML0IsWUFDVyxXQUFXLEVBQUUsRUFBRSxFQUNmLEdBQUcsRUFBRSxPQUFPLEVBR1osU0FBUyxFQUFFLFNBQVMsRUFDM0I7SUFFSjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxnQkFBZ0IsQ0FPakU7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FFL0I7Q0FDRiJ9
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,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"}
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,5 +1,6 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
+ import { MAX_TX_SIZE_KB } from '@aztec/stdlib/p2p';
3
4
  import { TxArray, TxHashArray } from '@aztec/stdlib/tx';
4
5
  import { BitVector } from './bitvector.js';
5
6
  /**
@@ -104,3 +105,17 @@ import { BitVector } from './bitvector.js';
104
105
  return new BlockTxsResponse(Fr.ZERO, new TxArray(), BitVector.init(0, []));
105
106
  }
106
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
+ }
@@ -5,7 +5,6 @@ export * from './ping.js';
5
5
  export * from './status.js';
6
6
  export * from './tx.js';
7
7
  export * from './goodbye.js';
8
- export * from './block.js';
9
8
  export * from './auth.js';
10
9
  export * from './block_txs/index.js';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsc0JBQXNCLENBQUMifQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsc0JBQXNCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
@@ -4,6 +4,5 @@
4
4
  export * from './status.js';
5
5
  export * from './tx.js';
6
6
  export * from './goodbye.js';
7
- export * from './block.js';
8
7
  export * from './auth.js';
9
8
  export * from './block_txs/index.js';
@@ -20,4 +20,10 @@ export declare function reqRespTxHandler(mempools: MemPools): ReqRespSubProtocol
20
20
  * we define Q as max number of transactions per batch, the comment explains why we use 8.
21
21
  */
22
22
  export declare function chunkTxHashesRequest(hashes: TxHash[], chunkSize?: number): Array<TxHashArray>;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWhFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakU7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxHQUFHLHlCQUF5QixDQXdCOUU7QUFFRDs7Ozs7Ozs7R0FRRztBQUdILHdCQUFnQixvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxTQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUV4RiJ9
23
+ /**
24
+ * Calculate the expected response size for a TX request.
25
+ * @param requestBuffer - The serialized request buffer containing TxHashArray
26
+ * @returns Expected response size in KB
27
+ */
28
+ export declare function calculateTxResponseSize(requestBuffer: Buffer): number;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQVcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWhFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakU7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxHQUFHLHlCQUF5QixDQXdCOUU7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxTQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUV4RjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsdUJBQXVCLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBY3JFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/tx.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,yBAAyB,CAwB9E;AAED;;;;;;;;GAQG;AAGH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,SAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAExF"}
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/tx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,yBAAyB,CAwB9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,SAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAExF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAcrE"}