@aztec/p2p 0.0.1-commit.b655e406 → 0.0.1-commit.c31f2472

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 (443) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +4 -3
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +4 -4
  4. package/dest/client/factory.d.ts +2 -2
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +8 -8
  7. package/dest/client/index.d.ts +1 -1
  8. package/dest/client/interface.d.ts +18 -3
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +16 -37
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +464 -126
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +305 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  19. package/dest/config.d.ts +69 -60
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +23 -14
  22. package/dest/enr/generate-enr.d.ts +1 -1
  23. package/dest/enr/index.d.ts +1 -1
  24. package/dest/errors/attestation-pool.error.d.ts +7 -0
  25. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  26. package/dest/errors/attestation-pool.error.js +12 -0
  27. package/dest/errors/reqresp.error.d.ts +1 -1
  28. package/dest/errors/reqresp.error.d.ts.map +1 -1
  29. package/dest/index.d.ts +1 -1
  30. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +77 -36
  31. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +241 -266
  35. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  36. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +24 -14
  37. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  38. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +123 -95
  39. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +18 -12
  40. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  41. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +91 -108
  42. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  43. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  44. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  45. package/dest/mem_pools/index.d.ts +1 -1
  46. package/dest/mem_pools/instrumentation.d.ts +9 -1
  47. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  48. package/dest/mem_pools/instrumentation.js +37 -10
  49. package/dest/mem_pools/interface.d.ts +3 -4
  50. package/dest/mem_pools/interface.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +33 -58
  52. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  54. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  55. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  57. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  58. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  60. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  61. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  63. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  64. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  66. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  67. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  69. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  70. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  72. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  73. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  75. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  76. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  77. package/dest/mem_pools/tx_pool/index.js +0 -1
  78. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  79. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  80. package/dest/mem_pools/tx_pool/priority.js +6 -1
  81. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  82. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  83. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  84. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  85. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -24
  86. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +7 -6
  87. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  88. package/dest/msg_validators/attestation_validator/attestation_validator.js +57 -24
  89. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  90. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  91. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +76 -0
  92. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  93. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  94. package/dest/msg_validators/attestation_validator/index.js +1 -0
  95. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  96. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  97. package/dest/msg_validators/clock_tolerance.js +37 -0
  98. package/dest/msg_validators/index.d.ts +2 -2
  99. package/dest/msg_validators/index.d.ts.map +1 -1
  100. package/dest/msg_validators/index.js +1 -1
  101. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  102. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  103. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  104. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  105. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  106. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  107. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  108. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  109. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  110. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  111. package/dest/msg_validators/proposal_validator/index.js +3 -0
  112. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  113. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  114. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  115. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  116. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  117. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  118. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  119. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  120. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  121. package/dest/msg_validators/tx_validator/archive_cache.d.ts +2 -2
  122. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  123. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +4 -3
  124. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  126. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  127. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  129. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +3 -2
  130. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/tx_validator/double_spend_validator.js +3 -2
  132. package/dest/msg_validators/tx_validator/factory.d.ts +10 -4
  133. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  134. package/dest/msg_validators/tx_validator/factory.js +22 -12
  135. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  136. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  137. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  138. package/dest/msg_validators/tx_validator/gas_validator.d.ts +3 -2
  139. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/gas_validator.js +11 -16
  141. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  142. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/index.js +1 -0
  144. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  145. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/metadata_validator.js +2 -2
  147. package/dest/msg_validators/tx_validator/phases_validator.d.ts +3 -2
  148. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  149. package/dest/msg_validators/tx_validator/phases_validator.js +6 -4
  150. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  151. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  152. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  153. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  154. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +5 -3
  156. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/timestamp_validator.js +2 -2
  158. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  159. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  161. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  162. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  163. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  164. package/dest/services/data_store.d.ts +1 -1
  165. package/dest/services/data_store.d.ts.map +1 -1
  166. package/dest/services/discv5/discV5_service.d.ts +1 -1
  167. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  168. package/dest/services/discv5/discV5_service.js +1 -1
  169. package/dest/services/dummy_service.d.ts +18 -2
  170. package/dest/services/dummy_service.d.ts.map +1 -1
  171. package/dest/services/dummy_service.js +42 -0
  172. package/dest/services/encoding.d.ts +1 -1
  173. package/dest/services/encoding.d.ts.map +1 -1
  174. package/dest/services/encoding.js +7 -6
  175. package/dest/services/gossipsub/scoring.d.ts +1 -1
  176. package/dest/services/index.d.ts +1 -1
  177. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  178. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  179. package/dest/services/libp2p/instrumentation.js +36 -71
  180. package/dest/services/libp2p/libp2p_service.d.ts +48 -81
  181. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  182. package/dest/services/libp2p/libp2p_service.js +926 -193
  183. package/dest/services/peer-manager/interface.d.ts +1 -1
  184. package/dest/services/peer-manager/metrics.d.ts +9 -2
  185. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  186. package/dest/services/peer-manager/metrics.js +39 -16
  187. package/dest/services/peer-manager/peer_manager.d.ts +2 -33
  188. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  189. package/dest/services/peer-manager/peer_manager.js +6 -12
  190. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  191. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  192. package/dest/services/peer-manager/peer_scoring.js +43 -2
  193. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +47 -0
  194. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  195. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +566 -0
  196. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  197. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  198. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  199. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  200. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  201. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  202. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +37 -0
  203. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  204. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +151 -0
  205. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +54 -0
  206. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  207. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +139 -0
  208. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  209. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  210. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  211. package/dest/services/reqresp/config.d.ts +1 -1
  212. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  213. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  214. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  215. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  216. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  217. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  218. package/dest/services/reqresp/constants.d.ts +12 -0
  219. package/dest/services/reqresp/constants.d.ts.map +1 -0
  220. package/dest/services/reqresp/constants.js +7 -0
  221. package/dest/services/reqresp/index.d.ts +1 -1
  222. package/dest/services/reqresp/interface.d.ts +4 -2
  223. package/dest/services/reqresp/interface.d.ts.map +1 -1
  224. package/dest/services/reqresp/interface.js +1 -1
  225. package/dest/services/reqresp/metrics.d.ts +6 -5
  226. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  227. package/dest/services/reqresp/metrics.js +17 -21
  228. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  229. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  230. package/dest/services/reqresp/protocols/auth.js +2 -2
  231. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  232. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  233. package/dest/services/reqresp/protocols/block.js +3 -2
  234. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  235. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  236. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  237. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  238. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  239. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +14 -1
  240. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +17 -7
  241. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  242. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +34 -4
  243. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  244. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  245. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  246. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  247. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  248. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  249. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  250. package/dest/services/reqresp/protocols/status.js +7 -3
  251. package/dest/services/reqresp/protocols/tx.d.ts +2 -3
  252. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  253. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  254. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  255. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  256. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  257. package/dest/services/reqresp/reqresp.d.ts +6 -41
  258. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  259. package/dest/services/reqresp/reqresp.js +460 -46
  260. package/dest/services/reqresp/status.d.ts +2 -2
  261. package/dest/services/reqresp/status.d.ts.map +1 -1
  262. package/dest/services/service.d.ts +19 -3
  263. package/dest/services/service.d.ts.map +1 -1
  264. package/dest/services/tx_collection/config.d.ts +4 -1
  265. package/dest/services/tx_collection/config.d.ts.map +1 -1
  266. package/dest/services/tx_collection/config.js +10 -2
  267. package/dest/services/tx_collection/fast_tx_collection.d.ts +9 -12
  268. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  269. package/dest/services/tx_collection/fast_tx_collection.js +16 -5
  270. package/dest/services/tx_collection/index.d.ts +2 -1
  271. package/dest/services/tx_collection/index.d.ts.map +1 -1
  272. package/dest/services/tx_collection/index.js +1 -0
  273. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  274. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  275. package/dest/services/tx_collection/instrumentation.js +10 -13
  276. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  277. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  278. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  279. package/dest/services/tx_collection/slow_tx_collection.d.ts +4 -5
  280. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  281. package/dest/services/tx_collection/slow_tx_collection.js +2 -1
  282. package/dest/services/tx_collection/tx_collection.d.ts +10 -10
  283. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  284. package/dest/services/tx_collection/tx_collection.js +5 -5
  285. package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
  286. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  287. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  288. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  289. package/dest/services/tx_provider.d.ts +4 -2
  290. package/dest/services/tx_provider.d.ts.map +1 -1
  291. package/dest/services/tx_provider.js +11 -2
  292. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  293. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  294. package/dest/services/tx_provider_instrumentation.js +14 -14
  295. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  296. package/dest/test-helpers/get-ports.d.ts +1 -1
  297. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  298. package/dest/test-helpers/index.d.ts +3 -1
  299. package/dest/test-helpers/index.d.ts.map +1 -1
  300. package/dest/test-helpers/index.js +2 -0
  301. package/dest/test-helpers/make-enrs.d.ts +1 -1
  302. package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
  303. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  304. package/dest/test-helpers/mock-pubsub.d.ts +4 -4
  305. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  306. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  307. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  308. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  309. package/dest/test-helpers/reqresp-nodes.d.ts +2 -2
  310. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  311. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  312. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  313. package/dest/test-helpers/test_tx_provider.js +41 -0
  314. package/dest/test-helpers/testbench-utils.d.ts +156 -0
  315. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  316. package/dest/test-helpers/testbench-utils.js +296 -0
  317. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  318. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  319. package/dest/testbench/p2p_client_testbench_worker.js +218 -120
  320. package/dest/testbench/parse_log_file.d.ts +1 -1
  321. package/dest/testbench/testbench.d.ts +1 -1
  322. package/dest/testbench/worker_client_manager.d.ts +51 -6
  323. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  324. package/dest/testbench/worker_client_manager.js +226 -39
  325. package/dest/types/index.d.ts +1 -1
  326. package/dest/util.d.ts +2 -1
  327. package/dest/util.d.ts.map +1 -1
  328. package/dest/util.js +11 -2
  329. package/dest/versioning.d.ts +1 -1
  330. package/package.json +19 -18
  331. package/src/bootstrap/bootstrap.ts +7 -4
  332. package/src/client/factory.ts +11 -20
  333. package/src/client/interface.ts +20 -2
  334. package/src/client/p2p_client.ts +108 -155
  335. package/src/client/test/tx_proposal_collector/README.md +227 -0
  336. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +336 -0
  337. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  338. package/src/config.ts +36 -20
  339. package/src/errors/attestation-pool.error.ts +13 -0
  340. package/src/mem_pools/attestation_pool/attestation_pool.ts +86 -35
  341. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +243 -278
  342. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +175 -111
  343. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +147 -136
  344. package/src/mem_pools/attestation_pool/mocks.ts +21 -15
  345. package/src/mem_pools/instrumentation.ts +48 -10
  346. package/src/mem_pools/interface.ts +2 -4
  347. package/src/mem_pools/tx_pool/README.md +270 -0
  348. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +367 -371
  349. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  350. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  351. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  352. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  353. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  354. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  355. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  356. package/src/mem_pools/tx_pool/index.ts +0 -1
  357. package/src/mem_pools/tx_pool/priority.ts +8 -1
  358. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  359. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +23 -17
  360. package/src/msg_validators/attestation_validator/attestation_validator.ts +45 -32
  361. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +94 -0
  362. package/src/msg_validators/attestation_validator/index.ts +1 -0
  363. package/src/msg_validators/clock_tolerance.ts +51 -0
  364. package/src/msg_validators/index.ts +1 -1
  365. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  366. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  367. package/src/msg_validators/proposal_validator/index.ts +3 -0
  368. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  369. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  370. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  371. package/src/msg_validators/tx_validator/block_header_validator.ts +8 -5
  372. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  373. package/src/msg_validators/tx_validator/double_spend_validator.ts +4 -3
  374. package/src/msg_validators/tx_validator/factory.ts +67 -25
  375. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  376. package/src/msg_validators/tx_validator/gas_validator.ts +17 -28
  377. package/src/msg_validators/tx_validator/index.ts +1 -0
  378. package/src/msg_validators/tx_validator/metadata_validator.ts +19 -8
  379. package/src/msg_validators/tx_validator/phases_validator.ts +8 -4
  380. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  381. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  382. package/src/msg_validators/tx_validator/timestamp_validator.ts +11 -5
  383. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  384. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  385. package/src/services/discv5/discV5_service.ts +1 -1
  386. package/src/services/dummy_service.ts +51 -0
  387. package/src/services/encoding.ts +6 -5
  388. package/src/services/libp2p/instrumentation.ts +39 -71
  389. package/src/services/libp2p/libp2p_service.ts +628 -194
  390. package/src/services/peer-manager/metrics.ts +44 -16
  391. package/src/services/peer-manager/peer_manager.ts +7 -4
  392. package/src/services/peer-manager/peer_scoring.ts +45 -3
  393. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  394. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +706 -0
  395. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  396. package/src/services/reqresp/batch-tx-requester/interface.ts +57 -0
  397. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +209 -0
  398. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +205 -0
  399. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  400. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  401. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  402. package/src/services/reqresp/constants.ts +14 -0
  403. package/src/services/reqresp/interface.ts +4 -1
  404. package/src/services/reqresp/metrics.ts +36 -27
  405. package/src/services/reqresp/protocols/auth.ts +2 -2
  406. package/src/services/reqresp/protocols/block.ts +3 -2
  407. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  408. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +16 -2
  409. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +47 -5
  410. package/src/services/reqresp/protocols/status.ts +16 -12
  411. package/src/services/reqresp/protocols/tx.ts +1 -2
  412. package/src/services/reqresp/reqresp.ts +66 -19
  413. package/src/services/service.ts +23 -4
  414. package/src/services/tx_collection/config.ts +16 -2
  415. package/src/services/tx_collection/fast_tx_collection.ts +39 -15
  416. package/src/services/tx_collection/index.ts +5 -0
  417. package/src/services/tx_collection/instrumentation.ts +5 -13
  418. package/src/services/tx_collection/proposal_tx_collector.ts +114 -0
  419. package/src/services/tx_collection/slow_tx_collection.ts +5 -4
  420. package/src/services/tx_collection/tx_collection.ts +10 -9
  421. package/src/services/tx_provider.ts +19 -3
  422. package/src/services/tx_provider_instrumentation.ts +24 -14
  423. package/src/test-helpers/index.ts +2 -0
  424. package/src/test-helpers/mock-pubsub.ts +1 -1
  425. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  426. package/src/test-helpers/reqresp-nodes.ts +1 -1
  427. package/src/test-helpers/test_tx_provider.ts +64 -0
  428. package/src/test-helpers/testbench-utils.ts +372 -0
  429. package/src/testbench/p2p_client_testbench_worker.ts +338 -116
  430. package/src/testbench/worker_client_manager.ts +304 -42
  431. package/src/util.ts +12 -2
  432. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  433. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  434. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  435. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  436. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  437. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  438. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  439. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  440. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  441. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  442. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  443. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,4 +1,4 @@
1
- import { Attributes, LmdbMetrics, Metrics } from '@aztec/telemetry-client';
1
+ import { Attributes, LmdbMetrics, Metrics, createUpDownCounterWithDefault } from '@aztec/telemetry-client';
2
2
  export var PoolName = /*#__PURE__*/ function(PoolName) {
3
3
  PoolName["TX_POOL"] = "TxPool";
4
4
  PoolName["ATTESTATION_POOL"] = "AttestationPool";
@@ -12,12 +12,16 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
12
12
  if (name === "TxPool") {
13
13
  return {
14
14
  objectInMempool: Metrics.MEMPOOL_TX_COUNT,
15
- objectSize: Metrics.MEMPOOL_TX_SIZE
15
+ objectSize: Metrics.MEMPOOL_TX_SIZE,
16
+ itemsAdded: Metrics.MEMPOOL_TX_ADDED_COUNT,
17
+ itemMinedDelay: Metrics.MEMPOOL_TX_MINED_DELAY
16
18
  };
17
19
  } else if (name === "AttestationPool") {
18
20
  return {
19
21
  objectInMempool: Metrics.MEMPOOL_ATTESTATIONS_COUNT,
20
- objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE
22
+ objectSize: Metrics.MEMPOOL_ATTESTATIONS_SIZE,
23
+ itemsAdded: Metrics.MEMPOOL_ATTESTATIONS_ADDED_COUNT,
24
+ itemMinedDelay: Metrics.MEMPOOL_ATTESTATIONS_MINED_DELAY
21
25
  };
22
26
  }
23
27
  throw new Error('Invalid pool type');
@@ -27,12 +31,16 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
27
31
  */ export class PoolInstrumentation {
28
32
  poolStats;
29
33
  /** The number of txs in the mempool */ objectsInMempool;
34
+ addObjectCounter;
30
35
  /** Tracks tx size */ objectSize;
36
+ /** Track delay between transaction added and evicted */ minedDelay;
31
37
  dbMetrics;
32
38
  defaultAttributes;
33
39
  meter;
40
+ txAddedTimestamp;
34
41
  constructor(telemetry, name, poolStats, dbStats){
35
42
  this.poolStats = poolStats;
43
+ this.txAddedTimestamp = new Map();
36
44
  this.observeStats = async (observer)=>{
37
45
  const { itemCount } = await this.poolStats();
38
46
  if (typeof itemCount === 'number') {
@@ -51,16 +59,13 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
51
59
  [Attributes.POOL_NAME]: name
52
60
  };
53
61
  const metricsLabels = getMetricsLabels(name);
54
- this.objectsInMempool = this.meter.createObservableGauge(metricsLabels.objectInMempool, {
55
- description: 'The current number of transactions in the mempool'
56
- });
57
- this.objectSize = this.meter.createHistogram(metricsLabels.objectSize, {
58
- unit: 'By',
59
- description: 'The size of transactions in the mempool'
60
- });
62
+ this.objectsInMempool = this.meter.createObservableGauge(metricsLabels.objectInMempool);
63
+ this.objectSize = this.meter.createHistogram(metricsLabels.objectSize);
61
64
  this.dbMetrics = new LmdbMetrics(this.meter, {
62
65
  [Attributes.DB_DATA_TYPE]: 'tx-pool'
63
66
  }, dbStats);
67
+ this.addObjectCounter = createUpDownCounterWithDefault(this.meter, metricsLabels.itemsAdded);
68
+ this.minedDelay = this.meter.createHistogram(metricsLabels.itemMinedDelay);
64
69
  this.meter.addBatchObservableCallback(this.observeStats, [
65
70
  this.objectsInMempool
66
71
  ]);
@@ -68,5 +73,27 @@ export var PoolName = /*#__PURE__*/ function(PoolName) {
68
73
  recordSize(poolObject) {
69
74
  this.objectSize.record(poolObject.getSize());
70
75
  }
76
+ incrementAddedObjects(count) {
77
+ this.addObjectCounter.add(count);
78
+ }
79
+ transactionsAdded(transactions) {
80
+ const timestamp = Date.now();
81
+ for (const transaction of transactions){
82
+ this.txAddedTimestamp.set(transaction.txHash.toBigInt(), timestamp);
83
+ }
84
+ }
85
+ transactionsRemoved(hashes) {
86
+ const timestamp = Date.now();
87
+ 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
+ }
95
+ }
96
+ }
97
+ }
71
98
  observeStats;
72
99
  }
@@ -1,11 +1,10 @@
1
- import type { P2PClientType } from '@aztec/stdlib/p2p';
2
1
  import type { AttestationPool } from './attestation_pool/attestation_pool.js';
3
2
  import type { TxPool } from './tx_pool/tx_pool.js';
4
3
  /**
5
4
  * A interface the combines all mempools
6
5
  */
7
- export type MemPools<T extends P2PClientType = P2PClientType.Full> = {
6
+ export type MemPools = {
8
7
  txPool: TxPool;
9
- attestationPool?: T extends P2PClientType.Full ? AttestationPool : undefined;
8
+ attestationPool: AttestationPool;
10
9
  };
11
- //# sourceMappingURL=interface.d.ts.map
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWVtX3Bvb2xzL2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sTUFBTSxRQUFRLEdBQUc7SUFDckIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLGVBQWUsRUFBRSxlQUFlLENBQUM7Q0FDbEMsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/mem_pools/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CAAC,IAAI,IAAI;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,CAAC,SAAS,aAAa,CAAC,IAAI,GAAG,eAAe,GAAG,SAAS,CAAC;CAC9E,CAAC"}
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,20 +1,21 @@
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
1
3
  import { type Logger } from '@aztec/foundation/log';
2
4
  import type { TypedEventEmitter } from '@aztec/foundation/types';
3
5
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
6
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
7
  import type { MerkleTreeReadOperations, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
5
8
  import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
6
9
  import { type TelemetryClient } from '@aztec/telemetry-client';
7
10
  import { ArchiveCache } from '../../msg_validators/tx_validator/archive_cache.js';
8
- import { GasTxValidator } from '../../msg_validators/tx_validator/gas_validator.js';
11
+ import { FeePayerTxInfo, type PendingTxInfo, type TxBlockReference, type TxPoolOperations } from './eviction/eviction_strategy.js';
9
12
  import type { TxPool, TxPoolEvents, TxPoolOptions } from './tx_pool.js';
10
13
  declare const AztecKVTxPool_base: new () => TypedEventEmitter<TxPoolEvents>;
11
14
  /**
12
15
  * KV implementation of the Transaction Pool.
13
16
  */
14
- export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool {
17
+ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool, TxPoolOperations {
15
18
  #private;
16
- /** The tx evicion logic will kick after pool size is greater than maxTxPoolSize * txPoolOverflowFactor */
17
- txPoolOverflowFactor: number;
18
19
  /**
19
20
  * Class constructor for KV TxPool. Initiates our transaction pool as an AztecMap.
20
21
  * @param store - A KV store for live txs in the pool.
@@ -23,7 +24,7 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
23
24
  * @param archivedTxLimit - The number of txs to archive.
24
25
  * @param log - A logger.
25
26
  */
26
- constructor(store: AztecAsyncKVStore, archive: AztecAsyncKVStore, worldStateSynchronizer: WorldStateSynchronizer, telemetry?: TelemetryClient, config?: TxPoolOptions, log?: Logger);
27
+ constructor(store: AztecAsyncKVStore, archive: AztecAsyncKVStore, worldState: WorldStateSynchronizer, telemetry?: TelemetryClient, config?: TxPoolOptions, log?: Logger);
27
28
  private countTxs;
28
29
  isEmpty(): Promise<boolean>;
29
30
  /**
@@ -34,12 +35,8 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
34
35
  * @param blockHeader - The header of the block the transactions were mined in
35
36
  */
36
37
  markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void>;
37
- markMinedAsPending(txHashes: TxHash[]): Promise<void>;
38
+ markMinedAsPending(txHashes: TxHash[], latestBlock: BlockNumber): Promise<void>;
38
39
  getPendingTxHashes(): Promise<TxHash[]>;
39
- getMinedTxHashes(): Promise<[TxHash, number][]>;
40
- getPendingTxCount(): Promise<number>;
41
- getMinedTxCount(): Promise<number>;
42
- getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
43
40
  /**
44
41
  * Checks if a transaction exists in the pool and returns it.
45
42
  * @param txHash - The generated tx hash.
@@ -57,8 +54,10 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
57
54
  getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
58
55
  /**
59
56
  * Adds a list of transactions to the pool. Duplicates are ignored.
57
+ * Handles nullifier deduplication: if an incoming tx has a nullifier conflict with
58
+ * existing pending txs, it will either replace them (if higher fee) or be rejected.
60
59
  * @param txs - An array of txs to be added to the pool.
61
- * @returns Empty promise.
60
+ * @returns count of added transactions
62
61
  */
63
62
  addTxs(txs: Tx[], opts?: {
64
63
  source?: string;
@@ -70,9 +69,10 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
70
69
  * @returns Empty promise.
71
70
  */
72
71
  deleteTxs(txHashes: TxHash[], opts?: {
73
- eviction?: boolean;
74
72
  permanently?: boolean;
75
73
  }): Promise<void>;
74
+ private deleteMinedTx;
75
+ private deletePendingTxInDbTx;
76
76
  /**
77
77
  * Gets all the transactions stored in the pool.
78
78
  * @returns Array of tx objects in the order they were added to the pool.
@@ -83,68 +83,43 @@ export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool
83
83
  * @returns An array of transaction hashes found in the tx pool.
84
84
  */
85
85
  getAllTxHashes(): Promise<TxHash[]>;
86
- updateConfig({ maxTxPoolSize, txPoolOverflowFactor, archivedTxLimit }: TxPoolOptions): void;
86
+ getPendingTxInfos(): Promise<PendingTxInfo[]>;
87
+ private getPendingTxInfo;
88
+ getPendingTxsReferencingBlocks(blockHashes: Fr[]): Promise<TxBlockReference[]>;
89
+ getPendingFeePayers(): Promise<AztecAddress[]>;
90
+ getFeePayerTxInfos(feePayer: AztecAddress): AsyncIterable<FeePayerTxInfo>;
91
+ getMinedTxHashes(): Promise<[TxHash, BlockNumber][]>;
92
+ getPendingTxCount(): Promise<number>;
93
+ getMinedTxCount(): Promise<number>;
94
+ getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
95
+ updateConfig(cfg: TxPoolOptions): void;
87
96
  markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
97
+ clearNonEvictableTxs(): Promise<void>;
88
98
  /**
89
99
  * Permanently deletes deleted mined transactions from blocks up to and including the specified block number.
90
100
  * @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
91
101
  * @returns The number of transactions permanently deleted.
92
102
  */
93
- cleanupDeletedMinedTxs(blockNumber: number): Promise<number>;
94
- /**
95
- * Creates a GasTxValidator instance.
96
- * @param db - DB for the validator to use
97
- * @returns A GasTxValidator instance
98
- */
99
- protected createGasTxValidator(db: MerkleTreeReadOperations): GasTxValidator;
103
+ cleanupDeletedMinedTxs(blockNumber: BlockNumber): Promise<number>;
100
104
  /**
101
105
  * Creates an ArchiveCache instance.
102
106
  * @param db - DB for the cache to use
103
107
  * @returns An ArchiveCache instance
104
108
  */
105
109
  protected createArchiveCache(db: MerkleTreeReadOperations): ArchiveCache;
106
- /**
107
- * Checks if a cached transaction exists in the in-memory pending tx pool and returns it.
108
- * Otherwise, it checks the tx pool, updates the pending tx pool, and returns the tx.
109
- * @param txHash - The generated tx hash.
110
- * @returns The transaction, if found, 'undefined' otherwise.
111
- */
112
- private getPendingTxByHash;
113
- /**
114
- * Archives a list of txs for future reference. The number of archived txs is limited by the specified archivedTxLimit.
115
- * @param txs - The list of transactions to archive.
116
- * @returns Empty promise.
117
- */
118
110
  private archiveTxs;
111
+ private addPendingTxIndicesInDbTx;
112
+ private removePendingTxIndicesInDbTx;
119
113
  /**
120
- * Evicts pending txs with the lowest priority fees from the pool to accomodate the max tx count and cumulative max tx size
121
- * after new txs are added.
122
- *
123
- * @param newTxHashes - The tx hashes of the new txs added to the pool.
124
- * @returns The total number of txs evicted from the pool and the number of new txs that were evicted.
125
- */
126
- private evictLowPriorityTxs;
127
- /**
128
- * Evicts invalid pending txs from the pool after a txs from a block are mined.
129
- * Eviction criteria includes:
130
- * - txs with nullifiers that are already included in the mined block
131
- * - txs with an insufficient fee payer balance
132
- * - txs with an expiration timestamp lower than that of the mined block
133
- *
134
- * @param minedTxHashes - The tx hashes of the txs mined in the block.
135
- * @param blockHeader - The header of the mined block.
136
- * @returns The total number of txs evicted from the pool.
114
+ * Returns up to `limit` lowest-priority evictable pending tx hashes without hydrating transactions.
115
+ * Iterates the priority index in ascending order and skips non-evictable txs.
137
116
  */
138
- private evictInvalidTxsAfterMining;
117
+ getLowestPriorityEvictable(limit: number): Promise<TxHash[]>;
139
118
  /**
140
- * Evicts pending txs that no longer have valid archive roots or fee payer balances from the pool after a reorg.
141
- *
142
- * @param txHashes - The tx hashes of the txs that were moved from mined to pending.
143
- * @returns The total number of txs evicted from the pool.
119
+ * Creates a PreAddPoolAccess object for use by pre-add eviction rules.
120
+ * Provides read-only access to pool state during addTxs transaction.
144
121
  */
145
- private evictInvalidTxsAfterReorg;
146
- private addPendingTxIndices;
147
- private removePendingTxIndices;
122
+ private getPreAddPoolAccess;
148
123
  }
149
124
  export {};
150
- //# sourceMappingURL=aztec_kv_tx_pool.d.ts.map
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWNfa3ZfdHhfcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sL2F6dGVjX2t2X3R4X3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUd4RyxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0seUJBQXlCLENBQUM7QUFLbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBR2xGLE9BQU8sRUFDTCxjQUFjLEVBQ2QsS0FBSyxhQUFhLEVBRWxCLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssZ0JBQWdCLEVBQ3RCLE1BQU0saUNBQWlDLENBQUM7QUFPekMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXhFOztHQUVHO0FBQ0gscUJBQWEsYUFDWCxTQUFRLGtCQUNSLFlBQVcsTUFBTSxFQUFFLGdCQUFnQjs7SUFrRG5DOzs7Ozs7O09BT0c7SUFDSCxZQUNFLEtBQUss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
@@ -1 +1 @@
1
- {"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"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"}