@aztec/p2p 0.0.1-commit.d1f2d6c → 0.0.1-commit.d20b825a7

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 (562) hide show
  1. package/README.md +129 -3
  2. package/dest/bootstrap/bootstrap.d.ts +4 -3
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +4 -4
  5. package/dest/client/factory.d.ts +12 -11
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +61 -19
  8. package/dest/client/interface.d.ts +54 -34
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +43 -52
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +190 -226
  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 +318 -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 +135 -82
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +114 -41
  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/tx-pool.error.d.ts +8 -0
  26. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  27. package/dest/errors/tx-pool.error.js +9 -0
  28. package/dest/index.d.ts +2 -2
  29. package/dest/index.d.ts.map +1 -1
  30. package/dest/index.js +1 -1
  31. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +106 -88
  32. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool.js +448 -3
  34. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  35. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  36. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  37. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  38. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/index.js +1 -2
  40. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  41. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  42. package/dest/mem_pools/attestation_pool/mocks.js +2 -2
  43. package/dest/mem_pools/index.d.ts +3 -3
  44. package/dest/mem_pools/index.d.ts.map +1 -1
  45. package/dest/mem_pools/index.js +1 -1
  46. package/dest/mem_pools/instrumentation.d.ts +4 -2
  47. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  48. package/dest/mem_pools/instrumentation.js +18 -16
  49. package/dest/mem_pools/interface.d.ts +5 -5
  50. package/dest/mem_pools/interface.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  52. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  53. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  54. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  55. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  57. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  58. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  80. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_mining_rule.js +16 -35
  81. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  90. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  93. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  94. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  96. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  97. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  99. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +218 -0
  100. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -0
  103. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +223 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  114. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  115. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +924 -0
  117. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  118. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/attestation_validator/attestation_validator.js +20 -11
  120. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +5 -3
  121. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  122. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +9 -4
  123. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  124. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  125. package/dest/msg_validators/clock_tolerance.js +54 -3
  126. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +7 -4
  127. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  129. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +7 -4
  130. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  132. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +15 -8
  133. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/proposal_validator/proposal_validator.js +70 -50
  135. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  136. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  137. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  138. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  139. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  141. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  142. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  143. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  144. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  145. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  147. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  148. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  149. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  150. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  151. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  152. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  153. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  154. package/dest/msg_validators/tx_validator/data_validator.js +39 -3
  155. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  156. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  158. package/dest/msg_validators/tx_validator/factory.d.ts +137 -5
  159. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/factory.js +255 -58
  161. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  162. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  163. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  164. package/dest/msg_validators/tx_validator/gas_validator.d.ts +100 -3
  165. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  166. package/dest/msg_validators/tx_validator/gas_validator.js +138 -53
  167. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  168. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  169. package/dest/msg_validators/tx_validator/index.js +2 -0
  170. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  171. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  172. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  173. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  174. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  175. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  176. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  177. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  178. package/dest/msg_validators/tx_validator/phases_validator.js +75 -27
  179. package/dest/msg_validators/tx_validator/size_validator.d.ts +3 -1
  180. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -1
  181. package/dest/msg_validators/tx_validator/size_validator.js +4 -1
  182. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  183. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  184. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  185. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  186. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  187. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  188. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  189. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  190. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  191. package/dest/services/data_store.d.ts +1 -1
  192. package/dest/services/data_store.d.ts.map +1 -1
  193. package/dest/services/data_store.js +14 -10
  194. package/dest/services/discv5/discV5_service.js +1 -1
  195. package/dest/services/dummy_service.d.ts +28 -5
  196. package/dest/services/dummy_service.d.ts.map +1 -1
  197. package/dest/services/dummy_service.js +52 -2
  198. package/dest/services/encoding.d.ts +7 -3
  199. package/dest/services/encoding.d.ts.map +1 -1
  200. package/dest/services/encoding.js +18 -11
  201. package/dest/services/gossipsub/index.d.ts +3 -0
  202. package/dest/services/gossipsub/index.d.ts.map +1 -0
  203. package/dest/services/gossipsub/index.js +2 -0
  204. package/dest/services/gossipsub/scoring.d.ts +21 -3
  205. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  206. package/dest/services/gossipsub/scoring.js +24 -7
  207. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  208. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  209. package/dest/services/gossipsub/topic_score_params.js +363 -0
  210. package/dest/services/index.d.ts +2 -1
  211. package/dest/services/index.d.ts.map +1 -1
  212. package/dest/services/index.js +1 -0
  213. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  214. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  215. package/dest/services/libp2p/instrumentation.js +28 -3
  216. package/dest/services/libp2p/libp2p_service.d.ts +101 -51
  217. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  218. package/dest/services/libp2p/libp2p_service.js +596 -463
  219. package/dest/services/peer-manager/metrics.d.ts +4 -2
  220. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  221. package/dest/services/peer-manager/metrics.js +26 -5
  222. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  223. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  224. package/dest/services/peer-manager/peer_manager.js +39 -11
  225. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  226. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  227. package/dest/services/peer-manager/peer_scoring.js +65 -14
  228. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +51 -0
  229. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  230. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +543 -0
  231. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  232. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  233. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  234. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +47 -0
  235. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  236. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  237. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  238. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  239. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  240. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  241. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  242. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  243. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  244. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  245. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  246. package/dest/services/reqresp/config.d.ts +3 -3
  247. package/dest/services/reqresp/config.d.ts.map +1 -1
  248. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  249. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  250. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  251. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  252. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  253. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  254. package/dest/services/reqresp/interface.d.ts +25 -9
  255. package/dest/services/reqresp/interface.d.ts.map +1 -1
  256. package/dest/services/reqresp/interface.js +23 -10
  257. package/dest/services/reqresp/metrics.d.ts +6 -5
  258. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  259. package/dest/services/reqresp/metrics.js +16 -5
  260. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  261. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  262. package/dest/services/reqresp/protocols/block_txs/bitvector.js +5 -0
  263. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  264. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  265. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  266. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +29 -6
  267. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  268. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +59 -13
  269. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  270. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  271. package/dest/services/reqresp/protocols/index.js +0 -1
  272. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  273. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  274. package/dest/services/reqresp/protocols/tx.js +21 -3
  275. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  276. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  277. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  278. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  279. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  280. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  281. package/dest/services/reqresp/reqresp.d.ts +9 -2
  282. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  283. package/dest/services/reqresp/reqresp.js +95 -34
  284. package/dest/services/service.d.ts +46 -4
  285. package/dest/services/service.d.ts.map +1 -1
  286. package/dest/services/tx_collection/config.d.ts +22 -1
  287. package/dest/services/tx_collection/config.d.ts.map +1 -1
  288. package/dest/services/tx_collection/config.js +55 -1
  289. package/dest/services/tx_collection/fast_tx_collection.d.ts +7 -7
  290. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  291. package/dest/services/tx_collection/fast_tx_collection.js +95 -84
  292. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  293. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  294. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  295. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  296. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  297. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  298. package/dest/services/tx_collection/index.d.ts +3 -1
  299. package/dest/services/tx_collection/index.d.ts.map +1 -1
  300. package/dest/services/tx_collection/index.js +2 -0
  301. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  302. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  303. package/dest/services/tx_collection/instrumentation.js +10 -2
  304. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  305. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  306. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  307. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  308. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  309. package/dest/services/tx_collection/request_tracker.js +84 -0
  310. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  311. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  312. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  313. package/dest/services/tx_collection/tx_collection.d.ts +25 -15
  314. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  315. package/dest/services/tx_collection/tx_collection.js +79 -7
  316. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  317. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  318. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  319. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  320. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  321. package/dest/services/tx_collection/tx_source.js +26 -7
  322. package/dest/services/tx_file_store/config.d.ts +16 -0
  323. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  324. package/dest/services/tx_file_store/config.js +22 -0
  325. package/dest/services/tx_file_store/index.d.ts +4 -0
  326. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  327. package/dest/services/tx_file_store/index.js +3 -0
  328. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  329. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  330. package/dest/services/tx_file_store/instrumentation.js +29 -0
  331. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  332. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  333. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  334. package/dest/services/tx_provider.d.ts +4 -4
  335. package/dest/services/tx_provider.d.ts.map +1 -1
  336. package/dest/services/tx_provider.js +9 -8
  337. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  338. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  339. package/dest/services/tx_provider_instrumentation.js +5 -5
  340. package/dest/test-helpers/index.d.ts +3 -1
  341. package/dest/test-helpers/index.d.ts.map +1 -1
  342. package/dest/test-helpers/index.js +2 -0
  343. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  344. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  345. package/dest/test-helpers/make-test-p2p-clients.js +4 -2
  346. package/dest/test-helpers/mock-pubsub.d.ts +40 -6
  347. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  348. package/dest/test-helpers/mock-pubsub.js +139 -13
  349. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  350. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  351. package/dest/test-helpers/reqresp-nodes.js +8 -5
  352. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  353. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  354. package/dest/test-helpers/test_tx_provider.js +41 -0
  355. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  356. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  357. package/dest/test-helpers/testbench-utils.js +386 -0
  358. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  359. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  360. package/dest/testbench/p2p_client_testbench_worker.js +281 -143
  361. package/dest/testbench/worker_client_manager.d.ts +60 -6
  362. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  363. package/dest/testbench/worker_client_manager.js +280 -46
  364. package/dest/util.d.ts +3 -3
  365. package/dest/util.d.ts.map +1 -1
  366. package/package.json +14 -14
  367. package/src/bootstrap/bootstrap.ts +7 -4
  368. package/src/client/factory.ts +119 -38
  369. package/src/client/interface.ts +65 -35
  370. package/src/client/p2p_client.ts +228 -272
  371. package/src/client/test/tx_proposal_collector/README.md +227 -0
  372. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +357 -0
  373. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  374. package/src/config.ts +184 -46
  375. package/src/errors/p2p-service.error.ts +11 -0
  376. package/src/errors/tx-pool.error.ts +12 -0
  377. package/src/index.ts +1 -1
  378. package/src/mem_pools/attestation_pool/attestation_pool.ts +501 -91
  379. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  380. package/src/mem_pools/attestation_pool/index.ts +9 -2
  381. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  382. package/src/mem_pools/index.ts +2 -2
  383. package/src/mem_pools/instrumentation.ts +19 -14
  384. package/src/mem_pools/interface.ts +4 -4
  385. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  386. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  387. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  388. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  389. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  390. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  391. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  392. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  393. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  394. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  395. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  396. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  397. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  398. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  399. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  400. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  401. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  402. package/src/mem_pools/tx_pool_v2/interfaces.ts +250 -0
  403. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  404. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  405. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  406. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  407. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1107 -0
  408. package/src/msg_validators/attestation_validator/README.md +49 -0
  409. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -9
  410. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +14 -5
  411. package/src/msg_validators/clock_tolerance.ts +72 -3
  412. package/src/msg_validators/proposal_validator/README.md +123 -0
  413. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +17 -4
  414. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +23 -7
  415. package/src/msg_validators/proposal_validator/proposal_validator.ts +81 -51
  416. package/src/msg_validators/tx_validator/README.md +127 -0
  417. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  418. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  419. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  420. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  421. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  422. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  423. package/src/msg_validators/tx_validator/data_validator.ts +48 -3
  424. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  425. package/src/msg_validators/tx_validator/factory.ts +415 -56
  426. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  427. package/src/msg_validators/tx_validator/gas_validator.ts +203 -52
  428. package/src/msg_validators/tx_validator/index.ts +2 -0
  429. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  430. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  431. package/src/msg_validators/tx_validator/phases_validator.ts +87 -30
  432. package/src/msg_validators/tx_validator/size_validator.ts +6 -2
  433. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  434. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  435. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  436. package/src/services/data_store.ts +14 -19
  437. package/src/services/discv5/discV5_service.ts +1 -1
  438. package/src/services/dummy_service.ts +66 -3
  439. package/src/services/encoding.ts +18 -10
  440. package/src/services/gossipsub/README.md +641 -0
  441. package/src/services/gossipsub/index.ts +2 -0
  442. package/src/services/gossipsub/scoring.ts +29 -5
  443. package/src/services/gossipsub/topic_score_params.ts +519 -0
  444. package/src/services/index.ts +1 -0
  445. package/src/services/libp2p/instrumentation.ts +29 -2
  446. package/src/services/libp2p/libp2p_service.ts +644 -514
  447. package/src/services/peer-manager/metrics.ts +28 -4
  448. package/src/services/peer-manager/peer_manager.ts +45 -11
  449. package/src/services/peer-manager/peer_scoring.ts +56 -6
  450. package/src/services/reqresp/README.md +229 -0
  451. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  452. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +673 -0
  453. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  454. package/src/services/reqresp/batch-tx-requester/interface.ts +54 -0
  455. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  456. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  457. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  458. package/src/services/reqresp/config.ts +2 -2
  459. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  460. package/src/services/reqresp/connection-sampler/connection_sampler.ts +16 -0
  461. package/src/services/reqresp/interface.ts +48 -10
  462. package/src/services/reqresp/metrics.ts +33 -9
  463. package/src/services/reqresp/protocols/block_txs/bitvector.ts +7 -0
  464. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  465. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +74 -9
  466. package/src/services/reqresp/protocols/index.ts +0 -1
  467. package/src/services/reqresp/protocols/tx.ts +23 -3
  468. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  469. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  470. package/src/services/reqresp/reqresp.ts +116 -32
  471. package/src/services/service.ts +61 -3
  472. package/src/services/tx_collection/config.ts +83 -1
  473. package/src/services/tx_collection/fast_tx_collection.ts +111 -91
  474. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  475. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  476. package/src/services/tx_collection/index.ts +6 -0
  477. package/src/services/tx_collection/instrumentation.ts +17 -2
  478. package/src/services/tx_collection/proposal_tx_collector.ts +108 -0
  479. package/src/services/tx_collection/request_tracker.ts +127 -0
  480. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  481. package/src/services/tx_collection/tx_collection.ts +118 -23
  482. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  483. package/src/services/tx_collection/tx_source.ts +28 -8
  484. package/src/services/tx_file_store/config.ts +37 -0
  485. package/src/services/tx_file_store/index.ts +3 -0
  486. package/src/services/tx_file_store/instrumentation.ts +36 -0
  487. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  488. package/src/services/tx_provider.ts +10 -9
  489. package/src/services/tx_provider_instrumentation.ts +11 -5
  490. package/src/test-helpers/index.ts +2 -0
  491. package/src/test-helpers/make-test-p2p-clients.ts +6 -6
  492. package/src/test-helpers/mock-pubsub.ts +180 -14
  493. package/src/test-helpers/reqresp-nodes.ts +9 -9
  494. package/src/test-helpers/test_tx_provider.ts +64 -0
  495. package/src/test-helpers/testbench-utils.ts +457 -0
  496. package/src/testbench/p2p_client_testbench_worker.ts +396 -134
  497. package/src/testbench/worker_client_manager.ts +367 -48
  498. package/src/util.ts +8 -2
  499. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  500. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  501. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  502. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  503. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  504. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  505. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  506. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  507. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  508. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  509. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  510. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  511. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  512. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  513. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  514. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  515. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  516. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  517. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  518. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  519. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  520. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  521. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  522. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  523. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  524. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  525. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  526. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  527. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  528. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  529. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  530. package/dest/mem_pools/tx_pool/index.js +0 -2
  531. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  532. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  533. package/dest/mem_pools/tx_pool/priority.js +0 -15
  534. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  535. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  536. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  537. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  538. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  539. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  540. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  541. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  542. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  543. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  544. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  545. package/dest/services/reqresp/protocols/block.js +0 -32
  546. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  547. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  548. package/src/mem_pools/tx_pool/README.md +0 -270
  549. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  550. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  551. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  552. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  553. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  554. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  555. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  556. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  557. package/src/mem_pools/tx_pool/index.ts +0 -2
  558. package/src/mem_pools/tx_pool/priority.ts +0 -20
  559. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  560. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  561. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  562. package/src/services/reqresp/protocols/block.ts +0 -37
@@ -0,0 +1,386 @@
1
+ import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { TxHash } from '@aztec/stdlib/tx';
3
+ import EventEmitter from 'events';
4
+ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.js';
5
+ /**
6
+ * In-memory TxPool implementation for testing.
7
+ * Provides basic tx storage without persistence.
8
+ * Implements TxPoolV2 interface with stub implementations for testing.
9
+ */ export class InMemoryTxPool extends EventEmitter {
10
+ txsByHash = new Map();
11
+ logger = null;
12
+ setLogger(logger) {
13
+ this.logger = logger;
14
+ }
15
+ setTxs(txs) {
16
+ this.txsByHash.clear();
17
+ return this.appendTxs(txs);
18
+ }
19
+ appendTxs(txs) {
20
+ let added = 0;
21
+ for (const tx of txs){
22
+ const key = tx.getTxHash().toString();
23
+ if (!this.txsByHash.has(key)) {
24
+ added += 1;
25
+ }
26
+ this.txsByHash.set(key, tx);
27
+ }
28
+ return added;
29
+ }
30
+ clearTxs() {
31
+ this.txsByHash.clear();
32
+ }
33
+ resetState() {
34
+ this.txsByHash.clear();
35
+ this.removeAllListeners();
36
+ }
37
+ // === Core Operations (TxPoolV2) ===
38
+ addPendingTxs(txs, opts) {
39
+ const accepted = [];
40
+ const newTxs = [];
41
+ for (const tx of txs){
42
+ const key = tx.getTxHash().toString();
43
+ if (!this.txsByHash.has(key)) {
44
+ newTxs.push(tx);
45
+ accepted.push(tx.getTxHash());
46
+ }
47
+ this.txsByHash.set(key, tx);
48
+ }
49
+ if (newTxs.length > 0) {
50
+ this.emit('txs-added', {
51
+ txs: newTxs,
52
+ source: opts?.source
53
+ });
54
+ }
55
+ return Promise.resolve({
56
+ accepted,
57
+ ignored: [],
58
+ rejected: []
59
+ });
60
+ }
61
+ canAddPendingTx(tx) {
62
+ const key = tx.getTxHash().toString();
63
+ if (this.txsByHash.has(key)) {
64
+ return Promise.resolve('ignored');
65
+ }
66
+ return Promise.resolve('accepted');
67
+ }
68
+ addProtectedTxs(txs, _block, opts) {
69
+ for (const tx of txs){
70
+ const key = tx.getTxHash().toString();
71
+ this.txsByHash.set(key, tx);
72
+ }
73
+ if (txs.length > 0) {
74
+ this.emit('txs-added', {
75
+ txs,
76
+ source: opts?.source
77
+ });
78
+ }
79
+ return Promise.resolve();
80
+ }
81
+ protectTxs(txHashes, _block) {
82
+ const notFound = [];
83
+ for (const txHash of txHashes){
84
+ if (!this.txsByHash.has(txHash.toString())) {
85
+ notFound.push(txHash);
86
+ }
87
+ }
88
+ return Promise.resolve(notFound);
89
+ }
90
+ addMinedTxs(txs, _block, _opts) {
91
+ for (const tx of txs){
92
+ const key = tx.getTxHash().toString();
93
+ this.txsByHash.set(key, tx);
94
+ }
95
+ return Promise.resolve();
96
+ }
97
+ // === State Transition Handlers (TxPoolV2) ===
98
+ handleMinedBlock(_block) {
99
+ return Promise.resolve();
100
+ }
101
+ prepareForSlot(_slotNumber) {
102
+ return Promise.resolve();
103
+ }
104
+ handlePrunedBlocks(_latestBlock, _options) {
105
+ return Promise.resolve();
106
+ }
107
+ handleFailedExecution(txHashes) {
108
+ for (const txHash of txHashes){
109
+ this.txsByHash.delete(txHash.toString());
110
+ }
111
+ return Promise.resolve();
112
+ }
113
+ handleFinalizedBlock(_block) {
114
+ return Promise.resolve();
115
+ }
116
+ // === Query Operations (TxPoolV2) ===
117
+ getTxByHash(hash) {
118
+ return Promise.resolve(this.txsByHash.get(hash.toString()));
119
+ }
120
+ getTxsByHash(hashes) {
121
+ const result = hashes.map((h)=>this.txsByHash.get(h.toString()));
122
+ const found = result.filter((tx)=>tx !== undefined).length;
123
+ this.logger?.debug(`[TxPool] getTxsByHash: requested ${hashes.length}, found ${found}`);
124
+ return Promise.resolve(result);
125
+ }
126
+ hasTxs(hashes) {
127
+ return Promise.resolve(hashes.map((h)=>this.txsByHash.has(h.toString())));
128
+ }
129
+ getArchivedTxByHash(_hash) {
130
+ return Promise.resolve(undefined);
131
+ }
132
+ getPendingTxHashes() {
133
+ return Promise.resolve([
134
+ ...this.txsByHash.keys()
135
+ ].map((key)=>TxHash.fromString(key)));
136
+ }
137
+ getEligiblePendingTxHashes() {
138
+ return this.getPendingTxHashes();
139
+ }
140
+ getPendingTxCount() {
141
+ return Promise.resolve(this.txsByHash.size);
142
+ }
143
+ getMinedTxHashes() {
144
+ return Promise.resolve([]);
145
+ }
146
+ getMinedTxCount() {
147
+ return Promise.resolve(0);
148
+ }
149
+ getTxStatus(hash) {
150
+ return Promise.resolve(this.txsByHash.has(hash.toString()) ? 'pending' : undefined);
151
+ }
152
+ isEmpty() {
153
+ return Promise.resolve(this.txsByHash.size === 0);
154
+ }
155
+ getLowestPriorityPending(_limit) {
156
+ return Promise.resolve([]);
157
+ }
158
+ // === Configuration (TxPoolV2) ===
159
+ updateConfig(_config) {
160
+ return Promise.resolve();
161
+ }
162
+ // === Lifecycle (TxPoolV2) ===
163
+ start() {
164
+ return Promise.resolve();
165
+ }
166
+ stop() {
167
+ return Promise.resolve();
168
+ }
169
+ }
170
+ /**
171
+ * In-memory AttestationPool mock for testing/benchmarking.
172
+ * Provides minimal implementation without persistence.
173
+ */ export class InMemoryAttestationPool {
174
+ proposals = new Map();
175
+ tryAddBlockProposal(blockProposal) {
176
+ const id = blockProposal.archive.toString();
177
+ const alreadyExists = this.proposals.has(id);
178
+ if (alreadyExists) {
179
+ return Promise.resolve({
180
+ added: false,
181
+ alreadyExists: true,
182
+ count: 1
183
+ });
184
+ }
185
+ this.proposals.set(id, blockProposal);
186
+ return Promise.resolve({
187
+ added: true,
188
+ alreadyExists: false,
189
+ count: 1
190
+ });
191
+ }
192
+ getBlockProposal(id) {
193
+ return Promise.resolve(this.proposals.get(id));
194
+ }
195
+ tryAddCheckpointProposal(_proposal) {
196
+ return Promise.resolve({
197
+ added: true,
198
+ alreadyExists: false,
199
+ count: 1
200
+ });
201
+ }
202
+ getCheckpointProposal(_id) {
203
+ return Promise.resolve(undefined);
204
+ }
205
+ async addOwnCheckpointAttestations(_attestations) {}
206
+ async deleteOlderThan(_slot) {}
207
+ getCheckpointAttestationsForSlot(_slot) {
208
+ return Promise.resolve([]);
209
+ }
210
+ getCheckpointAttestationsForSlotAndProposal(_slot, _proposalId) {
211
+ return Promise.resolve([]);
212
+ }
213
+ tryAddCheckpointAttestation(_attestation) {
214
+ return Promise.resolve({
215
+ added: true,
216
+ alreadyExists: false,
217
+ count: 1
218
+ });
219
+ }
220
+ hasBlockProposalsForSlot(_slot) {
221
+ return Promise.resolve(false);
222
+ }
223
+ isEmpty() {
224
+ return Promise.resolve(this.proposals.size === 0);
225
+ }
226
+ resetState() {
227
+ this.proposals.clear();
228
+ }
229
+ }
230
+ /**
231
+ * Creates a mock EpochCache for testing.
232
+ */ export function createMockEpochCache() {
233
+ const cache = {
234
+ getCommittee: ()=>Promise.resolve({
235
+ committee: [],
236
+ seed: 1n,
237
+ epoch: EpochNumber.ZERO,
238
+ isEscapeHatchOpen: false
239
+ }),
240
+ getProposerIndexEncoding: ()=>'0x',
241
+ getSlotNow: ()=>SlotNumber.ZERO,
242
+ getTargetSlot: ()=>SlotNumber.ZERO,
243
+ getEpochNow: ()=>EpochNumber.ZERO,
244
+ getTargetEpoch: ()=>EpochNumber.ZERO,
245
+ getEpochAndSlotNow: ()=>({
246
+ epoch: EpochNumber.ZERO,
247
+ slot: SlotNumber.ZERO,
248
+ ts: 0n,
249
+ nowMs: 0n
250
+ }),
251
+ isProposerPipeliningEnabled: ()=>false,
252
+ pipeliningOffset: ()=>0,
253
+ computeProposerIndex: ()=>0n,
254
+ getCurrentAndNextSlot: ()=>({
255
+ currentSlot: SlotNumber.ZERO,
256
+ nextSlot: SlotNumber.ZERO
257
+ }),
258
+ getTargetAndNextSlot: ()=>({
259
+ targetSlot: SlotNumber.ZERO,
260
+ nextSlot: SlotNumber.ZERO
261
+ }),
262
+ getProposerAttesterAddressInSlot: ()=>Promise.resolve(undefined),
263
+ getEpochAndSlotInNextL1Slot: ()=>({
264
+ epoch: EpochNumber.ZERO,
265
+ slot: SlotNumber.ZERO,
266
+ ts: 0n,
267
+ nowSeconds: 0n
268
+ }),
269
+ getTargetEpochAndSlotInNextL1Slot: ()=>({
270
+ epoch: EpochNumber.ZERO,
271
+ slot: SlotNumber.ZERO,
272
+ ts: 0n,
273
+ nowSeconds: 0n
274
+ }),
275
+ isInCommittee: ()=>Promise.resolve(false),
276
+ getRegisteredValidators: ()=>Promise.resolve([]),
277
+ filterInCommittee: ()=>Promise.resolve([]),
278
+ isEscapeHatchOpen: ()=>Promise.resolve(false),
279
+ isEscapeHatchOpenAtSlot: ()=>Promise.resolve(false),
280
+ getL1Constants: ()=>({
281
+ l1StartBlock: 0n,
282
+ l1GenesisTime: 0n,
283
+ epochDuration: 1,
284
+ slotDuration: 1,
285
+ ethereumSlotDuration: 1,
286
+ proofSubmissionEpochs: 1,
287
+ targetCommitteeSize: 48,
288
+ rollupManaLimit: Number.MAX_SAFE_INTEGER
289
+ })
290
+ };
291
+ return cache;
292
+ }
293
+ /**
294
+ * Creates a mock WorldStateSynchronizer for testing.
295
+ */ export function createMockWorldStateSynchronizer() {
296
+ return {
297
+ status: ()=>Promise.resolve({
298
+ syncSummary: {
299
+ latestBlockNumber: 0,
300
+ latestBlockHash: '',
301
+ finalizedBlockNumber: 0,
302
+ treesAreSynched: false,
303
+ oldestHistoricBlockNumber: 0
304
+ }
305
+ })
306
+ };
307
+ }
308
+ /**
309
+ * Unlimited rate limit configuration for benchmarks.
310
+ */ export const UNLIMITED_RATE_LIMIT_QUOTA = {
311
+ peerLimit: {
312
+ quotaTimeMs: 1000,
313
+ quotaCount: 10_000
314
+ },
315
+ globalLimit: {
316
+ quotaTimeMs: 1000,
317
+ quotaCount: 100_000
318
+ }
319
+ };
320
+ /**
321
+ * Installs unlimited rate limits on a ReqResp instance.
322
+ * Used in benchmarks to avoid rate limiting affecting results.
323
+ *
324
+ * Note: Uses `as any` because rateLimiter is private. This is acceptable
325
+ * in test code where we need to override internal behavior.
326
+ */ export function installUnlimitedRateLimitsOnReqResp(reqResp) {
327
+ const rateLimiter = reqResp.rateLimiter;
328
+ rateLimiter.getRateLimits = ()=>UNLIMITED_RATE_LIMIT_QUOTA;
329
+ rateLimiter.allow = ()=>RateLimitStatus.Allowed;
330
+ }
331
+ /**
332
+ * Display names for collector types (for output/logging only).
333
+ */ export const COLLECTOR_DISPLAY_NAMES = {
334
+ 'batch-requester': 'batch-requester (new)',
335
+ 'send-batch-request': 'send-batch-request (old)'
336
+ };
337
+ /**
338
+ * Benchmark timing constants.
339
+ */ export const BENCHMARK_CONSTANTS = {
340
+ /** Time to wait for peers to connect before starting benchmark */ PEER_DISCOVERY_WAIT_MS: 10_000,
341
+ /** Maximum time to wait for peer connections */ MAX_PEER_WAIT_MS: 60_000,
342
+ /** Interval between peer connection checks */ PEER_CHECK_INTERVAL_MS: 500,
343
+ /** Default worker ready timeout */ WORKER_READY_TIMEOUT_MS: 30_000,
344
+ /** Graceful shutdown timeout before force kill */ GRACEFUL_SHUTDOWN_TIMEOUT_MS: 5_000,
345
+ /** Overall cleanup timeout */ CLEANUP_TIMEOUT_MS: 10_000,
346
+ /** Buffer time for internal timeout to ensure we return before outer timeout */ TIMEOUT_BUFFER_MS: 5_000,
347
+ /** Minimum internal timeout regardless of buffer */ MIN_INTERNAL_TIMEOUT_MS: 1_000,
348
+ /** Fixed max peers for fair benchmarking */ FIXED_MAX_PEERS: 10,
349
+ /** Fixed max retry attempts for fair benchmarking */ FIXED_MAX_RETRY_ATTEMPTS: 3,
350
+ /** LMDB map size for temp stores used in benchmarks (in KB). */ KV_STORE_MAP_SIZE_KB: 256 * 1024
351
+ };
352
+ /**
353
+ * Filters transactions based on distribution pattern for benchmark responders.
354
+ *
355
+ * @param allTxs - All transactions to filter
356
+ * @param peerIndex - Index of the current peer (0 = aggregator)
357
+ * @param peerCount - Total number of peers
358
+ * @param distribution - Distribution pattern to apply
359
+ * @param pinnedPeerIndex - Index of the pinned peer (for pinned-only distribution)
360
+ * @returns Filtered transactions for this peer
361
+ */ export function filterTxsByDistribution(allTxs, peerIndex, peerCount, distribution, pinnedPeerIndex = 1) {
362
+ if (peerIndex === 0) {
363
+ return [];
364
+ }
365
+ const responderCount = peerCount - 1;
366
+ switch(distribution){
367
+ case 'uniform':
368
+ return allTxs;
369
+ case 'sparse':
370
+ {
371
+ const responderIndex = peerIndex - 1;
372
+ return allTxs.filter((_, txIndex)=>{
373
+ const bucket = txIndex % responderCount;
374
+ return bucket === responderIndex || bucket === (responderIndex + 1) % responderCount;
375
+ });
376
+ }
377
+ case 'pinned-only':
378
+ return peerIndex === pinnedPeerIndex ? allTxs : [];
379
+ }
380
+ }
381
+ /**
382
+ * Calculates the internal timeout for collector operations.
383
+ * Ensures we return before the outer timeout while maintaining a minimum.
384
+ */ export function calculateInternalTimeout(timeoutMs) {
385
+ return Math.max(timeoutMs - BENCHMARK_CONSTANTS.TIMEOUT_BUFFER_MS, BENCHMARK_CONSTANTS.MIN_INTERNAL_TIMEOUT_MS);
386
+ }
@@ -1,2 +1,28 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudF90ZXN0YmVuY2hfd29ya2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3AycF9jbGllbnRfdGVzdGJlbmNoX3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
1
+ import { type CollectorType, type DistributionPattern } from '../test-helpers/index.js';
2
+ export type { DistributionPattern, CollectorType } from '../test-helpers/testbench-utils.js';
3
+ export { COLLECTOR_DISPLAY_NAMES } from '../test-helpers/testbench-utils.js';
4
+ export interface BenchReqRespCommand {
5
+ type: 'BENCH_REQRESP';
6
+ txCount: number;
7
+ peerCount: number;
8
+ distribution: DistributionPattern;
9
+ collectorType: CollectorType;
10
+ timeoutMs: number;
11
+ isAggregator: boolean;
12
+ peerIndex: number;
13
+ pinnedPeerIndex?: number;
14
+ pinnedPeerId?: string;
15
+ blockNumber: number;
16
+ seed: number;
17
+ }
18
+ export interface BenchResultMessage {
19
+ type: 'BENCH_RESULT';
20
+ durationMs: number;
21
+ fetchedCount: number;
22
+ success: boolean;
23
+ error?: string;
24
+ }
25
+ export interface BenchReadyMessage {
26
+ type: 'BENCH_READY';
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudF90ZXN0YmVuY2hfd29ya2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3AycF9jbGllbnRfdGVzdGJlbmNoX3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2Q0EsT0FBTyxFQUVMLEtBQUssYUFBYSxFQUNsQixLQUFLLG1CQUFtQixFQU96QixNQUFNLDBCQUEwQixDQUFDO0FBR2xDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU3RSxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLElBQUksRUFBRSxlQUFlLENBQUM7SUFDdEIsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztJQUNsQyxhQUFhLEVBQUUsYUFBYSxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsWUFBWSxFQUFFLE9BQU8sQ0FBQztJQUN0QixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN6QixZQUFZLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEIsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDO0NBQ2Q7QUFFRCxNQUFNLFdBQVcsa0JBQWtCO0lBQ2pDLElBQUksRUFBRSxjQUFjLENBQUM7SUFDckIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakIsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2hCO0FBRUQsTUFBTSxXQUFXLGlCQUFpQjtJQUNoQyxJQUFJLEVBQUUsYUFBYSxDQUFDO0NBQ3JCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_client_testbench_worker.d.ts","sourceRoot":"","sources":["../../src/testbench/p2p_client_testbench_worker.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"p2p_client_testbench_worker.d.ts","sourceRoot":"","sources":["../../src/testbench/p2p_client_testbench_worker.ts"],"names":[],"mappings":"AA6CA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAOzB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC7F,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;CACrB"}