@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,10 +1,10 @@
1
- import { SecretValue } from '@aztec/foundation/config';
2
1
  import { EthAddress } from '@aztec/foundation/eth-address';
3
2
  import type { Logger } from '@aztec/foundation/log';
4
3
  import { sleep } from '@aztec/foundation/sleep';
5
4
  import type { ChainConfig } from '@aztec/stdlib/config';
6
5
 
7
6
  import { type ChildProcess, fork } from 'child_process';
7
+ import { existsSync } from 'fs';
8
8
  import path from 'path';
9
9
  import { fileURLToPath } from 'url';
10
10
 
@@ -12,9 +12,19 @@ import { type P2PConfig, getP2PDefaultConfig } from '../config.js';
12
12
  import { generatePeerIdPrivateKeys } from '../test-helpers/generate-peer-id-private-keys.js';
13
13
  import { getPorts } from '../test-helpers/get-ports.js';
14
14
  import { makeEnr, makeEnrs } from '../test-helpers/make-enrs.js';
15
+ import { BENCHMARK_CONSTANTS } from '../test-helpers/testbench-utils.js';
16
+ import type {
17
+ BenchReqRespCommand,
18
+ BenchResultMessage,
19
+ CollectorType,
20
+ DistributionPattern,
21
+ } from './p2p_client_testbench_worker.js';
15
22
 
16
23
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
17
- const workerPath = path.join(__dirname, '../../dest/testbench/p2p_client_testbench_worker.js');
24
+ const p2pRoot = path.resolve(__dirname, '../..');
25
+ const workerTsPath = path.join(__dirname, 'p2p_client_testbench_worker.ts');
26
+ const workerJsPath = path.join(p2pRoot, 'dest/testbench/p2p_client_testbench_worker.js');
27
+ const tsconfigPath = path.join(p2pRoot, 'tsconfig.json');
18
28
 
19
29
  const testChainConfig: ChainConfig = {
20
30
  l1ChainId: 31337,
@@ -24,11 +34,32 @@ const testChainConfig: ChainConfig = {
24
34
  },
25
35
  };
26
36
 
37
+ export interface ReqRespBenchmarkConfig {
38
+ txCount: number;
39
+ distribution: DistributionPattern;
40
+ collectorType: CollectorType;
41
+ timeoutMs: number;
42
+ pinnedPeerIndex?: number;
43
+ blockNumber?: number;
44
+ seed?: number;
45
+ }
46
+
47
+ export interface ReqRespBenchmarkResult {
48
+ txCount: number;
49
+ distribution: DistributionPattern;
50
+ collector: CollectorType;
51
+ durationMs: number;
52
+ fetchedCount: number;
53
+ success: boolean;
54
+ error?: string;
55
+ }
56
+
27
57
  class WorkerClientManager {
28
58
  public processes: ChildProcess[] = [];
29
59
  public peerIdPrivateKeys: string[] = [];
30
60
  public peerEnrs: string[] = [];
31
61
  public ports: number[] = [];
62
+ public peerIds: string[] = [];
32
63
  private p2pConfig: Partial<P2PConfig>;
33
64
  private logger: Logger;
34
65
  private messageReceivedByClient: number[] = [];
@@ -46,39 +77,62 @@ class WorkerClientManager {
46
77
  }
47
78
 
48
79
  /**
49
- * Creates a client configuration object
80
+ * Creates a client configuration object for IPC.
81
+ * Note: We send the raw peerIdPrivateKey string instead of SecretValue
82
+ * because SecretValue.toJSON() returns '[Redacted]', losing the value.
83
+ * The worker must re-wrap it in SecretValue.
84
+ * We also omit priceBumpPercentage since it's a bigint and can't be
85
+ * serialized over IPC (which uses JSON under the hood).
50
86
  */
51
87
  private createClientConfig(
52
88
  clientIndex: number,
53
89
  port: number,
54
90
  otherNodes: string[],
55
- ): P2PConfig & Partial<ChainConfig> {
56
- return {
91
+ ): Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & { peerIdPrivateKey: string } & Partial<ChainConfig> {
92
+ const { priceBumpPercentage: _, ...config } = {
57
93
  ...getP2PDefaultConfig(),
58
94
  p2pEnabled: true,
59
- peerIdPrivateKey: new SecretValue(this.peerIdPrivateKeys[clientIndex]),
95
+ peerIdPrivateKey: this.peerIdPrivateKeys[clientIndex],
60
96
  listenAddress: '127.0.0.1',
61
97
  p2pIp: '127.0.0.1',
62
98
  p2pPort: port,
63
99
  bootstrapNodes: [...otherNodes],
64
100
  ...this.p2pConfig,
65
101
  };
102
+ return config as Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & {
103
+ peerIdPrivateKey: string;
104
+ } & Partial<ChainConfig>;
66
105
  }
67
106
 
68
107
  /**
69
- * Spawns a worker process and returns a promise that resolves when the worker is ready
108
+ * Spawns a worker process and returns a promise that resolves when the worker is ready.
109
+ * Config uses raw string for peerIdPrivateKey (not SecretValue) for IPC serialization.
70
110
  */
71
111
  private spawnWorkerProcess(
72
- config: P2PConfig & Partial<ChainConfig>,
112
+ config: Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & {
113
+ peerIdPrivateKey: string;
114
+ } & Partial<ChainConfig>,
73
115
  clientIndex: number,
74
116
  ): [ChildProcess, Promise<void>] {
75
- const childProcess = fork(workerPath);
76
- // Extract the raw peerIdPrivateKey value since SecretValue can't be serialized via IPC
77
- const serializedConfig = {
78
- ...config,
79
- peerIdPrivateKey: config.peerIdPrivateKey?.getValue(),
117
+ const useCompiled = existsSync(workerJsPath);
118
+ const workerPath = useCompiled ? workerJsPath : workerTsPath;
119
+
120
+ const execArgv = [...process.execArgv];
121
+ if (!useCompiled && !execArgv.includes('ts-node/esm')) {
122
+ execArgv.push('--loader', 'ts-node/esm');
123
+ }
124
+
125
+ const env = {
126
+ ...process.env,
127
+ TS_NODE_PROJECT: tsconfigPath,
80
128
  };
81
- childProcess.send({ type: 'START', config: serializedConfig, clientIndex });
129
+
130
+ const childProcess = fork(workerPath, {
131
+ cwd: p2pRoot,
132
+ execArgv,
133
+ env,
134
+ });
135
+ childProcess.send({ type: 'START', config, clientIndex });
82
136
 
83
137
  // Handle unexpected child process exit
84
138
  childProcess.on('exit', (code, signal) => {
@@ -95,74 +149,131 @@ class WorkerClientManager {
95
149
 
96
150
  // Create ready signal promise
97
151
  const readySignal = new Promise<void>((resolve, reject) => {
98
- // Set a timeout to avoid hanging indefinitely
152
+ let resolved = false;
153
+
99
154
  const timeout = setTimeout(() => {
155
+ if (resolved) {
156
+ return;
157
+ }
158
+ resolved = true;
159
+ childProcess.off('message', messageHandler);
160
+ childProcess.off('exit', exitHandler);
100
161
  reject(new Error(`Timeout waiting for worker ${clientIndex} to be ready`));
101
- }, 30000); // 30 second timeout
162
+ }, BENCHMARK_CONSTANTS.WORKER_READY_TIMEOUT_MS);
102
163
 
103
- childProcess.once('message', (msg: any) => {
104
- clearTimeout(timeout);
164
+ const messageHandler = (msg: any) => {
165
+ if (resolved) {
166
+ return;
167
+ }
168
+ // Only handle READY or ERROR messages; ignore others (e.g., GOSSIP_RECEIVED)
105
169
  if (msg.type === 'READY') {
170
+ resolved = true;
171
+ clearTimeout(timeout);
172
+ childProcess.off('message', messageHandler);
173
+ childProcess.off('exit', exitHandler);
174
+ if (typeof msg.peerId === 'string') {
175
+ this.peerIds[clientIndex] = msg.peerId;
176
+ }
106
177
  resolve();
107
- }
108
- // For future use
109
- if (msg.type === 'ERROR') {
178
+ } else if (msg.type === 'ERROR') {
179
+ resolved = true;
180
+ clearTimeout(timeout);
181
+ childProcess.off('message', messageHandler);
182
+ childProcess.off('exit', exitHandler);
110
183
  reject(new Error(msg.error));
111
184
  }
112
- });
185
+ // Ignore other message types and keep waiting for READY/ERROR
186
+ };
113
187
 
114
- // Also resolve/reject if process exits before sending message
115
- childProcess.once('exit', code => {
188
+ const exitHandler = (code: number | null) => {
189
+ if (resolved) {
190
+ return;
191
+ }
192
+ resolved = true;
116
193
  clearTimeout(timeout);
194
+ childProcess.off('message', messageHandler);
117
195
  if (code === 0) {
118
196
  resolve();
119
197
  } else {
120
198
  reject(new Error(`Worker ${clientIndex} exited with code ${code} before becoming ready`));
121
199
  }
122
- });
200
+ };
201
+
202
+ childProcess.on('message', messageHandler);
203
+ childProcess.once('exit', exitHandler);
123
204
  });
124
205
 
125
206
  return [childProcess, readySignal];
126
207
  }
127
208
 
128
209
  /**
129
- * Creates a number of worker clients in separate processes
130
- * All are configured to connect to each other and overrided with the test specific config
210
+ * Creates a number of worker clients in separate processes.
211
+ * All are configured to connect to each other and overridden with the test-specific config.
131
212
  *
132
213
  * @param numberOfClients - The number of clients to create
214
+ * @param options - Optional overrides for seeding/bootstrapping strategy
133
215
  * @returns The ENRs of the created clients
134
216
  */
135
- async makeWorkerClients(numberOfClients: number) {
217
+ async makeWorkerClients(
218
+ numberOfClients: number,
219
+ options: {
220
+ bootstrapMode?: 'subset' | 'all';
221
+ seedPeerLimit?: number;
222
+ batchSize?: number;
223
+ batchDelayMs?: number;
224
+ } = {},
225
+ ) {
136
226
  try {
227
+ const bootstrapMode = options.bootstrapMode ?? (this.p2pConfig.bootstrapNodesAsFullPeers ? 'all' : 'subset');
228
+ const seedPeerLimit = options.seedPeerLimit ?? 10;
229
+ const batchSize = options.batchSize ?? (bootstrapMode === 'all' ? Math.min(5, numberOfClients) : numberOfClients);
230
+ const batchDelayMs = options.batchDelayMs ?? (bootstrapMode === 'all' ? 500 : 0);
231
+
137
232
  this.messageReceivedByClient = new Array(numberOfClients).fill(0);
138
233
  this.peerIdPrivateKeys = generatePeerIdPrivateKeys(numberOfClients);
139
234
  this.ports = await getPorts(numberOfClients);
140
235
  this.peerEnrs = await makeEnrs(this.peerIdPrivateKeys, this.ports, testChainConfig);
236
+ this.peerIds = new Array(numberOfClients);
141
237
 
142
238
  this.processes = [];
143
239
  const readySignals: Promise<void>[] = [];
144
240
 
145
- for (let i = 0; i < numberOfClients; i++) {
146
- this.logger.info(`Creating client ${i}`);
241
+ for (let batchStart = 0; batchStart < numberOfClients; batchStart += batchSize) {
242
+ const batchEnd = Math.min(batchStart + batchSize, numberOfClients);
243
+ const batchPromises: Promise<void>[] = [];
244
+
245
+ for (let i = batchStart; i < batchEnd; i++) {
246
+ this.logger.info(`Creating client ${i}`);
147
247
 
148
- // Maximum seed with 10 other peers to allow peer discovery to connect them at a smoother rate
149
- const otherNodes = this.peerEnrs.filter((_, ind) => ind < Math.min(i, 10));
248
+ const otherNodes =
249
+ bootstrapMode === 'all'
250
+ ? this.peerEnrs.filter((_, ind) => ind !== i)
251
+ : this.peerEnrs.filter((_, ind) => ind < Math.min(i, seedPeerLimit));
150
252
 
151
- const config = this.createClientConfig(i, this.ports[i], otherNodes);
152
- const [childProcess, readySignal] = this.spawnWorkerProcess(config, i);
253
+ const config = this.createClientConfig(i, this.ports[i], otherNodes);
254
+ const [childProcess, readySignal] = this.spawnWorkerProcess(config, i);
153
255
 
154
- readySignals.push(readySignal);
155
- this.processes.push(childProcess);
256
+ readySignals.push(readySignal);
257
+ batchPromises.push(readySignal);
258
+ this.processes.push(childProcess);
259
+ }
260
+
261
+ await Promise.all(batchPromises);
262
+
263
+ if (batchEnd < numberOfClients && batchDelayMs > 0) {
264
+ await sleep(batchDelayMs);
265
+ }
156
266
  }
157
267
 
158
- // Wait for peers to all connect with each other
159
- await sleep(10000);
268
+ await sleep(BENCHMARK_CONSTANTS.PEER_DISCOVERY_WAIT_MS);
160
269
 
161
- // Wait for all peers to be booted up with timeout
162
270
  await Promise.race([
163
271
  Promise.all(readySignals),
164
272
  new Promise((_, reject) =>
165
- setTimeout(() => reject(new Error('Timeout waiting for all workers to be ready')), 30000),
273
+ setTimeout(
274
+ () => reject(new Error('Timeout waiting for all workers to be ready')),
275
+ BENCHMARK_CONSTANTS.WORKER_READY_TIMEOUT_MS,
276
+ ),
166
277
  ),
167
278
  ]);
168
279
 
@@ -220,11 +331,13 @@ class WorkerClientManager {
220
331
 
221
332
  this.processes[clientIndex] = childProcess;
222
333
 
223
- // Wait for the process to be ready with a timeout
224
334
  await Promise.race([
225
335
  readySignal,
226
336
  new Promise((_, reject) =>
227
- setTimeout(() => reject(new Error(`Timeout waiting for client ${clientIndex} to be ready`)), 30000),
337
+ setTimeout(
338
+ () => reject(new Error(`Timeout waiting for client ${clientIndex} to be ready`)),
339
+ BENCHMARK_CONSTANTS.WORKER_READY_TIMEOUT_MS,
340
+ ),
228
341
  ),
229
342
  ]);
230
343
  } catch (error) {
@@ -244,15 +357,14 @@ class WorkerClientManager {
244
357
  }
245
358
 
246
359
  return new Promise<void>(resolve => {
247
- // Set a timeout for the graceful exit
248
360
  const forceKillTimeout = setTimeout(() => {
249
361
  this.logger.warn(`Process ${index} didn't exit gracefully, force killing...`);
250
362
  try {
251
- process.kill('SIGKILL'); // Force kill
363
+ process.kill('SIGKILL');
252
364
  } catch (e) {
253
365
  this.logger.error(`Error force killing process ${index}:`, e);
254
366
  }
255
- }, 5000); // 5 second timeout for graceful exit
367
+ }, BENCHMARK_CONSTANTS.GRACEFUL_SHUTDOWN_TIMEOUT_MS);
256
368
 
257
369
  // Listen for process exit
258
370
  process.once('exit', () => {
@@ -285,7 +397,6 @@ class WorkerClientManager {
285
397
  // Create array of promises for each process termination
286
398
  const terminationPromises = this.processes.map((process, index) => this.terminateProcess(process, index));
287
399
 
288
- // Wait for all processes to terminate with a timeout
289
400
  try {
290
401
  await Promise.race([
291
402
  Promise.all(terminationPromises),
@@ -302,7 +413,7 @@ class WorkerClientManager {
302
413
  }
303
414
  });
304
415
  resolve();
305
- }, 10000); // 10 second timeout for all processes
416
+ }, BENCHMARK_CONSTANTS.CLEANUP_TIMEOUT_MS);
306
417
  }),
307
418
  ]);
308
419
  } catch (error) {
@@ -310,8 +421,162 @@ class WorkerClientManager {
310
421
  }
311
422
 
312
423
  this.processes = [];
424
+ this.peerIds = [];
313
425
  this.logger.info('All worker processes cleaned up');
314
426
  }
427
+
428
+ /**
429
+ * Run a req/resp benchmark across all worker clients.
430
+ *
431
+ * This sends a BENCH_REQRESP command to all workers:
432
+ * - Aggregator (client 0) runs the collector and returns timing results
433
+ * - Responders (clients 1..N) populate their tx pools based on distribution
434
+ *
435
+ * All workers generate the same txs deterministically from a shared seed,
436
+ * then filter based on their peerIndex and distribution pattern.
437
+ */
438
+ async runReqRespBenchmark(config: ReqRespBenchmarkConfig): Promise<ReqRespBenchmarkResult> {
439
+ const peerCount = this.processes.length;
440
+ if (peerCount < 2) {
441
+ throw new Error('Need at least 2 peers to run req/resp benchmark');
442
+ }
443
+
444
+ const seed = config.seed ?? Date.now();
445
+ const blockNumber = config.blockNumber ?? 1;
446
+ const pinnedPeerId = config.pinnedPeerIndex !== undefined ? this.peerIds[config.pinnedPeerIndex] : undefined;
447
+
448
+ this.logger.info(
449
+ `Starting req/resp benchmark: txCount=${config.txCount}, distribution=${config.distribution}, collector=${config.collectorType}`,
450
+ );
451
+
452
+ const readyPromises: Promise<void>[] = [];
453
+
454
+ for (let i = 1; i < peerCount; i++) {
455
+ const cmd: BenchReqRespCommand = {
456
+ type: 'BENCH_REQRESP',
457
+ txCount: config.txCount,
458
+ peerCount,
459
+ distribution: config.distribution,
460
+ collectorType: config.collectorType,
461
+ timeoutMs: config.timeoutMs,
462
+ isAggregator: false,
463
+ peerIndex: i,
464
+ pinnedPeerIndex: config.pinnedPeerIndex,
465
+ pinnedPeerId,
466
+ blockNumber,
467
+ seed,
468
+ };
469
+
470
+ this.processes[i].send(cmd);
471
+ readyPromises.push(this.waitForBenchReady(i, 30000));
472
+ }
473
+
474
+ await Promise.all(readyPromises);
475
+ this.logger.info('All responder peers ready, starting aggregator benchmark...');
476
+
477
+ const aggregatorCmd: BenchReqRespCommand = {
478
+ type: 'BENCH_REQRESP',
479
+ txCount: config.txCount,
480
+ peerCount,
481
+ distribution: config.distribution,
482
+ collectorType: config.collectorType,
483
+ timeoutMs: config.timeoutMs,
484
+ isAggregator: true,
485
+ peerIndex: 0,
486
+ pinnedPeerIndex: config.pinnedPeerIndex,
487
+ pinnedPeerId,
488
+ blockNumber,
489
+ seed,
490
+ };
491
+
492
+ this.processes[0].send(aggregatorCmd);
493
+ const aggregatorBudgetMs = config.timeoutMs + BENCHMARK_CONSTANTS.MAX_PEER_WAIT_MS + 30000;
494
+ const result = await this.waitForBenchResult(0, aggregatorBudgetMs);
495
+
496
+ this.logger.info(
497
+ `Benchmark complete: fetched=${result.fetchedCount}/${config.txCount}, duration=${result.durationMs.toFixed(0)}ms, success=${result.success}`,
498
+ );
499
+
500
+ return {
501
+ txCount: config.txCount,
502
+ distribution: config.distribution,
503
+ collector: config.collectorType,
504
+ durationMs: result.durationMs,
505
+ fetchedCount: result.fetchedCount,
506
+ success: result.success,
507
+ error: result.error,
508
+ };
509
+ }
510
+
511
+ private waitForBenchReady(clientIndex: number, timeoutMs: number): Promise<void> {
512
+ return new Promise((resolve, reject) => {
513
+ let resolved = false;
514
+
515
+ const handler = (msg: any) => {
516
+ if (resolved) {
517
+ return;
518
+ }
519
+ if (msg.type === 'BENCH_READY') {
520
+ resolved = true;
521
+ clearTimeout(timeout);
522
+ this.processes[clientIndex].off('message', handler);
523
+ resolve();
524
+ } else if (msg.type === 'ERROR') {
525
+ resolved = true;
526
+ clearTimeout(timeout);
527
+ this.processes[clientIndex].off('message', handler);
528
+ reject(new Error(`Client ${clientIndex} error: ${msg.error}`));
529
+ }
530
+ };
531
+
532
+ const timeout = setTimeout(() => {
533
+ if (resolved) {
534
+ return;
535
+ }
536
+ resolved = true;
537
+ this.processes[clientIndex].off('message', handler);
538
+ reject(new Error(`Timeout waiting for BENCH_READY from client ${clientIndex}`));
539
+ }, timeoutMs);
540
+
541
+ this.processes[clientIndex].on('message', handler);
542
+ });
543
+ }
544
+
545
+ private waitForBenchResult(clientIndex: number, timeoutMs: number): Promise<BenchResultMessage> {
546
+ return new Promise((resolve, reject) => {
547
+ let resolved = false;
548
+
549
+ const handler = (msg: any) => {
550
+ if (resolved) {
551
+ return;
552
+ }
553
+ if (msg.type === 'BENCH_RESULT') {
554
+ resolved = true;
555
+ clearTimeout(timeout);
556
+ this.processes[clientIndex].off('message', handler);
557
+ resolve(msg as BenchResultMessage);
558
+ } else if (msg.type === 'ERROR') {
559
+ resolved = true;
560
+ clearTimeout(timeout);
561
+ this.processes[clientIndex].off('message', handler);
562
+ reject(new Error(`Client ${clientIndex} error: ${msg.error}`));
563
+ }
564
+ };
565
+
566
+ const timeout = setTimeout(() => {
567
+ if (resolved) {
568
+ return;
569
+ }
570
+ resolved = true;
571
+ this.processes[clientIndex].off('message', handler);
572
+ reject(new Error(`Timeout waiting for BENCH_RESULT from client ${clientIndex}`));
573
+ }, timeoutMs);
574
+
575
+ this.processes[clientIndex].on('message', handler);
576
+ });
577
+ }
315
578
  }
316
579
 
317
580
  export { WorkerClientManager, testChainConfig };
581
+ export type { DistributionPattern, CollectorType } from './p2p_client_testbench_worker.js';
582
+ export { COLLECTOR_DISPLAY_NAMES } from './p2p_client_testbench_worker.js';
package/src/util.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { SecretValue } from '@aztec/foundation/config';
2
2
  import type { Logger } from '@aztec/foundation/log';
3
3
  import type { AztecAsyncKVStore, AztecAsyncSingleton } from '@aztec/kv-store';
4
- import type { DataStoreConfig } from '@aztec/kv-store/config';
4
+ import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
5
5
 
6
6
  import type { GossipSub } from '@chainsafe/libp2p-gossipsub';
7
7
  import { generateKeyPair, marshalPrivateKey, unmarshalPrivateKey } from '@libp2p/crypto/keys';
@@ -23,7 +23,13 @@ export interface PubSubLibp2p extends Pick<Libp2p, 'status' | 'start' | 'stop' |
23
23
  services: {
24
24
  pubsub: Pick<
25
25
  GossipSub,
26
- 'addEventListener' | 'removeEventListener' | 'publish' | 'subscribe' | 'reportMessageValidationResult' | 'direct'
26
+ | 'addEventListener'
27
+ | 'removeEventListener'
28
+ | 'publish'
29
+ | 'subscribe'
30
+ | 'reportMessageValidationResult'
31
+ | 'direct'
32
+ | 'getMeshPeers'
27
33
  > & { score: Pick<GossipSub['score'], 'score'> };
28
34
  };
29
35
  }
@@ -1,40 +0,0 @@
1
- import { SlotNumber } from '@aztec/foundation/branded-types';
2
- import type { AztecAsyncKVStore } from '@aztec/kv-store';
3
- import { BlockProposal, CheckpointAttestation, CheckpointProposal, type CheckpointProposalCore } from '@aztec/stdlib/p2p';
4
- import { type TelemetryClient } from '@aztec/telemetry-client';
5
- import type { AttestationPool } from './attestation_pool.js';
6
- export declare const MAX_PROPOSALS_PER_SLOT = 5;
7
- export declare const ATTESTATION_CAP_BUFFER = 10;
8
- export declare class KvAttestationPool implements AttestationPool {
9
- private store;
10
- private log;
11
- private metrics;
12
- private proposals;
13
- private checkpointAttestations;
14
- private checkpointProposals;
15
- private checkpointProposalsForSlot;
16
- private checkpointAttestationsForProposal;
17
- constructor(store: AztecAsyncKVStore, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
18
- private poolStats;
19
- isEmpty(): Promise<boolean>;
20
- private getProposalKey;
21
- private getAttestationKey;
22
- addBlockProposal(blockProposal: BlockProposal): Promise<void>;
23
- getBlockProposal(id: string): Promise<BlockProposal | undefined>;
24
- hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
25
- addCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
26
- getCheckpointProposal(id: string): Promise<CheckpointProposalCore | undefined>;
27
- hasCheckpointProposal(idOrProposal: string | CheckpointProposal): Promise<boolean>;
28
- addCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
29
- getCheckpointAttestationsForSlot(slot: SlotNumber): Promise<CheckpointAttestation[]>;
30
- getCheckpointAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<CheckpointAttestation[]>;
31
- deleteCheckpointAttestationsOlderThan(oldestSlot: SlotNumber): Promise<void>;
32
- private deleteCheckpointAttestationsForSlot;
33
- hasCheckpointAttestation(attestation: CheckpointAttestation): Promise<boolean>;
34
- canAddProposal(_block: BlockProposal): Promise<boolean>;
35
- canAddCheckpointProposal(proposal: CheckpointProposal): Promise<boolean>;
36
- canAddCheckpointAttestation(attestation: CheckpointAttestation, committeeSize: number): Promise<boolean>;
37
- hasReachedCheckpointProposalCap(slot: SlotNumber): Promise<boolean>;
38
- hasReachedCheckpointAttestationCap(slot: SlotNumber, proposalId: string, committeeSize: number): Promise<boolean>;
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2t2X2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSTdELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sRUFDTCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixLQUFLLHNCQUFzQixFQUM1QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUluRixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RCxlQUFPLE1BQU0sc0JBQXNCLElBQUksQ0FBQztBQUN4QyxlQUFPLE1BQU0sc0JBQXNCLEtBQUssQ0FBQztBQUV6QyxxQkFBYSxpQkFBa0IsWUFBVyxlQUFlO0lBZXJELE9BQU8sQ0FBQyxLQUFLO0lBRWIsT0FBTyxDQUFDLEdBQUc7SUFoQmIsT0FBTyxDQUFDLE9BQU8sQ0FBNkM7SUFFNUQsT0FBTyxDQUFDLFNBQVMsQ0FHZjtJQUdGLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBZ0M7SUFDOUQsT0FBTyxDQUFDLG1CQUFtQixDQUFnQztJQUMzRCxPQUFPLENBQUMsMEJBQTBCLENBQXFDO0lBQ3ZFLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBcUM7SUFFOUUsWUFDVSxLQUFLLEVBQUUsaUJBQWlCLEVBQ2hDLFNBQVMsR0FBRSxlQUFzQyxFQUN6QyxHQUFHLHlDQUF5QyxFQVdyRDtJQUVELE9BQU8sQ0FBQyxTQUFTLENBSWY7SUFFVyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVF2QztJQUVELE9BQU8sQ0FBQyxjQUFjO0lBWXRCLE9BQU8sQ0FBQyxpQkFBaUI7SUFJWixnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FNekU7SUFFWSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBVzVFO0lBRVksZ0JBQWdCLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUdwRjtJQUVZLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBNEI5RTtJQUVZLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyxDQVcxRjtJQUVZLHFCQUFxQixDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc5RjtJQUVZLHlCQUF5QixDQUFDLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FzQzNGO0lBRVksZ0NBQWdDLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQVNoRztJQUVZLDJDQUEyQyxDQUN0RCxJQUFJLEVBQUUsVUFBVSxFQUNoQixVQUFVLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQWtCbEM7SUFFWSxxQ0FBcUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLeEY7WUFFYSxtQ0FBbUM7SUF3QnBDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBYzFGO0lBRU0sY0FBYyxDQUFDLE1BQU0sRUFBRSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc3RDtJQUVZLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBTXBGO0lBRVksMkJBQTJCLENBQ3RDLFdBQVcsRUFBRSxxQkFBcUIsRUFDbEMsYUFBYSxFQUFFLE1BQU0sR0FDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVNsQjtJQUVZLCtCQUErQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUcvRTtJQUVZLGtDQUFrQyxDQUM3QyxJQUFJLEVBQUUsVUFBVSxFQUNoQixVQUFVLEVBQUUsTUFBTSxFQUNsQixhQUFhLEVBQUUsTUFBTSxHQUNwQixPQUFPLENBQUMsT0FBTyxDQUFDLENBS2xCO0NBQ0YifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"kv_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/kv_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,qBAAa,iBAAkB,YAAW,eAAe;IAerD,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,GAAG;IAhBb,OAAO,CAAC,OAAO,CAA6C;IAE5D,OAAO,CAAC,SAAS,CAGf;IAGF,OAAO,CAAC,sBAAsB,CAAgC;IAC9D,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,0BAA0B,CAAqC;IACvE,OAAO,CAAC,iCAAiC,CAAqC;IAE9E,YACU,KAAK,EAAE,iBAAiB,EAChC,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAyC,EAWrD;IAED,OAAO,CAAC,SAAS,CAIf;IAEW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAQvC;IAED,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAIZ,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzE;IAEY,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAW5E;IAEY,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF;IAEY,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B9E;IAEY,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAW1F;IAEY,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9F;IAEY,yBAAyB,CAAC,YAAY,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC3F;IAEY,gCAAgC,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAShG;IAEY,2CAA2C,CACtD,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkBlC;IAEY,qCAAqC,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxF;YAEa,mCAAmC;IAwBpC,wBAAwB,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAc1F;IAEM,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAG7D;IAEY,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAMpF;IAEY,2BAA2B,CACtC,WAAW,EAAE,qBAAqB,EAClC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CASlB;IAEY,+BAA+B,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/E;IAEY,kCAAkC,CAC7C,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CAKlB;CACF"}