@aztec/p2p 0.0.1-commit.96bb3f7 → 0.0.1-commit.993d240

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 (573) hide show
  1. package/README.md +129 -3
  2. package/dest/bootstrap/bootstrap.d.ts +4 -3
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +13 -5
  5. package/dest/client/factory.d.ts +13 -12
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +65 -20
  8. package/dest/client/interface.d.ts +58 -36
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +52 -58
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +236 -236
  13. package/dest/config.d.ts +163 -84
  14. package/dest/config.d.ts.map +1 -1
  15. package/dest/config.js +156 -43
  16. package/dest/errors/p2p-service.error.d.ts +9 -0
  17. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  18. package/dest/errors/p2p-service.error.js +10 -0
  19. package/dest/errors/reqresp.error.d.ts +1 -20
  20. package/dest/errors/reqresp.error.d.ts.map +1 -1
  21. package/dest/errors/reqresp.error.js +0 -21
  22. package/dest/errors/tx-pool.error.d.ts +8 -0
  23. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  24. package/dest/errors/tx-pool.error.js +9 -0
  25. package/dest/index.d.ts +2 -2
  26. package/dest/index.d.ts.map +1 -1
  27. package/dest/index.js +1 -1
  28. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +162 -106
  29. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  30. package/dest/mem_pools/attestation_pool/attestation_pool.js +511 -3
  31. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  32. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +525 -132
  34. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  35. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  36. package/dest/mem_pools/attestation_pool/index.js +1 -2
  37. package/dest/mem_pools/attestation_pool/mocks.d.ts +4 -2
  38. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/mocks.js +13 -8
  40. package/dest/mem_pools/index.d.ts +3 -3
  41. package/dest/mem_pools/index.d.ts.map +1 -1
  42. package/dest/mem_pools/index.js +1 -1
  43. package/dest/mem_pools/instrumentation.d.ts +4 -2
  44. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  45. package/dest/mem_pools/instrumentation.js +35 -17
  46. package/dest/mem_pools/interface.d.ts +5 -5
  47. package/dest/mem_pools/interface.d.ts.map +1 -1
  48. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  49. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  50. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  51. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  52. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  53. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  54. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  55. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  57. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  58. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  77. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_mining_rule.js +16 -35
  78. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  80. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  81. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  90. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  91. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  93. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  94. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  96. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +218 -0
  97. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  99. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -0
  100. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +223 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  103. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +914 -0
  114. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +10 -4
  115. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/attestation_validator/attestation_validator.js +69 -13
  117. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +9 -5
  118. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +22 -11
  120. package/dest/msg_validators/clock_tolerance.d.ts +32 -0
  121. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  122. package/dest/msg_validators/clock_tolerance.js +95 -0
  123. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +10 -4
  124. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  126. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +10 -4
  127. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  129. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +21 -8
  130. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/proposal_validator/proposal_validator.js +123 -53
  132. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  133. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +11 -18
  135. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  136. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  137. package/dest/msg_validators/tx_validator/allowed_public_setup.js +25 -21
  138. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  139. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  140. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  141. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  142. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  144. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  145. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  146. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  147. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  148. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  149. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  150. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  151. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  152. package/dest/msg_validators/tx_validator/data_validator.d.ts +4 -1
  153. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  154. package/dest/msg_validators/tx_validator/data_validator.js +40 -3
  155. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  156. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  158. package/dest/msg_validators/tx_validator/factory.d.ts +138 -5
  159. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/factory.js +259 -58
  161. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  162. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  163. package/dest/msg_validators/tx_validator/fee_payer_balance.js +24 -0
  164. package/dest/msg_validators/tx_validator/gas_validator.d.ts +100 -3
  165. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  166. package/dest/msg_validators/tx_validator/gas_validator.js +146 -67
  167. package/dest/msg_validators/tx_validator/index.d.ts +6 -1
  168. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  169. package/dest/msg_validators/tx_validator/index.js +5 -0
  170. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  171. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  172. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  173. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  174. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  175. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  176. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  177. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  178. package/dest/msg_validators/tx_validator/phases_validator.js +75 -27
  179. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  180. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  181. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  182. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  183. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  184. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  185. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  186. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  187. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  188. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +4 -2
  189. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  190. package/dest/msg_validators/tx_validator/tx_proof_validator.js +4 -2
  191. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  192. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  193. package/dest/msg_validators/tx_validator/tx_validation_cache.js +69 -0
  194. package/dest/services/data_store.d.ts +1 -1
  195. package/dest/services/data_store.d.ts.map +1 -1
  196. package/dest/services/data_store.js +14 -10
  197. package/dest/services/discv5/discV5_service.d.ts +2 -1
  198. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  199. package/dest/services/discv5/discV5_service.js +36 -9
  200. package/dest/services/dummy_service.d.ts +33 -17
  201. package/dest/services/dummy_service.d.ts.map +1 -1
  202. package/dest/services/dummy_service.js +56 -15
  203. package/dest/services/encoding.d.ts +7 -3
  204. package/dest/services/encoding.d.ts.map +1 -1
  205. package/dest/services/encoding.js +20 -14
  206. package/dest/services/gossipsub/index.d.ts +3 -0
  207. package/dest/services/gossipsub/index.d.ts.map +1 -0
  208. package/dest/services/gossipsub/index.js +2 -0
  209. package/dest/services/gossipsub/scoring.d.ts +21 -3
  210. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  211. package/dest/services/gossipsub/scoring.js +24 -7
  212. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  213. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  214. package/dest/services/gossipsub/topic_score_params.js +363 -0
  215. package/dest/services/index.d.ts +2 -1
  216. package/dest/services/index.d.ts.map +1 -1
  217. package/dest/services/index.js +1 -0
  218. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  219. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  220. package/dest/services/libp2p/instrumentation.js +33 -8
  221. package/dest/services/libp2p/libp2p_service.d.ts +107 -59
  222. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  223. package/dest/services/libp2p/libp2p_service.js +683 -539
  224. package/dest/services/peer-manager/metrics.d.ts +4 -2
  225. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  226. package/dest/services/peer-manager/metrics.js +26 -5
  227. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  228. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  229. package/dest/services/peer-manager/peer_manager.js +40 -11
  230. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  231. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  232. package/dest/services/peer-manager/peer_scoring.js +65 -14
  233. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +51 -0
  234. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  235. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +552 -0
  236. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  237. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  238. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  239. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  240. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  241. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  242. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  243. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  244. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  245. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  246. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  247. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  248. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +11 -0
  249. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  250. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +7 -0
  251. package/dest/services/reqresp/config.d.ts +3 -3
  252. package/dest/services/reqresp/config.d.ts.map +1 -1
  253. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  254. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  255. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  256. package/dest/services/reqresp/constants.d.ts +12 -0
  257. package/dest/services/reqresp/constants.d.ts.map +1 -0
  258. package/dest/services/reqresp/constants.js +7 -0
  259. package/dest/services/reqresp/interface.d.ts +27 -18
  260. package/dest/services/reqresp/interface.d.ts.map +1 -1
  261. package/dest/services/reqresp/interface.js +23 -19
  262. package/dest/services/reqresp/metrics.d.ts +6 -5
  263. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  264. package/dest/services/reqresp/metrics.js +16 -5
  265. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  266. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  267. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  268. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  269. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  270. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +29 -9
  271. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +29 -6
  272. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  273. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +59 -13
  274. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  275. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  276. package/dest/services/reqresp/protocols/index.js +0 -1
  277. package/dest/services/reqresp/protocols/status.d.ts +1 -1
  278. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  279. package/dest/services/reqresp/protocols/status.js +2 -1
  280. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  281. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  282. package/dest/services/reqresp/protocols/tx.js +21 -3
  283. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  284. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  285. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  286. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  287. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  288. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  289. package/dest/services/reqresp/reqresp.d.ts +12 -29
  290. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  291. package/dest/services/reqresp/reqresp.js +58 -187
  292. package/dest/services/service.d.ts +49 -13
  293. package/dest/services/service.d.ts.map +1 -1
  294. package/dest/services/tx_collection/config.d.ts +11 -11
  295. package/dest/services/tx_collection/config.d.ts.map +1 -1
  296. package/dest/services/tx_collection/config.js +27 -26
  297. package/dest/services/tx_collection/file_store_tx_collection.d.ts +37 -0
  298. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  299. package/dest/services/tx_collection/file_store_tx_collection.js +127 -0
  300. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  301. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  302. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  303. package/dest/services/tx_collection/index.d.ts +3 -2
  304. package/dest/services/tx_collection/index.d.ts.map +1 -1
  305. package/dest/services/tx_collection/index.js +1 -0
  306. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  307. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  308. package/dest/services/tx_collection/instrumentation.js +8 -2
  309. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  310. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  311. package/dest/services/tx_collection/request_tracker.js +84 -0
  312. package/dest/services/tx_collection/tx_collection.d.ts +50 -56
  313. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  314. package/dest/services/tx_collection/tx_collection.js +298 -70
  315. package/dest/services/tx_collection/tx_collection_sink.d.ts +19 -9
  316. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  317. package/dest/services/tx_collection/tx_collection_sink.js +28 -31
  318. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  319. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  320. package/dest/services/tx_collection/tx_source.js +26 -7
  321. package/dest/services/tx_file_store/config.d.ts +16 -0
  322. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  323. package/dest/services/tx_file_store/config.js +22 -0
  324. package/dest/services/tx_file_store/index.d.ts +4 -0
  325. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  326. package/dest/services/tx_file_store/index.js +3 -0
  327. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  328. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  329. package/dest/services/tx_file_store/instrumentation.js +29 -0
  330. package/dest/services/tx_file_store/tx_file_store.d.ts +46 -0
  331. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  332. package/dest/services/tx_file_store/tx_file_store.js +142 -0
  333. package/dest/services/tx_provider.d.ts +8 -6
  334. package/dest/services/tx_provider.d.ts.map +1 -1
  335. package/dest/services/tx_provider.js +12 -8
  336. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  337. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  338. package/dest/services/tx_provider_instrumentation.js +5 -5
  339. package/dest/test-helpers/index.d.ts +3 -1
  340. package/dest/test-helpers/index.d.ts.map +1 -1
  341. package/dest/test-helpers/index.js +2 -0
  342. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  343. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  344. package/dest/test-helpers/make-test-p2p-clients.js +5 -3
  345. package/dest/test-helpers/mock-pubsub.d.ts +46 -6
  346. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  347. package/dest/test-helpers/mock-pubsub.js +115 -14
  348. package/dest/test-helpers/reqresp-nodes.d.ts +5 -7
  349. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  350. package/dest/test-helpers/reqresp-nodes.js +19 -20
  351. package/dest/test-helpers/test_tx_provider.d.ts +42 -0
  352. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  353. package/dest/test-helpers/test_tx_provider.js +44 -0
  354. package/dest/test-helpers/testbench-utils.d.ts +161 -0
  355. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  356. package/dest/test-helpers/testbench-utils.js +393 -0
  357. package/dest/testbench/p2p_client_testbench_worker.d.ts +26 -2
  358. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  359. package/dest/testbench/p2p_client_testbench_worker.js +270 -144
  360. package/dest/testbench/worker_client_manager.d.ts +57 -6
  361. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  362. package/dest/testbench/worker_client_manager.js +277 -49
  363. package/dest/util.d.ts +13 -8
  364. package/dest/util.d.ts.map +1 -1
  365. package/dest/util.js +35 -14
  366. package/dest/versioning.d.ts +3 -6
  367. package/dest/versioning.d.ts.map +1 -1
  368. package/dest/versioning.js +3 -24
  369. package/package.json +17 -16
  370. package/src/bootstrap/bootstrap.ts +16 -5
  371. package/src/client/factory.ts +135 -39
  372. package/src/client/interface.ts +70 -44
  373. package/src/client/p2p_client.ts +283 -302
  374. package/src/client/test/p2p_client.batch_tx_requester.bench.README.md +197 -0
  375. package/src/config.ts +274 -48
  376. package/src/errors/p2p-service.error.ts +11 -0
  377. package/src/errors/reqresp.error.ts +0 -25
  378. package/src/errors/tx-pool.error.ts +12 -0
  379. package/src/index.ts +1 -1
  380. package/src/mem_pools/attestation_pool/attestation_pool.ts +575 -94
  381. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +633 -149
  382. package/src/mem_pools/attestation_pool/index.ts +9 -2
  383. package/src/mem_pools/attestation_pool/mocks.ts +19 -11
  384. package/src/mem_pools/index.ts +2 -2
  385. package/src/mem_pools/instrumentation.ts +24 -15
  386. package/src/mem_pools/interface.ts +4 -4
  387. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  388. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  389. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  390. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  391. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  392. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  393. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  394. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  395. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  396. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  397. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  398. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  399. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  400. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  401. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  402. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  403. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  404. package/src/mem_pools/tx_pool_v2/interfaces.ts +250 -0
  405. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  406. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  407. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  408. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  409. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1090 -0
  410. package/src/msg_validators/attestation_validator/README.md +49 -0
  411. package/src/msg_validators/attestation_validator/attestation_validator.ts +60 -16
  412. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +29 -16
  413. package/src/msg_validators/clock_tolerance.ts +127 -0
  414. package/src/msg_validators/proposal_validator/README.md +123 -0
  415. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +24 -4
  416. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +35 -7
  417. package/src/msg_validators/proposal_validator/proposal_validator.ts +129 -62
  418. package/src/msg_validators/tx_validator/README.md +127 -0
  419. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +8 -17
  420. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  421. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  422. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  423. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  424. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  425. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  426. package/src/msg_validators/tx_validator/data_validator.ts +50 -3
  427. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  428. package/src/msg_validators/tx_validator/factory.ts +424 -56
  429. package/src/msg_validators/tx_validator/fee_payer_balance.ts +44 -0
  430. package/src/msg_validators/tx_validator/gas_validator.ts +211 -77
  431. package/src/msg_validators/tx_validator/index.ts +5 -0
  432. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  433. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  434. package/src/msg_validators/tx_validator/phases_validator.ts +87 -30
  435. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  436. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  437. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  438. package/src/msg_validators/tx_validator/tx_proof_validator.ts +10 -3
  439. package/src/msg_validators/tx_validator/tx_validation_cache.ts +102 -0
  440. package/src/services/data_store.ts +14 -19
  441. package/src/services/discv5/discV5_service.ts +39 -6
  442. package/src/services/dummy_service.ts +71 -39
  443. package/src/services/encoding.ts +20 -13
  444. package/src/services/gossipsub/README.md +641 -0
  445. package/src/services/gossipsub/index.ts +2 -0
  446. package/src/services/gossipsub/scoring.ts +29 -5
  447. package/src/services/gossipsub/topic_score_params.ts +519 -0
  448. package/src/services/index.ts +1 -0
  449. package/src/services/libp2p/instrumentation.ts +34 -7
  450. package/src/services/libp2p/libp2p_service.ts +753 -597
  451. package/src/services/peer-manager/metrics.ts +28 -4
  452. package/src/services/peer-manager/peer_manager.ts +46 -11
  453. package/src/services/peer-manager/peer_scoring.ts +56 -6
  454. package/src/services/reqresp/README.md +215 -0
  455. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  456. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +684 -0
  457. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  458. package/src/services/reqresp/batch-tx-requester/interface.ts +61 -0
  459. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  460. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  461. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +24 -0
  462. package/src/services/reqresp/config.ts +2 -2
  463. package/src/services/reqresp/connection-sampler/connection_sampler.ts +16 -0
  464. package/src/services/reqresp/constants.ts +14 -0
  465. package/src/services/reqresp/interface.ts +48 -46
  466. package/src/services/reqresp/metrics.ts +33 -9
  467. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  468. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +37 -12
  469. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +74 -9
  470. package/src/services/reqresp/protocols/index.ts +0 -1
  471. package/src/services/reqresp/protocols/status.ts +5 -3
  472. package/src/services/reqresp/protocols/tx.ts +23 -3
  473. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  474. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  475. package/src/services/reqresp/reqresp.ts +68 -224
  476. package/src/services/service.ts +66 -29
  477. package/src/services/tx_collection/config.ts +41 -36
  478. package/src/services/tx_collection/file_store_tx_collection.ts +153 -0
  479. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  480. package/src/services/tx_collection/index.ts +2 -1
  481. package/src/services/tx_collection/instrumentation.ts +11 -2
  482. package/src/services/tx_collection/request_tracker.ts +127 -0
  483. package/src/services/tx_collection/tx_collection.ts +367 -115
  484. package/src/services/tx_collection/tx_collection_sink.ts +32 -36
  485. package/src/services/tx_collection/tx_source.ts +28 -8
  486. package/src/services/tx_file_store/config.ts +37 -0
  487. package/src/services/tx_file_store/index.ts +3 -0
  488. package/src/services/tx_file_store/instrumentation.ts +36 -0
  489. package/src/services/tx_file_store/tx_file_store.ts +163 -0
  490. package/src/services/tx_provider.ts +17 -11
  491. package/src/services/tx_provider_instrumentation.ts +11 -5
  492. package/src/test-helpers/index.ts +2 -0
  493. package/src/test-helpers/make-test-p2p-clients.ts +7 -6
  494. package/src/test-helpers/mock-pubsub.ts +137 -14
  495. package/src/test-helpers/reqresp-nodes.ts +17 -29
  496. package/src/test-helpers/test_tx_provider.ts +69 -0
  497. package/src/test-helpers/testbench-utils.ts +455 -0
  498. package/src/testbench/p2p_client_testbench_worker.ts +370 -138
  499. package/src/testbench/worker_client_manager.ts +355 -51
  500. package/src/util.ts +40 -19
  501. package/src/versioning.ts +3 -33
  502. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  503. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  504. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  505. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  506. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  507. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  508. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -120
  509. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  510. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -555
  511. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -18
  512. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  513. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -56
  514. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -83
  515. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  516. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -5
  517. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts +0 -15
  518. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts.map +0 -1
  519. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.js +0 -88
  520. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  521. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  522. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  523. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  524. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -76
  525. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  526. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  527. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  528. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  529. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  530. package/dest/mem_pools/tx_pool/index.js +0 -2
  531. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  532. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  533. package/dest/mem_pools/tx_pool/priority.js +0 -15
  534. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  535. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  536. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  537. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  538. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  539. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  540. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  541. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  542. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -183
  543. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -45
  544. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  545. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -92
  546. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  547. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  548. package/dest/services/reqresp/protocols/block.js +0 -32
  549. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -51
  550. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  551. package/dest/services/tx_collection/fast_tx_collection.js +0 -300
  552. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -53
  553. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  554. package/dest/services/tx_collection/slow_tx_collection.js +0 -177
  555. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  556. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  557. package/src/mem_pools/tx_pool/README.md +0 -255
  558. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -691
  559. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -71
  560. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -93
  561. package/src/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.ts +0 -108
  562. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  563. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -91
  564. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  565. package/src/mem_pools/tx_pool/index.ts +0 -2
  566. package/src/mem_pools/tx_pool/priority.ts +0 -20
  567. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  568. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  569. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -206
  570. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -100
  571. package/src/services/reqresp/protocols/block.ts +0 -37
  572. package/src/services/tx_collection/fast_tx_collection.ts +0 -341
  573. package/src/services/tx_collection/slow_tx_collection.ts +0 -233
@@ -1,83 +0,0 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
- import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
4
- import type { TxPoolOptions } from '../tx_pool.js';
5
- export declare const EvictionEvent: {
6
- readonly TXS_ADDED: "txs_added";
7
- readonly BLOCK_MINED: "block_mined";
8
- readonly CHAIN_PRUNED: "chain_pruned";
9
- };
10
- type EvictionEvent = (typeof EvictionEvent)[keyof typeof EvictionEvent];
11
- export type EvictionContext = {
12
- event: typeof EvictionEvent.TXS_ADDED;
13
- newTxs: TxHash[];
14
- } | {
15
- event: typeof EvictionEvent.CHAIN_PRUNED;
16
- blockNumber: number;
17
- } | {
18
- event: typeof EvictionEvent.BLOCK_MINED;
19
- block: BlockHeader;
20
- newNullifiers: Fr[];
21
- minedFeePayers: AztecAddress[];
22
- };
23
- /**
24
- * Result of an eviction operation
25
- */
26
- export interface EvictionResult {
27
- readonly txsEvicted: TxHash[];
28
- readonly reason: string;
29
- readonly success: boolean;
30
- readonly error?: Error;
31
- }
32
- /**
33
- * Information about a pending transaction
34
- */
35
- export interface PendingTxInfo {
36
- txHash: TxHash;
37
- blockHash: Fr;
38
- isEvictable: boolean;
39
- }
40
- /**
41
- * Information about a transaction that references a specific block
42
- */
43
- export interface TxBlockReference {
44
- txHash: TxHash;
45
- blockHash: Fr;
46
- isEvictable: boolean;
47
- }
48
- /**
49
- * Operations that eviction strategies can perform on the pool
50
- */
51
- export interface TxPoolOperations {
52
- getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
53
- getPendingTxInfos(): Promise<PendingTxInfo[]>;
54
- getPendingTxsReferencingBlocks(blockHashes: Fr[]): Promise<TxBlockReference[]>;
55
- getPendingTxsWithFeePayer(feePayer: AztecAddress[]): Promise<PendingTxInfo[]>;
56
- /** Cheap count of current pending transactions. */
57
- getPendingTxCount(): Promise<number>;
58
- /**
59
- * Returns up to `limit` lowest-priority evictable pending tx hashes.
60
- * Ordering should be from lowest priority upwards.
61
- */
62
- getLowestPriorityEvictable(limit: number): Promise<TxHash[]>;
63
- deleteTxs(txHashes: TxHash[], opts?: {
64
- permanently?: boolean;
65
- }): Promise<void>;
66
- }
67
- /**
68
- * Strategy interface for different eviction behaviors
69
- */
70
- export interface EvictionRule {
71
- readonly name: string;
72
- /**
73
- * Performs the eviction logic
74
- */
75
- evict(context: EvictionContext, txPool: TxPoolOperations): Promise<EvictionResult>;
76
- /**
77
- * Updates the configuration for this eviction rule.
78
- * Rules should ignore config options that don't apply to them.
79
- */
80
- updateConfig(config: TxPoolOptions): void;
81
- }
82
- export {};
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZpY3Rpb25fc3RyYXRlZ3kuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9ldmljdGlvbi9ldmljdGlvbl9zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsZUFBTyxNQUFNLGFBQWE7Ozs7Q0FJaEIsQ0FBQztBQUVYLEtBQUssYUFBYSxHQUFHLENBQUMsT0FBTyxhQUFhLENBQUMsQ0FBQyxNQUFNLE9BQU8sYUFBYSxDQUFDLENBQUM7QUFFeEUsTUFBTSxNQUFNLGVBQWUsR0FDdkI7SUFDRSxLQUFLLEVBQUUsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQ3RDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUNsQixHQUNEO0lBQ0UsS0FBSyxFQUFFLE9BQU8sYUFBYSxDQUFDLFlBQVksQ0FBQztJQUN6QyxXQUFXLEVBQUUsTUFBTSxDQUFDO0NBQ3JCLEdBQ0Q7SUFDRSxLQUFLLEVBQUUsT0FBTyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ3hDLEtBQUssRUFBRSxXQUFXLENBQUM7SUFDbkIsYUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3BCLGNBQWMsRUFBRSxZQUFZLEVBQUUsQ0FBQztDQUNoQyxDQUFDO0FBRU47O0dBRUc7QUFDSCxNQUFNLFdBQVcsY0FBYztJQUM3QixRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQzFCLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUM7Q0FDeEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxhQUFhO0lBQzVCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixTQUFTLEVBQUUsRUFBRSxDQUFDO0lBQ2QsV0FBVyxFQUFFLE9BQU8sQ0FBQztDQUN0QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsU0FBUyxFQUFFLEVBQUUsQ0FBQztJQUNkLFdBQVcsRUFBRSxPQUFPLENBQUM7Q0FDdEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUNyRCxpQkFBaUIsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUM5Qyw4QkFBOEIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMvRSx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDOUUsbURBQW1EO0lBQ25ELGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQzs7O09BR0c7SUFDSCwwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdELFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFBRSxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUE7S0FBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUNoRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLFlBQVk7SUFDM0IsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7SUFFdEI7O09BRUc7SUFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRW5GOzs7T0FHRztJQUNILFlBQVksQ0FBQyxNQUFNLEVBQUUsYUFBYSxHQUFHLElBQUksQ0FBQztDQUMzQyJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"eviction_strategy.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool/eviction/eviction_strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,KAAK,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAExE,MAAM,MAAM,eAAe,GACvB;IACE,KAAK,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,GACD;IACE,KAAK,EAAE,OAAO,aAAa,CAAC,YAAY,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,KAAK,EAAE,OAAO,aAAa,CAAC,WAAW,CAAC;IACxC,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,EAAE,EAAE,EAAE,CAAC;IACpB,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,EAAE,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,EAAE,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IACrD,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9C,8BAA8B,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/E,yBAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9E,mDAAmD;IACnD,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC;;;OAGG;IACH,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7D,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEnF;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;CAC3C"}
@@ -1,5 +0,0 @@
1
- export const EvictionEvent = {
2
- TXS_ADDED: 'txs_added',
3
- BLOCK_MINED: 'block_mined',
4
- CHAIN_PRUNED: 'chain_pruned'
5
- };
@@ -1,15 +0,0 @@
1
- import type { ReadonlyWorldStateAccess } from '@aztec/stdlib/interfaces/server';
2
- import type { TxPoolOptions } from '../tx_pool.js';
3
- import { type EvictionContext, type EvictionResult, type EvictionRule, type TxPoolOperations } from './eviction_strategy.js';
4
- export declare class InsufficientFeePayerBalanceRule implements EvictionRule {
5
- private worldState;
6
- readonly name: string;
7
- readonly reason: string;
8
- constructor(worldState: ReadonlyWorldStateAccess);
9
- private log;
10
- evict(context: EvictionContext, txPool: TxPoolOperations): Promise<EvictionResult>;
11
- private evictTxs;
12
- private createGasTxValidator;
13
- updateConfig(_config: TxPoolOptions): void;
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdWZmaWNpZW50X2ZlZV9wYXllcl9iYWxhbmNlX3J1bGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9ldmljdGlvbi9pbnN1ZmZpY2llbnRfZmVlX3BheWVyX2JhbGFuY2VfcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBS2hGLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsS0FBSyxlQUFlLEVBRXBCLEtBQUssY0FBYyxFQUNuQixLQUFLLFlBQVksRUFFakIsS0FBSyxnQkFBZ0IsRUFDdEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxxQkFBYSwrQkFBZ0MsWUFBVyxZQUFZO0lBSS9DLE9BQU8sQ0FBQyxVQUFVO0lBSHJDLFNBQWdCLElBQUksU0FBaUM7SUFDckQsU0FBZ0IsTUFBTSxTQUE0QjtJQUVsRCxZQUEyQixVQUFVLEVBQUUsd0JBQXdCLEVBQUk7SUFFbkUsT0FBTyxDQUFDLEdBQUcsQ0FBMkU7SUFFaEYsS0FBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FrQ3ZGO1lBRWEsUUFBUTtJQXdDdEIsT0FBTyxDQUFDLG9CQUFvQjtJQUk1QixZQUFZLENBQUMsT0FBTyxFQUFFLGFBQWEsR0FBRyxJQUFJLENBQUc7Q0FDOUMifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"insufficient_fee_payer_balance_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAKhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,YAAY,EAEjB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,+BAAgC,YAAW,YAAY;IAI/C,OAAO,CAAC,UAAU;IAHrC,SAAgB,IAAI,SAAiC;IACrD,SAAgB,MAAM,SAA4B;IAElD,YAA2B,UAAU,EAAE,wBAAwB,EAAI;IAEnE,OAAO,CAAC,GAAG,CAA2E;IAEhF,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkCvF;YAEa,QAAQ;IAwCtB,OAAO,CAAC,oBAAoB;IAI5B,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAG;CAC9C"}
@@ -1,88 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
3
- import { GasFees } from '@aztec/stdlib/gas';
4
- import { DatabasePublicStateSource } from '@aztec/stdlib/trees';
5
- import { GasTxValidator } from '../../../msg_validators/index.js';
6
- import { EvictionEvent } from './eviction_strategy.js';
7
- export class InsufficientFeePayerBalanceRule {
8
- worldState;
9
- name;
10
- reason;
11
- constructor(worldState){
12
- this.worldState = worldState;
13
- this.name = 'InsufficientFeePayerBalance';
14
- this.reason = 'insufficient_fee_juice';
15
- this.log = createLogger('p2p:mempool:tx_pool:insufficient_fee_payer_balance_rule');
16
- }
17
- log;
18
- async evict(context, txPool) {
19
- try {
20
- if (context.event === EvictionEvent.CHAIN_PRUNED) {
21
- const affectedTxs = await txPool.getPendingTxInfos();
22
- return this.evictTxs(affectedTxs, context.blockNumber, txPool);
23
- }
24
- if (context.event === EvictionEvent.BLOCK_MINED) {
25
- const affectedTxs = await txPool.getPendingTxsWithFeePayer(context.minedFeePayers);
26
- // TODO: fix this edge-case
27
- // This can lead to a race condition if we are catching up in the p2p client.
28
- // Let's say we have 3 txs for the same fee payer, which get mined in blocks 1, 2, 3.
29
- // Tx1 consumes fee juice, tx2 increases it, tx3 consumes it again. We see block1 with tx1 first, run this rule, and evict tx3.
30
- // But tx3 was valid (due to tx2) and mined on block3. And we have just removed from the mempool a tx we needed for proving/reexec.
31
- // -----
32
- // Proposed fix: evict only if node is synched
33
- return this.evictTxs(affectedTxs, context.block.getBlockNumber(), txPool);
34
- }
35
- return {
36
- reason: this.reason,
37
- success: true,
38
- txsEvicted: []
39
- };
40
- } catch (err) {
41
- this.log.error('Failed to evict invalid transactions after mining', {
42
- err
43
- });
44
- return {
45
- reason: this.reason,
46
- success: false,
47
- txsEvicted: [],
48
- error: new Error('Failed to evict invalid txs after mining', {
49
- cause: err
50
- })
51
- };
52
- }
53
- }
54
- async evictTxs(candidateTxs, blockNumber, txPool) {
55
- const txsToEvict = [];
56
- const gasValidator = this.createGasTxValidator(this.worldState.getSnapshot(blockNumber));
57
- for (const { txHash, isEvictable } of candidateTxs){
58
- if (!isEvictable) {
59
- continue;
60
- }
61
- const tx = await txPool.getTxByHash(txHash);
62
- if (!tx) {
63
- continue;
64
- }
65
- this.log.debug(`Validating tx balance ${txHash}`);
66
- if ((await gasValidator.validateTxFee(tx)).result === 'invalid') {
67
- this.log.verbose(`Evicting tx ${txHash} from pool due to an insufficient fee payer balance`);
68
- txsToEvict.push(txHash);
69
- continue;
70
- }
71
- }
72
- if (txsToEvict.length > 0) {
73
- await txPool.deleteTxs(txsToEvict);
74
- }
75
- this.log.verbose(`Evicted ${txsToEvict.length} invalid txs after block mined`, {
76
- txsToEvict
77
- });
78
- return {
79
- reason: this.reason,
80
- success: true,
81
- txsEvicted: txsToEvict
82
- };
83
- }
84
- createGasTxValidator(db) {
85
- return new GasTxValidator(new DatabasePublicStateSource(db), ProtocolContractAddress.FeeJuice, GasFees.empty());
86
- }
87
- updateConfig(_config) {}
88
- }
@@ -1,17 +0,0 @@
1
- import type { TxPoolOptions } from '../tx_pool.js';
2
- import { type EvictionContext, type EvictionResult, type EvictionRule, type TxPoolOperations } from './eviction_strategy.js';
3
- /**
4
- * Eviction rule that removes invalid transactions after a block is mined.
5
- * Only triggers on BLOCK_MINED events.
6
- *
7
- * Eviction criteria includes:
8
- * - Transactions with nullifiers that are already included in the mined block
9
- * - Transactions with an expiration timestamp less than or equal to the mined block timestamp
10
- */
11
- export declare class InvalidTxsAfterMiningRule implements EvictionRule {
12
- readonly name: string;
13
- private log;
14
- evict(context: EvictionContext, txPool: TxPoolOperations): Promise<EvictionResult>;
15
- updateConfig(_config: TxPoolOptions): void;
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZF90eHNfYWZ0ZXJfbWluaW5nX3J1bGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9ldmljdGlvbi9pbnZhbGlkX3R4c19hZnRlcl9taW5pbmdfcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUVwQixLQUFLLGNBQWMsRUFDbkIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssZ0JBQWdCLEVBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEM7Ozs7Ozs7R0FPRztBQUNILHFCQUFhLHlCQUEwQixZQUFXLFlBQVk7SUFDNUQsU0FBZ0IsSUFBSSxTQUEyQjtJQUUvQyxPQUFPLENBQUMsR0FBRyxDQUFxRTtJQUUxRSxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQTJFdkY7SUFFRCxZQUFZLENBQUMsT0FBTyxFQUFFLGFBQWEsR0FBRyxJQUFJLENBQUc7Q0FDOUMifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"invalid_txs_after_mining_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,YAAY;IAC5D,SAAgB,IAAI,SAA2B;IAE/C,OAAO,CAAC,GAAG,CAAqE;IAE1E,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CA2EvF;IAED,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAG;CAC9C"}
@@ -1,19 +0,0 @@
1
- import type { ReadonlyWorldStateAccess } from '@aztec/stdlib/interfaces/server';
2
- import type { TxPoolOptions } from '../tx_pool.js';
3
- import { type EvictionContext, type EvictionResult, type EvictionRule, type TxPoolOperations } from './eviction_strategy.js';
4
- /**
5
- * Eviction rule that removes invalid transactions after a blockchain reorganization.
6
- * Only triggers on CHAIN_PRUNED events.
7
- *
8
- * Eviction criteria includes:
9
- * - Transactions that reference pruned block hashes (invalid by definition)
10
- */
11
- export declare class InvalidTxsAfterReorgRule implements EvictionRule {
12
- private worldState;
13
- readonly name: string;
14
- private log;
15
- constructor(worldState: ReadonlyWorldStateAccess);
16
- evict(context: EvictionContext, txPool: TxPoolOperations): Promise<EvictionResult>;
17
- updateConfig(_config: TxPoolOptions): void;
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZF90eHNfYWZ0ZXJfcmVvcmdfcnVsZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sL2V2aWN0aW9uL2ludmFsaWRfdHhzX2FmdGVyX3Jlb3JnX3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUloRixPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUVwQixLQUFLLGNBQWMsRUFDbkIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssZ0JBQWdCLEVBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEM7Ozs7OztHQU1HO0FBQ0gscUJBQWEsd0JBQXlCLFlBQVcsWUFBWTtJQUt4QyxPQUFPLENBQUMsVUFBVTtJQUpyQyxTQUFnQixJQUFJLFNBQTBCO0lBRTlDLE9BQU8sQ0FBQyxHQUFHLENBQW9FO0lBRS9FLFlBQTJCLFVBQVUsRUFBRSx3QkFBd0IsRUFBSTtJQUU3RCxLQUFLLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQXlEdkY7SUFFRCxZQUFZLENBQUMsT0FBTyxFQUFFLGFBQWEsR0FBRyxJQUFJLENBQUc7Q0FDOUMifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"invalid_txs_after_reorg_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAIhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;GAMG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAKxC,OAAO,CAAC,UAAU;IAJrC,SAAgB,IAAI,SAA0B;IAE9C,OAAO,CAAC,GAAG,CAAoE;IAE/E,YAA2B,UAAU,EAAE,wBAAwB,EAAI;IAE7D,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAyDvF;IAED,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAG;CAC9C"}
@@ -1,76 +0,0 @@
1
- import { findIndexInSortedArray, insertIntoSortedArray } from '@aztec/foundation/array';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { createLogger } from '@aztec/foundation/log';
4
- import { MerkleTreeId } from '@aztec/stdlib/trees';
5
- import { EvictionEvent } from './eviction_strategy.js';
6
- /**
7
- * Eviction rule that removes invalid transactions after a blockchain reorganization.
8
- * Only triggers on CHAIN_PRUNED events.
9
- *
10
- * Eviction criteria includes:
11
- * - Transactions that reference pruned block hashes (invalid by definition)
12
- */ export class InvalidTxsAfterReorgRule {
13
- worldState;
14
- name;
15
- log;
16
- constructor(worldState){
17
- this.worldState = worldState;
18
- this.name = 'InvalidTxsAfterReorg';
19
- this.log = createLogger('p2p:mempool:tx_pool:invalid_txs_after_reorg_rule');
20
- }
21
- async evict(context, txPool) {
22
- if (context.event !== EvictionEvent.CHAIN_PRUNED) {
23
- return {
24
- reason: 'reorg_invalid_txs',
25
- success: true,
26
- txsEvicted: []
27
- };
28
- }
29
- try {
30
- const candidateTxs = (await txPool.getPendingTxInfos()).filter(({ isEvictable })=>isEvictable);
31
- // Deduplicate block hashes to reduce redundant DB lookups (many txs may share the same blockHash).
32
- const uniqueBlockHashes = [];
33
- candidateTxs.forEach(({ blockHash })=>{
34
- insertIntoSortedArray(uniqueBlockHashes, blockHash, Fr.cmp, false);
35
- });
36
- const db = this.worldState.getSnapshot(context.blockNumber);
37
- const blocksFromDb = await db.findLeafIndices(MerkleTreeId.ARCHIVE, uniqueBlockHashes);
38
- // Identify txs whose blockHash is not found in the archive (pruned)
39
- const txsToEvict = [];
40
- for (const tx of candidateTxs){
41
- const idx = findIndexInSortedArray(uniqueBlockHashes, tx.blockHash, Fr.cmp);
42
- const blockPruned = idx === -1 || blocksFromDb[idx] === undefined;
43
- if (blockPruned) {
44
- txsToEvict.push(tx.txHash);
45
- }
46
- }
47
- if (txsToEvict.length > 0) {
48
- this.log.verbose(`Evicting ${txsToEvict.length} txs from pool due to referencing pruned blocks`);
49
- await txPool.deleteTxs(txsToEvict);
50
- }
51
- const keptCount = candidateTxs.length - txsToEvict.length;
52
- if (keptCount > 0) {
53
- this.log.verbose(`Kept ${keptCount} txs that did not reference pruned blocks`);
54
- }
55
- this.log.debug(`Evicted ${txsToEvict.length} invalid txs after reorg`);
56
- return {
57
- reason: 'reorg_invalid_txs',
58
- success: true,
59
- txsEvicted: txsToEvict
60
- };
61
- } catch (err) {
62
- this.log.error('Failed to evict invalid transactions after reorg', {
63
- err
64
- });
65
- return {
66
- reason: 'reorg_invalid_txs',
67
- success: false,
68
- txsEvicted: [],
69
- error: new Error('Failed to evict invalid txs after reorg', {
70
- cause: err
71
- })
72
- };
73
- }
74
- }
75
- updateConfig(_config) {}
76
- }
@@ -1,26 +0,0 @@
1
- import type { TxPoolOptions } from '../tx_pool.js';
2
- import { type EvictionContext, type EvictionResult, type EvictionRule, type TxPoolOperations } from './eviction_strategy.js';
3
- export interface LowPriorityEvictionConfig {
4
- /** Maximum number of pending transactions before eviction kicks in */
5
- maxPoolSize: number;
6
- }
7
- /**
8
- * Eviction rule that removes low-priority transactions when the number of pending transactions exceeds configured limits.
9
- * Only triggers on TXS_ADDED events and respects non-evictable transactions.
10
- */
11
- export declare class LowPriorityEvictionRule implements EvictionRule {
12
- private config;
13
- readonly name: string;
14
- private log;
15
- constructor(config: LowPriorityEvictionConfig);
16
- evict(context: EvictionContext, txPool: TxPoolOperations): Promise<EvictionResult>;
17
- /**
18
- * Updates the configuration for this eviction rule
19
- */
20
- updateConfig(config: TxPoolOptions): void;
21
- /**
22
- * Gets the current configuration
23
- */
24
- getConfig(): LowPriorityEvictionConfig;
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG93X3ByaW9yaXR5X2V2aWN0aW9uX3J1bGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9ldmljdGlvbi9sb3dfcHJpb3JpdHlfZXZpY3Rpb25fcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUVwQixLQUFLLGNBQWMsRUFDbkIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssZ0JBQWdCLEVBQ3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsTUFBTSxXQUFXLHlCQUF5QjtJQUN4QyxzRUFBc0U7SUFDdEUsV0FBVyxFQUFFLE1BQU0sQ0FBQztDQUNyQjtBQUVEOzs7R0FHRztBQUNILHFCQUFhLHVCQUF3QixZQUFXLFlBQVk7SUFLOUMsT0FBTyxDQUFDLE1BQU07SUFKMUIsU0FBZ0IsSUFBSSxTQUF5QjtJQUU3QyxPQUFPLENBQUMsR0FBRyxDQUFrRTtJQUU3RSxZQUFvQixNQUFNLEVBQUUseUJBQXlCLEVBQUk7SUFFNUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0E0RDlGO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsTUFBTSxFQUFFLGFBQWEsR0FBRyxJQUFJLENBSXhDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLElBQUkseUJBQXlCLENBRXJDO0NBQ0YifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"low_priority_eviction_rule.d.ts","sourceRoot":"","sources":["../../../../src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,yBAAyB;IACxC,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,YAAY;IAK9C,OAAO,CAAC,MAAM;IAJ1B,SAAgB,IAAI,SAAyB;IAE7C,OAAO,CAAC,GAAG,CAAkE;IAE7E,YAAoB,MAAM,EAAE,yBAAyB,EAAI;IAE5C,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CA4D9F;IAED;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAIxC;IAED;;OAEG;IACH,SAAS,IAAI,yBAAyB,CAErC;CACF"}
@@ -1,84 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { EvictionEvent } from './eviction_strategy.js';
3
- /**
4
- * Eviction rule that removes low-priority transactions when the number of pending transactions exceeds configured limits.
5
- * Only triggers on TXS_ADDED events and respects non-evictable transactions.
6
- */ export class LowPriorityEvictionRule {
7
- config;
8
- name;
9
- log;
10
- constructor(config){
11
- this.config = config;
12
- this.name = 'LowPriorityEviction';
13
- this.log = createLogger('p2p:mempool:tx_pool:low_priority_eviction_rule');
14
- }
15
- async evict(context, txPool) {
16
- if (context.event !== EvictionEvent.TXS_ADDED) {
17
- return {
18
- reason: 'low_priority',
19
- success: true,
20
- txsEvicted: []
21
- };
22
- }
23
- if (this.config.maxPoolSize === 0) {
24
- return {
25
- reason: 'low_priority',
26
- success: true,
27
- txsEvicted: []
28
- };
29
- }
30
- try {
31
- const currentTxCount = await txPool.getPendingTxCount();
32
- const maxCount = this.config.maxPoolSize;
33
- if (currentTxCount <= maxCount) {
34
- this.log.trace(`Not evicting low priority txs. Pending tx count below limit ${currentTxCount} <= ${maxCount}`);
35
- return {
36
- reason: 'low_priority',
37
- success: true,
38
- txsEvicted: []
39
- };
40
- }
41
- this.log.verbose(`Evicting low priority txs. Pending tx count above limit: ${currentTxCount} > ${maxCount}`);
42
- const numberToEvict = currentTxCount - maxCount;
43
- const txsToEvict = await txPool.getLowestPriorityEvictable(numberToEvict);
44
- if (txsToEvict.length > 0) {
45
- await txPool.deleteTxs(txsToEvict);
46
- }
47
- const numNewTxsEvicted = context.newTxs.filter((newTxHash)=>txsToEvict.some((evictedTx)=>evictedTx.equals(newTxHash))).length;
48
- this.log.verbose(`Evicted ${txsToEvict.length} low priority txs, including ${numNewTxsEvicted} newly added txs`, {
49
- txsEvicted: txsToEvict
50
- });
51
- return {
52
- reason: 'low_priority',
53
- success: true,
54
- txsEvicted: txsToEvict
55
- };
56
- } catch (err) {
57
- this.log.error('Failed to evict low priority transactions', {
58
- err
59
- });
60
- return {
61
- reason: 'low_priority',
62
- success: false,
63
- txsEvicted: [],
64
- error: new Error('Failed to evict low priority txs', {
65
- cause: err
66
- })
67
- };
68
- }
69
- }
70
- /**
71
- * Updates the configuration for this eviction rule
72
- */ updateConfig(config) {
73
- if (config.maxPendingTxCount !== undefined) {
74
- this.config.maxPoolSize = config.maxPendingTxCount;
75
- }
76
- }
77
- /**
78
- * Gets the current configuration
79
- */ getConfig() {
80
- return {
81
- ...this.config
82
- };
83
- }
84
- }
@@ -1,3 +0,0 @@
1
- export * from './tx_pool.js';
2
- export * from './aztec_kv_tx_pool.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHVCQUF1QixDQUFDIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './tx_pool.js';
2
- export * from './aztec_kv_tx_pool.js';
@@ -1,12 +0,0 @@
1
- import type { Tx } from '@aztec/stdlib/tx';
2
- /**
3
- * Returns a string representing the priority of a tx.
4
- * Txs with a higher priority value are returned first when retrieving pending tx hashes.
5
- * We currently use the sum of the priority fees for the tx for this value, represented as hex.
6
- */
7
- export declare function getPendingTxPriority(tx: Tx): string;
8
- /**
9
- * Returns the priority of a tx.
10
- */
11
- export declare function getTxPriorityFee(tx: Tx): bigint;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpb3JpdHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvdHhfcG9vbC9wcmlvcml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0gsd0JBQWdCLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUVuRDtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUkvQyJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/priority.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAI/C"}
@@ -1,15 +0,0 @@
1
- import { Buffer32 } from '@aztec/foundation/buffer';
2
- /**
3
- * Returns a string representing the priority of a tx.
4
- * Txs with a higher priority value are returned first when retrieving pending tx hashes.
5
- * We currently use the sum of the priority fees for the tx for this value, represented as hex.
6
- */ export function getPendingTxPriority(tx) {
7
- return Buffer32.fromBigInt(getTxPriorityFee(tx)).toString();
8
- }
9
- /**
10
- * Returns the priority of a tx.
11
- */ export function getTxPriorityFee(tx) {
12
- const priorityFees = tx.getGasSettings().maxPriorityFeesPerGas;
13
- const totalFees = priorityFees.feePerDaGas + priorityFees.feePerL2Gas;
14
- return totalFees;
15
- }
@@ -1,127 +0,0 @@
1
- import type { BlockNumber } from '@aztec/foundation/branded-types';
2
- import type { TypedEventEmitter } from '@aztec/foundation/types';
3
- import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
4
- export type TxPoolOptions = {
5
- maxPendingTxCount?: number;
6
- archivedTxLimit?: number;
7
- };
8
- export type TxPoolEvents = {
9
- ['txs-added']: (args: {
10
- txs: Tx[];
11
- source?: string;
12
- }) => void | Promise<void>;
13
- };
14
- /**
15
- * Interface of a transaction pool. The pool includes tx requests and is kept up-to-date by a P2P client.
16
- */
17
- export interface TxPool extends TypedEventEmitter<TxPoolEvents> {
18
- /**
19
- * Adds a list of transactions to the pool. Duplicates are ignored.
20
- * @param txs - An array of txs to be added to the pool.
21
- * @returns The number of txs added to the pool. Note if the transaction already exists, it will not be added again.
22
- */
23
- addTxs(txs: Tx[], opts?: {
24
- source?: string;
25
- }): Promise<number>;
26
- /**
27
- * Checks if a transaction exists in the pool and returns it.
28
- * @param txHash - The hash of the transaction, used as an ID.
29
- * @returns The transaction, if found, 'undefined' otherwise.
30
- */
31
- getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
32
- /**
33
- * Checks if transactions exist in the pool and returns them.
34
- * @param txHashes - The hashes of the transactions
35
- * @returns The transactions, if found, 'undefined' otherwise.
36
- */
37
- getTxsByHash(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
38
- /**
39
- * Checks if transactions exist in the pool
40
- * @param txHashes - The hashes of the transactions to check for
41
- * @returns True or False for each tx hash
42
- */
43
- hasTxs(txHashes: TxHash[]): Promise<boolean[]>;
44
- /**
45
- * Checks if a transaction exists in the pool
46
- * @param txHash - The hash of the transaction to check for
47
- * @returns True if the transaction exists, false otherwise
48
- */
49
- hasTx(txHash: TxHash): Promise<boolean>;
50
- /**
51
- * Checks if an archived transaction exists in the pool and returns it.
52
- * @param txHash - The hash of the transaction, used as an ID.
53
- * @returns The transaction, if found, 'undefined' otherwise.
54
- */
55
- getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
56
- /**
57
- * Marks the set of txs as mined, as opposed to pending.
58
- * @param txHashes - Hashes of the txs to flag as mined.
59
- * @param blockHeader - The header of the mined block.
60
- */
61
- markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void>;
62
- /**
63
- * Moves mined txs back to the pending set in the case of a reorg.
64
- * Note: txs not known by this peer will be ignored.
65
- * @param txHashes - Hashes of the txs to flag as pending.
66
- * @param latestBlock - The block number the chain was pruned to.
67
- */
68
- markMinedAsPending(txHashes: TxHash[], latestBlock: BlockNumber): Promise<void>;
69
- /**
70
- * Deletes transactions from the pool. Tx hashes that are not present are ignored.
71
- * @param txHashes - An array of tx hashes to be removed from the tx pool.
72
- */
73
- deleteTxs(txHashes: TxHash[], opts?: {
74
- permanently?: boolean;
75
- }): Promise<void>;
76
- /**
77
- * Gets all transactions currently in the tx pool.
78
- * @returns An array of transaction objects found in the tx pool.
79
- */
80
- getAllTxs(): Promise<Tx[]>;
81
- /**
82
- * Gets the hashes of all transactions currently in the tx pool.
83
- * @returns An array of transaction hashes found in the tx pool.
84
- */
85
- getAllTxHashes(): Promise<TxHash[]>;
86
- /**
87
- * Gets the hashes of pending transactions currently in the tx pool sorted by priority (see getPendingTxPriority).
88
- * @returns An array of pending transaction hashes found in the tx pool.
89
- */
90
- getPendingTxHashes(): Promise<TxHash[]>;
91
- /** Returns the number of pending txs in the pool. */
92
- getPendingTxCount(): Promise<number>;
93
- /**
94
- * Gets the hashes of mined transactions currently in the tx pool.
95
- * @returns An array of mined transaction hashes found in the tx pool.
96
- */
97
- getMinedTxHashes(): Promise<[tx: TxHash, blockNumber: BlockNumber][]>;
98
- /**
99
- * Returns whether the given tx hash is flagged as pending, mined, or deleted.
100
- * @param txHash - Hash of the tx to query.
101
- * @returns Pending, mined, or deleted depending on its status, or undefined if not found.
102
- */
103
- getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
104
- /**
105
- * Configure the maximum size of the tx pool
106
- * @param maxSizeBytes - The maximum size in bytes of the mempool. Set to undefined to disable it
107
- */
108
- updateConfig(config: TxPoolOptions): void;
109
- /** Returns whether the pool is empty. */
110
- isEmpty(): Promise<boolean>;
111
- /**
112
- * Marks transactions as non-evictible in the pool.
113
- * @param txHashes - Hashes of the transactions to mark as non-evictible.
114
- */
115
- markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
116
- /**
117
- * Clears collection of non-evictable transactions in the pool
118
- */
119
- clearNonEvictableTxs(): Promise<void>;
120
- /**
121
- * Permanently deletes deleted mined transactions from blocks up to and including the specified block number.
122
- * @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
123
- * @returns The number of transactions permanently deleted.
124
- */
125
- cleanupDeletedMinedTxs(blockNumber: BlockNumber): Promise<number>;
126
- }
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy90eF9wb29sL3R4X3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDM0IsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQzFCLENBQUM7QUFFRixNQUFNLE1BQU0sWUFBWSxHQUFHO0lBQ3pCLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxLQUFLLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDL0UsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxXQUFXLE1BQU8sU0FBUSxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7SUFDN0Q7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUvRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUVyRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTlEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRS9DOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFeEM7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUU3RDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RTs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoRjs7O09BR0c7SUFDSCxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQUUsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFL0U7OztPQUdHO0lBQ0gsU0FBUyxJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTNCOzs7T0FHRztJQUNILGNBQWMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVwQzs7O09BR0c7SUFDSCxrQkFBa0IsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUV4QyxxREFBcUQ7SUFDckQsaUJBQWlCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXJDOzs7T0FHRztJQUNILGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV0RTs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRWxGOzs7T0FHRztJQUNILFlBQVksQ0FBQyxNQUFNLEVBQUUsYUFBYSxHQUFHLElBQUksQ0FBQztJQUUxQyx5Q0FBeUM7SUFDekMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUU1Qjs7O09BR0c7SUFDSCxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpEOztPQUVHO0lBQ0gsb0JBQW9CLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRDOzs7O09BSUc7SUFDSCxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUNuRSJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/tx_pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,iBAAiB,CAAC,YAAY,CAAC;IAC7D;;;;OAIG;IACH,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/D;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAErD;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAE9D;;;;OAIG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAE/C;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExC;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAE7D;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhF;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3B;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEpC;;;OAGG;IACH,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAExC,qDAAqD;IACrD,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAErC;;;OAGG;IACH,gBAAgB,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAEtE;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;IAElF;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAE1C,yCAAyC;IACzC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5B;;;OAGG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;OAEG;IACH,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;OAIG;IACH,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE"}
@@ -1,3 +0,0 @@
1
- /**
2
- * Interface of a transaction pool. The pool includes tx requests and is kept up-to-date by a P2P client.
3
- */ export { };