@aztec/p2p 0.0.1-commit.934299a21 → 0.0.1-commit.949a33fd8

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 (366) hide show
  1. package/README.md +129 -3
  2. package/dest/client/factory.d.ts +6 -6
  3. package/dest/client/factory.d.ts.map +1 -1
  4. package/dest/client/factory.js +29 -14
  5. package/dest/client/interface.d.ts +12 -5
  6. package/dest/client/interface.d.ts.map +1 -1
  7. package/dest/client/p2p_client.d.ts +6 -5
  8. package/dest/client/p2p_client.d.ts.map +1 -1
  9. package/dest/client/p2p_client.js +47 -39
  10. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +21 -8
  11. package/dest/config.d.ts +128 -100
  12. package/dest/config.d.ts.map +1 -1
  13. package/dest/config.js +97 -34
  14. package/dest/errors/p2p-service.error.d.ts +9 -0
  15. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  16. package/dest/errors/p2p-service.error.js +10 -0
  17. package/dest/index.d.ts +1 -2
  18. package/dest/index.d.ts.map +1 -1
  19. package/dest/index.js +0 -1
  20. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +7 -5
  21. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  22. package/dest/mem_pools/attestation_pool/attestation_pool.js +16 -9
  23. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +6 -6
  24. package/dest/mem_pools/attestation_pool/mocks.d.ts +1 -1
  25. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  26. package/dest/mem_pools/attestation_pool/mocks.js +6 -4
  27. package/dest/mem_pools/index.d.ts +1 -2
  28. package/dest/mem_pools/index.d.ts.map +1 -1
  29. package/dest/mem_pools/instrumentation.d.ts +4 -2
  30. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  31. package/dest/mem_pools/instrumentation.js +33 -15
  32. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  33. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  34. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +2 -1
  35. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
  36. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  37. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +2 -0
  38. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -1
  39. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  40. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -0
  41. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  42. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  43. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  44. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +7 -1
  45. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
  47. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +1 -1
  48. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  49. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +8 -6
  50. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +2 -2
  51. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  52. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +2 -2
  53. package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
  54. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  55. package/dest/mem_pools/tx_pool_v2/index.js +1 -1
  56. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +12 -5
  57. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  58. package/dest/mem_pools/tx_pool_v2/interfaces.js +2 -1
  59. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +44 -12
  60. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  61. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +81 -22
  62. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
  63. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  64. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +26 -44
  65. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +4 -2
  66. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  67. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +6 -0
  68. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +2 -1
  69. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  70. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +62 -29
  71. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +9 -3
  72. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  73. package/dest/msg_validators/attestation_validator/attestation_validator.js +37 -12
  74. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +7 -3
  75. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  76. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +2 -2
  77. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  78. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  79. package/dest/msg_validators/clock_tolerance.js +61 -3
  80. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +8 -4
  81. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  82. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  83. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +8 -4
  84. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  85. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  86. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +17 -8
  87. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  88. package/dest/msg_validators/proposal_validator/proposal_validator.js +83 -48
  89. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  90. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  91. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  92. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  93. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  94. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  95. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  96. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  97. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  98. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  99. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  100. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  101. package/dest/msg_validators/tx_validator/data_validator.js +35 -2
  102. package/dest/msg_validators/tx_validator/factory.d.ts +23 -4
  103. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  104. package/dest/msg_validators/tx_validator/factory.js +37 -11
  105. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  106. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  107. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  108. package/dest/msg_validators/tx_validator/gas_validator.d.ts +48 -7
  109. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  110. package/dest/msg_validators/tx_validator/gas_validator.js +88 -41
  111. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  112. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  113. package/dest/msg_validators/tx_validator/index.js +1 -0
  114. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  115. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  117. package/dest/msg_validators/tx_validator/phases_validator.d.ts +22 -2
  118. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/tx_validator/phases_validator.js +72 -24
  120. package/dest/services/data_store.d.ts +1 -1
  121. package/dest/services/data_store.d.ts.map +1 -1
  122. package/dest/services/data_store.js +5 -5
  123. package/dest/services/dummy_service.d.ts +6 -3
  124. package/dest/services/dummy_service.d.ts.map +1 -1
  125. package/dest/services/dummy_service.js +6 -1
  126. package/dest/services/encoding.d.ts +6 -2
  127. package/dest/services/encoding.d.ts.map +1 -1
  128. package/dest/services/encoding.js +14 -8
  129. package/dest/services/gossipsub/topic_score_params.d.ts +13 -2
  130. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  131. package/dest/services/gossipsub/topic_score_params.js +21 -4
  132. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  133. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  134. package/dest/services/libp2p/instrumentation.js +14 -0
  135. package/dest/services/libp2p/libp2p_service.d.ts +23 -32
  136. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  137. package/dest/services/libp2p/libp2p_service.js +202 -151
  138. package/dest/services/peer-manager/metrics.d.ts +3 -1
  139. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  140. package/dest/services/peer-manager/metrics.js +6 -0
  141. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  142. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  143. package/dest/services/peer-manager/peer_manager.js +39 -11
  144. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  145. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  146. package/dest/services/peer-manager/peer_scoring.js +32 -10
  147. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +11 -8
  148. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  149. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +69 -65
  150. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +3 -2
  151. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  152. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +5 -4
  153. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  154. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +13 -7
  155. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +3 -1
  156. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  157. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +3 -0
  158. package/dest/services/reqresp/config.d.ts +3 -3
  159. package/dest/services/reqresp/config.d.ts.map +1 -1
  160. package/dest/services/reqresp/interface.d.ts +14 -9
  161. package/dest/services/reqresp/interface.d.ts.map +1 -1
  162. package/dest/services/reqresp/interface.js +10 -11
  163. package/dest/services/reqresp/metrics.d.ts +1 -1
  164. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  165. package/dest/services/reqresp/metrics.js +0 -1
  166. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  167. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  168. package/dest/services/reqresp/protocols/index.js +0 -1
  169. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  170. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  171. package/dest/services/reqresp/protocols/tx.js +1 -3
  172. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  173. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  174. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  175. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  176. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  177. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  178. package/dest/services/reqresp/reqresp.d.ts +4 -2
  179. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  180. package/dest/services/reqresp/reqresp.js +30 -12
  181. package/dest/services/service.d.ts +5 -2
  182. package/dest/services/service.d.ts.map +1 -1
  183. package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -4
  184. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  185. package/dest/services/tx_collection/fast_tx_collection.js +57 -73
  186. package/dest/services/tx_collection/file_store_tx_source.d.ts +5 -4
  187. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
  188. package/dest/services/tx_collection/file_store_tx_source.js +39 -29
  189. package/dest/services/tx_collection/proposal_tx_collector.d.ts +6 -7
  190. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  191. package/dest/services/tx_collection/proposal_tx_collector.js +4 -4
  192. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  193. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  194. package/dest/services/tx_collection/request_tracker.js +84 -0
  195. package/dest/services/tx_collection/slow_tx_collection.js +1 -1
  196. package/dest/services/tx_collection/tx_collection.d.ts +3 -6
  197. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  198. package/dest/services/tx_collection/tx_source.d.ts +6 -5
  199. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  200. package/dest/services/tx_collection/tx_source.js +9 -7
  201. package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
  202. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  203. package/dest/test-helpers/make-test-p2p-clients.js +4 -2
  204. package/dest/test-helpers/mock-pubsub.d.ts +12 -5
  205. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  206. package/dest/test-helpers/mock-pubsub.js +37 -12
  207. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  208. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  209. package/dest/test-helpers/reqresp-nodes.js +6 -4
  210. package/dest/test-helpers/testbench-utils.d.ts +1 -1
  211. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  212. package/dest/test-helpers/testbench-utils.js +23 -3
  213. package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
  214. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  215. package/dest/testbench/p2p_client_testbench_worker.js +78 -21
  216. package/dest/testbench/worker_client_manager.d.ts +10 -1
  217. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  218. package/dest/testbench/worker_client_manager.js +55 -3
  219. package/dest/util.d.ts +1 -1
  220. package/package.json +14 -14
  221. package/src/client/factory.ts +48 -19
  222. package/src/client/interface.ts +12 -10
  223. package/src/client/p2p_client.ts +52 -51
  224. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +22 -11
  225. package/src/config.ts +146 -36
  226. package/src/errors/p2p-service.error.ts +11 -0
  227. package/src/index.ts +0 -1
  228. package/src/mem_pools/attestation_pool/attestation_pool.ts +17 -12
  229. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +6 -6
  230. package/src/mem_pools/attestation_pool/mocks.ts +13 -8
  231. package/src/mem_pools/index.ts +0 -3
  232. package/src/mem_pools/instrumentation.ts +22 -14
  233. package/src/mem_pools/tx_pool_v2/README.md +9 -1
  234. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +2 -1
  235. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -0
  236. package/src/mem_pools/tx_pool_v2/eviction/index.ts +1 -0
  237. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  238. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +11 -1
  239. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +3 -3
  240. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +15 -6
  241. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +2 -1
  242. package/src/mem_pools/tx_pool_v2/index.ts +1 -1
  243. package/src/mem_pools/tx_pool_v2/interfaces.ts +12 -4
  244. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +121 -27
  245. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +29 -43
  246. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +16 -1
  247. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +70 -26
  248. package/src/msg_validators/attestation_validator/README.md +49 -0
  249. package/src/msg_validators/attestation_validator/attestation_validator.ts +41 -9
  250. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +12 -2
  251. package/src/msg_validators/clock_tolerance.ts +79 -3
  252. package/src/msg_validators/proposal_validator/README.md +123 -0
  253. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +22 -4
  254. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +33 -7
  255. package/src/msg_validators/proposal_validator/proposal_validator.ts +99 -49
  256. package/src/msg_validators/tx_validator/README.md +15 -3
  257. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  258. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  259. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  260. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  261. package/src/msg_validators/tx_validator/data_validator.ts +42 -1
  262. package/src/msg_validators/tx_validator/factory.ts +46 -4
  263. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  264. package/src/msg_validators/tx_validator/gas_validator.ts +121 -39
  265. package/src/msg_validators/tx_validator/index.ts +1 -0
  266. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  267. package/src/msg_validators/tx_validator/phases_validator.ts +82 -27
  268. package/src/services/data_store.ts +5 -13
  269. package/src/services/dummy_service.ts +8 -2
  270. package/src/services/encoding.ts +14 -7
  271. package/src/services/gossipsub/topic_score_params.ts +36 -4
  272. package/src/services/libp2p/instrumentation.ts +14 -0
  273. package/src/services/libp2p/libp2p_service.ts +206 -164
  274. package/src/services/peer-manager/metrics.ts +7 -0
  275. package/src/services/peer-manager/peer_manager.ts +45 -11
  276. package/src/services/peer-manager/peer_scoring.ts +27 -5
  277. package/src/services/reqresp/README.md +229 -0
  278. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  279. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +64 -69
  280. package/src/services/reqresp/batch-tx-requester/interface.ts +2 -1
  281. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +13 -6
  282. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +5 -0
  283. package/src/services/reqresp/config.ts +2 -2
  284. package/src/services/reqresp/interface.ts +21 -11
  285. package/src/services/reqresp/metrics.ts +0 -1
  286. package/src/services/reqresp/protocols/index.ts +0 -1
  287. package/src/services/reqresp/protocols/tx.ts +1 -3
  288. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  289. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  290. package/src/services/reqresp/reqresp.ts +40 -13
  291. package/src/services/service.ts +6 -1
  292. package/src/services/tx_collection/fast_tx_collection.ts +57 -83
  293. package/src/services/tx_collection/file_store_tx_source.ts +43 -31
  294. package/src/services/tx_collection/proposal_tx_collector.ts +8 -13
  295. package/src/services/tx_collection/request_tracker.ts +127 -0
  296. package/src/services/tx_collection/slow_tx_collection.ts +1 -1
  297. package/src/services/tx_collection/tx_collection.ts +3 -5
  298. package/src/services/tx_collection/tx_source.ts +8 -7
  299. package/src/test-helpers/make-test-p2p-clients.ts +3 -3
  300. package/src/test-helpers/mock-pubsub.ts +37 -11
  301. package/src/test-helpers/reqresp-nodes.ts +7 -8
  302. package/src/test-helpers/testbench-utils.ts +30 -3
  303. package/src/testbench/p2p_client_testbench_worker.ts +77 -21
  304. package/src/testbench/worker_client_manager.ts +68 -6
  305. package/src/util.ts +1 -1
  306. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  307. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  308. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  309. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  310. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  311. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  312. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  313. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  314. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  315. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  316. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  317. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  318. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  319. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  320. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
  321. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  322. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  323. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  324. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  325. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  326. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  327. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  328. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  329. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  330. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  331. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  332. package/dest/mem_pools/tx_pool/index.js +0 -2
  333. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  334. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  335. package/dest/mem_pools/tx_pool/priority.js +0 -15
  336. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  337. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  338. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  339. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  340. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  341. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  342. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  343. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  344. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  345. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  346. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  347. package/dest/services/reqresp/protocols/block.js +0 -32
  348. package/dest/services/tx_collection/missing_txs_tracker.d.ts +0 -32
  349. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +0 -1
  350. package/dest/services/tx_collection/missing_txs_tracker.js +0 -27
  351. package/src/mem_pools/tx_pool/README.md +0 -270
  352. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  353. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  354. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  355. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  356. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  357. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  358. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  359. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  360. package/src/mem_pools/tx_pool/index.ts +0 -2
  361. package/src/mem_pools/tx_pool/priority.ts +0 -20
  362. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  363. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  364. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  365. package/src/services/reqresp/protocols/block.ts +0 -37
  366. package/src/services/tx_collection/missing_txs_tracker.ts +0 -52
@@ -12,14 +12,15 @@ import { Fr } from '@aztec/foundation/curves/bn254';
12
12
  import { type Logger, createLogger } from '@aztec/foundation/log';
13
13
  import { sleep } from '@aztec/foundation/sleep';
14
14
  import { DateProvider, Timer } from '@aztec/foundation/timer';
15
- import type { DataStoreConfig } from '@aztec/kv-store/config';
16
15
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
17
16
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
18
17
  import { protocolContractsHash } from '@aztec/protocol-contracts';
19
18
  import type { L2BlockSource } from '@aztec/stdlib/block';
20
19
  import type { ContractDataSource } from '@aztec/stdlib/contract';
20
+ import { GasFees } from '@aztec/stdlib/gas';
21
21
  import type { ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
22
- import { type BlockProposal, P2PClientType, P2PMessage } from '@aztec/stdlib/p2p';
22
+ import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
23
+ import { type BlockProposal, P2PMessage } from '@aztec/stdlib/p2p';
23
24
  import { ChonkProof } from '@aztec/stdlib/proofs';
24
25
  import { makeAztecAddress, makeBlockHeader, makeBlockProposal, mockTx } from '@aztec/stdlib/testing';
25
26
  import { Tx, TxHash, type TxValidationResult } from '@aztec/stdlib/tx';
@@ -40,7 +41,7 @@ import type { IBatchRequestTxValidator } from '../services/reqresp/batch-tx-requ
40
41
  import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.js';
41
42
  import type { ReqResp } from '../services/reqresp/reqresp.js';
42
43
  import type { PeerDiscoveryService } from '../services/service.js';
43
- import { MissingTxsTracker } from '../services/tx_collection/missing_txs_tracker.js';
44
+ import { RequestTracker } from '../services/tx_collection/request_tracker.js';
44
45
  import { AlwaysTrueCircuitVerifier } from '../test-helpers/index.js';
45
46
  import {
46
47
  BENCHMARK_CONSTANTS,
@@ -86,12 +87,11 @@ export interface BenchReadyMessage {
86
87
  }
87
88
  const txCache = new Map<number, Tx[]>();
88
89
 
89
- class TestLibP2PService<T extends P2PClientType = P2PClientType.Full> extends LibP2PService<T> {
90
+ class TestLibP2PService extends LibP2PService {
90
91
  private disableTxValidation: boolean;
91
92
  private gossipMessageCount = 0;
92
93
 
93
94
  constructor(
94
- clientType: T,
95
95
  config: P2PConfig,
96
96
  node: PubSubLibp2p,
97
97
  peerDiscoveryService: PeerDiscoveryService,
@@ -107,7 +107,6 @@ class TestLibP2PService<T extends P2PClientType = P2PClientType.Full> extends Li
107
107
  disableTxValidation = true,
108
108
  ) {
109
109
  super(
110
- clientType,
111
110
  config,
112
111
  node,
113
112
  peerDiscoveryService,
@@ -118,6 +117,7 @@ class TestLibP2PService<T extends P2PClientType = P2PClientType.Full> extends Li
118
117
  epochCache,
119
118
  proofVerifier,
120
119
  worldStateSynchronizer,
120
+ { getCurrentMinFees: () => Promise.resolve(GasFees.empty()) },
121
121
  telemetry,
122
122
  logger,
123
123
  );
@@ -206,6 +206,25 @@ function installUnlimitedRateLimits(client: P2PClient): void {
206
206
  rateLimiter.allow = () => RateLimitStatus.Allowed;
207
207
  }
208
208
 
209
+ /** Resets peer scores to prevent cross-case contamination in benchmarks. */
210
+ function resetPeerScores(client: P2PClient): void {
211
+ const peerManager = (client as any).p2pService.peerManager;
212
+ const peerScoring = peerManager?.peerScoring;
213
+ if (peerScoring?.resetAllScores) {
214
+ peerScoring.resetAllScores();
215
+ }
216
+ }
217
+
218
+ /** Returns the number of connected peers for connectivity checks. */
219
+ function getConnectedPeerCount(client: P2PClient): number {
220
+ const p2pService = (client as any).p2pService;
221
+ const connectionSampler = p2pService?.reqresp?.getConnectionSampler?.();
222
+ if (connectionSampler?.getPeerListSortedByConnectionCountAsc) {
223
+ return connectionSampler.getPeerListSortedByConnectionCountAsc().length;
224
+ }
225
+ return 0;
226
+ }
227
+
209
228
  async function runAggregatorBenchmark(
210
229
  client: P2PClient,
211
230
  blockProposal: BlockProposal,
@@ -275,10 +294,9 @@ async function runAggregatorBenchmark(
275
294
  noopTxValidator,
276
295
  );
277
296
  const fetchedTxs = await collector.collectTxs(
278
- MissingTxsTracker.fromArray(txHashes),
297
+ RequestTracker.create(txHashes, new Date(Date.now() + timeoutMs)),
279
298
  blockProposal,
280
299
  pinnedPeer,
281
- timeoutMs,
282
300
  );
283
301
  const durationMs = timer.ms();
284
302
  return {
@@ -295,10 +313,9 @@ async function runAggregatorBenchmark(
295
313
  BENCHMARK_CONSTANTS.FIXED_MAX_RETRY_ATTEMPTS,
296
314
  );
297
315
  const fetchedTxs = await collector.collectTxs(
298
- MissingTxsTracker.fromArray(txHashes),
316
+ RequestTracker.create(txHashes, new Date(Date.now() + timeoutMs)),
299
317
  blockProposal,
300
318
  pinnedPeer,
301
- timeoutMs,
302
319
  );
303
320
  const durationMs = timer.ms();
304
321
  return {
@@ -325,6 +342,37 @@ let workerConfig: P2PConfig | null = null;
325
342
  let workerLogger: Logger | null = null;
326
343
  let kvStore: Awaited<ReturnType<typeof openTmpStore>> | null = null;
327
344
 
345
+ async function stopWorker() {
346
+ try {
347
+ if (workerClient) {
348
+ await workerClient.stop();
349
+ workerClient = null;
350
+ }
351
+ } catch (e) {
352
+ workerLogger?.error('Error stopping worker client', e);
353
+ }
354
+ try {
355
+ if (kvStore?.close) {
356
+ await kvStore.close();
357
+ kvStore = null;
358
+ }
359
+ } catch (e) {
360
+ workerLogger?.error('Error closing kv store', e);
361
+ }
362
+ }
363
+
364
+ function gracefulExit(code: number = 0) {
365
+ try {
366
+ if (process.connected) {
367
+ process.disconnect();
368
+ }
369
+ } catch {
370
+ // IPC channel already closed
371
+ }
372
+ // Safety fallback if lingering handles prevent the event loop from draining
373
+ setTimeout(() => process.exit(code), 5000).unref();
374
+ }
375
+
328
376
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
329
377
  process.on('message', async msg => {
330
378
  const {
@@ -342,6 +390,7 @@ process.on('message', async msg => {
342
390
  const config: P2PConfig = {
343
391
  ...rawConfig,
344
392
  peerIdPrivateKey: rawConfig.peerIdPrivateKey ? new SecretValue(rawConfig.peerIdPrivateKey) : undefined,
393
+ priceBumpPercentage: 10n,
345
394
  } as P2PConfig;
346
395
 
347
396
  workerConfig = config;
@@ -365,12 +414,12 @@ process.on('message', async msg => {
365
414
  };
366
415
 
367
416
  const client = await createP2PClient(
368
- P2PClientType.Full,
369
417
  config as P2PConfig & DataStoreConfig,
370
418
  l2BlockSource,
371
419
  proofVerifier as ClientProtocolCircuitVerifier,
372
420
  worldState,
373
421
  epochCache,
422
+ { getCurrentMinFees: () => Promise.resolve(GasFees.empty()) },
374
423
  'test-p2p-bench-worker',
375
424
  undefined,
376
425
  telemetry as TelemetryClient,
@@ -378,7 +427,6 @@ process.on('message', async msg => {
378
427
  );
379
428
 
380
429
  const testService = new TestLibP2PService(
381
- P2PClientType.Full,
382
430
  config,
383
431
  (client as any).p2pService.node,
384
432
  (client as any).p2pService.peerDiscoveryService,
@@ -415,13 +463,8 @@ process.on('message', async msg => {
415
463
  const cmd = msg as any;
416
464
  switch (cmd.type) {
417
465
  case 'STOP':
418
- if (workerClient) {
419
- await workerClient.stop();
420
- }
421
- if (kvStore?.close) {
422
- await kvStore.close();
423
- }
424
- process.exit(0);
466
+ await stopWorker();
467
+ gracefulExit(0);
425
468
  break;
426
469
 
427
470
  case 'SEND_TX':
@@ -431,6 +474,13 @@ process.on('message', async msg => {
431
474
  }
432
475
  break;
433
476
 
477
+ case 'GET_PEER_COUNT':
478
+ process.send!({
479
+ type: 'PEER_COUNT',
480
+ count: workerClient ? getConnectedPeerCount(workerClient) : 0,
481
+ });
482
+ break;
483
+
434
484
  case 'BENCH_REQRESP': {
435
485
  const benchCmd = cmd as BenchReqRespCommand;
436
486
  if (!workerClient || !workerTxPool || !workerAttestationPool || !workerConfig || !workerLogger) {
@@ -447,6 +497,7 @@ process.on('message', async msg => {
447
497
  // Reset state before each benchmark run to avoid cross-run contamination
448
498
  workerTxPool.resetState();
449
499
  workerAttestationPool.resetState();
500
+ resetPeerScores(workerClient);
450
501
 
451
502
  installUnlimitedRateLimits(workerClient);
452
503
 
@@ -498,7 +549,12 @@ process.on('message', async msg => {
498
549
  }
499
550
  }
500
551
  } catch (err: any) {
501
- process.send!({ type: 'ERROR', error: err.message });
502
- process.exit(1);
552
+ try {
553
+ process.send!({ type: 'ERROR', error: err.message });
554
+ } catch {
555
+ // IPC channel may be closed
556
+ }
557
+ await stopWorker();
558
+ gracefulExit(1);
503
559
  }
504
560
  });
@@ -72,7 +72,6 @@ class WorkerClientManager {
72
72
  destroy() {
73
73
  this.cleanup().catch((error: Error) => {
74
74
  this.logger.error('Failed to cleanup worker client manager', error);
75
- process.exit(1);
76
75
  });
77
76
  }
78
77
 
@@ -81,13 +80,15 @@ class WorkerClientManager {
81
80
  * Note: We send the raw peerIdPrivateKey string instead of SecretValue
82
81
  * because SecretValue.toJSON() returns '[Redacted]', losing the value.
83
82
  * The worker must re-wrap it in SecretValue.
83
+ * We also omit priceBumpPercentage since it's a bigint and can't be
84
+ * serialized over IPC (which uses JSON under the hood).
84
85
  */
85
86
  private createClientConfig(
86
87
  clientIndex: number,
87
88
  port: number,
88
89
  otherNodes: string[],
89
- ): Omit<P2PConfig, 'peerIdPrivateKey'> & { peerIdPrivateKey: string } & Partial<ChainConfig> {
90
- return {
90
+ ): Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & { peerIdPrivateKey: string } & Partial<ChainConfig> {
91
+ const { priceBumpPercentage: _, ...config } = {
91
92
  ...getP2PDefaultConfig(),
92
93
  p2pEnabled: true,
93
94
  peerIdPrivateKey: this.peerIdPrivateKeys[clientIndex],
@@ -96,7 +97,10 @@ class WorkerClientManager {
96
97
  p2pPort: port,
97
98
  bootstrapNodes: [...otherNodes],
98
99
  ...this.p2pConfig,
99
- } as Omit<P2PConfig, 'peerIdPrivateKey'> & { peerIdPrivateKey: string } & Partial<ChainConfig>;
100
+ };
101
+ return config as Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & {
102
+ peerIdPrivateKey: string;
103
+ } & Partial<ChainConfig>;
100
104
  }
101
105
 
102
106
  /**
@@ -104,7 +108,9 @@ class WorkerClientManager {
104
108
  * Config uses raw string for peerIdPrivateKey (not SecretValue) for IPC serialization.
105
109
  */
106
110
  private spawnWorkerProcess(
107
- config: Omit<P2PConfig, 'peerIdPrivateKey'> & { peerIdPrivateKey: string } & Partial<ChainConfig>,
111
+ config: Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & {
112
+ peerIdPrivateKey: string;
113
+ } & Partial<ChainConfig>,
108
114
  clientIndex: number,
109
115
  ): [ChildProcess, Promise<void>] {
110
116
  const useCompiled = existsSync(workerJsPath);
@@ -418,6 +424,61 @@ class WorkerClientManager {
418
424
  this.logger.info('All worker processes cleaned up');
419
425
  }
420
426
 
427
+ /**
428
+ * Checks that the aggregator (client 0) has sufficient peer connections before running a benchmark.
429
+ * This prevents benchmark cases from starting with degraded connectivity after a previous case
430
+ * caused connection failures.
431
+ */
432
+ async waitForConnectivity(minPeers: number, timeoutMs: number = 15_000): Promise<number> {
433
+ const waitInterval = 1000;
434
+ let waited = 0;
435
+
436
+ while (waited < timeoutMs) {
437
+ const count = await this.getPeerCount(0, 5000);
438
+ if (count >= minPeers) {
439
+ this.logger.info(`Connectivity check passed: ${count}/${minPeers} peers connected`);
440
+ return count;
441
+ }
442
+ this.logger.debug(`Waiting for connectivity: ${count}/${minPeers} (waited ${waited}ms)`);
443
+ await sleep(waitInterval);
444
+ waited += waitInterval;
445
+ }
446
+
447
+ const finalCount = await this.getPeerCount(0, 5000);
448
+ this.logger.warn(`Connectivity check: only ${finalCount}/${minPeers} peers after ${timeoutMs}ms`);
449
+ return finalCount;
450
+ }
451
+
452
+ private getPeerCount(clientIndex: number, timeoutMs: number): Promise<number> {
453
+ return new Promise<number>(resolve => {
454
+ let resolved = false;
455
+
456
+ const handler = (msg: any) => {
457
+ if (resolved) {
458
+ return;
459
+ }
460
+ if (msg.type === 'PEER_COUNT') {
461
+ resolved = true;
462
+ clearTimeout(timeout);
463
+ this.processes[clientIndex].off('message', handler);
464
+ resolve(msg.count as number);
465
+ }
466
+ };
467
+
468
+ const timeout = setTimeout(() => {
469
+ if (resolved) {
470
+ return;
471
+ }
472
+ resolved = true;
473
+ this.processes[clientIndex].off('message', handler);
474
+ resolve(0);
475
+ }, timeoutMs);
476
+
477
+ this.processes[clientIndex].on('message', handler);
478
+ this.processes[clientIndex].send({ type: 'GET_PEER_COUNT' });
479
+ });
480
+ }
481
+
421
482
  /**
422
483
  * Run a req/resp benchmark across all worker clients.
423
484
  *
@@ -483,7 +544,8 @@ class WorkerClientManager {
483
544
  };
484
545
 
485
546
  this.processes[0].send(aggregatorCmd);
486
- const result = await this.waitForBenchResult(0, config.timeoutMs + 30000);
547
+ const aggregatorBudgetMs = config.timeoutMs + BENCHMARK_CONSTANTS.MAX_PEER_WAIT_MS + 30000;
548
+ const result = await this.waitForBenchResult(0, aggregatorBudgetMs);
487
549
 
488
550
  this.logger.info(
489
551
  `Benchmark complete: fetched=${result.fetchedCount}/${config.txCount}, duration=${result.durationMs.toFixed(0)}ms, success=${result.success}`,
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';
@@ -1,125 +0,0 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { type Logger } from '@aztec/foundation/log';
4
- import type { TypedEventEmitter } from '@aztec/foundation/types';
5
- import type { AztecAsyncKVStore } from '@aztec/kv-store';
6
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
7
- import type { MerkleTreeReadOperations, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
8
- import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
9
- import { type TelemetryClient } from '@aztec/telemetry-client';
10
- import { ArchiveCache } from '../../msg_validators/tx_validator/archive_cache.js';
11
- import { FeePayerTxInfo, type PendingTxInfo, type TxBlockReference, type TxPoolOperations } from './eviction/eviction_strategy.js';
12
- import type { TxPool, TxPoolEvents, TxPoolOptions } from './tx_pool.js';
13
- declare const AztecKVTxPool_base: new () => TypedEventEmitter<TxPoolEvents>;
14
- /**
15
- * KV implementation of the Transaction Pool.
16
- */
17
- export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool, TxPoolOperations {
18
- #private;
19
- /**
20
- * Class constructor for KV TxPool. Initiates our transaction pool as an AztecMap.
21
- * @param store - A KV store for live txs in the pool.
22
- * @param archive - A KV store for archived txs.
23
- * @param telemetry - A telemetry client.
24
- * @param archivedTxLimit - The number of txs to archive.
25
- * @param log - A logger.
26
- */
27
- constructor(store: AztecAsyncKVStore, archive: AztecAsyncKVStore, worldState: WorldStateSynchronizer, telemetry?: TelemetryClient, config?: TxPoolOptions, log?: Logger);
28
- private countTxs;
29
- isEmpty(): Promise<boolean>;
30
- /**
31
- * Marks transactions as mined in a block and updates the pool state accordingly.
32
- * Removes the transactions from the pending set and adds them to the mined set.
33
- * Also evicts any transactions that become invalid after the block is mined.
34
- * @param txHashes - Array of transaction hashes that were mined
35
- * @param blockHeader - The header of the block the transactions were mined in
36
- */
37
- markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void>;
38
- markMinedAsPending(txHashes: TxHash[], latestBlock: BlockNumber): Promise<void>;
39
- getPendingTxHashes(): Promise<TxHash[]>;
40
- /**
41
- * Checks if a transaction exists in the pool and returns it.
42
- * @param txHash - The generated tx hash.
43
- * @returns The transaction, if found, 'undefined' otherwise.
44
- */
45
- getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
46
- getTxsByHash(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
47
- hasTxs(txHashes: TxHash[]): Promise<boolean[]>;
48
- hasTx(txHash: TxHash): Promise<boolean>;
49
- /**
50
- * Checks if an archived tx exists and returns it.
51
- * @param txHash - The tx hash.
52
- * @returns The transaction metadata, if found, 'undefined' otherwise.
53
- */
54
- getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
55
- /**
56
- * Adds a list of transactions to the pool. Duplicates are ignored.
57
- * Handles nullifier deduplication: if an incoming tx has a nullifier conflict with
58
- * existing pending txs, it will either replace them (if higher fee) or be rejected.
59
- * @param txs - An array of txs to be added to the pool.
60
- * @returns count of added transactions
61
- */
62
- addTxs(txs: Tx[], opts?: {
63
- source?: string;
64
- }): Promise<number>;
65
- /**
66
- * Deletes transactions from the pool. Tx hashes that are not present are ignored.
67
- * Mined transactions are soft-deleted with a timestamp, pending transactions are permanently deleted.
68
- * @param txHashes - An array of tx hashes to be deleted from the tx pool.
69
- * @returns Empty promise.
70
- */
71
- deleteTxs(txHashes: TxHash[], opts?: {
72
- permanently?: boolean;
73
- }): Promise<void>;
74
- private deleteMinedTx;
75
- private deletePendingTxInDbTx;
76
- /**
77
- * Gets all the transactions stored in the pool.
78
- * @returns Array of tx objects in the order they were added to the pool.
79
- */
80
- getAllTxs(): Promise<Tx[]>;
81
- /**
82
- * Gets the hashes of all transactions currently in the tx pool.
83
- * @returns An array of transaction hashes found in the tx pool.
84
- */
85
- getAllTxHashes(): Promise<TxHash[]>;
86
- getPendingTxInfos(): Promise<PendingTxInfo[]>;
87
- private getPendingTxInfo;
88
- getPendingTxsReferencingBlocks(blockHashes: Fr[]): Promise<TxBlockReference[]>;
89
- getPendingFeePayers(): Promise<AztecAddress[]>;
90
- getFeePayerTxInfos(feePayer: AztecAddress): AsyncIterable<FeePayerTxInfo>;
91
- getMinedTxHashes(): Promise<[TxHash, BlockNumber][]>;
92
- getPendingTxCount(): Promise<number>;
93
- getMinedTxCount(): Promise<number>;
94
- getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
95
- updateConfig(cfg: TxPoolOptions): void;
96
- markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
97
- clearNonEvictableTxs(): Promise<void>;
98
- /**
99
- * Permanently deletes deleted mined transactions from blocks up to and including the specified block number.
100
- * @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
101
- * @returns The number of transactions permanently deleted.
102
- */
103
- cleanupDeletedMinedTxs(blockNumber: BlockNumber): Promise<number>;
104
- /**
105
- * Creates an ArchiveCache instance.
106
- * @param db - DB for the cache to use
107
- * @returns An ArchiveCache instance
108
- */
109
- protected createArchiveCache(db: MerkleTreeReadOperations): ArchiveCache;
110
- private archiveTxs;
111
- private addPendingTxIndicesInDbTx;
112
- private removePendingTxIndicesInDbTx;
113
- /**
114
- * Returns up to `limit` lowest-priority evictable pending tx hashes without hydrating transactions.
115
- * Iterates the priority index in ascending order and skips non-evictable txs.
116
- */
117
- getLowestPriorityEvictable(limit: number): Promise<TxHash[]>;
118
- /**
119
- * Creates a PreAddPoolAccess object for use by pre-add eviction rules.
120
- * Provides read-only access to pool state during addTxs transaction.
121
- */
122
- private getPreAddPoolAccess;
123
- }
124
- export {};
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfa3ZfdHhfcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sL2F6dGVjX2t2X3R4X3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUd4RyxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFLbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBR2xGLE9BQU8sRUFDTCxjQUFjLEVBQ2QsS0FBSyxhQUFhLEVBRWxCLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssZ0JBQWdCLEVBQ3RCLE1BQU0saUNBQWlDLENBQUM7QUFPekMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXhFOztHQUVHO0FBQ0gscUJBQWEsYUFDWCxTQUFRLGtCQUNSLFlBQVcsTUFBTSxFQUFFLGdCQUFnQjs7SUFrRG5DOzs7Ozs7O09BT0c7SUFDSCxZQUNFLEtBQUss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
@@ -1 +0,0 @@
1
- {"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAGxG,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAKnF,OAAO,EAAE,YAAY,EAAE,MAAM,oDAAoD,CAAC;AAGlF,OAAO,EACL,cAAc,EACd,KAAK,aAAa,EAElB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;;AAExE;;GAEG;AACH,qBAAa,aACX,SAAQ,kBACR,YAAW,MAAM,EAAE,gBAAgB;;IAkDnC;;;;;;;OAOG;IACH,YACE,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,sBAAsB,EAClC,SAAS,GAAE,eAAsC,EACjD,MAAM,GAAE,aAAkB,EAC1B,GAAG,SAA8B,EAwClC;IAED,OAAO,CAAC,QAAQ,CASd;IAEW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAKvC;IAED;;;;;;OAMG;IACU,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CpF;IAEY,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B3F;IAEY,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnD;IAED;;;;OAIG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAGhE;IAEK,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAGlE;IAEK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAEnD;IAEK,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5C;IAED;;;;OAIG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAGxE;IAED;;;;;;OAMG;IACU,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CA0E9E;IAED;;;;;OAKG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCpF;YAEa,aAAa;YAeb,qBAAqB;IAQnC;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAGtC;IAED;;;OAGG;IACU,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAG/C;IAEY,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAIzD;YAEa,gBAAgB;IAqBjB,8BAA8B,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAc1F;IAEY,mBAAmB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAO1D;IAEa,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,aAAa,CAAC,cAAc,CAAC,CAMtF;IAEY,gBAAgB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,CAGhE;IAEY,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEhD;IAEY,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAE9C;IAEY,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAiB7F;IAEM,YAAY,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAS5C;IAEM,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9D;IAEM,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3C;IAED;;;;OAIG;IACU,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAkC7E;IAED;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,wBAAwB,GAAG,YAAY,CAEvE;YAQa,UAAU;YAgDV,yBAAyB;YAazB,4BAA4B;IAkB1C;;;OAGG;IACU,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBxE;IAED;;;OAGG;IACH,OAAO,CAAC,mBAAmB;CAU5B"}