@aztec/p2p 0.0.1-commit.42ee6df9b → 0.0.1-commit.431c48d

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 (360) hide show
  1. package/README.md +7 -6
  2. package/dest/bootstrap/bootstrap.d.ts +1 -1
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +22 -6
  5. package/dest/client/factory.d.ts +4 -3
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +32 -23
  8. package/dest/client/interface.d.ts +44 -11
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +34 -19
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +119 -59
  13. package/dest/config.d.ts +150 -107
  14. package/dest/config.d.ts.map +1 -1
  15. package/dest/config.js +77 -26
  16. package/dest/errors/reqresp.error.d.ts +9 -16
  17. package/dest/errors/reqresp.error.d.ts.map +1 -1
  18. package/dest/errors/reqresp.error.js +10 -17
  19. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +98 -56
  20. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  21. package/dest/mem_pools/attestation_pool/attestation_pool.js +270 -198
  22. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  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 +218 -59
  25. package/dest/mem_pools/attestation_pool/mocks.d.ts +1 -1
  26. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  27. package/dest/mem_pools/attestation_pool/mocks.js +6 -4
  28. package/dest/mem_pools/instrumentation.d.ts +9 -4
  29. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  30. package/dest/mem_pools/instrumentation.js +28 -9
  31. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +10 -5
  32. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -1
  33. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +29 -20
  34. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +3 -3
  35. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -1
  36. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +6 -6
  37. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  38. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  39. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +3 -3
  40. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
  41. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  42. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +3 -1
  43. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -1
  44. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  45. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -0
  46. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  47. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  48. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +64 -0
  49. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +1 -1
  50. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +3 -4
  52. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +1 -1
  53. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -1
  54. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +6 -7
  55. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +1 -1
  56. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  57. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +6 -5
  58. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +11 -1
  59. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -1
  60. package/dest/mem_pools/tx_pool_v2/instrumentation.js +24 -0
  61. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +33 -5
  62. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  63. package/dest/mem_pools/tx_pool_v2/interfaces.js +2 -1
  64. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +5 -2
  65. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  66. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +8 -5
  67. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +15 -1
  68. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  69. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +31 -0
  70. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +16 -3
  71. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  72. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +83 -32
  73. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +50 -6
  74. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  75. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +243 -127
  76. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +10 -3
  77. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  78. package/dest/msg_validators/attestation_validator/attestation_validator.js +38 -16
  79. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +7 -3
  80. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  81. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +4 -5
  82. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +8 -3
  83. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  84. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +2 -2
  85. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +8 -3
  86. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  87. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +8 -2
  88. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +25 -3
  89. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  90. package/dest/msg_validators/proposal_validator/proposal_validator.js +85 -15
  91. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  92. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  93. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +8 -15
  94. package/dest/msg_validators/tx_validator/allowed_public_setup.js +3 -3
  95. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  96. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  97. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  98. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  99. package/dest/msg_validators/tx_validator/data_validator.d.ts +2 -1
  100. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  101. package/dest/msg_validators/tx_validator/data_validator.js +1 -0
  102. package/dest/msg_validators/tx_validator/factory.d.ts +14 -15
  103. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  104. package/dest/msg_validators/tx_validator/factory.js +29 -16
  105. package/dest/msg_validators/tx_validator/gas_validator.d.ts +47 -10
  106. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  107. package/dest/msg_validators/tx_validator/gas_validator.js +65 -48
  108. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  109. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  110. package/dest/msg_validators/tx_validator/index.js +2 -0
  111. package/dest/msg_validators/tx_validator/phases_validator.js +2 -2
  112. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +2 -1
  113. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  114. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -0
  115. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  116. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  117. package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
  118. package/dest/services/data_store.d.ts +1 -1
  119. package/dest/services/data_store.d.ts.map +1 -1
  120. package/dest/services/data_store.js +5 -5
  121. package/dest/services/discv5/discV5_service.d.ts +13 -2
  122. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  123. package/dest/services/discv5/discV5_service.js +119 -23
  124. package/dest/services/discv5/persisted_enr_store.d.ts +38 -0
  125. package/dest/services/discv5/persisted_enr_store.d.ts.map +1 -0
  126. package/dest/services/discv5/persisted_enr_store.js +145 -0
  127. package/dest/services/dummy_service.d.ts +18 -18
  128. package/dest/services/dummy_service.d.ts.map +1 -1
  129. package/dest/services/dummy_service.js +19 -18
  130. package/dest/services/encoding.d.ts +19 -6
  131. package/dest/services/encoding.d.ts.map +1 -1
  132. package/dest/services/encoding.js +25 -15
  133. package/dest/services/gossipsub/topic_score_params.d.ts +6 -12
  134. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  135. package/dest/services/gossipsub/topic_score_params.js +4 -14
  136. package/dest/services/libp2p/instrumentation.d.ts +6 -1
  137. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  138. package/dest/services/libp2p/instrumentation.js +21 -0
  139. package/dest/services/libp2p/libp2p_service.d.ts +40 -43
  140. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  141. package/dest/services/libp2p/libp2p_service.js +370 -276
  142. package/dest/services/peer-manager/peer_manager.d.ts +26 -2
  143. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  144. package/dest/services/peer-manager/peer_manager.js +103 -17
  145. package/dest/services/peer-manager/peer_scoring.d.ts +30 -1
  146. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  147. package/dest/services/peer-manager/peer_scoring.js +74 -3
  148. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +1 -8
  149. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  150. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +35 -44
  151. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +8 -5
  152. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  153. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +5 -14
  154. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -1
  155. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +6 -20
  156. package/dest/services/reqresp/config.d.ts +15 -3
  157. package/dest/services/reqresp/config.d.ts.map +1 -1
  158. package/dest/services/reqresp/config.js +11 -0
  159. package/dest/services/reqresp/interface.d.ts +16 -18
  160. package/dest/services/reqresp/interface.d.ts.map +1 -1
  161. package/dest/services/reqresp/interface.js +10 -20
  162. package/dest/services/reqresp/metrics.d.ts +1 -1
  163. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  164. package/dest/services/reqresp/metrics.js +0 -1
  165. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +4 -3
  166. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  167. package/dest/services/reqresp/protocols/block_txs/bitvector.js +3 -2
  168. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  169. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  170. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +31 -28
  171. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +12 -7
  172. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  173. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +42 -24
  174. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  175. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  176. package/dest/services/reqresp/protocols/index.js +0 -1
  177. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  178. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  179. package/dest/services/reqresp/protocols/tx.js +1 -3
  180. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  181. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  182. package/dest/services/reqresp/rate-limiter/rate_limits.js +3 -13
  183. package/dest/services/reqresp/reqresp.d.ts +7 -29
  184. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  185. package/dest/services/reqresp/reqresp.js +59 -209
  186. package/dest/services/service.d.ts +41 -19
  187. package/dest/services/service.d.ts.map +1 -1
  188. package/dest/services/tx_collection/config.d.ts +2 -23
  189. package/dest/services/tx_collection/config.d.ts.map +1 -1
  190. package/dest/services/tx_collection/config.js +2 -55
  191. package/dest/services/tx_collection/file_store_tx_collection.d.ts +12 -28
  192. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -1
  193. package/dest/services/tx_collection/file_store_tx_collection.js +43 -83
  194. package/dest/services/tx_collection/index.d.ts +2 -3
  195. package/dest/services/tx_collection/index.d.ts.map +1 -1
  196. package/dest/services/tx_collection/index.js +0 -1
  197. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  198. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  199. package/dest/services/tx_collection/instrumentation.js +0 -2
  200. package/dest/services/tx_collection/tx_collection.d.ts +35 -51
  201. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  202. package/dest/services/tx_collection/tx_collection.js +275 -119
  203. package/dest/services/tx_collection/tx_collection_sink.d.ts +1 -1
  204. package/dest/services/tx_collection/tx_collection_sink.js +2 -2
  205. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  206. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  207. package/dest/services/tx_collection/tx_source.js +4 -1
  208. package/dest/services/tx_file_store/tx_file_store.d.ts +1 -3
  209. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
  210. package/dest/services/tx_file_store/tx_file_store.js +4 -14
  211. package/dest/services/tx_provider.d.ts +3 -1
  212. package/dest/services/tx_provider.d.ts.map +1 -1
  213. package/dest/services/tx_provider.js +3 -0
  214. package/dest/test-helpers/make-test-p2p-clients.d.ts +1 -1
  215. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  216. package/dest/test-helpers/make-test-p2p-clients.js +5 -2
  217. package/dest/test-helpers/mock-pubsub.d.ts +33 -9
  218. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  219. package/dest/test-helpers/mock-pubsub.js +57 -44
  220. package/dest/test-helpers/reqresp-nodes.d.ts +4 -5
  221. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  222. package/dest/test-helpers/reqresp-nodes.js +16 -18
  223. package/dest/test-helpers/test_tx_provider.d.ts +3 -1
  224. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -1
  225. package/dest/test-helpers/test_tx_provider.js +3 -0
  226. package/dest/test-helpers/testbench-utils.d.ts +15 -14
  227. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  228. package/dest/test-helpers/testbench-utils.js +28 -13
  229. package/dest/testbench/p2p_client_testbench_worker.d.ts +3 -5
  230. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  231. package/dest/testbench/p2p_client_testbench_worker.js +60 -27
  232. package/dest/testbench/worker_client_manager.d.ts +10 -6
  233. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  234. package/dest/testbench/worker_client_manager.js +51 -8
  235. package/dest/util.d.ts +11 -6
  236. package/dest/util.d.ts.map +1 -1
  237. package/dest/util.js +35 -14
  238. package/dest/versioning.d.ts +3 -6
  239. package/dest/versioning.d.ts.map +1 -1
  240. package/dest/versioning.js +3 -24
  241. package/package.json +17 -17
  242. package/src/bootstrap/bootstrap.ts +17 -3
  243. package/src/client/factory.ts +48 -24
  244. package/src/client/interface.ts +39 -17
  245. package/src/client/p2p_client.ts +135 -92
  246. package/src/client/test/{tx_proposal_collector/README.md → p2p_client.batch_tx_requester.bench.README.md} +23 -53
  247. package/src/config.ts +159 -34
  248. package/src/errors/reqresp.error.ts +13 -19
  249. package/src/mem_pools/attestation_pool/attestation_pool.ts +325 -242
  250. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +238 -63
  251. package/src/mem_pools/attestation_pool/mocks.ts +13 -8
  252. package/src/mem_pools/instrumentation.ts +18 -12
  253. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +30 -20
  254. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +7 -7
  255. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +2 -4
  256. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -2
  257. package/src/mem_pools/tx_pool_v2/eviction/index.ts +1 -0
  258. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +67 -0
  259. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +1 -3
  260. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +5 -7
  261. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +5 -6
  262. package/src/mem_pools/tx_pool_v2/instrumentation.ts +27 -0
  263. package/src/mem_pools/tx_pool_v2/interfaces.ts +31 -4
  264. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +13 -7
  265. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +35 -0
  266. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +94 -31
  267. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +270 -133
  268. package/src/msg_validators/attestation_validator/attestation_validator.ts +46 -15
  269. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +15 -7
  270. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +15 -3
  271. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +26 -3
  272. package/src/msg_validators/proposal_validator/proposal_validator.ts +94 -12
  273. package/src/msg_validators/tx_validator/README.md +13 -3
  274. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -12
  275. package/src/msg_validators/tx_validator/allowed_public_setup.ts +3 -3
  276. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  277. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  278. package/src/msg_validators/tx_validator/data_validator.ts +2 -0
  279. package/src/msg_validators/tx_validator/factory.ts +37 -20
  280. package/src/msg_validators/tx_validator/gas_validator.ts +99 -54
  281. package/src/msg_validators/tx_validator/index.ts +2 -0
  282. package/src/msg_validators/tx_validator/phases_validator.ts +2 -2
  283. package/src/msg_validators/tx_validator/tx_proof_validator.ts +2 -0
  284. package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
  285. package/src/services/data_store.ts +5 -13
  286. package/src/services/discv5/discV5_service.ts +126 -14
  287. package/src/services/discv5/persisted_enr_store.ts +158 -0
  288. package/src/services/dummy_service.ts +25 -44
  289. package/src/services/encoding.ts +28 -20
  290. package/src/services/gossipsub/README.md +33 -11
  291. package/src/services/gossipsub/topic_score_params.ts +9 -18
  292. package/src/services/libp2p/instrumentation.ts +22 -0
  293. package/src/services/libp2p/libp2p_service.ts +433 -302
  294. package/src/services/peer-manager/peer_manager.ts +112 -16
  295. package/src/services/peer-manager/peer_scoring.ts +81 -3
  296. package/src/services/reqresp/README.md +2 -37
  297. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +39 -52
  298. package/src/services/reqresp/batch-tx-requester/interface.ts +11 -4
  299. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +12 -25
  300. package/src/services/reqresp/config.ts +19 -2
  301. package/src/services/reqresp/interface.ts +21 -47
  302. package/src/services/reqresp/metrics.ts +0 -1
  303. package/src/services/reqresp/protocols/block_txs/bitvector.ts +3 -2
  304. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +34 -30
  305. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +47 -20
  306. package/src/services/reqresp/protocols/index.ts +0 -1
  307. package/src/services/reqresp/protocols/tx.ts +1 -3
  308. package/src/services/reqresp/rate-limiter/rate_limits.ts +3 -13
  309. package/src/services/reqresp/reqresp.ts +69 -252
  310. package/src/services/service.ts +48 -37
  311. package/src/services/tx_collection/config.ts +3 -80
  312. package/src/services/tx_collection/file_store_tx_collection.ts +54 -103
  313. package/src/services/tx_collection/index.ts +1 -6
  314. package/src/services/tx_collection/instrumentation.ts +1 -7
  315. package/src/services/tx_collection/tx_collection.ts +330 -173
  316. package/src/services/tx_collection/tx_collection_sink.ts +2 -2
  317. package/src/services/tx_collection/tx_source.ts +2 -1
  318. package/src/services/tx_file_store/tx_file_store.ts +5 -17
  319. package/src/services/tx_provider.ts +5 -0
  320. package/src/test-helpers/make-test-p2p-clients.ts +3 -0
  321. package/src/test-helpers/mock-pubsub.ts +61 -60
  322. package/src/test-helpers/reqresp-nodes.ts +12 -22
  323. package/src/test-helpers/test_tx_provider.ts +5 -0
  324. package/src/test-helpers/testbench-utils.ts +35 -26
  325. package/src/testbench/p2p_client_testbench_worker.ts +68 -44
  326. package/src/testbench/worker_client_manager.ts +59 -19
  327. package/src/util.ts +32 -17
  328. package/src/versioning.ts +3 -33
  329. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +0 -2
  330. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +0 -1
  331. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +0 -315
  332. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +0 -73
  333. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +0 -1
  334. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +0 -8
  335. package/dest/msg_validators/clock_tolerance.d.ts +0 -21
  336. package/dest/msg_validators/clock_tolerance.d.ts.map +0 -1
  337. package/dest/msg_validators/clock_tolerance.js +0 -38
  338. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -64
  339. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  340. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -151
  341. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  342. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  343. package/dest/services/reqresp/protocols/block.js +0 -32
  344. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -51
  345. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  346. package/dest/services/tx_collection/fast_tx_collection.js +0 -311
  347. package/dest/services/tx_collection/proposal_tx_collector.d.ts +0 -48
  348. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +0 -1
  349. package/dest/services/tx_collection/proposal_tx_collector.js +0 -50
  350. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -57
  351. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  352. package/dest/services/tx_collection/slow_tx_collection.js +0 -211
  353. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +0 -355
  354. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +0 -43
  355. package/src/msg_validators/clock_tolerance.ts +0 -52
  356. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -161
  357. package/src/services/reqresp/protocols/block.ts +0 -37
  358. package/src/services/tx_collection/fast_tx_collection.ts +0 -361
  359. package/src/services/tx_collection/proposal_tx_collector.ts +0 -108
  360. package/src/services/tx_collection/slow_tx_collection.ts +0 -266
@@ -25,6 +25,15 @@ export declare class TxArchive {
25
25
  * Evicts oldest transactions if the limit is exceeded.
26
26
  */
27
27
  archiveTxs(txs: Tx[]): Promise<void>;
28
+ /**
29
+ * Archives already-serialized proof-less tx buffers, avoiding any deserialization. This is the
30
+ * hot path used at finalization time, where the pool already stores txs proof-stripped.
31
+ * Evicts oldest transactions if the limit is exceeded.
32
+ */
33
+ archiveTxBuffers(entries: {
34
+ txHash: string;
35
+ buffer: Buffer;
36
+ }[]): Promise<void>;
28
37
  /**
29
38
  * Retrieves an archived transaction by its hash.
30
39
  */
@@ -33,11 +42,7 @@ export declare class TxArchive {
33
42
  * Gets the current count of archived transactions.
34
43
  */
35
44
  getCount(): Promise<number>;
36
- /**
37
- * Strips the proof from a transaction for archival.
38
- */
39
- private stripProof;
40
45
  private getHeadIndex;
41
46
  private getTailIndex;
42
47
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfYXJjaGl2ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2FyY2hpdmUvdHhfYXJjaGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFFeEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5Qzs7O0dBR0c7QUFDSCxxQkFBYSxTQUFTOztJQU9wQixZQUFZLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFNaEU7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFL0I7SUFFRDs7T0FFRztJQUNILFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQ7O09BRUc7SUFDSCxTQUFTLElBQUksT0FBTyxDQUVuQjtJQUVEOzs7T0FHRztJQUNHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQW1DekM7SUFFRDs7T0FFRztJQUNHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBR3pEO0lBRUQ7O09BRUc7SUFDRyxRQUFRLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUloQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLFVBQVU7WUFJSixZQUFZO1lBS1osWUFBWTtDQUkzQiJ9
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfYXJjaGl2ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2FyY2hpdmUvdHhfYXJjaGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5Qzs7O0dBR0c7QUFDSCxxQkFBYSxTQUFTOztJQU9wQixZQUFZLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFNaEU7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFL0I7SUFFRDs7T0FFRztJQUNILFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQ7O09BRUc7SUFDSCxTQUFTLElBQUksT0FBTyxDQUVuQjtJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVFuQztJQUVEOzs7O09BSUc7SUFDRyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7UUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBcUNuRjtJQUVEOztPQUVHO0lBQ0csV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FHekQ7SUFFRDs7T0FFRztJQUNHLFFBQVEsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBSWhDO1lBRWEsWUFBWTtZQUtaLFlBQVk7Q0FJM0IifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"tx_archive.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/archive/tx_archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,SAAS;;IAOpB,YAAY,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAMhE;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE/B;IAED;;OAEG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,SAAS,IAAI,OAAO,CAEnB;IAED;;;OAGG;IACG,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCzC;IAED;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAGzD;IAED;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAIhC;IAED;;OAEG;IACH,OAAO,CAAC,UAAU;YAIJ,YAAY;YAKZ,YAAY;CAI3B"}
1
+ {"version":3,"file":"tx_archive.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/archive/tx_archive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,SAAS;;IAOpB,YAAY,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAMhE;IAED;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE/B;IAED;;OAEG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,SAAS,IAAI,OAAO,CAEnB;IAED;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQnC;IAED;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCnF;IAED;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAGzD;IAED;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAIhC;YAEa,YAAY;YAKZ,YAAY;CAI3B"}
@@ -1,5 +1,5 @@
1
+ import { first } from '@aztec/foundation/iterable';
1
2
  import { createLogger } from '@aztec/foundation/log';
2
- import { ChonkProof } from '@aztec/stdlib/proofs';
3
3
  import { Tx } from '@aztec/stdlib/tx';
4
4
  /**
5
5
  * Manages archived transactions with FIFO eviction.
@@ -35,8 +35,21 @@ import { Tx } from '@aztec/stdlib/tx';
35
35
  /**
36
36
  * Archives transactions, stripping their proofs.
37
37
  * Evicts oldest transactions if the limit is exceeded.
38
- */ async archiveTxs(txs) {
39
- if (!this.isEnabled() || txs.length === 0) {
38
+ */ archiveTxs(txs) {
39
+ if (!this.isEnabled()) {
40
+ return Promise.resolve();
41
+ }
42
+ return this.archiveTxBuffers(txs.map((tx)=>({
43
+ txHash: tx.getTxHash().toString(),
44
+ buffer: tx.withoutProof().toBuffer()
45
+ })));
46
+ }
47
+ /**
48
+ * Archives already-serialized proof-less tx buffers, avoiding any deserialization. This is the
49
+ * hot path used at finalization time, where the pool already stores txs proof-stripped.
50
+ * Evicts oldest transactions if the limit is exceeded.
51
+ */ async archiveTxBuffers(entries) {
52
+ if (!this.isEnabled() || entries.length === 0) {
40
53
  return;
41
54
  }
42
55
  try {
@@ -44,7 +57,11 @@ import { Tx } from '@aztec/stdlib/tx';
44
57
  // Get current head and tail indices
45
58
  let headIdx = await this.getHeadIndex();
46
59
  let tailIdx = await this.getTailIndex();
47
- for (const tx of txs){
60
+ for (const { txHash, buffer } of entries){
61
+ // Skip txs that are already archived
62
+ if (await this.#txs.hasAsync(txHash)) {
63
+ continue;
64
+ }
48
65
  // Evict oldest entries if at capacity
49
66
  while(headIdx - tailIdx >= this.#limit){
50
67
  const txHashToEvict = await this.#indices.getAsync(tailIdx);
@@ -54,14 +71,11 @@ import { Tx } from '@aztec/stdlib/tx';
54
71
  }
55
72
  tailIdx++;
56
73
  }
57
- // Archive the transaction with stripped proof
58
- const archivedTx = this.stripProof(tx);
59
- const txHash = tx.getTxHash().toString();
60
- await this.#txs.set(txHash, archivedTx.toBuffer());
74
+ await this.#txs.set(txHash, buffer);
61
75
  await this.#indices.set(headIdx, txHash);
62
76
  headIdx++;
63
77
  }
64
- this.#log.debug(`Archived ${txs.length} txs, total: ${headIdx - tailIdx}`);
78
+ this.#log.debug(`Archived ${entries.length} txs, total: ${headIdx - tailIdx}`);
65
79
  });
66
80
  } catch (error) {
67
81
  this.#log.error('Error archiving transactions', {
@@ -82,22 +96,17 @@ import { Tx } from '@aztec/stdlib/tx';
82
96
  const tail = await this.getTailIndex();
83
97
  return head - tail;
84
98
  }
85
- /**
86
- * Strips the proof from a transaction for archival.
87
- */ stripProof(tx) {
88
- return new Tx(tx.txHash, tx.data, ChonkProof.empty(), tx.contractClassLogFields, tx.publicFunctionCalldata);
89
- }
90
99
  async getHeadIndex() {
91
- const entry = await this.#indices.entriesAsync({
100
+ const entry = await first(this.#indices.entriesAsync({
92
101
  limit: 1,
93
102
  reverse: true
94
- }).next();
95
- return (entry.value?.[0] ?? -1) + 1;
103
+ }));
104
+ return entry === undefined ? 0 : entry[0] + 1;
96
105
  }
97
106
  async getTailIndex() {
98
- const entry = await this.#indices.entriesAsync({
107
+ const entry = await first(this.#indices.entriesAsync({
99
108
  limit: 1
100
- }).next();
101
- return entry.value?.[0] ?? 0;
109
+ }));
110
+ return entry === undefined ? 0 : entry[0];
102
111
  }
103
112
  }
@@ -1,6 +1,6 @@
1
1
  import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
2
  import type { Logger } from '@aztec/foundation/log';
3
- import type { AztecAsyncKVStore, AztecAsyncMap } from '@aztec/kv-store';
3
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
4
  /**
5
5
  * Manages all transaction deletions in the pool.
6
6
  *
@@ -18,7 +18,7 @@ import type { AztecAsyncKVStore, AztecAsyncMap } from '@aztec/kv-store';
18
18
  */
19
19
  export declare class DeletedPool {
20
20
  #private;
21
- constructor(store: AztecAsyncKVStore, txsDB: AztecAsyncMap<string, Buffer>, log: Logger);
21
+ constructor(store: AztecAsyncKVStore, deleteTxData: (txHash: string) => Promise<void>, log: Logger);
22
22
  /**
23
23
  * Loads state from the database on startup.
24
24
  * Slot-deleted txs are stale after restart and are immediately hard-deleted.
@@ -101,4 +101,4 @@ export declare class DeletedPool {
101
101
  */
102
102
  getPrunedTxHashes(): string[];
103
103
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlZF9wb29sLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvZGVsZXRlZF9wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBaUN2Rjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHFCQUFhLFdBQVc7O0lBcUJ0QixZQUFZLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUt0RjtJQUVEOzs7T0FHRztJQUNHLG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0E0QnpDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNHLG1CQUFtQixDQUFDLEdBQUcsRUFBRTtRQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFBQyxZQUFZLEVBQUUsV0FBVyxDQUFBO0tBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0F1QjdGO0lBRUQ7Ozs7OztPQU1HO0lBQ0csUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWU1QztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBU2pGO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFekM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFckM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFdBQVcsR0FBRyxTQUFTLENBRXZEO0lBRUQ7Ozs7O09BS0c7SUFDRyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQXVCeEU7SUFFRDs7OztPQUlHO0lBQ0csa0JBQWtCLENBQUMsV0FBVyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBeUIvRDtJQUVEOzs7OztPQUtHO0lBQ0csZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBV3BEO0lBRUQ7O09BRUc7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELHFGQUFxRjtJQUNyRixtQkFBbUIsSUFBSSxNQUFNLENBUTVCO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsSUFBSSxNQUFNLEVBQUUsQ0FFNUI7Q0FDRiJ9
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlZF9wb29sLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvZGVsZXRlZF9wb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWdDLE1BQU0saUJBQWlCLENBQUM7QUFpQ3ZGOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gscUJBQWEsV0FBVzs7SUFxQnRCLFlBQVksS0FBSyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBS2pHO0lBRUQ7OztPQUdHO0lBQ0csbUJBQW1CLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQTRCekM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0csbUJBQW1CLENBQUMsR0FBRyxFQUFFO1FBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUFDLFlBQVksRUFBRSxXQUFXLENBQUE7S0FBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQXVCN0Y7SUFFRDs7Ozs7O09BTUc7SUFDRyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZTVDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0csa0JBQWtCLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FTakY7SUFFRDs7T0FFRztJQUNILGlCQUFpQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUV6QztJQUVEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUVyQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsV0FBVyxHQUFHLFNBQVMsQ0FFdkQ7SUFFRDs7Ozs7T0FLRztJQUNHLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBdUJ4RTtJQUVEOzs7O09BSUc7SUFDRyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0F5Qi9EO0lBRUQ7Ozs7O09BS0c7SUFDRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FXcEQ7SUFFRDs7T0FFRztJQUNILFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQscUZBQXFGO0lBQ3JGLG1CQUFtQixJQUFJLE1BQU0sQ0FRNUI7SUFFRDs7T0FFRztJQUNILGlCQUFpQixJQUFJLE1BQU0sRUFBRSxDQUU1QjtDQUNGIn0=
@@ -1 +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"}
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,EAAgC,MAAM,iBAAiB,CAAC;AAiCvF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAW;;IAqBtB,YAAY,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAKjG;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"}
@@ -32,16 +32,16 @@ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
32
32
  * are hard-deleted when `prepareForSlot` advances to a new slot.
33
33
  */ export class DeletedPool {
34
34
  /** Persisted map: txHash -> DeletedTxState (serialized) - for prune-based soft deletions */ #deletedTxsDB;
35
- /** Reference to the main txs database for hard deletion */ #txsDB;
35
+ /** Hard-deletes a tx's stored data (tx blob and proof) from the pool's stores. */ #deleteTxData;
36
36
  /** In-memory state for transactions from pruned blocks */ #state = new Map();
37
37
  /** In-memory tracking: txHash -> slot at which the tx was deleted */ #slotDeletedTxs = new Map();
38
38
  /** Persisted set tracking which txs are slot-deleted, for hydration cleanup. */ #slotDeletedDB;
39
39
  /** Current slot number, updated by cleanupSlotDeleted */ #currentSlot = SlotNumber(0);
40
40
  #log;
41
- constructor(store, txsDB, log){
41
+ constructor(store, deleteTxData, log){
42
42
  this.#deletedTxsDB = store.openMap('deleted_txs');
43
43
  this.#slotDeletedDB = store.openSet('slot_deleted_txs');
44
- this.#txsDB = txsDB;
44
+ this.#deleteTxData = deleteTxData;
45
45
  this.#log = log;
46
46
  }
47
47
  /**
@@ -64,7 +64,7 @@ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
64
64
  // Slot-deleted txs are stale after restart - hard-delete them all
65
65
  let slotDeletedCount = 0;
66
66
  for await (const txHash of this.#slotDeletedDB.entriesAsync()){
67
- await this.#txsDB.delete(txHash);
67
+ await this.#deleteTxData(txHash);
68
68
  await this.#slotDeletedDB.delete(txHash);
69
69
  slotDeletedCount++;
70
70
  }
@@ -177,7 +177,7 @@ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
177
177
  for (const txHash of toHardDelete){
178
178
  this.#state.delete(txHash);
179
179
  await this.#deletedTxsDB.delete(txHash);
180
- await this.#txsDB.delete(txHash);
180
+ await this.#deleteTxData(txHash);
181
181
  }
182
182
  this.#log.debug(`Finalized ${toHardDelete.length} txs from pruned blocks at block ${finalizedBlockNumber}`, {
183
183
  txHashes: toHardDelete
@@ -203,7 +203,7 @@ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
203
203
  for (const txHash of toHardDelete){
204
204
  this.#slotDeletedTxs.delete(txHash);
205
205
  await this.#slotDeletedDB.delete(txHash);
206
- await this.#txsDB.delete(txHash);
206
+ await this.#deleteTxData(txHash);
207
207
  }
208
208
  this.#log.debug(`Cleaned up ${toHardDelete.length} slot-deleted txs from slot ${previousSlot} (now slot ${currentSlot})`, {
209
209
  txHashes: toHardDelete
@@ -14,4 +14,4 @@ export declare class FeePayerBalanceEvictionRule implements EvictionRule {
14
14
  private evictForFeePayers;
15
15
  private getEvictionsForFeePayer;
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX3BheWVyX2JhbGFuY2VfZXZpY3Rpb25fcnVsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2V2aWN0aW9uL2ZlZV9wYXllcl9iYWxhbmNlX2V2aWN0aW9uX3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUk5RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRzs7O0dBR0c7QUFDSCxxQkFBYSwyQkFBNEIsWUFBVyxZQUFZO0lBTWxELE9BQU8sQ0FBQyxVQUFVO0lBTDlCLFNBQWdCLElBQUksNkJBQTZCO0lBQ2pELFNBQWdCLE1BQU0sdUJBQXVCO0lBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQWtFO0lBRTdFLFlBQW9CLFVBQVUsRUFBRSxzQkFBc0IsRUFBSTtJQUVwRCxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FpQ25GO1lBRWEsaUJBQWlCO1lBeUJqQix1QkFBdUI7Q0FzQ3RDIn0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX3BheWVyX2JhbGFuY2VfZXZpY3Rpb25fcnVsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2V2aWN0aW9uL2ZlZV9wYXllcl9iYWxhbmNlX2V2aWN0aW9uX3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUk5RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRzs7O0dBR0c7QUFDSCxxQkFBYSwyQkFBNEIsWUFBVyxZQUFZO0lBTWxELE9BQU8sQ0FBQyxVQUFVO0lBTDlCLFNBQWdCLElBQUksNkJBQTZCO0lBQ2pELFNBQWdCLE1BQU0sdUJBQXVCO0lBRTdDLE9BQU8sQ0FBQyxHQUFHLENBQWtFO0lBRTdFLFlBQW9CLFVBQVUsRUFBRSxzQkFBc0IsRUFBSTtJQUVwRCxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FpQ25GO1lBRWEsaUJBQWlCO1lBdUJqQix1QkFBdUI7Q0FzQ3RDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fee_payer_balance_eviction_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrG;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,YAAY;IAMlD,OAAO,CAAC,UAAU;IAL9B,SAAgB,IAAI,6BAA6B;IACjD,SAAgB,MAAM,uBAAuB;IAE7C,OAAO,CAAC,GAAG,CAAkE;IAE7E,YAAoB,UAAU,EAAE,sBAAsB,EAAI;IAEpD,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAiCnF;YAEa,iBAAiB;YAyBjB,uBAAuB;CAsCtC"}
1
+ {"version":3,"file":"fee_payer_balance_eviction_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrG;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,YAAY;IAMlD,OAAO,CAAC,UAAU;IAL9B,SAAgB,IAAI,6BAA6B;IACjD,SAAgB,MAAM,uBAAuB;IAE7C,OAAO,CAAC,GAAG,CAAkE;IAE7E,YAAoB,UAAU,EAAE,sBAAsB,EAAI;IAEpD,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAiCnF;YAEa,iBAAiB;YAuBjB,uBAAuB;CAsCtC"}
@@ -59,8 +59,8 @@ import { EvictionEvent } from './interfaces.js';
59
59
  const txsToEvict = (await Promise.all(feePayers.map((feePayer)=>this.getEvictionsForFeePayer(feePayer, publicStateSource, pool)))).flat();
60
60
  if (txsToEvict.length > 0) {
61
61
  await pool.deleteTxs(txsToEvict, this.name);
62
- this.log.debug(`Evicted ${txsToEvict.length} txs due to insufficient fee payer balance`, {
63
- txHashes: txsToEvict
62
+ this.log.info(`Evicted ${txsToEvict.length} txs due to insufficient fee payer balance`, {
63
+ txsToEvict
64
64
  });
65
65
  }
66
66
  return {
@@ -70,7 +70,7 @@ import { EvictionEvent } from './interfaces.js';
70
70
  };
71
71
  }
72
72
  async getEvictionsForFeePayer(feePayerStr, publicStateSource, pool) {
73
- const feePayer = AztecAddress.fromString(feePayerStr);
73
+ const feePayer = AztecAddress.fromStringUnsafe(feePayerStr);
74
74
  const initialBalance = (await publicStateSource.storageRead(ProtocolContractAddress.FeeJuice, await computeFeePayerBalanceStorageSlot(feePayer))).toBigInt();
75
75
  const txs = pool.getFeePayerPendingTxs(feePayerStr);
76
76
  if (txs.length === 0) {
@@ -16,4 +16,4 @@ export declare class FeePayerBalancePreAddRule implements PreAddRule {
16
16
  private log;
17
17
  check(incomingMeta: TxMetaData, poolAccess: PreAddPoolAccess, _context?: PreAddContext): Promise<PreAddResult>;
18
18
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX3BheWVyX2JhbGFuY2VfcHJlX2FkZF9ydWxlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvZXZpY3Rpb24vZmVlX3BheWVyX2JhbGFuY2VfcHJlX2FkZF9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBbUIsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsS0FBSyxhQUFhLEVBQ2xCLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssWUFBWSxFQUNqQixLQUFLLFVBQVUsRUFFaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6Qjs7Ozs7Ozs7OztHQVVHO0FBQ0gscUJBQWEseUJBQTBCLFlBQVcsVUFBVTtJQUMxRCxTQUFnQixJQUFJLDJCQUEyQjtJQUUvQyxPQUFPLENBQUMsR0FBRyxDQUFpRTtJQUV0RSxLQUFLLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FnR25IO0NBQ0YifQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX3BheWVyX2JhbGFuY2VfcHJlX2FkZF9ydWxlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvZXZpY3Rpb24vZmVlX3BheWVyX2JhbGFuY2VfcHJlX2FkZF9ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBbUIsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsS0FBSyxhQUFhLEVBQ2xCLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssWUFBWSxFQUNqQixLQUFLLFVBQVUsRUFFaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6Qjs7Ozs7Ozs7OztHQVVHO0FBQ0gscUJBQWEseUJBQTBCLFlBQVcsVUFBVTtJQUMxRCxTQUFnQixJQUFJLDJCQUEyQjtJQUUvQyxPQUFPLENBQUMsR0FBRyxDQUFpRTtJQUV0RSxLQUFLLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FpR25IO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"fee_payer_balance_pre_add_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;GAUG;AACH,qBAAa,yBAA0B,YAAW,UAAU;IAC1D,SAAgB,IAAI,2BAA2B;IAE/C,OAAO,CAAC,GAAG,CAAiE;IAEtE,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAgGnH;CACF"}
1
+ {"version":3,"file":"fee_payer_balance_pre_add_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EAEhB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;GAUG;AACH,qBAAa,yBAA0B,YAAW,UAAU;IAC1D,SAAgB,IAAI,2BAA2B;IAE/C,OAAO,CAAC,GAAG,CAAiE;IAEtE,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAiGnH;CACF"}
@@ -87,7 +87,9 @@ import { TxPoolRejectionCode } from './interfaces.js';
87
87
  };
88
88
  }
89
89
  if (txsToEvict.length > 0) {
90
- this.log.debug(`Accepting tx ${incomingMeta.txHash}, evicting ${txsToEvict.length} lower-priority txs due to fee payer balance`);
90
+ this.log.info(`Accepting tx ${incomingMeta.txHash} and evicting ${txsToEvict.length} lower-priority txs due to fee payer balance`, {
91
+ txsToEvict
92
+ });
91
93
  }
92
94
  return {
93
95
  shouldIgnore: false,
@@ -3,8 +3,9 @@ export { type EvictionConfig, type EvictionContext, EvictionEvent, type Eviction
3
3
  export { NullifierConflictRule } from './nullifier_conflict_rule.js';
4
4
  export { FeePayerBalancePreAddRule } from './fee_payer_balance_pre_add_rule.js';
5
5
  export { LowPriorityPreAddRule } from './low_priority_pre_add_rule.js';
6
+ export { InsufficientFeePerGasEvictionRule } from './insufficient_fee_per_gas_eviction_rule.js';
6
7
  export { InvalidTxsAfterMiningRule } from './invalid_txs_after_mining_rule.js';
7
8
  export { InvalidTxsAfterReorgRule } from './invalid_txs_after_reorg_rule.js';
8
9
  export { FeePayerBalanceEvictionRule } from './fee_payer_balance_eviction_rule.js';
9
10
  export { LowPriorityEvictionRule } from './low_priority_eviction_rule.js';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbF92Mi9ldmljdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLGVBQWUsRUFDcEIsYUFBYSxFQUNiLEtBQUssY0FBYyxFQUNuQixLQUFLLFlBQVksRUFDakIsS0FBSyxjQUFjLEVBQ25CLEtBQUssYUFBYSxFQUNsQixLQUFLLGdCQUFnQixFQUNyQixLQUFLLFlBQVksRUFDakIsS0FBSyxVQUFVLEVBQ2YsS0FBSyxjQUFjLEVBQ25CLG1CQUFtQixFQUNuQixLQUFLLG9CQUFvQixHQUMxQixNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3ZFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDIn0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbF92Mi9ldmljdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLGVBQWUsRUFDcEIsYUFBYSxFQUNiLEtBQUssY0FBYyxFQUNuQixLQUFLLFlBQVksRUFDakIsS0FBSyxjQUFjLEVBQ25CLEtBQUssYUFBYSxFQUNsQixLQUFLLGdCQUFnQixFQUNyQixLQUFLLFlBQVksRUFDakIsS0FBSyxVQUFVLEVBQ2YsS0FBSyxjQUFjLEVBQ25CLG1CQUFtQixFQUNuQixLQUFLLG9CQUFvQixHQUMxQixNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO,EAAE,iCAAiC,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -5,6 +5,7 @@ export { NullifierConflictRule } from './nullifier_conflict_rule.js';
5
5
  export { FeePayerBalancePreAddRule } from './fee_payer_balance_pre_add_rule.js';
6
6
  export { LowPriorityPreAddRule } from './low_priority_pre_add_rule.js';
7
7
  // Post-event eviction rules
8
+ export { InsufficientFeePerGasEvictionRule } from './insufficient_fee_per_gas_eviction_rule.js';
8
9
  export { InvalidTxsAfterMiningRule } from './invalid_txs_after_mining_rule.js';
9
10
  export { InvalidTxsAfterReorgRule } from './invalid_txs_after_reorg_rule.js';
10
11
  export { FeePayerBalanceEvictionRule } from './fee_payer_balance_eviction_rule.js';
@@ -0,0 +1,16 @@
1
+ import type { BlockMinFeesProvider } from '@aztec/stdlib/gas';
2
+ import type { EvictionContext, EvictionResult, EvictionRule, PoolOperations } from './interfaces.js';
3
+ /**
4
+ * Eviction rule that removes transactions whose maxFeesPerGas no longer meets
5
+ * the projected minimum gas fees after a new block is mined.
6
+ * Uses the BlockMinFeesProvider (forward-looking) to get the projected minimum fees.
7
+ * Only triggers on BLOCK_MINED events.
8
+ */
9
+ export declare class InsufficientFeePerGasEvictionRule implements EvictionRule {
10
+ private blockMinFeesProvider;
11
+ readonly name = "InsufficientFeePerGas";
12
+ private log;
13
+ constructor(blockMinFeesProvider: BlockMinFeesProvider);
14
+ evict(context: EvictionContext, pool: PoolOperations): Promise<EvictionResult>;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdWZmaWNpZW50X2ZlZV9wZXJfZ2FzX2V2aWN0aW9uX3J1bGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbF92Mi9ldmljdGlvbi9pbnN1ZmZpY2llbnRfZmVlX3Blcl9nYXNfZXZpY3Rpb25fcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3JHOzs7OztHQUtHO0FBQ0gscUJBQWEsaUNBQWtDLFlBQVcsWUFBWTtJQUt4RCxPQUFPLENBQUMsb0JBQW9CO0lBSnhDLFNBQWdCLElBQUksMkJBQTJCO0lBRS9DLE9BQU8sQ0FBQyxHQUFHLENBQXlFO0lBRXBGLFlBQW9CLG9CQUFvQixFQUFFLG9CQUFvQixFQUFJO0lBRTVELEtBQUssQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQThDbkY7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insufficient_fee_per_gas_eviction_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrG;;;;;GAKG;AACH,qBAAa,iCAAkC,YAAW,YAAY;IAKxD,OAAO,CAAC,oBAAoB;IAJxC,SAAgB,IAAI,2BAA2B;IAE/C,OAAO,CAAC,GAAG,CAAyE;IAEpF,YAAoB,oBAAoB,EAAE,oBAAoB,EAAI;IAE5D,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA8CnF;CACF"}
@@ -0,0 +1,64 @@
1
+ import { createLogger } from '@aztec/foundation/log';
2
+ import { EvictionEvent } from './interfaces.js';
3
+ /**
4
+ * Eviction rule that removes transactions whose maxFeesPerGas no longer meets
5
+ * the projected minimum gas fees after a new block is mined.
6
+ * Uses the BlockMinFeesProvider (forward-looking) to get the projected minimum fees.
7
+ * Only triggers on BLOCK_MINED events.
8
+ */ export class InsufficientFeePerGasEvictionRule {
9
+ blockMinFeesProvider;
10
+ name;
11
+ log;
12
+ constructor(blockMinFeesProvider){
13
+ this.blockMinFeesProvider = blockMinFeesProvider;
14
+ this.name = 'InsufficientFeePerGas';
15
+ this.log = createLogger('p2p:tx_pool_v2:insufficient_fee_per_gas_eviction_rule');
16
+ }
17
+ async evict(context, pool) {
18
+ if (context.event !== EvictionEvent.BLOCK_MINED) {
19
+ return {
20
+ reason: 'insufficient_fee_per_gas',
21
+ success: true,
22
+ txsEvicted: []
23
+ };
24
+ }
25
+ try {
26
+ const gasFees = await this.blockMinFeesProvider.getCurrentMinFees();
27
+ const txsToEvict = [];
28
+ const pendingTxs = pool.getPendingTxs();
29
+ for (const meta of pendingTxs){
30
+ const maxFeesPerGas = meta.data.constants.txContext.gasSettings.maxFeesPerGas;
31
+ if (maxFeesPerGas.feePerDaGas < gasFees.feePerDaGas || maxFeesPerGas.feePerL2Gas < gasFees.feePerL2Gas) {
32
+ this.log.verbose(`Evicting tx ${meta.txHash} from pool due to insufficient fee per gas`, {
33
+ txMaxFeesPerGas: maxFeesPerGas.toInspect(),
34
+ blockGasFees: gasFees.toInspect()
35
+ });
36
+ txsToEvict.push(meta.txHash);
37
+ }
38
+ }
39
+ if (txsToEvict.length > 0) {
40
+ this.log.info(`Evicted ${txsToEvict.length} txs with insufficient fee per gas after block mined`, {
41
+ txsToEvict
42
+ });
43
+ await pool.deleteTxs(txsToEvict, this.name);
44
+ }
45
+ return {
46
+ reason: 'insufficient_fee_per_gas',
47
+ success: true,
48
+ txsEvicted: txsToEvict
49
+ };
50
+ } catch (err) {
51
+ this.log.error('Failed to evict transactions with insufficient fee per gas', {
52
+ err
53
+ });
54
+ return {
55
+ reason: 'insufficient_fee_per_gas',
56
+ success: false,
57
+ txsEvicted: [],
58
+ error: new Error('Failed to evict txs with insufficient fee per gas', {
59
+ cause: err
60
+ })
61
+ };
62
+ }
63
+ }
64
+ }
@@ -12,4 +12,4 @@ export declare class InvalidTxsAfterMiningRule implements EvictionRule {
12
12
  private log;
13
13
  evict(context: EvictionContext, pool: PoolOperations): Promise<EvictionResult>;
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZF90eHNfYWZ0ZXJfbWluaW5nX3J1bGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbF92Mi9ldmljdGlvbi9pbnZhbGlkX3R4c19hZnRlcl9taW5pbmdfcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRzs7Ozs7OztHQU9HO0FBQ0gscUJBQWEseUJBQTBCLFlBQVcsWUFBWTtJQUM1RCxTQUFnQixJQUFJLDJCQUEyQjtJQUUvQyxPQUFPLENBQUMsR0FBRyxDQUFnRTtJQUVyRSxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FzRG5GO0NBQ0YifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZF90eHNfYWZ0ZXJfbWluaW5nX3J1bGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbF92Mi9ldmljdGlvbi9pbnZhbGlkX3R4c19hZnRlcl9taW5pbmdfcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRzs7Ozs7OztHQU9HO0FBQ0gscUJBQWEseUJBQTBCLFlBQVcsWUFBWTtJQUM1RCxTQUFnQixJQUFJLDJCQUEyQjtJQUUvQyxPQUFPLENBQUMsR0FBRyxDQUFnRTtJQUVyRSxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FvRG5GO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"invalid_txs_after_mining_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrG;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,YAAY;IAC5D,SAAgB,IAAI,2BAA2B;IAE/C,OAAO,CAAC,GAAG,CAAgE;IAErE,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAsDnF;CACF"}
1
+ {"version":3,"file":"invalid_txs_after_mining_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrG;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,YAAY;IAC5D,SAAgB,IAAI,2BAA2B;IAE/C,OAAO,CAAC,GAAG,CAAgE;IAErE,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAoDnF;CACF"}
@@ -37,12 +37,11 @@ import { EvictionEvent } from './interfaces.js';
37
37
  }
38
38
  }
39
39
  if (txsToEvict.length > 0) {
40
- this.log.info(`Evicted ${txsToEvict.length} invalid txs after block mined`);
40
+ this.log.info(`Evicted ${txsToEvict.length} invalid txs after block mined`, {
41
+ txsToEvict
42
+ });
41
43
  await pool.deleteTxs(txsToEvict, this.name);
42
44
  }
43
- this.log.debug(`Evicted ${txsToEvict.length} invalid txs after block mined`, {
44
- txHashes: txsToEvict
45
- });
46
45
  return {
47
46
  reason: 'block_mined_invalid_txs',
48
47
  success: true,
@@ -14,4 +14,4 @@ export declare class InvalidTxsAfterReorgRule implements EvictionRule {
14
14
  constructor(worldState: WorldStateSynchronizer);
15
15
  evict(context: EvictionContext, pool: PoolOperations): Promise<EvictionResult>;
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZF90eHNfYWZ0ZXJfcmVvcmdfcnVsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2V2aWN0aW9uL2ludmFsaWRfdHhzX2FmdGVyX3Jlb3JnX3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUc5RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRzs7Ozs7O0dBTUc7QUFDSCxxQkFBYSx3QkFBeUIsWUFBVyxZQUFZO0lBSy9DLE9BQU8sQ0FBQyxVQUFVO0lBSjlCLFNBQWdCLElBQUksMEJBQTBCO0lBRTlDLE9BQU8sQ0FBQyxHQUFHLENBQStEO0lBRTFFLFlBQW9CLFVBQVUsRUFBRSxzQkFBc0IsRUFBSTtJQUVwRCxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0E2RW5GO0NBQ0YifQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZF90eHNfYWZ0ZXJfcmVvcmdfcnVsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sX3YyL2V2aWN0aW9uL2ludmFsaWRfdHhzX2FmdGVyX3Jlb3JnX3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUc5RSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdyRzs7Ozs7O0dBTUc7QUFDSCxxQkFBYSx3QkFBeUIsWUFBVyxZQUFZO0lBSy9DLE9BQU8sQ0FBQyxVQUFVO0lBSjlCLFNBQWdCLElBQUksMEJBQTBCO0lBRTlDLE9BQU8sQ0FBQyxHQUFHLENBQStEO0lBRTFFLFlBQW9CLFVBQVUsRUFBRSxzQkFBc0IsRUFBSTtJQUVwRCxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0EyRW5GO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"invalid_txs_after_reorg_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAG9E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrG;;;;;;GAMG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAK/C,OAAO,CAAC,UAAU;IAJ9B,SAAgB,IAAI,0BAA0B;IAE9C,OAAO,CAAC,GAAG,CAA+D;IAE1E,YAAoB,UAAU,EAAE,sBAAsB,EAAI;IAEpD,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA6EnF;CACF"}
1
+ {"version":3,"file":"invalid_txs_after_reorg_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAG9E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrG;;;;;;GAMG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAK/C,OAAO,CAAC,UAAU;IAJ9B,SAAgB,IAAI,0BAA0B;IAE9C,OAAO,CAAC,GAAG,CAA+D;IAE1E,YAAoB,UAAU,EAAE,sBAAsB,EAAI;IAEpD,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA2EnF;CACF"}
@@ -1,5 +1,5 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
1
  import { createLogger } from '@aztec/foundation/log';
2
+ import { BlockHash } from '@aztec/stdlib/block';
3
3
  import { MerkleTreeId } from '@aztec/stdlib/trees';
4
4
  import { EvictionEvent } from './interfaces.js';
5
5
  /**
@@ -34,7 +34,7 @@ import { EvictionEvent } from './interfaces.js';
34
34
  const blockHashStr = meta.anchorBlockHeaderHash;
35
35
  if (!txsByBlockHash.has(blockHashStr)) {
36
36
  txsByBlockHash.set(blockHashStr, []);
37
- uniqueBlockHashes.set(blockHashStr, Fr.fromHexString(blockHashStr));
37
+ uniqueBlockHashes.set(blockHashStr, BlockHash.fromString(blockHashStr));
38
38
  }
39
39
  txsByBlockHash.get(blockHashStr).push(meta.txHash);
40
40
  }
@@ -61,16 +61,15 @@ import { EvictionEvent } from './interfaces.js';
61
61
  }
62
62
  }
63
63
  if (txsToEvict.length > 0) {
64
- this.log.info(`Evicting ${txsToEvict.length} txs from pool due to referencing pruned blocks`);
64
+ this.log.info(`Evicting ${txsToEvict.length} txs from pool referencing pruned blocks`, {
65
+ txsToEvict
66
+ });
65
67
  await pool.deleteTxs(txsToEvict, this.name);
66
68
  }
67
69
  const keptCount = pendingTxs.length - txsToEvict.length;
68
70
  if (keptCount > 0) {
69
- this.log.verbose(`Kept ${keptCount} txs that did not reference pruned blocks`);
71
+ this.log.debug(`Kept ${keptCount} txs that did not reference pruned blocks`);
70
72
  }
71
- this.log.debug(`Evicted ${txsToEvict.length} invalid txs after reorg`, {
72
- txHashes: txsToEvict
73
- });
74
73
  return {
75
74
  reason: 'reorg_invalid_txs',
76
75
  success: true,
@@ -13,4 +13,4 @@ export declare class LowPriorityEvictionRule implements EvictionRule {
13
13
  evict(context: EvictionContext, pool: PoolOperations): Promise<EvictionResult>;
14
14
  updateConfig(config: EvictionConfig): void;
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG93X3ByaW9yaXR5X2V2aWN0aW9uX3J1bGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbF92Mi9ldmljdGlvbi9sb3dfcHJpb3JpdHlfZXZpY3Rpb25fcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHckg7OztHQUdHO0FBQ0gscUJBQWEsdUJBQXdCLFlBQVcsWUFBWTtJQUMxRCxTQUFnQixJQUFJLHlCQUF5QjtJQUU3QyxPQUFPLENBQUMsR0FBRyxDQUE2RDtJQUN4RSxPQUFPLENBQUMsV0FBVyxDQUFTO0lBRTVCLFlBQVksTUFBTSxFQUFFO1FBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBRTFDO0lBRUssS0FBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBZ0VuRjtJQUVELFlBQVksQ0FBQyxNQUFNLEVBQUUsY0FBYyxHQUFHLElBQUksQ0FJekM7Q0FDRiJ9
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG93X3ByaW9yaXR5X2V2aWN0aW9uX3J1bGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbF92Mi9ldmljdGlvbi9sb3dfcHJpb3JpdHlfZXZpY3Rpb25fcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHckg7OztHQUdHO0FBQ0gscUJBQWEsdUJBQXdCLFlBQVcsWUFBWTtJQUMxRCxTQUFnQixJQUFJLHlCQUF5QjtJQUU3QyxPQUFPLENBQUMsR0FBRyxDQUE2RDtJQUN4RSxPQUFPLENBQUMsV0FBVyxDQUFTO0lBRTVCLFlBQVksTUFBTSxFQUFFO1FBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQTtLQUFFLEVBRTFDO0lBRUssS0FBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBK0RuRjtJQUVELFlBQVksQ0FBQyxNQUFNLEVBQUUsY0FBYyxHQUFHLElBQUksQ0FJekM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"low_priority_eviction_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrH;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,YAAY;IAC1D,SAAgB,IAAI,yBAAyB;IAE7C,OAAO,CAAC,GAAG,CAA6D;IACxE,OAAO,CAAC,WAAW,CAAS;IAE5B,YAAY,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,EAE1C;IAEK,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAgEnF;IAED,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAIzC;CACF"}
1
+ {"version":3,"file":"low_priority_eviction_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrH;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,YAAY;IAC1D,SAAgB,IAAI,yBAAyB;IAE7C,OAAO,CAAC,GAAG,CAA6D;IACxE,OAAO,CAAC,WAAW,CAAS;IAE5B,YAAY,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,EAE1C;IAEK,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA+DnF;IAED,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAIzC;CACF"}
@@ -42,15 +42,16 @@ import { EvictionEvent } from './interfaces.js';
42
42
  if (context.event === EvictionEvent.TXS_ADDED) {
43
43
  const toEvictSet = new Set(txsToEvict);
44
44
  const numNewTxsEvicted = context.newTxHashes.filter((newTxHash)=>toEvictSet.has(newTxHash)).length;
45
- this.log.info(`Evicted ${txsToEvict.length} low priority txs, including ${numNewTxsEvicted} newly added txs`);
45
+ this.log.info(`Evicted ${txsToEvict.length} low priority txs, including ${numNewTxsEvicted} newly added txs`, {
46
+ txsToEvict
47
+ });
46
48
  } else {
47
- this.log.info(`Evicted ${txsToEvict.length} low priority txs after chain prune`);
49
+ this.log.info(`Evicted ${txsToEvict.length} low priority txs after chain prune`, {
50
+ txsToEvict
51
+ });
48
52
  }
49
53
  await pool.deleteTxs(txsToEvict, this.name);
50
54
  }
51
- this.log.debug(`Evicted ${txsToEvict.length} low priority txs`, {
52
- txHashes: txsToEvict
53
- });
54
55
  return {
55
56
  reason: 'low_priority',
56
57
  success: true,
@@ -12,4 +12,14 @@ export declare class TxPoolV2Instrumentation {
12
12
  recordMissingOnProtect(count: number): void;
13
13
  recordMissingPreviouslyEvicted(count: number): void;
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxLQUFLLGVBQWUsRUFHckIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyw0RUFBNEU7QUFDNUUsTUFBTSxNQUFNLHNCQUFzQixHQUFHLE1BQU0sTUFBTSxDQUFDO0FBRWxELDREQUE0RDtBQUM1RCxxQkFBYSx1QkFBdUI7O0lBU2xDLFlBQVksU0FBUyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFtQnJGO0lBRUQsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFFNUM7SUFFRCxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFMUI7SUFFRCxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFM0I7SUFFRCxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxRQUVsQztJQUVELHNCQUFzQixDQUFDLEtBQUssRUFBRSxNQUFNLFFBRW5DO0lBRUQsOEJBQThCLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFM0M7Q0FDRiJ9
15
+ /**
16
+ * Instrumentation for the tx pool serial queue: how long operations wait behind other queued work,
17
+ * how long they take to execute once running, and the current queue depth. All pool operations share
18
+ * a single serial queue, so contention here directly delays gossip tx validation.
19
+ */
20
+ export declare class TxPoolQueueInstrumentation {
21
+ #private;
22
+ constructor(telemetry: TelemetryClient, getQueueLength: () => number);
23
+ record(operation: string, waitMs: number, executionMs: number): void;
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVtX3Bvb2xzL3R4X3Bvb2xfdjIvaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFPTCxLQUFLLGVBQWUsRUFHckIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyw0RUFBNEU7QUFDNUUsTUFBTSxNQUFNLHNCQUFzQixHQUFHLE1BQU0sTUFBTSxDQUFDO0FBRWxELDREQUE0RDtBQUM1RCxxQkFBYSx1QkFBdUI7O0lBU2xDLFlBQVksU0FBUyxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFtQnJGO0lBRUQsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFFNUM7SUFFRCxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFMUI7SUFFRCxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFM0I7SUFFRCxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxRQUVsQztJQUVELHNCQUFzQixDQUFDLEtBQUssRUFBRSxNQUFNLFFBRW5DO0lBRUQsOEJBQThCLENBQUMsS0FBSyxFQUFFLE1BQU0sUUFFM0M7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCxxQkFBYSwwQkFBMEI7O0lBSXJDLFlBQVksU0FBUyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLEVBUW5FO0lBRUQsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxRQUk1RDtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAAG,MAAM,MAAM,CAAC;AAElD,4DAA4D;AAC5D,qBAAa,uBAAuB;;IASlC,YAAY,SAAS,EAAE,eAAe,EAAE,sBAAsB,EAAE,sBAAsB,EAmBrF;IAED,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAE5C;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,QAE1B;IAED,cAAc,CAAC,KAAK,EAAE,MAAM,QAE3B;IAED,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAElC;IAED,sBAAsB,CAAC,KAAK,EAAE,MAAM,QAEnC;IAED,8BAA8B,CAAC,KAAK,EAAE,MAAM,QAE3C;CACF"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool_v2/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,4EAA4E;AAC5E,MAAM,MAAM,sBAAsB,GAAG,MAAM,MAAM,CAAC;AAElD,4DAA4D;AAC5D,qBAAa,uBAAuB;;IASlC,YAAY,SAAS,EAAE,eAAe,EAAE,sBAAsB,EAAE,sBAAsB,EAmBrF;IAED,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAE5C;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,QAE1B;IAED,cAAc,CAAC,KAAK,EAAE,MAAM,QAE3B;IAED,qBAAqB,CAAC,KAAK,EAAE,MAAM,QAElC;IAED,sBAAsB,CAAC,KAAK,EAAE,MAAM,QAEnC;IAED,8BAA8B,CAAC,KAAK,EAAE,MAAM,QAE3C;CACF;AAED;;;;GAIG;AACH,qBAAa,0BAA0B;;IAIrC,YAAY,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,EAQnE;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAI5D;CACF"}
@@ -41,3 +41,27 @@ import { Attributes, Metrics, createUpDownCounterWithDefault } from '@aztec/tele
41
41
  this.#missingPreviouslyEvictedCounter.add(count);
42
42
  }
43
43
  }
44
+ /**
45
+ * Instrumentation for the tx pool serial queue: how long operations wait behind other queued work,
46
+ * how long they take to execute once running, and the current queue depth. All pool operations share
47
+ * a single serial queue, so contention here directly delays gossip tx validation.
48
+ */ export class TxPoolQueueInstrumentation {
49
+ #queueWait;
50
+ #queueExecution;
51
+ constructor(telemetry, getQueueLength){
52
+ const meter = telemetry.getMeter('TxPoolQueue');
53
+ this.#queueWait = meter.createHistogram(Metrics.MEMPOOL_TX_POOL_V2_QUEUE_WAIT);
54
+ this.#queueExecution = meter.createHistogram(Metrics.MEMPOOL_TX_POOL_V2_QUEUE_EXECUTION);
55
+ const queueLength = meter.createObservableGauge(Metrics.MEMPOOL_TX_POOL_V2_QUEUE_LENGTH);
56
+ queueLength.addCallback((result)=>{
57
+ result.observe(getQueueLength());
58
+ });
59
+ }
60
+ record(operation, waitMs, executionMs) {
61
+ const attributes = {
62
+ [Attributes.MEMPOOL_OPERATION]: operation
63
+ };
64
+ this.#queueWait.record(Math.ceil(waitMs), attributes);
65
+ this.#queueExecution.record(Math.ceil(executionMs), attributes);
66
+ }
67
+ }