@aztec/p2p 0.0.1-commit.29c6b1a3 → 0.0.1-commit.2c0ee1788

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 (529) 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.js +25 -12
  14. package/dest/config.d.ts +138 -87
  15. package/dest/config.d.ts.map +1 -1
  16. package/dest/config.js +116 -41
  17. package/dest/errors/p2p-service.error.d.ts +9 -0
  18. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  19. package/dest/errors/p2p-service.error.js +10 -0
  20. package/dest/errors/tx-pool.error.d.ts +8 -0
  21. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  22. package/dest/errors/tx-pool.error.js +9 -0
  23. package/dest/index.d.ts +2 -2
  24. package/dest/index.d.ts.map +1 -1
  25. package/dest/index.js +1 -1
  26. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +106 -88
  27. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  28. package/dest/mem_pools/attestation_pool/attestation_pool.js +448 -3
  29. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  30. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  31. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  32. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  33. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/index.js +1 -2
  35. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  36. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  37. package/dest/mem_pools/attestation_pool/mocks.js +7 -5
  38. package/dest/mem_pools/index.d.ts +3 -3
  39. package/dest/mem_pools/index.d.ts.map +1 -1
  40. package/dest/mem_pools/index.js +1 -1
  41. package/dest/mem_pools/instrumentation.d.ts +4 -2
  42. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  43. package/dest/mem_pools/instrumentation.js +35 -17
  44. package/dest/mem_pools/interface.d.ts +5 -5
  45. package/dest/mem_pools/interface.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  47. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  48. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  49. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  50. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  51. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  52. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  53. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  54. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  55. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  56. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  57. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  58. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  59. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  75. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_mining_rule.js +16 -35
  76. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  80. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  81. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  88. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  89. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  90. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  91. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  92. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  93. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  94. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +218 -0
  95. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  96. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  97. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -0
  98. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  99. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +223 -0
  100. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  101. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  103. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  104. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +924 -0
  112. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +9 -3
  113. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  114. package/dest/msg_validators/attestation_validator/attestation_validator.js +37 -12
  115. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +8 -4
  116. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  117. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +9 -4
  118. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  119. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  120. package/dest/msg_validators/clock_tolerance.js +61 -3
  121. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -4
  122. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  123. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  124. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -4
  125. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  126. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  127. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +19 -8
  128. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  129. package/dest/msg_validators/proposal_validator/proposal_validator.js +88 -44
  130. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  131. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  132. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  133. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  134. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  135. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  136. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  137. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  138. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  139. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  140. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  141. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  142. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/block_header_validator.js +5 -4
  144. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  145. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  146. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  147. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  148. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  149. package/dest/msg_validators/tx_validator/data_validator.js +39 -3
  150. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  151. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  152. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  153. package/dest/msg_validators/tx_validator/factory.d.ts +135 -7
  154. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/factory.js +247 -60
  156. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  157. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  158. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  159. package/dest/msg_validators/tx_validator/gas_validator.d.ts +100 -3
  160. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  161. package/dest/msg_validators/tx_validator/gas_validator.js +138 -53
  162. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  163. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  164. package/dest/msg_validators/tx_validator/index.js +2 -0
  165. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  166. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  167. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  168. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  169. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  170. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  171. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  172. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  173. package/dest/msg_validators/tx_validator/phases_validator.js +75 -27
  174. package/dest/msg_validators/tx_validator/size_validator.d.ts +3 -1
  175. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -1
  176. package/dest/msg_validators/tx_validator/size_validator.js +4 -1
  177. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  178. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  179. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  180. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  181. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  182. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  183. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  184. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  185. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  186. package/dest/services/data_store.d.ts +1 -1
  187. package/dest/services/data_store.d.ts.map +1 -1
  188. package/dest/services/data_store.js +14 -10
  189. package/dest/services/discv5/discV5_service.js +1 -1
  190. package/dest/services/dummy_service.d.ts +17 -6
  191. package/dest/services/dummy_service.d.ts.map +1 -1
  192. package/dest/services/dummy_service.js +16 -5
  193. package/dest/services/encoding.d.ts +7 -3
  194. package/dest/services/encoding.d.ts.map +1 -1
  195. package/dest/services/encoding.js +18 -11
  196. package/dest/services/gossipsub/index.d.ts +3 -0
  197. package/dest/services/gossipsub/index.d.ts.map +1 -0
  198. package/dest/services/gossipsub/index.js +2 -0
  199. package/dest/services/gossipsub/scoring.d.ts +21 -3
  200. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  201. package/dest/services/gossipsub/scoring.js +24 -7
  202. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  203. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  204. package/dest/services/gossipsub/topic_score_params.js +363 -0
  205. package/dest/services/index.d.ts +2 -1
  206. package/dest/services/index.d.ts.map +1 -1
  207. package/dest/services/index.js +1 -0
  208. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  209. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  210. package/dest/services/libp2p/instrumentation.js +28 -3
  211. package/dest/services/libp2p/libp2p_service.d.ts +96 -52
  212. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  213. package/dest/services/libp2p/libp2p_service.js +590 -452
  214. package/dest/services/peer-manager/metrics.d.ts +4 -2
  215. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  216. package/dest/services/peer-manager/metrics.js +26 -5
  217. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  218. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  219. package/dest/services/peer-manager/peer_manager.js +39 -11
  220. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  221. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  222. package/dest/services/peer-manager/peer_scoring.js +65 -14
  223. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +14 -10
  224. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  225. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +89 -112
  226. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +4 -7
  227. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  228. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +11 -13
  229. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  230. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +31 -46
  231. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -11
  232. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  233. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +52 -15
  234. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
  235. package/dest/services/reqresp/config.d.ts +3 -3
  236. package/dest/services/reqresp/config.d.ts.map +1 -1
  237. package/dest/services/reqresp/interface.d.ts +23 -9
  238. package/dest/services/reqresp/interface.d.ts.map +1 -1
  239. package/dest/services/reqresp/interface.js +23 -10
  240. package/dest/services/reqresp/metrics.d.ts +6 -5
  241. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  242. package/dest/services/reqresp/metrics.js +16 -5
  243. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  244. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  245. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +17 -12
  246. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +25 -14
  247. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  248. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +40 -24
  249. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  250. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  251. package/dest/services/reqresp/protocols/index.js +0 -1
  252. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  253. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  254. package/dest/services/reqresp/protocols/tx.js +21 -3
  255. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  256. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  257. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  258. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  259. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  260. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  261. package/dest/services/reqresp/reqresp.d.ts +4 -2
  262. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  263. package/dest/services/reqresp/reqresp.js +40 -15
  264. package/dest/services/service.d.ts +43 -4
  265. package/dest/services/service.d.ts.map +1 -1
  266. package/dest/services/tx_collection/config.d.ts +22 -4
  267. package/dest/services/tx_collection/config.d.ts.map +1 -1
  268. package/dest/services/tx_collection/config.js +49 -3
  269. package/dest/services/tx_collection/fast_tx_collection.d.ts +6 -8
  270. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  271. package/dest/services/tx_collection/fast_tx_collection.js +88 -88
  272. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  273. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  274. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  275. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  276. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  277. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  278. package/dest/services/tx_collection/index.d.ts +3 -2
  279. package/dest/services/tx_collection/index.d.ts.map +1 -1
  280. package/dest/services/tx_collection/index.js +1 -0
  281. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  282. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  283. package/dest/services/tx_collection/instrumentation.js +10 -2
  284. package/dest/services/tx_collection/proposal_tx_collector.d.ts +15 -15
  285. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  286. package/dest/services/tx_collection/proposal_tx_collector.js +6 -6
  287. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  288. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  289. package/dest/services/tx_collection/request_tracker.js +84 -0
  290. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  291. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  292. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  293. package/dest/services/tx_collection/tx_collection.d.ts +23 -13
  294. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  295. package/dest/services/tx_collection/tx_collection.js +75 -3
  296. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  297. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  298. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  299. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  300. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  301. package/dest/services/tx_collection/tx_source.js +26 -7
  302. package/dest/services/tx_file_store/config.d.ts +16 -0
  303. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  304. package/dest/services/tx_file_store/config.js +22 -0
  305. package/dest/services/tx_file_store/index.d.ts +4 -0
  306. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  307. package/dest/services/tx_file_store/index.js +3 -0
  308. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  309. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  310. package/dest/services/tx_file_store/instrumentation.js +29 -0
  311. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  312. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  313. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  314. package/dest/services/tx_provider.d.ts +4 -4
  315. package/dest/services/tx_provider.d.ts.map +1 -1
  316. package/dest/services/tx_provider.js +9 -8
  317. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  318. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  319. package/dest/services/tx_provider_instrumentation.js +5 -5
  320. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  321. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  322. package/dest/test-helpers/make-test-p2p-clients.js +4 -2
  323. package/dest/test-helpers/mock-pubsub.d.ts +40 -6
  324. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  325. package/dest/test-helpers/mock-pubsub.js +139 -13
  326. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  327. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  328. package/dest/test-helpers/reqresp-nodes.js +8 -5
  329. package/dest/test-helpers/testbench-utils.d.ts +45 -38
  330. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  331. package/dest/test-helpers/testbench-utils.js +152 -62
  332. package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -2
  333. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  334. package/dest/testbench/p2p_client_testbench_worker.js +86 -29
  335. package/dest/testbench/worker_client_manager.d.ts +10 -1
  336. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  337. package/dest/testbench/worker_client_manager.js +55 -3
  338. package/dest/util.d.ts +3 -3
  339. package/dest/util.d.ts.map +1 -1
  340. package/package.json +14 -14
  341. package/src/bootstrap/bootstrap.ts +7 -4
  342. package/src/client/factory.ts +118 -37
  343. package/src/client/interface.ts +65 -35
  344. package/src/client/p2p_client.ts +228 -272
  345. package/src/client/test/tx_proposal_collector/README.md +4 -4
  346. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +37 -16
  347. package/src/config.ts +188 -46
  348. package/src/errors/p2p-service.error.ts +11 -0
  349. package/src/errors/tx-pool.error.ts +12 -0
  350. package/src/index.ts +1 -1
  351. package/src/mem_pools/attestation_pool/attestation_pool.ts +501 -91
  352. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  353. package/src/mem_pools/attestation_pool/index.ts +9 -2
  354. package/src/mem_pools/attestation_pool/mocks.ts +14 -8
  355. package/src/mem_pools/index.ts +2 -2
  356. package/src/mem_pools/instrumentation.ts +24 -15
  357. package/src/mem_pools/interface.ts +4 -4
  358. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  359. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  360. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  361. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  362. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  363. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  364. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  365. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  366. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  367. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  368. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  369. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  370. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  371. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  372. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  373. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  374. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  375. package/src/mem_pools/tx_pool_v2/interfaces.ts +250 -0
  376. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  377. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  378. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  379. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  380. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1107 -0
  381. package/src/msg_validators/attestation_validator/README.md +49 -0
  382. package/src/msg_validators/attestation_validator/attestation_validator.ts +41 -9
  383. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +22 -6
  384. package/src/msg_validators/clock_tolerance.ts +79 -3
  385. package/src/msg_validators/proposal_validator/README.md +123 -0
  386. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +23 -4
  387. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +34 -7
  388. package/src/msg_validators/proposal_validator/proposal_validator.ts +111 -47
  389. package/src/msg_validators/tx_validator/README.md +127 -0
  390. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  391. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  392. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  393. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  394. package/src/msg_validators/tx_validator/block_header_validator.ts +22 -11
  395. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  396. package/src/msg_validators/tx_validator/data_validator.ts +48 -3
  397. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  398. package/src/msg_validators/tx_validator/factory.ts +403 -69
  399. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  400. package/src/msg_validators/tx_validator/gas_validator.ts +203 -52
  401. package/src/msg_validators/tx_validator/index.ts +2 -0
  402. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  403. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  404. package/src/msg_validators/tx_validator/phases_validator.ts +87 -30
  405. package/src/msg_validators/tx_validator/size_validator.ts +6 -2
  406. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  407. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  408. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  409. package/src/services/data_store.ts +14 -19
  410. package/src/services/discv5/discV5_service.ts +1 -1
  411. package/src/services/dummy_service.ts +25 -7
  412. package/src/services/encoding.ts +18 -10
  413. package/src/services/gossipsub/README.md +641 -0
  414. package/src/services/gossipsub/index.ts +2 -0
  415. package/src/services/gossipsub/scoring.ts +29 -5
  416. package/src/services/gossipsub/topic_score_params.ts +519 -0
  417. package/src/services/index.ts +1 -0
  418. package/src/services/libp2p/instrumentation.ts +29 -2
  419. package/src/services/libp2p/libp2p_service.ts +632 -494
  420. package/src/services/peer-manager/metrics.ts +28 -4
  421. package/src/services/peer-manager/peer_manager.ts +45 -11
  422. package/src/services/peer-manager/peer_scoring.ts +56 -6
  423. package/src/services/reqresp/README.md +229 -0
  424. package/src/services/reqresp/batch-tx-requester/README.md +60 -21
  425. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +89 -122
  426. package/src/services/reqresp/batch-tx-requester/interface.ts +3 -6
  427. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +30 -71
  428. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
  429. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
  430. package/src/services/reqresp/config.ts +2 -2
  431. package/src/services/reqresp/interface.ts +45 -10
  432. package/src/services/reqresp/metrics.ts +33 -9
  433. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +24 -15
  434. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +47 -24
  435. package/src/services/reqresp/protocols/index.ts +0 -1
  436. package/src/services/reqresp/protocols/tx.ts +23 -3
  437. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  438. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  439. package/src/services/reqresp/reqresp.ts +53 -16
  440. package/src/services/service.ts +57 -3
  441. package/src/services/tx_collection/config.ts +74 -6
  442. package/src/services/tx_collection/fast_tx_collection.ts +94 -97
  443. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  444. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  445. package/src/services/tx_collection/index.ts +2 -1
  446. package/src/services/tx_collection/instrumentation.ts +17 -2
  447. package/src/services/tx_collection/proposal_tx_collector.ts +21 -27
  448. package/src/services/tx_collection/request_tracker.ts +127 -0
  449. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  450. package/src/services/tx_collection/tx_collection.ts +114 -19
  451. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  452. package/src/services/tx_collection/tx_source.ts +28 -8
  453. package/src/services/tx_file_store/config.ts +37 -0
  454. package/src/services/tx_file_store/index.ts +3 -0
  455. package/src/services/tx_file_store/instrumentation.ts +36 -0
  456. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  457. package/src/services/tx_provider.ts +10 -9
  458. package/src/services/tx_provider_instrumentation.ts +11 -5
  459. package/src/test-helpers/make-test-p2p-clients.ts +6 -6
  460. package/src/test-helpers/mock-pubsub.ts +180 -14
  461. package/src/test-helpers/reqresp-nodes.ts +9 -9
  462. package/src/test-helpers/testbench-utils.ts +159 -74
  463. package/src/testbench/p2p_client_testbench_worker.ts +95 -32
  464. package/src/testbench/worker_client_manager.ts +68 -6
  465. package/src/util.ts +8 -2
  466. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  467. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  468. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  469. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  470. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  471. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  472. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  473. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  474. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  475. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  476. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  477. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  478. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  479. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  480. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  481. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  482. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  483. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  484. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  485. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  486. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  487. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  488. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  489. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  490. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  491. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  492. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  493. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  494. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  495. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  496. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  497. package/dest/mem_pools/tx_pool/index.js +0 -2
  498. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  499. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  500. package/dest/mem_pools/tx_pool/priority.js +0 -15
  501. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  502. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  503. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  504. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  505. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  506. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  507. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  508. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  509. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  510. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  511. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  512. package/dest/services/reqresp/protocols/block.js +0 -32
  513. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  514. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  515. package/src/mem_pools/tx_pool/README.md +0 -270
  516. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  517. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  518. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  519. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  520. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  521. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  522. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  523. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  524. package/src/mem_pools/tx_pool/index.ts +0 -2
  525. package/src/mem_pools/tx_pool/priority.ts +0 -20
  526. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  527. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  528. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  529. package/src/services/reqresp/protocols/block.ts +0 -37
@@ -5,6 +5,7 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
5
5
  /**
6
6
  * In-memory TxPool implementation for testing.
7
7
  * Provides basic tx storage without persistence.
8
+ * Implements TxPoolV2 interface with stub implementations for testing.
8
9
  */ export class InMemoryTxPool extends EventEmitter {
9
10
  txsByHash = new Map();
10
11
  logger = null;
@@ -33,14 +34,15 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
33
34
  this.txsByHash.clear();
34
35
  this.removeAllListeners();
35
36
  }
36
- addTxs(txs, opts) {
37
+ // === Core Operations (TxPoolV2) ===
38
+ addPendingTxs(txs, opts) {
39
+ const accepted = [];
37
40
  const newTxs = [];
38
- let added = 0;
39
41
  for (const tx of txs){
40
42
  const key = tx.getTxHash().toString();
41
43
  if (!this.txsByHash.has(key)) {
42
44
  newTxs.push(tx);
43
- added += 1;
45
+ accepted.push(tx.getTxHash());
44
46
  }
45
47
  this.txsByHash.set(key, tx);
46
48
  }
@@ -50,8 +52,68 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
50
52
  source: opts?.source
51
53
  });
52
54
  }
53
- return Promise.resolve(added);
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);
54
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) ===
55
117
  getTxByHash(hash) {
56
118
  return Promise.resolve(this.txsByHash.get(hash.toString()));
57
119
  }
@@ -64,100 +126,98 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
64
126
  hasTxs(hashes) {
65
127
  return Promise.resolve(hashes.map((h)=>this.txsByHash.has(h.toString())));
66
128
  }
67
- hasTx(hash) {
68
- return Promise.resolve(this.txsByHash.has(hash.toString()));
69
- }
70
129
  getArchivedTxByHash(_hash) {
71
130
  return Promise.resolve(undefined);
72
131
  }
73
- async markAsMined(_txHashes, _blockHeader) {}
74
- async markMinedAsPending(_txHashes, _latestBlock) {}
75
- deleteTxs(txHashes, _opts) {
76
- for (const txHash of txHashes){
77
- this.txsByHash.delete(txHash.toString());
78
- }
79
- return Promise.resolve();
80
- }
81
- getAllTxs() {
82
- return Promise.resolve([
83
- ...this.txsByHash.values()
84
- ]);
85
- }
86
- getAllTxHashes() {
87
- return Promise.resolve([
88
- ...this.txsByHash.keys()
89
- ].map((key)=>TxHash.fromString(key)));
90
- }
91
132
  getPendingTxHashes() {
92
133
  return Promise.resolve([
93
134
  ...this.txsByHash.keys()
94
135
  ].map((key)=>TxHash.fromString(key)));
95
136
  }
137
+ getEligiblePendingTxHashes() {
138
+ return this.getPendingTxHashes();
139
+ }
96
140
  getPendingTxCount() {
97
141
  return Promise.resolve(this.txsByHash.size);
98
142
  }
99
143
  getMinedTxHashes() {
100
144
  return Promise.resolve([]);
101
145
  }
146
+ getMinedTxCount() {
147
+ return Promise.resolve(0);
148
+ }
102
149
  getTxStatus(hash) {
103
150
  return Promise.resolve(this.txsByHash.has(hash.toString()) ? 'pending' : undefined);
104
151
  }
105
- updateConfig(_config) {}
106
152
  isEmpty() {
107
153
  return Promise.resolve(this.txsByHash.size === 0);
108
154
  }
109
- async markTxsAsNonEvictable(_txHashes) {}
110
- async clearNonEvictableTxs() {}
111
- cleanupDeletedMinedTxs(_blockNumber) {
112
- return Promise.resolve(0);
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();
113
168
  }
114
169
  }
115
170
  /**
116
- * In-memory AttestationPool implementation for testing.
171
+ * In-memory AttestationPool mock for testing/benchmarking.
172
+ * Provides minimal implementation without persistence.
117
173
  */ export class InMemoryAttestationPool {
118
174
  proposals = new Map();
119
- addBlockProposal(blockProposal) {
120
- this.proposals.set(blockProposal.archive.toString(), blockProposal);
121
- return Promise.resolve();
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
+ });
122
191
  }
123
192
  getBlockProposal(id) {
124
193
  return Promise.resolve(this.proposals.get(id));
125
194
  }
126
- hasBlockProposal(idOrProposal) {
127
- const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.archive.toString();
128
- return Promise.resolve(this.proposals.has(id));
195
+ tryAddCheckpointProposal(_proposal) {
196
+ return Promise.resolve({
197
+ added: true,
198
+ alreadyExists: false,
199
+ count: 1
200
+ });
129
201
  }
130
- canAddProposal(_block) {
131
- return Promise.resolve(true);
132
- }
133
- async addCheckpointProposal(_proposal) {}
134
202
  getCheckpointProposal(_id) {
135
203
  return Promise.resolve(undefined);
136
204
  }
137
- hasCheckpointProposal(_idOrProposal) {
138
- return Promise.resolve(false);
139
- }
140
- async addCheckpointAttestations(_attestations) {}
141
- async deleteCheckpointAttestationsOlderThan(_slot) {}
205
+ async addOwnCheckpointAttestations(_attestations) {}
206
+ async deleteOlderThan(_slot) {}
142
207
  getCheckpointAttestationsForSlot(_slot) {
143
208
  return Promise.resolve([]);
144
209
  }
145
210
  getCheckpointAttestationsForSlotAndProposal(_slot, _proposalId) {
146
211
  return Promise.resolve([]);
147
212
  }
148
- hasCheckpointAttestation(_attestation) {
149
- return Promise.resolve(false);
150
- }
151
- canAddCheckpointProposal(_proposal) {
152
- return Promise.resolve(true);
213
+ tryAddCheckpointAttestation(_attestation) {
214
+ return Promise.resolve({
215
+ added: true,
216
+ alreadyExists: false,
217
+ count: 1
218
+ });
153
219
  }
154
- canAddCheckpointAttestation(_attestation, _committeeSize) {
155
- return Promise.resolve(true);
156
- }
157
- hasReachedCheckpointProposalCap(_slot) {
158
- return Promise.resolve(false);
159
- }
160
- hasReachedCheckpointAttestationCap(_slot, _proposalId, _committeeSize) {
220
+ hasBlockProposalsForSlot(_slot) {
161
221
  return Promise.resolve(false);
162
222
  }
163
223
  isEmpty() {
@@ -170,7 +230,7 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
170
230
  /**
171
231
  * Creates a mock EpochCache for testing.
172
232
  */ export function createMockEpochCache() {
173
- return {
233
+ const cache = {
174
234
  getCommittee: ()=>Promise.resolve({
175
235
  committee: [],
176
236
  seed: 1n,
@@ -178,28 +238,57 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
178
238
  isEscapeHatchOpen: false
179
239
  }),
180
240
  getProposerIndexEncoding: ()=>'0x',
241
+ getSlotNow: ()=>SlotNumber.ZERO,
242
+ getTargetSlot: ()=>SlotNumber.ZERO,
243
+ getEpochNow: ()=>EpochNumber.ZERO,
244
+ getTargetEpoch: ()=>EpochNumber.ZERO,
181
245
  getEpochAndSlotNow: ()=>({
182
246
  epoch: EpochNumber.ZERO,
183
247
  slot: SlotNumber.ZERO,
184
248
  ts: 0n,
185
249
  nowMs: 0n
186
250
  }),
251
+ isProposerPipeliningEnabled: ()=>false,
252
+ pipeliningOffset: ()=>0,
187
253
  computeProposerIndex: ()=>0n,
188
254
  getCurrentAndNextSlot: ()=>({
189
255
  currentSlot: SlotNumber.ZERO,
190
256
  nextSlot: SlotNumber.ZERO
191
257
  }),
258
+ getTargetAndNextSlot: ()=>({
259
+ targetSlot: SlotNumber.ZERO,
260
+ nextSlot: SlotNumber.ZERO
261
+ }),
192
262
  getProposerAttesterAddressInSlot: ()=>Promise.resolve(undefined),
193
263
  getEpochAndSlotInNextL1Slot: ()=>({
194
264
  epoch: EpochNumber.ZERO,
195
265
  slot: SlotNumber.ZERO,
196
266
  ts: 0n,
197
- now: 0n
267
+ nowSeconds: 0n
268
+ }),
269
+ getTargetEpochAndSlotInNextL1Slot: ()=>({
270
+ epoch: EpochNumber.ZERO,
271
+ slot: SlotNumber.ZERO,
272
+ ts: 0n,
273
+ nowSeconds: 0n
198
274
  }),
199
275
  isInCommittee: ()=>Promise.resolve(false),
200
276
  getRegisteredValidators: ()=>Promise.resolve([]),
201
- filterInCommittee: ()=>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
+ })
202
290
  };
291
+ return cache;
203
292
  }
204
293
  /**
205
294
  * Creates a mock WorldStateSynchronizer for testing.
@@ -257,7 +346,8 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
257
346
  /** Buffer time for internal timeout to ensure we return before outer timeout */ TIMEOUT_BUFFER_MS: 5_000,
258
347
  /** Minimum internal timeout regardless of buffer */ MIN_INTERNAL_TIMEOUT_MS: 1_000,
259
348
  /** Fixed max peers for fair benchmarking */ FIXED_MAX_PEERS: 10,
260
- /** Fixed max retry attempts for fair benchmarking */ FIXED_MAX_RETRY_ATTEMPTS: 3
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
261
351
  };
262
352
  /**
263
353
  * Filters transactions based on distribution pattern for benchmark responders.
@@ -1,4 +1,4 @@
1
- import { type CollectorType, type DistributionPattern } from '../test-helpers/testbench-utils.js';
1
+ import { type CollectorType, type DistributionPattern } from '../test-helpers/index.js';
2
2
  export type { DistributionPattern, CollectorType } from '../test-helpers/testbench-utils.js';
3
3
  export { COLLECTOR_DISPLAY_NAMES } from '../test-helpers/testbench-utils.js';
4
4
  export interface BenchReqRespCommand {
@@ -25,4 +25,4 @@ export interface BenchResultMessage {
25
25
  export interface BenchReadyMessage {
26
26
  type: 'BENCH_READY';
27
27
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudF90ZXN0YmVuY2hfd29ya2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3AycF9jbGllbnRfdGVzdGJlbmNoX3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQ0EsT0FBTyxFQUVMLEtBQUssYUFBYSxFQUNsQixLQUFLLG1CQUFtQixFQU96QixNQUFNLG9DQUFvQyxDQUFDO0FBRzVDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM3RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU3RSxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLElBQUksRUFBRSxlQUFlLENBQUM7SUFDdEIsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztJQUNsQyxhQUFhLEVBQUUsYUFBYSxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsWUFBWSxFQUFFLE9BQU8sQ0FBQztJQUN0QixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN6QixZQUFZLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEIsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixJQUFJLEVBQUUsTUFBTSxDQUFDO0NBQ2Q7QUFFRCxNQUFNLFdBQVcsa0JBQWtCO0lBQ2pDLElBQUksRUFBRSxjQUFjLENBQUM7SUFDckIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakIsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2hCO0FBRUQsTUFBTSxXQUFXLGlCQUFpQjtJQUNoQyxJQUFJLEVBQUUsYUFBYSxDQUFDO0NBQ3JCIn0=
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":"AA+CA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAOzB,MAAM,oCAAoC,CAAC;AAG5C,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"}
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"}
@@ -13,7 +13,8 @@ import { DateProvider, Timer } from '@aztec/foundation/timer';
13
13
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
14
14
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
15
15
  import { protocolContractsHash } from '@aztec/protocol-contracts';
16
- import { P2PClientType, P2PMessage } from '@aztec/stdlib/p2p';
16
+ import { GasFees } from '@aztec/stdlib/gas';
17
+ import { P2PMessage } from '@aztec/stdlib/p2p';
17
18
  import { ChonkProof } from '@aztec/stdlib/proofs';
18
19
  import { makeAztecAddress, makeBlockHeader, makeBlockProposal, mockTx } from '@aztec/stdlib/testing';
19
20
  import { Tx } from '@aztec/stdlib/tx';
@@ -21,18 +22,20 @@ import { getTelemetryClient } from '@aztec/telemetry-client';
21
22
  import { TopicValidatorResult } from '@libp2p/interface';
22
23
  import { peerIdFromString } from '@libp2p/peer-id';
23
24
  import { createP2PClient } from '../index.js';
24
- import { LibP2PService } from '../services/libp2p/libp2p_service.js';
25
+ import { BatchTxRequesterCollector, LibP2PService, SendBatchRequestCollector } from '../services/index.js';
25
26
  import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.js';
26
- import { BatchTxRequesterCollector, SendBatchRequestCollector } from '../services/tx_collection/proposal_tx_collector.js';
27
- import { AlwaysTrueCircuitVerifier } from '../test-helpers/reqresp-nodes.js';
28
- import { BENCHMARK_CONSTANTS, InMemoryAttestationPool, InMemoryTxPool, UNLIMITED_RATE_LIMIT_QUOTA, createMockEpochCache, createMockWorldStateSynchronizer, filterTxsByDistribution } from '../test-helpers/testbench-utils.js';
27
+ import { RequestTracker } from '../services/tx_collection/request_tracker.js';
28
+ import { AlwaysTrueCircuitVerifier } from '../test-helpers/index.js';
29
+ import { BENCHMARK_CONSTANTS, InMemoryAttestationPool, InMemoryTxPool, UNLIMITED_RATE_LIMIT_QUOTA, createMockEpochCache, createMockWorldStateSynchronizer, filterTxsByDistribution } from '../test-helpers/index.js';
29
30
  export { COLLECTOR_DISPLAY_NAMES } from '../test-helpers/testbench-utils.js';
30
31
  const txCache = new Map();
31
32
  class TestLibP2PService extends LibP2PService {
32
33
  disableTxValidation;
33
34
  gossipMessageCount = 0;
34
- constructor(clientType, config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger = createLogger('p2p:test:libp2p_service'), disableTxValidation = true){
35
- super(clientType, config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger);
35
+ constructor(config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger = createLogger('p2p:test:libp2p_service'), disableTxValidation = true){
36
+ super(config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, {
37
+ getCurrentMinFees: ()=>Promise.resolve(GasFees.empty())
38
+ }, telemetry, logger);
36
39
  this.disableTxValidation = disableTxValidation;
37
40
  }
38
41
  getGossipMessageCount() {
@@ -49,7 +52,7 @@ class TestLibP2PService extends LibP2PService {
49
52
  const txHash = tx.getTxHash();
50
53
  const txHashString = txHash.toString();
51
54
  this.logger.verbose(`Received tx ${txHashString} from external peer ${source.toString()}.`);
52
- await this.mempools.txPool.addTxs([
55
+ await this.mempools.txPool.addPendingTxs([
53
56
  tx
54
57
  ]);
55
58
  } else {
@@ -70,7 +73,7 @@ async function generateDeterministicTxs(txCount, seed, config) {
70
73
  if (cached.length >= txCount) {
71
74
  return cached.slice(0, txCount);
72
75
  }
73
- const includeByTimestampBase = BigInt(seed);
76
+ const expirationTimestampBase = BigInt(seed);
74
77
  for(let i = cached.length; i < txCount; i++){
75
78
  const txSeed = seed * 10000 + i;
76
79
  const tx = await mockTx(txSeed, {
@@ -86,7 +89,7 @@ async function generateDeterministicTxs(txCount, seed, config) {
86
89
  hasPublicTeardownCallRequest: false,
87
90
  publicCalldataSize: 0
88
91
  });
89
- tx.data.includeByTimestamp = includeByTimestampBase + BigInt(i);
92
+ tx.data.expirationTimestamp = expirationTimestampBase + BigInt(i);
90
93
  await tx.recomputeHash();
91
94
  cached.push(tx);
92
95
  }
@@ -110,6 +113,21 @@ function installUnlimitedRateLimits(client) {
110
113
  rateLimiter.getRateLimits = ()=>UNLIMITED_RATE_LIMIT_QUOTA;
111
114
  rateLimiter.allow = ()=>RateLimitStatus.Allowed;
112
115
  }
116
+ /** Resets peer scores to prevent cross-case contamination in benchmarks. */ function resetPeerScores(client) {
117
+ const peerManager = client.p2pService.peerManager;
118
+ const peerScoring = peerManager?.peerScoring;
119
+ if (peerScoring?.resetAllScores) {
120
+ peerScoring.resetAllScores();
121
+ }
122
+ }
123
+ /** Returns the number of connected peers for connectivity checks. */ function getConnectedPeerCount(client) {
124
+ const p2pService = client.p2pService;
125
+ const connectionSampler = p2pService?.reqresp?.getConnectionSampler?.();
126
+ if (connectionSampler?.getPeerListSortedByConnectionCountAsc) {
127
+ return connectionSampler.getPeerListSortedByConnectionCountAsc().length;
128
+ }
129
+ return 0;
130
+ }
113
131
  async function runAggregatorBenchmark(client, blockProposal, collectorType, timeoutMs, pinnedPeerId, pinnedPeerIndex, logger, expectedPeerCount) {
114
132
  let timer = new Timer();
115
133
  try {
@@ -154,7 +172,7 @@ async function runAggregatorBenchmark(client, blockProposal, collectorType, time
154
172
  timer = new Timer();
155
173
  if (collectorType === 'batch-requester') {
156
174
  const collector = new BatchTxRequesterCollector(batchTxRequesterService, logger, new DateProvider(), noopTxValidator);
157
- const fetchedTxs = await collector.collectTxs(txHashes, blockProposal, pinnedPeer, timeoutMs);
175
+ const fetchedTxs = await collector.collectTxs(RequestTracker.create(txHashes, new Date(Date.now() + timeoutMs)), blockProposal, pinnedPeer);
158
176
  const durationMs = timer.ms();
159
177
  return {
160
178
  type: 'BENCH_RESULT',
@@ -164,7 +182,7 @@ async function runAggregatorBenchmark(client, blockProposal, collectorType, time
164
182
  };
165
183
  }
166
184
  const collector = new SendBatchRequestCollector(batchTxRequesterService, BENCHMARK_CONSTANTS.FIXED_MAX_PEERS, BENCHMARK_CONSTANTS.FIXED_MAX_RETRY_ATTEMPTS);
167
- const fetchedTxs = await collector.collectTxs(txHashes, blockProposal, pinnedPeer, timeoutMs);
185
+ const fetchedTxs = await collector.collectTxs(RequestTracker.create(txHashes, new Date(Date.now() + timeoutMs)), blockProposal, pinnedPeer);
168
186
  const durationMs = timer.ms();
169
187
  return {
170
188
  type: 'BENCH_RESULT',
@@ -188,6 +206,35 @@ let workerAttestationPool = null;
188
206
  let workerConfig = null;
189
207
  let workerLogger = null;
190
208
  let kvStore = null;
209
+ async function stopWorker() {
210
+ try {
211
+ if (workerClient) {
212
+ await workerClient.stop();
213
+ workerClient = null;
214
+ }
215
+ } catch (e) {
216
+ workerLogger?.error('Error stopping worker client', e);
217
+ }
218
+ try {
219
+ if (kvStore?.close) {
220
+ await kvStore.close();
221
+ kvStore = null;
222
+ }
223
+ } catch (e) {
224
+ workerLogger?.error('Error closing kv store', e);
225
+ }
226
+ }
227
+ function gracefulExit(code = 0) {
228
+ try {
229
+ if (process.connected) {
230
+ process.disconnect();
231
+ }
232
+ } catch {
233
+ // IPC channel already closed
234
+ }
235
+ // Safety fallback if lingering handles prevent the event loop from draining
236
+ setTimeout(()=>process.exit(code), 5000).unref();
237
+ }
191
238
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
192
239
  process.on('message', async (msg)=>{
193
240
  const { type, config: rawConfig, clientIndex } = msg;
@@ -195,7 +242,8 @@ process.on('message', async (msg)=>{
195
242
  if (type === 'START') {
196
243
  const config = {
197
244
  ...rawConfig,
198
- peerIdPrivateKey: rawConfig.peerIdPrivateKey ? new SecretValue(rawConfig.peerIdPrivateKey) : undefined
245
+ peerIdPrivateKey: rawConfig.peerIdPrivateKey ? new SecretValue(rawConfig.peerIdPrivateKey) : undefined,
246
+ priceBumpPercentage: 10n
199
247
  };
200
248
  workerConfig = config;
201
249
  workerTxPool = new InMemoryTxPool();
@@ -204,7 +252,7 @@ process.on('message', async (msg)=>{
204
252
  const worldState = createMockWorldStateSynchronizer();
205
253
  const l2BlockSource = new MockL2BlockSource();
206
254
  const proofVerifier = new AlwaysTrueCircuitVerifier();
207
- kvStore = await openTmpStore(`test-${clientIndex}`);
255
+ kvStore = await openTmpStore(`test-${clientIndex}`, true, BENCHMARK_CONSTANTS.KV_STORE_MAP_SIZE_KB);
208
256
  workerLogger = createLogger(`p2p:${clientIndex}`);
209
257
  workerTxPool.setLogger(workerLogger);
210
258
  const telemetry = getTelemetryClient();
@@ -214,8 +262,10 @@ process.on('message', async (msg)=>{
214
262
  store: kvStore,
215
263
  logger: workerLogger
216
264
  };
217
- const client = await createP2PClient(P2PClientType.Full, config, l2BlockSource, proofVerifier, worldState, epochCache, 'test-p2p-bench-worker', undefined, telemetry, deps);
218
- const testService = new TestLibP2PService(P2PClientType.Full, config, client.p2pService.node, client.p2pService.peerDiscoveryService, client.p2pService.reqresp, client.p2pService.peerManager, client.p2pService.mempools, client.p2pService.archiver, epochCache, proofVerifier, worldState, telemetry, workerLogger, true);
265
+ const client = await createP2PClient(config, l2BlockSource, proofVerifier, worldState, epochCache, {
266
+ getCurrentMinFees: ()=>Promise.resolve(GasFees.empty())
267
+ }, 'test-p2p-bench-worker', undefined, telemetry, deps);
268
+ const testService = new TestLibP2PService(config, client.p2pService.node, client.p2pService.peerDiscoveryService, client.p2pService.reqresp, client.p2pService.peerManager, client.p2pService.mempools, client.p2pService.archiver, epochCache, proofVerifier, worldState, telemetry, workerLogger, true);
219
269
  client.p2pService = testService;
220
270
  await client.start();
221
271
  for(let i = 0; i < 100; i++){
@@ -237,13 +287,8 @@ process.on('message', async (msg)=>{
237
287
  const cmd = msg;
238
288
  switch(cmd.type){
239
289
  case 'STOP':
240
- if (workerClient) {
241
- await workerClient.stop();
242
- }
243
- if (kvStore?.close) {
244
- await kvStore.close();
245
- }
246
- process.exit(0);
290
+ await stopWorker();
291
+ gracefulExit(0);
247
292
  break;
248
293
  case 'SEND_TX':
249
294
  if (workerClient) {
@@ -253,6 +298,12 @@ process.on('message', async (msg)=>{
253
298
  });
254
299
  }
255
300
  break;
301
+ case 'GET_PEER_COUNT':
302
+ process.send({
303
+ type: 'PEER_COUNT',
304
+ count: workerClient ? getConnectedPeerCount(workerClient) : 0
305
+ });
306
+ break;
256
307
  case 'BENCH_REQRESP':
257
308
  {
258
309
  const benchCmd = cmd;
@@ -269,11 +320,12 @@ process.on('message', async (msg)=>{
269
320
  // Reset state before each benchmark run to avoid cross-run contamination
270
321
  workerTxPool.resetState();
271
322
  workerAttestationPool.resetState();
323
+ resetPeerScores(workerClient);
272
324
  installUnlimitedRateLimits(workerClient);
273
325
  const allTxs = await generateDeterministicTxs(benchCmd.txCount, benchCmd.seed, workerConfig);
274
326
  const txHashes = allTxs.map((tx)=>tx.getTxHash());
275
327
  const blockProposal = await createBlockProposal(benchCmd.blockNumber, txHashes, benchCmd.seed);
276
- await workerAttestationPool.addBlockProposal(blockProposal);
328
+ await workerAttestationPool.tryAddBlockProposal(blockProposal);
277
329
  workerLogger.debug(`[BENCH] Added block proposal with archive ${blockProposal.archive.toString().slice(0, 10)}...`);
278
330
  if (benchCmd.isAggregator) {
279
331
  workerTxPool.clearTxs();
@@ -292,10 +344,15 @@ process.on('message', async (msg)=>{
292
344
  }
293
345
  }
294
346
  } catch (err) {
295
- process.send({
296
- type: 'ERROR',
297
- error: err.message
298
- });
299
- process.exit(1);
347
+ try {
348
+ process.send({
349
+ type: 'ERROR',
350
+ error: err.message
351
+ });
352
+ } catch {
353
+ // IPC channel may be closed
354
+ }
355
+ await stopWorker();
356
+ gracefulExit(1);
300
357
  }
301
358
  });
@@ -38,6 +38,8 @@ declare class WorkerClientManager {
38
38
  * Note: We send the raw peerIdPrivateKey string instead of SecretValue
39
39
  * because SecretValue.toJSON() returns '[Redacted]', losing the value.
40
40
  * The worker must re-wrap it in SecretValue.
41
+ * We also omit priceBumpPercentage since it's a bigint and can't be
42
+ * serialized over IPC (which uses JSON under the hood).
41
43
  */
42
44
  private createClientConfig;
43
45
  /**
@@ -76,6 +78,13 @@ declare class WorkerClientManager {
76
78
  * Cleans up all worker processes with timeout and force kill if needed
77
79
  */
78
80
  cleanup(): Promise<void>;
81
+ /**
82
+ * Checks that the aggregator (client 0) has sufficient peer connections before running a benchmark.
83
+ * This prevents benchmark cases from starting with degraded connectivity after a previous case
84
+ * caused connection failures.
85
+ */
86
+ waitForConnectivity(minPeers: number, timeoutMs?: number): Promise<number>;
87
+ private getPeerCount;
79
88
  /**
80
89
  * Run a req/resp benchmark across all worker clients.
81
90
  *
@@ -93,4 +102,4 @@ declare class WorkerClientManager {
93
102
  export { WorkerClientManager, testChainConfig };
94
103
  export type { DistributionPattern, CollectorType } from './p2p_client_testbench_worker.js';
95
104
  export { COLLECTOR_DISPLAY_NAMES } from './p2p_client_testbench_worker.js';
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX2NsaWVudF9tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3dvcmtlcl9jbGllbnRfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFLeEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUtuRSxPQUFPLEtBQUssRUFHVixhQUFhLEVBQ2IsbUJBQW1CLEVBQ3BCLE1BQU0sa0NBQWtDLENBQUM7QUFRMUMsUUFBQSxNQUFNLGVBQWUsRUFBRSxXQU10QixDQUFDO0FBRUYsTUFBTSxXQUFXLHNCQUFzQjtJQUNyQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztJQUNsQyxhQUFhLEVBQUUsYUFBYSxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZjtBQUVELE1BQU0sV0FBVyxzQkFBc0I7SUFDckMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixZQUFZLEVBQUUsbUJBQW1CLENBQUM7SUFDbEMsU0FBUyxFQUFFLGFBQWEsQ0FBQztJQUN6QixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsT0FBTyxFQUFFLE9BQU8sQ0FBQztJQUNqQixLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDaEI7QUFFRCxjQUFNLG1CQUFtQjtJQUNoQixTQUFTLEVBQUUsWUFBWSxFQUFFLENBQU07SUFDL0IsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDakMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFNO0lBQ3hCLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBTTtJQUNyQixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDOUIsT0FBTyxDQUFDLFNBQVMsQ0FBcUI7SUFDdEMsT0FBTyxDQUFDLE1BQU0sQ0FBUztJQUN2QixPQUFPLENBQUMsdUJBQXVCLENBQWdCO0lBRS9DLFlBQVksTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUd4RDtJQUVELE9BQU8sU0FLTjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLGtCQUFrQjtJQWlCMUI7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLGtCQUFrQjtJQWdHMUI7Ozs7Ozs7T0FPRztJQUNHLGlCQUFpQixDQUNyQixlQUFlLEVBQUUsTUFBTSxFQUN2QixPQUFPLEdBQUU7UUFDUCxhQUFhLENBQUMsRUFBRSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUN2QixTQUFTLENBQUMsRUFBRSxNQUFNLENBQUM7UUFDbkIsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDO0tBQ2xCLHFCQStEUDtJQUVELDRCQUE0QixTQUUzQjtJQUVELGtDQUFrQyxXQUVqQztJQUVEOzs7OztPQUtHO0lBQ0csVUFBVSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBOENwRDtJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLGdCQUFnQjtJQXFDeEI7O09BRUc7SUFDRyxPQUFPLGtCQWdDWjtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxzQkFBc0IsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FzRXpGO0lBRUQsT0FBTyxDQUFDLGlCQUFpQjtJQWtDekIsT0FBTyxDQUFDLGtCQUFrQjtDQWlDM0I7QUFFRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLENBQUM7QUFDaEQsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDIn0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX2NsaWVudF9tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3dvcmtlcl9jbGllbnRfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFLeEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUtuRSxPQUFPLEtBQUssRUFHVixhQUFhLEVBQ2IsbUJBQW1CLEVBQ3BCLE1BQU0sa0NBQWtDLENBQUM7QUFRMUMsUUFBQSxNQUFNLGVBQWUsRUFBRSxXQU10QixDQUFDO0FBRUYsTUFBTSxXQUFXLHNCQUFzQjtJQUNyQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztJQUNsQyxhQUFhLEVBQUUsYUFBYSxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZjtBQUVELE1BQU0sV0FBVyxzQkFBc0I7SUFDckMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixZQUFZLEVBQUUsbUJBQW1CLENBQUM7SUFDbEMsU0FBUyxFQUFFLGFBQWEsQ0FBQztJQUN6QixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsT0FBTyxFQUFFLE9BQU8sQ0FBQztJQUNqQixLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDaEI7QUFFRCxjQUFNLG1CQUFtQjtJQUNoQixTQUFTLEVBQUUsWUFBWSxFQUFFLENBQU07SUFDL0IsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDakMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFNO0lBQ3hCLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBTTtJQUNyQixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDOUIsT0FBTyxDQUFDLFNBQVMsQ0FBcUI7SUFDdEMsT0FBTyxDQUFDLE1BQU0sQ0FBUztJQUN2QixPQUFPLENBQUMsdUJBQXVCLENBQWdCO0lBRS9DLFlBQVksTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUd4RDtJQUVELE9BQU8sU0FJTjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0lBb0IxQjs7O09BR0c7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0lBa0cxQjs7Ozs7OztPQU9HO0lBQ0csaUJBQWlCLENBQ3JCLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLE9BQU8sR0FBRTtRQUNQLGFBQWEsQ0FBQyxFQUFFLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakMsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3ZCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNuQixZQUFZLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDbEIscUJBK0RQO0lBRUQsNEJBQTRCLFNBRTNCO0lBRUQsa0NBQWtDLFdBRWpDO0lBRUQ7Ozs7O09BS0c7SUFDRyxVQUFVLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkE4Q3BEO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsZ0JBQWdCO0lBcUN4Qjs7T0FFRztJQUNHLE9BQU8sa0JBZ0NaO0lBRUQ7Ozs7T0FJRztJQUNHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxHQUFFLE1BQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBa0J2RjtJQUVELE9BQU8sQ0FBQyxZQUFZO0lBOEJwQjs7Ozs7Ozs7O09BU0c7SUFDRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBdUV6RjtJQUVELE9BQU8sQ0FBQyxpQkFBaUI7SUFrQ3pCLE9BQU8sQ0FBQyxrQkFBa0I7Q0FpQzNCO0FBRUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxDQUFDO0FBQ2hELFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"worker_client_manager.d.ts","sourceRoot":"","sources":["../../src/testbench/worker_client_manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAKnE,OAAO,KAAK,EAGV,aAAa,EACb,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAQ1C,QAAA,MAAM,eAAe,EAAE,WAMtB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,cAAM,mBAAmB;IAChB,SAAS,EAAE,YAAY,EAAE,CAAM;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,KAAK,EAAE,MAAM,EAAE,CAAM;IACrB,OAAO,EAAE,MAAM,EAAE,CAAM;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,YAAY,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAGxD;IAED,OAAO,SAKN;IAED;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAgG1B;;;;;;;OAOG;IACG,iBAAiB,CACrB,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE;QACP,aAAa,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KAClB,qBA+DP;IAED,4BAA4B,SAE3B;IAED,kCAAkC,WAEjC;IAED;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBA8CpD;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;OAEG;IACG,OAAO,kBAgCZ;IAED;;;;;;;;;OASG;IACG,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAsEzF;IAED,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,kBAAkB;CAiC3B;AAED,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"worker_client_manager.d.ts","sourceRoot":"","sources":["../../src/testbench/worker_client_manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAKnE,OAAO,KAAK,EAGV,aAAa,EACb,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAQ1C,QAAA,MAAM,eAAe,EAAE,WAMtB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,cAAM,mBAAmB;IAChB,SAAS,EAAE,YAAY,EAAE,CAAM;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,KAAK,EAAE,MAAM,EAAE,CAAM;IACrB,OAAO,EAAE,MAAM,EAAE,CAAM;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,YAAY,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAGxD;IAED,OAAO,SAIN;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkG1B;;;;;;;OAOG;IACG,iBAAiB,CACrB,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE;QACP,aAAa,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KAClB,qBA+DP;IAED,4BAA4B,SAE3B;IAED,kCAAkC,WAEjC;IAED;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBA8CpD;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;OAEG;IACG,OAAO,kBAgCZ;IAED;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBvF;IAED,OAAO,CAAC,YAAY;IA8BpB;;;;;;;;;OASG;IACG,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuEzF;IAED,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,kBAAkB;CAiC3B;AAED,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC"}