@aztec/p2p 0.0.1-commit.6d63667d → 0.0.1-commit.733c4a3

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 (315) hide show
  1. package/dest/client/factory.d.ts +7 -6
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +35 -11
  4. package/dest/client/interface.d.ts +45 -32
  5. package/dest/client/interface.d.ts.map +1 -1
  6. package/dest/client/p2p_client.d.ts +38 -50
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +145 -200
  9. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +6 -6
  10. package/dest/config.d.ts +24 -8
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +16 -6
  13. package/dest/errors/tx-pool.error.d.ts +8 -0
  14. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  15. package/dest/errors/tx-pool.error.js +9 -0
  16. package/dest/index.d.ts +2 -1
  17. package/dest/index.d.ts.map +1 -1
  18. package/dest/index.js +1 -0
  19. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +104 -88
  20. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  21. package/dest/mem_pools/attestation_pool/attestation_pool.js +441 -3
  22. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  23. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  24. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  25. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  26. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  27. package/dest/mem_pools/attestation_pool/index.js +1 -2
  28. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  29. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  30. package/dest/mem_pools/attestation_pool/mocks.js +2 -2
  31. package/dest/mem_pools/index.d.ts +3 -2
  32. package/dest/mem_pools/index.d.ts.map +1 -1
  33. package/dest/mem_pools/index.js +1 -1
  34. package/dest/mem_pools/interface.d.ts +5 -5
  35. package/dest/mem_pools/interface.d.ts.map +1 -1
  36. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +3 -3
  37. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  38. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  39. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  40. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +3 -3
  41. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -1
  42. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +18 -9
  43. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  44. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  45. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +5 -2
  46. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +3 -3
  47. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  48. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +10 -4
  49. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -2
  50. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -1
  52. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +48 -5
  53. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  54. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +8 -0
  55. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +7 -5
  56. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +7 -5
  57. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
  58. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  59. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +14 -6
  60. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +4 -4
  61. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  62. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +14 -4
  63. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +3 -3
  64. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  65. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +2 -2
  66. package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -1
  67. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  68. package/dest/mem_pools/tx_pool_v2/index.js +1 -0
  69. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  70. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  72. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +22 -8
  73. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  74. package/dest/mem_pools/tx_pool_v2/interfaces.js +4 -1
  75. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +39 -5
  76. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  77. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +74 -5
  78. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +12 -3
  79. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  80. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +27 -4
  81. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +9 -4
  82. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  83. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +11 -6
  84. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +13 -5
  85. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  86. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +312 -169
  87. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +3 -3
  88. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  89. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  90. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  91. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  92. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +16 -3
  93. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  94. package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
  95. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +13 -3
  96. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  97. package/dest/msg_validators/tx_validator/double_spend_validator.js +4 -4
  98. package/dest/msg_validators/tx_validator/factory.d.ts +114 -6
  99. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  100. package/dest/msg_validators/tx_validator/factory.js +219 -58
  101. package/dest/msg_validators/tx_validator/gas_validator.d.ts +58 -3
  102. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  103. package/dest/msg_validators/tx_validator/gas_validator.js +73 -36
  104. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  105. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  106. package/dest/msg_validators/tx_validator/index.js +1 -0
  107. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  108. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  109. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  110. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +20 -4
  111. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  112. package/dest/msg_validators/tx_validator/timestamp_validator.js +6 -6
  113. package/dest/services/dummy_service.d.ts +13 -5
  114. package/dest/services/dummy_service.d.ts.map +1 -1
  115. package/dest/services/dummy_service.js +10 -4
  116. package/dest/services/encoding.d.ts +2 -2
  117. package/dest/services/encoding.d.ts.map +1 -1
  118. package/dest/services/encoding.js +4 -3
  119. package/dest/services/gossipsub/index.d.ts +3 -0
  120. package/dest/services/gossipsub/index.d.ts.map +1 -0
  121. package/dest/services/gossipsub/index.js +2 -0
  122. package/dest/services/gossipsub/scoring.d.ts +21 -3
  123. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  124. package/dest/services/gossipsub/scoring.js +24 -7
  125. package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
  126. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  127. package/dest/services/gossipsub/topic_score_params.js +346 -0
  128. package/dest/services/libp2p/libp2p_service.d.ts +91 -38
  129. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  130. package/dest/services/libp2p/libp2p_service.js +411 -321
  131. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  132. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  133. package/dest/services/peer-manager/peer_scoring.js +25 -2
  134. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +4 -3
  135. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  136. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +19 -46
  137. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +2 -6
  138. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  139. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +10 -13
  140. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  141. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +25 -46
  142. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +17 -11
  143. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  144. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +49 -15
  145. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
  146. package/dest/services/reqresp/interface.d.ts +10 -1
  147. package/dest/services/reqresp/interface.d.ts.map +1 -1
  148. package/dest/services/reqresp/interface.js +15 -1
  149. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +4 -3
  150. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  151. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +7 -1
  152. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  153. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +15 -0
  154. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  155. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  156. package/dest/services/reqresp/protocols/tx.js +20 -0
  157. package/dest/services/reqresp/reqresp.d.ts +1 -1
  158. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  159. package/dest/services/reqresp/reqresp.js +11 -4
  160. package/dest/services/service.d.ts +39 -3
  161. package/dest/services/service.d.ts.map +1 -1
  162. package/dest/services/tx_collection/config.d.ts +19 -1
  163. package/dest/services/tx_collection/config.d.ts.map +1 -1
  164. package/dest/services/tx_collection/config.js +46 -0
  165. package/dest/services/tx_collection/fast_tx_collection.d.ts +3 -1
  166. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  167. package/dest/services/tx_collection/fast_tx_collection.js +56 -36
  168. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  169. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  170. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  171. package/dest/services/tx_collection/file_store_tx_source.d.ts +37 -0
  172. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  173. package/dest/services/tx_collection/file_store_tx_source.js +90 -0
  174. package/dest/services/tx_collection/index.d.ts +2 -1
  175. package/dest/services/tx_collection/index.d.ts.map +1 -1
  176. package/dest/services/tx_collection/index.js +1 -0
  177. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  178. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  179. package/dest/services/tx_collection/instrumentation.js +2 -1
  180. package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
  181. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
  182. package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
  183. package/dest/services/tx_collection/proposal_tx_collector.d.ts +7 -6
  184. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  185. package/dest/services/tx_collection/proposal_tx_collector.js +5 -4
  186. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  187. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  188. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  189. package/dest/services/tx_collection/tx_collection.d.ts +23 -10
  190. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  191. package/dest/services/tx_collection/tx_collection.js +75 -3
  192. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  193. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  194. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  195. package/dest/services/tx_collection/tx_source.d.ts +8 -3
  196. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  197. package/dest/services/tx_collection/tx_source.js +19 -2
  198. package/dest/services/tx_file_store/config.d.ts +1 -3
  199. package/dest/services/tx_file_store/config.d.ts.map +1 -1
  200. package/dest/services/tx_file_store/config.js +0 -4
  201. package/dest/services/tx_file_store/tx_file_store.d.ts +4 -3
  202. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
  203. package/dest/services/tx_file_store/tx_file_store.js +9 -6
  204. package/dest/services/tx_provider.d.ts +4 -4
  205. package/dest/services/tx_provider.d.ts.map +1 -1
  206. package/dest/services/tx_provider.js +9 -8
  207. package/dest/test-helpers/make-test-p2p-clients.d.ts +3 -3
  208. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  209. package/dest/test-helpers/mock-pubsub.d.ts +29 -2
  210. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  211. package/dest/test-helpers/mock-pubsub.js +103 -2
  212. package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
  213. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  214. package/dest/test-helpers/reqresp-nodes.js +2 -1
  215. package/dest/test-helpers/testbench-utils.d.ts +43 -38
  216. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  217. package/dest/test-helpers/testbench-utils.js +128 -59
  218. package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -2
  219. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  220. package/dest/testbench/p2p_client_testbench_worker.js +10 -10
  221. package/dest/util.d.ts +2 -2
  222. package/dest/util.d.ts.map +1 -1
  223. package/package.json +14 -14
  224. package/src/client/factory.ts +66 -14
  225. package/src/client/interface.ts +61 -33
  226. package/src/client/p2p_client.ts +179 -236
  227. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +19 -9
  228. package/src/config.ts +35 -11
  229. package/src/errors/tx-pool.error.ts +12 -0
  230. package/src/index.ts +1 -0
  231. package/src/mem_pools/attestation_pool/attestation_pool.ts +496 -91
  232. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  233. package/src/mem_pools/attestation_pool/index.ts +9 -2
  234. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  235. package/src/mem_pools/index.ts +4 -1
  236. package/src/mem_pools/interface.ts +4 -4
  237. package/src/mem_pools/tx_pool/README.md +1 -1
  238. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +3 -3
  239. package/src/mem_pools/tx_pool_v2/README.md +76 -10
  240. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  241. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +21 -8
  242. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +5 -2
  243. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +15 -4
  244. package/src/mem_pools/tx_pool_v2/eviction/index.ts +4 -0
  245. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +49 -4
  246. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +5 -5
  247. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +5 -5
  248. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +14 -9
  249. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +24 -6
  250. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +3 -3
  251. package/src/mem_pools/tx_pool_v2/index.ts +1 -0
  252. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  253. package/src/mem_pools/tx_pool_v2/interfaces.ts +23 -8
  254. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +103 -9
  255. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +32 -5
  256. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +18 -7
  257. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +347 -166
  258. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +2 -2
  259. package/src/msg_validators/tx_validator/README.md +115 -0
  260. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  261. package/src/msg_validators/tx_validator/block_header_validator.ts +15 -3
  262. package/src/msg_validators/tx_validator/double_spend_validator.ts +11 -6
  263. package/src/msg_validators/tx_validator/factory.ts +353 -77
  264. package/src/msg_validators/tx_validator/gas_validator.ts +90 -27
  265. package/src/msg_validators/tx_validator/index.ts +1 -0
  266. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  267. package/src/msg_validators/tx_validator/timestamp_validator.ts +23 -18
  268. package/src/services/dummy_service.ts +18 -6
  269. package/src/services/encoding.ts +4 -3
  270. package/src/services/gossipsub/README.md +641 -0
  271. package/src/services/gossipsub/index.ts +2 -0
  272. package/src/services/gossipsub/scoring.ts +29 -5
  273. package/src/services/gossipsub/topic_score_params.ts +487 -0
  274. package/src/services/libp2p/libp2p_service.ts +431 -344
  275. package/src/services/peer-manager/peer_scoring.ts +25 -0
  276. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +20 -48
  277. package/src/services/reqresp/batch-tx-requester/interface.ts +1 -5
  278. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +23 -71
  279. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +63 -24
  280. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
  281. package/src/services/reqresp/interface.ts +26 -1
  282. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +4 -3
  283. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +17 -0
  284. package/src/services/reqresp/protocols/tx.ts +22 -0
  285. package/src/services/reqresp/reqresp.ts +13 -3
  286. package/src/services/service.ts +51 -2
  287. package/src/services/tx_collection/config.ts +68 -0
  288. package/src/services/tx_collection/fast_tx_collection.ts +65 -32
  289. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  290. package/src/services/tx_collection/file_store_tx_source.ts +117 -0
  291. package/src/services/tx_collection/index.ts +1 -0
  292. package/src/services/tx_collection/instrumentation.ts +7 -1
  293. package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
  294. package/src/services/tx_collection/proposal_tx_collector.ts +8 -7
  295. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  296. package/src/services/tx_collection/tx_collection.ts +113 -16
  297. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  298. package/src/services/tx_collection/tx_source.ts +22 -3
  299. package/src/services/tx_file_store/config.ts +0 -6
  300. package/src/services/tx_file_store/tx_file_store.ts +10 -8
  301. package/src/services/tx_provider.ts +10 -9
  302. package/src/test-helpers/make-test-p2p-clients.ts +3 -3
  303. package/src/test-helpers/mock-pubsub.ts +143 -3
  304. package/src/test-helpers/reqresp-nodes.ts +2 -1
  305. package/src/test-helpers/testbench-utils.ts +127 -71
  306. package/src/testbench/p2p_client_testbench_worker.ts +22 -15
  307. package/src/util.ts +7 -1
  308. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  309. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  310. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  311. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  312. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  313. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  314. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  315. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/interfaces.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,8 @@
2
2
  * Default configuration values for TxPoolV2.
3
3
  */ export const DEFAULT_TX_POOL_V2_CONFIG = {
4
4
  maxPendingTxCount: 0,
5
- archivedTxLimit: 0
5
+ archivedTxLimit: 0,
6
+ minTxPoolAgeMs: 2_000,
7
+ evictedTxCacheSize: 10_000,
8
+ dropTransactionsProbability: 0
6
9
  };
@@ -1,6 +1,29 @@
1
- import type { L2BlockId } from '@aztec/stdlib/block';
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { BlockHash, type L2BlockId } from '@aztec/stdlib/block';
4
+ import { Gas } from '@aztec/stdlib/gas';
2
5
  import type { Tx } from '@aztec/stdlib/tx';
3
- import type { PreAddResult } from './eviction/interfaces.js';
6
+ import { type PreAddResult } from './eviction/interfaces.js';
7
+ /** Validator-compatible data interface, mirroring the subset of PrivateKernelTailCircuitPublicInputs used by validators. */
8
+ export type TxMetaValidationData = {
9
+ getNonEmptyNullifiers(): Fr[];
10
+ expirationTimestamp: bigint;
11
+ /** Whether the tx has public calls. Used to select the correct L2 gas minimum. */
12
+ forPublic?: unknown;
13
+ constants: {
14
+ anchorBlockHeader: {
15
+ hash(): Promise<BlockHash>;
16
+ globalVariables: {
17
+ blockNumber: BlockNumber;
18
+ };
19
+ };
20
+ txContext: {
21
+ gasSettings: {
22
+ gasLimits: Gas;
23
+ };
24
+ };
25
+ };
26
+ };
4
27
  /**
5
28
  * Lightweight in-memory representation of a transaction.
6
29
  * Stored for every tx in the pool to enable efficient queries and challenges
@@ -27,13 +50,20 @@ export type TxMetaData = {
27
50
  /** Non-empty nullifiers emitted by the transaction (hex strings) */
28
51
  readonly nullifiers: readonly string[];
29
52
  /** Timestamp by which the transaction must be included (for expiration checks) */
30
- readonly includeByTimestamp: bigint;
53
+ readonly expirationTimestamp: bigint;
54
+ /** Validator-compatible data, providing the same access patterns as Tx.data */
55
+ readonly data: TxMetaValidationData;
56
+ /** Timestamp (ms) when the tx was received into the pool. 0 for hydrated txs (always eligible). */
57
+ receivedAt: number;
58
+ /** Estimated memory footprint of this metadata object in bytes */
59
+ readonly estimatedSizeBytes: number;
31
60
  };
32
61
  /** Transaction state derived from TxMetaData fields and pool protection status */
33
- export type TxState = 'pending' | 'protected' | 'mined';
62
+ export type TxState = 'pending' | 'protected' | 'mined' | 'deleted';
34
63
  /**
35
64
  * Builds TxMetaData from a full Tx object.
36
65
  * Extracts all relevant fields for efficient in-memory storage and querying.
66
+ * Fr values are captured in closures for zero-cost re-validation.
37
67
  */
38
68
  export declare function buildTxMetaData(tx: Tx): Promise<TxMetaData>;
39
69
  /** Minimal fields required for priority comparison. */
@@ -67,5 +97,9 @@ export declare function comparePriority(a: PriorityComparable, b: PriorityCompar
67
97
  * @param getMetadata - Accessor to get metadata for a tx hash
68
98
  */
69
99
  export declare function checkNullifierConflict(incomingMeta: TxMetaData, getTxHashByNullifier: (nullifier: string) => string | undefined, getMetadata: (txHash: string) => TxMetaData | undefined): PreAddResult;
100
+ /** Creates a stub TxMetaValidationData for tests that don't exercise validators. */
101
+ export declare function stubTxMetaValidationData(overrides?: {
102
+ expirationTimestamp?: bigint;
103
+ }): TxMetaValidationData;
70
104
  export {};
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfbWV0YWRhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbF92Mi90eF9tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUkzQyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxNQUFNLFVBQVUsR0FBRztJQUN2Qix5Q0FBeUM7SUFDekMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFeEIsNkZBQTZGO0lBQzdGLGNBQWMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUUzQiwrRUFBK0U7SUFDL0UsUUFBUSxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUV2QyxnRUFBZ0U7SUFDaEUsUUFBUSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFFN0IsMENBQTBDO0lBQzFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBRTFCLHlDQUF5QztJQUN6QyxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUU3QixvQkFBb0I7SUFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFFMUIsb0VBQW9FO0lBQ3BFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsU0FBUyxNQUFNLEVBQUUsQ0FBQztJQUV2QyxrRkFBa0Y7SUFDbEYsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztDQUNyQyxDQUFDO0FBRUYsa0ZBQWtGO0FBQ2xGLE1BQU0sTUFBTSxPQUFPLEdBQUcsU0FBUyxHQUFHLFdBQVcsR0FBRyxPQUFPLENBQUM7QUFFeEQ7OztHQUdHO0FBQ0gsd0JBQXNCLGVBQWUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FvQmpFO0FBRUQsdURBQXVEO0FBQ3ZELEtBQUssa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFFckU7OztHQUdHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUV2RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBSTFEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixlQUFlLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxrQkFBa0IsR0FBRyxNQUFNLENBTXBGO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILHdCQUFnQixzQkFBc0IsQ0FDcEMsWUFBWSxFQUFFLFVBQVUsRUFDeEIsb0JBQW9CLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxLQUFLLE1BQU0sR0FBRyxTQUFTLEVBQy9ELFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssVUFBVSxHQUFHLFNBQVMsR0FDdEQsWUFBWSxDQW1DZCJ9
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfbWV0YWRhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbF92Mi90eF9tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEMsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJM0MsT0FBTyxFQUFFLEtBQUssWUFBWSxFQUF1QixNQUFNLDBCQUEwQixDQUFDO0FBRWxGLDRIQUE0SDtBQUM1SCxNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMscUJBQXFCLElBQUksRUFBRSxFQUFFLENBQUM7SUFDOUIsbUJBQW1CLEVBQUUsTUFBTSxDQUFDO0lBQzVCLGtGQUFrRjtJQUNsRixTQUFTLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDcEIsU0FBUyxFQUFFO1FBQ1QsaUJBQWlCLEVBQUU7WUFDakIsSUFBSSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQixlQUFlLEVBQUU7Z0JBQ2YsV0FBVyxFQUFFLFdBQVcsQ0FBQzthQUMxQixDQUFDO1NBQ0gsQ0FBQztRQUNGLFNBQVMsRUFBRTtZQUNULFdBQVcsRUFBRTtnQkFBRSxTQUFTLEVBQUUsR0FBRyxDQUFBO2FBQUUsQ0FBQztTQUNqQyxDQUFDO0tBQ0gsQ0FBQztDQUNILENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxNQUFNLFVBQVUsR0FBRztJQUN2Qix5Q0FBeUM7SUFDekMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFFeEIsNkZBQTZGO0lBQzdGLGNBQWMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUUzQiwrRUFBK0U7SUFDL0UsUUFBUSxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUV2QyxnRUFBZ0U7SUFDaEUsUUFBUSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFFN0IsMENBQTBDO0lBQzFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBRTFCLHlDQUF5QztJQUN6QyxRQUFRLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUU3QixvQkFBb0I7SUFDcEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFFMUIsb0VBQW9FO0lBQ3BFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsU0FBUyxNQUFNLEVBQUUsQ0FBQztJQUV2QyxrRkFBa0Y7SUFDbEYsUUFBUSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQztJQUVyQywrRUFBK0U7SUFDL0UsUUFBUSxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQztJQUVwQyxtR0FBbUc7SUFDbkcsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUVuQixrRUFBa0U7SUFDbEUsUUFBUSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztDQUNyQyxDQUFDO0FBRUYsa0ZBQWtGO0FBQ2xGLE1BQU0sTUFBTSxPQUFPLEdBQUcsU0FBUyxHQUFHLFdBQVcsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO0FBRXBFOzs7O0dBSUc7QUFDSCx3QkFBc0IsZUFBZSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQXlDakU7QUF1QkQsdURBQXVEO0FBQ3ZELEtBQUssa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEdBQUcsYUFBYSxDQUFDLENBQUM7QUFFckU7OztHQUdHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUV2RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBSTFEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixlQUFlLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsRUFBRSxrQkFBa0IsR0FBRyxNQUFNLENBTXBGO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILHdCQUFnQixzQkFBc0IsQ0FDcEMsWUFBWSxFQUFFLFVBQVUsRUFDeEIsb0JBQW9CLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxLQUFLLE1BQU0sR0FBRyxTQUFTLEVBQy9ELFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssVUFBVSxHQUFHLFNBQVMsR0FDdEQsWUFBWSxDQXVDZDtBQUVELG9GQUFvRjtBQUNwRix3QkFBZ0Isd0JBQXdCLENBQUMsU0FBUyxHQUFFO0lBQUUsbUJBQW1CLENBQUMsRUFBRSxNQUFNLENBQUE7Q0FBTyxHQUFHLG9CQUFvQixDQWMvRyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"tx_metadata.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_metadata.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAI3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,6FAA6F;IAC7F,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B,+EAA+E;IAC/E,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEvC,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvC,kFAAkF;IAClF,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACrC,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;AAExD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAoBjE;AAED,uDAAuD;AACvD,KAAK,kBAAkB,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,aAAa,CAAC,CAAC;AAErE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAMpF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,UAAU,EACxB,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EAC/D,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,GACtD,YAAY,CAmCd"}
1
+ {"version":3,"file":"tx_metadata.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_metadata.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,27 @@
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
1
2
  import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
4
+ import { BlockHash } from '@aztec/stdlib/block';
5
+ import { Gas } from '@aztec/stdlib/gas';
3
6
  import { getFeePayerBalanceDelta } from '../../msg_validators/tx_validator/fee_payer_balance.js';
4
7
  import { getTxPriorityFee } from '../tx_pool/priority.js';
8
+ import { TxPoolRejectionCode } from './eviction/interfaces.js';
5
9
  /**
6
10
  * Builds TxMetaData from a full Tx object.
7
11
  * Extracts all relevant fields for efficient in-memory storage and querying.
12
+ * Fr values are captured in closures for zero-cost re-validation.
8
13
  */ export async function buildTxMetaData(tx) {
9
14
  const txHash = tx.getTxHash().toString();
10
- const anchorBlockHeaderHash = (await tx.data.constants.anchorBlockHeader.hash()).toString();
15
+ const nullifierFrs = tx.data.getNonEmptyNullifiers();
16
+ const nullifiers = nullifierFrs.map((n)=>n.toString());
17
+ const anchorBlockHeaderHashFr = await tx.data.constants.anchorBlockHeader.hash();
18
+ const anchorBlockHeaderHash = anchorBlockHeaderHashFr.toString();
19
+ const expirationTimestamp = tx.data.expirationTimestamp;
20
+ const anchorBlockNumber = tx.data.constants.anchorBlockHeader.globalVariables.blockNumber;
11
21
  const priorityFee = getTxPriorityFee(tx);
12
22
  const feePayer = tx.data.feePayer.toString();
13
- const nullifiers = tx.data.getNonEmptyNullifiers().map((n)=>n.toString());
14
- const includeByTimestamp = tx.data.includeByTimestamp;
15
23
  const { feeLimit, claimAmount } = await getFeePayerBalanceDelta(tx, ProtocolContractAddress.FeeJuice);
24
+ const estimatedSizeBytes = estimateTxMetaDataSize(nullifiers.length);
16
25
  return {
17
26
  txHash,
18
27
  anchorBlockHeaderHash,
@@ -21,9 +30,46 @@ import { getTxPriorityFee } from '../tx_pool/priority.js';
21
30
  claimAmount,
22
31
  feeLimit,
23
32
  nullifiers,
24
- includeByTimestamp
33
+ expirationTimestamp,
34
+ receivedAt: 0,
35
+ estimatedSizeBytes,
36
+ data: {
37
+ getNonEmptyNullifiers: ()=>nullifierFrs,
38
+ expirationTimestamp,
39
+ forPublic: !!tx.data.forPublic,
40
+ constants: {
41
+ anchorBlockHeader: {
42
+ hash: ()=>Promise.resolve(anchorBlockHeaderHashFr),
43
+ globalVariables: {
44
+ blockNumber: anchorBlockNumber
45
+ }
46
+ },
47
+ txContext: {
48
+ gasSettings: {
49
+ gasLimits: tx.data.constants.txContext.gasSettings.gasLimits
50
+ }
51
+ }
52
+ }
53
+ }
25
54
  };
26
55
  }
56
+ // V8 JS object overhead (~64 bytes for a plain object with hidden class).
57
+ // String overhead: ~32 bytes header + 1 byte per ASCII char (V8 one-byte strings).
58
+ // Hex string (0x + 64 hex chars = 66 chars): ~98 bytes per string.
59
+ // bigint: ~32 bytes. number: 8 bytes. Fr: ~80 bytes (32 data + object overhead).
60
+ const OBJECT_OVERHEAD = 64;
61
+ const HEX_STRING_BYTES = 98;
62
+ const BIGINT_BYTES = 32;
63
+ const FR_BYTES = 80;
64
+ // Fixed cost: object shell + txHash + anchorBlockHeaderHash + feePayer (3 hex strings)
65
+ // + priorityFee + claimAmount + feeLimit + includeByTimestamp (4 bigints)
66
+ // + receivedAt (number, 8 bytes) + estimatedSizeBytes (number, 8 bytes)
67
+ // + data closure object (~OBJECT_OVERHEAD + anchorBlockHeaderHashFr Fr + anchorBlockNumber number)
68
+ const FIXED_METADATA_BYTES = OBJECT_OVERHEAD + 3 * HEX_STRING_BYTES + 4 * BIGINT_BYTES + 8 + 8 + OBJECT_OVERHEAD + FR_BYTES + 8;
69
+ /** Estimates the in-memory size of a TxMetaData object based on the number of nullifiers. */ function estimateTxMetaDataSize(nullifierCount) {
70
+ // Per nullifier: one hex string in nullifiers[] + one Fr in the captured nullifierFrs[]
71
+ return FIXED_METADATA_BYTES + nullifierCount * (HEX_STRING_BYTES + FR_BYTES);
72
+ }
27
73
  /**
28
74
  * Compares two priority fees in ascending order.
29
75
  * Returns negative if a < b, positive if a > b, 0 if equal.
@@ -84,7 +130,11 @@ import { getTxPriorityFee } from '../tx_pool/priority.js';
84
130
  return {
85
131
  shouldIgnore: true,
86
132
  txHashesToEvict: [],
87
- reason: `nullifier conflict with ${conflictingHashStr}`
133
+ reason: {
134
+ code: TxPoolRejectionCode.NULLIFIER_CONFLICT,
135
+ message: `Nullifier conflict with existing tx ${conflictingHashStr}`,
136
+ conflictingTxHash: conflictingHashStr
137
+ }
88
138
  };
89
139
  }
90
140
  }
@@ -93,3 +143,22 @@ import { getTxPriorityFee } from '../tx_pool/priority.js';
93
143
  txHashesToEvict
94
144
  };
95
145
  }
146
+ /** Creates a stub TxMetaValidationData for tests that don't exercise validators. */ export function stubTxMetaValidationData(overrides = {}) {
147
+ return {
148
+ getNonEmptyNullifiers: ()=>[],
149
+ expirationTimestamp: overrides.expirationTimestamp ?? 0n,
150
+ constants: {
151
+ anchorBlockHeader: {
152
+ hash: ()=>Promise.resolve(new BlockHash(Fr.ZERO)),
153
+ globalVariables: {
154
+ blockNumber: BlockNumber(0)
155
+ }
156
+ },
157
+ txContext: {
158
+ gasSettings: {
159
+ gasLimits: Gas.empty()
160
+ }
161
+ }
162
+ }
163
+ };
164
+ }
@@ -31,7 +31,13 @@ export declare class TxPoolIndices {
31
31
  * Iterates pending transaction hashes in priority order.
32
32
  * @param order - 'desc' for highest priority first, 'asc' for lowest priority first
33
33
  */
34
- iteratePendingByPriority(order: 'asc' | 'desc'): Generator<string>;
34
+ iteratePendingByPriority(order: 'asc' | 'desc', filter?: (hash: string) => boolean): Generator<string>;
35
+ /**
36
+ * Iterates pending transaction hashes in priority order, skipping txs received after maxReceivedAt.
37
+ * @param order - 'desc' for highest priority first, 'asc' for lowest priority first
38
+ * @param maxReceivedAt - Only yield txs with receivedAt <= this value
39
+ */
40
+ iterateEligiblePendingByPriority(order: 'asc' | 'desc', maxReceivedAt: number): Generator<string>;
35
41
  /** Iterates all metadata entries */
36
42
  iterateMetadata(): Generator<[string, TxMetaData]>;
37
43
  /** Adds a new pending transaction to all indices */
@@ -87,13 +93,16 @@ export declare class TxPoolIndices {
87
93
  filterUnprotected(txs: TxMetaData[]): TxMetaData[];
88
94
  /** Filters to transactions that have metadata and are not mined */
89
95
  filterRestorable(txHashes: string[]): TxMetaData[];
90
- /** Counts transactions by state */
96
+ /** Counts transactions by state and estimates total metadata memory usage */
91
97
  countTxs(): {
92
98
  pending: number;
93
99
  protected: number;
94
100
  mined: number;
101
+ totalMetadataBytes: number;
95
102
  };
103
+ /** Returns the estimated total memory consumed by all metadata objects */
104
+ getTotalMetadataBytes(): number;
96
105
  /** Gets all mined transactions with their block IDs */
97
106
  getMinedTxs(): [string, L2BlockId][];
98
107
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF9pbmRpY2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF9pbmRpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsS0FBSyxPQUFPLEVBQTZCLE1BQU0sa0JBQWtCLENBQUM7QUFFNUY7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxxQkFBYSxhQUFhOztJQWdCeEI7Ozs7OztPQU1HO0lBQ0gsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQVFwQztJQUVELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBRWxEO0lBRUQsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUUzQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsVUFBVSxJQUFJLE1BQU0sQ0FFbkI7SUFNRDs7O09BR0c7SUFDRix3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBZWxFO0lBRUQsb0NBQW9DO0lBQ25DLGVBQWUsSUFBSSxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FFbEQ7SUFNRCxvREFBb0Q7SUFDcEQsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsSUFBSSxDQUdqQztJQUVELHNFQUFzRTtJQUN0RSxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FHckQ7SUFFRCxrRUFBa0U7SUFDbEUsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEdB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
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF9pbmRpY2VzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF9pbmRpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxVQUFVLEVBQUUsS0FBSyxPQUFPLEVBQTZCLE1BQU0sa0JBQWtCLENBQUM7QUFFNUY7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxxQkFBYSxhQUFhOztJQWdCeEI7Ozs7OztPQU1HO0lBQ0gsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQVFwQztJQUVELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBRWxEO0lBRUQsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUUzQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsVUFBVSxJQUFJLE1BQU0sQ0FFbkI7SUFNRDs7O09BR0c7SUFDRix3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FpQnRHO0lBRUQ7Ozs7T0FJRztJQUNGLGdDQUFnQyxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQU9qRztJQUVELG9DQUFvQztJQUNuQyxlQUFlLElBQUksU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBRWxEO0lBTUQsb0RBQW9EO0lBQ3BELFVBQVUsQ0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"tx_pool_indices.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_indices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx_pool_indices.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_indices.ts"],"names":[],"mappings":"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"}
@@ -52,7 +52,7 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
52
52
  /**
53
53
  * Iterates pending transaction hashes in priority order.
54
54
  * @param order - 'desc' for highest priority first, 'asc' for lowest priority first
55
- */ *iteratePendingByPriority(order) {
55
+ */ *iteratePendingByPriority(order, filter) {
56
56
  // Use compareFee from tx_metadata, swap args for descending order
57
57
  const feeCompareFn = order === 'desc' ? (a, b)=>compareFee(b, a) : compareFee;
58
58
  const hashCompareFn = order === 'desc' ? (a, b)=>compareTxHash(b, a) : compareTxHash;
@@ -66,10 +66,23 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
66
66
  ...hashesAtFee
67
67
  ].sort(hashCompareFn);
68
68
  for (const hash of sortedHashes){
69
- yield hash;
69
+ if (filter === undefined || filter(hash)) {
70
+ yield hash;
71
+ }
70
72
  }
71
73
  }
72
74
  }
75
+ /**
76
+ * Iterates pending transaction hashes in priority order, skipping txs received after maxReceivedAt.
77
+ * @param order - 'desc' for highest priority first, 'asc' for lowest priority first
78
+ * @param maxReceivedAt - Only yield txs with receivedAt <= this value
79
+ */ *iterateEligiblePendingByPriority(order, maxReceivedAt) {
80
+ const filter = (hash)=>{
81
+ const meta = this.#metadata.get(hash);
82
+ return meta !== undefined && meta.receivedAt <= maxReceivedAt;
83
+ };
84
+ yield* this.iteratePendingByPriority(order, filter);
85
+ }
73
86
  /** Iterates all metadata entries */ *iterateMetadata() {
74
87
  yield* this.#metadata;
75
88
  }
@@ -252,11 +265,13 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
252
265
  // ============================================================================
253
266
  // METRICS
254
267
  // ============================================================================
255
- /** Counts transactions by state */ countTxs() {
268
+ /** Counts transactions by state and estimates total metadata memory usage */ countTxs() {
256
269
  let pending = 0;
257
270
  let protected_ = 0;
258
271
  let mined = 0;
272
+ let totalMetadataBytes = 0;
259
273
  for (const meta of this.#metadata.values()){
274
+ totalMetadataBytes += meta.estimatedSizeBytes;
260
275
  const state = this.getTxState(meta);
261
276
  if (state === 'pending') {
262
277
  pending++;
@@ -269,9 +284,17 @@ import { compareFee, compareTxHash } from './tx_metadata.js';
269
284
  return {
270
285
  pending,
271
286
  protected: protected_,
272
- mined
287
+ mined,
288
+ totalMetadataBytes
273
289
  };
274
290
  }
291
+ /** Returns the estimated total memory consumed by all metadata objects */ getTotalMetadataBytes() {
292
+ let total = 0;
293
+ for (const meta of this.#metadata.values()){
294
+ total += meta.estimatedSizeBytes;
295
+ }
296
+ return total;
297
+ }
275
298
  /** Gets all mined transactions with their block IDs */ getMinedTxs() {
276
299
  const result = [];
277
300
  for (const [txHash, meta] of this.#metadata){
@@ -1,5 +1,6 @@
1
1
  import { SlotNumber } from '@aztec/foundation/branded-types';
2
2
  import { type Logger } from '@aztec/foundation/log';
3
+ import { DateProvider } from '@aztec/foundation/timer';
3
4
  import type { TypedEventEmitter } from '@aztec/foundation/types';
4
5
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
5
6
  import type { L2Block, L2BlockId } from '@aztec/stdlib/block';
@@ -16,11 +17,12 @@ declare const AztecKVTxPoolV2_base: new () => TypedEventEmitter<TxPoolV2Events>;
16
17
  */
17
18
  export declare class AztecKVTxPoolV2 extends AztecKVTxPoolV2_base implements TxPoolV2 {
18
19
  #private;
19
- constructor(store: AztecAsyncKVStore, archiveStore: AztecAsyncKVStore, deps: TxPoolV2Dependencies, telemetry?: TelemetryClient, config?: Partial<TxPoolV2Config>, log?: Logger);
20
+ constructor(store: AztecAsyncKVStore, archiveStore: AztecAsyncKVStore, deps: TxPoolV2Dependencies, telemetry?: TelemetryClient, config?: Partial<TxPoolV2Config>, dateProvider?: DateProvider, log?: Logger);
20
21
  addPendingTxs(txs: Tx[], opts?: {
21
22
  source?: string;
23
+ feeComparisonOnly?: boolean;
22
24
  }): Promise<AddTxsResult>;
23
- canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored' | 'rejected'>;
25
+ canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored'>;
24
26
  addProtectedTxs(txs: Tx[], block: BlockHeader, opts?: {
25
27
  source?: string;
26
28
  }): Promise<void>;
@@ -30,7 +32,9 @@ export declare class AztecKVTxPoolV2 extends AztecKVTxPoolV2_base implements TxP
30
32
  }): Promise<void>;
31
33
  handleMinedBlock(block: L2Block): Promise<void>;
32
34
  prepareForSlot(slotNumber: SlotNumber): Promise<void>;
33
- handlePrunedBlocks(latestBlock: L2BlockId): Promise<void>;
35
+ handlePrunedBlocks(latestBlock: L2BlockId, options?: {
36
+ deleteAllTxs?: boolean;
37
+ }): Promise<void>;
34
38
  handleFailedExecution(txHashes: TxHash[]): Promise<void>;
35
39
  handleFinalizedBlock(block: BlockHeader): Promise<void>;
36
40
  getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
@@ -38,6 +42,7 @@ export declare class AztecKVTxPoolV2 extends AztecKVTxPoolV2_base implements TxP
38
42
  hasTxs(txHashes: TxHash[]): Promise<boolean[]>;
39
43
  getTxStatus(txHash: TxHash): Promise<TxState | 'deleted' | undefined>;
40
44
  getPendingTxHashes(): Promise<TxHash[]>;
45
+ getEligiblePendingTxHashes(): Promise<TxHash[]>;
41
46
  getPendingTxCount(): Promise<number>;
42
47
  getMinedTxHashes(): Promise<[TxHash, L2BlockId][]>;
43
48
  getMinedTxCount(): Promise<number>;
@@ -52,4 +57,4 @@ export declare class AztecKVTxPoolV2 extends AztecKVTxPoolV2_base implements TxP
52
57
  stop(): Promise<void>;
53
58
  }
54
59
  export {};
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Mi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL3R4X3Bvb2xfdjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUtuRixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwSCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHaEQ7Ozs7O0dBS0c7QUFDSCxxQkFBYSxlQUFnQixTQUFRLG9CQUE4RCxZQUFXLFFBQVE7O0lBU3BILFlBQ0UsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixZQUFZLEVBQUUsaUJBQWlCLEVBQy9CLElBQUksRUFBRSxvQkFBb0IsRUFDMUIsU0FBUyxHQUFFLGVBQXNDLEVBQ2pELE1BQU0sR0FBRSxPQUFPLENBQUMsY0FBYyxDQUFNLEVBQ3BDLEdBQUcsU0FBaUMsRUF5QnJDO0lBUUQsYUFBYSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUU7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
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Mi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL3R4X3Bvb2xfdjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFLbkYsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEgsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBR2hEOzs7OztHQUtHO0FBQ0gscUJBQWEsZUFBZ0IsU0FBUSxvQkFBOEQsWUFBVyxRQUFROztJQVNwSCxZQUNFLEtBQUssRUFBRSxpQkFBaUIsRUFDeEIsWUFBWSxFQUFFLGlCQUFpQixFQUMvQixJQUFJLEVBQUUsb0JBQW9CLEVBQzFCLFNBQVMsR0FBRSxlQUFzQyxFQUNqRCxNQUFNLEdBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBTSxFQUNwQyxZQUFZLEdBQUUsWUFBaUMsRUFDL0MsR0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"tx_pool_v2.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAKnF,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;;AAGhD;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,oBAA8D,YAAW,QAAQ;;IASpH,YACE,KAAK,EAAE,iBAAiB,EACxB,YAAY,EAAE,iBAAiB,EAC/B,IAAI,EAAE,oBAAoB,EAC1B,SAAS,GAAE,eAAsC,EACjD,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,EACpC,GAAG,SAAiC,EAyBrC;IAQD,aAAa,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAE9E;IAED,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,CAEpE;IAED,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F;IAED,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEpE;IAED,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAExF;IAID,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9C;IAED,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD;IAED,kBAAkB,CAAC,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;IAED,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvD;IAED,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtD;IAID,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAEnD;IAED,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAE5D;IAED,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAE7C;IAED,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAEpE;IAED,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAEtC;IAED,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnC;IAED,gBAAgB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAEjD;IAED,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAEjC;IAED,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAE1B;IAED,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAE3D;IAED,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEzD;IAID,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3D;IAID;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAK1B;CACF"}
1
+ {"version":3,"file":"tx_pool_v2.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { SerialQueue } from '@aztec/foundation/queue';
3
+ import { DateProvider } from '@aztec/foundation/timer';
3
4
  import { TxHash } from '@aztec/stdlib/tx';
4
5
  import { getTelemetryClient } from '@aztec/telemetry-client';
5
6
  import EventEmitter from 'node:events';
@@ -18,7 +19,7 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
18
19
  #telemetry;
19
20
  #log;
20
21
  #started = false;
21
- constructor(store, archiveStore, deps, telemetry = getTelemetryClient(), config = {}, log = createLogger('p2p:tx_pool_v2')){
22
+ constructor(store, archiveStore, deps, telemetry = getTelemetryClient(), config = {}, dateProvider = new DateProvider(), log = createLogger('p2p:tx_pool_v2')){
22
23
  super();
23
24
  this.#store = store;
24
25
  this.#telemetry = telemetry;
@@ -43,7 +44,7 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
43
44
  }
44
45
  };
45
46
  // Create the implementation
46
- this.#impl = new TxPoolV2Impl(store, archiveStore, deps, callbacks, config, log);
47
+ this.#impl = new TxPoolV2Impl(store, archiveStore, deps, callbacks, telemetry, config, dateProvider, log);
47
48
  }
48
49
  // ============================================================================
49
50
  // PUBLIC API - All methods queue to the implementation
@@ -59,7 +60,7 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
59
60
  return this.#queue.put(()=>this.#impl.addProtectedTxs(txs, block, opts));
60
61
  }
61
62
  protectTxs(txHashes, block) {
62
- return this.#queue.put(()=>Promise.resolve(this.#impl.protectTxs(txHashes, block)));
63
+ return this.#queue.put(()=>this.#impl.protectTxs(txHashes, block));
63
64
  }
64
65
  addMinedTxs(txs, block, opts = {}) {
65
66
  return this.#queue.put(()=>this.#impl.addMinedTxs(txs, block, opts));
@@ -71,8 +72,8 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
71
72
  prepareForSlot(slotNumber) {
72
73
  return this.#queue.put(()=>this.#impl.prepareForSlot(slotNumber));
73
74
  }
74
- handlePrunedBlocks(latestBlock) {
75
- return this.#queue.put(()=>this.#impl.handlePrunedBlocks(latestBlock));
75
+ handlePrunedBlocks(latestBlock, options) {
76
+ return this.#queue.put(()=>this.#impl.handlePrunedBlocks(latestBlock, options));
76
77
  }
77
78
  handleFailedExecution(txHashes) {
78
79
  return this.#queue.put(()=>this.#impl.handleFailedExecution(txHashes));
@@ -96,6 +97,9 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
96
97
  getPendingTxHashes() {
97
98
  return this.#queue.put(()=>Promise.resolve(this.#impl.getPendingTxHashes()));
98
99
  }
100
+ getEligiblePendingTxHashes() {
101
+ return this.#queue.put(()=>Promise.resolve(this.#impl.getEligiblePendingTxHashes()));
102
+ }
99
103
  getPendingTxCount() {
100
104
  return this.#queue.put(()=>Promise.resolve(this.#impl.getPendingTxCount()));
101
105
  }
@@ -139,7 +143,8 @@ import { TxPoolV2Impl } from './tx_pool_v2_impl.js';
139
143
  itemCount: {
140
144
  pending: counts.pending,
141
145
  protected: counts.protected,
142
- mined: counts.mined
146
+ mined: counts.mined,
147
+ softDeleted: counts.softDeleted
143
148
  }
144
149
  });
145
150
  }), ()=>this.#store.estimateSize());
@@ -1,8 +1,10 @@
1
1
  import { SlotNumber } from '@aztec/foundation/branded-types';
2
2
  import type { Logger } from '@aztec/foundation/log';
3
+ import type { DateProvider } from '@aztec/foundation/timer';
3
4
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
5
  import type { L2Block, L2BlockId } from '@aztec/stdlib/block';
5
6
  import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
7
+ import type { TelemetryClient } from '@aztec/telemetry-client';
6
8
  import { type AddTxsResult, type PoolReadAccess, type TxPoolV2Config, type TxPoolV2Dependencies } from './interfaces.js';
7
9
  import { type TxState } from './tx_metadata.js';
8
10
  /**
@@ -21,7 +23,7 @@ export interface TxPoolV2Callbacks {
21
23
  */
22
24
  export declare class TxPoolV2Impl {
23
25
  #private;
24
- constructor(store: AztecAsyncKVStore, archiveStore: AztecAsyncKVStore, deps: TxPoolV2Dependencies, callbacks: TxPoolV2Callbacks, config: Partial<TxPoolV2Config> | undefined, log: Logger);
26
+ constructor(store: AztecAsyncKVStore, archiveStore: AztecAsyncKVStore, deps: TxPoolV2Dependencies, callbacks: TxPoolV2Callbacks, telemetry: TelemetryClient, config: Partial<TxPoolV2Config> | undefined, dateProvider: DateProvider, log: Logger);
25
27
  /**
26
28
  * Hydrates the in-memory state from the database on startup.
27
29
  * Pipeline: Load → Check Mined Status → Partition → Validate Non-Mined → Rebuild Pending Pool → Delete Invalid
@@ -32,18 +34,21 @@ export declare class TxPoolV2Impl {
32
34
  hydrateFromDatabase(): Promise<void>;
33
35
  addPendingTxs(txs: Tx[], opts: {
34
36
  source?: string;
37
+ feeComparisonOnly?: boolean;
35
38
  }): Promise<AddTxsResult>;
36
- canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored' | 'rejected'>;
39
+ canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored'>;
37
40
  addProtectedTxs(txs: Tx[], block: BlockHeader, opts: {
38
41
  source?: string;
39
42
  }): Promise<void>;
40
- protectTxs(txHashes: TxHash[], block: BlockHeader): TxHash[];
43
+ protectTxs(txHashes: TxHash[], block: BlockHeader): Promise<TxHash[]>;
41
44
  addMinedTxs(txs: Tx[], block: BlockHeader, opts: {
42
45
  source?: string;
43
46
  }): Promise<void>;
44
47
  handleMinedBlock(block: L2Block): Promise<void>;
45
48
  prepareForSlot(slotNumber: SlotNumber): Promise<void>;
46
- handlePrunedBlocks(latestBlock: L2BlockId): Promise<void>;
49
+ handlePrunedBlocks(latestBlock: L2BlockId, options?: {
50
+ deleteAllTxs?: boolean;
51
+ }): Promise<void>;
47
52
  handleFailedExecution(txHashes: TxHash[]): Promise<void>;
48
53
  handleFinalizedBlock(block: BlockHeader): Promise<void>;
49
54
  getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
@@ -51,6 +56,7 @@ export declare class TxPoolV2Impl {
51
56
  hasTxs(txHashes: TxHash[]): boolean[];
52
57
  getTxStatus(txHash: TxHash): TxState | undefined;
53
58
  getPendingTxHashes(): TxHash[];
59
+ getEligiblePendingTxHashes(): TxHash[];
54
60
  getPendingTxCount(): number;
55
61
  getMinedTxHashes(): [TxHash, L2BlockId][];
56
62
  getMinedTxCount(): number;
@@ -64,6 +70,8 @@ export declare class TxPoolV2Impl {
64
70
  pending: number;
65
71
  protected: number;
66
72
  mined: number;
73
+ softDeleted: number;
74
+ totalMetadataBytes: number;
67
75
  };
68
76
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Ml9pbXBsLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF92Ml9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQztBQWU3RSxPQUFPLEVBQ0wsS0FBSyxZQUFZLEVBRWpCLEtBQUssY0FBYyxFQUNuQixLQUFLLGNBQWMsRUFDbkIsS0FBSyxvQkFBb0IsRUFDMUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQW1CLEtBQUssT0FBTyxFQUEyQyxNQUFNLGtCQUFrQixDQUFDO0FBRzFHOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGlCQUFpQjtJQUNoQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFO1FBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQUUsS0FBSyxJQUFJLENBQUM7SUFDM0QsWUFBWSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxLQUFLLElBQUksQ0FBQztDQUN2RDtBQUVEOzs7O0dBSUc7QUFDSCxxQkFBYSxZQUFZOztJQW9CdkIsWUFDRSxLQUFLLEVBQUUsaUJBQWlCLEVBQ3hCLFlBQVksRUFBRSxpQkFBaUIsRUFDL0IsSUFBSSxFQUFFLG9CQUFvQixFQUMxQixTQUFTLEVBQUUs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
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF92Ml9pbXBsLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvdHhfcG9vbF92Ml9pbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUl4RSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBb0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQW9CL0QsT0FBTyxFQUNMLEtBQUssWUFBWSxFQUVqQixLQUFLLGNBQWMsRUFDbkIsS0FBSyxjQUFjLEVBQ25CLEtBQUssb0JBQW9CLEVBQzFCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFtQixLQUFLLE9BQU8sRUFBMkMsTUFBTSxrQkFBa0IsQ0FBQztBQUcxRzs7R0FFRztBQUNILE1BQU0sV0FBVyxpQkFBaUI7SUFDaEMsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRTtRQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEtBQUssSUFBSSxDQUFDO0lBQzNELFlBQVksRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUM7Q0FDdkQ7QUFFRDs7OztHQUlHO0FBQ0gscUJBQWEs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
@@ -1 +1 @@
1
- {"version":3,"file":"tx_pool_v2_impl.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx_pool_v2_impl.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts"],"names":[],"mappings":"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"}