@aztec/p2p 0.0.1-commit.aada20e3 → 0.0.1-commit.b33fc05d0

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 (378) hide show
  1. package/dest/client/factory.d.ts +11 -11
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +45 -15
  4. package/dest/client/interface.d.ts +46 -33
  5. package/dest/client/interface.d.ts.map +1 -1
  6. package/dest/client/p2p_client.d.ts +39 -51
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +151 -224
  9. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +7 -8
  10. package/dest/config.d.ts +49 -18
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +92 -38
  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 +445 -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/instrumentation.d.ts +4 -2
  35. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  36. package/dest/mem_pools/instrumentation.js +16 -14
  37. package/dest/mem_pools/interface.d.ts +5 -5
  38. package/dest/mem_pools/interface.d.ts.map +1 -1
  39. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +3 -3
  40. package/dest/mem_pools/tx_pool/priority.d.ts +2 -2
  41. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  42. package/dest/mem_pools/tx_pool/priority.js +4 -3
  43. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  44. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  45. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +3 -1
  46. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  47. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  48. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  49. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +3 -3
  50. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +18 -9
  52. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  53. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  54. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +5 -2
  55. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +3 -3
  56. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  57. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +12 -4
  58. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -2
  59. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  60. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -1
  61. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +54 -5
  62. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  63. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +8 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +7 -5
  65. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +7 -5
  66. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
  67. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  68. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +14 -6
  69. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +4 -4
  70. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  71. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +16 -4
  72. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +3 -3
  73. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  74. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +3 -3
  75. package/dest/mem_pools/tx_pool_v2/index.d.ts +3 -2
  76. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  77. package/dest/mem_pools/tx_pool_v2/index.js +2 -1
  78. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  79. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  80. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  81. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +28 -8
  82. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  83. package/dest/mem_pools/tx_pool_v2/interfaces.js +5 -1
  84. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +70 -14
  85. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  86. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +132 -16
  87. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  88. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  90. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +9 -4
  91. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  92. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +20 -6
  93. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +14 -5
  94. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  95. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +467 -592
  96. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +3 -3
  97. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  98. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -4
  99. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  100. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  101. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -4
  102. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  103. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  104. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -8
  105. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  106. package/dest/msg_validators/proposal_validator/proposal_validator.js +48 -36
  107. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  108. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  109. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  110. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  111. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  112. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  113. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  114. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  115. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  116. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +16 -3
  117. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  118. package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
  119. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +13 -3
  120. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  121. package/dest/msg_validators/tx_validator/double_spend_validator.js +4 -4
  122. package/dest/msg_validators/tx_validator/factory.d.ts +125 -6
  123. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  124. package/dest/msg_validators/tx_validator/factory.js +226 -58
  125. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  126. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  127. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  128. package/dest/msg_validators/tx_validator/gas_validator.d.ts +67 -3
  129. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  130. package/dest/msg_validators/tx_validator/gas_validator.js +104 -37
  131. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  132. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  133. package/dest/msg_validators/tx_validator/index.js +2 -0
  134. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  135. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  136. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  137. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  138. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  139. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  140. package/dest/msg_validators/tx_validator/phases_validator.d.ts +2 -2
  141. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  142. package/dest/msg_validators/tx_validator/phases_validator.js +44 -23
  143. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +20 -4
  144. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  145. package/dest/msg_validators/tx_validator/timestamp_validator.js +6 -6
  146. package/dest/services/dummy_service.d.ts +13 -5
  147. package/dest/services/dummy_service.d.ts.map +1 -1
  148. package/dest/services/dummy_service.js +10 -4
  149. package/dest/services/encoding.d.ts +3 -3
  150. package/dest/services/encoding.d.ts.map +1 -1
  151. package/dest/services/encoding.js +11 -10
  152. package/dest/services/gossipsub/index.d.ts +3 -0
  153. package/dest/services/gossipsub/index.d.ts.map +1 -0
  154. package/dest/services/gossipsub/index.js +2 -0
  155. package/dest/services/gossipsub/scoring.d.ts +21 -3
  156. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  157. package/dest/services/gossipsub/scoring.js +24 -7
  158. package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
  159. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  160. package/dest/services/gossipsub/topic_score_params.js +346 -0
  161. package/dest/services/libp2p/libp2p_service.d.ts +94 -42
  162. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  163. package/dest/services/libp2p/libp2p_service.js +463 -350
  164. package/dest/services/peer-manager/metrics.d.ts +3 -1
  165. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  166. package/dest/services/peer-manager/metrics.js +6 -0
  167. package/dest/services/peer-manager/peer_manager.d.ts +1 -1
  168. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  169. package/dest/services/peer-manager/peer_manager.js +2 -1
  170. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  171. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  172. package/dest/services/peer-manager/peer_scoring.js +25 -2
  173. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +6 -5
  174. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  175. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +26 -53
  176. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +2 -6
  177. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  178. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +10 -13
  179. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  180. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +25 -46
  181. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +17 -11
  182. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  183. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +49 -15
  184. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
  185. package/dest/services/reqresp/interface.d.ts +10 -1
  186. package/dest/services/reqresp/interface.d.ts.map +1 -1
  187. package/dest/services/reqresp/interface.js +15 -1
  188. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  189. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  190. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +16 -11
  191. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +21 -10
  192. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  193. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +27 -11
  194. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  195. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  196. package/dest/services/reqresp/protocols/tx.js +20 -0
  197. package/dest/services/reqresp/reqresp.d.ts +1 -1
  198. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  199. package/dest/services/reqresp/reqresp.js +13 -5
  200. package/dest/services/service.d.ts +39 -3
  201. package/dest/services/service.d.ts.map +1 -1
  202. package/dest/services/tx_collection/config.d.ts +22 -4
  203. package/dest/services/tx_collection/config.d.ts.map +1 -1
  204. package/dest/services/tx_collection/config.js +49 -3
  205. package/dest/services/tx_collection/fast_tx_collection.d.ts +6 -5
  206. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  207. package/dest/services/tx_collection/fast_tx_collection.js +64 -48
  208. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  209. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  210. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  211. package/dest/services/tx_collection/file_store_tx_source.d.ts +37 -0
  212. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  213. package/dest/services/tx_collection/file_store_tx_source.js +90 -0
  214. package/dest/services/tx_collection/index.d.ts +3 -2
  215. package/dest/services/tx_collection/index.d.ts.map +1 -1
  216. package/dest/services/tx_collection/index.js +1 -0
  217. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  218. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  219. package/dest/services/tx_collection/instrumentation.js +2 -1
  220. package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
  221. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
  222. package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
  223. package/dest/services/tx_collection/proposal_tx_collector.d.ts +15 -14
  224. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  225. package/dest/services/tx_collection/proposal_tx_collector.js +6 -6
  226. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  227. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  228. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  229. package/dest/services/tx_collection/tx_collection.d.ts +23 -10
  230. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  231. package/dest/services/tx_collection/tx_collection.js +75 -3
  232. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  233. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  234. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  235. package/dest/services/tx_collection/tx_source.d.ts +8 -3
  236. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  237. package/dest/services/tx_collection/tx_source.js +19 -2
  238. package/dest/services/tx_file_store/config.d.ts +1 -3
  239. package/dest/services/tx_file_store/config.d.ts.map +1 -1
  240. package/dest/services/tx_file_store/config.js +0 -4
  241. package/dest/services/tx_file_store/tx_file_store.d.ts +4 -3
  242. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
  243. package/dest/services/tx_file_store/tx_file_store.js +9 -6
  244. package/dest/services/tx_provider.d.ts +4 -4
  245. package/dest/services/tx_provider.d.ts.map +1 -1
  246. package/dest/services/tx_provider.js +9 -8
  247. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  248. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  249. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  250. package/dest/test-helpers/mock-pubsub.d.ts +30 -4
  251. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  252. package/dest/test-helpers/mock-pubsub.js +105 -4
  253. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  254. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  255. package/dest/test-helpers/reqresp-nodes.js +4 -3
  256. package/dest/test-helpers/testbench-utils.d.ts +43 -38
  257. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  258. package/dest/test-helpers/testbench-utils.js +129 -59
  259. package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -2
  260. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  261. package/dest/testbench/p2p_client_testbench_worker.js +17 -16
  262. package/dest/testbench/worker_client_manager.d.ts +3 -1
  263. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  264. package/dest/testbench/worker_client_manager.js +6 -2
  265. package/dest/util.d.ts +3 -3
  266. package/dest/util.d.ts.map +1 -1
  267. package/package.json +14 -14
  268. package/src/client/factory.ts +82 -28
  269. package/src/client/interface.ts +56 -34
  270. package/src/client/p2p_client.ts +181 -269
  271. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +21 -12
  272. package/src/config.ts +141 -44
  273. package/src/errors/tx-pool.error.ts +12 -0
  274. package/src/index.ts +1 -0
  275. package/src/mem_pools/attestation_pool/attestation_pool.ts +497 -91
  276. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  277. package/src/mem_pools/attestation_pool/index.ts +9 -2
  278. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  279. package/src/mem_pools/index.ts +4 -1
  280. package/src/mem_pools/instrumentation.ts +17 -13
  281. package/src/mem_pools/interface.ts +4 -4
  282. package/src/mem_pools/tx_pool/README.md +1 -1
  283. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +3 -3
  284. package/src/mem_pools/tx_pool/priority.ts +6 -3
  285. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +3 -1
  286. package/src/mem_pools/tx_pool_v2/README.md +112 -17
  287. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  288. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +21 -8
  289. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +5 -2
  290. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +18 -4
  291. package/src/mem_pools/tx_pool_v2/eviction/index.ts +4 -0
  292. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +59 -4
  293. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +5 -5
  294. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +5 -5
  295. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +14 -9
  296. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +33 -6
  297. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +4 -3
  298. package/src/mem_pools/tx_pool_v2/index.ts +2 -1
  299. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  300. package/src/mem_pools/tx_pool_v2/interfaces.ts +28 -8
  301. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +191 -24
  302. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  303. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +24 -7
  304. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +508 -676
  305. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +2 -2
  306. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +14 -4
  307. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +20 -7
  308. package/src/msg_validators/proposal_validator/proposal_validator.ts +63 -40
  309. package/src/msg_validators/tx_validator/README.md +115 -0
  310. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  311. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  312. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  313. package/src/msg_validators/tx_validator/block_header_validator.ts +15 -3
  314. package/src/msg_validators/tx_validator/double_spend_validator.ts +11 -6
  315. package/src/msg_validators/tx_validator/factory.ts +366 -77
  316. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  317. package/src/msg_validators/tx_validator/gas_validator.ts +123 -27
  318. package/src/msg_validators/tx_validator/index.ts +2 -0
  319. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  320. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  321. package/src/msg_validators/tx_validator/phases_validator.ts +51 -26
  322. package/src/msg_validators/tx_validator/timestamp_validator.ts +23 -18
  323. package/src/services/dummy_service.ts +18 -6
  324. package/src/services/encoding.ts +9 -9
  325. package/src/services/gossipsub/README.md +641 -0
  326. package/src/services/gossipsub/index.ts +2 -0
  327. package/src/services/gossipsub/scoring.ts +29 -5
  328. package/src/services/gossipsub/topic_score_params.ts +487 -0
  329. package/src/services/libp2p/libp2p_service.ts +488 -372
  330. package/src/services/peer-manager/metrics.ts +7 -0
  331. package/src/services/peer-manager/peer_manager.ts +2 -1
  332. package/src/services/peer-manager/peer_scoring.ts +25 -0
  333. package/src/services/reqresp/batch-tx-requester/README.md +7 -7
  334. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +31 -59
  335. package/src/services/reqresp/batch-tx-requester/interface.ts +1 -5
  336. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +23 -71
  337. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +63 -24
  338. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
  339. package/src/services/reqresp/interface.ts +26 -1
  340. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +23 -14
  341. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +38 -15
  342. package/src/services/reqresp/protocols/tx.ts +22 -0
  343. package/src/services/reqresp/reqresp.ts +16 -4
  344. package/src/services/service.ts +51 -2
  345. package/src/services/tx_collection/config.ts +74 -6
  346. package/src/services/tx_collection/fast_tx_collection.ts +74 -51
  347. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  348. package/src/services/tx_collection/file_store_tx_source.ts +117 -0
  349. package/src/services/tx_collection/index.ts +2 -1
  350. package/src/services/tx_collection/instrumentation.ts +7 -1
  351. package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
  352. package/src/services/tx_collection/proposal_tx_collector.ts +20 -21
  353. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  354. package/src/services/tx_collection/tx_collection.ts +113 -16
  355. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  356. package/src/services/tx_collection/tx_source.ts +22 -3
  357. package/src/services/tx_file_store/config.ts +0 -6
  358. package/src/services/tx_file_store/tx_file_store.ts +10 -8
  359. package/src/services/tx_provider.ts +10 -9
  360. package/src/test-helpers/make-test-p2p-clients.ts +4 -6
  361. package/src/test-helpers/mock-pubsub.ts +146 -9
  362. package/src/test-helpers/reqresp-nodes.ts +5 -7
  363. package/src/test-helpers/testbench-utils.ts +128 -71
  364. package/src/testbench/p2p_client_testbench_worker.ts +26 -22
  365. package/src/testbench/worker_client_manager.ts +13 -5
  366. package/src/util.ts +8 -2
  367. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  368. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  369. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  370. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  371. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  372. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  373. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  374. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  375. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  376. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  377. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  378. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
@@ -1,4 +1,5 @@
1
- export { type AttestationPool } from './attestation_pool/attestation_pool.js';
1
+ export { AttestationPool, type AttestationPoolApi } from './attestation_pool/attestation_pool.js';
2
2
  export { type MemPools } from './interface.js';
3
3
  export { type TxPool } from './tx_pool/tx_pool.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZW1fcG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUMifQ==
4
+ export { type TxPoolV2, type TxPoolV2Config, type TxPoolV2Events, type AddTxsResult } from './tx_pool_v2/index.js';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZW1fcG9vbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEcsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLEtBQUssY0FBYyxFQUFFLEtBQUssY0FBYyxFQUFFLEtBQUssWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mem_pools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mem_pools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAClG,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- export { };
1
+ export { AttestationPool } from './attestation_pool/attestation_pool.js';
@@ -23,12 +23,14 @@ export declare class PoolInstrumentation<PoolObject extends Gossipable> {
23
23
  private dbMetrics;
24
24
  private defaultAttributes;
25
25
  private meter;
26
- private txAddedTimestamp;
26
+ private mempoolItemAddedTimestamp;
27
27
  constructor(telemetry: TelemetryClient, name: PoolName, poolStats: PoolStatsCallback, dbStats?: LmdbStatsCallback);
28
28
  recordSize(poolObject: PoolObject): void;
29
29
  incrementAddedObjects(count: number): void;
30
30
  transactionsAdded(transactions: Tx[]): void;
31
31
  transactionsRemoved(hashes: Iterable<bigint> | Iterable<string>): void;
32
+ trackMempoolItemAdded(key: bigint | string): void;
33
+ trackMempoolItemRemoved(key: bigint | string): void;
32
34
  private observeStats;
33
35
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBS0wsS0FBSyxpQkFBaUIsRUFLdEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQVksUUFBUTtJQUNsQixPQUFPLFdBQVc7SUFDbEIsZ0JBQWdCLG9CQUFvQjtDQUNyQztBQWtDRCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUM7SUFDNUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gscUJBQWEsbUJBQW1CLENBQUMsVUFBVSxTQUFTLFVBQVU7SUFtQjFELE9BQU8sQ0FBQyxTQUFTO0lBbEJuQix1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLGdCQUFnQixDQUFrQjtJQUMxQyxPQUFPLENBQUMsZ0JBQWdCLENBQWdCO0lBQ3hDLHFCQUFxQjtJQUNyQixPQUFPLENBQUMsVUFBVSxDQUFZO0lBQzlCLHdEQUF3RDtJQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFZO0lBRTlCLE9BQU8sQ0FBQyxTQUFTLENBQWM7SUFFL0IsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQVE7SUFFckIsT0FBTyxDQUFDLGdCQUFnQixDQUFrRDtJQUUxRSxZQUNFLFNBQVMsRUFBRSxlQUFlLEVBQzFCLElBQUksRUFBRSxRQUFRLEVBQ04sU0FBUyxFQUFFLGlCQUFpQixFQUNwQyxPQUFPLENBQUMsRUFBRSxpQkFBaUIsRUF3QjVCO0lBRU0sVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLFFBRXZDO0lBRU0scUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFekM7SUFFTSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLFFBSzFDO0lBRU0sbUJBQW1CLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBWXJFO0lBRUQsT0FBTyxDQUFDLFlBQVksQ0FZbEI7Q0FDSCJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBS0wsS0FBSyxpQkFBaUIsRUFLdEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsb0JBQVksUUFBUTtJQUNsQixPQUFPLFdBQVc7SUFDbEIsZ0JBQWdCLG9CQUFvQjtDQUNyQztBQWtDRCxNQUFNLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxPQUFPLENBQUM7SUFDNUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQzVDLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gscUJBQWEsbUJBQW1CLENBQUMsVUFBVSxTQUFTLFVBQVU7SUFtQjFELE9BQU8sQ0FBQyxTQUFTO0lBbEJuQix1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLGdCQUFnQixDQUFrQjtJQUMxQyxPQUFPLENBQUMsZ0JBQWdCLENBQWdCO0lBQ3hDLHFCQUFxQjtJQUNyQixPQUFPLENBQUMsVUFBVSxDQUFZO0lBQzlCLHdEQUF3RDtJQUN4RCxPQUFPLENBQUMsVUFBVSxDQUFZO0lBRTlCLE9BQU8sQ0FBQyxTQUFTLENBQWM7SUFFL0IsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQVE7SUFFckIsT0FBTyxDQUFDLHlCQUF5QixDQUFvRTtJQUVyRyxZQUNFLFNBQVMsRUFBRSxlQUFlLEVBQzFCLElBQUksRUFBRSxRQUFRLEVBQ04sU0FBUyxFQUFFLGlCQUFpQixFQUNwQyxPQUFPLENBQUMsRUFBRSxpQkFBaUIsRUF3QjVCO0lBRU0sVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLFFBRXZDO0lBRU0scUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFekM7SUFFTSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxFQUFFLFFBRTFDO0lBRU0sbUJBQW1CLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBSXJFO0lBRU0scUJBQXFCLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUV2RDtJQUVNLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FTekQ7SUFFRCxPQUFPLENBQUMsWUFBWSxDQVlsQjtDQUNIIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/mem_pools/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,QAAQ;IAClB,OAAO,WAAW;IAClB,gBAAgB,oBAAoB;CACrC;AAkCD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC,CAAC;AAEH;;GAEG;AACH,qBAAa,mBAAmB,CAAC,UAAU,SAAS,UAAU;IAmB1D,OAAO,CAAC,SAAS;IAlBnB,uCAAuC;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAY;IAC9B,wDAAwD;IACxD,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,gBAAgB,CAAkD;IAE1E,YACE,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,QAAQ,EACN,SAAS,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,iBAAiB,EAwB5B;IAEM,UAAU,CAAC,UAAU,EAAE,UAAU,QAEvC;IAEM,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAEzC;IAEM,iBAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,QAK1C;IAEM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAYrE;IAED,OAAO,CAAC,YAAY,CAYlB;CACH"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/mem_pools/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAKL,KAAK,iBAAiB,EAKtB,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,oBAAY,QAAQ;IAClB,OAAO,WAAW;IAClB,gBAAgB,oBAAoB;CACrC;AAkCD,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC;IAC5C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC,CAAC;AAEH;;GAEG;AACH,qBAAa,mBAAmB,CAAC,UAAU,SAAS,UAAU;IAmB1D,OAAO,CAAC,SAAS;IAlBnB,uCAAuC;IACvC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,gBAAgB,CAAgB;IACxC,qBAAqB;IACrB,OAAO,CAAC,UAAU,CAAY;IAC9B,wDAAwD;IACxD,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,iBAAiB,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,yBAAyB,CAAoE;IAErG,YACE,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,QAAQ,EACN,SAAS,EAAE,iBAAiB,EACpC,OAAO,CAAC,EAAE,iBAAiB,EAwB5B;IAEM,UAAU,CAAC,UAAU,EAAE,UAAU,QAEvC;IAEM,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAEzC;IAEM,iBAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,QAE1C;IAEM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAIrE;IAEM,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvD;IAEM,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASzD;IAED,OAAO,CAAC,YAAY,CAYlB;CACH"}
@@ -37,10 +37,10 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
37
37
  dbMetrics;
38
38
  defaultAttributes;
39
39
  meter;
40
- txAddedTimestamp;
40
+ mempoolItemAddedTimestamp;
41
41
  constructor(telemetry, name, poolStats, dbStats){
42
42
  this.poolStats = poolStats;
43
- this.txAddedTimestamp = new Map();
43
+ this.mempoolItemAddedTimestamp = new Map();
44
44
  this.observeStats = async (observer)=>{
45
45
  const { itemCount } = await this.poolStats();
46
46
  if (typeof itemCount === 'number') {
@@ -77,21 +77,23 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
77
77
  this.addObjectCounter.add(count);
78
78
  }
79
79
  transactionsAdded(transactions) {
80
- const timestamp = Date.now();
81
- for (const transaction of transactions){
82
- this.txAddedTimestamp.set(transaction.txHash.toBigInt(), timestamp);
83
- }
80
+ transactions.forEach((tx)=>this.trackMempoolItemAdded(tx.txHash.toBigInt()));
84
81
  }
85
82
  transactionsRemoved(hashes) {
86
- const timestamp = Date.now();
87
83
  for (const hash of hashes){
88
- const key = BigInt(hash);
89
- const addedAt = this.txAddedTimestamp.get(key);
90
- if (addedAt !== undefined) {
91
- this.txAddedTimestamp.delete(key);
92
- if (addedAt < timestamp) {
93
- this.minedDelay.record(timestamp - addedAt);
94
- }
84
+ this.trackMempoolItemRemoved(BigInt(hash));
85
+ }
86
+ }
87
+ trackMempoolItemAdded(key) {
88
+ this.mempoolItemAddedTimestamp.set(key, Date.now());
89
+ }
90
+ trackMempoolItemRemoved(key) {
91
+ const timestamp = Date.now();
92
+ const addedAt = this.mempoolItemAddedTimestamp.get(key);
93
+ if (addedAt !== undefined) {
94
+ this.mempoolItemAddedTimestamp.delete(key);
95
+ if (addedAt < timestamp) {
96
+ this.minedDelay.record(timestamp - addedAt);
95
97
  }
96
98
  }
97
99
  }
@@ -1,10 +1,10 @@
1
- import type { AttestationPool } from './attestation_pool/attestation_pool.js';
2
- import type { TxPool } from './tx_pool/tx_pool.js';
1
+ import type { AttestationPoolApi } from './attestation_pool/attestation_pool.js';
2
+ import type { TxPoolV2 } from './tx_pool_v2/interfaces.js';
3
3
  /**
4
4
  * A interface the combines all mempools
5
5
  */
6
6
  export type MemPools = {
7
- txPool: TxPool;
8
- attestationPool: AttestationPool;
7
+ txPool: TxPoolV2;
8
+ attestationPool: AttestationPoolApi;
9
9
  };
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sTUFBTSxRQUFRLEdBQUc7SUFDckIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLGVBQWUsRUFBRSxlQUFlLENBQUM7Q0FDbEMsQ0FBQyJ9
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLFFBQVEsR0FBRztJQUNyQixNQUFNLEVBQUUsUUFBUSxDQUFDO0lBQ2pCLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQztDQUNyQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/mem_pools/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/mem_pools/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,eAAe,EAAE,kBAAkB,CAAC;CACrC,CAAC"}
@@ -50,9 +50,9 @@ import { EvictionEvent } from './eviction_strategy.js';
50
50
  continue;
51
51
  }
52
52
  // Evict pending txs with an expiration timestamp less than or equal to the mined block timestamp
53
- const includeByTimestamp = tx.data.includeByTimestamp;
54
- if (includeByTimestamp <= timestamp) {
55
- this.log.verbose(`Evicting tx ${txHash} from pool due to the tx being expired (includeByTimestamp: ${includeByTimestamp}, mined block timestamp: ${timestamp})`);
53
+ const expirationTimestamp = tx.data.expirationTimestamp;
54
+ if (expirationTimestamp <= timestamp) {
55
+ this.log.verbose(`Evicting tx ${txHash} from pool due to the tx being expired (expirationTimestamp: ${expirationTimestamp}, mined block timestamp: ${timestamp})`);
56
56
  txsToEvict.push(txHash);
57
57
  continue;
58
58
  }
@@ -6,7 +6,7 @@ import type { Tx } from '@aztec/stdlib/tx';
6
6
  */
7
7
  export declare function getPendingTxPriority(tx: Tx): string;
8
8
  /**
9
- * Returns the priority of a tx.
9
+ * Returns the priority of a tx based on the priority fees, capped by the max fees per gas.
10
10
  */
11
11
  export declare function getTxPriorityFee(tx: Tx): bigint;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpb3JpdHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9wcmlvcml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0gsd0JBQWdCLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUVuRDtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUkvQyJ9
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpb3JpdHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9wcmlvcml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0gsd0JBQWdCLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUVuRDtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQU0vQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/priority.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAI/C"}
1
+ {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/priority.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAM/C"}
@@ -1,3 +1,4 @@
1
+ import { minBigint } from '@aztec/foundation/bigint';
1
2
  import { Buffer32 } from '@aztec/foundation/buffer';
2
3
  /**
3
4
  * Returns a string representing the priority of a tx.
@@ -7,9 +8,9 @@ import { Buffer32 } from '@aztec/foundation/buffer';
7
8
  return Buffer32.fromBigInt(getTxPriorityFee(tx)).toString();
8
9
  }
9
10
  /**
10
- * Returns the priority of a tx.
11
+ * Returns the priority of a tx based on the priority fees, capped by the max fees per gas.
11
12
  */ export function getTxPriorityFee(tx) {
12
- const priorityFees = tx.getGasSettings().maxPriorityFeesPerGas;
13
- const totalFees = priorityFees.feePerDaGas + priorityFees.feePerL2Gas;
13
+ const { maxPriorityFeesPerGas: priorityFees, maxFeesPerGas } = tx.getGasSettings();
14
+ const totalFees = minBigint(maxFeesPerGas.feePerDaGas, priorityFees.feePerDaGas) + minBigint(maxFeesPerGas.feePerL2Gas, priorityFees.feePerL2Gas);
14
15
  return totalFees;
15
16
  }
@@ -4,4 +4,4 @@ import type { TxPool } from './tx_pool.js';
4
4
  * @param getTxPool - Gets a fresh TxPool
5
5
  */
6
6
  export declare function describeTxPool(getTxPool: () => TxPool): void;
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF90ZXN0X3N1aXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2wvdHhfcG9vbF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzQzs7O0dBR0c7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLFNBQVMsRUFBRSxNQUFNLE1BQU0sUUFrVHJEIn0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbF90ZXN0X3N1aXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2wvdHhfcG9vbF90ZXN0X3N1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUzQzs7O0dBR0c7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLFNBQVMsRUFBRSxNQUFNLE1BQU0sUUFvVHJEIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"tx_pool_test_suite.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/tx_pool_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,MAAM,QAkTrD"}
1
+ {"version":3,"file":"tx_pool_test_suite.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/tx_pool_test_suite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,MAAM,QAoTrD"}
@@ -264,7 +264,9 @@ import { BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
264
264
  });
265
265
  it('returns pending tx hashes sorted by priority', async ()=>{
266
266
  const withPriorityFee = (tx, fee)=>{
267
- unfreeze(tx.data.constants.txContext.gasSettings).maxPriorityFeesPerGas = new GasFees(fee, fee);
267
+ const gs = unfreeze(tx.data.constants.txContext.gasSettings);
268
+ gs.maxPriorityFeesPerGas = new GasFees(fee, fee);
269
+ gs.maxFeesPerGas = new GasFees(fee, fee);
268
270
  return tx;
269
271
  };
270
272
  const tx1 = withPriorityFee(await mockTx(0), 1000);
@@ -0,0 +1,104 @@
1
+ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
+ import type { Logger } from '@aztec/foundation/log';
3
+ import type { AztecAsyncKVStore, AztecAsyncMap } from '@aztec/kv-store';
4
+ /**
5
+ * Manages all transaction deletions in the pool.
6
+ *
7
+ * When a chain prune (reorg) happens, transactions from pruned blocks are tracked here.
8
+ * This class is responsible for ALL deletion decisions:
9
+ *
10
+ * - Transactions from pruned blocks are "prune-soft-deleted" - removed from indices but kept
11
+ * in the database for later re-execution until their mined block is finalized
12
+ * - Transactions NOT from pruned blocks are "slot-soft-deleted" - kept in the database
13
+ * until the next slot, so other nodes can still fetch them via reqresp
14
+ *
15
+ * When a block is finalized, prune-soft-deleted transactions that were originally mined at or
16
+ * before that block number are permanently (hard) deleted. Slot-soft-deleted transactions
17
+ * are hard-deleted when `prepareForSlot` advances to a new slot.
18
+ */
19
+ export declare class DeletedPool {
20
+ #private;
21
+ constructor(store: AztecAsyncKVStore, txsDB: AztecAsyncMap<string, Buffer>, log: Logger);
22
+ /**
23
+ * Loads state from the database on startup.
24
+ * Slot-deleted txs are stale after restart and are immediately hard-deleted.
25
+ */
26
+ hydrateFromDatabase(): Promise<void>;
27
+ /**
28
+ * Marks transactions as being from a pruned block.
29
+ * Called during handlePrunedBlocks for ALL transactions that were un-mined.
30
+ *
31
+ * If a tx was previously tracked (e.g., mined at block 4, pruned, re-mined at block 5,
32
+ * pruned again), updates to the higher block number. This ensures the tx is kept until
33
+ * its most recent mined block is finalized.
34
+ *
35
+ * @param txs - Array of {txHash, minedAtBlock} pairs, where minedAtBlock is the block
36
+ * number in which the tx was mined before being un-mined
37
+ */
38
+ markFromPrunedBlock(txs: {
39
+ txHash: string;
40
+ minedAtBlock: BlockNumber;
41
+ }[]): Promise<void>;
42
+ /**
43
+ * Deletes a transaction. This is the single entry point for ALL deletions.
44
+ * The tx is always soft-deleted (kept in DB):
45
+ *
46
+ * - If the tx is from a pruned block: prune-soft-delete (kept until finalized)
47
+ * - If the tx is NOT from a pruned block: slot-soft-delete (kept until next slot)
48
+ */
49
+ deleteTx(txHash: string): Promise<void>;
50
+ /**
51
+ * Clears tracking for a transaction if it re-mines at a block number >= the tracked minedAtBlock.
52
+ *
53
+ * When a tx re-mines at a higher (or equal) block, the old high-water mark is no longer needed:
54
+ * any future prune would re-add the tx with an even higher block number. Clearing keeps
55
+ * DeletedPool consistent — only txs that are actually un-mined should be tracked here.
56
+ *
57
+ * When a tx re-mines at a lower block, we must preserve the existing entry to retain
58
+ * the high-water mark for re-execution purposes.
59
+ */
60
+ clearIfMinedHigher(txHash: string, minedAtBlock: BlockNumber): Promise<void>;
61
+ /**
62
+ * Checks if a transaction is from a pruned block.
63
+ */
64
+ isFromPrunedBlock(txHash: string): boolean;
65
+ /**
66
+ * Checks if a transaction is soft-deleted (either prune-based or slot-based).
67
+ */
68
+ isSoftDeleted(txHash: string): boolean;
69
+ /**
70
+ * Gets the block number in which a transaction was originally mined.
71
+ */
72
+ getMinedAtBlock(txHash: string): BlockNumber | undefined;
73
+ /**
74
+ * Finalizes transactions when a block is finalized.
75
+ * Hard-deletes transactions that were originally mined at or before the finalized block.
76
+ *
77
+ * @returns The hashes of transactions that were hard-deleted
78
+ */
79
+ finalizeBlock(finalizedBlockNumber: BlockNumber): Promise<string[]>;
80
+ /**
81
+ * Cleans up slot-deleted transactions from previous slots.
82
+ * Called at the start of prepareForSlot. Updates #currentSlot and hard-deletes
83
+ * any txs that were deleted in an earlier slot.
84
+ */
85
+ cleanupSlotDeleted(currentSlot: SlotNumber): Promise<void>;
86
+ /**
87
+ * Clears soft-deletion status for a transaction being re-added to the pool.
88
+ * Removes slot-deleted tracking entirely, and resets the prune-soft-deleted flag
89
+ * while preserving the prune tracking itself (so a subsequent delete still uses
90
+ * the prune path).
91
+ */
92
+ clearSoftDeleted(txHash: string): Promise<void>;
93
+ /**
94
+ * Gets the count of transactions from pruned blocks.
95
+ */
96
+ getCount(): number;
97
+ /** Gets the count of soft-deleted transactions (both prune-based and slot-based). */
98
+ getSoftDeletedCount(): number;
99
+ /**
100
+ * Gets all transaction hashes from pruned blocks.
101
+ */
102
+ getPrunedTxHashes(): string[];
103
+ }
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlZF9wb29sLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvZGVsZXRlZF9wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBaUN2Rjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHFCQUFhLFdBQVc7O0lBcUJ0QixZQUFZLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUt0RjtJQUVEOzs7T0FHRztJQUNHLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E0QnpDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNHLG1CQUFtQixDQUFDLEdBQUcsRUFBRTtRQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFBQyxZQUFZLEVBQUUsV0FBVyxDQUFBO0tBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0F1QjdGO0lBRUQ7Ozs7OztPQU1HO0lBQ0csUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWU1QztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBU2pGO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFekM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFckM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFdBQVcsR0FBRyxTQUFTLENBRXZEO0lBRUQ7Ozs7O09BS0c7SUFDRyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQXVCeEU7SUFFRDs7OztPQUlHO0lBQ0csa0JBQWtCLENBQUMsV0FBVyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBeUIvRDtJQUVEOzs7OztPQUtHO0lBQ0csZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBV3BEO0lBRUQ7O09BRUc7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELHFGQUFxRjtJQUNyRixtQkFBbUIsSUFBSSxNQUFNLENBUTVCO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsSUFBSSxNQUFNLEVBQUUsQ0FFNUI7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleted_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/deleted_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAC;AAiCvF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAW;;IAqBtB,YAAY,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAKtF;IAED;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BzC;IAED;;;;;;;;;;OAUG;IACG,mBAAmB,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,WAAW,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB7F;IAED;;;;;;OAMG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5C;IAED;;;;;;;;;OASG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CASjF;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzC;IAED;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErC;IAED;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEvD;IAED;;;;;OAKG;IACG,aAAa,CAAC,oBAAoB,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBxE;IAED;;;;OAIG;IACG,kBAAkB,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/D;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpD;IAED;;OAEG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED,qFAAqF;IACrF,mBAAmB,IAAI,MAAM,CAQ5B;IAED;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE,CAE5B;CACF"}
@@ -0,0 +1,251 @@
1
+ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
+ /**
3
+ * Serializes DeletedTxState to a Buffer.
4
+ * Format: 4 bytes for blockNumber (uint32) + 1 byte for softDeleted (0 or 1)
5
+ */ function serializeState(state) {
6
+ const buffer = Buffer.alloc(5);
7
+ buffer.writeUInt32BE(Number(state.minedAtBlock), 0);
8
+ buffer.writeUInt8(state.softDeleted ? 1 : 0, 4);
9
+ return buffer;
10
+ }
11
+ /**
12
+ * Deserializes a Buffer to DeletedTxState.
13
+ */ function deserializeState(buffer) {
14
+ return {
15
+ minedAtBlock: BlockNumber(buffer.readUInt32BE(0)),
16
+ softDeleted: buffer.readUInt8(4) === 1
17
+ };
18
+ }
19
+ /**
20
+ * Manages all transaction deletions in the pool.
21
+ *
22
+ * When a chain prune (reorg) happens, transactions from pruned blocks are tracked here.
23
+ * This class is responsible for ALL deletion decisions:
24
+ *
25
+ * - Transactions from pruned blocks are "prune-soft-deleted" - removed from indices but kept
26
+ * in the database for later re-execution until their mined block is finalized
27
+ * - Transactions NOT from pruned blocks are "slot-soft-deleted" - kept in the database
28
+ * until the next slot, so other nodes can still fetch them via reqresp
29
+ *
30
+ * When a block is finalized, prune-soft-deleted transactions that were originally mined at or
31
+ * before that block number are permanently (hard) deleted. Slot-soft-deleted transactions
32
+ * are hard-deleted when `prepareForSlot` advances to a new slot.
33
+ */ export class DeletedPool {
34
+ /** Persisted map: txHash -> DeletedTxState (serialized) - for prune-based soft deletions */ #deletedTxsDB;
35
+ /** Reference to the main txs database for hard deletion */ #txsDB;
36
+ /** In-memory state for transactions from pruned blocks */ #state = new Map();
37
+ /** In-memory tracking: txHash -> slot at which the tx was deleted */ #slotDeletedTxs = new Map();
38
+ /** Persisted set tracking which txs are slot-deleted, for hydration cleanup. */ #slotDeletedDB;
39
+ /** Current slot number, updated by cleanupSlotDeleted */ #currentSlot = SlotNumber(0);
40
+ #log;
41
+ constructor(store, txsDB, log){
42
+ this.#deletedTxsDB = store.openMap('deleted_txs');
43
+ this.#slotDeletedDB = store.openSet('slot_deleted_txs');
44
+ this.#txsDB = txsDB;
45
+ this.#log = log;
46
+ }
47
+ /**
48
+ * Loads state from the database on startup.
49
+ * Slot-deleted txs are stale after restart and are immediately hard-deleted.
50
+ */ async hydrateFromDatabase() {
51
+ let prunedCount = 0;
52
+ let softDeletedCount = 0;
53
+ for await (const [txHash, buffer] of this.#deletedTxsDB.entriesAsync()){
54
+ const state = deserializeState(buffer);
55
+ this.#state.set(txHash, state);
56
+ prunedCount++;
57
+ if (state.softDeleted) {
58
+ softDeletedCount++;
59
+ }
60
+ }
61
+ if (prunedCount > 0 || softDeletedCount > 0) {
62
+ this.#log.info(`Loaded ${prunedCount} txs from pruned blocks, ${softDeletedCount} soft-deleted`);
63
+ }
64
+ // Slot-deleted txs are stale after restart - hard-delete them all
65
+ let slotDeletedCount = 0;
66
+ for await (const txHash of this.#slotDeletedDB.entriesAsync()){
67
+ await this.#txsDB.delete(txHash);
68
+ await this.#slotDeletedDB.delete(txHash);
69
+ slotDeletedCount++;
70
+ }
71
+ if (slotDeletedCount > 0) {
72
+ this.#log.info(`Hard-deleted ${slotDeletedCount} stale slot-deleted txs on startup`);
73
+ }
74
+ }
75
+ /**
76
+ * Marks transactions as being from a pruned block.
77
+ * Called during handlePrunedBlocks for ALL transactions that were un-mined.
78
+ *
79
+ * If a tx was previously tracked (e.g., mined at block 4, pruned, re-mined at block 5,
80
+ * pruned again), updates to the higher block number. This ensures the tx is kept until
81
+ * its most recent mined block is finalized.
82
+ *
83
+ * @param txs - Array of {txHash, minedAtBlock} pairs, where minedAtBlock is the block
84
+ * number in which the tx was mined before being un-mined
85
+ */ async markFromPrunedBlock(txs) {
86
+ if (txs.length === 0) {
87
+ return;
88
+ }
89
+ let count = 0;
90
+ for (const { txHash, minedAtBlock } of txs){
91
+ const existing = this.#state.get(txHash);
92
+ // Update if not tracked, or if this is a higher mined block (tx was re-mined then pruned again)
93
+ if (existing === undefined || minedAtBlock > existing.minedAtBlock) {
94
+ const state = {
95
+ minedAtBlock,
96
+ softDeleted: existing?.softDeleted ?? false
97
+ };
98
+ this.#state.set(txHash, state);
99
+ await this.#deletedTxsDB.set(txHash, serializeState(state));
100
+ count++;
101
+ }
102
+ }
103
+ if (count > 0) {
104
+ this.#log.info(`Marked ${count} transactions from pruned blocks`);
105
+ }
106
+ }
107
+ /**
108
+ * Deletes a transaction. This is the single entry point for ALL deletions.
109
+ * The tx is always soft-deleted (kept in DB):
110
+ *
111
+ * - If the tx is from a pruned block: prune-soft-delete (kept until finalized)
112
+ * - If the tx is NOT from a pruned block: slot-soft-delete (kept until next slot)
113
+ */ async deleteTx(txHash) {
114
+ const existing = this.#state.get(txHash);
115
+ if (existing !== undefined) {
116
+ // Prune-soft-delete - keep in DB until finalized
117
+ const state = {
118
+ minedAtBlock: existing.minedAtBlock,
119
+ softDeleted: true
120
+ };
121
+ this.#state.set(txHash, state);
122
+ await this.#deletedTxsDB.set(txHash, serializeState(state));
123
+ } else {
124
+ // Slot-soft-delete - keep in DB until next slot
125
+ this.#slotDeletedTxs.set(txHash, this.#currentSlot);
126
+ await this.#slotDeletedDB.add(txHash);
127
+ }
128
+ }
129
+ /**
130
+ * Clears tracking for a transaction if it re-mines at a block number >= the tracked minedAtBlock.
131
+ *
132
+ * When a tx re-mines at a higher (or equal) block, the old high-water mark is no longer needed:
133
+ * any future prune would re-add the tx with an even higher block number. Clearing keeps
134
+ * DeletedPool consistent — only txs that are actually un-mined should be tracked here.
135
+ *
136
+ * When a tx re-mines at a lower block, we must preserve the existing entry to retain
137
+ * the high-water mark for re-execution purposes.
138
+ */ async clearIfMinedHigher(txHash, minedAtBlock) {
139
+ const existing = this.#state.get(txHash);
140
+ if (existing !== undefined && minedAtBlock >= existing.minedAtBlock) {
141
+ this.#state.delete(txHash);
142
+ await this.#deletedTxsDB.delete(txHash);
143
+ this.#log.debug(`Cleared tracking for tx ${txHash}: re-mined at block ${minedAtBlock} (was ${existing.minedAtBlock})`);
144
+ }
145
+ }
146
+ /**
147
+ * Checks if a transaction is from a pruned block.
148
+ */ isFromPrunedBlock(txHash) {
149
+ return this.#state.has(txHash);
150
+ }
151
+ /**
152
+ * Checks if a transaction is soft-deleted (either prune-based or slot-based).
153
+ */ isSoftDeleted(txHash) {
154
+ return (this.#state.get(txHash)?.softDeleted ?? false) || this.#slotDeletedTxs.has(txHash);
155
+ }
156
+ /**
157
+ * Gets the block number in which a transaction was originally mined.
158
+ */ getMinedAtBlock(txHash) {
159
+ return this.#state.get(txHash)?.minedAtBlock;
160
+ }
161
+ /**
162
+ * Finalizes transactions when a block is finalized.
163
+ * Hard-deletes transactions that were originally mined at or before the finalized block.
164
+ *
165
+ * @returns The hashes of transactions that were hard-deleted
166
+ */ async finalizeBlock(finalizedBlockNumber) {
167
+ const toHardDelete = [];
168
+ for (const [txHash, state] of this.#state){
169
+ if (state.softDeleted && state.minedAtBlock <= finalizedBlockNumber) {
170
+ toHardDelete.push(txHash);
171
+ }
172
+ }
173
+ if (toHardDelete.length === 0) {
174
+ return [];
175
+ }
176
+ // Hard-delete from all stores
177
+ for (const txHash of toHardDelete){
178
+ this.#state.delete(txHash);
179
+ await this.#deletedTxsDB.delete(txHash);
180
+ await this.#txsDB.delete(txHash);
181
+ }
182
+ this.#log.debug(`Finalized ${toHardDelete.length} txs from pruned blocks at block ${finalizedBlockNumber}`, {
183
+ txHashes: toHardDelete
184
+ });
185
+ return toHardDelete;
186
+ }
187
+ /**
188
+ * Cleans up slot-deleted transactions from previous slots.
189
+ * Called at the start of prepareForSlot. Updates #currentSlot and hard-deletes
190
+ * any txs that were deleted in an earlier slot.
191
+ */ async cleanupSlotDeleted(currentSlot) {
192
+ const previousSlot = this.#currentSlot;
193
+ this.#currentSlot = currentSlot;
194
+ const toHardDelete = [];
195
+ for (const [txHash, deletedAtSlot] of this.#slotDeletedTxs){
196
+ if (deletedAtSlot < currentSlot) {
197
+ toHardDelete.push(txHash);
198
+ }
199
+ }
200
+ if (toHardDelete.length === 0) {
201
+ return;
202
+ }
203
+ for (const txHash of toHardDelete){
204
+ this.#slotDeletedTxs.delete(txHash);
205
+ await this.#slotDeletedDB.delete(txHash);
206
+ await this.#txsDB.delete(txHash);
207
+ }
208
+ this.#log.debug(`Cleaned up ${toHardDelete.length} slot-deleted txs from slot ${previousSlot} (now slot ${currentSlot})`, {
209
+ txHashes: toHardDelete
210
+ });
211
+ }
212
+ /**
213
+ * Clears soft-deletion status for a transaction being re-added to the pool.
214
+ * Removes slot-deleted tracking entirely, and resets the prune-soft-deleted flag
215
+ * while preserving the prune tracking itself (so a subsequent delete still uses
216
+ * the prune path).
217
+ */ async clearSoftDeleted(txHash) {
218
+ if (this.#slotDeletedTxs.has(txHash)) {
219
+ this.#slotDeletedTxs.delete(txHash);
220
+ await this.#slotDeletedDB.delete(txHash);
221
+ }
222
+ const existing = this.#state.get(txHash);
223
+ if (existing?.softDeleted) {
224
+ const state = {
225
+ minedAtBlock: existing.minedAtBlock,
226
+ softDeleted: false
227
+ };
228
+ this.#state.set(txHash, state);
229
+ await this.#deletedTxsDB.set(txHash, serializeState(state));
230
+ }
231
+ }
232
+ /**
233
+ * Gets the count of transactions from pruned blocks.
234
+ */ getCount() {
235
+ return this.#state.size;
236
+ }
237
+ /** Gets the count of soft-deleted transactions (both prune-based and slot-based). */ getSoftDeletedCount() {
238
+ let count = this.#slotDeletedTxs.size;
239
+ for (const state of this.#state.values()){
240
+ if (state.softDeleted) {
241
+ count++;
242
+ }
243
+ }
244
+ return count;
245
+ }
246
+ /**
247
+ * Gets all transaction hashes from pruned blocks.
248
+ */ getPrunedTxHashes() {
249
+ return Array.from(this.#state.keys());
250
+ }
251
+ }
@@ -2,7 +2,7 @@ import type { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import type { Logger } from '@aztec/foundation/log';
3
3
  import type { BlockHeader } from '@aztec/stdlib/tx';
4
4
  import type { TxMetaData } from '../tx_metadata.js';
5
- import { type EvictionConfig, type EvictionRule, type PoolOperations, type PreAddPoolAccess, type PreAddResult, type PreAddRule } from './interfaces.js';
5
+ import { type EvictionConfig, type EvictionRule, type PoolOperations, type PreAddContext, type PreAddPoolAccess, type PreAddResult, type PreAddRule } from './interfaces.js';
6
6
  /**
7
7
  * Manages eviction rules for the transaction pool.
8
8
  * Coordinates pre-add rules (run during addPendingTxs) and post-event rules (run after events).
@@ -25,7 +25,7 @@ export declare class EvictionManager {
25
25
  * Runs all pre-add rules for an incoming transaction.
26
26
  * Returns combined result of all rules.
27
27
  */
28
- runPreAddRules(incomingMeta: TxMetaData, poolAccess: PreAddPoolAccess): Promise<PreAddResult>;
28
+ runPreAddRules(incomingMeta: TxMetaData, poolAccess: PreAddPoolAccess, context?: PreAddContext): Promise<PreAddResult>;
29
29
  /**
30
30
  * Runs post-event eviction after new transactions are added.
31
31
  */
@@ -44,4 +44,4 @@ export declare class EvictionManager {
44
44
  updateConfig(config: EvictionConfig): void;
45
45
  private runPostEventRules;
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZpY3Rpb25fbWFuYWdlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2V2aWN0aW9uL2V2aWN0aW9uX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUduQixLQUFLLFlBQVksRUFDakIsS0FBSyxjQUFjLEVBQ25CLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssWUFBWSxFQUNqQixLQUFLLFVBQVUsRUFDaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6Qjs7O0dBR0c7QUFDSCxxQkFBYSxlQUFlO0lBS3hCLE9BQU8sQ0FBQyxJQUFJO0lBQ1osT0FBTyxDQUFDLEdBQUc7SUFMYixPQUFPLENBQUMsV0FBVyxDQUFvQjtJQUN2QyxPQUFPLENBQUMsY0FBYyxDQUFzQjtJQUU1QyxZQUNVLElBQUksRUFBRSxjQUFjLEVBQ3BCLEdBQUcsRUFBRSxNQUFNLEVBQ2pCO0lBRUo7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FHekM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxJQUFJLEVBQUUsWUFBWSxHQUFHLElBQUksQ0FHckM7SUFFRDs7O09BR0c7SUFDRyxjQUFjLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQWdDbEc7SUFFRDs7T0FFRztJQUNHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVFoRjtJQUVEOztPQUVHO0lBQ0csa0JBQWtCLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FTeEc7SUFFRDs7T0FFRztJQUNHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU9sRTtJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsSUFBSSxDQU96QztZQUVhLGlCQUFpQjtDQVloQyJ9
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZpY3Rpb25fbWFuYWdlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2V2aWN0aW9uL2V2aWN0aW9uX21hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUduQixLQUFLLFlBQVksRUFDakIsS0FBSyxjQUFjLEVBQ25CLEtBQUssYUFBYSxFQUNsQixLQUFLLGdCQUFnQixFQUNyQixLQUFLLFlBQVksRUFDakIsS0FBSyxVQUFVLEVBR2hCLE1BQU0saUJBQWlCLENBQUM7QUFFekI7OztHQUdHO0FBQ0gscUJBQWEsZUFBZTtJQUt4QixPQUFPLENBQUMsSUFBSTtJQUNaLE9BQU8sQ0FBQyxHQUFHO0lBTGIsT0FBTyxDQUFDLFdBQVcsQ0FBb0I7SUFDdkMsT0FBTyxDQUFDLGNBQWMsQ0FBc0I7SUFFNUMsWUFDVSxJQUFJLEVBQUUsY0FBYyxFQUNwQixHQUFHLEVBQUUsTUFBTSxFQUNqQjtJQUVKOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxJQUFJLENBR3pDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksR0FBRyxJQUFJLENBR3JDO0lBRUQ7OztPQUdHO0lBQ0csY0FBYyxDQUNsQixZQUFZLEVBQUUsVUFBVSxFQUN4QixVQUFVLEVBQUUsZ0JBQWdCLEVBQzVCLE9BQU8sQ0FBQyxFQUFFLGFBQWEsR0FDdEIsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQXNDdkI7SUFFRDs7T0FFRztJQUNHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVFoRjtJQUVEOztPQUVHO0lBQ0csa0JBQWtCLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FTeEc7SUFFRDs7T0FFRztJQUNHLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQU9sRTtJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLE1BQU0sRUFBRSxjQUFjLEdBQUcsSUFBSSxDQU96QztZQUVhLGlCQUFpQjtDQVloQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"eviction_manager.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,eAAe;IAKxB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,GAAG;IALb,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAsB;IAE5C,YACU,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,MAAM,EACjB;IAEJ;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAGzC;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAGrC;IAED;;;OAGG;IACG,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAgClG;IAED;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhF;IAED;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASxG;IAED;;OAEG;IACG,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlE;IAED;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAOzC;YAEa,iBAAiB;CAYhC"}
1
+ {"version":3,"file":"eviction_manager.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EAGhB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,eAAe;IAKxB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,GAAG;IALb,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,cAAc,CAAsB;IAE5C,YACU,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,MAAM,EACjB;IAEJ;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAGzC;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAGrC;IAED;;;OAGG;IACG,cAAc,CAClB,YAAY,EAAE,UAAU,EACxB,UAAU,EAAE,gBAAgB,EAC5B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC,CAsCvB;IAED;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhF;IAED;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASxG;IAED;;OAEG;IACG,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlE;IAED;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAOzC;YAEa,iBAAiB;CAYhC"}