@aztec/p2p 0.0.1-commit.fce3e4f → 0.0.1-commit.ffe5b04ea

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 (565) 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 +11 -11
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +46 -19
  7. package/dest/client/interface.d.ts +61 -35
  8. package/dest/client/interface.d.ts.map +1 -1
  9. package/dest/client/p2p_client.d.ts +52 -65
  10. package/dest/client/p2p_client.d.ts.map +1 -1
  11. package/dest/client/p2p_client.js +601 -336
  12. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +304 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  18. package/dest/config.d.ts +56 -22
  19. package/dest/config.d.ts.map +1 -1
  20. package/dest/config.js +97 -52
  21. package/dest/errors/tx-pool.error.d.ts +8 -0
  22. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  23. package/dest/errors/tx-pool.error.js +9 -0
  24. package/dest/index.d.ts +2 -1
  25. package/dest/index.d.ts.map +1 -1
  26. package/dest/index.js +1 -0
  27. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +111 -76
  28. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  29. package/dest/mem_pools/attestation_pool/attestation_pool.js +445 -3
  30. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  31. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +529 -289
  33. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  34. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  35. package/dest/mem_pools/attestation_pool/index.js +1 -2
  36. package/dest/mem_pools/attestation_pool/mocks.d.ts +11 -8
  37. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  38. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  39. package/dest/mem_pools/index.d.ts +3 -2
  40. package/dest/mem_pools/index.d.ts.map +1 -1
  41. package/dest/mem_pools/index.js +1 -1
  42. package/dest/mem_pools/instrumentation.d.ts +9 -1
  43. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  44. package/dest/mem_pools/instrumentation.js +33 -13
  45. package/dest/mem_pools/interface.d.ts +6 -7
  46. package/dest/mem_pools/interface.d.ts.map +1 -1
  47. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +37 -27
  48. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  49. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  50. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  51. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  52. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  53. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  54. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  55. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  56. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  57. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  58. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  59. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  60. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  61. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  62. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  63. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  64. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  65. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  66. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  67. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  68. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  69. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  70. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  71. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  72. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  73. package/dest/mem_pools/tx_pool/index.js +0 -1
  74. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  75. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  76. package/dest/mem_pools/tx_pool/priority.js +6 -1
  77. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  78. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  79. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  80. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  81. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -24
  82. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  83. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  84. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  85. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  86. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  87. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  88. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  89. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  90. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  93. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  94. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  95. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  96. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +93 -0
  97. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  98. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  99. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  100. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  101. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  102. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  103. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  104. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  105. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  106. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  107. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  108. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  109. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  110. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  111. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  112. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  113. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  114. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  115. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  116. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  117. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  118. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  119. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  120. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  121. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  122. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  123. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  124. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  125. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  126. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  127. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +213 -0
  128. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  129. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  130. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +127 -0
  131. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  132. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +210 -0
  133. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  134. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  135. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  136. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  137. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  138. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  139. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +60 -0
  140. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  141. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +164 -0
  142. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  143. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  144. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +909 -0
  145. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -4
  146. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  147. package/dest/msg_validators/attestation_validator/attestation_validator.js +52 -19
  148. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +7 -7
  149. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  150. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +22 -13
  151. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  152. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  153. package/dest/msg_validators/clock_tolerance.js +37 -0
  154. package/dest/msg_validators/index.d.ts +2 -2
  155. package/dest/msg_validators/index.d.ts.map +1 -1
  156. package/dest/msg_validators/index.js +1 -1
  157. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +11 -0
  158. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  159. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +14 -0
  160. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +11 -0
  161. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  162. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +20 -0
  163. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  164. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  165. package/dest/msg_validators/proposal_validator/index.js +3 -0
  166. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +18 -0
  167. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  168. package/dest/msg_validators/proposal_validator/proposal_validator.js +116 -0
  169. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  170. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  171. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  172. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  173. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  174. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  175. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  176. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  177. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  178. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  179. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  180. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  181. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  182. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  183. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  184. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  185. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  186. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  187. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  188. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  189. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  190. package/dest/msg_validators/tx_validator/factory.d.ts +120 -6
  191. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  192. package/dest/msg_validators/tx_validator/factory.js +228 -57
  193. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  194. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  195. package/dest/msg_validators/tx_validator/fee_payer_balance.js +24 -0
  196. package/dest/msg_validators/tx_validator/gas_validator.d.ts +59 -3
  197. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  198. package/dest/msg_validators/tx_validator/gas_validator.js +84 -52
  199. package/dest/msg_validators/tx_validator/index.d.ts +4 -1
  200. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  201. package/dest/msg_validators/tx_validator/index.js +3 -0
  202. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  203. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  204. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  205. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  206. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  207. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  208. package/dest/msg_validators/tx_validator/phases_validator.d.ts +4 -3
  209. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  210. package/dest/msg_validators/tx_validator/phases_validator.js +47 -26
  211. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  212. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  213. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  214. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  215. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  216. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +23 -5
  217. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  218. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  219. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  220. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  221. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  222. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  223. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  224. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  225. package/dest/services/data_store.d.ts +1 -1
  226. package/dest/services/data_store.d.ts.map +1 -1
  227. package/dest/services/data_store.js +10 -6
  228. package/dest/services/discv5/discV5_service.js +1 -1
  229. package/dest/services/dummy_service.d.ts +28 -4
  230. package/dest/services/dummy_service.d.ts.map +1 -1
  231. package/dest/services/dummy_service.js +49 -1
  232. package/dest/services/encoding.d.ts +3 -3
  233. package/dest/services/encoding.d.ts.map +1 -1
  234. package/dest/services/encoding.js +16 -14
  235. package/dest/services/gossipsub/index.d.ts +3 -0
  236. package/dest/services/gossipsub/index.d.ts.map +1 -0
  237. package/dest/services/gossipsub/index.js +2 -0
  238. package/dest/services/gossipsub/scoring.d.ts +21 -3
  239. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  240. package/dest/services/gossipsub/scoring.js +24 -7
  241. package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
  242. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  243. package/dest/services/gossipsub/topic_score_params.js +346 -0
  244. package/dest/services/index.d.ts +2 -1
  245. package/dest/services/index.d.ts.map +1 -1
  246. package/dest/services/index.js +1 -0
  247. package/dest/services/libp2p/instrumentation.d.ts +1 -1
  248. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  249. package/dest/services/libp2p/instrumentation.js +30 -72
  250. package/dest/services/libp2p/libp2p_service.d.ts +117 -42
  251. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  252. package/dest/services/libp2p/libp2p_service.js +1034 -382
  253. package/dest/services/peer-manager/metrics.d.ts +9 -2
  254. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  255. package/dest/services/peer-manager/metrics.js +39 -21
  256. package/dest/services/peer-manager/peer_manager.d.ts +2 -2
  257. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  258. package/dest/services/peer-manager/peer_manager.js +6 -13
  259. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  260. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  261. package/dest/services/peer-manager/peer_scoring.js +32 -6
  262. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +48 -0
  263. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  264. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +539 -0
  265. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  266. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  267. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  268. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +46 -0
  269. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  270. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  271. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +34 -0
  272. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  273. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +130 -0
  274. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +60 -0
  275. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  276. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +173 -0
  277. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  278. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  279. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  280. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  281. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  282. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  283. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  284. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  285. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  286. package/dest/services/reqresp/constants.d.ts +12 -0
  287. package/dest/services/reqresp/constants.d.ts.map +1 -0
  288. package/dest/services/reqresp/constants.js +7 -0
  289. package/dest/services/reqresp/interface.d.ts +13 -2
  290. package/dest/services/reqresp/interface.d.ts.map +1 -1
  291. package/dest/services/reqresp/interface.js +16 -2
  292. package/dest/services/reqresp/metrics.d.ts +6 -5
  293. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  294. package/dest/services/reqresp/metrics.js +17 -21
  295. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  296. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  297. package/dest/services/reqresp/protocols/auth.js +2 -2
  298. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  299. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  300. package/dest/services/reqresp/protocols/block.js +3 -2
  301. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  302. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  303. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  304. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  305. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  306. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  307. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +30 -7
  308. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  309. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +60 -14
  310. package/dest/services/reqresp/protocols/status.d.ts +5 -4
  311. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  312. package/dest/services/reqresp/protocols/status.js +7 -3
  313. package/dest/services/reqresp/protocols/tx.d.ts +8 -3
  314. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  315. package/dest/services/reqresp/protocols/tx.js +20 -0
  316. package/dest/services/reqresp/reqresp.d.ts +6 -1
  317. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  318. package/dest/services/reqresp/reqresp.js +473 -51
  319. package/dest/services/service.d.ts +56 -4
  320. package/dest/services/service.d.ts.map +1 -1
  321. package/dest/services/tx_collection/config.d.ts +22 -1
  322. package/dest/services/tx_collection/config.d.ts.map +1 -1
  323. package/dest/services/tx_collection/config.js +56 -2
  324. package/dest/services/tx_collection/fast_tx_collection.d.ts +10 -6
  325. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  326. package/dest/services/tx_collection/fast_tx_collection.js +71 -44
  327. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  328. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  329. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  330. package/dest/services/tx_collection/file_store_tx_source.d.ts +37 -0
  331. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  332. package/dest/services/tx_collection/file_store_tx_source.js +90 -0
  333. package/dest/services/tx_collection/index.d.ts +3 -1
  334. package/dest/services/tx_collection/index.d.ts.map +1 -1
  335. package/dest/services/tx_collection/index.js +2 -0
  336. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  337. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  338. package/dest/services/tx_collection/instrumentation.js +11 -13
  339. package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
  340. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
  341. package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
  342. package/dest/services/tx_collection/proposal_tx_collector.d.ts +49 -0
  343. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  344. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  345. package/dest/services/tx_collection/slow_tx_collection.d.ts +9 -4
  346. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  347. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  348. package/dest/services/tx_collection/tx_collection.d.ts +31 -17
  349. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  350. package/dest/services/tx_collection/tx_collection.js +79 -7
  351. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  352. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  353. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  354. package/dest/services/tx_collection/tx_source.d.ts +8 -3
  355. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  356. package/dest/services/tx_collection/tx_source.js +19 -2
  357. package/dest/services/tx_file_store/config.d.ts +16 -0
  358. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  359. package/dest/services/tx_file_store/config.js +22 -0
  360. package/dest/services/tx_file_store/index.d.ts +4 -0
  361. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  362. package/dest/services/tx_file_store/index.js +3 -0
  363. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  364. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  365. package/dest/services/tx_file_store/instrumentation.js +29 -0
  366. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  367. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  368. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  369. package/dest/services/tx_provider.d.ts +7 -5
  370. package/dest/services/tx_provider.d.ts.map +1 -1
  371. package/dest/services/tx_provider.js +20 -10
  372. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  373. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  374. package/dest/services/tx_provider_instrumentation.js +14 -14
  375. package/dest/test-helpers/index.d.ts +3 -1
  376. package/dest/test-helpers/index.d.ts.map +1 -1
  377. package/dest/test-helpers/index.js +2 -0
  378. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  379. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  380. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  381. package/dest/test-helpers/mock-pubsub.d.ts +30 -4
  382. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  383. package/dest/test-helpers/mock-pubsub.js +105 -4
  384. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  385. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  386. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  387. package/dest/test-helpers/reqresp-nodes.js +4 -3
  388. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  389. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  390. package/dest/test-helpers/test_tx_provider.js +41 -0
  391. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  392. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  393. package/dest/test-helpers/testbench-utils.js +366 -0
  394. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  395. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  396. package/dest/testbench/p2p_client_testbench_worker.js +226 -130
  397. package/dest/testbench/worker_client_manager.d.ts +53 -6
  398. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  399. package/dest/testbench/worker_client_manager.js +231 -40
  400. package/dest/util.d.ts +3 -3
  401. package/dest/util.d.ts.map +1 -1
  402. package/package.json +18 -18
  403. package/src/bootstrap/bootstrap.ts +7 -4
  404. package/src/client/factory.ts +87 -44
  405. package/src/client/interface.ts +73 -36
  406. package/src/client/p2p_client.ts +267 -397
  407. package/src/client/test/tx_proposal_collector/README.md +227 -0
  408. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +345 -0
  409. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  410. package/src/config.ts +149 -62
  411. package/src/errors/tx-pool.error.ts +12 -0
  412. package/src/index.ts +1 -0
  413. package/src/mem_pools/attestation_pool/attestation_pool.ts +511 -78
  414. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +614 -322
  415. package/src/mem_pools/attestation_pool/index.ts +9 -2
  416. package/src/mem_pools/attestation_pool/mocks.ts +22 -15
  417. package/src/mem_pools/index.ts +4 -1
  418. package/src/mem_pools/instrumentation.ts +43 -14
  419. package/src/mem_pools/interface.ts +5 -7
  420. package/src/mem_pools/tx_pool/README.md +270 -0
  421. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +367 -371
  422. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  423. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  424. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  425. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  426. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  427. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  428. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  429. package/src/mem_pools/tx_pool/index.ts +0 -1
  430. package/src/mem_pools/tx_pool/priority.ts +8 -1
  431. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  432. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +23 -17
  433. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  434. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  435. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  436. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  437. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  438. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +121 -0
  439. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  440. package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
  441. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  442. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  443. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  444. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  445. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  446. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  447. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  448. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  449. package/src/mem_pools/tx_pool_v2/interfaces.ts +245 -0
  450. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +327 -0
  451. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  452. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  453. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +226 -0
  454. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1090 -0
  455. package/src/msg_validators/attestation_validator/attestation_validator.ts +37 -22
  456. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +21 -18
  457. package/src/msg_validators/clock_tolerance.ts +51 -0
  458. package/src/msg_validators/index.ts +1 -1
  459. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +20 -0
  460. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +26 -0
  461. package/src/msg_validators/proposal_validator/index.ts +3 -0
  462. package/src/msg_validators/proposal_validator/proposal_validator.ts +115 -0
  463. package/src/msg_validators/tx_validator/README.md +115 -0
  464. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  465. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  466. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  467. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  468. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  469. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  470. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  471. package/src/msg_validators/tx_validator/factory.ts +375 -57
  472. package/src/msg_validators/tx_validator/fee_payer_balance.ts +44 -0
  473. package/src/msg_validators/tx_validator/gas_validator.ts +106 -54
  474. package/src/msg_validators/tx_validator/index.ts +3 -0
  475. package/src/msg_validators/tx_validator/metadata_validator.ts +31 -12
  476. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  477. package/src/msg_validators/tx_validator/phases_validator.ts +56 -29
  478. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  479. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  480. package/src/msg_validators/tx_validator/timestamp_validator.ts +30 -19
  481. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  482. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  483. package/src/services/data_store.ts +10 -7
  484. package/src/services/discv5/discV5_service.ts +1 -1
  485. package/src/services/dummy_service.ts +65 -2
  486. package/src/services/encoding.ts +13 -12
  487. package/src/services/gossipsub/README.md +641 -0
  488. package/src/services/gossipsub/index.ts +2 -0
  489. package/src/services/gossipsub/scoring.ts +29 -5
  490. package/src/services/gossipsub/topic_score_params.ts +487 -0
  491. package/src/services/index.ts +1 -0
  492. package/src/services/libp2p/instrumentation.ts +32 -73
  493. package/src/services/libp2p/libp2p_service.ts +729 -390
  494. package/src/services/peer-manager/metrics.ts +46 -21
  495. package/src/services/peer-manager/peer_manager.ts +7 -5
  496. package/src/services/peer-manager/peer_scoring.ts +28 -4
  497. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  498. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +678 -0
  499. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  500. package/src/services/reqresp/batch-tx-requester/interface.ts +53 -0
  501. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +161 -0
  502. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +244 -0
  503. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  504. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  505. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  506. package/src/services/reqresp/constants.ts +14 -0
  507. package/src/services/reqresp/interface.ts +30 -2
  508. package/src/services/reqresp/metrics.ts +36 -27
  509. package/src/services/reqresp/protocols/auth.ts +2 -2
  510. package/src/services/reqresp/protocols/block.ts +3 -2
  511. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  512. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  513. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +75 -10
  514. package/src/services/reqresp/protocols/status.ts +16 -12
  515. package/src/services/reqresp/protocols/tx.ts +23 -2
  516. package/src/services/reqresp/reqresp.ts +82 -23
  517. package/src/services/service.ts +73 -5
  518. package/src/services/tx_collection/config.ts +84 -2
  519. package/src/services/tx_collection/fast_tx_collection.ts +96 -49
  520. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  521. package/src/services/tx_collection/file_store_tx_source.ts +117 -0
  522. package/src/services/tx_collection/index.ts +6 -0
  523. package/src/services/tx_collection/instrumentation.ts +11 -13
  524. package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
  525. package/src/services/tx_collection/proposal_tx_collector.ts +113 -0
  526. package/src/services/tx_collection/slow_tx_collection.ts +69 -36
  527. package/src/services/tx_collection/tx_collection.ts +122 -24
  528. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  529. package/src/services/tx_collection/tx_source.ts +22 -3
  530. package/src/services/tx_file_store/config.ts +37 -0
  531. package/src/services/tx_file_store/index.ts +3 -0
  532. package/src/services/tx_file_store/instrumentation.ts +36 -0
  533. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  534. package/src/services/tx_provider.ts +29 -12
  535. package/src/services/tx_provider_instrumentation.ts +24 -14
  536. package/src/test-helpers/index.ts +2 -0
  537. package/src/test-helpers/make-test-p2p-clients.ts +4 -6
  538. package/src/test-helpers/mock-pubsub.ts +147 -10
  539. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  540. package/src/test-helpers/reqresp-nodes.ts +6 -8
  541. package/src/test-helpers/test_tx_provider.ts +64 -0
  542. package/src/test-helpers/testbench-utils.ts +430 -0
  543. package/src/testbench/p2p_client_testbench_worker.ts +352 -129
  544. package/src/testbench/worker_client_manager.ts +312 -42
  545. package/src/util.ts +8 -2
  546. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -37
  547. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  548. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -213
  549. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -30
  550. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  551. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -219
  552. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  553. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  554. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  555. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  556. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  557. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -82
  558. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  559. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  560. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  561. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -298
  562. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -287
  563. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  564. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -97
  565. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
package/src/config.ts CHANGED
@@ -1,33 +1,57 @@
1
1
  import {
2
2
  type ConfigMappingsType,
3
3
  SecretValue,
4
+ bigintConfigHelper,
4
5
  booleanConfigHelper,
5
- floatConfigHelper,
6
6
  getConfigFromMappings,
7
7
  getDefaultConfig,
8
8
  numberConfigHelper,
9
+ percentageConfigHelper,
9
10
  pickConfigMappings,
10
11
  secretStringConfigHelper,
11
12
  } from '@aztec/foundation/config';
12
- import { Fr } from '@aztec/foundation/fields';
13
- import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
14
- import { FunctionSelector } from '@aztec/stdlib/abi';
13
+ import { Fr } from '@aztec/foundation/curves/bn254';
14
+ import { FunctionSelector } from '@aztec/stdlib/abi/function-selector';
15
15
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
16
- import { type AllowedElement, type ChainConfig, chainConfigMappings } from '@aztec/stdlib/config';
16
+ import {
17
+ type AllowedElement,
18
+ type ChainConfig,
19
+ type SequencerConfig,
20
+ chainConfigMappings,
21
+ sharedSequencerConfigMappings,
22
+ } from '@aztec/stdlib/config';
23
+ import { type DataStoreConfig, dataConfigMappings } from '@aztec/stdlib/kv-store';
17
24
 
25
+ import {
26
+ type BatchTxRequesterConfig,
27
+ batchTxRequesterConfigMappings,
28
+ } from './services/reqresp/batch-tx-requester/config.js';
18
29
  import { type P2PReqRespConfig, p2pReqRespConfigMappings } from './services/reqresp/config.js';
19
30
  import { type TxCollectionConfig, txCollectionConfigMappings } from './services/tx_collection/config.js';
31
+ import { type TxFileStoreConfig, txFileStoreConfigMappings } from './services/tx_file_store/config.js';
20
32
 
21
33
  /**
22
34
  * P2P client configuration values.
23
35
  */
24
- export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionConfig {
36
+ export interface P2PConfig
37
+ extends P2PReqRespConfig,
38
+ BatchTxRequesterConfig,
39
+ ChainConfig,
40
+ TxCollectionConfig,
41
+ TxFileStoreConfig,
42
+ Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'> {
43
+ /** Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set. */
44
+ validateMaxTxsPerBlock?: number;
45
+
25
46
  /** A flag dictating whether the P2P subsystem should be enabled. */
26
47
  p2pEnabled: boolean;
27
48
 
28
49
  /** The frequency in which to check for new L2 blocks. */
29
50
  blockCheckIntervalMS: number;
30
51
 
52
+ /** The frequency in which to check for new L2 slots. */
53
+ slotCheckIntervalMS: number;
54
+
31
55
  /** The number of blocks to fetch in a single batch. */
32
56
  blockRequestBatchSize: number;
33
57
 
@@ -130,14 +154,11 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
130
154
  /** The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb. */
131
155
  p2pStoreMapSizeKb?: number;
132
156
 
133
- /** Which calls are allowed in the public setup phase of a tx. */
134
- txPublicSetupAllowList: AllowedElement[];
135
-
136
- /** The maximum cumulative tx size (in bytes) of pending txs before evicting lower priority txs. */
137
- maxTxPoolSize: number;
157
+ /** Additional entries to extend the default setup allow list. */
158
+ txPublicSetupAllowListExtend: AllowedElement[];
138
159
 
139
- /** If the pool is full, it will still accept a few more txs until it reached maxTxPoolOverspillFactor * maxTxPoolSize. Then it will evict */
140
- txPoolOverflowFactor: number;
160
+ /** The maximum number of pending txs before evicting lower priority txs. */
161
+ maxPendingTxCount: number;
141
162
 
142
163
  /** The node's seen message ID cache size */
143
164
  seenMessageCacheSize: number;
@@ -156,10 +177,7 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
156
177
  /** Whether transactions are disabled for this node. This means transactions will be rejected at the RPC and P2P layers. */
157
178
  disableTransactions: boolean;
158
179
 
159
- /** True to simulate discarding transactions. - For testing purposes only*/
160
- dropTransactions: boolean;
161
-
162
- /** The probability that a transaction is discarded. - For testing purposes only */
180
+ /** The probability that a transaction is discarded (0 = disabled). - For testing purposes only */
163
181
  dropTransactionsProbability: number;
164
182
 
165
183
  /** Whether to delete transactions from the pool after a reorg instead of moving them back to pending. */
@@ -170,11 +188,26 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
170
188
 
171
189
  /** Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus */
172
190
  fishermanMode: boolean;
191
+
192
+ /** Broadcast block proposals even when a conflicting proposal for the same slot already exists in the pool (for testing purposes only). */
193
+ broadcastEquivocatedProposals?: boolean;
194
+
195
+ /** Minimum age (ms) a transaction must have been in the pool before it's eligible for block building. */
196
+ minTxPoolAgeMs: number;
197
+
198
+ /** Minimum percentage fee increase required to replace an existing tx via RPC (0 = no bump). */
199
+ priceBumpPercentage: bigint;
173
200
  }
174
201
 
175
202
  export const DEFAULT_P2P_PORT = 40400;
176
203
 
177
204
  export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
205
+ validateMaxTxsPerBlock: {
206
+ env: 'VALIDATOR_MAX_TX_PER_BLOCK',
207
+ description:
208
+ 'Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set.',
209
+ parseEnv: (val: string) => (val ? parseInt(val, 10) : undefined),
210
+ },
178
211
  p2pEnabled: {
179
212
  env: 'P2P_ENABLED',
180
213
  description: 'A flag dictating whether the P2P subsystem should be enabled.',
@@ -190,6 +223,11 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
190
223
  description: 'The frequency in which to check for new L2 blocks.',
191
224
  ...numberConfigHelper(100),
192
225
  },
226
+ slotCheckIntervalMS: {
227
+ env: 'P2P_SLOT_CHECK_INTERVAL_MS',
228
+ description: 'The frequency in which to check for new L2 slots.',
229
+ ...numberConfigHelper(1000),
230
+ },
193
231
  debugDisableColocationPenalty: {
194
232
  env: 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY',
195
233
  description: 'DEBUG: Disable colocation penalty - NEVER set to true in production',
@@ -368,22 +406,20 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
368
406
  parseEnv: (val: string | undefined) => (val ? +val : undefined),
369
407
  description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb.',
370
408
  },
371
- txPublicSetupAllowList: {
409
+ txPublicSetupAllowListExtend: {
372
410
  env: 'TX_PUBLIC_SETUP_ALLOWLIST',
373
411
  parseEnv: (val: string) => parseAllowList(val),
374
- description: 'The list of functions calls allowed to run in setup',
412
+ description:
413
+ 'Additional entries to extend the default setup allow list. Format: I:address:selector[:flags],C:classId:selector[:flags]. Flags: os (onlySelf), rn (rejectNullMsgSender), cl=N (calldataLength), joined with +.',
375
414
  printDefault: () =>
376
- 'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee',
415
+ 'Default: AuthRegistry._set_authorized, AuthRegistry.set_authorized, FeeJuice._increase_public_balance',
377
416
  },
378
- maxTxPoolSize: {
379
- env: 'P2P_MAX_TX_POOL_SIZE',
380
- description: 'The maximum cumulative tx size of pending txs (in bytes) before evicting lower priority txs.',
381
- ...numberConfigHelper(100_000_000), // 100MB
382
- },
383
- txPoolOverflowFactor: {
384
- env: 'P2P_TX_POOL_OVERFLOW_FACTOR',
385
- description: 'How much the tx pool can overflow before it starts evicting txs. Must be greater than 1',
386
- ...floatConfigHelper(1.1), // 10% overflow
417
+ maxPendingTxCount: {
418
+ env: 'P2P_MAX_PENDING_TX_COUNT',
419
+ description: 'The maximum number of pending txs before evicting lower priority txs.',
420
+ // Worst case scenario: Uncompressed public/private tx is ~ 156kb
421
+ // This implies we are using ~156MB of memory for pending pool
422
+ ...numberConfigHelper(1_000),
387
423
  },
388
424
  seenMessageCacheSize: {
389
425
  env: 'P2P_SEEN_MSG_CACHE_SIZE',
@@ -405,15 +441,10 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
405
441
  description: 'Number of auth attempts to allow before peer is banned. Number is inclusive',
406
442
  ...numberConfigHelper(3),
407
443
  },
408
- dropTransactions: {
409
- env: 'P2P_DROP_TX',
410
- description: 'True to simulate discarding transactions. - For testing purposes only',
411
- ...booleanConfigHelper(false),
412
- },
413
444
  dropTransactionsProbability: {
414
445
  env: 'P2P_DROP_TX_CHANCE',
415
446
  description: 'The probability that a transaction is discarded (0 - 1). - For testing purposes only',
416
- ...floatConfigHelper(0),
447
+ ...percentageConfigHelper(0),
417
448
  },
418
449
  disableTransactions: {
419
450
  env: 'TRANSACTIONS_DISABLED',
@@ -437,9 +468,28 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
437
468
  'Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus.',
438
469
  ...booleanConfigHelper(false),
439
470
  },
471
+ broadcastEquivocatedProposals: {
472
+ description:
473
+ 'Broadcast block proposals even when a conflicting proposal for the same slot already exists in the pool (for testing purposes only).',
474
+ ...booleanConfigHelper(false),
475
+ },
476
+ minTxPoolAgeMs: {
477
+ env: 'P2P_MIN_TX_POOL_AGE_MS',
478
+ description: 'Minimum age (ms) a transaction must have been in the pool before it is eligible for block building.',
479
+ ...numberConfigHelper(2_000),
480
+ },
481
+ priceBumpPercentage: {
482
+ env: 'P2P_RPC_PRICE_BUMP_PERCENTAGE',
483
+ description:
484
+ 'Minimum percentage fee increase required to replace an existing tx via RPC. Even at 0%, replacement still requires paying at least 1 unit more.',
485
+ ...bigintConfigHelper(10n),
486
+ },
487
+ ...sharedSequencerConfigMappings,
440
488
  ...p2pReqRespConfigMappings,
489
+ ...batchTxRequesterConfigMappings,
441
490
  ...chainConfigMappings,
442
491
  ...txCollectionConfigMappings,
492
+ ...txFileStoreConfigMappings,
443
493
  };
444
494
 
445
495
  /**
@@ -491,13 +541,44 @@ export const bootnodeConfigMappings = pickConfigMappings(
491
541
  bootnodeConfigKeys,
492
542
  );
493
543
 
544
+ /**
545
+ * Parses a `+`-separated flags string into validation properties for an allow list entry.
546
+ * Supported flags: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
547
+ */
548
+ function parseFlags(
549
+ flags: string,
550
+ entry: string,
551
+ ): { onlySelf?: boolean; rejectNullMsgSender?: boolean; calldataLength?: number } {
552
+ const result: { onlySelf?: boolean; rejectNullMsgSender?: boolean; calldataLength?: number } = {};
553
+ for (const flag of flags.split('+')) {
554
+ if (flag === 'os') {
555
+ result.onlySelf = true;
556
+ } else if (flag === 'rn') {
557
+ result.rejectNullMsgSender = true;
558
+ } else if (flag.startsWith('cl=')) {
559
+ const n = parseInt(flag.slice(3), 10);
560
+ if (isNaN(n) || n < 0) {
561
+ throw new Error(
562
+ `Invalid allow list entry "${entry}": invalid calldataLength in flag "${flag}". Expected a non-negative integer.`,
563
+ );
564
+ }
565
+ result.calldataLength = n;
566
+ } else {
567
+ throw new Error(`Invalid allow list entry "${entry}": unknown flag "${flag}". Supported flags: os, rn, cl=N.`);
568
+ }
569
+ }
570
+ return result;
571
+ }
572
+
494
573
  /**
495
574
  * Parses a string to a list of allowed elements.
496
- * Each encoded is expected to be of one of the following formats
497
- * `I:${address}`
498
- * `I:${address}:${selector}`
499
- * `C:${classId}`
500
- * `C:${classId}:${selector}`
575
+ * Each entry is expected to be of one of the following formats:
576
+ * `I:${address}:${selector}` — instance (contract address) with function selector
577
+ * `C:${classId}:${selector}` — class with function selector
578
+ *
579
+ * An optional flags segment can be appended after the selector:
580
+ * `I:${address}:${selector}:${flags}` or `C:${classId}:${selector}:${flags}`
581
+ * where flags is a `+`-separated list of: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
501
582
  *
502
583
  * @param value The string to parse
503
584
  * @returns A list of allowed elements
@@ -510,31 +591,37 @@ export function parseAllowList(value: string): AllowedElement[] {
510
591
  }
511
592
 
512
593
  for (const val of value.split(',')) {
513
- const [typeString, identifierString, selectorString] = val.split(':');
514
- const selector = selectorString !== undefined ? FunctionSelector.fromString(selectorString) : undefined;
594
+ const trimmed = val.trim();
595
+ if (!trimmed) {
596
+ continue;
597
+ }
598
+ const [typeString, identifierString, selectorString, flagsString] = trimmed.split(':');
599
+
600
+ if (!selectorString) {
601
+ throw new Error(
602
+ `Invalid allow list entry "${trimmed}": selector is required. Expected format: I:address:selector or C:classId:selector`,
603
+ );
604
+ }
605
+
606
+ const selector = FunctionSelector.fromString(selectorString);
607
+ const flags = flagsString ? parseFlags(flagsString, trimmed) : {};
515
608
 
516
609
  if (typeString === 'I') {
517
- if (selector) {
518
- entries.push({
519
- address: AztecAddress.fromString(identifierString),
520
- selector,
521
- });
522
- } else {
523
- entries.push({
524
- address: AztecAddress.fromString(identifierString),
525
- });
526
- }
610
+ entries.push({
611
+ address: AztecAddress.fromString(identifierString),
612
+ selector,
613
+ ...flags,
614
+ });
527
615
  } else if (typeString === 'C') {
528
- if (selector) {
529
- entries.push({
530
- classId: Fr.fromHexString(identifierString),
531
- selector,
532
- });
533
- } else {
534
- entries.push({
535
- classId: Fr.fromHexString(identifierString),
536
- });
537
- }
616
+ entries.push({
617
+ classId: Fr.fromHexString(identifierString),
618
+ selector,
619
+ ...flags,
620
+ });
621
+ } else {
622
+ throw new Error(
623
+ `Invalid allow list entry "${trimmed}": unknown type "${typeString}". Expected "I" (instance) or "C" (class).`,
624
+ );
538
625
  }
539
626
  }
540
627
 
@@ -0,0 +1,12 @@
1
+ import type { TxPoolRejectionError } from '../mem_pools/tx_pool_v2/eviction/interfaces.js';
2
+
3
+ /** Error thrown when a transaction is not added to the mempool. */
4
+ export class TxPoolError extends Error {
5
+ public readonly data: TxPoolRejectionError;
6
+
7
+ constructor(public readonly reason: TxPoolRejectionError) {
8
+ super(reason.message);
9
+ this.name = 'TxPoolError';
10
+ this.data = reason;
11
+ }
12
+ }
package/src/index.ts CHANGED
@@ -7,5 +7,6 @@ export * from './enr/index.js';
7
7
  export * from './config.js';
8
8
  export * from './mem_pools/attestation_pool/index.js';
9
9
  export * from './mem_pools/tx_pool/index.js';
10
+ export * from './mem_pools/tx_pool_v2/index.js';
10
11
  export * from './msg_validators/index.js';
11
12
  export * from './services/index.js';