@aztec/p2p 0.0.1-commit.a072138 → 0.0.1-commit.a4600f49

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 (558) hide show
  1. package/README.md +130 -3
  2. package/dest/bootstrap/bootstrap.d.ts +1 -1
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +22 -6
  5. package/dest/client/factory.d.ts +13 -12
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +67 -18
  8. package/dest/client/interface.d.ts +90 -40
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +69 -64
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +240 -244
  13. package/dest/config.d.ts +168 -89
  14. package/dest/config.d.ts.map +1 -1
  15. package/dest/config.js +157 -45
  16. package/dest/errors/p2p-service.error.d.ts +9 -0
  17. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  18. package/dest/errors/p2p-service.error.js +10 -0
  19. package/dest/errors/reqresp.error.d.ts +9 -16
  20. package/dest/errors/reqresp.error.d.ts.map +1 -1
  21. package/dest/errors/reqresp.error.js +10 -17
  22. package/dest/errors/tx-pool.error.d.ts +8 -0
  23. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  24. package/dest/errors/tx-pool.error.js +9 -0
  25. package/dest/index.d.ts +2 -2
  26. package/dest/index.d.ts.map +1 -1
  27. package/dest/index.js +1 -1
  28. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +164 -106
  29. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  30. package/dest/mem_pools/attestation_pool/attestation_pool.js +518 -3
  31. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  32. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +550 -125
  34. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  35. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  36. package/dest/mem_pools/attestation_pool/index.js +1 -2
  37. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  38. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/mocks.js +7 -5
  40. package/dest/mem_pools/index.d.ts +3 -3
  41. package/dest/mem_pools/index.d.ts.map +1 -1
  42. package/dest/mem_pools/index.js +1 -1
  43. package/dest/mem_pools/instrumentation.d.ts +12 -5
  44. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  45. package/dest/mem_pools/instrumentation.js +38 -17
  46. package/dest/mem_pools/interface.d.ts +5 -5
  47. package/dest/mem_pools/interface.d.ts.map +1 -1
  48. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  49. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  50. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  51. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +39 -0
  52. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  53. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +97 -0
  54. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  55. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  57. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  58. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -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_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  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 +243 -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 +11 -0
  99. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -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 +223 -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 +122 -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 +368 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +68 -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 +178 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +91 -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 +1013 -0
  114. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +10 -3
  115. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/attestation_validator/attestation_validator.js +38 -15
  117. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +8 -4
  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 +4 -5
  120. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +12 -5
  121. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  122. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +11 -3
  123. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +12 -5
  124. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +23 -3
  126. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +36 -9
  127. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/proposal_validator/proposal_validator.js +130 -48
  129. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  130. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +11 -18
  132. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  133. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  134. package/dest/msg_validators/tx_validator/allowed_public_setup.js +25 -21
  135. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  136. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  137. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  138. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  139. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +16 -3
  140. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  141. package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
  142. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  143. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  144. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  145. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  146. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  147. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  148. package/dest/msg_validators/tx_validator/data_validator.d.ts +2 -1
  149. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  150. package/dest/msg_validators/tx_validator/data_validator.js +36 -2
  151. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +13 -3
  152. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  153. package/dest/msg_validators/tx_validator/double_spend_validator.js +4 -4
  154. package/dest/msg_validators/tx_validator/factory.d.ts +133 -7
  155. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  156. package/dest/msg_validators/tx_validator/factory.js +261 -61
  157. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  158. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  159. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  160. package/dest/msg_validators/tx_validator/gas_validator.d.ts +104 -3
  161. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  162. package/dest/msg_validators/tx_validator/gas_validator.js +137 -53
  163. package/dest/msg_validators/tx_validator/index.d.ts +5 -1
  164. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  165. package/dest/msg_validators/tx_validator/index.js +4 -0
  166. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  167. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  168. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  169. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  170. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  171. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  172. package/dest/msg_validators/tx_validator/phases_validator.d.ts +22 -2
  173. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  174. package/dest/msg_validators/tx_validator/phases_validator.js +72 -24
  175. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +20 -4
  176. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  177. package/dest/msg_validators/tx_validator/timestamp_validator.js +6 -6
  178. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +2 -1
  179. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  180. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -0
  181. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  182. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  183. package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
  184. package/dest/services/data_store.d.ts +1 -1
  185. package/dest/services/data_store.d.ts.map +1 -1
  186. package/dest/services/data_store.js +5 -5
  187. package/dest/services/discv5/discV5_service.d.ts +13 -2
  188. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  189. package/dest/services/discv5/discV5_service.js +119 -23
  190. package/dest/services/discv5/persisted_enr_store.d.ts +38 -0
  191. package/dest/services/discv5/persisted_enr_store.d.ts.map +1 -0
  192. package/dest/services/discv5/persisted_enr_store.js +145 -0
  193. package/dest/services/dummy_service.d.ts +26 -18
  194. package/dest/services/dummy_service.d.ts.map +1 -1
  195. package/dest/services/dummy_service.js +25 -20
  196. package/dest/services/encoding.d.ts +24 -7
  197. package/dest/services/encoding.d.ts.map +1 -1
  198. package/dest/services/encoding.js +43 -26
  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 +167 -0
  206. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  207. package/dest/services/gossipsub/topic_score_params.js +336 -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 +3 -1
  212. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  213. package/dest/services/libp2p/instrumentation.js +14 -0
  214. package/dest/services/libp2p/libp2p_service.d.ts +111 -61
  215. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  216. package/dest/services/libp2p/libp2p_service.js +785 -580
  217. package/dest/services/peer-manager/metrics.d.ts +3 -1
  218. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  219. package/dest/services/peer-manager/metrics.js +6 -0
  220. package/dest/services/peer-manager/peer_manager.d.ts +20 -3
  221. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  222. package/dest/services/peer-manager/peer_manager.js +83 -26
  223. package/dest/services/peer-manager/peer_scoring.d.ts +34 -2
  224. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  225. package/dest/services/peer-manager/peer_scoring.js +127 -15
  226. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +7 -10
  227. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  228. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +100 -132
  229. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +11 -11
  230. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  231. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +11 -13
  232. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  233. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +31 -46
  234. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -11
  235. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  236. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +52 -15
  237. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +5 -14
  238. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -1
  239. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +6 -20
  240. package/dest/services/reqresp/config.d.ts +15 -3
  241. package/dest/services/reqresp/config.d.ts.map +1 -1
  242. package/dest/services/reqresp/config.js +11 -0
  243. package/dest/services/reqresp/interface.d.ts +25 -18
  244. package/dest/services/reqresp/interface.d.ts.map +1 -1
  245. package/dest/services/reqresp/interface.js +23 -19
  246. package/dest/services/reqresp/metrics.d.ts +1 -1
  247. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  248. package/dest/services/reqresp/metrics.js +0 -1
  249. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +4 -3
  250. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  251. package/dest/services/reqresp/protocols/block_txs/bitvector.js +3 -2
  252. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  253. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  254. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +34 -26
  255. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +32 -16
  256. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  257. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +68 -34
  258. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  259. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  260. package/dest/services/reqresp/protocols/index.js +0 -1
  261. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  262. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  263. package/dest/services/reqresp/protocols/tx.js +21 -3
  264. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  265. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  266. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  267. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  268. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  269. package/dest/services/reqresp/rate-limiter/rate_limits.js +3 -13
  270. package/dest/services/reqresp/reqresp.d.ts +7 -29
  271. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  272. package/dest/services/reqresp/reqresp.js +85 -219
  273. package/dest/services/service.d.ts +62 -13
  274. package/dest/services/service.d.ts.map +1 -1
  275. package/dest/services/tx_collection/config.d.ts +11 -14
  276. package/dest/services/tx_collection/config.d.ts.map +1 -1
  277. package/dest/services/tx_collection/config.js +26 -33
  278. package/dest/services/tx_collection/file_store_tx_collection.d.ts +37 -0
  279. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  280. package/dest/services/tx_collection/file_store_tx_collection.js +127 -0
  281. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  282. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  283. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  284. package/dest/services/tx_collection/index.d.ts +3 -3
  285. package/dest/services/tx_collection/index.d.ts.map +1 -1
  286. package/dest/services/tx_collection/index.js +1 -1
  287. package/dest/services/tx_collection/instrumentation.js +1 -2
  288. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  289. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  290. package/dest/services/tx_collection/request_tracker.js +84 -0
  291. package/dest/services/tx_collection/tx_collection.d.ts +45 -51
  292. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  293. package/dest/services/tx_collection/tx_collection.js +296 -68
  294. package/dest/services/tx_collection/tx_collection_sink.d.ts +19 -9
  295. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  296. package/dest/services/tx_collection/tx_collection_sink.js +28 -31
  297. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  298. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  299. package/dest/services/tx_collection/tx_source.js +29 -7
  300. package/dest/services/tx_file_store/config.d.ts +16 -0
  301. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  302. package/dest/services/tx_file_store/config.js +22 -0
  303. package/dest/services/tx_file_store/index.d.ts +4 -0
  304. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  305. package/dest/services/tx_file_store/index.js +3 -0
  306. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  307. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  308. package/dest/services/tx_file_store/instrumentation.js +29 -0
  309. package/dest/services/tx_file_store/tx_file_store.d.ts +46 -0
  310. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  311. package/dest/services/tx_file_store/tx_file_store.js +142 -0
  312. package/dest/services/tx_provider.d.ts +6 -4
  313. package/dest/services/tx_provider.d.ts.map +1 -1
  314. package/dest/services/tx_provider.js +12 -8
  315. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  316. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  317. package/dest/test-helpers/make-test-p2p-clients.js +5 -3
  318. package/dest/test-helpers/mock-pubsub.d.ts +46 -6
  319. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  320. package/dest/test-helpers/mock-pubsub.js +115 -14
  321. package/dest/test-helpers/reqresp-nodes.d.ts +5 -7
  322. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  323. package/dest/test-helpers/reqresp-nodes.js +19 -20
  324. package/dest/test-helpers/test_tx_provider.d.ts +3 -1
  325. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -1
  326. package/dest/test-helpers/test_tx_provider.js +3 -0
  327. package/dest/test-helpers/testbench-utils.d.ts +56 -50
  328. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  329. package/dest/test-helpers/testbench-utils.js +178 -75
  330. package/dest/testbench/p2p_client_testbench_worker.d.ts +3 -5
  331. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  332. package/dest/testbench/p2p_client_testbench_worker.js +113 -50
  333. package/dest/testbench/worker_client_manager.d.ts +12 -6
  334. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  335. package/dest/testbench/worker_client_manager.js +57 -11
  336. package/dest/util.d.ts +13 -8
  337. package/dest/util.d.ts.map +1 -1
  338. package/dest/util.js +35 -14
  339. package/dest/versioning.d.ts +3 -6
  340. package/dest/versioning.d.ts.map +1 -1
  341. package/dest/versioning.js +3 -24
  342. package/package.json +16 -16
  343. package/src/bootstrap/bootstrap.ts +17 -3
  344. package/src/client/factory.ts +135 -31
  345. package/src/client/interface.ts +97 -48
  346. package/src/client/p2p_client.ts +282 -310
  347. package/src/client/test/{tx_proposal_collector/README.md → p2p_client.batch_tx_requester.bench.README.md} +23 -53
  348. package/src/config.ts +282 -49
  349. package/src/errors/p2p-service.error.ts +11 -0
  350. package/src/errors/reqresp.error.ts +13 -19
  351. package/src/errors/tx-pool.error.ts +12 -0
  352. package/src/index.ts +1 -1
  353. package/src/mem_pools/attestation_pool/attestation_pool.ts +585 -94
  354. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +656 -141
  355. package/src/mem_pools/attestation_pool/index.ts +9 -2
  356. package/src/mem_pools/attestation_pool/mocks.ts +14 -8
  357. package/src/mem_pools/index.ts +2 -2
  358. package/src/mem_pools/instrumentation.ts +27 -17
  359. package/src/mem_pools/interface.ts +4 -4
  360. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  361. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  362. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +112 -0
  363. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  364. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  365. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  366. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  367. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  368. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  369. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  370. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  371. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  372. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  373. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  374. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  375. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  376. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  377. package/src/mem_pools/tx_pool_v2/interfaces.ts +274 -0
  378. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  379. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  380. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +465 -0
  381. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +252 -0
  382. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1215 -0
  383. package/src/msg_validators/attestation_validator/README.md +49 -0
  384. package/src/msg_validators/attestation_validator/attestation_validator.ts +46 -14
  385. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +17 -9
  386. package/src/msg_validators/proposal_validator/README.md +123 -0
  387. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +26 -4
  388. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +43 -7
  389. package/src/msg_validators/proposal_validator/proposal_validator.ts +155 -49
  390. package/src/msg_validators/tx_validator/README.md +129 -0
  391. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +8 -17
  392. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  393. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  394. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  395. package/src/msg_validators/tx_validator/block_header_validator.ts +15 -3
  396. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  397. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  398. package/src/msg_validators/tx_validator/data_validator.ts +44 -1
  399. package/src/msg_validators/tx_validator/double_spend_validator.ts +11 -6
  400. package/src/msg_validators/tx_validator/factory.ts +413 -80
  401. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  402. package/src/msg_validators/tx_validator/gas_validator.ts +195 -54
  403. package/src/msg_validators/tx_validator/index.ts +4 -0
  404. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  405. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  406. package/src/msg_validators/tx_validator/phases_validator.ts +82 -27
  407. package/src/msg_validators/tx_validator/timestamp_validator.ts +23 -18
  408. package/src/msg_validators/tx_validator/tx_proof_validator.ts +2 -0
  409. package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
  410. package/src/services/data_store.ts +5 -13
  411. package/src/services/discv5/discV5_service.ts +126 -14
  412. package/src/services/discv5/persisted_enr_store.ts +158 -0
  413. package/src/services/dummy_service.ts +38 -45
  414. package/src/services/encoding.ts +42 -26
  415. package/src/services/gossipsub/README.md +663 -0
  416. package/src/services/gossipsub/index.ts +2 -0
  417. package/src/services/gossipsub/scoring.ts +29 -5
  418. package/src/services/gossipsub/topic_score_params.ts +478 -0
  419. package/src/services/index.ts +1 -0
  420. package/src/services/libp2p/instrumentation.ts +14 -0
  421. package/src/services/libp2p/libp2p_service.ts +858 -637
  422. package/src/services/peer-manager/metrics.ts +7 -0
  423. package/src/services/peer-manager/peer_manager.ts +91 -25
  424. package/src/services/peer-manager/peer_scoring.ts +127 -8
  425. package/src/services/reqresp/README.md +194 -0
  426. package/src/services/reqresp/batch-tx-requester/README.md +53 -14
  427. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +101 -147
  428. package/src/services/reqresp/batch-tx-requester/interface.ts +14 -10
  429. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +30 -71
  430. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
  431. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +12 -25
  432. package/src/services/reqresp/config.ts +19 -2
  433. package/src/services/reqresp/interface.ts +45 -46
  434. package/src/services/reqresp/metrics.ts +0 -1
  435. package/src/services/reqresp/protocols/block_txs/bitvector.ts +3 -2
  436. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +43 -30
  437. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +84 -34
  438. package/src/services/reqresp/protocols/index.ts +0 -1
  439. package/src/services/reqresp/protocols/tx.ts +23 -3
  440. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  441. package/src/services/reqresp/rate-limiter/rate_limits.ts +3 -13
  442. package/src/services/reqresp/reqresp.ts +100 -263
  443. package/src/services/service.ts +81 -29
  444. package/src/services/tx_collection/config.ts +40 -49
  445. package/src/services/tx_collection/file_store_tx_collection.ts +153 -0
  446. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  447. package/src/services/tx_collection/index.ts +2 -6
  448. package/src/services/tx_collection/instrumentation.ts +1 -1
  449. package/src/services/tx_collection/request_tracker.ts +127 -0
  450. package/src/services/tx_collection/tx_collection.ts +362 -110
  451. package/src/services/tx_collection/tx_collection_sink.ts +32 -36
  452. package/src/services/tx_collection/tx_source.ts +29 -8
  453. package/src/services/tx_file_store/config.ts +37 -0
  454. package/src/services/tx_file_store/index.ts +3 -0
  455. package/src/services/tx_file_store/instrumentation.ts +36 -0
  456. package/src/services/tx_file_store/tx_file_store.ts +163 -0
  457. package/src/services/tx_provider.ts +15 -9
  458. package/src/test-helpers/make-test-p2p-clients.ts +7 -6
  459. package/src/test-helpers/mock-pubsub.ts +137 -14
  460. package/src/test-helpers/reqresp-nodes.ts +17 -29
  461. package/src/test-helpers/test_tx_provider.ts +5 -0
  462. package/src/test-helpers/testbench-utils.ts +185 -94
  463. package/src/testbench/p2p_client_testbench_worker.ts +122 -65
  464. package/src/testbench/worker_client_manager.ts +72 -25
  465. package/src/util.ts +40 -19
  466. package/src/versioning.ts +3 -33
  467. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +0 -2
  468. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +0 -1
  469. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +0 -305
  470. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +0 -73
  471. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +0 -1
  472. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +0 -8
  473. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  474. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  475. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  476. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  477. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  478. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  479. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  480. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  481. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  482. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  483. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  484. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  485. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  486. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  487. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  488. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  489. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  490. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  491. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  492. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  493. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  494. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  495. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  496. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  497. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  498. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  499. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  500. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  501. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  502. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  503. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  504. package/dest/mem_pools/tx_pool/index.js +0 -2
  505. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  506. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  507. package/dest/mem_pools/tx_pool/priority.js +0 -15
  508. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  509. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  510. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  511. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  512. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  513. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  514. package/dest/msg_validators/clock_tolerance.d.ts +0 -21
  515. package/dest/msg_validators/clock_tolerance.d.ts.map +0 -1
  516. package/dest/msg_validators/clock_tolerance.js +0 -37
  517. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  518. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  519. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  520. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -64
  521. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  522. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -151
  523. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  524. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  525. package/dest/services/reqresp/protocols/block.js +0 -32
  526. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -53
  527. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  528. package/dest/services/tx_collection/fast_tx_collection.js +0 -311
  529. package/dest/services/tx_collection/proposal_tx_collector.d.ts +0 -48
  530. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +0 -1
  531. package/dest/services/tx_collection/proposal_tx_collector.js +0 -50
  532. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -53
  533. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  534. package/dest/services/tx_collection/slow_tx_collection.js +0 -177
  535. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +0 -336
  536. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +0 -43
  537. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  538. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  539. package/src/mem_pools/tx_pool/README.md +0 -270
  540. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  541. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  542. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  543. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  544. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  545. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  546. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  547. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  548. package/src/mem_pools/tx_pool/index.ts +0 -2
  549. package/src/mem_pools/tx_pool/priority.ts +0 -20
  550. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  551. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  552. package/src/msg_validators/clock_tolerance.ts +0 -51
  553. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  554. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -161
  555. package/src/services/reqresp/protocols/block.ts +0 -37
  556. package/src/services/tx_collection/fast_tx_collection.ts +0 -364
  557. package/src/services/tx_collection/proposal_tx_collector.ts +0 -114
  558. package/src/services/tx_collection/slow_tx_collection.ts +0 -233
@@ -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
  }
@@ -67,16 +63,21 @@ export interface ProtocolRateLimitQuota {
67
63
  */
68
64
  globalLimit: RateLimitQuota;
69
65
  }
70
- export declare const noopValidator: () => Promise<boolean>;
71
66
  /**
72
67
  * A type mapping from supprotocol to it's handling function
73
68
  */
74
69
  export type ReqRespSubProtocolHandlers = Record<ReqRespSubProtocol, ReqRespSubProtocolHandler>;
75
- type ResponseValidator<RequestIdentifier, Response> = (request: RequestIdentifier, response: Response, peerId: PeerId) => Promise<boolean>;
76
- export type ReqRespSubProtocolValidators = {
77
- [S in ReqRespSubProtocol]: ResponseValidator<any, any>;
78
- };
79
- export declare const DEFAULT_SUB_PROTOCOL_VALIDATORS: ReqRespSubProtocolValidators;
70
+ /**
71
+ * Protocols that are always allowed without authentication, even when p2pAllowOnlyValidators is enabled.
72
+ * These are needed for the handshake and connection management flow.
73
+ * All other protocols require the remote peer to be authenticated.
74
+ */
75
+ export declare const UNAUTHENTICATED_ALLOWED_PROTOCOLS: ReadonlySet<ReqRespSubProtocol>;
76
+ /**
77
+ * Callback that checks whether a peer should be rejected from req/resp data protocols.
78
+ * Returns true if the peer should be rejected (i.e. p2pAllowOnlyValidators is on and peer is unauthenticated).
79
+ */
80
+ export type ShouldRejectPeer = (peerId: string) => boolean;
80
81
  export declare class ValidationError extends Error {
81
82
  constructor(message: string);
82
83
  }
@@ -141,10 +142,6 @@ export declare const subProtocolMap: {
141
142
  request: typeof RequestableBuffer;
142
143
  response: typeof RequestableBuffer;
143
144
  };
144
- "/aztec/req/block/1.0.0": {
145
- request: typeof Fr;
146
- response: typeof L2Block;
147
- };
148
145
  "/aztec/req/auth/1.0.0": {
149
146
  request: typeof AuthRequest;
150
147
  response: typeof AuthResponse;
@@ -154,14 +151,24 @@ export declare const subProtocolMap: {
154
151
  response: typeof BlockTxsResponse;
155
152
  };
156
153
  };
154
+ /**
155
+ * Type for a function that calculates the expected response size in KB for a given request.
156
+ */
157
+ export type ExpectedResponseSizeCalculator = (requestBuffer: Buffer) => number;
158
+ /**
159
+ * Map of sub-protocols to their expected response size calculators.
160
+ * These are used to validate that responses don't exceed expected sizes based on request parameters.
161
+ */
162
+ export declare const subProtocolSizeCalculators: Record<ReqRespSubProtocol, ExpectedResponseSizeCalculator>;
157
163
  export interface ReqRespInterface {
158
- start(subProtocolHandlers: Partial<ReqRespSubProtocolHandlers>, subProtocolValidators: ReqRespSubProtocolValidators): Promise<void>;
159
- addSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
164
+ start(subProtocolHandlers: Partial<ReqRespSubProtocolHandlers>): Promise<void>;
165
+ addSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler): Promise<void>;
160
166
  stop(): Promise<void>;
161
- 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
167
  sendRequestToPeer(peerId: PeerId, subProtocol: ReqRespSubProtocol, payload: Buffer, dialTimeout?: number): Promise<ReqRespResponse>;
163
168
  updateConfig(config: Partial<P2PReqRespConfig>): void;
169
+ /** Sets the callback used to reject unauthenticated peers on gated req/resp protocols. */
170
+ setShouldRejectPeer(checker: ShouldRejectPeer): void;
164
171
  getConnectionSampler(): Pick<ConnectionSampler, 'getPeerListSortedByConnectionCountAsc'>;
165
172
  }
166
173
  export {};
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUtqRCxlQUFPLE1BQU0sYUFBYSwwQkFBMEIsQ0FBQztBQUNyRCxlQUFPLE1BQU0sZUFBZSw0QkFBNEIsQ0FBQztBQUN6RCxlQUFPLE1BQU0sZ0JBQWdCLDZCQUE2QixDQUFDO0FBQzNELGVBQU8sTUFBTSxlQUFlLHdCQUF3QixDQUFDO0FBQ3JELGVBQU8sTUFBTSxrQkFBa0IsMkJBQTJCLENBQUM7QUFDM0QsZUFBTyxNQUFNLGFBQWEsMEJBQTBCLENBQUM7QUFDckQsZUFBTyxNQUFNLHNCQUFzQiwrQkFBK0IsQ0FBQztBQUVuRSxvQkFBWSxrQkFBa0I7SUFDNUIsSUFBSSwwQkFBZ0I7SUFDcEIsTUFBTSw0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
174
+ //# 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,21 +16,20 @@ 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
- export const noopValidator = ()=>Promise.resolve(true);
27
- export const DEFAULT_SUB_PROTOCOL_VALIDATORS = {
28
- [ReqRespSubProtocol.PING]: noopValidator,
29
- [ReqRespSubProtocol.STATUS]: noopValidator,
30
- [ReqRespSubProtocol.TX]: noopValidator,
31
- [ReqRespSubProtocol.GOODBYE]: noopValidator,
32
- [ReqRespSubProtocol.BLOCK]: noopValidator,
33
- [ReqRespSubProtocol.AUTH]: noopValidator,
34
- [ReqRespSubProtocol.BLOCK_TXS]: noopValidator
35
- };
23
+ /**
24
+ * Protocols that are always allowed without authentication, even when p2pAllowOnlyValidators is enabled.
25
+ * These are needed for the handshake and connection management flow.
26
+ * All other protocols require the remote peer to be authenticated.
27
+ */ export const UNAUTHENTICATED_ALLOWED_PROTOCOLS = new Set([
28
+ ReqRespSubProtocol.PING,
29
+ ReqRespSubProtocol.STATUS,
30
+ ReqRespSubProtocol.AUTH,
31
+ ReqRespSubProtocol.GOODBYE
32
+ ]);
36
33
  /*
37
34
  * Helper class to sub-protocol validation error*/ export class ValidationError extends Error {
38
35
  constructor(message){
@@ -88,10 +85,6 @@ export const DEFAULT_SUB_PROTOCOL_VALIDATORS = {
88
85
  request: RequestableBuffer,
89
86
  response: RequestableBuffer
90
87
  },
91
- [ReqRespSubProtocol.BLOCK]: {
92
- request: Fr,
93
- response: L2Block
94
- },
95
88
  [ReqRespSubProtocol.AUTH]: {
96
89
  request: AuthRequest,
97
90
  response: AuthResponse
@@ -101,3 +94,14 @@ export const DEFAULT_SUB_PROTOCOL_VALIDATORS = {
101
94
  response: BlockTxsResponse
102
95
  }
103
96
  };
97
+ /**
98
+ * Map of sub-protocols to their expected response size calculators.
99
+ * These are used to validate that responses don't exceed expected sizes based on request parameters.
100
+ */ export const subProtocolSizeCalculators = {
101
+ [ReqRespSubProtocol.TX]: calculateTxResponseSize,
102
+ [ReqRespSubProtocol.BLOCK_TXS]: calculateBlockTxsResponseSize,
103
+ [ReqRespSubProtocol.STATUS]: ()=>1,
104
+ [ReqRespSubProtocol.PING]: ()=>1,
105
+ [ReqRespSubProtocol.AUTH]: ()=>1,
106
+ [ReqRespSubProtocol.GOODBYE]: ()=>1
107
+ };
@@ -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
  ]
@@ -10,8 +10,9 @@ export declare class BitVector {
10
10
  getLength(): number;
11
11
  isSet(index: number): boolean;
12
12
  /**
13
- * Returns all indices which are set to true
14
- * */
13
+ * Returns all indices which are set to true.
14
+ * Ordered by index. No duplicates.
15
+ */
15
16
  getTrueIndices(): number[];
16
17
  /**
17
18
  * Returns true if no indices are set to true
@@ -31,4 +32,4 @@ export declare class BitVector {
31
32
  static fromBuffer(buffer: Buffer | BufferReader): BitVector;
32
33
  static byteLength(length: number): number;
33
34
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0dmVjdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9wcm90b2NvbHMvYmxvY2tfdHhzL2JpdHZlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBSTlFOztHQUVHO0FBQ0gscUJBQWEsU0FBUztJQUNwQixPQUFPLENBQUMsTUFBTSxDQUFTO0lBQ3ZCLE9BQU8sQ0FBQyxNQUFNLENBQVM7SUFFdkIsWUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBR3pDO0lBU0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBbUJ4RDtJQUVELFNBQVMsSUFBSSxNQUFNLENBRWxCO0lBU0QsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUU1QjtJQUVEOztTQUVLO0lBQ0wsY0FBYyxJQUFJLE1BQU0sRUFBRSxDQUV6QjtJQUVEOztTQUVLO0lBQ0wsT0FBTyxJQUFJLE9BQU8sQ0FFakI7SUFFRDs7OztTQUlLO0lBQ0wsUUFBUSxJQUFJLE1BQU0sQ0FFakI7SUFFRDs7OztTQUlLO0lBQ0wsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxTQUFTLENBYTFEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxVQUUvQjtDQUNGIn0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml0dmVjdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9wcm90b2NvbHMvYmxvY2tfdHhzL2JpdHZlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBSTlFOztHQUVHO0FBQ0gscUJBQWEsU0FBUztJQUNwQixPQUFPLENBQUMsTUFBTSxDQUFTO0lBQ3ZCLE9BQU8sQ0FBQyxNQUFNLENBQVM7SUFFdkIsWUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBR3pDO0lBU0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLENBbUJ4RDtJQUVELFNBQVMsSUFBSSxNQUFNLENBRWxCO0lBU0QsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUU1QjtJQUVEOzs7T0FHRztJQUNILGNBQWMsSUFBSSxNQUFNLEVBQUUsQ0FFekI7SUFFRDs7U0FFSztJQUNMLE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQ7Ozs7U0FJSztJQUNMLFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQ7Ozs7U0FJSztJQUNMLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQWExRDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sVUFFL0I7Q0FDRiJ9
@@ -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;;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"}
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;;;OAGG;IACH,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"}
@@ -44,8 +44,9 @@ import { MAX_TXS_PER_BLOCK } from '../../constants.js';
44
44
  return index >= 0 && index < this.length && !!(this.buffer[Math.floor(index / 8)] & 1 << index % 8);
45
45
  }
46
46
  /**
47
- * Returns all indices which are set to true
48
- * */ getTrueIndices() {
47
+ * Returns all indices which are set to true.
48
+ * Ordered by index. No duplicates.
49
+ */ getTrueIndices() {
49
50
  return Array.from({
50
51
  length: this.length
51
52
  }, (_, i)=>i).filter((i)=>this.isSet(i));
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX2hhbmRsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDbEcsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUtwRTs7Ozs7R0FLRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcseUJBQXlCLENBZ0RsSCJ9
12
+ export declare function reqRespBlockTxsHandler(attestationPool: AttestationPoolApi, archiver: L2BlockSource, txPool: TxPoolV2): ReqRespSubProtocolHandler;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX2hhbmRsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLekQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNyRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3BFOzs7Ozs7R0FNRztBQUNILHdCQUFnQixzQkFBc0IsQ0FDcEMsZUFBZSxFQUFFLGtCQUFrQixFQUNuQyxRQUFRLEVBQUUsYUFBYSxFQUN2QixNQUFNLEVBQUUsUUFBUSxHQUNmLHlCQUF5QixDQXdEM0IifQ==
@@ -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":"AAKA,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,CAgDlH"}
1
+ {"version":3,"file":"block_txs_handler.d.ts","sourceRoot":"","sources":["../../../../../src/services/reqresp/protocols/block_txs/block_txs_handler.ts"],"names":[],"mappings":"AAAA,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,CAwD3B"}
@@ -1,14 +1,14 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { TxArray } from '@aztec/stdlib/tx';
1
+ import { TxArray, TxHash } from '@aztec/stdlib/tx';
3
2
  import { ReqRespStatus, ReqRespStatusError } from '../../status.js';
4
3
  import { BitVector } from './bitvector.js';
5
4
  import { BlockTxsRequest, BlockTxsResponse } from './block_txs_reqresp.js';
6
5
  /**
7
6
  * Handler for block txs requests
8
7
  * @param attestationPool - the attestation pool to check for block proposals
9
- * @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
10
10
  * @returns the BlockTxs request handler
11
- */ export function reqRespBlockTxsHandler(attestationPool, txPool) {
11
+ */ export function reqRespBlockTxsHandler(attestationPool, archiver, txPool) {
12
12
  /**
13
13
  * Handler for block txs requests
14
14
  * @param msg - the block txs request message
@@ -23,30 +23,38 @@ import { BlockTxsRequest, BlockTxsResponse } from './block_txs_reqresp.js';
23
23
  cause: err
24
24
  });
25
25
  }
26
- const blockProposal = await attestationPool.getBlockProposal(request.archiveRoot.toString());
27
- let requestedTxsHashes;
28
- if (request.txHashes.length > 0) {
29
- requestedTxsHashes = request.txHashes;
26
+ // In principle assume we haven't found the block. This is how that is signaled to the requester.
27
+ let availableIndicesBitVector = BitVector.init(0, []);
28
+ // We always try to service the explicitly requested tx hashes, even if we don't have the block.
29
+ const requestedTxsHashes = new Set(request.txHashes.map((h)=>h.toString()));
30
+ // First try attestation pool, then fall back to archiver.
31
+ let blockTxHashes = (await attestationPool.getBlockProposalByArchive(request.archiveRoot.toString()))?.txHashes;
32
+ if (!blockTxHashes) {
33
+ blockTxHashes = (await archiver.getBlock({
34
+ archive: request.archiveRoot
35
+ }))?.body.txEffects.map((effect)=>effect.txHash);
30
36
  }
31
- // This is scenario in which we don't have this block proposal the peer is requesting from us
32
- // But peer has sent requested tx hashes, so we can send them the transactions
33
- if (!blockProposal && requestedTxsHashes !== undefined) {
34
- const responseTxs = (await txPool.getTxsByHash(requestedTxsHashes)).filter((tx)=>!!tx);
35
- const response = new BlockTxsResponse(Fr.zero(), new TxArray(...responseTxs), BitVector.init(0, []));
36
- return response.toBuffer();
37
+ // If we have found the block,
38
+ if (blockTxHashes) {
39
+ // First confirm that we are talking about the same block (up to tx hashes and order).
40
+ // If we are not, then we can't:
41
+ // 1. Use the indices from the request to get the txs from the pool.
42
+ // 2. Respond to the peer with the txs we have using indices.
43
+ const blockTxHashesCommitment = BlockTxsRequest.computeBlockTxHashesCommitment(blockTxHashes);
44
+ if (blockTxHashesCommitment.equals(request.blockTxHashesCommitment)) {
45
+ // In that case, we can also get the available indices from the pool.
46
+ const txsAvailableInPool = await txPool.hasTxs(blockTxHashes);
47
+ // Map txs in the pool to their indices in the block
48
+ const availableIndices = txsAvailableInPool.map((hasTx, idx)=>hasTx ? idx : -1).filter((idx)=>idx !== -1);
49
+ availableIndicesBitVector = BitVector.init(blockTxHashes.length, availableIndices);
50
+ // We add the requested tx hashes (by index) to the list of tx hashes we are sending to the peer.
51
+ const requestedIndices = new Set(request.txIndices.getTrueIndices());
52
+ blockTxHashes.filter((_, idx)=>requestedIndices.has(idx)).forEach((h)=>requestedTxsHashes.add(h.toString()));
53
+ }
37
54
  }
38
- // If don't have this block proposal and peer has not sent requested tx hashes
39
- if (!blockProposal) {
40
- throw new ReqRespStatusError(ReqRespStatus.NOT_FOUND);
41
- }
42
- const txsAvailableInPool = await txPool.hasTxs(blockProposal.txHashes);
43
- //Map txs in the pool to their indices in the block proposal
44
- const availableIndices = txsAvailableInPool.map((hasTx, idx)=>hasTx ? idx : -1).filter((idx)=>idx !== -1);
45
- const responseBitVector = BitVector.init(blockProposal.txHashes.length, availableIndices);
46
- const requestedIndices = new Set(request.txIndices.getTrueIndices());
47
- requestedTxsHashes = blockProposal.txHashes.filter((_, idx)=>requestedIndices.has(idx));
48
- const responseTxs = (await txPool.getTxsByHash(requestedTxsHashes)).filter((tx)=>!!tx);
49
- const response = new BlockTxsResponse(request.archiveRoot, new TxArray(...responseTxs), responseBitVector);
55
+ // Finally, get the txs from the pool and create the response.
56
+ const responseTxs = (await txPool.getTxsByHash(Array.from(requestedTxsHashes).map((h)=>TxHash.fromString(h)))).filter((tx)=>!!tx);
57
+ const response = new BlockTxsResponse(new TxArray(...responseTxs), availableIndicesBitVector);
50
58
  return response.toBuffer();
51
59
  };
52
60
  }
@@ -1,26 +1,34 @@
1
+ import { Buffer32 } from '@aztec/foundation/buffer';
1
2
  import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { BufferReader } from '@aztec/foundation/serialize';
3
- import type { BlockProposal } from '@aztec/stdlib/p2p';
4
- import { TxArray, TxHash, TxHashArray } from '@aztec/stdlib/tx';
4
+ import { TxArray, type TxHash, TxHashArray } from '@aztec/stdlib/tx';
5
5
  import { BitVector } from './bitvector.js';
6
+ /** Minimal interface for a block source that provides tx hashes and an archive root. */
7
+ export interface BlockTxsSource {
8
+ txHashes: TxHash[];
9
+ archive: Fr;
10
+ }
6
11
  /**
7
12
  * Request message for requesting specific transactions from a block
8
13
  */
9
14
  export declare class BlockTxsRequest {
10
15
  readonly archiveRoot: Fr;
11
- readonly txHashes: TxHashArray;
12
16
  readonly txIndices: BitVector;
13
- constructor(archiveRoot: Fr, txHashes: TxHashArray, txIndices: BitVector);
17
+ readonly blockTxHashesCommitment: Buffer32;
18
+ readonly txHashes: TxHashArray;
19
+ constructor(archiveRoot: Fr, txIndices: BitVector, blockTxHashesCommitment: Buffer32, txHashes: TxHashArray);
20
+ static computeBlockTxHashesCommitment(blockTxHashes: TxHash[]): Buffer32;
14
21
  /**
15
- * Creates new BlockTxsRequest given proposal and missing tx hashes
22
+ * Creates new BlockTxsRequest given a block txs source and missing tx hashes.
16
23
  *
17
- * @param: blockProposal - The block proposal for which we are making request
18
- * @param: missingTxHashes - Tx hashes from the proposal we are missing
19
- * @param: includeFullTxHashes - Whether to include full list of missing tx hashes in the request or just Bitvector indices
24
+ * @param blockTxsSource - The block or proposal for which we are making the request
25
+ * @param missingTxHashes - Tx hashes from the source we are missing
26
+ * @param includeFullTxHashes - Whether to include full list of missing tx hashes in the request or just Bitvector indices
20
27
  *
21
- * @returns undefined if there were no missingTxHashes matching BlockProposal hashes, otherwise
22
- * returns new BlockTxsRequest*/
23
- static fromBlockProposalAndMissingTxs(blockProposal: BlockProposal, missingTxHashes: TxHash[], includeFullTxHashes?: boolean): BlockTxsRequest | undefined;
28
+ * @returns undefined if there were no missingTxHashes matching the source hashes, otherwise
29
+ * returns new BlockTxsRequest
30
+ */
31
+ static fromTxsSourceAndMissingTxs(blockTxsSource: BlockTxsSource, missingTxHashes: TxHash[], includeFullTxHashes?: boolean): BlockTxsRequest | undefined;
24
32
  /**
25
33
  * Deserializes the BlockTxRequest object from a Buffer
26
34
  * @param buffer - Buffer or BufferReader object to deserialize
@@ -37,10 +45,14 @@ export declare class BlockTxsRequest {
37
45
  * Response message containing requested transactions from a block
38
46
  */
39
47
  export declare class BlockTxsResponse {
40
- readonly archiveRoot: Fr;
41
48
  readonly txs: TxArray;
42
49
  readonly txIndices: BitVector;
43
- constructor(archiveRoot: Fr, txs: TxArray, txIndices: BitVector);
50
+ constructor(txs: TxArray, txIndices: BitVector);
51
+ /**
52
+ * Whether the response indicates that the peer has the block.
53
+ * @returns True if the peer has the block, false otherwise.
54
+ */
55
+ peerHasBlock(): boolean;
44
56
  /**
45
57
  * Deserializes the BlockTxResponse object from a Buffer
46
58
  * @param buffer - Buffer or BufferReader object to deserialize
@@ -49,11 +61,15 @@ export declare class BlockTxsResponse {
49
61
  static fromBuffer(buffer: Buffer | BufferReader): BlockTxsResponse;
50
62
  /**
51
63
  * Serializes the BlockTxResponse object into a Buffer
52
- * @dev: In current implementation, txIndices is serialized as Buffer of unknown length,
53
- * thus we serialize it last
54
64
  * @returns Buffer representation of the BlockTxResponse object
55
65
  */
56
66
  toBuffer(): Buffer;
57
67
  static empty(): BlockTxsResponse;
58
68
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX3JlcXJlc3AuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX3JlcXJlc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDOztHQUVHO0FBQ0gscUJBQWEsZUFBZTtJQUd4QixRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUU7SUFFeEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxXQUFXO0lBSzlCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUztJQVQvQixZQUVXLFdBQVcsRUFBRSxFQUFFLEVBRWYsUUFBUSxFQUFFLFdBQVcsRUFLckIsU0FBUyxFQUFFLFNBQVMsRUFDM0I7SUFFSjs7Ozs7Ozs7b0NBUWdDO0lBQ2hDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FDbkMsYUFBYSxFQUFFLGFBQWEsRUFDNUIsZUFBZSxFQUFFLE1BQU0sRUFBRSxFQUN6QixtQkFBbUIsVUFBUSxHQUMxQixlQUFlLEdBQUcsU0FBUyxDQW9CN0I7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxlQUFlLENBT2hFO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FFakI7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsZ0JBQWdCO0lBRXpCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtJQUN4QixRQUFRLENBQUMsR0FBRyxFQUFFLE9BQU87SUFHckIsUUFBUSxDQUFDLFNBQVMsRUFBRSxTQUFTO0lBTC9CLFlBQ1csV0FBVyxFQUFFLEVBQUUsRUFDZixHQUFHLEVBQUUsT0FBTyxFQUdaLFNBQVMsRUFBRSxTQUFTLEVBQzNCO0lBRUo7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsZ0JBQWdCLENBT2pFO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksZ0JBQWdCLENBRS9CO0NBQ0YifQ==
69
+ /**
70
+ * Calculate the expected response size for a BLOCK_TXS request.
71
+ * @param requestBuffer - The serialized request buffer containing BlockTxsRequest
72
+ * @returns Expected response size in KB
73
+ */
74
+ export declare function calculateBlockTxsResponseSize(requestBuffer: Buffer): number;
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX3JlcXJlc3AuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX3JlcXJlc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLDZCQUE2QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLHdGQUF3RjtBQUN4RixNQUFNLFdBQVcsY0FBYztJQUM3QixRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDbkIsT0FBTyxFQUFFLEVBQUUsQ0FBQztDQUNiO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxlQUFlO0lBR3hCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtJQUl4QixRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVM7SUFLN0IsUUFBUSxDQUFDLHVCQUF1QixFQUFFLFFBQVE7SUFJMUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxXQUFXO0lBZmhDLFlBRVcsV0FBVyxFQUFFLEVBQUUsRUFJZixTQUFTLEVBQUUsU0FBUyxFQUtwQix1QkFBdUIsRUFBRSxRQUFRLEVBSWpDLFFBQVEsRUFBRSxXQUFXLEVBQzVCO0lBRUosTUFBTSxDQUFDLDhCQUE4QixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxRQUFRLENBRXZFO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUMvQixjQUFjLEVBQUUsY0FBYyxFQUM5QixlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQ3pCLG1CQUFtQixVQUFRLEdBQzFCLGVBQWUsR0FBRyxTQUFTLENBcUI3QjtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGVBQWUsQ0FRaEU7SUFFRDs7O09BR0c7SUFDSCxRQUFRLElBQUksTUFBTSxDQU9qQjtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxnQkFBZ0I7SUFHekIsUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPO0lBS3JCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUztJQVAvQixZQUVXLEdBQUcsRUFBRSxPQUFPLEVBS1osU0FBUyxFQUFFLFNBQVMsRUFDM0I7SUFFSjs7O09BR0c7SUFDSCxZQUFZLElBQUksT0FBTyxDQUV0QjtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGdCQUFnQixDQU1qRTtJQUVEOzs7T0FHRztJQUNILFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FFL0I7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsNkJBQTZCLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBUzNFIn0=
@@ -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,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;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;;;;;;;;oCAQgC;IAChC,MAAM,CAAC,8BAA8B,CACnC,aAAa,EAAE,aAAa,EAC5B,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,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,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;AAIrE,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;IAIxB,QAAQ,CAAC,SAAS,EAAE,SAAS;IAK7B,QAAQ,CAAC,uBAAuB,EAAE,QAAQ;IAI1C,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAfhC,YAEW,WAAW,EAAE,EAAE,EAIf,SAAS,EAAE,SAAS,EAKpB,uBAAuB,EAAE,QAAQ,EAIjC,QAAQ,EAAE,WAAW,EAC5B;IAEJ,MAAM,CAAC,8BAA8B,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,QAAQ,CAEvE;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,0BAA0B,CAC/B,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,MAAM,EAAE,EACzB,mBAAmB,UAAQ,GAC1B,eAAe,GAAG,SAAS,CAqB7B;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,CAQhE;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAOjB;CACF;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAGzB,QAAQ,CAAC,GAAG,EAAE,OAAO;IAKrB,QAAQ,CAAC,SAAS,EAAE,SAAS;IAP/B,YAEW,GAAG,EAAE,OAAO,EAKZ,SAAS,EAAE,SAAS,EAC3B;IAEJ;;;OAGG;IACH,YAAY,IAAI,OAAO,CAEtB;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAMjE;IAED;;;OAGG;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"}