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

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 (606) 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 -21
  8. package/dest/client/index.d.ts +1 -1
  9. package/dest/client/interface.d.ts +104 -39
  10. package/dest/client/interface.d.ts.map +1 -1
  11. package/dest/client/p2p_client.d.ts +76 -92
  12. package/dest/client/p2p_client.d.ts.map +1 -1
  13. package/dest/client/p2p_client.js +685 -344
  14. package/dest/config.d.ts +175 -87
  15. package/dest/config.d.ts.map +1 -1
  16. package/dest/config.js +180 -59
  17. package/dest/enr/generate-enr.d.ts +1 -1
  18. package/dest/enr/index.d.ts +1 -1
  19. package/dest/errors/attestation-pool.error.d.ts +7 -0
  20. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  21. package/dest/errors/attestation-pool.error.js +12 -0
  22. package/dest/errors/p2p-service.error.d.ts +9 -0
  23. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  24. package/dest/errors/p2p-service.error.js +10 -0
  25. package/dest/errors/reqresp.error.d.ts +9 -16
  26. package/dest/errors/reqresp.error.d.ts.map +1 -1
  27. package/dest/errors/reqresp.error.js +10 -17
  28. package/dest/errors/tx-pool.error.d.ts +8 -0
  29. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  30. package/dest/errors/tx-pool.error.js +9 -0
  31. package/dest/index.d.ts +2 -2
  32. package/dest/index.d.ts.map +1 -1
  33. package/dest/index.js +1 -1
  34. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +156 -57
  35. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  36. package/dest/mem_pools/attestation_pool/attestation_pool.js +518 -3
  37. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  38. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +694 -294
  40. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  41. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  42. package/dest/mem_pools/attestation_pool/index.js +1 -2
  43. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  44. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  45. package/dest/mem_pools/attestation_pool/mocks.js +19 -13
  46. package/dest/mem_pools/index.d.ts +3 -3
  47. package/dest/mem_pools/index.d.ts.map +1 -1
  48. package/dest/mem_pools/index.js +1 -1
  49. package/dest/mem_pools/instrumentation.d.ts +16 -1
  50. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  51. package/dest/mem_pools/instrumentation.js +58 -10
  52. package/dest/mem_pools/interface.d.ts +6 -7
  53. package/dest/mem_pools/interface.d.ts.map +1 -1
  54. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  55. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  57. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +39 -0
  58. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +97 -0
  60. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  61. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  80. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  81. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  90. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  93. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  94. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  96. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  97. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  99. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  100. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  102. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +243 -0
  103. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/interfaces.js +11 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +223 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +122 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +368 -0
  114. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +68 -0
  115. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +178 -0
  117. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +91 -0
  118. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  119. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +1013 -0
  120. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +15 -7
  121. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  122. package/dest/msg_validators/attestation_validator/attestation_validator.js +82 -26
  123. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +24 -0
  124. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  125. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +75 -0
  126. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  127. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  128. package/dest/msg_validators/attestation_validator/index.js +1 -0
  129. package/dest/msg_validators/index.d.ts +2 -2
  130. package/dest/msg_validators/index.d.ts.map +1 -1
  131. package/dest/msg_validators/index.js +1 -1
  132. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  133. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +16 -0
  135. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  136. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +14 -0
  137. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +16 -0
  138. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  139. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +26 -0
  140. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  141. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  142. package/dest/msg_validators/proposal_validator/index.js +3 -0
  143. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +40 -0
  144. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  145. package/dest/msg_validators/proposal_validator/proposal_validator.js +186 -0
  146. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  147. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  148. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +11 -18
  149. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  150. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  151. package/dest/msg_validators/tx_validator/allowed_public_setup.js +25 -21
  152. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  153. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  154. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  155. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  156. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  158. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  159. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  160. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  161. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  162. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  163. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  164. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  165. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  166. package/dest/msg_validators/tx_validator/data_validator.d.ts +4 -1
  167. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  168. package/dest/msg_validators/tx_validator/data_validator.js +40 -3
  169. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  170. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  171. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  172. package/dest/msg_validators/tx_validator/factory.d.ts +138 -6
  173. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  174. package/dest/msg_validators/tx_validator/factory.js +268 -58
  175. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  176. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  177. package/dest/msg_validators/tx_validator/fee_payer_balance.js +24 -0
  178. package/dest/msg_validators/tx_validator/gas_validator.d.ts +105 -3
  179. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  180. package/dest/msg_validators/tx_validator/gas_validator.js +146 -67
  181. package/dest/msg_validators/tx_validator/index.d.ts +6 -1
  182. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  183. package/dest/msg_validators/tx_validator/index.js +5 -0
  184. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  185. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  186. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  187. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  188. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  189. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  190. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  191. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  192. package/dest/msg_validators/tx_validator/phases_validator.js +78 -28
  193. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  194. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  195. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  196. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  197. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  198. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +23 -5
  199. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  200. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  201. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  202. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  203. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  204. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +4 -2
  205. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  206. package/dest/msg_validators/tx_validator/tx_proof_validator.js +4 -2
  207. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  208. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  209. package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
  210. package/dest/services/data_store.d.ts +1 -1
  211. package/dest/services/data_store.d.ts.map +1 -1
  212. package/dest/services/data_store.js +14 -10
  213. package/dest/services/discv5/discV5_service.d.ts +13 -2
  214. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  215. package/dest/services/discv5/discV5_service.js +120 -24
  216. package/dest/services/discv5/persisted_enr_store.d.ts +38 -0
  217. package/dest/services/discv5/persisted_enr_store.d.ts.map +1 -0
  218. package/dest/services/discv5/persisted_enr_store.js +145 -0
  219. package/dest/services/dummy_service.d.ts +40 -16
  220. package/dest/services/dummy_service.d.ts.map +1 -1
  221. package/dest/services/dummy_service.js +61 -14
  222. package/dest/services/encoding.d.ts +24 -7
  223. package/dest/services/encoding.d.ts.map +1 -1
  224. package/dest/services/encoding.js +48 -30
  225. package/dest/services/gossipsub/index.d.ts +3 -0
  226. package/dest/services/gossipsub/index.d.ts.map +1 -0
  227. package/dest/services/gossipsub/index.js +2 -0
  228. package/dest/services/gossipsub/scoring.d.ts +21 -3
  229. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  230. package/dest/services/gossipsub/scoring.js +24 -7
  231. package/dest/services/gossipsub/topic_score_params.d.ts +167 -0
  232. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  233. package/dest/services/gossipsub/topic_score_params.js +336 -0
  234. package/dest/services/index.d.ts +2 -1
  235. package/dest/services/index.d.ts.map +1 -1
  236. package/dest/services/index.js +1 -0
  237. package/dest/services/libp2p/instrumentation.d.ts +5 -1
  238. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  239. package/dest/services/libp2p/instrumentation.js +49 -70
  240. package/dest/services/libp2p/libp2p_service.d.ts +127 -110
  241. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  242. package/dest/services/libp2p/libp2p_service.js +1385 -447
  243. package/dest/services/peer-manager/interface.d.ts +1 -1
  244. package/dest/services/peer-manager/metrics.d.ts +11 -2
  245. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  246. package/dest/services/peer-manager/metrics.js +45 -16
  247. package/dest/services/peer-manager/peer_manager.d.ts +21 -35
  248. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  249. package/dest/services/peer-manager/peer_manager.js +89 -38
  250. package/dest/services/peer-manager/peer_scoring.d.ts +39 -2
  251. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  252. package/dest/services/peer-manager/peer_scoring.js +168 -15
  253. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +44 -0
  254. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  255. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +534 -0
  256. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  257. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  258. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  259. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  260. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  261. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  262. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  263. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  264. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  265. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  266. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  267. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  268. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +11 -0
  269. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  270. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +7 -0
  271. package/dest/services/reqresp/config.d.ts +15 -3
  272. package/dest/services/reqresp/config.d.ts.map +1 -1
  273. package/dest/services/reqresp/config.js +11 -0
  274. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  275. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  276. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  277. package/dest/services/reqresp/constants.d.ts +12 -0
  278. package/dest/services/reqresp/constants.d.ts.map +1 -0
  279. package/dest/services/reqresp/constants.js +7 -0
  280. package/dest/services/reqresp/index.d.ts +1 -1
  281. package/dest/services/reqresp/interface.d.ts +27 -18
  282. package/dest/services/reqresp/interface.d.ts.map +1 -1
  283. package/dest/services/reqresp/interface.js +23 -19
  284. package/dest/services/reqresp/metrics.d.ts +6 -5
  285. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  286. package/dest/services/reqresp/metrics.js +16 -21
  287. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  288. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  289. package/dest/services/reqresp/protocols/auth.js +2 -2
  290. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +8 -3
  291. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  292. package/dest/services/reqresp/protocols/block_txs/bitvector.js +15 -2
  293. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  294. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  295. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +35 -14
  296. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +37 -11
  297. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  298. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +85 -21
  299. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  300. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  301. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  302. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  303. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  304. package/dest/services/reqresp/protocols/index.js +0 -1
  305. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  306. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  307. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  308. package/dest/services/reqresp/protocols/status.js +7 -3
  309. package/dest/services/reqresp/protocols/tx.d.ts +8 -3
  310. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  311. package/dest/services/reqresp/protocols/tx.js +21 -3
  312. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  313. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +6 -5
  314. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  315. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  316. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  317. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  318. package/dest/services/reqresp/rate-limiter/rate_limits.js +3 -13
  319. package/dest/services/reqresp/reqresp.d.ts +12 -69
  320. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  321. package/dest/services/reqresp/reqresp.js +480 -200
  322. package/dest/services/reqresp/status.d.ts +2 -2
  323. package/dest/services/reqresp/status.d.ts.map +1 -1
  324. package/dest/services/service.d.ts +78 -13
  325. package/dest/services/service.d.ts.map +1 -1
  326. package/dest/services/tx_collection/config.d.ts +11 -11
  327. package/dest/services/tx_collection/config.d.ts.map +1 -1
  328. package/dest/services/tx_collection/config.js +28 -27
  329. package/dest/services/tx_collection/file_store_tx_collection.d.ts +37 -0
  330. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  331. package/dest/services/tx_collection/file_store_tx_collection.js +127 -0
  332. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  333. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  334. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  335. package/dest/services/tx_collection/index.d.ts +3 -2
  336. package/dest/services/tx_collection/index.d.ts.map +1 -1
  337. package/dest/services/tx_collection/index.js +1 -0
  338. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  339. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  340. package/dest/services/tx_collection/instrumentation.js +9 -13
  341. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  342. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  343. package/dest/services/tx_collection/request_tracker.js +84 -0
  344. package/dest/services/tx_collection/tx_collection.d.ts +51 -57
  345. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  346. package/dest/services/tx_collection/tx_collection.js +298 -70
  347. package/dest/services/tx_collection/tx_collection_sink.d.ts +20 -10
  348. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  349. package/dest/services/tx_collection/tx_collection_sink.js +28 -31
  350. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  351. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  352. package/dest/services/tx_collection/tx_source.js +29 -7
  353. package/dest/services/tx_file_store/config.d.ts +16 -0
  354. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  355. package/dest/services/tx_file_store/config.js +22 -0
  356. package/dest/services/tx_file_store/index.d.ts +4 -0
  357. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  358. package/dest/services/tx_file_store/index.js +3 -0
  359. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  360. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  361. package/dest/services/tx_file_store/instrumentation.js +29 -0
  362. package/dest/services/tx_file_store/tx_file_store.d.ts +46 -0
  363. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  364. package/dest/services/tx_file_store/tx_file_store.js +142 -0
  365. package/dest/services/tx_provider.d.ts +9 -5
  366. package/dest/services/tx_provider.d.ts.map +1 -1
  367. package/dest/services/tx_provider.js +23 -10
  368. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  369. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  370. package/dest/services/tx_provider_instrumentation.js +14 -14
  371. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  372. package/dest/test-helpers/get-ports.d.ts +1 -1
  373. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  374. package/dest/test-helpers/index.d.ts +3 -1
  375. package/dest/test-helpers/index.d.ts.map +1 -1
  376. package/dest/test-helpers/index.js +2 -0
  377. package/dest/test-helpers/make-enrs.d.ts +1 -1
  378. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  379. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  380. package/dest/test-helpers/make-test-p2p-clients.js +5 -3
  381. package/dest/test-helpers/mock-pubsub.d.ts +48 -8
  382. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  383. package/dest/test-helpers/mock-pubsub.js +115 -14
  384. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  385. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  386. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  387. package/dest/test-helpers/reqresp-nodes.d.ts +5 -7
  388. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  389. package/dest/test-helpers/reqresp-nodes.js +19 -20
  390. package/dest/test-helpers/test_tx_provider.d.ts +42 -0
  391. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  392. package/dest/test-helpers/test_tx_provider.js +44 -0
  393. package/dest/test-helpers/testbench-utils.d.ts +164 -0
  394. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  395. package/dest/test-helpers/testbench-utils.js +400 -0
  396. package/dest/testbench/p2p_client_testbench_worker.d.ts +26 -2
  397. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  398. package/dest/testbench/p2p_client_testbench_worker.js +289 -128
  399. package/dest/testbench/parse_log_file.d.ts +1 -1
  400. package/dest/testbench/testbench.d.ts +1 -1
  401. package/dest/testbench/worker_client_manager.d.ts +57 -6
  402. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  403. package/dest/testbench/worker_client_manager.js +277 -44
  404. package/dest/types/index.d.ts +1 -1
  405. package/dest/util.d.ts +14 -8
  406. package/dest/util.d.ts.map +1 -1
  407. package/dest/util.js +41 -11
  408. package/dest/versioning.d.ts +3 -6
  409. package/dest/versioning.d.ts.map +1 -1
  410. package/dest/versioning.js +3 -24
  411. package/package.json +21 -20
  412. package/src/bootstrap/bootstrap.ts +24 -7
  413. package/src/client/factory.ts +141 -46
  414. package/src/client/interface.ts +114 -47
  415. package/src/client/p2p_client.ts +356 -424
  416. package/src/client/test/p2p_client.batch_tx_requester.bench.README.md +197 -0
  417. package/src/config.ts +316 -67
  418. package/src/errors/attestation-pool.error.ts +13 -0
  419. package/src/errors/p2p-service.error.ts +11 -0
  420. package/src/errors/reqresp.error.ts +13 -19
  421. package/src/errors/tx-pool.error.ts +12 -0
  422. package/src/index.ts +1 -1
  423. package/src/mem_pools/attestation_pool/attestation_pool.ts +598 -56
  424. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +796 -316
  425. package/src/mem_pools/attestation_pool/index.ts +9 -2
  426. package/src/mem_pools/attestation_pool/mocks.ts +29 -17
  427. package/src/mem_pools/index.ts +2 -2
  428. package/src/mem_pools/instrumentation.ts +58 -10
  429. package/src/mem_pools/interface.ts +5 -7
  430. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  431. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  432. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +112 -0
  433. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  434. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  435. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  436. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  437. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  438. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  439. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  440. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  441. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  442. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  443. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  444. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  445. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  446. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  447. package/src/mem_pools/tx_pool_v2/interfaces.ts +274 -0
  448. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  449. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  450. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +465 -0
  451. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +252 -0
  452. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1215 -0
  453. package/src/msg_validators/attestation_validator/README.md +49 -0
  454. package/src/msg_validators/attestation_validator/attestation_validator.ts +78 -33
  455. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +102 -0
  456. package/src/msg_validators/attestation_validator/index.ts +1 -0
  457. package/src/msg_validators/index.ts +1 -1
  458. package/src/msg_validators/proposal_validator/README.md +123 -0
  459. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +32 -0
  460. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +49 -0
  461. package/src/msg_validators/proposal_validator/index.ts +3 -0
  462. package/src/msg_validators/proposal_validator/proposal_validator.ts +198 -0
  463. package/src/msg_validators/tx_validator/README.md +129 -0
  464. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +8 -17
  465. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  466. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  467. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  468. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  469. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  470. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  471. package/src/msg_validators/tx_validator/data_validator.ts +62 -7
  472. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  473. package/src/msg_validators/tx_validator/factory.ts +433 -58
  474. package/src/msg_validators/tx_validator/fee_payer_balance.ts +44 -0
  475. package/src/msg_validators/tx_validator/gas_validator.ts +206 -76
  476. package/src/msg_validators/tx_validator/index.ts +5 -0
  477. package/src/msg_validators/tx_validator/metadata_validator.ts +31 -12
  478. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  479. package/src/msg_validators/tx_validator/phases_validator.ts +90 -31
  480. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  481. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  482. package/src/msg_validators/tx_validator/timestamp_validator.ts +30 -19
  483. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  484. package/src/msg_validators/tx_validator/tx_proof_validator.ts +10 -3
  485. package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
  486. package/src/services/data_store.ts +14 -19
  487. package/src/services/discv5/discV5_service.ts +127 -15
  488. package/src/services/discv5/persisted_enr_store.ts +158 -0
  489. package/src/services/dummy_service.ts +82 -38
  490. package/src/services/encoding.ts +46 -29
  491. package/src/services/gossipsub/README.md +663 -0
  492. package/src/services/gossipsub/index.ts +2 -0
  493. package/src/services/gossipsub/scoring.ts +29 -5
  494. package/src/services/gossipsub/topic_score_params.ts +478 -0
  495. package/src/services/index.ts +1 -0
  496. package/src/services/libp2p/instrumentation.ts +54 -72
  497. package/src/services/libp2p/libp2p_service.ts +1152 -497
  498. package/src/services/peer-manager/metrics.ts +51 -16
  499. package/src/services/peer-manager/peer_manager.ts +98 -29
  500. package/src/services/peer-manager/peer_scoring.ts +170 -9
  501. package/src/services/reqresp/README.md +194 -0
  502. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  503. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +660 -0
  504. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  505. package/src/services/reqresp/batch-tx-requester/interface.ts +61 -0
  506. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  507. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  508. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +24 -0
  509. package/src/services/reqresp/config.ts +19 -2
  510. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  511. package/src/services/reqresp/constants.ts +14 -0
  512. package/src/services/reqresp/interface.ts +48 -46
  513. package/src/services/reqresp/metrics.ts +35 -27
  514. package/src/services/reqresp/protocols/auth.ts +2 -2
  515. package/src/services/reqresp/protocols/block_txs/bitvector.ts +19 -2
  516. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +44 -17
  517. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +109 -17
  518. package/src/services/reqresp/protocols/index.ts +0 -1
  519. package/src/services/reqresp/protocols/status.ts +16 -12
  520. package/src/services/reqresp/protocols/tx.ts +24 -5
  521. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  522. package/src/services/reqresp/rate-limiter/rate_limits.ts +3 -13
  523. package/src/services/reqresp/reqresp.ts +107 -223
  524. package/src/services/service.ts +102 -31
  525. package/src/services/tx_collection/config.ts +42 -37
  526. package/src/services/tx_collection/file_store_tx_collection.ts +153 -0
  527. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  528. package/src/services/tx_collection/index.ts +2 -1
  529. package/src/services/tx_collection/instrumentation.ts +5 -13
  530. package/src/services/tx_collection/request_tracker.ts +127 -0
  531. package/src/services/tx_collection/tx_collection.ts +368 -115
  532. package/src/services/tx_collection/tx_collection_sink.ts +32 -36
  533. package/src/services/tx_collection/tx_source.ts +29 -8
  534. package/src/services/tx_file_store/config.ts +37 -0
  535. package/src/services/tx_file_store/index.ts +3 -0
  536. package/src/services/tx_file_store/instrumentation.ts +36 -0
  537. package/src/services/tx_file_store/tx_file_store.ts +163 -0
  538. package/src/services/tx_provider.ts +34 -12
  539. package/src/services/tx_provider_instrumentation.ts +24 -14
  540. package/src/test-helpers/index.ts +2 -0
  541. package/src/test-helpers/make-test-p2p-clients.ts +7 -6
  542. package/src/test-helpers/mock-pubsub.ts +138 -15
  543. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  544. package/src/test-helpers/reqresp-nodes.ts +18 -30
  545. package/src/test-helpers/test_tx_provider.ts +69 -0
  546. package/src/test-helpers/testbench-utils.ts +465 -0
  547. package/src/testbench/p2p_client_testbench_worker.ts +406 -127
  548. package/src/testbench/worker_client_manager.ts +355 -46
  549. package/src/util.ts +47 -16
  550. package/src/versioning.ts +3 -33
  551. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -30
  552. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  553. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -190
  554. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -25
  555. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  556. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -197
  557. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -150
  558. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  559. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -617
  560. package/dest/mem_pools/tx_pool/index.d.ts +0 -4
  561. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  562. package/dest/mem_pools/tx_pool/index.js +0 -3
  563. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  564. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  565. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  566. package/dest/mem_pools/tx_pool/priority.d.ts +0 -8
  567. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  568. package/dest/mem_pools/tx_pool/priority.js +0 -10
  569. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -122
  570. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  571. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  572. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  573. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  574. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -394
  575. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  576. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  577. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  578. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  579. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  580. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  581. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -45
  582. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  583. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -92
  584. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  585. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  586. package/dest/services/reqresp/protocols/block.js +0 -31
  587. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -56
  588. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  589. package/dest/services/tx_collection/fast_tx_collection.js +0 -300
  590. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -54
  591. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  592. package/dest/services/tx_collection/slow_tx_collection.js +0 -176
  593. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -256
  594. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -253
  595. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -750
  596. package/src/mem_pools/tx_pool/index.ts +0 -3
  597. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  598. package/src/mem_pools/tx_pool/priority.ts +0 -13
  599. package/src/mem_pools/tx_pool/tx_pool.ts +0 -135
  600. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -313
  601. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  602. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
  603. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -100
  604. package/src/services/reqresp/protocols/block.ts +0 -36
  605. package/src/services/tx_collection/fast_tx_collection.ts +0 -340
  606. package/src/services/tx_collection/slow_tx_collection.ts +0 -232
@@ -1,13 +1,14 @@
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
  import type { PeerId } from '@libp2p/interface';
6
7
  import type { ENR } from '@nethermindeth/enr';
7
8
  import type { P2PConfig } from '../config.js';
8
9
  import type { AuthRequest, StatusMessage } from '../services/index.js';
9
- import type { ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators } from '../services/reqresp/interface.js';
10
- import type { P2PBlockReceivedCallback } from '../services/service.js';
10
+ import type { ReqRespSubProtocol, ReqRespSubProtocolHandler } from '../services/reqresp/interface.js';
11
+ import type { DuplicateAttestationInfo, DuplicateProposalInfo, OversizedProposalInfo, P2PBlockReceivedCallback, P2PCheckpointAttestationCallback, P2PCheckpointReceivedCallback } from '../services/service.js';
11
12
  /**
12
13
  * Enum defining the possible states of the p2p client.
13
14
  */
@@ -33,13 +34,21 @@ export interface P2PSyncState {
33
34
  /**
34
35
  * Interface of a P2P client.
35
36
  **/
36
- export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> & {
37
+ export type P2P = P2PClient & {
37
38
  /**
38
39
  * Broadcasts a block proposal to other peers.
39
40
  *
40
41
  * @param proposal - the block proposal
41
42
  */
42
43
  broadcastProposal(proposal: BlockProposal): Promise<void>;
44
+ /**
45
+ * Broadcasts a checkpoint proposal (last block in a checkpoint) to other peers.
46
+ *
47
+ * @param proposal - the checkpoint proposal
48
+ */
49
+ broadcastCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
50
+ /** Broadcasts checkpoint attestations to other peers. */
51
+ broadcastCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
43
52
  /**
44
53
  * Registers a callback from the validator client that determines how to behave when
45
54
  * foreign block proposals are received
@@ -48,54 +57,77 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
48
57
  */
49
58
  registerBlockProposalHandler(callback: P2PBlockReceivedCallback): void;
50
59
  /**
51
- * Request a list of transactions from another peer by their tx hashes.
52
- * @param txHashes - Hashes of the txs to query.
53
- * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
54
- * @returns A list of transactions or undefined if the transactions are not found.
60
+ * Registers a callback from the validator client that determines how to behave when
61
+ * foreign checkpoint proposals are received
62
+ *
63
+ * @param handler - A function taking a received checkpoint proposal and producing attestations
64
+ */
65
+ registerValidatorCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
66
+ /**
67
+ * Registers a callback that runs for ALL nodes (not just validators) when a checkpoint proposal is received.
68
+ * Used to set the proposed checkpoint number on the archiver so the sequencer can build on top of it.
69
+ *
70
+ * @param handler - A function taking a received checkpoint proposal
55
71
  */
56
- requestTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId): Promise<Tx[]>;
72
+ registerAllNodesCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
73
+ /**
74
+ * Registers a callback invoked when a duplicate proposal is detected (equivocation).
75
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
76
+ *
77
+ * @param callback - Function called with info about the duplicate proposal
78
+ */
79
+ registerDuplicateProposalCallback(callback: (info: DuplicateProposalInfo) => void): void;
80
+ /**
81
+ * Registers a callback invoked when an oversized block proposal (index at or beyond the consensus
82
+ * per-checkpoint block limit) is stored and re-broadcast as slashing evidence.
83
+ *
84
+ * @param callback - Function called with info about the oversized proposal
85
+ */
86
+ registerOversizedProposalCallback(callback: (info: OversizedProposalInfo) => void): void;
87
+ /**
88
+ * Registers a callback invoked when a duplicate attestation is detected (equivocation).
89
+ * A validator signing attestations for different proposals at the same slot.
90
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
91
+ *
92
+ * @param callback - Function called with info about the duplicate attestation
93
+ */
94
+ registerDuplicateAttestationCallback(callback: (info: DuplicateAttestationInfo) => void): void;
95
+ /** Registers a callback invoked when a valid checkpoint attestation is accepted into the pool. */
96
+ registerCheckpointAttestationCallback(callback: P2PCheckpointAttestationCallback): void;
57
97
  /**
58
98
  * Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
59
99
  * @param tx - The transaction.
60
100
  **/
61
101
  sendTx(tx: Tx): Promise<void>;
62
102
  /**
63
- * Adds transactions to the pool. Does not send to peers or validate the tx.
64
- * @param txs - The transactions.
65
- * @returns The number of txs added to the pool. Note if the transaction already exists, it will not be added again.
66
- **/
67
- addTxsToPool(txs: Tx[]): Promise<number>;
68
- /**
69
- * Deletes 'txs' from the pool, given hashes.
70
- * NOT used if we use sendTx as reconcileTxPool will handle this.
71
- * @param txHashes - Hashes to check.
103
+ * Handles failed transaction execution by removing txs from the pool.
104
+ * @param txHashes - Hashes of the transactions that failed execution.
72
105
  **/
73
- deleteTxs(txHashes: TxHash[]): Promise<void>;
106
+ handleFailedExecution(txHashes: TxHash[]): Promise<void>;
74
107
  /**
75
108
  * Returns a transaction in the transaction pool by its hash.
76
109
  * @param txHash - Hash of tx to return.
110
+ * @param opts - Set `includeProof: false` to skip loading the tx proof from the DB.
77
111
  * @returns A single tx or undefined.
78
112
  */
79
- getTxByHashFromPool(txHash: TxHash): Promise<Tx | undefined>;
113
+ getTxByHashFromPool(txHash: TxHash, opts?: {
114
+ includeProof?: boolean;
115
+ }): Promise<Tx | undefined>;
80
116
  /**
81
117
  * Returns transactions in the transaction pool by hash.
82
118
  * @param txHashes - Hashes of txs to return.
119
+ * @param opts - Set `includeProof: false` to skip loading tx proofs from the DB.
83
120
  * @returns An array of txs or undefined.
84
121
  */
85
- getTxsByHashFromPool(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
122
+ getTxsByHashFromPool(txHashes: TxHash[], opts?: {
123
+ includeProof?: boolean;
124
+ }): Promise<(Tx | undefined)[]>;
86
125
  /**
87
126
  * Checks if transactions exist in the pool
88
127
  * @param txHashes - The hashes of the transactions to check for
89
128
  * @returns True or False for each hash
90
129
  */
91
130
  hasTxsInPool(txHashes: TxHash[]): Promise<boolean[]>;
92
- /**
93
- * Returns transactions in the transaction pool by hash, requesting from the network if not found.
94
- * @param txHashes - Hashes of tx to return.
95
- * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
96
- * @returns An array of tx or undefined.
97
- */
98
- getTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId | undefined): Promise<(Tx | undefined)[]>;
99
131
  /**
100
132
  * Returns an archived transaction from the transaction pool by its hash.
101
133
  * @param txHash - Hash of tx to return.
@@ -108,15 +140,42 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
108
140
  * @returns Pending, mined, or deleted depending on its status, or undefined if not found.
109
141
  */
110
142
  getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
111
- /** Returns an iterator over pending txs on the mempool. */
112
- iteratePendingTxs(): AsyncIterableIterator<Tx>;
143
+ /**
144
+ * Returns an iterator over pending txs on the mempool.
145
+ * Set `includeProof: false` to skip loading tx proofs from the DB.
146
+ */
147
+ iteratePendingTxs(opts?: {
148
+ includeProof?: boolean;
149
+ }): AsyncIterableIterator<Tx>;
150
+ /**
151
+ * Returns an iterator over pending txs that have been in the pool long enough to be eligible for block building.
152
+ * Set `includeProof: false` to skip loading tx proofs from the DB.
153
+ */
154
+ iterateEligiblePendingTxs(opts?: {
155
+ includeProof?: boolean;
156
+ }): AsyncIterableIterator<Tx>;
113
157
  /** Returns the number of pending txs in the mempool. */
114
158
  getPendingTxCount(): Promise<number>;
115
159
  /**
116
- * Marks transactions as non-evictable in the pool.
117
- * @param txHashes - Hashes of the transactions to mark as non-evictable.
160
+ * Returns whether at least `minCount` pending txs have been in the pool long enough to be eligible for block
161
+ * building. Early-exits once the threshold is met instead of counting every eligible tx.
162
+ */
163
+ hasEligiblePendingTxs(minCount: number): Promise<boolean>;
164
+ /**
165
+ * Protects existing transactions by hash for a given slot.
166
+ * Returns hashes of transactions that weren't found in the pool.
167
+ * @param txHashes - Hashes of the transactions to protect.
168
+ * @param blockHeader - The block header providing slot context.
169
+ * @returns Hashes of transactions not found in the pool.
170
+ */
171
+ protectTxs(txHashes: TxHash[], blockHeader: BlockHeader): Promise<TxHash[]>;
172
+ /**
173
+ * Prepares the pool for a new slot.
174
+ * Unprotects transactions from earlier slots and validates them before
175
+ * returning to pending state.
176
+ * @param slotNumber - The slot number to prepare for
118
177
  */
119
- markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
178
+ prepareForSlot(slotNumber: SlotNumber): Promise<void>;
120
179
  /**
121
180
  * Starts the p2p client.
122
181
  * @returns A promise signalling the completion of the block sync.
@@ -142,14 +201,20 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
142
201
  getEnr(): ENR | undefined;
143
202
  /** Identifies a p2p client. */
144
203
  isP2PClient(): true;
204
+ /** Returns the tx provider used for fetching transactions. */
205
+ getTxProvider(): ITxProvider;
145
206
  updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
146
- /** Validates a set of txs. */
147
- validate(txs: Tx[]): Promise<void>;
207
+ /** Validates a set of txs received in a block proposal. */
208
+ validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
148
209
  /** Clears the db. */
149
210
  clear(): Promise<void>;
150
- addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
211
+ addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler): Promise<void>;
151
212
  handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
213
+ /** Checks if any block proposals exist for the given slot. */
214
+ hasBlockProposalsForSlot(slot: SlotNumber): Promise<boolean>;
152
215
  /** If node running this P2P stack is validator, passes in validator address to P2P layer */
153
216
  registerThisValidatorAddresses(address: EthAddress[]): void;
217
+ /** Returns the number of peers in the GossipSub mesh for a given topic type. */
218
+ getGossipMeshPeerCount(topicType: TopicType): Promise<number>;
154
219
  };
155
- //# sourceMappingURL=interface.d.ts.map
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxPQUFPLEtBQUssRUFDVix3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsZ0NBQWdDLEVBQ2hDLDZCQUE2QixFQUM5QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDOztHQUVHO0FBQ0gsb0JBQVksY0FBYztJQUN4QixJQUFJLElBQUE7SUFDSixRQUFRLElBQUE7SUFDUixPQUFPLElBQUE7SUFDUCxPQUFPLElBQUE7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
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/client/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/client/interface.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,36 @@
1
+ import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
+ import { BlockNumber, type CheckpointProposalHash, SlotNumber } from '@aztec/foundation/branded-types';
1
3
  import { DateProvider } from '@aztec/foundation/timer';
2
4
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
3
- import type { EthAddress, L2BlockSource, L2BlockStreamEvent, L2Tips } from '@aztec/stdlib/block';
5
+ import { type BlockHash, type EthAddress, type L2BlockSource, type L2BlockStreamEvent, type LocalL2Tips } from '@aztec/stdlib/block';
4
6
  import type { ContractDataSource } from '@aztec/stdlib/contract';
5
- import { type PeerInfo } from '@aztec/stdlib/interfaces/server';
6
- import { BlockAttestation, type BlockProposal, type P2PClientType } from '@aztec/stdlib/p2p';
7
- import type { Tx, TxHash } from '@aztec/stdlib/tx';
7
+ import { type GetTxByHashOptions, type PeerInfo } from '@aztec/stdlib/interfaces/server';
8
+ import { type BlockProposal, CheckpointAttestation, type CheckpointProposal, type TopicType } from '@aztec/stdlib/p2p';
9
+ import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
8
10
  import { type TelemetryClient, WithTracer } from '@aztec/telemetry-client';
9
11
  import type { PeerId } from '@libp2p/interface';
10
12
  import type { ENR } from '@nethermindeth/enr';
11
13
  import { type P2PConfig } from '../config.js';
14
+ import type { ProposalsForSlot } from '../mem_pools/attestation_pool/attestation_pool.js';
12
15
  import type { MemPools } from '../mem_pools/interface.js';
13
16
  import type { AuthRequest, StatusMessage } from '../services/index.js';
14
- import { ReqRespSubProtocol, type ReqRespSubProtocolHandler, type ReqRespSubProtocolValidators } from '../services/reqresp/interface.js';
15
- import type { P2PBlockReceivedCallback, P2PService } from '../services/service.js';
17
+ import { ReqRespSubProtocol, type ReqRespSubProtocolHandler } from '../services/reqresp/interface.js';
18
+ import type { DuplicateAttestationInfo, DuplicateProposalInfo, OversizedProposalInfo, P2PBlockReceivedCallback, P2PCheckpointReceivedCallback, P2PService } from '../services/service.js';
16
19
  import { TxCollection } from '../services/tx_collection/tx_collection.js';
20
+ import type { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
17
21
  import { TxProvider } from '../services/tx_provider.js';
18
22
  import { type P2P, type P2PSyncState } from './interface.js';
19
23
  /**
20
24
  * The P2P client implementation.
21
25
  */
22
- export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> extends WithTracer implements P2P, P2P<P2PClientType.Prover> {
26
+ export declare class P2PClient extends WithTracer implements P2P {
23
27
  #private;
24
28
  private store;
25
29
  private l2BlockSource;
26
30
  private p2pService;
27
31
  private txCollection;
32
+ private txFileStore;
33
+ private epochCache;
28
34
  private _dateProvider;
29
35
  private telemetry;
30
36
  private log;
@@ -36,10 +42,7 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
36
42
  private latestBlockNumberAtStart;
37
43
  private provenBlockNumberAtStart;
38
44
  private finalizedBlockNumberAtStart;
39
- private synchedBlockHashes;
40
- private synchedLatestBlockNumber;
41
- private synchedProvenBlockNumber;
42
- private synchedFinalizedBlockNumber;
45
+ private l2Tips;
43
46
  private synchedLatestSlot;
44
47
  private txPool;
45
48
  private attestationPool;
@@ -47,31 +50,25 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
47
50
  private blockStream;
48
51
  private txProvider;
49
52
  private validatorAddresses;
50
- /**
51
- * In-memory P2P client constructor.
52
- * @param store - The client's instance of the KV store.
53
- * @param l2BlockSource - P2P client's source for fetching existing blocks.
54
- * @param txPool - The client's instance of a transaction pool. Defaults to in-memory implementation.
55
- * @param p2pService - The concrete instance of p2p networking to use.
56
- * @param log - A logger.
57
- */
58
- constructor(_clientType: T, store: AztecAsyncKVStore, l2BlockSource: L2BlockSource & ContractDataSource, mempools: MemPools<T>, p2pService: P2PService, txCollection: TxCollection, config?: Partial<P2PConfig>, _dateProvider?: DateProvider, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
53
+ /** Tracks the last slot for which we called prepareForSlot */
54
+ private lastSlotProcessed;
55
+ constructor(store: AztecAsyncKVStore, l2BlockSource: L2BlockSource & ContractDataSource, mempools: MemPools, p2pService: P2PService, txCollection: TxCollection, txFileStore: TxFileStore | undefined, epochCache: EpochCacheInterface, config: Partial<P2PConfig> | undefined, _dateProvider: DateProvider | undefined, telemetry: TelemetryClient | undefined, log: import("@aztec/foundation/log").Logger | undefined, initialBlockHash: BlockHash);
59
56
  registerThisValidatorAddresses(addresses: EthAddress[]): void;
60
57
  clear(): Promise<void>;
61
58
  isP2PClient(): true;
62
59
  getTxProvider(): TxProvider;
63
60
  getPeers(includePending?: boolean): Promise<PeerInfo[]>;
64
- getL2BlockHash(number: number): Promise<string | undefined>;
61
+ getGossipMeshPeerCount(topicType: TopicType): Promise<number>;
62
+ getL2BlockHash(number: BlockNumber): Promise<string | undefined>;
65
63
  updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
66
- getL2Tips(): Promise<L2Tips>;
64
+ getL2Tips(): Promise<LocalL2Tips>;
67
65
  handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
68
- private setBlockHash;
69
66
  /**
70
67
  * Starts the P2P client.
71
68
  * @returns An empty promise signalling the synching process.
72
69
  */
73
70
  start(): Promise<void>;
74
- addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
71
+ addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler): Promise<void>;
75
72
  private initBlockStream;
76
73
  /**
77
74
  * Allows consumers to stop the instance of the P2P client.
@@ -81,45 +78,48 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
81
78
  /** Triggers a sync to the archiver. Used for testing. */
82
79
  sync(): Promise<void>;
83
80
  broadcastProposal(proposal: BlockProposal): Promise<void>;
84
- getAttestationsForSlot(slot: bigint, proposalId?: string): Promise<BlockAttestation[]>;
85
- addAttestations(attestations: BlockAttestation[]): Promise<void>;
86
- deleteAttestation(attestation: BlockAttestation): Promise<void>;
81
+ broadcastCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
82
+ broadcastCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
83
+ getCheckpointAttestationsForSlot(slot: SlotNumber, proposalPayloadHash?: CheckpointProposalHash): Promise<CheckpointAttestation[]>;
84
+ addOwnCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
85
+ getProposalsForSlot(slot: SlotNumber): Promise<ProposalsForSlot>;
86
+ hasBlockProposalsForSlot(slot: SlotNumber): Promise<boolean>;
87
+ hasCheckpointProposalForSlot(slot: SlotNumber): Promise<boolean>;
87
88
  registerBlockProposalHandler(handler: P2PBlockReceivedCallback): void;
88
- /**
89
- * Uses the batched Request Response protocol to request a set of transactions from the network.
90
- */
91
- requestTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId | undefined): Promise<Tx[]>;
92
- getPendingTxs(limit?: number, after?: TxHash): Promise<Tx[]>;
89
+ registerValidatorCheckpointProposalHandler(handler: P2PCheckpointReceivedCallback): void;
90
+ registerAllNodesCheckpointProposalHandler(handler: P2PCheckpointReceivedCallback): void;
91
+ registerDuplicateProposalCallback(callback: (info: DuplicateProposalInfo) => void): void;
92
+ registerOversizedProposalCallback(callback: (info: OversizedProposalInfo) => void): void;
93
+ registerDuplicateAttestationCallback(callback: (info: DuplicateAttestationInfo) => void): void;
94
+ registerCheckpointAttestationCallback(callback: (attestation: CheckpointAttestation) => void): void;
95
+ getPendingTxs(limit?: number, after?: TxHash, options?: GetTxByHashOptions): Promise<Tx[]>;
93
96
  getPendingTxCount(): Promise<number>;
94
- iteratePendingTxs(): AsyncIterableIterator<Tx>;
95
- /**
96
- * Returns all transactions in the transaction pool.
97
- * @param filter - The type of txs to return
98
- * @param limit - How many txs to return
99
- * @param after - If paginating, the last known tx hash. Will return txs after this hash
100
- * @returns An array of Txs.
101
- */
102
- getTxs(filter: 'all' | 'pending' | 'mined', limit?: number, after?: TxHash): Promise<Tx[]>;
97
+ hasEligiblePendingTxs(minCount: number): Promise<boolean>;
98
+ iteratePendingTxs(opts?: {
99
+ includeProof?: boolean;
100
+ }): AsyncIterableIterator<Tx>;
101
+ iterateEligiblePendingTxs(opts?: {
102
+ includeProof?: boolean;
103
+ }): AsyncIterableIterator<Tx>;
103
104
  /**
104
105
  * Returns a transaction in the transaction pool by its hash.
105
106
  * @param txHash - Hash of the transaction to look for in the pool.
107
+ * @param opts - Set `includeProof: false` to skip loading the tx proof from the DB.
106
108
  * @returns A single tx or undefined.
107
109
  */
108
- getTxByHashFromPool(txHash: TxHash): Promise<Tx | undefined>;
110
+ getTxByHashFromPool(txHash: TxHash, opts?: {
111
+ includeProof?: boolean;
112
+ }): Promise<Tx | undefined>;
109
113
  /**
110
114
  * Returns transactions in the transaction pool by hash.
111
115
  * @param txHashes - Hashes of the transactions to look for.
116
+ * @param opts - Set `includeProof: false` to skip loading tx proofs from the DB.
112
117
  * @returns The txs found, in the same order as the requested hashes. If a tx is not found, it will be undefined.
113
118
  */
114
- getTxsByHashFromPool(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
119
+ getTxsByHashFromPool(txHashes: TxHash[], opts?: {
120
+ includeProof?: boolean;
121
+ }): Promise<(Tx | undefined)[]>;
115
122
  hasTxsInPool(txHashes: TxHash[]): Promise<boolean[]>;
116
- /**
117
- * Returns transactions in the transaction pool by hash.
118
- * If a transaction is not in the pool, it will be requested from the network.
119
- * @param txHashes - Hashes of the transactions to look for.
120
- * @returns The txs found, or undefined if not found in the order requested.
121
- */
122
- getTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId | undefined): Promise<(Tx | undefined)[]>;
123
123
  /**
124
124
  * Returns an archived transaction in the transaction pool by its hash.
125
125
  * @param txHash - Hash of the archived transaction to look for.
@@ -127,16 +127,11 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
127
127
  */
128
128
  getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
129
129
  /**
130
- * Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
131
- * @param tx - The tx to verify.
130
+ * Accepts a transaction, adds it to local tx pool and forwards it to other peers.
131
+ * @param tx - The tx to send.
132
132
  * @returns Empty promise.
133
133
  **/
134
134
  sendTx(tx: Tx): Promise<void>;
135
- /**
136
- * Adds transactions to the pool. Does not send to peers or validate the txs.
137
- * @param txs - The transactions.
138
- **/
139
- addTxsToPool(txs: Tx[]): Promise<number>;
140
135
  /**
141
136
  * Returns whether the given tx hash is flagged as pending or mined.
142
137
  * @param txHash - Hash of the tx to query.
@@ -146,12 +141,10 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
146
141
  getEnr(): ENR | undefined;
147
142
  getEncodedEnr(): Promise<string | undefined>;
148
143
  /**
149
- * Deletes the 'txs' from the pool.
150
- * NOT used if we use sendTx as reconcileTxPool will handle this.
151
- * @param txHashes - Hashes of the transactions to delete.
152
- * @returns Empty promise.
144
+ * Handles failed transaction execution by removing txs from the pool.
145
+ * @param txHashes - Hashes of the transactions that failed execution.
153
146
  **/
154
- deleteTxs(txHashes: TxHash[]): Promise<void>;
147
+ handleFailedExecution(txHashes: TxHash[]): Promise<void>;
155
148
  /**
156
149
  * Public function to check if the p2p client is fully synced and ready to receive txs.
157
150
  * @returns True if the P2P client is ready to receive txs.
@@ -161,13 +154,13 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
161
154
  * Public function to check the latest block number that the P2P client is synced to.
162
155
  * @returns Block number of latest L2 Block we've synced with.
163
156
  */
164
- getSyncedLatestBlockNum(): Promise<number>;
157
+ getSyncedLatestBlockNum(): Promise<BlockNumber>;
165
158
  /**
166
159
  * Public function to check the latest proven block number that the P2P client is synced to.
167
160
  * @returns Block number of latest proven L2 Block we've synced with.
168
161
  */
169
- getSyncedProvenBlockNum(): Promise<number>;
170
- getSyncedFinalizedBlockNum(): Promise<number>;
162
+ getSyncedProvenBlockNum(): Promise<BlockNumber>;
163
+ getSyncedFinalizedBlockNum(): Promise<BlockNumber>;
171
164
  /** Returns latest L2 slot for which we have seen an L2 block. */
172
165
  getSyncedLatestSlot(): Promise<bigint>;
173
166
  /**
@@ -175,43 +168,34 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
175
168
  * @returns Information about p2p client status: state & syncedToBlockNum.
176
169
  */
177
170
  getStatus(): Promise<P2PSyncState>;
178
- /**
179
- * Mark all txs from these blocks as mined.
180
- * @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
181
- * @returns Empty promise.
182
- */
183
- private markTxsAsMinedFromBlocks;
184
- /**
185
- * Handles new mined blocks by marking the txs in them as mined.
186
- * @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
187
- * @returns Empty promise.
188
- */
171
+ private handleMinedBlocks;
189
172
  private handleLatestL2Blocks;
190
- /** Request txs for unproven blocks so the prover node has more chances to get them. */
191
- private startCollectingMissingTxs;
192
- /**
193
- * Handles new finalized blocks by deleting the txs and attestations in them.
194
- * @param blocks - A list of finalized L2 blocks.
195
- * @returns Empty promise.
196
- */
173
+ private collectingMissingTxs;
197
174
  private handleFinalizedL2Blocks;
198
- /**
199
- * Updates the tx pool after a chain prune.
200
- * @param latestBlock - The block number the chain was pruned to.
201
- */
202
175
  private handlePruneL2Blocks;
176
+ private isEpochPrune;
177
+ private maybeCallPrepareForSlot;
203
178
  private startServiceIfSynched;
204
179
  /**
205
180
  * Method to set the value of the current state.
206
181
  * @param newState - New state value.
207
182
  */
208
183
  private setCurrentState;
209
- validate(txs: Tx[]): Promise<void>;
184
+ validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
185
+ /**
186
+ * Protects existing transactions by hash for a given slot.
187
+ * Returns hashes of transactions that weren't found in the pool.
188
+ * @param txHashes - Hashes of the transactions to protect.
189
+ * @param blockHeader - The block header providing slot context.
190
+ * @returns Hashes of transactions not found in the pool.
191
+ */
192
+ protectTxs(txHashes: TxHash[], blockHeader: BlockHeader): Promise<TxHash[]>;
210
193
  /**
211
- * Marks transactions as non-evictable in the pool.
212
- * @param txHashes - Hashes of the transactions to mark as non-evictable.
194
+ * Prepares the pool for a new slot.
195
+ * Unprotects transactions from earlier slots and validates them.
196
+ * @param slotNumber - The slot number to prepare for
213
197
  */
214
- markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
198
+ prepareForSlot(slotNumber: SlotNumber): Promise<void>;
215
199
  handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
216
200
  }
217
- //# sourceMappingURL=p2p_client.d.ts.map
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9wMnBfY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFFWCxLQUFLLHNCQUFzQixFQUMzQixVQUFVLEVBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFFOUUsT0FBTyxFQUVMLEtBQUssU0FBUyxFQUVkLEtBQUssVUFBVSxFQUlmLEtBQUssYUFBYSxFQUNsQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLFdBQVcsRUFDakIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFFLEtBQUssUUFBUSxFQUFXLE1BQU0saUNBQWlDLENBQUM7QUFDbEcsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUFFLHFCQUFxQixFQUFFLEtBQUssa0JBQWtCLEVBQUUsS0FBSyxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2SCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBYyxLQUFLLGVBQWUsRUFBRSxVQUFVLEVBQWlDLE1BQU0seUJBQXlCLENBQUM7QUFFdEgsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFFLEtBQUss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
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}