@aztec/p2p 0.0.1-commit.d431d1c → 0.0.1-commit.d58ff9d0

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 (570) hide show
  1. package/README.md +130 -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 +26 -10
  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 +70 -20
  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 +247 -244
  13. package/dest/config.d.ts +169 -84
  14. package/dest/config.d.ts.map +1 -1
  15. package/dest/config.js +159 -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 +40 -19
  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 +11 -4
  115. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/attestation_validator/attestation_validator.js +67 -13
  117. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +9 -5
  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 +22 -11
  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 +156 -43
  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.d.ts +3 -3
  139. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  141. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  142. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  143. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  144. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  145. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  146. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  147. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  148. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  149. package/dest/msg_validators/tx_validator/data_validator.d.ts +4 -1
  150. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  151. package/dest/msg_validators/tx_validator/data_validator.js +40 -3
  152. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  153. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  154. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  155. package/dest/msg_validators/tx_validator/factory.d.ts +136 -5
  156. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/factory.js +268 -58
  158. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  159. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  161. package/dest/msg_validators/tx_validator/gas_validator.d.ts +105 -3
  162. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  163. package/dest/msg_validators/tx_validator/gas_validator.js +138 -53
  164. package/dest/msg_validators/tx_validator/index.d.ts +5 -1
  165. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  166. package/dest/msg_validators/tx_validator/index.js +4 -0
  167. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  168. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  169. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  170. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  171. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  172. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  173. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  174. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  175. package/dest/msg_validators/tx_validator/phases_validator.js +75 -27
  176. package/dest/msg_validators/tx_validator/size_validator.d.ts +3 -1
  177. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -1
  178. package/dest/msg_validators/tx_validator/size_validator.js +4 -1
  179. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  180. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  181. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  182. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  183. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  184. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  185. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +4 -2
  186. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  187. package/dest/msg_validators/tx_validator/tx_proof_validator.js +4 -2
  188. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  189. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  190. package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
  191. package/dest/services/data_store.d.ts +1 -1
  192. package/dest/services/data_store.d.ts.map +1 -1
  193. package/dest/services/data_store.js +14 -10
  194. package/dest/services/discv5/discV5_service.d.ts +13 -2
  195. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  196. package/dest/services/discv5/discV5_service.js +120 -24
  197. package/dest/services/discv5/persisted_enr_store.d.ts +38 -0
  198. package/dest/services/discv5/persisted_enr_store.d.ts.map +1 -0
  199. package/dest/services/discv5/persisted_enr_store.js +145 -0
  200. package/dest/services/dummy_service.d.ts +37 -17
  201. package/dest/services/dummy_service.d.ts.map +1 -1
  202. package/dest/services/dummy_service.js +59 -15
  203. package/dest/services/encoding.d.ts +24 -7
  204. package/dest/services/encoding.d.ts.map +1 -1
  205. package/dest/services/encoding.js +43 -26
  206. package/dest/services/gossipsub/index.d.ts +3 -0
  207. package/dest/services/gossipsub/index.d.ts.map +1 -0
  208. package/dest/services/gossipsub/index.js +2 -0
  209. package/dest/services/gossipsub/scoring.d.ts +21 -3
  210. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  211. package/dest/services/gossipsub/scoring.js +24 -7
  212. package/dest/services/gossipsub/topic_score_params.d.ts +167 -0
  213. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  214. package/dest/services/gossipsub/topic_score_params.js +336 -0
  215. package/dest/services/index.d.ts +2 -1
  216. package/dest/services/index.d.ts.map +1 -1
  217. package/dest/services/index.js +1 -0
  218. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  219. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  220. package/dest/services/libp2p/instrumentation.js +28 -3
  221. package/dest/services/libp2p/libp2p_service.d.ts +116 -60
  222. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  223. package/dest/services/libp2p/libp2p_service.js +800 -586
  224. package/dest/services/peer-manager/metrics.d.ts +4 -2
  225. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  226. package/dest/services/peer-manager/metrics.js +26 -5
  227. package/dest/services/peer-manager/peer_manager.d.ts +20 -3
  228. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  229. package/dest/services/peer-manager/peer_manager.js +83 -26
  230. package/dest/services/peer-manager/peer_scoring.d.ts +34 -2
  231. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  232. package/dest/services/peer-manager/peer_scoring.js +135 -17
  233. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +44 -0
  234. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  235. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +534 -0
  236. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  237. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  238. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  239. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  240. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  241. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  242. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  243. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  244. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  245. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  246. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  247. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  248. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +11 -0
  249. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  250. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +7 -0
  251. package/dest/services/reqresp/config.d.ts +15 -3
  252. package/dest/services/reqresp/config.d.ts.map +1 -1
  253. package/dest/services/reqresp/config.js +11 -0
  254. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  255. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  256. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  257. package/dest/services/reqresp/interface.d.ts +27 -18
  258. package/dest/services/reqresp/interface.d.ts.map +1 -1
  259. package/dest/services/reqresp/interface.js +23 -19
  260. package/dest/services/reqresp/metrics.d.ts +6 -5
  261. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  262. package/dest/services/reqresp/metrics.js +16 -5
  263. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +8 -3
  264. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  265. package/dest/services/reqresp/protocols/block_txs/bitvector.js +8 -2
  266. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  267. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  268. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +35 -14
  269. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +36 -8
  270. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  271. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +84 -20
  272. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  273. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  274. package/dest/services/reqresp/protocols/index.js +0 -1
  275. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  276. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  277. package/dest/services/reqresp/protocols/tx.js +21 -3
  278. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  279. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  280. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  281. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  282. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  283. package/dest/services/reqresp/rate-limiter/rate_limits.js +3 -13
  284. package/dest/services/reqresp/reqresp.d.ts +12 -29
  285. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  286. package/dest/services/reqresp/reqresp.js +90 -188
  287. package/dest/services/service.d.ts +65 -13
  288. package/dest/services/service.d.ts.map +1 -1
  289. package/dest/services/tx_collection/config.d.ts +11 -11
  290. package/dest/services/tx_collection/config.d.ts.map +1 -1
  291. package/dest/services/tx_collection/config.js +27 -26
  292. package/dest/services/tx_collection/file_store_tx_collection.d.ts +37 -0
  293. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  294. package/dest/services/tx_collection/file_store_tx_collection.js +127 -0
  295. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  296. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  297. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  298. package/dest/services/tx_collection/index.d.ts +3 -2
  299. package/dest/services/tx_collection/index.d.ts.map +1 -1
  300. package/dest/services/tx_collection/index.js +1 -0
  301. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  302. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  303. package/dest/services/tx_collection/instrumentation.js +8 -2
  304. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  305. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  306. package/dest/services/tx_collection/request_tracker.js +84 -0
  307. package/dest/services/tx_collection/tx_collection.d.ts +50 -56
  308. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  309. package/dest/services/tx_collection/tx_collection.js +298 -70
  310. package/dest/services/tx_collection/tx_collection_sink.d.ts +19 -9
  311. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  312. package/dest/services/tx_collection/tx_collection_sink.js +28 -31
  313. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  314. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  315. package/dest/services/tx_collection/tx_source.js +29 -7
  316. package/dest/services/tx_file_store/config.d.ts +16 -0
  317. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  318. package/dest/services/tx_file_store/config.js +22 -0
  319. package/dest/services/tx_file_store/index.d.ts +4 -0
  320. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  321. package/dest/services/tx_file_store/index.js +3 -0
  322. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  323. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  324. package/dest/services/tx_file_store/instrumentation.js +29 -0
  325. package/dest/services/tx_file_store/tx_file_store.d.ts +46 -0
  326. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  327. package/dest/services/tx_file_store/tx_file_store.js +142 -0
  328. package/dest/services/tx_provider.d.ts +8 -6
  329. package/dest/services/tx_provider.d.ts.map +1 -1
  330. package/dest/services/tx_provider.js +12 -8
  331. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  332. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  333. package/dest/services/tx_provider_instrumentation.js +5 -5
  334. package/dest/test-helpers/index.d.ts +3 -1
  335. package/dest/test-helpers/index.d.ts.map +1 -1
  336. package/dest/test-helpers/index.js +2 -0
  337. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  338. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  339. package/dest/test-helpers/make-test-p2p-clients.js +5 -3
  340. package/dest/test-helpers/mock-pubsub.d.ts +46 -6
  341. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  342. package/dest/test-helpers/mock-pubsub.js +115 -14
  343. package/dest/test-helpers/reqresp-nodes.d.ts +5 -7
  344. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  345. package/dest/test-helpers/reqresp-nodes.js +19 -20
  346. package/dest/test-helpers/test_tx_provider.d.ts +42 -0
  347. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  348. package/dest/test-helpers/test_tx_provider.js +44 -0
  349. package/dest/test-helpers/testbench-utils.d.ts +164 -0
  350. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  351. package/dest/test-helpers/testbench-utils.js +400 -0
  352. package/dest/testbench/p2p_client_testbench_worker.d.ts +26 -2
  353. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  354. package/dest/testbench/p2p_client_testbench_worker.js +284 -139
  355. package/dest/testbench/worker_client_manager.d.ts +57 -6
  356. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  357. package/dest/testbench/worker_client_manager.js +277 -49
  358. package/dest/util.d.ts +13 -8
  359. package/dest/util.d.ts.map +1 -1
  360. package/dest/util.js +35 -14
  361. package/dest/versioning.d.ts +3 -6
  362. package/dest/versioning.d.ts.map +1 -1
  363. package/dest/versioning.js +3 -24
  364. package/package.json +16 -16
  365. package/src/bootstrap/bootstrap.ts +24 -7
  366. package/src/client/factory.ts +139 -39
  367. package/src/client/interface.ts +97 -48
  368. package/src/client/p2p_client.ts +291 -312
  369. package/src/client/test/p2p_client.batch_tx_requester.bench.README.md +197 -0
  370. package/src/config.ts +287 -49
  371. package/src/errors/p2p-service.error.ts +11 -0
  372. package/src/errors/reqresp.error.ts +13 -19
  373. package/src/errors/tx-pool.error.ts +12 -0
  374. package/src/index.ts +1 -1
  375. package/src/mem_pools/attestation_pool/attestation_pool.ts +585 -94
  376. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +656 -141
  377. package/src/mem_pools/attestation_pool/index.ts +9 -2
  378. package/src/mem_pools/attestation_pool/mocks.ts +14 -8
  379. package/src/mem_pools/index.ts +2 -2
  380. package/src/mem_pools/instrumentation.ts +29 -18
  381. package/src/mem_pools/interface.ts +4 -4
  382. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  383. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  384. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +112 -0
  385. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  386. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  387. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  388. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  389. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  390. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  391. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  392. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  393. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  394. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  395. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  396. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  397. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  398. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  399. package/src/mem_pools/tx_pool_v2/interfaces.ts +274 -0
  400. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  401. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  402. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +465 -0
  403. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +252 -0
  404. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1215 -0
  405. package/src/msg_validators/attestation_validator/README.md +49 -0
  406. package/src/msg_validators/attestation_validator/attestation_validator.ts +60 -16
  407. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +30 -16
  408. package/src/msg_validators/proposal_validator/README.md +123 -0
  409. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +26 -4
  410. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +43 -7
  411. package/src/msg_validators/proposal_validator/proposal_validator.ts +163 -50
  412. package/src/msg_validators/tx_validator/README.md +129 -0
  413. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +8 -17
  414. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  415. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  416. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  417. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  418. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  419. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  420. package/src/msg_validators/tx_validator/data_validator.ts +50 -3
  421. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  422. package/src/msg_validators/tx_validator/factory.ts +430 -56
  423. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  424. package/src/msg_validators/tx_validator/gas_validator.ts +198 -51
  425. package/src/msg_validators/tx_validator/index.ts +4 -0
  426. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  427. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  428. package/src/msg_validators/tx_validator/phases_validator.ts +87 -30
  429. package/src/msg_validators/tx_validator/size_validator.ts +6 -2
  430. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  431. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  432. package/src/msg_validators/tx_validator/tx_proof_validator.ts +10 -3
  433. package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
  434. package/src/services/data_store.ts +14 -19
  435. package/src/services/discv5/discV5_service.ts +127 -15
  436. package/src/services/discv5/persisted_enr_store.ts +158 -0
  437. package/src/services/dummy_service.ts +77 -39
  438. package/src/services/encoding.ts +42 -26
  439. package/src/services/gossipsub/README.md +663 -0
  440. package/src/services/gossipsub/index.ts +2 -0
  441. package/src/services/gossipsub/scoring.ts +29 -5
  442. package/src/services/gossipsub/topic_score_params.ts +478 -0
  443. package/src/services/index.ts +1 -0
  444. package/src/services/libp2p/instrumentation.ts +29 -2
  445. package/src/services/libp2p/libp2p_service.ts +893 -648
  446. package/src/services/peer-manager/metrics.ts +28 -4
  447. package/src/services/peer-manager/peer_manager.ts +91 -25
  448. package/src/services/peer-manager/peer_scoring.ts +131 -9
  449. package/src/services/reqresp/README.md +194 -0
  450. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  451. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +660 -0
  452. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  453. package/src/services/reqresp/batch-tx-requester/interface.ts +61 -0
  454. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  455. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  456. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +24 -0
  457. package/src/services/reqresp/config.ts +19 -2
  458. package/src/services/reqresp/connection-sampler/connection_sampler.ts +16 -0
  459. package/src/services/reqresp/interface.ts +48 -46
  460. package/src/services/reqresp/metrics.ts +33 -9
  461. package/src/services/reqresp/protocols/block_txs/bitvector.ts +10 -2
  462. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +44 -17
  463. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +108 -16
  464. package/src/services/reqresp/protocols/index.ts +0 -1
  465. package/src/services/reqresp/protocols/tx.ts +23 -3
  466. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  467. package/src/services/reqresp/rate-limiter/rate_limits.ts +3 -13
  468. package/src/services/reqresp/reqresp.ts +107 -223
  469. package/src/services/service.ts +85 -29
  470. package/src/services/tx_collection/config.ts +41 -36
  471. package/src/services/tx_collection/file_store_tx_collection.ts +153 -0
  472. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  473. package/src/services/tx_collection/index.ts +2 -1
  474. package/src/services/tx_collection/instrumentation.ts +11 -2
  475. package/src/services/tx_collection/request_tracker.ts +127 -0
  476. package/src/services/tx_collection/tx_collection.ts +367 -115
  477. package/src/services/tx_collection/tx_collection_sink.ts +32 -36
  478. package/src/services/tx_collection/tx_source.ts +29 -8
  479. package/src/services/tx_file_store/config.ts +37 -0
  480. package/src/services/tx_file_store/index.ts +3 -0
  481. package/src/services/tx_file_store/instrumentation.ts +36 -0
  482. package/src/services/tx_file_store/tx_file_store.ts +163 -0
  483. package/src/services/tx_provider.ts +17 -11
  484. package/src/services/tx_provider_instrumentation.ts +11 -5
  485. package/src/test-helpers/index.ts +2 -0
  486. package/src/test-helpers/make-test-p2p-clients.ts +7 -6
  487. package/src/test-helpers/mock-pubsub.ts +137 -14
  488. package/src/test-helpers/reqresp-nodes.ts +17 -29
  489. package/src/test-helpers/test_tx_provider.ts +69 -0
  490. package/src/test-helpers/testbench-utils.ts +465 -0
  491. package/src/testbench/p2p_client_testbench_worker.ts +389 -133
  492. package/src/testbench/worker_client_manager.ts +355 -51
  493. package/src/util.ts +40 -19
  494. package/src/versioning.ts +3 -33
  495. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  496. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  497. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  498. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  499. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  500. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  501. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  502. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  503. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  504. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -31
  505. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  506. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  507. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -156
  508. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  509. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  510. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  511. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  512. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -115
  513. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  514. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  515. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  516. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  517. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -76
  518. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  519. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  520. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  521. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  522. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  523. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  524. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  525. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  526. package/dest/mem_pools/tx_pool/index.js +0 -2
  527. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  528. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  529. package/dest/mem_pools/tx_pool/priority.js +0 -15
  530. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  531. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  532. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  533. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  534. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  535. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  536. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  537. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  538. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -157
  539. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -45
  540. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  541. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -92
  542. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  543. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  544. package/dest/services/reqresp/protocols/block.js +0 -32
  545. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -51
  546. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  547. package/dest/services/tx_collection/fast_tx_collection.js +0 -300
  548. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -53
  549. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  550. package/dest/services/tx_collection/slow_tx_collection.js +0 -177
  551. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  552. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  553. package/src/mem_pools/tx_pool/README.md +0 -270
  554. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  555. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -131
  556. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -207
  557. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -159
  558. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  559. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -91
  560. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  561. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  562. package/src/mem_pools/tx_pool/index.ts +0 -2
  563. package/src/mem_pools/tx_pool/priority.ts +0 -20
  564. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  565. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  566. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -191
  567. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -100
  568. package/src/services/reqresp/protocols/block.ts +0 -37
  569. package/src/services/tx_collection/fast_tx_collection.ts +0 -341
  570. package/src/services/tx_collection/slow_tx_collection.ts +0 -233
@@ -1,19 +1,23 @@
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, CheckpointAttestation, CheckpointProposal, 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';
8
9
 
9
10
  import type { P2PConfig } from '../config.js';
10
11
  import type { AuthRequest, StatusMessage } from '../services/index.js';
12
+ import type { ReqRespSubProtocol, ReqRespSubProtocolHandler } from '../services/reqresp/interface.js';
11
13
  import type {
12
- ReqRespSubProtocol,
13
- ReqRespSubProtocolHandler,
14
- ReqRespSubProtocolValidators,
15
- } from '../services/reqresp/interface.js';
16
- import type { P2PBlockReceivedCallback, P2PCheckpointReceivedCallback } from '../services/service.js';
14
+ DuplicateAttestationInfo,
15
+ DuplicateProposalInfo,
16
+ OversizedProposalInfo,
17
+ P2PBlockReceivedCallback,
18
+ P2PCheckpointAttestationCallback,
19
+ P2PCheckpointReceivedCallback,
20
+ } from '../services/service.js';
17
21
 
18
22
  /**
19
23
  * Enum defining the possible states of the p2p client.
@@ -42,7 +46,7 @@ export interface P2PSyncState {
42
46
  /**
43
47
  * Interface of a P2P client.
44
48
  **/
45
- export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> & {
49
+ export type P2P = P2PClient & {
46
50
  /**
47
51
  * Broadcasts a block proposal to other peers.
48
52
  *
@@ -76,15 +80,43 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
76
80
  *
77
81
  * @param handler - A function taking a received checkpoint proposal and producing attestations
78
82
  */
79
- registerCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
83
+ registerValidatorCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
80
84
 
81
85
  /**
82
- * Request a list of transactions from another peer by their tx hashes.
83
- * @param txHashes - Hashes of the txs to query.
84
- * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
85
- * @returns A list of transactions or undefined if the transactions are not found.
86
+ * Registers a callback that runs for ALL nodes (not just validators) when a checkpoint proposal is received.
87
+ * Used to set the proposed checkpoint number on the archiver so the sequencer can build on top of it.
88
+ *
89
+ * @param handler - A function taking a received checkpoint proposal
90
+ */
91
+ registerAllNodesCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
92
+
93
+ /**
94
+ * Registers a callback invoked when a duplicate proposal is detected (equivocation).
95
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
96
+ *
97
+ * @param callback - Function called with info about the duplicate proposal
98
+ */
99
+ registerDuplicateProposalCallback(callback: (info: DuplicateProposalInfo) => void): void;
100
+
101
+ /**
102
+ * Registers a callback invoked when an oversized block proposal (index at or beyond the consensus
103
+ * per-checkpoint block limit) is stored and re-broadcast as slashing evidence.
104
+ *
105
+ * @param callback - Function called with info about the oversized proposal
86
106
  */
87
- requestTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId): Promise<Tx[]>;
107
+ registerOversizedProposalCallback(callback: (info: OversizedProposalInfo) => void): void;
108
+
109
+ /**
110
+ * Registers a callback invoked when a duplicate attestation is detected (equivocation).
111
+ * A validator signing attestations for different proposals at the same slot.
112
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
113
+ *
114
+ * @param callback - Function called with info about the duplicate attestation
115
+ */
116
+ registerDuplicateAttestationCallback(callback: (info: DuplicateAttestationInfo) => void): void;
117
+
118
+ /** Registers a callback invoked when a valid checkpoint attestation is accepted into the pool. */
119
+ registerCheckpointAttestationCallback(callback: P2PCheckpointAttestationCallback): void;
88
120
 
89
121
  /**
90
122
  * Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
@@ -93,32 +125,26 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
93
125
  sendTx(tx: Tx): Promise<void>;
94
126
 
95
127
  /**
96
- * Adds transactions to the pool. Does not send to peers or validate the tx.
97
- * @param txs - The transactions.
98
- * @returns The number of txs added to the pool. Note if the transaction already exists, it will not be added again.
99
- **/
100
- addTxsToPool(txs: Tx[]): Promise<number>;
101
-
102
- /**
103
- * Deletes 'txs' from the pool, given hashes.
104
- * NOT used if we use sendTx as reconcileTxPool will handle this.
105
- * @param txHashes - Hashes to check.
128
+ * Handles failed transaction execution by removing txs from the pool.
129
+ * @param txHashes - Hashes of the transactions that failed execution.
106
130
  **/
107
- deleteTxs(txHashes: TxHash[]): Promise<void>;
131
+ handleFailedExecution(txHashes: TxHash[]): Promise<void>;
108
132
 
109
133
  /**
110
134
  * Returns a transaction in the transaction pool by its hash.
111
135
  * @param txHash - Hash of tx to return.
136
+ * @param opts - Set `includeProof: false` to skip loading the tx proof from the DB.
112
137
  * @returns A single tx or undefined.
113
138
  */
114
- getTxByHashFromPool(txHash: TxHash): Promise<Tx | undefined>;
139
+ getTxByHashFromPool(txHash: TxHash, opts?: { includeProof?: boolean }): Promise<Tx | undefined>;
115
140
 
116
141
  /**
117
142
  * Returns transactions in the transaction pool by hash.
118
143
  * @param txHashes - Hashes of txs to return.
144
+ * @param opts - Set `includeProof: false` to skip loading tx proofs from the DB.
119
145
  * @returns An array of txs or undefined.
120
146
  */
121
- getTxsByHashFromPool(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
147
+ getTxsByHashFromPool(txHashes: TxHash[], opts?: { includeProof?: boolean }): Promise<(Tx | undefined)[]>;
122
148
 
123
149
  /**
124
150
  * Checks if transactions exist in the pool
@@ -127,14 +153,6 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
127
153
  */
128
154
  hasTxsInPool(txHashes: TxHash[]): Promise<boolean[]>;
129
155
 
130
- /**
131
- * Returns transactions in the transaction pool by hash, requesting from the network if not found.
132
- * @param txHashes - Hashes of tx to return.
133
- * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
134
- * @returns An array of tx or undefined.
135
- */
136
- getTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId | undefined): Promise<(Tx | undefined)[]>;
137
-
138
156
  /**
139
157
  * Returns an archived transaction from the transaction pool by its hash.
140
158
  * @param txHash - Hash of tx to return.
@@ -149,17 +167,43 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
149
167
  */
150
168
  getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
151
169
 
152
- /** Returns an iterator over pending txs on the mempool. */
153
- iteratePendingTxs(): AsyncIterableIterator<Tx>;
170
+ /**
171
+ * Returns an iterator over pending txs on the mempool.
172
+ * Set `includeProof: false` to skip loading tx proofs from the DB.
173
+ */
174
+ iteratePendingTxs(opts?: { includeProof?: boolean }): AsyncIterableIterator<Tx>;
175
+
176
+ /**
177
+ * Returns an iterator over pending txs that have been in the pool long enough to be eligible for block building.
178
+ * Set `includeProof: false` to skip loading tx proofs from the DB.
179
+ */
180
+ iterateEligiblePendingTxs(opts?: { includeProof?: boolean }): AsyncIterableIterator<Tx>;
154
181
 
155
182
  /** Returns the number of pending txs in the mempool. */
156
183
  getPendingTxCount(): Promise<number>;
157
184
 
158
185
  /**
159
- * Marks transactions as non-evictable in the pool.
160
- * @param txHashes - Hashes of the transactions to mark as non-evictable.
186
+ * Returns whether at least `minCount` pending txs have been in the pool long enough to be eligible for block
187
+ * building. Early-exits once the threshold is met instead of counting every eligible tx.
161
188
  */
162
- markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
189
+ hasEligiblePendingTxs(minCount: number): Promise<boolean>;
190
+
191
+ /**
192
+ * Protects existing transactions by hash for a given slot.
193
+ * Returns hashes of transactions that weren't found in the pool.
194
+ * @param txHashes - Hashes of the transactions to protect.
195
+ * @param blockHeader - The block header providing slot context.
196
+ * @returns Hashes of transactions not found in the pool.
197
+ */
198
+ protectTxs(txHashes: TxHash[], blockHeader: BlockHeader): Promise<TxHash[]>;
199
+
200
+ /**
201
+ * Prepares the pool for a new slot.
202
+ * Unprotects transactions from earlier slots and validates them before
203
+ * returning to pending state.
204
+ * @param slotNumber - The slot number to prepare for
205
+ */
206
+ prepareForSlot(slotNumber: SlotNumber): Promise<void>;
163
207
 
164
208
  /**
165
209
  * Starts the p2p client.
@@ -192,22 +236,27 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
192
236
  /** Identifies a p2p client. */
193
237
  isP2PClient(): true;
194
238
 
239
+ /** Returns the tx provider used for fetching transactions. */
240
+ getTxProvider(): ITxProvider;
241
+
195
242
  updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
196
243
 
197
- /** Validates a set of txs. */
198
- validate(txs: Tx[]): Promise<void>;
244
+ /** Validates a set of txs received in a block proposal. */
245
+ validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
199
246
 
200
247
  /** Clears the db. */
201
248
  clear(): Promise<void>;
202
249
 
203
- addReqRespSubProtocol(
204
- subProtocol: ReqRespSubProtocol,
205
- handler: ReqRespSubProtocolHandler,
206
- validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol],
207
- ): Promise<void>;
250
+ addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler): Promise<void>;
208
251
 
209
252
  handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
210
253
 
254
+ /** Checks if any block proposals exist for the given slot. */
255
+ hasBlockProposalsForSlot(slot: SlotNumber): Promise<boolean>;
256
+
211
257
  /** If node running this P2P stack is validator, passes in validator address to P2P layer */
212
258
  registerThisValidatorAddresses(address: EthAddress[]): void;
259
+
260
+ /** Returns the number of peers in the GossipSub mesh for a given topic type. */
261
+ getGossipMeshPeerCount(topicType: TopicType): Promise<number>;
213
262
  };