@aztec/p2p 0.0.1-commit.3469e52 → 0.0.1-commit.3895657bc

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 (500) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +4 -3
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +4 -4
  4. package/dest/client/factory.d.ts +11 -11
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +46 -18
  7. package/dest/client/interface.d.ts +46 -33
  8. package/dest/client/interface.d.ts.map +1 -1
  9. package/dest/client/p2p_client.d.ts +41 -51
  10. package/dest/client/p2p_client.d.ts.map +1 -1
  11. package/dest/client/p2p_client.js +156 -224
  12. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +304 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  18. package/dest/config.d.ts +53 -16
  19. package/dest/config.d.ts.map +1 -1
  20. package/dest/config.js +87 -39
  21. package/dest/errors/tx-pool.error.d.ts +8 -0
  22. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  23. package/dest/errors/tx-pool.error.js +9 -0
  24. package/dest/index.d.ts +2 -1
  25. package/dest/index.d.ts.map +1 -1
  26. package/dest/index.js +1 -0
  27. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +104 -88
  28. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  29. package/dest/mem_pools/attestation_pool/attestation_pool.js +445 -3
  30. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  31. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  33. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  34. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  35. package/dest/mem_pools/attestation_pool/index.js +1 -2
  36. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  37. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  38. package/dest/mem_pools/attestation_pool/mocks.js +2 -2
  39. package/dest/mem_pools/index.d.ts +3 -2
  40. package/dest/mem_pools/index.d.ts.map +1 -1
  41. package/dest/mem_pools/index.js +1 -1
  42. package/dest/mem_pools/instrumentation.d.ts +4 -2
  43. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  44. package/dest/mem_pools/instrumentation.js +18 -16
  45. package/dest/mem_pools/interface.d.ts +5 -5
  46. package/dest/mem_pools/interface.d.ts.map +1 -1
  47. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +3 -3
  48. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  49. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +3 -2
  50. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +3 -2
  52. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +3 -3
  54. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  55. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +8 -1
  56. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +3 -3
  57. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +3 -3
  58. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -1
  59. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +2 -0
  60. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  61. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  63. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  64. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  66. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  67. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +93 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  80. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  81. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  90. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  93. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  94. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  96. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  97. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  99. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  100. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  102. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  103. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  105. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +213 -0
  106. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +127 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +210 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  114. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  115. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  117. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +60 -0
  118. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  119. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +164 -0
  120. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  121. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  122. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +909 -0
  123. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +3 -3
  124. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/attestation_validator/attestation_validator.js +40 -9
  126. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +5 -5
  127. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +18 -6
  129. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  130. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  131. package/dest/msg_validators/clock_tolerance.js +37 -0
  132. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -4
  133. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  135. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -4
  136. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  137. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  138. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -8
  139. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  140. package/dest/msg_validators/proposal_validator/proposal_validator.js +81 -38
  141. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  142. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  144. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  145. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  147. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  148. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  149. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  150. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  151. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  152. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  153. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  154. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  156. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  157. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  158. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  159. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  160. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  161. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  162. package/dest/msg_validators/tx_validator/factory.d.ts +118 -5
  163. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  164. package/dest/msg_validators/tx_validator/factory.js +228 -57
  165. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  166. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  167. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  168. package/dest/msg_validators/tx_validator/gas_validator.d.ts +59 -3
  169. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  170. package/dest/msg_validators/tx_validator/gas_validator.js +76 -38
  171. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  172. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  173. package/dest/msg_validators/tx_validator/index.js +2 -0
  174. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  175. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  176. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  177. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  178. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  179. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  180. package/dest/msg_validators/tx_validator/phases_validator.d.ts +4 -3
  181. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  182. package/dest/msg_validators/tx_validator/phases_validator.js +47 -26
  183. package/dest/msg_validators/tx_validator/size_validator.d.ts +3 -1
  184. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -1
  185. package/dest/msg_validators/tx_validator/size_validator.js +4 -1
  186. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  187. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  188. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  189. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  190. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  191. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  192. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  193. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  194. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  195. package/dest/services/data_store.d.ts +1 -1
  196. package/dest/services/data_store.d.ts.map +1 -1
  197. package/dest/services/data_store.js +10 -6
  198. package/dest/services/discv5/discV5_service.js +1 -1
  199. package/dest/services/dummy_service.d.ts +24 -4
  200. package/dest/services/dummy_service.d.ts.map +1 -1
  201. package/dest/services/dummy_service.js +46 -1
  202. package/dest/services/encoding.d.ts +3 -3
  203. package/dest/services/encoding.d.ts.map +1 -1
  204. package/dest/services/encoding.js +11 -10
  205. package/dest/services/gossipsub/index.d.ts +3 -0
  206. package/dest/services/gossipsub/index.d.ts.map +1 -0
  207. package/dest/services/gossipsub/index.js +2 -0
  208. package/dest/services/gossipsub/scoring.d.ts +21 -3
  209. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  210. package/dest/services/gossipsub/scoring.js +24 -7
  211. package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
  212. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  213. package/dest/services/gossipsub/topic_score_params.js +346 -0
  214. package/dest/services/index.d.ts +2 -1
  215. package/dest/services/index.d.ts.map +1 -1
  216. package/dest/services/index.js +1 -0
  217. package/dest/services/libp2p/instrumentation.d.ts +1 -1
  218. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  219. package/dest/services/libp2p/instrumentation.js +14 -3
  220. package/dest/services/libp2p/libp2p_service.d.ts +101 -43
  221. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  222. package/dest/services/libp2p/libp2p_service.js +470 -372
  223. package/dest/services/peer-manager/metrics.d.ts +4 -2
  224. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  225. package/dest/services/peer-manager/metrics.js +26 -5
  226. package/dest/services/peer-manager/peer_manager.d.ts +1 -1
  227. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  228. package/dest/services/peer-manager/peer_manager.js +2 -1
  229. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  230. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  231. package/dest/services/peer-manager/peer_scoring.js +33 -4
  232. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +48 -0
  233. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  234. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +539 -0
  235. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  236. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  237. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  238. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +46 -0
  239. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  240. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  241. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +34 -0
  242. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  243. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +130 -0
  244. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +60 -0
  245. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  246. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +173 -0
  247. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  248. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  249. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  250. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  251. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  252. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  253. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  254. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  255. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  256. package/dest/services/reqresp/interface.d.ts +14 -3
  257. package/dest/services/reqresp/interface.d.ts.map +1 -1
  258. package/dest/services/reqresp/interface.js +17 -3
  259. package/dest/services/reqresp/metrics.d.ts +6 -5
  260. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  261. package/dest/services/reqresp/metrics.js +17 -5
  262. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  263. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  264. package/dest/services/reqresp/protocols/block_txs/bitvector.js +5 -0
  265. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  266. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  267. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  268. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +29 -6
  269. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  270. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +59 -13
  271. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  272. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  273. package/dest/services/reqresp/protocols/tx.js +20 -0
  274. package/dest/services/reqresp/reqresp.d.ts +6 -1
  275. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  276. package/dest/services/reqresp/reqresp.js +71 -27
  277. package/dest/services/service.d.ts +42 -3
  278. package/dest/services/service.d.ts.map +1 -1
  279. package/dest/services/tx_collection/config.d.ts +22 -1
  280. package/dest/services/tx_collection/config.d.ts.map +1 -1
  281. package/dest/services/tx_collection/config.js +55 -1
  282. package/dest/services/tx_collection/fast_tx_collection.d.ts +7 -4
  283. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  284. package/dest/services/tx_collection/fast_tx_collection.js +71 -44
  285. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  286. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  287. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  288. package/dest/services/tx_collection/file_store_tx_source.d.ts +37 -0
  289. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  290. package/dest/services/tx_collection/file_store_tx_source.js +90 -0
  291. package/dest/services/tx_collection/index.d.ts +3 -1
  292. package/dest/services/tx_collection/index.d.ts.map +1 -1
  293. package/dest/services/tx_collection/index.js +2 -0
  294. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  295. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  296. package/dest/services/tx_collection/instrumentation.js +10 -2
  297. package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
  298. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
  299. package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
  300. package/dest/services/tx_collection/proposal_tx_collector.d.ts +49 -0
  301. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  302. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  303. package/dest/services/tx_collection/slow_tx_collection.d.ts +9 -5
  304. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  305. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  306. package/dest/services/tx_collection/tx_collection.d.ts +29 -16
  307. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  308. package/dest/services/tx_collection/tx_collection.js +79 -7
  309. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  310. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  311. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  312. package/dest/services/tx_collection/tx_source.d.ts +8 -3
  313. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  314. package/dest/services/tx_collection/tx_source.js +19 -2
  315. package/dest/services/tx_file_store/config.d.ts +16 -0
  316. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  317. package/dest/services/tx_file_store/config.js +22 -0
  318. package/dest/services/tx_file_store/index.d.ts +4 -0
  319. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  320. package/dest/services/tx_file_store/index.js +3 -0
  321. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  322. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  323. package/dest/services/tx_file_store/instrumentation.js +29 -0
  324. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  325. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  326. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  327. package/dest/services/tx_provider.d.ts +6 -6
  328. package/dest/services/tx_provider.d.ts.map +1 -1
  329. package/dest/services/tx_provider.js +9 -8
  330. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  331. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  332. package/dest/services/tx_provider_instrumentation.js +5 -5
  333. package/dest/test-helpers/index.d.ts +3 -1
  334. package/dest/test-helpers/index.d.ts.map +1 -1
  335. package/dest/test-helpers/index.js +2 -0
  336. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  337. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  338. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  339. package/dest/test-helpers/mock-pubsub.d.ts +30 -4
  340. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  341. package/dest/test-helpers/mock-pubsub.js +105 -4
  342. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  343. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  344. package/dest/test-helpers/reqresp-nodes.js +4 -3
  345. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  346. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  347. package/dest/test-helpers/test_tx_provider.js +41 -0
  348. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  349. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  350. package/dest/test-helpers/testbench-utils.js +366 -0
  351. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  352. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  353. package/dest/testbench/p2p_client_testbench_worker.js +221 -138
  354. package/dest/testbench/worker_client_manager.d.ts +53 -6
  355. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  356. package/dest/testbench/worker_client_manager.js +231 -45
  357. package/dest/util.d.ts +3 -3
  358. package/dest/util.d.ts.map +1 -1
  359. package/package.json +14 -14
  360. package/src/bootstrap/bootstrap.ts +7 -4
  361. package/src/client/factory.ts +85 -37
  362. package/src/client/interface.ts +56 -34
  363. package/src/client/p2p_client.ts +196 -273
  364. package/src/client/test/tx_proposal_collector/README.md +227 -0
  365. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +345 -0
  366. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  367. package/src/config.ts +137 -44
  368. package/src/errors/tx-pool.error.ts +12 -0
  369. package/src/index.ts +1 -0
  370. package/src/mem_pools/attestation_pool/attestation_pool.ts +497 -91
  371. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  372. package/src/mem_pools/attestation_pool/index.ts +9 -2
  373. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  374. package/src/mem_pools/index.ts +4 -1
  375. package/src/mem_pools/instrumentation.ts +19 -14
  376. package/src/mem_pools/interface.ts +4 -4
  377. package/src/mem_pools/tx_pool/README.md +1 -1
  378. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +2 -2
  379. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +2 -1
  380. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +2 -1
  381. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +10 -7
  382. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +3 -3
  383. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +4 -2
  384. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  385. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  386. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  387. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  388. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  389. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +121 -0
  390. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  391. package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
  392. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  393. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  394. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  395. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  396. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  397. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  398. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  399. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  400. package/src/mem_pools/tx_pool_v2/interfaces.ts +245 -0
  401. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +327 -0
  402. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  403. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  404. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +226 -0
  405. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1090 -0
  406. package/src/msg_validators/attestation_validator/attestation_validator.ts +25 -13
  407. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +16 -10
  408. package/src/msg_validators/clock_tolerance.ts +51 -0
  409. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +14 -4
  410. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +20 -7
  411. package/src/msg_validators/proposal_validator/proposal_validator.ts +78 -48
  412. package/src/msg_validators/tx_validator/README.md +115 -0
  413. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  414. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  415. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  416. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  417. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  418. package/src/msg_validators/tx_validator/data_validator.ts +6 -2
  419. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  420. package/src/msg_validators/tx_validator/factory.ts +372 -55
  421. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  422. package/src/msg_validators/tx_validator/gas_validator.ts +98 -29
  423. package/src/msg_validators/tx_validator/index.ts +2 -0
  424. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  425. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  426. package/src/msg_validators/tx_validator/phases_validator.ts +56 -29
  427. package/src/msg_validators/tx_validator/size_validator.ts +6 -2
  428. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  429. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  430. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  431. package/src/services/data_store.ts +10 -7
  432. package/src/services/discv5/discV5_service.ts +1 -1
  433. package/src/services/dummy_service.ts +59 -2
  434. package/src/services/encoding.ts +9 -9
  435. package/src/services/gossipsub/README.md +641 -0
  436. package/src/services/gossipsub/index.ts +2 -0
  437. package/src/services/gossipsub/scoring.ts +29 -5
  438. package/src/services/gossipsub/topic_score_params.ts +487 -0
  439. package/src/services/index.ts +1 -0
  440. package/src/services/libp2p/instrumentation.ts +15 -2
  441. package/src/services/libp2p/libp2p_service.ts +520 -402
  442. package/src/services/peer-manager/metrics.ts +28 -4
  443. package/src/services/peer-manager/peer_manager.ts +2 -1
  444. package/src/services/peer-manager/peer_scoring.ts +29 -1
  445. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  446. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +678 -0
  447. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  448. package/src/services/reqresp/batch-tx-requester/interface.ts +53 -0
  449. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +161 -0
  450. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +244 -0
  451. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  452. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  453. package/src/services/reqresp/connection-sampler/connection_sampler.ts +16 -0
  454. package/src/services/reqresp/interface.ts +31 -3
  455. package/src/services/reqresp/metrics.ts +34 -9
  456. package/src/services/reqresp/protocols/block_txs/bitvector.ts +7 -0
  457. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  458. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +74 -9
  459. package/src/services/reqresp/protocols/tx.ts +22 -0
  460. package/src/services/reqresp/reqresp.ts +82 -23
  461. package/src/services/service.ts +55 -2
  462. package/src/services/tx_collection/config.ts +83 -1
  463. package/src/services/tx_collection/fast_tx_collection.ts +93 -47
  464. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  465. package/src/services/tx_collection/file_store_tx_source.ts +117 -0
  466. package/src/services/tx_collection/index.ts +6 -0
  467. package/src/services/tx_collection/instrumentation.ts +17 -2
  468. package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
  469. package/src/services/tx_collection/proposal_tx_collector.ts +113 -0
  470. package/src/services/tx_collection/slow_tx_collection.ts +68 -35
  471. package/src/services/tx_collection/tx_collection.ts +121 -24
  472. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  473. package/src/services/tx_collection/tx_source.ts +22 -3
  474. package/src/services/tx_file_store/config.ts +37 -0
  475. package/src/services/tx_file_store/index.ts +3 -0
  476. package/src/services/tx_file_store/instrumentation.ts +36 -0
  477. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  478. package/src/services/tx_provider.ts +12 -11
  479. package/src/services/tx_provider_instrumentation.ts +11 -5
  480. package/src/test-helpers/index.ts +2 -0
  481. package/src/test-helpers/make-test-p2p-clients.ts +4 -6
  482. package/src/test-helpers/mock-pubsub.ts +146 -9
  483. package/src/test-helpers/reqresp-nodes.ts +5 -7
  484. package/src/test-helpers/test_tx_provider.ts +64 -0
  485. package/src/test-helpers/testbench-utils.ts +430 -0
  486. package/src/testbench/p2p_client_testbench_worker.ts +335 -132
  487. package/src/testbench/worker_client_manager.ts +312 -47
  488. package/src/util.ts +8 -2
  489. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  490. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  491. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  492. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  493. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  494. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  495. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  496. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  497. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -157
  498. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  499. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  500. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -191
@@ -1,119 +1,38 @@
1
1
  /**
2
2
  * A testbench worker that creates a p2p client and listens for commands from the parent.
3
3
  *
4
- * Used when running testbench commands
4
+ * Used when running testbench commands.
5
5
  */ import { MockL2BlockSource } from '@aztec/archiver/test';
6
- import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
6
+ import { BlockNumber } from '@aztec/foundation/branded-types';
7
7
  import { SecretValue } from '@aztec/foundation/config';
8
+ import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
9
+ import { Fr } from '@aztec/foundation/curves/bn254';
8
10
  import { createLogger } from '@aztec/foundation/log';
9
11
  import { sleep } from '@aztec/foundation/sleep';
12
+ import { DateProvider, Timer } from '@aztec/foundation/timer';
10
13
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
11
- import { P2PClientType, P2PMessage } from '@aztec/stdlib/p2p';
12
- import { Tx, TxStatus } from '@aztec/stdlib/tx';
14
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
15
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
16
+ import { P2PMessage } from '@aztec/stdlib/p2p';
17
+ import { ChonkProof } from '@aztec/stdlib/proofs';
18
+ import { makeAztecAddress, makeBlockHeader, makeBlockProposal, mockTx } from '@aztec/stdlib/testing';
19
+ import { Tx } from '@aztec/stdlib/tx';
13
20
  import { getTelemetryClient } from '@aztec/telemetry-client';
14
21
  import { TopicValidatorResult } from '@libp2p/interface';
15
- import EventEmitter from 'events';
22
+ import { peerIdFromString } from '@libp2p/peer-id';
16
23
  import { createP2PClient } from '../index.js';
17
- import { LibP2PService } from '../services/libp2p/libp2p_service.js';
18
- import { AlwaysTrueCircuitVerifier } from '../test-helpers/reqresp-nodes.js';
19
- // Simple mock implementation
20
- function mockTxPool() {
21
- // Mock all methods
22
- const pool = {
23
- isEmpty: ()=>Promise.resolve(false),
24
- addTxs: ()=>Promise.resolve(1),
25
- getTxByHash: ()=>Promise.resolve(undefined),
26
- getArchivedTxByHash: ()=>Promise.resolve(undefined),
27
- markAsMined: ()=>Promise.resolve(),
28
- markMinedAsPending: ()=>Promise.resolve(),
29
- deleteTxs: ()=>Promise.resolve(),
30
- getAllTxs: ()=>Promise.resolve([]),
31
- getAllTxHashes: ()=>Promise.resolve([]),
32
- getPendingTxHashes: ()=>Promise.resolve([]),
33
- getPendingTxCount: ()=>Promise.resolve(0),
34
- getMinedTxHashes: ()=>Promise.resolve([]),
35
- getTxStatus: ()=>Promise.resolve(TxStatus.PENDING),
36
- getTxsByHash: ()=>Promise.resolve([]),
37
- hasTxs: ()=>Promise.resolve([]),
38
- hasTx: ()=>Promise.resolve(false),
39
- updateConfig: ()=>{},
40
- markTxsAsNonEvictable: ()=>Promise.resolve(),
41
- clearNonEvictableTxs: ()=>Promise.resolve(),
42
- cleanupDeletedMinedTxs: ()=>Promise.resolve(0)
43
- };
44
- return Object.assign(new EventEmitter(), pool);
45
- }
46
- function mockAttestationPool() {
47
- return {
48
- isEmpty: ()=>Promise.resolve(false),
49
- addBlockProposal: ()=>Promise.resolve(),
50
- getBlockProposal: ()=>Promise.resolve(undefined),
51
- hasBlockProposal: ()=>Promise.resolve(false),
52
- canAddProposal: ()=>Promise.resolve(true),
53
- // Checkpoint attestation methods
54
- addCheckpointProposal: ()=>Promise.resolve(),
55
- getCheckpointProposal: ()=>Promise.resolve(undefined),
56
- hasCheckpointProposal: ()=>Promise.resolve(false),
57
- addCheckpointAttestations: ()=>Promise.resolve(),
58
- getCheckpointAttestationsForSlot: ()=>Promise.resolve([]),
59
- getCheckpointAttestationsForSlotAndProposal: ()=>Promise.resolve([]),
60
- deleteCheckpointAttestationsOlderThan: ()=>Promise.resolve(),
61
- hasReachedCheckpointProposalCap: ()=>Promise.resolve(false),
62
- hasReachedCheckpointAttestationCap: ()=>Promise.resolve(false),
63
- canAddCheckpointProposal: ()=>Promise.resolve(true),
64
- canAddCheckpointAttestation: ()=>Promise.resolve(true),
65
- hasCheckpointAttestation: ()=>Promise.resolve(false)
66
- };
67
- }
68
- function mockEpochCache() {
69
- return {
70
- getCommittee: ()=>Promise.resolve({
71
- committee: [],
72
- seed: 1n,
73
- epoch: EpochNumber.ZERO,
74
- isEscapeHatchOpen: false
75
- }),
76
- getProposerIndexEncoding: ()=>'0x',
77
- getEpochAndSlotNow: ()=>({
78
- epoch: EpochNumber.ZERO,
79
- slot: SlotNumber.ZERO,
80
- ts: 0n
81
- }),
82
- computeProposerIndex: ()=>0n,
83
- getCurrentAndNextSlot: ()=>({
84
- currentSlot: SlotNumber.ZERO,
85
- nextSlot: SlotNumber.ZERO
86
- }),
87
- getProposerAttesterAddressInSlot: ()=>Promise.resolve(undefined),
88
- getEpochAndSlotInNextL1Slot: ()=>({
89
- epoch: EpochNumber.ZERO,
90
- slot: SlotNumber.ZERO,
91
- ts: 0n,
92
- now: 0n
93
- }),
94
- isInCommittee: ()=>Promise.resolve(false),
95
- getRegisteredValidators: ()=>Promise.resolve([]),
96
- filterInCommittee: ()=>Promise.resolve([])
97
- };
98
- }
99
- function mockWorldStateSynchronizer() {
100
- return {
101
- status: ()=>Promise.resolve({
102
- syncSummary: {
103
- latestBlockNumber: 0,
104
- latestBlockHash: '',
105
- finalizedBlockNumber: 0,
106
- treesAreSynched: false,
107
- oldestHistoricBlockNumber: 0
108
- }
109
- })
110
- };
111
- }
24
+ import { BatchTxRequesterCollector, LibP2PService, SendBatchRequestCollector } from '../services/index.js';
25
+ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.js';
26
+ import { MissingTxsTracker } from '../services/tx_collection/missing_txs_tracker.js';
27
+ import { AlwaysTrueCircuitVerifier } from '../test-helpers/index.js';
28
+ import { BENCHMARK_CONSTANTS, InMemoryAttestationPool, InMemoryTxPool, UNLIMITED_RATE_LIMIT_QUOTA, createMockEpochCache, createMockWorldStateSynchronizer, filterTxsByDistribution } from '../test-helpers/index.js';
29
+ export { COLLECTOR_DISPLAY_NAMES } from '../test-helpers/testbench-utils.js';
30
+ const txCache = new Map();
112
31
  class TestLibP2PService extends LibP2PService {
113
32
  disableTxValidation;
114
33
  gossipMessageCount = 0;
115
- constructor(clientType, config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger = createLogger('p2p:test:libp2p_service'), disableTxValidation = true){
116
- super(clientType, config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger);
34
+ constructor(config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger = createLogger('p2p:test:libp2p_service'), disableTxValidation = true){
35
+ super(config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger);
117
36
  this.disableTxValidation = disableTxValidation;
118
37
  }
119
38
  getGossipMessageCount() {
@@ -130,7 +49,7 @@ class TestLibP2PService extends LibP2PService {
130
49
  const txHash = tx.getTxHash();
131
50
  const txHashString = txHash.toString();
132
51
  this.logger.verbose(`Received tx ${txHashString} from external peer ${source.toString()}.`);
133
- await this.mempools.txPool.addTxs([
52
+ await this.mempools.txPool.addPendingTxs([
134
53
  tx
135
54
  ]);
136
55
  } else {
@@ -146,68 +65,232 @@ class TestLibP2PService extends LibP2PService {
146
65
  await super.handleNewGossipMessage(msg, msgId, source);
147
66
  }
148
67
  }
68
+ async function generateDeterministicTxs(txCount, seed, config) {
69
+ const cached = txCache.get(seed) ?? [];
70
+ if (cached.length >= txCount) {
71
+ return cached.slice(0, txCount);
72
+ }
73
+ const expirationTimestampBase = BigInt(seed);
74
+ for(let i = cached.length; i < txCount; i++){
75
+ const txSeed = seed * 10000 + i;
76
+ const tx = await mockTx(txSeed, {
77
+ chainId: new Fr(config.l1ChainId),
78
+ version: new Fr(config.rollupVersion),
79
+ vkTreeRoot: getVKTreeRoot(),
80
+ protocolContractsHash,
81
+ feePayer: makeAztecAddress(txSeed + 1),
82
+ chonkProof: ChonkProof.empty(),
83
+ numberOfNonRevertiblePublicCallRequests: 0,
84
+ numberOfRevertiblePublicCallRequests: 0,
85
+ numberOfRevertibleNullifiers: 0,
86
+ hasPublicTeardownCallRequest: false,
87
+ publicCalldataSize: 0
88
+ });
89
+ tx.data.expirationTimestamp = expirationTimestampBase + BigInt(i);
90
+ await tx.recomputeHash();
91
+ cached.push(tx);
92
+ }
93
+ txCache.set(seed, cached);
94
+ return cached.slice(0, txCount);
95
+ }
96
+ async function createBlockProposal(blockNumber, txHashes, seed) {
97
+ const archiveRoot = new Fr(BigInt(seed) * 1000000n + BigInt(blockNumber));
98
+ return await makeBlockProposal({
99
+ signer: Secp256k1Signer.random(),
100
+ blockHeader: makeBlockHeader(1, {
101
+ blockNumber: BlockNumber(blockNumber)
102
+ }),
103
+ archiveRoot,
104
+ txHashes
105
+ });
106
+ }
107
+ function installUnlimitedRateLimits(client) {
108
+ const reqResp = client.p2pService.reqresp;
109
+ const rateLimiter = reqResp.rateLimiter;
110
+ rateLimiter.getRateLimits = ()=>UNLIMITED_RATE_LIMIT_QUOTA;
111
+ rateLimiter.allow = ()=>RateLimitStatus.Allowed;
112
+ }
113
+ async function runAggregatorBenchmark(client, blockProposal, collectorType, timeoutMs, pinnedPeerId, pinnedPeerIndex, logger, expectedPeerCount) {
114
+ let timer = new Timer();
115
+ try {
116
+ installUnlimitedRateLimits(client);
117
+ const txHashes = blockProposal.txHashes;
118
+ logger.info(`[BENCH] Using block proposal with archive ${blockProposal.archive.toString().slice(0, 10)}...`);
119
+ const p2pService = client.p2pService;
120
+ const batchTxRequesterService = p2pService.getBatchTxRequesterService();
121
+ const minPeersRequired = Math.max(1, expectedPeerCount - 1);
122
+ const maxWaitMs = BENCHMARK_CONSTANTS.MAX_PEER_WAIT_MS;
123
+ const waitInterval = BENCHMARK_CONSTANTS.PEER_CHECK_INTERVAL_MS;
124
+ let waited = 0;
125
+ while(waited < maxWaitMs){
126
+ const connectedPeers = batchTxRequesterService.connectionSampler.getPeerListSortedByConnectionCountAsc();
127
+ if (connectedPeers.length >= minPeersRequired) {
128
+ logger.info(`[BENCH] Aggregator has ${connectedPeers.length} connected peers, starting benchmark`);
129
+ break;
130
+ }
131
+ logger.debug(`[BENCH] Waiting for peers: ${connectedPeers.length}/${minPeersRequired} (waited ${waited}ms)`);
132
+ await sleep(waitInterval);
133
+ waited += waitInterval;
134
+ }
135
+ const connectedPeers = batchTxRequesterService.connectionSampler.getPeerListSortedByConnectionCountAsc();
136
+ logger.info(`[BENCH] Aggregator has ${connectedPeers.length} connected peers`);
137
+ logger.info(`[BENCH] Requesting ${txHashes.length} tx hashes: ${txHashes.slice(0, 3).map((h)=>h.toString()).join(', ')}...`);
138
+ let pinnedPeer;
139
+ if (pinnedPeerId) {
140
+ pinnedPeer = peerIdFromString(pinnedPeerId);
141
+ } else if (pinnedPeerIndex !== undefined) {
142
+ if (pinnedPeerIndex > 0 && pinnedPeerIndex <= connectedPeers.length) {
143
+ pinnedPeer = connectedPeers[pinnedPeerIndex - 1];
144
+ }
145
+ }
146
+ const noopTxValidator = {
147
+ validateRequestedTx: (_tx)=>Promise.resolve({
148
+ result: 'valid'
149
+ }),
150
+ validateRequestedTxs: (txs)=>Promise.resolve(txs.map(()=>({
151
+ result: 'valid'
152
+ })))
153
+ };
154
+ timer = new Timer();
155
+ if (collectorType === 'batch-requester') {
156
+ const collector = new BatchTxRequesterCollector(batchTxRequesterService, logger, new DateProvider(), noopTxValidator);
157
+ const fetchedTxs = await collector.collectTxs(MissingTxsTracker.fromArray(txHashes), blockProposal, pinnedPeer, timeoutMs);
158
+ const durationMs = timer.ms();
159
+ return {
160
+ type: 'BENCH_RESULT',
161
+ durationMs,
162
+ fetchedCount: fetchedTxs.length,
163
+ success: fetchedTxs.length === txHashes.length
164
+ };
165
+ }
166
+ const collector = new SendBatchRequestCollector(batchTxRequesterService, BENCHMARK_CONSTANTS.FIXED_MAX_PEERS, BENCHMARK_CONSTANTS.FIXED_MAX_RETRY_ATTEMPTS);
167
+ const fetchedTxs = await collector.collectTxs(MissingTxsTracker.fromArray(txHashes), blockProposal, pinnedPeer, timeoutMs);
168
+ const durationMs = timer.ms();
169
+ return {
170
+ type: 'BENCH_RESULT',
171
+ durationMs,
172
+ fetchedCount: fetchedTxs.length,
173
+ success: fetchedTxs.length === txHashes.length
174
+ };
175
+ } catch (err) {
176
+ return {
177
+ type: 'BENCH_RESULT',
178
+ durationMs: timer.ms(),
179
+ fetchedCount: 0,
180
+ success: false,
181
+ error: err?.message ?? String(err)
182
+ };
183
+ }
184
+ }
185
+ let workerClient = null;
186
+ let workerTxPool = null;
187
+ let workerAttestationPool = null;
188
+ let workerConfig = null;
189
+ let workerLogger = null;
190
+ let kvStore = null;
149
191
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
150
192
  process.on('message', async (msg)=>{
151
- // Note: peerIdPrivateKey comes as a raw string (not SecretValue) because
152
- // SecretValue's private fields can't be serialized via IPC
153
193
  const { type, config: rawConfig, clientIndex } = msg;
154
194
  try {
155
195
  if (type === 'START') {
156
- // Re-wrap the peerIdPrivateKey with SecretValue
157
196
  const config = {
158
197
  ...rawConfig,
159
- peerIdPrivateKey: rawConfig.peerIdPrivateKey ? new SecretValue(rawConfig.peerIdPrivateKey) : undefined
198
+ peerIdPrivateKey: rawConfig.peerIdPrivateKey ? new SecretValue(rawConfig.peerIdPrivateKey) : undefined,
199
+ priceBumpPercentage: 10n
160
200
  };
161
- const txPool = mockTxPool();
162
- const attestationPool = mockAttestationPool();
163
- const epochCache = mockEpochCache();
164
- const worldState = mockWorldStateSynchronizer();
201
+ workerConfig = config;
202
+ workerTxPool = new InMemoryTxPool();
203
+ workerAttestationPool = new InMemoryAttestationPool();
204
+ const epochCache = createMockEpochCache();
205
+ const worldState = createMockWorldStateSynchronizer();
165
206
  const l2BlockSource = new MockL2BlockSource();
166
207
  const proofVerifier = new AlwaysTrueCircuitVerifier();
167
- const kvStore = await openTmpStore(`test-${clientIndex}`);
168
- const logger = createLogger(`p2p:${clientIndex}`);
208
+ kvStore = await openTmpStore(`test-${clientIndex}`, true, BENCHMARK_CONSTANTS.KV_STORE_MAP_SIZE_KB);
209
+ workerLogger = createLogger(`p2p:${clientIndex}`);
210
+ workerTxPool.setLogger(workerLogger);
169
211
  const telemetry = getTelemetryClient();
170
212
  const deps = {
171
- txPool,
172
- attestationPool,
213
+ txPool: workerTxPool,
214
+ attestationPool: workerAttestationPool,
173
215
  store: kvStore,
174
- logger
216
+ logger: workerLogger
175
217
  };
176
- const client = await createP2PClient(P2PClientType.Full, config, l2BlockSource, proofVerifier, worldState, epochCache, 'test-p2p-bench-worker', undefined, telemetry, deps);
177
- // Create test service with validation disabled
178
- // Note: Parameter order must match LibP2PService constructor
179
- 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, logger, true);
180
- // Replace the existing p2pService with our test version
218
+ const client = await createP2PClient(config, l2BlockSource, proofVerifier, worldState, epochCache, 'test-p2p-bench-worker', undefined, telemetry, deps);
219
+ 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);
181
220
  client.p2pService = testService;
182
221
  await client.start();
183
- // Wait until the client is ready
184
222
  for(let i = 0; i < 100; i++){
185
223
  const isReady = client.isReady();
186
- logger.debug(`Client ${clientIndex} isReady: ${isReady}`);
224
+ workerLogger.debug(`Client ${clientIndex} isReady: ${isReady}`);
187
225
  if (isReady) {
188
226
  break;
189
227
  }
190
228
  await sleep(1000);
191
229
  }
192
- // Listen for commands from parent
193
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
194
- process.on('message', async (cmd)=>{
195
- switch(cmd.type){
196
- case 'STOP':
197
- await client.stop();
198
- process.exit(0);
199
- break;
200
- case 'SEND_TX':
201
- await client.sendTx(Tx.fromBuffer(Buffer.from(cmd.tx)));
230
+ workerClient = client;
231
+ const peerId = client.p2pService.node.peerId.toString();
232
+ process.send({
233
+ type: 'READY',
234
+ peerId
235
+ });
236
+ return;
237
+ }
238
+ const cmd = msg;
239
+ switch(cmd.type){
240
+ case 'STOP':
241
+ if (workerClient) {
242
+ await workerClient.stop();
243
+ }
244
+ if (kvStore?.close) {
245
+ await kvStore.close();
246
+ }
247
+ process.exit(0);
248
+ break;
249
+ case 'SEND_TX':
250
+ if (workerClient) {
251
+ await workerClient.sendTx(Tx.fromBuffer(Buffer.from(cmd.tx)));
252
+ process.send({
253
+ type: 'TX_SENT'
254
+ });
255
+ }
256
+ break;
257
+ case 'BENCH_REQRESP':
258
+ {
259
+ const benchCmd = cmd;
260
+ if (!workerClient || !workerTxPool || !workerAttestationPool || !workerConfig || !workerLogger) {
202
261
  process.send({
203
- type: 'TX_SENT'
262
+ type: 'BENCH_RESULT',
263
+ durationMs: 0,
264
+ fetchedCount: 0,
265
+ success: false,
266
+ error: 'Worker not initialized'
204
267
  });
205
268
  break;
269
+ }
270
+ // Reset state before each benchmark run to avoid cross-run contamination
271
+ workerTxPool.resetState();
272
+ workerAttestationPool.resetState();
273
+ installUnlimitedRateLimits(workerClient);
274
+ const allTxs = await generateDeterministicTxs(benchCmd.txCount, benchCmd.seed, workerConfig);
275
+ const txHashes = allTxs.map((tx)=>tx.getTxHash());
276
+ const blockProposal = await createBlockProposal(benchCmd.blockNumber, txHashes, benchCmd.seed);
277
+ await workerAttestationPool.tryAddBlockProposal(blockProposal);
278
+ workerLogger.debug(`[BENCH] Added block proposal with archive ${blockProposal.archive.toString().slice(0, 10)}...`);
279
+ if (benchCmd.isAggregator) {
280
+ workerTxPool.clearTxs();
281
+ workerLogger.info(`[BENCH] Aggregator starting benchmark: txCount=${benchCmd.txCount}, collector=${benchCmd.collectorType}, distribution=${benchCmd.distribution}`);
282
+ const result = await runAggregatorBenchmark(workerClient, blockProposal, benchCmd.collectorType, benchCmd.timeoutMs, benchCmd.pinnedPeerId, benchCmd.pinnedPeerIndex, workerLogger, benchCmd.peerCount);
283
+ process.send(result);
284
+ } else {
285
+ const myTxs = filterTxsByDistribution(allTxs, benchCmd.peerIndex, benchCmd.peerCount, benchCmd.distribution, benchCmd.pinnedPeerIndex);
286
+ workerTxPool.setTxs(myTxs);
287
+ workerLogger.info(`[BENCH] Peer ${benchCmd.peerIndex} populated tx pool with ${myTxs.length}/${benchCmd.txCount} txs (${benchCmd.distribution})`);
288
+ process.send({
289
+ type: 'BENCH_READY'
290
+ });
291
+ }
292
+ break;
206
293
  }
207
- });
208
- process.send({
209
- type: 'READY'
210
- });
211
294
  }
212
295
  } catch (err) {
213
296
  process.send({
@@ -2,33 +2,65 @@ import type { Logger } from '@aztec/foundation/log';
2
2
  import type { ChainConfig } from '@aztec/stdlib/config';
3
3
  import { type ChildProcess } from 'child_process';
4
4
  import { type P2PConfig } from '../config.js';
5
+ import type { CollectorType, DistributionPattern } from './p2p_client_testbench_worker.js';
5
6
  declare const testChainConfig: ChainConfig;
7
+ export interface ReqRespBenchmarkConfig {
8
+ txCount: number;
9
+ distribution: DistributionPattern;
10
+ collectorType: CollectorType;
11
+ timeoutMs: number;
12
+ pinnedPeerIndex?: number;
13
+ blockNumber?: number;
14
+ seed?: number;
15
+ }
16
+ export interface ReqRespBenchmarkResult {
17
+ txCount: number;
18
+ distribution: DistributionPattern;
19
+ collector: CollectorType;
20
+ durationMs: number;
21
+ fetchedCount: number;
22
+ success: boolean;
23
+ error?: string;
24
+ }
6
25
  declare class WorkerClientManager {
7
26
  processes: ChildProcess[];
8
27
  peerIdPrivateKeys: string[];
9
28
  peerEnrs: string[];
10
29
  ports: number[];
30
+ peerIds: string[];
11
31
  private p2pConfig;
12
32
  private logger;
13
33
  private messageReceivedByClient;
14
34
  constructor(logger: Logger, p2pConfig: Partial<P2PConfig>);
15
35
  destroy(): void;
16
36
  /**
17
- * Creates a client configuration object
37
+ * Creates a client configuration object for IPC.
38
+ * Note: We send the raw peerIdPrivateKey string instead of SecretValue
39
+ * because SecretValue.toJSON() returns '[Redacted]', losing the value.
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).
18
43
  */
19
44
  private createClientConfig;
20
45
  /**
21
- * Spawns a worker process and returns a promise that resolves when the worker is ready
46
+ * Spawns a worker process and returns a promise that resolves when the worker is ready.
47
+ * Config uses raw string for peerIdPrivateKey (not SecretValue) for IPC serialization.
22
48
  */
23
49
  private spawnWorkerProcess;
24
50
  /**
25
- * Creates a number of worker clients in separate processes
26
- * All are configured to connect to each other and overrided with the test specific config
51
+ * Creates a number of worker clients in separate processes.
52
+ * All are configured to connect to each other and overridden with the test-specific config.
27
53
  *
28
54
  * @param numberOfClients - The number of clients to create
55
+ * @param options - Optional overrides for seeding/bootstrapping strategy
29
56
  * @returns The ENRs of the created clients
30
57
  */
31
- makeWorkerClients(numberOfClients: number): Promise<string[]>;
58
+ makeWorkerClients(numberOfClients: number, options?: {
59
+ bootstrapMode?: 'subset' | 'all';
60
+ seedPeerLimit?: number;
61
+ batchSize?: number;
62
+ batchDelayMs?: number;
63
+ }): Promise<string[]>;
32
64
  purgeMessageReceivedByClient(): void;
33
65
  numberOfClientsThatReceivedMessage(): number;
34
66
  /**
@@ -46,6 +78,21 @@ declare class WorkerClientManager {
46
78
  * Cleans up all worker processes with timeout and force kill if needed
47
79
  */
48
80
  cleanup(): Promise<void>;
81
+ /**
82
+ * Run a req/resp benchmark across all worker clients.
83
+ *
84
+ * This sends a BENCH_REQRESP command to all workers:
85
+ * - Aggregator (client 0) runs the collector and returns timing results
86
+ * - Responders (clients 1..N) populate their tx pools based on distribution
87
+ *
88
+ * All workers generate the same txs deterministically from a shared seed,
89
+ * then filter based on their peerIndex and distribution pattern.
90
+ */
91
+ runReqRespBenchmark(config: ReqRespBenchmarkConfig): Promise<ReqRespBenchmarkResult>;
92
+ private waitForBenchReady;
93
+ private waitForBenchResult;
49
94
  }
50
95
  export { WorkerClientManager, testChainConfig };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX2NsaWVudF9tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3dvcmtlcl9jbGllbnRfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFJeEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQVFuRSxRQUFBLE1BQU0sZUFBZSxFQUFFLFdBTXRCLENBQUM7QUFFRixjQUFNLG1CQUFtQjtJQUNoQixTQUFTLEVBQUUsWUFBWSxFQUFFLENBQU07SUFDL0IsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDakMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFNO0lBQ3hCLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBTTtJQUM1QixPQUFPLENBQUMsU0FBUyxDQUFxQjtJQUN0QyxPQUFPLENBQUMsTUFBTSxDQUFTO0lBQ3ZCLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBZ0I7SUFFL0MsWUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBR3hEO0lBRUQsT0FBTyxTQUtOO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0lBaUIxQjs7T0FFRztJQUNILE9BQU8sQ0FBQyxrQkFBa0I7SUF5RDFCOzs7Ozs7T0FNRztJQUNHLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxNQUFNLHFCQXlDOUM7SUFFRCw0QkFBNEIsU0FFM0I7SUFFRCxrQ0FBa0MsV0FFakM7SUFFRDs7Ozs7T0FLRztJQUNHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQTRDcEQ7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxnQkFBZ0I7SUFzQ3hCOztPQUVHO0lBQ0csT0FBTyxrQkFnQ1o7Q0FDRjtBQUVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsQ0FBQyJ9
96
+ export type { DistributionPattern, CollectorType } from './p2p_client_testbench_worker.js';
97
+ export { COLLECTOR_DISPLAY_NAMES } from './p2p_client_testbench_worker.js';
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX2NsaWVudF9tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3dvcmtlcl9jbGllbnRfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFLeEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUtuRSxPQUFPLEtBQUssRUFHVixhQUFhLEVBQ2IsbUJBQW1CLEVBQ3BCLE1BQU0sa0NBQWtDLENBQUM7QUFRMUMsUUFBQSxNQUFNLGVBQWUsRUFBRSxXQU10QixDQUFDO0FBRUYsTUFBTSxXQUFXLHNCQUFzQjtJQUNyQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztJQUNsQyxhQUFhLEVBQUUsYUFBYSxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZjtBQUVELE1BQU0sV0FBVyxzQkFBc0I7SUFDckMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixZQUFZLEVBQUUsbUJBQW1CLENBQUM7SUFDbEMsU0FBUyxFQUFFLGFBQWEsQ0FBQztJQUN6QixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsT0FBTyxFQUFFLE9BQU8sQ0FBQztJQUNqQixLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDaEI7QUFFRCxjQUFNLG1CQUFtQjtJQUNoQixTQUFTLEVBQUUsWUFBWSxFQUFFLENBQU07SUFDL0IsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDakMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFNO0lBQ3hCLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBTTtJQUNyQixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDOUIsT0FBTyxDQUFDLFNBQVMsQ0FBcUI7SUFDdEMsT0FBTyxDQUFDLE1BQU0sQ0FBUztJQUN2QixPQUFPLENBQUMsdUJBQXVCLENBQWdCO0lBRS9DLFlBQVksTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUd4RDtJQUVELE9BQU8sU0FLTjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0lBb0IxQjs7O09BR0c7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0lBa0cxQjs7Ozs7OztPQU9HO0lBQ0csaUJBQWlCLENBQ3JCLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLE9BQU8sR0FBRTtRQUNQLGFBQWEsQ0FBQyxFQUFFLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakMsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3ZCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNuQixZQUFZLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDbEIscUJBK0RQO0lBRUQsNEJBQTRCLFNBRTNCO0lBRUQsa0NBQWtDLFdBRWpDO0lBRUQ7Ozs7O09BS0c7SUFDRyxVQUFVLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkE4Q3BEO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsZ0JBQWdCO0lBcUN4Qjs7T0FFRztJQUNHLE9BQU8sa0JBZ0NaO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0csbUJBQW1CLENBQUMsTUFBTSxFQUFFLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQXVFekY7SUFFRCxPQUFPLENBQUMsaUJBQWlCO0lBa0N6QixPQUFPLENBQUMsa0JBQWtCO0NBaUMzQjtBQUVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsQ0FBQztBQUNoRCxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDM0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"worker_client_manager.d.ts","sourceRoot":"","sources":["../../src/testbench/worker_client_manager.ts"],"names":[],"mappings":"AAEA,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;AAIxD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAQnE,QAAA,MAAM,eAAe,EAAE,WAMtB,CAAC;AAEF,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;IAC5B,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;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyD1B;;;;;;OAMG;IACG,iBAAiB,CAAC,eAAe,EAAE,MAAM,qBAyC9C;IAED,4BAA4B,SAE3B;IAED,kCAAkC,WAEjC;IAED;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBA4CpD;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsCxB;;OAEG;IACG,OAAO,kBAgCZ;CACF;AAED,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,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,SAKN;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;;;;;;;;;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"}