@aztec/p2p 0.0.1-commit.b655e406 → 0.0.1-commit.b6e433891

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 (611) hide show
  1. package/README.md +129 -3
  2. package/dest/bootstrap/bootstrap.d.ts +4 -3
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +4 -4
  5. package/dest/client/factory.d.ts +11 -11
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +58 -19
  8. package/dest/client/index.d.ts +1 -1
  9. package/dest/client/interface.d.ts +61 -33
  10. package/dest/client/interface.d.ts.map +1 -1
  11. package/dest/client/p2p_client.d.ts +52 -83
  12. package/dest/client/p2p_client.d.ts.map +1 -1
  13. package/dest/client/p2p_client.js +617 -335
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +305 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  19. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  20. package/dest/config.d.ts +124 -72
  21. package/dest/config.d.ts.map +1 -1
  22. package/dest/config.js +128 -53
  23. package/dest/enr/generate-enr.d.ts +1 -1
  24. package/dest/enr/index.d.ts +1 -1
  25. package/dest/errors/attestation-pool.error.d.ts +7 -0
  26. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  27. package/dest/errors/attestation-pool.error.js +12 -0
  28. package/dest/errors/reqresp.error.d.ts +1 -1
  29. package/dest/errors/reqresp.error.d.ts.map +1 -1
  30. package/dest/errors/tx-pool.error.d.ts +8 -0
  31. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  32. package/dest/errors/tx-pool.error.js +9 -0
  33. package/dest/index.d.ts +2 -1
  34. package/dest/index.d.ts.map +1 -1
  35. package/dest/index.js +1 -0
  36. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +114 -57
  37. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  38. package/dest/mem_pools/attestation_pool/attestation_pool.js +445 -3
  39. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  40. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  41. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +529 -288
  42. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  43. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  44. package/dest/mem_pools/attestation_pool/index.js +1 -2
  45. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  46. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  47. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  48. package/dest/mem_pools/index.d.ts +3 -2
  49. package/dest/mem_pools/index.d.ts.map +1 -1
  50. package/dest/mem_pools/index.js +1 -1
  51. package/dest/mem_pools/instrumentation.d.ts +11 -1
  52. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  53. package/dest/mem_pools/instrumentation.js +39 -10
  54. package/dest/mem_pools/interface.d.ts +6 -7
  55. package/dest/mem_pools/interface.d.ts.map +1 -1
  56. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +33 -58
  57. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  58. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  59. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  60. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  61. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  62. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  63. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  64. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  65. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  66. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  67. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +123 -0
  68. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  69. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  70. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  71. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  72. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  73. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  74. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  75. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  76. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  77. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  78. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  79. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  80. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  81. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  82. package/dest/mem_pools/tx_pool/index.js +0 -1
  83. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  84. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  85. package/dest/mem_pools/tx_pool/priority.js +8 -3
  86. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  87. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  88. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  89. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  90. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +33 -25
  91. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  92. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  93. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  94. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  95. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  96. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  97. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  98. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  99. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  100. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  101. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  102. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  103. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  104. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  105. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  106. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  107. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  108. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  109. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  110. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  111. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  112. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  113. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  114. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  115. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  116. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  117. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  118. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  119. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  120. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  121. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  122. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  123. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  124. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  125. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  126. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  127. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  128. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  129. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  130. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  131. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  132. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  133. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  134. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  135. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  136. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +215 -0
  137. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  138. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  139. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +134 -0
  140. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  141. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +216 -0
  142. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  143. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  144. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  145. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  146. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  147. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  148. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  149. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  150. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  151. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  152. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  153. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +923 -0
  154. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +7 -6
  155. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  156. package/dest/msg_validators/attestation_validator/attestation_validator.js +58 -24
  157. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  158. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  159. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +76 -0
  160. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  161. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  162. package/dest/msg_validators/attestation_validator/index.js +1 -0
  163. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  164. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  165. package/dest/msg_validators/clock_tolerance.js +38 -0
  166. package/dest/msg_validators/index.d.ts +2 -2
  167. package/dest/msg_validators/index.d.ts.map +1 -1
  168. package/dest/msg_validators/index.js +1 -1
  169. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  170. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  171. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +11 -0
  172. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  173. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +14 -0
  174. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +11 -0
  175. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  176. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +20 -0
  177. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  178. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  179. package/dest/msg_validators/proposal_validator/index.js +3 -0
  180. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +18 -0
  181. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  182. package/dest/msg_validators/proposal_validator/proposal_validator.js +116 -0
  183. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  184. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  185. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  186. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  187. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  188. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  189. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  190. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  191. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  192. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  193. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  194. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  195. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  196. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  197. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  198. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  199. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  200. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  201. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  202. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  203. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  204. package/dest/msg_validators/tx_validator/factory.d.ts +139 -6
  205. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  206. package/dest/msg_validators/tx_validator/factory.js +249 -58
  207. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  208. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  209. package/dest/msg_validators/tx_validator/fee_payer_balance.js +24 -0
  210. package/dest/msg_validators/tx_validator/gas_validator.d.ts +68 -3
  211. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  212. package/dest/msg_validators/tx_validator/gas_validator.js +114 -52
  213. package/dest/msg_validators/tx_validator/index.d.ts +4 -1
  214. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  215. package/dest/msg_validators/tx_validator/index.js +3 -0
  216. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  217. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  218. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  219. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  220. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  221. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  222. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  223. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  224. package/dest/msg_validators/tx_validator/phases_validator.js +77 -27
  225. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  226. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  227. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  228. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  229. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  230. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +23 -5
  231. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  232. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  233. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  234. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  235. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  236. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  237. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  238. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  239. package/dest/services/data_store.d.ts +1 -1
  240. package/dest/services/data_store.d.ts.map +1 -1
  241. package/dest/services/data_store.js +10 -6
  242. package/dest/services/discv5/discV5_service.d.ts +1 -1
  243. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  244. package/dest/services/discv5/discV5_service.js +1 -1
  245. package/dest/services/dummy_service.d.ts +28 -4
  246. package/dest/services/dummy_service.d.ts.map +1 -1
  247. package/dest/services/dummy_service.js +49 -1
  248. package/dest/services/encoding.d.ts +7 -3
  249. package/dest/services/encoding.d.ts.map +1 -1
  250. package/dest/services/encoding.js +23 -15
  251. package/dest/services/gossipsub/index.d.ts +3 -0
  252. package/dest/services/gossipsub/index.d.ts.map +1 -0
  253. package/dest/services/gossipsub/index.js +2 -0
  254. package/dest/services/gossipsub/scoring.d.ts +21 -3
  255. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  256. package/dest/services/gossipsub/scoring.js +24 -7
  257. package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
  258. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  259. package/dest/services/gossipsub/topic_score_params.js +346 -0
  260. package/dest/services/index.d.ts +2 -1
  261. package/dest/services/index.d.ts.map +1 -1
  262. package/dest/services/index.js +1 -0
  263. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  264. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  265. package/dest/services/libp2p/instrumentation.js +36 -71
  266. package/dest/services/libp2p/libp2p_service.d.ts +108 -96
  267. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  268. package/dest/services/libp2p/libp2p_service.js +1182 -353
  269. package/dest/services/peer-manager/interface.d.ts +1 -1
  270. package/dest/services/peer-manager/metrics.d.ts +11 -2
  271. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  272. package/dest/services/peer-manager/metrics.js +45 -16
  273. package/dest/services/peer-manager/peer_manager.d.ts +2 -33
  274. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  275. package/dest/services/peer-manager/peer_manager.js +10 -15
  276. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  277. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  278. package/dest/services/peer-manager/peer_scoring.js +68 -4
  279. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +51 -0
  280. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  281. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +540 -0
  282. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  283. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  284. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  285. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +47 -0
  286. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  287. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  288. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  289. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  290. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  291. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  292. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  293. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  294. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  295. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  296. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  297. package/dest/services/reqresp/config.d.ts +1 -1
  298. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  299. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  300. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  301. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  302. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  303. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  304. package/dest/services/reqresp/constants.d.ts +12 -0
  305. package/dest/services/reqresp/constants.d.ts.map +1 -0
  306. package/dest/services/reqresp/constants.js +7 -0
  307. package/dest/services/reqresp/index.d.ts +1 -1
  308. package/dest/services/reqresp/interface.d.ts +13 -2
  309. package/dest/services/reqresp/interface.d.ts.map +1 -1
  310. package/dest/services/reqresp/interface.js +16 -2
  311. package/dest/services/reqresp/metrics.d.ts +6 -5
  312. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  313. package/dest/services/reqresp/metrics.js +17 -21
  314. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  315. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  316. package/dest/services/reqresp/protocols/auth.js +2 -2
  317. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  318. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  319. package/dest/services/reqresp/protocols/block.js +3 -2
  320. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  321. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  322. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  323. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  324. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  325. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  326. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +30 -9
  327. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  328. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +60 -14
  329. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  330. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  331. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  332. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  333. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  334. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  335. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  336. package/dest/services/reqresp/protocols/status.js +7 -3
  337. package/dest/services/reqresp/protocols/tx.d.ts +8 -3
  338. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  339. package/dest/services/reqresp/protocols/tx.js +20 -0
  340. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  341. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  342. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  343. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  344. package/dest/services/reqresp/reqresp.d.ts +6 -41
  345. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  346. package/dest/services/reqresp/reqresp.js +488 -58
  347. package/dest/services/reqresp/status.d.ts +2 -2
  348. package/dest/services/reqresp/status.d.ts.map +1 -1
  349. package/dest/services/service.d.ts +56 -4
  350. package/dest/services/service.d.ts.map +1 -1
  351. package/dest/services/tx_collection/config.d.ts +22 -1
  352. package/dest/services/tx_collection/config.d.ts.map +1 -1
  353. package/dest/services/tx_collection/config.js +56 -2
  354. package/dest/services/tx_collection/fast_tx_collection.d.ts +10 -15
  355. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  356. package/dest/services/tx_collection/fast_tx_collection.js +95 -84
  357. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  358. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  359. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  360. package/dest/services/tx_collection/file_store_tx_source.d.ts +37 -0
  361. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  362. package/dest/services/tx_collection/file_store_tx_source.js +90 -0
  363. package/dest/services/tx_collection/index.d.ts +3 -1
  364. package/dest/services/tx_collection/index.d.ts.map +1 -1
  365. package/dest/services/tx_collection/index.js +2 -0
  366. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  367. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  368. package/dest/services/tx_collection/instrumentation.js +11 -13
  369. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  370. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  371. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  372. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  373. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  374. package/dest/services/tx_collection/request_tracker.js +84 -0
  375. package/dest/services/tx_collection/slow_tx_collection.d.ts +9 -6
  376. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  377. package/dest/services/tx_collection/slow_tx_collection.js +61 -26
  378. package/dest/services/tx_collection/tx_collection.d.ts +31 -21
  379. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  380. package/dest/services/tx_collection/tx_collection.js +79 -7
  381. package/dest/services/tx_collection/tx_collection_sink.d.ts +19 -9
  382. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  383. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  384. package/dest/services/tx_collection/tx_source.d.ts +8 -3
  385. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  386. package/dest/services/tx_collection/tx_source.js +19 -2
  387. package/dest/services/tx_file_store/config.d.ts +16 -0
  388. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  389. package/dest/services/tx_file_store/config.js +22 -0
  390. package/dest/services/tx_file_store/index.d.ts +4 -0
  391. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  392. package/dest/services/tx_file_store/index.js +3 -0
  393. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  394. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  395. package/dest/services/tx_file_store/instrumentation.js +29 -0
  396. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  397. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  398. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  399. package/dest/services/tx_provider.d.ts +7 -5
  400. package/dest/services/tx_provider.d.ts.map +1 -1
  401. package/dest/services/tx_provider.js +20 -10
  402. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  403. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  404. package/dest/services/tx_provider_instrumentation.js +14 -14
  405. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  406. package/dest/test-helpers/get-ports.d.ts +1 -1
  407. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  408. package/dest/test-helpers/index.d.ts +3 -1
  409. package/dest/test-helpers/index.d.ts.map +1 -1
  410. package/dest/test-helpers/index.js +2 -0
  411. package/dest/test-helpers/make-enrs.d.ts +1 -1
  412. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  413. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  414. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  415. package/dest/test-helpers/mock-pubsub.d.ts +32 -6
  416. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  417. package/dest/test-helpers/mock-pubsub.js +105 -4
  418. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  419. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  420. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  421. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  422. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  423. package/dest/test-helpers/reqresp-nodes.js +4 -3
  424. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  425. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  426. package/dest/test-helpers/test_tx_provider.js +41 -0
  427. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  428. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  429. package/dest/test-helpers/testbench-utils.js +385 -0
  430. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  431. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  432. package/dest/testbench/p2p_client_testbench_worker.js +227 -127
  433. package/dest/testbench/parse_log_file.d.ts +1 -1
  434. package/dest/testbench/testbench.d.ts +1 -1
  435. package/dest/testbench/worker_client_manager.d.ts +53 -6
  436. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  437. package/dest/testbench/worker_client_manager.js +231 -40
  438. package/dest/types/index.d.ts +1 -1
  439. package/dest/util.d.ts +4 -3
  440. package/dest/util.d.ts.map +1 -1
  441. package/dest/util.js +11 -2
  442. package/dest/versioning.d.ts +1 -1
  443. package/package.json +19 -18
  444. package/src/bootstrap/bootstrap.ts +7 -4
  445. package/src/client/factory.ts +110 -44
  446. package/src/client/interface.ts +74 -34
  447. package/src/client/p2p_client.ts +284 -398
  448. package/src/client/test/tx_proposal_collector/README.md +227 -0
  449. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +344 -0
  450. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  451. package/src/config.ts +200 -63
  452. package/src/errors/attestation-pool.error.ts +13 -0
  453. package/src/errors/tx-pool.error.ts +12 -0
  454. package/src/index.ts +1 -0
  455. package/src/mem_pools/attestation_pool/attestation_pool.ts +515 -58
  456. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +614 -309
  457. package/src/mem_pools/attestation_pool/index.ts +9 -2
  458. package/src/mem_pools/attestation_pool/mocks.ts +22 -15
  459. package/src/mem_pools/index.ts +4 -1
  460. package/src/mem_pools/instrumentation.ts +52 -10
  461. package/src/mem_pools/interface.ts +5 -7
  462. package/src/mem_pools/tx_pool/README.md +270 -0
  463. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +367 -371
  464. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  465. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  466. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +163 -0
  467. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  468. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  469. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  470. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  471. package/src/mem_pools/tx_pool/index.ts +0 -1
  472. package/src/mem_pools/tx_pool/priority.ts +10 -3
  473. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  474. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +26 -18
  475. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  476. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  477. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  478. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  479. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  480. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  481. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  482. package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
  483. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  484. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  485. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  486. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  487. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  488. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  489. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  490. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  491. package/src/mem_pools/tx_pool_v2/interfaces.ts +247 -0
  492. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +337 -0
  493. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  494. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  495. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  496. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1105 -0
  497. package/src/msg_validators/attestation_validator/README.md +49 -0
  498. package/src/msg_validators/attestation_validator/attestation_validator.ts +46 -32
  499. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +94 -0
  500. package/src/msg_validators/attestation_validator/index.ts +1 -0
  501. package/src/msg_validators/clock_tolerance.ts +52 -0
  502. package/src/msg_validators/index.ts +1 -1
  503. package/src/msg_validators/proposal_validator/README.md +123 -0
  504. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +20 -0
  505. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +26 -0
  506. package/src/msg_validators/proposal_validator/index.ts +3 -0
  507. package/src/msg_validators/proposal_validator/proposal_validator.ts +116 -0
  508. package/src/msg_validators/tx_validator/README.md +119 -0
  509. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  510. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  511. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  512. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  513. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  514. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  515. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  516. package/src/msg_validators/tx_validator/factory.ts +409 -58
  517. package/src/msg_validators/tx_validator/fee_payer_balance.ts +44 -0
  518. package/src/msg_validators/tx_validator/gas_validator.ts +140 -55
  519. package/src/msg_validators/tx_validator/index.ts +3 -0
  520. package/src/msg_validators/tx_validator/metadata_validator.ts +31 -12
  521. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  522. package/src/msg_validators/tx_validator/phases_validator.ts +89 -30
  523. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  524. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  525. package/src/msg_validators/tx_validator/timestamp_validator.ts +30 -19
  526. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  527. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  528. package/src/services/data_store.ts +10 -7
  529. package/src/services/discv5/discV5_service.ts +1 -1
  530. package/src/services/dummy_service.ts +65 -2
  531. package/src/services/encoding.ts +22 -13
  532. package/src/services/gossipsub/README.md +641 -0
  533. package/src/services/gossipsub/index.ts +2 -0
  534. package/src/services/gossipsub/scoring.ts +29 -5
  535. package/src/services/gossipsub/topic_score_params.ts +487 -0
  536. package/src/services/index.ts +1 -0
  537. package/src/services/libp2p/instrumentation.ts +39 -71
  538. package/src/services/libp2p/libp2p_service.ts +909 -380
  539. package/src/services/peer-manager/metrics.ts +51 -16
  540. package/src/services/peer-manager/peer_manager.ts +12 -7
  541. package/src/services/peer-manager/peer_scoring.ts +70 -3
  542. package/src/services/reqresp/README.md +229 -0
  543. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  544. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +670 -0
  545. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  546. package/src/services/reqresp/batch-tx-requester/interface.ts +54 -0
  547. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  548. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  549. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  550. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  551. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  552. package/src/services/reqresp/constants.ts +14 -0
  553. package/src/services/reqresp/interface.ts +30 -2
  554. package/src/services/reqresp/metrics.ts +36 -27
  555. package/src/services/reqresp/protocols/auth.ts +2 -2
  556. package/src/services/reqresp/protocols/block.ts +3 -2
  557. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  558. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  559. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +75 -10
  560. package/src/services/reqresp/protocols/status.ts +16 -12
  561. package/src/services/reqresp/protocols/tx.ts +23 -2
  562. package/src/services/reqresp/reqresp.ts +99 -32
  563. package/src/services/service.ts +73 -5
  564. package/src/services/tx_collection/config.ts +84 -2
  565. package/src/services/tx_collection/fast_tx_collection.ts +114 -93
  566. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  567. package/src/services/tx_collection/file_store_tx_source.ts +117 -0
  568. package/src/services/tx_collection/index.ts +6 -0
  569. package/src/services/tx_collection/instrumentation.ts +11 -13
  570. package/src/services/tx_collection/proposal_tx_collector.ts +108 -0
  571. package/src/services/tx_collection/request_tracker.ts +127 -0
  572. package/src/services/tx_collection/slow_tx_collection.ts +70 -36
  573. package/src/services/tx_collection/tx_collection.ts +123 -27
  574. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  575. package/src/services/tx_collection/tx_source.ts +22 -3
  576. package/src/services/tx_file_store/config.ts +37 -0
  577. package/src/services/tx_file_store/index.ts +3 -0
  578. package/src/services/tx_file_store/instrumentation.ts +36 -0
  579. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  580. package/src/services/tx_provider.ts +29 -12
  581. package/src/services/tx_provider_instrumentation.ts +24 -14
  582. package/src/test-helpers/index.ts +2 -0
  583. package/src/test-helpers/make-test-p2p-clients.ts +4 -6
  584. package/src/test-helpers/mock-pubsub.ts +147 -10
  585. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  586. package/src/test-helpers/reqresp-nodes.ts +6 -8
  587. package/src/test-helpers/test_tx_provider.ts +64 -0
  588. package/src/test-helpers/testbench-utils.ts +456 -0
  589. package/src/testbench/p2p_client_testbench_worker.ts +351 -127
  590. package/src/testbench/worker_client_manager.ts +312 -42
  591. package/src/util.ts +20 -4
  592. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -30
  593. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  594. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -190
  595. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -25
  596. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  597. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -197
  598. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  599. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  600. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  601. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  602. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  603. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  604. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  605. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  606. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  607. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -256
  608. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -253
  609. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  610. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  611. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,35 +1,43 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
3
  import { type Logger, createLogger } from '@aztec/foundation/log';
3
4
  import { DateProvider } from '@aztec/foundation/timer';
4
5
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
5
- import type { DataStoreConfig } from '@aztec/kv-store/config';
6
6
  import { AztecLMDBStoreV2, createStore } from '@aztec/kv-store/lmdb-v2';
7
7
  import type { L2BlockSource } from '@aztec/stdlib/block';
8
8
  import type { ChainConfig } from '@aztec/stdlib/config';
9
9
  import type { ContractDataSource } from '@aztec/stdlib/contract';
10
- import type { ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
11
- import { P2PClientType } from '@aztec/stdlib/p2p';
10
+ import type { AztecNode, ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
11
+ import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
12
12
  import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
13
13
 
14
14
  import { P2PClient } from '../client/p2p_client.js';
15
15
  import type { P2PConfig } from '../config.js';
16
- import type { AttestationPool } from '../mem_pools/attestation_pool/attestation_pool.js';
17
- import { KvAttestationPool } from '../mem_pools/attestation_pool/kv_attestation_pool.js';
16
+ import { AttestationPool, type AttestationPoolApi } from '../mem_pools/attestation_pool/attestation_pool.js';
18
17
  import type { MemPools } from '../mem_pools/interface.js';
19
- import { AztecKVTxPool, type TxPool } from '../mem_pools/tx_pool/index.js';
18
+ import type { TxPoolV2 } from '../mem_pools/tx_pool_v2/interfaces.js';
19
+ import { AztecKVTxPoolV2 } from '../mem_pools/tx_pool_v2/tx_pool_v2.js';
20
+ import {
21
+ createCheckAllowedSetupCalls,
22
+ createTxValidatorForTransactionsEnteringPendingTxPool,
23
+ getDefaultAllowedSetupFunctions,
24
+ } from '../msg_validators/index.js';
20
25
  import { DummyP2PService } from '../services/dummy_service.js';
21
26
  import { LibP2PService } from '../services/index.js';
27
+ import { createFileStoreTxSources } from '../services/tx_collection/file_store_tx_source.js';
22
28
  import { TxCollection } from '../services/tx_collection/tx_collection.js';
23
- import { type TxSource, createNodeRpcTxSources } from '../services/tx_collection/tx_source.js';
29
+ import { NodeRpcTxSource, type TxSource, createNodeRpcTxSources } from '../services/tx_collection/tx_source.js';
30
+ import { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
24
31
  import { configureP2PClientAddresses, createLibP2PPeerIdFromPrivateKey, getPeerIdPrivateKey } from '../util.js';
25
32
 
26
- export type P2PClientDeps<T extends P2PClientType> = {
27
- txPool?: TxPool;
33
+ export type P2PClientDeps = {
34
+ txPool?: TxPoolV2;
28
35
  store?: AztecAsyncKVStore;
29
- attestationPool?: T extends P2PClientType.Full ? AttestationPool : undefined;
36
+ attestationPool?: AttestationPoolApi;
30
37
  logger?: Logger;
31
38
  txCollectionNodeSources?: TxSource[];
32
- p2pServiceFactory?: (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService<T>>;
39
+ rpcTxProviders?: AztecNode[];
40
+ p2pServiceFactory?: (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService>;
33
41
  };
34
42
 
35
43
  export const P2P_STORE_NAME = 'p2p';
@@ -37,8 +45,7 @@ export const P2P_ARCHIVE_STORE_NAME = 'p2p-archive';
37
45
  export const P2P_PEER_STORE_NAME = 'p2p-peers';
38
46
  export const P2P_ATTESTATION_STORE_NAME = 'p2p-attestation';
39
47
 
40
- export async function createP2PClient<T extends P2PClientType>(
41
- clientType: T,
48
+ export async function createP2PClient(
42
49
  inputConfig: P2PConfig & DataStoreConfig & ChainConfig,
43
50
  archiver: L2BlockSource & ContractDataSource,
44
51
  proofVerifier: ClientProtocolCircuitVerifier,
@@ -47,7 +54,7 @@ export async function createP2PClient<T extends P2PClientType>(
47
54
  packageVersion: string,
48
55
  dateProvider: DateProvider = new DateProvider(),
49
56
  telemetry: TelemetryClient = getTelemetryClient(),
50
- deps: P2PClientDeps<T> = {},
57
+ deps: P2PClientDeps = {},
51
58
  ) {
52
59
  const config = await configureP2PClientAddresses({
53
60
  ...inputConfig,
@@ -62,35 +69,72 @@ export async function createP2PClient<T extends P2PClientType>(
62
69
  );
63
70
  }
64
71
 
65
- const store = deps.store ?? (await createStore(P2P_STORE_NAME, 2, config, createLogger('p2p:lmdb-v2')));
66
- const archive = await createStore(P2P_ARCHIVE_STORE_NAME, 1, config, createLogger('p2p-archive:lmdb-v2'));
67
- const peerStore = await createStore(P2P_PEER_STORE_NAME, 1, config, createLogger('p2p-peer:lmdb-v2'));
68
- const attestationStore = await createStore(
69
- P2P_ATTESTATION_STORE_NAME,
70
- 1,
71
- config,
72
- createLogger('p2p-attestation:lmdb-v2'),
73
- );
72
+ const bindings = logger.getBindings();
73
+ const store = deps.store ?? (await createStore(P2P_STORE_NAME, 2, config, bindings));
74
+ const archive = await createStore(P2P_ARCHIVE_STORE_NAME, 1, config, bindings);
75
+ const peerStore = await createStore(P2P_PEER_STORE_NAME, 1, config, bindings);
76
+ const attestationStore = await createStore(P2P_ATTESTATION_STORE_NAME, 1, config, bindings);
74
77
  const l1Constants = await archiver.getL1Constants();
75
78
 
76
- const mempools: MemPools<T> = {
77
- txPool:
78
- deps.txPool ??
79
- new AztecKVTxPool(store, archive, worldStateSynchronizer, telemetry, {
80
- maxTxPoolSize: config.maxTxPoolSize,
79
+ const rollupAddress = inputConfig.l1Contracts.rollupAddress.toString().toLowerCase().replace(/^0x/, '');
80
+ const txFileStoreBasePath = `aztec-${inputConfig.l1ChainId}-${inputConfig.rollupVersion}-0x${rollupAddress}`;
81
+
82
+ const allowedInSetup = [
83
+ ...(await getDefaultAllowedSetupFunctions()),
84
+ ...(inputConfig.txPublicSetupAllowListExtend ?? []),
85
+ ];
86
+ const checkAllowedSetupCalls = createCheckAllowedSetupCalls(
87
+ archiver,
88
+ allowedInSetup,
89
+ () => epochCache.getEpochAndSlotInNextL1Slot().ts,
90
+ );
91
+
92
+ const createTxValidator = async () => {
93
+ // We accept transactions if they are not expired by the next slot and block number (checked based on the ExpirationTimestamp field)
94
+ const currentBlockNumber = await archiver.getBlockNumber();
95
+ const { ts: nextSlotTimestamp } = epochCache.getEpochAndSlotInNextL1Slot();
96
+ const l1Constants = await archiver.getL1Constants();
97
+ return createTxValidatorForTransactionsEnteringPendingTxPool(
98
+ worldStateSynchronizer,
99
+ nextSlotTimestamp,
100
+ BlockNumber(currentBlockNumber + 1),
101
+ {
102
+ rollupManaLimit: l1Constants.rollupManaLimit,
103
+ maxBlockL2Gas: config.validateMaxL2BlockGas,
104
+ maxBlockDAGas: config.validateMaxDABlockGas,
105
+ },
106
+ );
107
+ };
108
+
109
+ const txPool =
110
+ deps.txPool ??
111
+ new AztecKVTxPoolV2(
112
+ store,
113
+ archive,
114
+ {
115
+ l2BlockSource: archiver,
116
+ worldStateSynchronizer,
117
+ checkAllowedSetupCalls,
118
+ createTxValidator,
119
+ },
120
+ telemetry,
121
+ {
122
+ maxPendingTxCount: config.maxPendingTxCount,
81
123
  archivedTxLimit: config.archivedTxLimit,
82
- }),
83
- attestationPool:
84
- clientType === P2PClientType.Full
85
- ? ((deps.attestationPool ?? new KvAttestationPool(attestationStore, telemetry)) as T extends P2PClientType.Full
86
- ? AttestationPool
87
- : undefined)
88
- : undefined,
124
+ minTxPoolAgeMs: config.minTxPoolAgeMs,
125
+ dropTransactionsProbability: config.dropTransactionsProbability,
126
+ priceBumpPercentage: config.priceBumpPercentage,
127
+ },
128
+ dateProvider,
129
+ );
130
+
131
+ const mempools: MemPools = {
132
+ txPool,
133
+ attestationPool: deps.attestationPool ?? new AttestationPool(attestationStore, telemetry),
89
134
  };
90
135
 
91
- const p2pService = await createP2PService<T>(
136
+ const p2pService = await createP2PService(
92
137
  config,
93
- clientType,
94
138
  archiver,
95
139
  proofVerifier,
96
140
  worldStateSynchronizer,
@@ -106,6 +150,7 @@ export async function createP2PClient<T extends P2PClientType>(
106
150
 
107
151
  const nodeSources = [
108
152
  ...createNodeRpcTxSources(config.txCollectionNodeRpcUrls, config),
153
+ ...(deps.rpcTxProviders ?? []).map((node, i) => new NodeRpcTxSource(node, `node-rpc-provider-${i}`)),
109
154
  ...(deps.txCollectionNodeSources ?? []),
110
155
  ];
111
156
  if (nodeSources.length > 0) {
@@ -114,41 +159,62 @@ export async function createP2PClient<T extends P2PClientType>(
114
159
  });
115
160
  }
116
161
 
162
+ const fileStoreSources = await createFileStoreTxSources(
163
+ config.txCollectionFileStoreUrls,
164
+ txFileStoreBasePath,
165
+ logger.createChild('file-store-tx-source'),
166
+ telemetry,
167
+ );
168
+ if (fileStoreSources.length > 0) {
169
+ logger.info(`Using ${fileStoreSources.length} file store sources for tx collection.`, {
170
+ stores: fileStoreSources.map(s => s.getInfo()),
171
+ });
172
+ }
173
+
117
174
  const txCollection = new TxCollection(
118
- p2pService,
175
+ p2pService.getBatchTxRequesterService(),
119
176
  nodeSources,
120
177
  l1Constants,
121
178
  mempools.txPool,
122
179
  config,
180
+ fileStoreSources,
123
181
  dateProvider,
124
182
  telemetry,
125
183
  logger.createChild('tx-collection'),
126
184
  );
127
185
 
186
+ const txFileStore = await TxFileStore.create(
187
+ mempools.txPool,
188
+ config,
189
+ txFileStoreBasePath,
190
+ logger.createChild('tx-file-store'),
191
+ telemetry,
192
+ );
193
+
128
194
  return new P2PClient(
129
- clientType,
130
195
  store,
131
196
  archiver,
132
197
  mempools,
133
198
  p2pService,
134
199
  txCollection,
200
+ txFileStore,
201
+ epochCache,
135
202
  config,
136
203
  dateProvider,
137
204
  telemetry,
138
205
  );
139
206
  }
140
207
 
141
- async function createP2PService<T extends P2PClientType>(
208
+ async function createP2PService(
142
209
  config: P2PConfig & DataStoreConfig,
143
- clientType: T,
144
210
  archiver: L2BlockSource & ContractDataSource,
145
211
  proofVerifier: ClientProtocolCircuitVerifier,
146
212
  worldStateSynchronizer: WorldStateSynchronizer,
147
213
  epochCache: EpochCacheInterface,
148
214
  store: AztecAsyncKVStore,
149
215
  peerStore: AztecLMDBStoreV2,
150
- mempools: MemPools<T>,
151
- p2pServiceFactory: P2PClientDeps<T>['p2pServiceFactory'],
216
+ mempools: MemPools,
217
+ p2pServiceFactory: P2PClientDeps['p2pServiceFactory'],
152
218
  packageVersion: string,
153
219
  logger: Logger,
154
220
  telemetry: TelemetryClient,
@@ -164,7 +230,7 @@ async function createP2PService<T extends P2PClientType>(
164
230
  const peerIdPrivateKey = await getPeerIdPrivateKey(config, store, logger);
165
231
  const peerId = await createLibP2PPeerIdFromPrivateKey(peerIdPrivateKey.getValue());
166
232
 
167
- const p2pService = await (p2pServiceFactory ?? LibP2PService.new<T>)(clientType, config, peerId, {
233
+ const p2pService = await (p2pServiceFactory ?? LibP2PService.new)(config, peerId, {
168
234
  packageVersion,
169
235
  mempools,
170
236
  l2BlockSource: archiver,
@@ -1,7 +1,8 @@
1
+ import type { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import type { EthAddress, L2BlockId } from '@aztec/stdlib/block';
2
- import type { P2PApiFull } from '@aztec/stdlib/interfaces/server';
3
- import type { BlockProposal, P2PClientType } from '@aztec/stdlib/p2p';
4
- import type { Tx, TxHash } from '@aztec/stdlib/tx';
3
+ import type { ITxProvider, P2PClient } from '@aztec/stdlib/interfaces/server';
4
+ import type { BlockProposal, CheckpointAttestation, CheckpointProposal, TopicType } from '@aztec/stdlib/p2p';
5
+ import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
5
6
 
6
7
  import type { PeerId } from '@libp2p/interface';
7
8
  import type { ENR } from '@nethermindeth/enr';
@@ -13,7 +14,12 @@ import type {
13
14
  ReqRespSubProtocolHandler,
14
15
  ReqRespSubProtocolValidators,
15
16
  } from '../services/reqresp/interface.js';
16
- import type { P2PBlockReceivedCallback } from '../services/service.js';
17
+ import type {
18
+ DuplicateAttestationInfo,
19
+ DuplicateProposalInfo,
20
+ P2PBlockReceivedCallback,
21
+ P2PCheckpointReceivedCallback,
22
+ } from '../services/service.js';
17
23
 
18
24
  /**
19
25
  * Enum defining the possible states of the p2p client.
@@ -42,7 +48,7 @@ export interface P2PSyncState {
42
48
  /**
43
49
  * Interface of a P2P client.
44
50
  **/
45
- export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> & {
51
+ export type P2P = P2PClient & {
46
52
  /**
47
53
  * Broadcasts a block proposal to other peers.
48
54
  *
@@ -50,6 +56,16 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
50
56
  */
51
57
  broadcastProposal(proposal: BlockProposal): Promise<void>;
52
58
 
59
+ /**
60
+ * Broadcasts a checkpoint proposal (last block in a checkpoint) to other peers.
61
+ *
62
+ * @param proposal - the checkpoint proposal
63
+ */
64
+ broadcastCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
65
+
66
+ /** Broadcasts checkpoint attestations to other peers. */
67
+ broadcastCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
68
+
53
69
  /**
54
70
  * Registers a callback from the validator client that determines how to behave when
55
71
  * foreign block proposals are received
@@ -61,12 +77,29 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
61
77
  registerBlockProposalHandler(callback: P2PBlockReceivedCallback): void;
62
78
 
63
79
  /**
64
- * Request a list of transactions from another peer by their tx hashes.
65
- * @param txHashes - Hashes of the txs to query.
66
- * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
67
- * @returns A list of transactions or undefined if the transactions are not found.
80
+ * Registers a callback from the validator client that determines how to behave when
81
+ * foreign checkpoint proposals are received
82
+ *
83
+ * @param handler - A function taking a received checkpoint proposal and producing attestations
68
84
  */
69
- requestTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId): Promise<Tx[]>;
85
+ registerCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
86
+
87
+ /**
88
+ * Registers a callback invoked when a duplicate proposal is detected (equivocation).
89
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
90
+ *
91
+ * @param callback - Function called with info about the duplicate proposal
92
+ */
93
+ registerDuplicateProposalCallback(callback: (info: DuplicateProposalInfo) => void): void;
94
+
95
+ /**
96
+ * Registers a callback invoked when a duplicate attestation is detected (equivocation).
97
+ * A validator signing attestations for different proposals at the same slot.
98
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
99
+ *
100
+ * @param callback - Function called with info about the duplicate attestation
101
+ */
102
+ registerDuplicateAttestationCallback(callback: (info: DuplicateAttestationInfo) => void): void;
70
103
 
71
104
  /**
72
105
  * Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
@@ -75,18 +108,10 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
75
108
  sendTx(tx: Tx): Promise<void>;
76
109
 
77
110
  /**
78
- * Adds transactions to the pool. Does not send to peers or validate the tx.
79
- * @param txs - The transactions.
80
- * @returns The number of txs added to the pool. Note if the transaction already exists, it will not be added again.
81
- **/
82
- addTxsToPool(txs: Tx[]): Promise<number>;
83
-
84
- /**
85
- * Deletes 'txs' from the pool, given hashes.
86
- * NOT used if we use sendTx as reconcileTxPool will handle this.
87
- * @param txHashes - Hashes to check.
111
+ * Handles failed transaction execution by removing txs from the pool.
112
+ * @param txHashes - Hashes of the transactions that failed execution.
88
113
  **/
89
- deleteTxs(txHashes: TxHash[]): Promise<void>;
114
+ handleFailedExecution(txHashes: TxHash[]): Promise<void>;
90
115
 
91
116
  /**
92
117
  * Returns a transaction in the transaction pool by its hash.
@@ -109,14 +134,6 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
109
134
  */
110
135
  hasTxsInPool(txHashes: TxHash[]): Promise<boolean[]>;
111
136
 
112
- /**
113
- * Returns transactions in the transaction pool by hash, requesting from the network if not found.
114
- * @param txHashes - Hashes of tx to return.
115
- * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
116
- * @returns An array of tx or undefined.
117
- */
118
- getTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId | undefined): Promise<(Tx | undefined)[]>;
119
-
120
137
  /**
121
138
  * Returns an archived transaction from the transaction pool by its hash.
122
139
  * @param txHash - Hash of tx to return.
@@ -134,14 +151,28 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
134
151
  /** Returns an iterator over pending txs on the mempool. */
135
152
  iteratePendingTxs(): AsyncIterableIterator<Tx>;
136
153
 
154
+ /** Returns an iterator over pending txs that have been in the pool long enough to be eligible for block building. */
155
+ iterateEligiblePendingTxs(): AsyncIterableIterator<Tx>;
156
+
137
157
  /** Returns the number of pending txs in the mempool. */
138
158
  getPendingTxCount(): Promise<number>;
139
159
 
140
160
  /**
141
- * Marks transactions as non-evictable in the pool.
142
- * @param txHashes - Hashes of the transactions to mark as non-evictable.
161
+ * Protects existing transactions by hash for a given slot.
162
+ * Returns hashes of transactions that weren't found in the pool.
163
+ * @param txHashes - Hashes of the transactions to protect.
164
+ * @param blockHeader - The block header providing slot context.
165
+ * @returns Hashes of transactions not found in the pool.
166
+ */
167
+ protectTxs(txHashes: TxHash[], blockHeader: BlockHeader): Promise<TxHash[]>;
168
+
169
+ /**
170
+ * Prepares the pool for a new slot.
171
+ * Unprotects transactions from earlier slots and validates them before
172
+ * returning to pending state.
173
+ * @param slotNumber - The slot number to prepare for
143
174
  */
144
- markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
175
+ prepareForSlot(slotNumber: SlotNumber): Promise<void>;
145
176
 
146
177
  /**
147
178
  * Starts the p2p client.
@@ -174,10 +205,13 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
174
205
  /** Identifies a p2p client. */
175
206
  isP2PClient(): true;
176
207
 
208
+ /** Returns the tx provider used for fetching transactions. */
209
+ getTxProvider(): ITxProvider;
210
+
177
211
  updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
178
212
 
179
- /** Validates a set of txs. */
180
- validate(txs: Tx[]): Promise<void>;
213
+ /** Validates a set of txs received in a block proposal. */
214
+ validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
181
215
 
182
216
  /** Clears the db. */
183
217
  clear(): Promise<void>;
@@ -190,6 +224,12 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
190
224
 
191
225
  handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
192
226
 
227
+ /** Checks if any block proposals exist for the given slot. */
228
+ hasBlockProposalsForSlot(slot: SlotNumber): Promise<boolean>;
229
+
193
230
  /** If node running this P2P stack is validator, passes in validator address to P2P layer */
194
231
  registerThisValidatorAddresses(address: EthAddress[]): void;
232
+
233
+ /** Returns the number of peers in the GossipSub mesh for a given topic type. */
234
+ getGossipMeshPeerCount(topicType: TopicType): Promise<number>;
195
235
  };