@aztec/p2p 0.0.1-commit.03f7ef2 → 0.0.1-commit.04d373f

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/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 +72 -37
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +55 -64
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +670 -339
  13. package/dest/config.d.ts +165 -89
  14. package/dest/config.d.ts.map +1 -1
  15. package/dest/config.js +163 -53
  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 +152 -77
  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 +649 -293
  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 +9 -6
  38. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/mocks.js +18 -12
  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 +6 -4
  44. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  45. package/dest/mem_pools/instrumentation.js +35 -24
  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_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  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 +11 -5
  115. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/attestation_validator/attestation_validator.js +79 -21
  117. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +11 -7
  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 +25 -17
  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/index.d.ts +2 -2
  124. package/dest/msg_validators/index.d.ts.map +1 -1
  125. package/dest/msg_validators/index.js +1 -1
  126. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +15 -0
  127. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  128. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +14 -0
  129. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +15 -0
  130. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  131. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +20 -0
  132. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  133. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  134. package/dest/msg_validators/proposal_validator/index.js +3 -0
  135. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +26 -0
  136. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  137. package/dest/msg_validators/proposal_validator/proposal_validator.js +150 -0
  138. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  139. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +11 -18
  141. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  142. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/allowed_public_setup.js +25 -21
  144. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  145. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  146. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  147. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  148. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  149. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  150. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  151. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  152. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  153. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  154. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  155. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  156. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  157. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  158. package/dest/msg_validators/tx_validator/data_validator.d.ts +4 -1
  159. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/data_validator.js +40 -3
  161. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  162. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  163. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  164. package/dest/msg_validators/tx_validator/factory.d.ts +138 -5
  165. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  166. package/dest/msg_validators/tx_validator/factory.js +259 -58
  167. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  168. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  169. package/dest/msg_validators/tx_validator/fee_payer_balance.js +24 -0
  170. package/dest/msg_validators/tx_validator/gas_validator.d.ts +100 -3
  171. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  172. package/dest/msg_validators/tx_validator/gas_validator.js +146 -67
  173. package/dest/msg_validators/tx_validator/index.d.ts +6 -1
  174. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  175. package/dest/msg_validators/tx_validator/index.js +5 -0
  176. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  177. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  178. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  179. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  180. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  181. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  182. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  183. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  184. package/dest/msg_validators/tx_validator/phases_validator.js +75 -27
  185. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  186. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  187. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  188. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  189. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  190. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  191. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  192. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  193. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  194. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +4 -2
  195. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  196. package/dest/msg_validators/tx_validator/tx_proof_validator.js +4 -2
  197. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  198. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  199. package/dest/msg_validators/tx_validator/tx_validation_cache.js +69 -0
  200. package/dest/services/data_store.d.ts +1 -1
  201. package/dest/services/data_store.d.ts.map +1 -1
  202. package/dest/services/data_store.js +14 -10
  203. package/dest/services/discv5/discV5_service.d.ts +2 -1
  204. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  205. package/dest/services/discv5/discV5_service.js +36 -9
  206. package/dest/services/dummy_service.d.ts +36 -16
  207. package/dest/services/dummy_service.d.ts.map +1 -1
  208. package/dest/services/dummy_service.js +58 -14
  209. package/dest/services/encoding.d.ts +7 -3
  210. package/dest/services/encoding.d.ts.map +1 -1
  211. package/dest/services/encoding.js +23 -15
  212. package/dest/services/gossipsub/index.d.ts +3 -0
  213. package/dest/services/gossipsub/index.d.ts.map +1 -0
  214. package/dest/services/gossipsub/index.js +2 -0
  215. package/dest/services/gossipsub/scoring.d.ts +21 -3
  216. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  217. package/dest/services/gossipsub/scoring.js +24 -7
  218. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  219. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  220. package/dest/services/gossipsub/topic_score_params.js +363 -0
  221. package/dest/services/index.d.ts +2 -1
  222. package/dest/services/index.d.ts.map +1 -1
  223. package/dest/services/index.js +1 -0
  224. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  225. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  226. package/dest/services/libp2p/instrumentation.js +43 -71
  227. package/dest/services/libp2p/libp2p_service.d.ts +116 -51
  228. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  229. package/dest/services/libp2p/libp2p_service.js +1207 -504
  230. package/dest/services/peer-manager/metrics.d.ts +9 -2
  231. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  232. package/dest/services/peer-manager/metrics.js +39 -21
  233. package/dest/services/peer-manager/peer_manager.d.ts +7 -3
  234. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  235. package/dest/services/peer-manager/peer_manager.js +42 -21
  236. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  237. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  238. package/dest/services/peer-manager/peer_scoring.js +64 -16
  239. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +51 -0
  240. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  241. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +552 -0
  242. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  243. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  244. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  245. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  246. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  247. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  248. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  249. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  250. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  251. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  252. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  253. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  254. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +11 -0
  255. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  256. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +7 -0
  257. package/dest/services/reqresp/config.d.ts +3 -3
  258. package/dest/services/reqresp/config.d.ts.map +1 -1
  259. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  260. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  261. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  262. package/dest/services/reqresp/constants.d.ts +12 -0
  263. package/dest/services/reqresp/constants.d.ts.map +1 -0
  264. package/dest/services/reqresp/constants.js +7 -0
  265. package/dest/services/reqresp/interface.d.ts +27 -18
  266. package/dest/services/reqresp/interface.d.ts.map +1 -1
  267. package/dest/services/reqresp/interface.js +23 -19
  268. package/dest/services/reqresp/metrics.d.ts +6 -5
  269. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  270. package/dest/services/reqresp/metrics.js +16 -21
  271. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  272. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  273. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  274. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  275. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  276. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +29 -9
  277. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +29 -6
  278. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  279. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +59 -13
  280. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  281. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  282. package/dest/services/reqresp/protocols/index.js +0 -1
  283. package/dest/services/reqresp/protocols/status.d.ts +1 -1
  284. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  285. package/dest/services/reqresp/protocols/status.js +4 -1
  286. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  287. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  288. package/dest/services/reqresp/protocols/tx.js +21 -3
  289. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  290. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  291. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  292. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  293. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  294. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  295. package/dest/services/reqresp/reqresp.d.ts +12 -29
  296. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  297. package/dest/services/reqresp/reqresp.js +448 -199
  298. package/dest/services/service.d.ts +62 -13
  299. package/dest/services/service.d.ts.map +1 -1
  300. package/dest/services/tx_collection/config.d.ts +11 -11
  301. package/dest/services/tx_collection/config.d.ts.map +1 -1
  302. package/dest/services/tx_collection/config.js +27 -26
  303. package/dest/services/tx_collection/file_store_tx_collection.d.ts +37 -0
  304. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  305. package/dest/services/tx_collection/file_store_tx_collection.js +127 -0
  306. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  307. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  308. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  309. package/dest/services/tx_collection/index.d.ts +3 -2
  310. package/dest/services/tx_collection/index.d.ts.map +1 -1
  311. package/dest/services/tx_collection/index.js +1 -0
  312. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  313. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  314. package/dest/services/tx_collection/instrumentation.js +9 -13
  315. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  316. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  317. package/dest/services/tx_collection/request_tracker.js +84 -0
  318. package/dest/services/tx_collection/tx_collection.d.ts +50 -56
  319. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  320. package/dest/services/tx_collection/tx_collection.js +298 -70
  321. package/dest/services/tx_collection/tx_collection_sink.d.ts +19 -9
  322. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  323. package/dest/services/tx_collection/tx_collection_sink.js +28 -31
  324. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  325. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  326. package/dest/services/tx_collection/tx_source.js +26 -7
  327. package/dest/services/tx_file_store/config.d.ts +16 -0
  328. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  329. package/dest/services/tx_file_store/config.js +22 -0
  330. package/dest/services/tx_file_store/index.d.ts +4 -0
  331. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  332. package/dest/services/tx_file_store/index.js +3 -0
  333. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  334. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  335. package/dest/services/tx_file_store/instrumentation.js +29 -0
  336. package/dest/services/tx_file_store/tx_file_store.d.ts +46 -0
  337. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  338. package/dest/services/tx_file_store/tx_file_store.js +142 -0
  339. package/dest/services/tx_provider.d.ts +8 -6
  340. package/dest/services/tx_provider.d.ts.map +1 -1
  341. package/dest/services/tx_provider.js +15 -9
  342. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  343. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  344. package/dest/services/tx_provider_instrumentation.js +7 -20
  345. package/dest/test-helpers/index.d.ts +3 -1
  346. package/dest/test-helpers/index.d.ts.map +1 -1
  347. package/dest/test-helpers/index.js +2 -0
  348. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  349. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  350. package/dest/test-helpers/make-test-p2p-clients.js +5 -3
  351. package/dest/test-helpers/mock-pubsub.d.ts +46 -6
  352. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  353. package/dest/test-helpers/mock-pubsub.js +115 -14
  354. package/dest/test-helpers/reqresp-nodes.d.ts +5 -7
  355. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  356. package/dest/test-helpers/reqresp-nodes.js +19 -20
  357. package/dest/test-helpers/test_tx_provider.d.ts +42 -0
  358. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  359. package/dest/test-helpers/test_tx_provider.js +44 -0
  360. package/dest/test-helpers/testbench-utils.d.ts +161 -0
  361. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  362. package/dest/test-helpers/testbench-utils.js +393 -0
  363. package/dest/testbench/p2p_client_testbench_worker.d.ts +26 -2
  364. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  365. package/dest/testbench/p2p_client_testbench_worker.js +275 -134
  366. package/dest/testbench/worker_client_manager.d.ts +57 -6
  367. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  368. package/dest/testbench/worker_client_manager.js +277 -44
  369. package/dest/util.d.ts +13 -8
  370. package/dest/util.d.ts.map +1 -1
  371. package/dest/util.js +35 -14
  372. package/dest/versioning.d.ts +3 -6
  373. package/dest/versioning.d.ts.map +1 -1
  374. package/dest/versioning.js +3 -24
  375. package/package.json +17 -16
  376. package/src/bootstrap/bootstrap.ts +16 -5
  377. package/src/client/factory.ts +136 -40
  378. package/src/client/interface.ts +86 -45
  379. package/src/client/p2p_client.ts +334 -403
  380. package/src/client/test/p2p_client.batch_tx_requester.bench.README.md +197 -0
  381. package/src/config.ts +282 -62
  382. package/src/errors/p2p-service.error.ts +11 -0
  383. package/src/errors/reqresp.error.ts +0 -25
  384. package/src/errors/tx-pool.error.ts +12 -0
  385. package/src/index.ts +1 -1
  386. package/src/mem_pools/attestation_pool/attestation_pool.ts +584 -76
  387. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +758 -330
  388. package/src/mem_pools/attestation_pool/index.ts +9 -2
  389. package/src/mem_pools/attestation_pool/mocks.ts +27 -15
  390. package/src/mem_pools/index.ts +2 -2
  391. package/src/mem_pools/instrumentation.ts +30 -28
  392. package/src/mem_pools/interface.ts +4 -4
  393. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  394. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  395. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  396. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  397. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  398. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  399. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  400. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  401. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  402. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  403. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  404. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  405. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  406. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  407. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  408. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  409. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  410. package/src/mem_pools/tx_pool_v2/interfaces.ts +250 -0
  411. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  412. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  413. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  414. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  415. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1090 -0
  416. package/src/msg_validators/attestation_validator/README.md +49 -0
  417. package/src/msg_validators/attestation_validator/attestation_validator.ts +70 -23
  418. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +33 -23
  419. package/src/msg_validators/clock_tolerance.ts +127 -0
  420. package/src/msg_validators/index.ts +1 -1
  421. package/src/msg_validators/proposal_validator/README.md +123 -0
  422. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +30 -0
  423. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +41 -0
  424. package/src/msg_validators/proposal_validator/index.ts +3 -0
  425. package/src/msg_validators/proposal_validator/proposal_validator.ts +159 -0
  426. package/src/msg_validators/tx_validator/README.md +127 -0
  427. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +8 -17
  428. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  429. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  430. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  431. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  432. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  433. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  434. package/src/msg_validators/tx_validator/data_validator.ts +62 -7
  435. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  436. package/src/msg_validators/tx_validator/factory.ts +424 -56
  437. package/src/msg_validators/tx_validator/fee_payer_balance.ts +44 -0
  438. package/src/msg_validators/tx_validator/gas_validator.ts +211 -77
  439. package/src/msg_validators/tx_validator/index.ts +5 -0
  440. package/src/msg_validators/tx_validator/metadata_validator.ts +30 -11
  441. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  442. package/src/msg_validators/tx_validator/phases_validator.ts +87 -30
  443. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  444. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -19
  445. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  446. package/src/msg_validators/tx_validator/tx_proof_validator.ts +10 -3
  447. package/src/msg_validators/tx_validator/tx_validation_cache.ts +102 -0
  448. package/src/services/data_store.ts +14 -19
  449. package/src/services/discv5/discV5_service.ts +39 -6
  450. package/src/services/dummy_service.ts +76 -38
  451. package/src/services/encoding.ts +22 -13
  452. package/src/services/gossipsub/README.md +641 -0
  453. package/src/services/gossipsub/index.ts +2 -0
  454. package/src/services/gossipsub/scoring.ts +29 -5
  455. package/src/services/gossipsub/topic_score_params.ts +519 -0
  456. package/src/services/index.ts +1 -0
  457. package/src/services/libp2p/instrumentation.ts +48 -75
  458. package/src/services/libp2p/libp2p_service.ts +929 -549
  459. package/src/services/peer-manager/metrics.ts +46 -21
  460. package/src/services/peer-manager/peer_manager.ts +49 -13
  461. package/src/services/peer-manager/peer_scoring.ts +55 -9
  462. package/src/services/reqresp/README.md +215 -0
  463. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  464. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +684 -0
  465. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  466. package/src/services/reqresp/batch-tx-requester/interface.ts +61 -0
  467. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  468. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  469. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +24 -0
  470. package/src/services/reqresp/config.ts +2 -2
  471. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  472. package/src/services/reqresp/constants.ts +14 -0
  473. package/src/services/reqresp/interface.ts +48 -46
  474. package/src/services/reqresp/metrics.ts +35 -27
  475. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  476. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +37 -12
  477. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +74 -9
  478. package/src/services/reqresp/protocols/index.ts +0 -1
  479. package/src/services/reqresp/protocols/status.ts +7 -4
  480. package/src/services/reqresp/protocols/tx.ts +23 -3
  481. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  482. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  483. package/src/services/reqresp/reqresp.ts +68 -224
  484. package/src/services/service.ts +83 -31
  485. package/src/services/tx_collection/config.ts +41 -36
  486. package/src/services/tx_collection/file_store_tx_collection.ts +153 -0
  487. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  488. package/src/services/tx_collection/index.ts +2 -1
  489. package/src/services/tx_collection/instrumentation.ts +5 -13
  490. package/src/services/tx_collection/request_tracker.ts +127 -0
  491. package/src/services/tx_collection/tx_collection.ts +367 -115
  492. package/src/services/tx_collection/tx_collection_sink.ts +32 -36
  493. package/src/services/tx_collection/tx_source.ts +28 -8
  494. package/src/services/tx_file_store/config.ts +37 -0
  495. package/src/services/tx_file_store/index.ts +3 -0
  496. package/src/services/tx_file_store/instrumentation.ts +36 -0
  497. package/src/services/tx_file_store/tx_file_store.ts +163 -0
  498. package/src/services/tx_provider.ts +21 -12
  499. package/src/services/tx_provider_instrumentation.ts +13 -20
  500. package/src/test-helpers/index.ts +2 -0
  501. package/src/test-helpers/make-test-p2p-clients.ts +7 -6
  502. package/src/test-helpers/mock-pubsub.ts +137 -14
  503. package/src/test-helpers/reqresp-nodes.ts +17 -29
  504. package/src/test-helpers/test_tx_provider.ts +69 -0
  505. package/src/test-helpers/testbench-utils.ts +455 -0
  506. package/src/testbench/p2p_client_testbench_worker.ts +386 -130
  507. package/src/testbench/worker_client_manager.ts +355 -46
  508. package/src/util.ts +40 -19
  509. package/src/versioning.ts +3 -33
  510. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -37
  511. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  512. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -213
  513. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -30
  514. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  515. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -219
  516. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -116
  517. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  518. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -620
  519. package/dest/mem_pools/tx_pool/index.d.ts +0 -4
  520. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  521. package/dest/mem_pools/tx_pool/index.js +0 -3
  522. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -81
  523. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  524. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -242
  525. package/dest/mem_pools/tx_pool/priority.d.ts +0 -8
  526. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  527. package/dest/mem_pools/tx_pool/priority.js +0 -10
  528. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -123
  529. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  530. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  531. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  532. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  533. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  534. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  535. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  536. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -82
  537. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  538. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  539. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  540. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -45
  541. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  542. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -92
  543. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  544. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  545. package/dest/services/reqresp/protocols/block.js +0 -32
  546. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -51
  547. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  548. package/dest/services/tx_collection/fast_tx_collection.js +0 -300
  549. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -53
  550. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  551. package/dest/services/tx_collection/slow_tx_collection.js +0 -177
  552. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -298
  553. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -287
  554. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -754
  555. package/src/mem_pools/tx_pool/index.ts +0 -3
  556. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -288
  557. package/src/mem_pools/tx_pool/priority.ts +0 -13
  558. package/src/mem_pools/tx_pool/tx_pool.ts +0 -136
  559. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  560. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -97
  561. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
  562. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -100
  563. package/src/services/reqresp/protocols/block.ts +0 -37
  564. package/src/services/tx_collection/fast_tx_collection.ts +0 -341
  565. package/src/services/tx_collection/slow_tx_collection.ts +0 -233
package/src/config.ts CHANGED
@@ -1,33 +1,75 @@
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
+ optionalNumberConfigHelper,
10
+ percentageConfigHelper,
9
11
  pickConfigMappings,
10
12
  secretStringConfigHelper,
11
13
  } from '@aztec/foundation/config';
12
14
  import { Fr } from '@aztec/foundation/curves/bn254';
13
- import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
14
15
  import { FunctionSelector } from '@aztec/stdlib/abi/function-selector';
15
16
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
16
- import { type AllowedElement, type ChainConfig, chainConfigMappings } from '@aztec/stdlib/config';
17
+ import {
18
+ type AllowedElement,
19
+ type ChainConfig,
20
+ type SequencerConfig,
21
+ chainConfigMappings,
22
+ sharedSequencerConfigMappings,
23
+ } from '@aztec/stdlib/config';
24
+ import { type DataStoreConfig, dataConfigMappings } from '@aztec/stdlib/kv-store';
17
25
 
26
+ import {
27
+ type BatchTxRequesterConfig,
28
+ batchTxRequesterConfigMappings,
29
+ } from './services/reqresp/batch-tx-requester/config.js';
18
30
  import { type P2PReqRespConfig, p2pReqRespConfigMappings } from './services/reqresp/config.js';
19
31
  import { type TxCollectionConfig, txCollectionConfigMappings } from './services/tx_collection/config.js';
32
+ import { type TxFileStoreConfig, txFileStoreConfigMappings } from './services/tx_file_store/config.js';
20
33
 
21
34
  /**
22
35
  * P2P client configuration values.
23
36
  */
24
- export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionConfig {
37
+ export interface P2PConfig
38
+ extends P2PReqRespConfig,
39
+ BatchTxRequesterConfig,
40
+ ChainConfig,
41
+ TxCollectionConfig,
42
+ TxFileStoreConfig,
43
+ Pick<
44
+ SequencerConfig,
45
+ | 'blockDurationMs'
46
+ | 'expectedBlockProposalsPerSlot'
47
+ | 'l1PublishingTime'
48
+ | 'maxTxsPerBlock'
49
+ | 'attestationPropagationTime'
50
+ | 'maxBlocksPerCheckpoint'
51
+ > {
52
+ /** Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set. */
53
+ validateMaxTxsPerBlock?: number;
54
+
55
+ /** Maximum transactions per checkpoint for validation. Used as fallback for maxTxsPerBlock when that is not set. */
56
+ validateMaxTxsPerCheckpoint?: number;
57
+
58
+ /** Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected. */
59
+ validateMaxL2BlockGas?: number;
60
+
61
+ /** Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected. */
62
+ validateMaxDABlockGas?: number;
63
+
25
64
  /** A flag dictating whether the P2P subsystem should be enabled. */
26
65
  p2pEnabled: boolean;
27
66
 
28
67
  /** The frequency in which to check for new L2 blocks. */
29
68
  blockCheckIntervalMS: number;
30
69
 
70
+ /** The frequency in which to check for new L2 slots. */
71
+ slotCheckIntervalMS: number;
72
+
31
73
  /** The number of blocks to fetch in a single batch. */
32
74
  blockRequestBatchSize: number;
33
75
 
@@ -37,6 +79,9 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
37
79
  /** The frequency in which to check for new peers. */
38
80
  peerCheckIntervalMS: number;
39
81
 
82
+ /** How long to ban a peer after it fails MAX_DIAL_ATTEMPTS dials. */
83
+ peerFailedBanTimeMs: number;
84
+
40
85
  /** Size of queue of L2 blocks to store. */
41
86
  l2QueueSize: number;
42
87
 
@@ -73,6 +118,11 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
73
118
  /** If announceUdpAddress or announceTcpAddress are not provided, query for the IP address of the machine. Default is false. */
74
119
  queryForIp: boolean;
75
120
 
121
+ /**
122
+ * HTTPS URLs that return plain-text public IPv4, tried in order when resolving the announce IP (e.g. when `queryForIp` is true and `p2pIp` is unset).
123
+ */
124
+ publicIpServices: string[];
125
+
76
126
  /** The interval of the gossipsub heartbeat to perform maintenance tasks. */
77
127
  gossipsubInterval: number;
78
128
 
@@ -130,18 +180,18 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
130
180
  /** The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb. */
131
181
  p2pStoreMapSizeKb?: number;
132
182
 
133
- /** Which calls are allowed in the public setup phase of a tx. */
134
- txPublicSetupAllowList: AllowedElement[];
183
+ /** Additional entries to extend the default setup allow list. */
184
+ txPublicSetupAllowListExtend: AllowedElement[];
135
185
 
136
- /** The maximum cumulative tx size (in bytes) of pending txs before evicting lower priority txs. */
137
- maxTxPoolSize: number;
138
-
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;
186
+ /** The maximum number of pending txs before evicting lower priority txs. */
187
+ maxPendingTxCount: number;
141
188
 
142
189
  /** The node's seen message ID cache size */
143
190
  seenMessageCacheSize: number;
144
191
 
192
+ /** Maximum number of (validator, tx) pairs to keep in the tx validation LRU cache. */
193
+ txValidationCacheSize: number;
194
+
145
195
  /** True to disable the status handshake on peer connected. */
146
196
  p2pDisableStatusHandshake?: boolean;
147
197
 
@@ -156,10 +206,7 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
156
206
  /** Whether transactions are disabled for this node. This means transactions will be rejected at the RPC and P2P layers. */
157
207
  disableTransactions: boolean;
158
208
 
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 */
209
+ /** The probability that a transaction is discarded (0 = disabled). - For testing purposes only */
163
210
  dropTransactionsProbability: number;
164
211
 
165
212
  /** Whether to delete transactions from the pool after a reorg instead of moving them back to pending. */
@@ -170,11 +217,77 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
170
217
 
171
218
  /** Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus */
172
219
  fishermanMode: boolean;
220
+
221
+ /** Broadcast block proposals even when a conflicting proposal for the same slot already exists in the pool (for testing purposes only). */
222
+ broadcastEquivocatedProposals?: boolean;
223
+
224
+ /** Minimum age (ms) a transaction must have been in the pool before it's eligible for block building. */
225
+ minTxPoolAgeMs: number;
226
+
227
+ /**
228
+ * Number of full L2 slots to wait after a checkpoint's slot before declaring its txs missing
229
+ * for data-withholding slashing.
230
+ */
231
+ slashDataWithholdingToleranceSlots: number;
232
+
233
+ /**
234
+ * Number of L2 slots after a mined block's slot to keep collecting its missing txs. Clamped
235
+ * up so that collection always runs at least until the data-withholding slash verdict is
236
+ * rendered (`block.slot + slashDataWithholdingToleranceSlots + 1`). Defaults to undefined,
237
+ * in which case the tolerance window is used directly.
238
+ */
239
+ p2pMissingTxCollectionDeadlineSlots?: number;
240
+
241
+ /** Minimum percentage fee increase required to replace an existing tx via RPC (0 = no bump). */
242
+ priceBumpPercentage: bigint;
243
+
244
+ /** Drop incoming block and checkpoint proposals at the libp2p dispatch layer (for testing only) */
245
+ skipIncomingProposals?: boolean;
246
+
247
+ /** Accept proposal gossip regardless of slot timing (for testing only). */
248
+ skipProposalSlotValidation?: boolean;
249
+
250
+ /**
251
+ * Whether this node skips checkpoint proposal validation and always attests. When set, the checkpoint
252
+ * attestation is created and broadcast before the embedded last block is processed, so it is not delayed
253
+ * past the slot's attestation window by that block's re-execution. Mirrors the validator config flag.
254
+ */
255
+ skipCheckpointProposalValidation?: boolean;
173
256
  }
174
257
 
175
258
  export const DEFAULT_P2P_PORT = 40400;
176
259
 
260
+ /** Default endpoints used to discover this machine's public IPv4 when `queryForIp` is enabled. */
261
+ export const DEFAULT_PUBLIC_IP_SERVICES: string[] = [
262
+ 'https://api.ipify.org/',
263
+ 'https://checkip.amazonaws.com/',
264
+ 'https://ifconfig.me/ip',
265
+ 'https://icanhazip.com/',
266
+ ];
267
+
177
268
  export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
269
+ validateMaxTxsPerBlock: {
270
+ env: 'VALIDATOR_MAX_TX_PER_BLOCK',
271
+ description:
272
+ 'Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set.',
273
+ ...optionalNumberConfigHelper(),
274
+ },
275
+ validateMaxTxsPerCheckpoint: {
276
+ env: 'VALIDATOR_MAX_TX_PER_CHECKPOINT',
277
+ description:
278
+ 'Maximum transactions per checkpoint for validation. Used as fallback for maxTxsPerBlock when that is not set.',
279
+ ...optionalNumberConfigHelper(),
280
+ },
281
+ validateMaxL2BlockGas: {
282
+ env: 'VALIDATOR_MAX_L2_BLOCK_GAS',
283
+ description: 'Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected.',
284
+ ...optionalNumberConfigHelper(),
285
+ },
286
+ validateMaxDABlockGas: {
287
+ env: 'VALIDATOR_MAX_DA_BLOCK_GAS',
288
+ description: 'Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected.',
289
+ ...optionalNumberConfigHelper(),
290
+ },
178
291
  p2pEnabled: {
179
292
  env: 'P2P_ENABLED',
180
293
  description: 'A flag dictating whether the P2P subsystem should be enabled.',
@@ -190,6 +303,11 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
190
303
  description: 'The frequency in which to check for new L2 blocks.',
191
304
  ...numberConfigHelper(100),
192
305
  },
306
+ slotCheckIntervalMS: {
307
+ env: 'P2P_SLOT_CHECK_INTERVAL_MS',
308
+ description: 'The frequency in which to check for new L2 slots.',
309
+ ...numberConfigHelper(1000),
310
+ },
193
311
  debugDisableColocationPenalty: {
194
312
  env: 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY',
195
313
  description: 'DEBUG: Disable colocation penalty - NEVER set to true in production',
@@ -200,6 +318,11 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
200
318
  description: 'The frequency in which to check for new peers.',
201
319
  ...numberConfigHelper(30_000),
202
320
  },
321
+ peerFailedBanTimeMs: {
322
+ env: 'P2P_PEER_FAILED_BAN_TIME_MS',
323
+ description: 'How long to ban a peer after it fails maximum dial attempts.',
324
+ ...numberConfigHelper(5 * 60 * 1000),
325
+ },
203
326
  l2QueueSize: {
204
327
  env: 'P2P_L2_QUEUE_SIZE',
205
328
  description: 'Size of queue of L2 blocks to store.',
@@ -260,6 +383,17 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
260
383
  'If announceUdpAddress or announceTcpAddress are not provided, query for the IP address of the machine. Default is false.',
261
384
  ...booleanConfigHelper(),
262
385
  },
386
+ publicIpServices: {
387
+ env: 'P2P_PUBLIC_IP_SERVICES',
388
+ parseEnv: (val: string) =>
389
+ val
390
+ .split(',')
391
+ .map(s => s.trim())
392
+ .filter(Boolean),
393
+ description:
394
+ 'Comma-separated HTTPS URLs that return plain-text public IPv4. Used when P2P_QUERY_FOR_IP is true and P2P_IP is unset. Tried in order until one succeeds.',
395
+ defaultValue: DEFAULT_PUBLIC_IP_SERVICES,
396
+ },
263
397
  gossipsubInterval: {
264
398
  env: 'P2P_GOSSIPSUB_INTERVAL_MS',
265
399
  description: 'The interval of the gossipsub heartbeat to perform maintenance tasks.',
@@ -293,7 +427,7 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
293
427
  gossipsubMcacheLength: {
294
428
  env: 'P2P_GOSSIPSUB_MCACHE_LENGTH',
295
429
  description: 'The number of gossipsub interval message cache windows to keep.',
296
- ...numberConfigHelper(6),
430
+ ...numberConfigHelper(12),
297
431
  },
298
432
  gossipsubMcacheGossip: {
299
433
  env: 'P2P_GOSSIPSUB_MCACHE_GOSSIP',
@@ -365,31 +499,34 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
365
499
  },
366
500
  p2pStoreMapSizeKb: {
367
501
  env: 'P2P_STORE_MAP_SIZE_KB',
368
- parseEnv: (val: string | undefined) => (val ? +val : undefined),
502
+ ...optionalNumberConfigHelper(),
369
503
  description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb.',
370
504
  },
371
- txPublicSetupAllowList: {
505
+ txPublicSetupAllowListExtend: {
372
506
  env: 'TX_PUBLIC_SETUP_ALLOWLIST',
373
507
  parseEnv: (val: string) => parseAllowList(val),
374
- description: 'The list of functions calls allowed to run in setup',
508
+ description:
509
+ '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
510
  printDefault: () =>
376
- 'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee',
511
+ 'Default: AuthRegistry._set_authorized, AuthRegistry.set_authorized, FeeJuice._increase_public_balance',
377
512
  },
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
513
+ maxPendingTxCount: {
514
+ env: 'P2P_MAX_PENDING_TX_COUNT',
515
+ description: 'The maximum number of pending txs before evicting lower priority txs.',
516
+ // Worst case scenario: Uncompressed public/private tx is ~ 156kb
517
+ // This implies we are using ~156MB of memory for pending pool
518
+ ...numberConfigHelper(1_000),
387
519
  },
388
520
  seenMessageCacheSize: {
389
521
  env: 'P2P_SEEN_MSG_CACHE_SIZE',
390
522
  description: 'The number of messages to keep in the seen message cache',
391
523
  ...numberConfigHelper(100_000), // 100K
392
524
  },
525
+ txValidationCacheSize: {
526
+ env: 'P2P_TX_VALIDATION_CACHE_SIZE',
527
+ description: 'Maximum number of items to keep in the tx validation LRU cache.',
528
+ ...numberConfigHelper(5_000),
529
+ },
393
530
  p2pDisableStatusHandshake: {
394
531
  env: 'P2P_DISABLE_STATUS_HANDSHAKE',
395
532
  description: 'True to disable the status handshake on peer connected.',
@@ -405,15 +542,10 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
405
542
  description: 'Number of auth attempts to allow before peer is banned. Number is inclusive',
406
543
  ...numberConfigHelper(3),
407
544
  },
408
- dropTransactions: {
409
- env: 'P2P_DROP_TX',
410
- description: 'True to simulate discarding transactions. - For testing purposes only',
411
- ...booleanConfigHelper(false),
412
- },
413
545
  dropTransactionsProbability: {
414
546
  env: 'P2P_DROP_TX_CHANCE',
415
547
  description: 'The probability that a transaction is discarded (0 - 1). - For testing purposes only',
416
- ...floatConfigHelper(0),
548
+ ...percentageConfigHelper(0),
417
549
  },
418
550
  disableTransactions: {
419
551
  env: 'TRANSACTIONS_DISABLED',
@@ -431,15 +563,64 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
431
563
  description: 'Alters the format of p2p messages to include things like broadcast timestamp FOR TESTING ONLY',
432
564
  ...booleanConfigHelper(false),
433
565
  },
566
+ l1PublishingTime: {
567
+ env: 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT',
568
+ description: 'How much time (in seconds) we allow in the slot for publishing the L1 tx (defaults to 1 L1 slot).',
569
+ ...optionalNumberConfigHelper(),
570
+ },
434
571
  fishermanMode: {
435
572
  env: 'FISHERMAN_MODE',
436
573
  description:
437
574
  'Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus.',
438
575
  ...booleanConfigHelper(false),
439
576
  },
577
+ broadcastEquivocatedProposals: {
578
+ description:
579
+ 'Broadcast block proposals even when a conflicting proposal for the same slot already exists in the pool (for testing purposes only).',
580
+ ...booleanConfigHelper(false),
581
+ },
582
+ skipIncomingProposals: {
583
+ description: 'Drop incoming block and checkpoint proposals at the libp2p dispatch layer (for testing only)',
584
+ ...booleanConfigHelper(false),
585
+ },
586
+ skipProposalSlotValidation: {
587
+ description: 'Accept proposal gossip regardless of slot timing (for testing only)',
588
+ ...booleanConfigHelper(false),
589
+ },
590
+ skipCheckpointProposalValidation: {
591
+ description:
592
+ 'Skip checkpoint proposal validation and always attest, broadcasting the attestation before processing the embedded last block',
593
+ ...booleanConfigHelper(false),
594
+ },
595
+ minTxPoolAgeMs: {
596
+ env: 'P2P_MIN_TX_POOL_AGE_MS',
597
+ description: 'Minimum age (ms) a transaction must have been in the pool before it is eligible for block building.',
598
+ ...numberConfigHelper(2_000),
599
+ },
600
+ slashDataWithholdingToleranceSlots: {
601
+ env: 'SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS',
602
+ description:
603
+ 'L2 slots to wait after a checkpoint slot before declaring its txs missing. Drives both the data-withholding slasher check and the missing-tx collection deadline.',
604
+ ...numberConfigHelper(3),
605
+ },
606
+ p2pMissingTxCollectionDeadlineSlots: {
607
+ env: 'P2P_MISSING_TX_COLLECTION_DEADLINE_SLOTS',
608
+ description:
609
+ 'Optional deadline (in L2 slots after the block slot) for collecting missing txs for unproven mined blocks. Clamped up to the data-withholding tolerance window so collection never gives up before the slash verdict.',
610
+ ...optionalNumberConfigHelper(),
611
+ },
612
+ priceBumpPercentage: {
613
+ env: 'P2P_RPC_PRICE_BUMP_PERCENTAGE',
614
+ description:
615
+ 'Minimum percentage fee increase required to replace an existing tx via RPC. Even at 0%, replacement still requires paying at least 1 unit more.',
616
+ ...bigintConfigHelper(10n),
617
+ },
618
+ ...sharedSequencerConfigMappings,
440
619
  ...p2pReqRespConfigMappings,
620
+ ...batchTxRequesterConfigMappings,
441
621
  ...chainConfigMappings,
442
622
  ...txCollectionConfigMappings,
623
+ ...txFileStoreConfigMappings,
443
624
  };
444
625
 
445
626
  /**
@@ -467,6 +648,7 @@ export type BootnodeConfig = Pick<
467
648
  | 'bootstrapNodes'
468
649
  | 'listenAddress'
469
650
  | 'queryForIp'
651
+ | 'publicIpServices'
470
652
  > &
471
653
  Required<Pick<P2PConfig, 'p2pIp' | 'p2pPort'>> &
472
654
  Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'> &
@@ -484,6 +666,7 @@ const bootnodeConfigKeys: (keyof BootnodeConfig)[] = [
484
666
  'bootstrapNodes',
485
667
  'l1ChainId',
486
668
  'queryForIp',
669
+ 'publicIpServices',
487
670
  ];
488
671
 
489
672
  export const bootnodeConfigMappings = pickConfigMappings(
@@ -491,13 +674,44 @@ export const bootnodeConfigMappings = pickConfigMappings(
491
674
  bootnodeConfigKeys,
492
675
  );
493
676
 
677
+ /**
678
+ * Parses a `+`-separated flags string into validation properties for an allow list entry.
679
+ * Supported flags: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
680
+ */
681
+ function parseFlags(
682
+ flags: string,
683
+ entry: string,
684
+ ): { onlySelf?: boolean; rejectNullMsgSender?: boolean; calldataLength?: number } {
685
+ const result: { onlySelf?: boolean; rejectNullMsgSender?: boolean; calldataLength?: number } = {};
686
+ for (const flag of flags.split('+')) {
687
+ if (flag === 'os') {
688
+ result.onlySelf = true;
689
+ } else if (flag === 'rn') {
690
+ result.rejectNullMsgSender = true;
691
+ } else if (flag.startsWith('cl=')) {
692
+ const n = parseInt(flag.slice(3), 10);
693
+ if (isNaN(n) || n < 0) {
694
+ throw new Error(
695
+ `Invalid allow list entry "${entry}": invalid calldataLength in flag "${flag}". Expected a non-negative integer.`,
696
+ );
697
+ }
698
+ result.calldataLength = n;
699
+ } else {
700
+ throw new Error(`Invalid allow list entry "${entry}": unknown flag "${flag}". Supported flags: os, rn, cl=N.`);
701
+ }
702
+ }
703
+ return result;
704
+ }
705
+
494
706
  /**
495
707
  * 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}`
708
+ * Each entry is expected to be of one of the following formats:
709
+ * `I:${address}:${selector}` — instance (contract address) with function selector
710
+ * `C:${classId}:${selector}` — class with function selector
711
+ *
712
+ * An optional flags segment can be appended after the selector:
713
+ * `I:${address}:${selector}:${flags}` or `C:${classId}:${selector}:${flags}`
714
+ * where flags is a `+`-separated list of: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
501
715
  *
502
716
  * @param value The string to parse
503
717
  * @returns A list of allowed elements
@@ -510,31 +724,37 @@ export function parseAllowList(value: string): AllowedElement[] {
510
724
  }
511
725
 
512
726
  for (const val of value.split(',')) {
513
- const [typeString, identifierString, selectorString] = val.split(':');
514
- const selector = selectorString !== undefined ? FunctionSelector.fromString(selectorString) : undefined;
727
+ const trimmed = val.trim();
728
+ if (!trimmed) {
729
+ continue;
730
+ }
731
+ const [typeString, identifierString, selectorString, flagsString] = trimmed.split(':');
732
+
733
+ if (!selectorString) {
734
+ throw new Error(
735
+ `Invalid allow list entry "${trimmed}": selector is required. Expected format: I:address:selector or C:classId:selector`,
736
+ );
737
+ }
738
+
739
+ const selector = FunctionSelector.fromString(selectorString);
740
+ const flags = flagsString ? parseFlags(flagsString, trimmed) : {};
515
741
 
516
742
  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
- }
743
+ entries.push({
744
+ address: AztecAddress.fromString(identifierString),
745
+ selector,
746
+ ...flags,
747
+ });
527
748
  } 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
- }
749
+ entries.push({
750
+ classId: Fr.fromHexString(identifierString),
751
+ selector,
752
+ ...flags,
753
+ });
754
+ } else {
755
+ throw new Error(
756
+ `Invalid allow list entry "${trimmed}": unknown type "${typeString}". Expected "I" (instance) or "C" (class).`,
757
+ );
538
758
  }
539
759
  }
540
760
 
@@ -0,0 +1,11 @@
1
+ /** Checkpoint Proposal Received Callback Not Registered Error
2
+ *
3
+ * Error triggered if the allNodesCheckpointReceivedCallback is not registered
4
+ * @category Errors
5
+ */
6
+ export class CheckpointProposalReceivedCallbackNotRegisteredError extends Error {
7
+ constructor() {
8
+ super('FATAL (allNodesCheckpointReceivedCallback): All nodes should register a checkpoint proposal handler');
9
+ this.name = 'CheckpointProposalReceivedCallbackNotRegisteredError';
10
+ }
11
+ }
@@ -8,28 +8,3 @@ export class IndividualReqRespTimeoutError extends Error {
8
8
  super(`Request to peer timed out`);
9
9
  }
10
10
  }
11
-
12
- /** Collective request timeout error
13
- *
14
- * This error will be thrown when a req resp request times out regardless of the peer.
15
- * @category Errors
16
- */
17
- export class CollectiveReqRespTimeoutError extends Error {
18
- constructor() {
19
- super(`Request to all peers timed out`);
20
- }
21
- }
22
-
23
- /** Invalid response error
24
- *
25
- * This error will be thrown when a response is received that is not valid.
26
- *
27
- * This error does not need to be punished as message validators will handle punishing invalid
28
- * requests
29
- * @category Errors
30
- */
31
- export class InvalidResponseError extends Error {
32
- constructor() {
33
- super(`Invalid response received`);
34
- }
35
- }
@@ -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
@@ -6,6 +6,6 @@ export * from './client/index.js';
6
6
  export * from './enr/index.js';
7
7
  export * from './config.js';
8
8
  export * from './mem_pools/attestation_pool/index.js';
9
- export * from './mem_pools/tx_pool/index.js';
9
+ export * from './mem_pools/tx_pool_v2/index.js';
10
10
  export * from './msg_validators/index.js';
11
11
  export * from './services/index.js';