@aztec/p2p 0.0.1-fake-c83136db25 → 0.0.2-commit.217f559981

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