@aztec/p2p 0.0.1-commit.1bb068fb5 → 0.0.1-commit.1dcfe2301

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 (413) hide show
  1. package/README.md +129 -3
  2. package/dest/client/factory.d.ts +7 -7
  3. package/dest/client/factory.d.ts.map +1 -1
  4. package/dest/client/factory.js +32 -28
  5. package/dest/client/interface.d.ts +18 -20
  6. package/dest/client/interface.d.ts.map +1 -1
  7. package/dest/client/p2p_client.d.ts +9 -19
  8. package/dest/client/p2p_client.d.ts.map +1 -1
  9. package/dest/client/p2p_client.js +81 -104
  10. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +20 -10
  11. package/dest/config.d.ts +126 -103
  12. package/dest/config.d.ts.map +1 -1
  13. package/dest/config.js +93 -39
  14. package/dest/errors/p2p-service.error.d.ts +9 -0
  15. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  16. package/dest/errors/p2p-service.error.js +10 -0
  17. package/dest/errors/tx-pool.error.d.ts +8 -0
  18. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  19. package/dest/errors/tx-pool.error.js +9 -0
  20. package/dest/index.d.ts +1 -2
  21. package/dest/index.d.ts.map +1 -1
  22. package/dest/index.js +0 -1
  23. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +7 -5
  24. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  25. package/dest/mem_pools/attestation_pool/attestation_pool.js +16 -9
  26. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +6 -6
  27. package/dest/mem_pools/index.d.ts +1 -2
  28. package/dest/mem_pools/index.d.ts.map +1 -1
  29. package/dest/mem_pools/instrumentation.d.ts +4 -2
  30. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  31. package/dest/mem_pools/instrumentation.js +16 -14
  32. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +3 -1
  33. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -1
  34. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +9 -0
  35. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +3 -3
  36. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -1
  37. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +18 -9
  38. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  39. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  40. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +5 -4
  41. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +3 -3
  42. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  43. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +12 -4
  44. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -2
  45. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -1
  47. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +54 -5
  48. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  49. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +8 -0
  50. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +4 -4
  51. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +7 -7
  52. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
  53. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  54. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +12 -6
  55. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +4 -4
  56. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  57. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +16 -4
  58. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +3 -3
  59. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  60. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +3 -3
  61. package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
  62. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  63. package/dest/mem_pools/tx_pool_v2/index.js +1 -1
  64. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  65. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  66. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  67. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +24 -10
  68. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  69. package/dest/mem_pools/tx_pool_v2/interfaces.js +4 -1
  70. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +54 -15
  71. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  72. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +112 -20
  73. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +5 -2
  74. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  75. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +38 -46
  76. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +9 -4
  77. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  78. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +12 -5
  79. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +12 -5
  80. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  81. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +296 -153
  82. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  83. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  84. package/dest/msg_validators/attestation_validator/attestation_validator.js +20 -11
  85. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +4 -2
  86. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  87. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +2 -2
  88. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  89. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  90. package/dest/msg_validators/clock_tolerance.js +54 -3
  91. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +7 -4
  92. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  93. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  94. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +7 -4
  95. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  96. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  97. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +15 -8
  98. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  99. package/dest/msg_validators/proposal_validator/proposal_validator.js +67 -47
  100. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +2 -2
  101. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  102. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  103. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  104. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  105. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  106. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  107. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  108. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  109. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  110. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  111. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  112. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  113. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  114. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  115. package/dest/msg_validators/tx_validator/data_validator.js +35 -2
  116. package/dest/msg_validators/tx_validator/factory.d.ts +133 -6
  117. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  118. package/dest/msg_validators/tx_validator/factory.js +247 -60
  119. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  120. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  121. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  122. package/dest/msg_validators/tx_validator/gas_validator.d.ts +67 -3
  123. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  124. package/dest/msg_validators/tx_validator/gas_validator.js +112 -43
  125. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  126. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  127. package/dest/msg_validators/tx_validator/index.js +2 -0
  128. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  129. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  130. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  131. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  132. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  133. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  134. package/dest/msg_validators/tx_validator/phases_validator.d.ts +22 -2
  135. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  136. package/dest/msg_validators/tx_validator/phases_validator.js +72 -24
  137. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +2 -2
  138. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  139. package/dest/msg_validators/tx_validator/timestamp_validator.js +6 -6
  140. package/dest/services/data_store.d.ts +1 -1
  141. package/dest/services/data_store.d.ts.map +1 -1
  142. package/dest/services/data_store.js +5 -5
  143. package/dest/services/dummy_service.d.ts +8 -5
  144. package/dest/services/dummy_service.d.ts.map +1 -1
  145. package/dest/services/dummy_service.js +10 -5
  146. package/dest/services/encoding.d.ts +6 -2
  147. package/dest/services/encoding.d.ts.map +1 -1
  148. package/dest/services/encoding.js +16 -9
  149. package/dest/services/gossipsub/topic_score_params.d.ts +30 -7
  150. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  151. package/dest/services/gossipsub/topic_score_params.js +53 -14
  152. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  153. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  154. package/dest/services/libp2p/instrumentation.js +14 -0
  155. package/dest/services/libp2p/libp2p_service.d.ts +29 -36
  156. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  157. package/dest/services/libp2p/libp2p_service.js +236 -197
  158. package/dest/services/peer-manager/metrics.d.ts +3 -1
  159. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  160. package/dest/services/peer-manager/metrics.js +6 -0
  161. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  162. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  163. package/dest/services/peer-manager/peer_manager.js +39 -11
  164. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  165. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  166. package/dest/services/peer-manager/peer_scoring.js +32 -10
  167. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +12 -8
  168. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  169. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +83 -106
  170. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +4 -7
  171. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  172. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +11 -13
  173. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  174. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +31 -46
  175. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -11
  176. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  177. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +52 -15
  178. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
  179. package/dest/services/reqresp/config.d.ts +3 -3
  180. package/dest/services/reqresp/config.d.ts.map +1 -1
  181. package/dest/services/reqresp/interface.d.ts +14 -9
  182. package/dest/services/reqresp/interface.d.ts.map +1 -1
  183. package/dest/services/reqresp/interface.js +10 -11
  184. package/dest/services/reqresp/metrics.d.ts +1 -1
  185. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  186. package/dest/services/reqresp/metrics.js +0 -1
  187. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  188. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  189. package/dest/services/reqresp/protocols/index.js +0 -1
  190. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  191. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  192. package/dest/services/reqresp/protocols/tx.js +1 -3
  193. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  194. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  195. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  196. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  197. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  198. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  199. package/dest/services/reqresp/reqresp.d.ts +4 -2
  200. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  201. package/dest/services/reqresp/reqresp.js +30 -12
  202. package/dest/services/service.d.ts +9 -4
  203. package/dest/services/service.d.ts.map +1 -1
  204. package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -4
  205. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  206. package/dest/services/tx_collection/fast_tx_collection.js +65 -75
  207. package/dest/services/tx_collection/file_store_tx_collection.d.ts +1 -1
  208. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -1
  209. package/dest/services/tx_collection/file_store_tx_collection.js +4 -2
  210. package/dest/services/tx_collection/file_store_tx_source.d.ts +16 -6
  211. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
  212. package/dest/services/tx_collection/file_store_tx_source.js +50 -9
  213. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  214. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  215. package/dest/services/tx_collection/instrumentation.js +2 -1
  216. package/dest/services/tx_collection/proposal_tx_collector.d.ts +7 -7
  217. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  218. package/dest/services/tx_collection/proposal_tx_collector.js +5 -4
  219. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  220. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  221. package/dest/services/tx_collection/request_tracker.js +84 -0
  222. package/dest/services/tx_collection/slow_tx_collection.d.ts +2 -2
  223. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  224. package/dest/services/tx_collection/slow_tx_collection.js +10 -8
  225. package/dest/services/tx_collection/tx_collection.d.ts +5 -7
  226. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  227. package/dest/services/tx_collection/tx_collection_sink.d.ts +6 -5
  228. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  229. package/dest/services/tx_collection/tx_collection_sink.js +13 -22
  230. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  231. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  232. package/dest/services/tx_collection/tx_source.js +26 -7
  233. package/dest/services/tx_file_store/tx_file_store.js +1 -1
  234. package/dest/services/tx_provider.d.ts +3 -3
  235. package/dest/services/tx_provider.d.ts.map +1 -1
  236. package/dest/services/tx_provider.js +4 -4
  237. package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
  238. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  239. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  240. package/dest/test-helpers/mock-pubsub.d.ts +14 -6
  241. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  242. package/dest/test-helpers/mock-pubsub.js +43 -12
  243. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  244. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  245. package/dest/test-helpers/reqresp-nodes.js +3 -4
  246. package/dest/test-helpers/testbench-utils.d.ts +6 -3
  247. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  248. package/dest/test-helpers/testbench-utils.js +24 -4
  249. package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -2
  250. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  251. package/dest/testbench/p2p_client_testbench_worker.js +78 -26
  252. package/dest/testbench/worker_client_manager.d.ts +10 -1
  253. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  254. package/dest/testbench/worker_client_manager.js +55 -3
  255. package/dest/util.d.ts +3 -3
  256. package/dest/util.d.ts.map +1 -1
  257. package/package.json +14 -14
  258. package/src/client/factory.ts +55 -47
  259. package/src/client/interface.ts +20 -21
  260. package/src/client/p2p_client.ts +89 -135
  261. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +33 -14
  262. package/src/config.ts +139 -45
  263. package/src/errors/p2p-service.error.ts +11 -0
  264. package/src/errors/tx-pool.error.ts +12 -0
  265. package/src/index.ts +0 -1
  266. package/src/mem_pools/attestation_pool/attestation_pool.ts +17 -12
  267. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +6 -6
  268. package/src/mem_pools/index.ts +0 -3
  269. package/src/mem_pools/instrumentation.ts +17 -13
  270. package/src/mem_pools/tx_pool_v2/README.md +10 -2
  271. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +11 -0
  272. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +21 -8
  273. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +5 -4
  274. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +18 -4
  275. package/src/mem_pools/tx_pool_v2/eviction/index.ts +4 -0
  276. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +59 -4
  277. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +4 -4
  278. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +8 -8
  279. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +12 -9
  280. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +33 -6
  281. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +4 -3
  282. package/src/mem_pools/tx_pool_v2/index.ts +1 -1
  283. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  284. package/src/mem_pools/tx_pool_v2/interfaces.ts +24 -10
  285. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +160 -28
  286. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +43 -46
  287. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +28 -8
  288. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +330 -149
  289. package/src/msg_validators/attestation_validator/README.md +49 -0
  290. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -9
  291. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +4 -1
  292. package/src/msg_validators/clock_tolerance.ts +72 -3
  293. package/src/msg_validators/proposal_validator/README.md +123 -0
  294. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +17 -4
  295. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +23 -7
  296. package/src/msg_validators/proposal_validator/proposal_validator.ts +79 -49
  297. package/src/msg_validators/tx_validator/README.md +119 -0
  298. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -3
  299. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  300. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  301. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  302. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  303. package/src/msg_validators/tx_validator/data_validator.ts +42 -1
  304. package/src/msg_validators/tx_validator/factory.ts +394 -78
  305. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  306. package/src/msg_validators/tx_validator/gas_validator.ts +145 -33
  307. package/src/msg_validators/tx_validator/index.ts +2 -0
  308. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  309. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  310. package/src/msg_validators/tx_validator/phases_validator.ts +82 -27
  311. package/src/msg_validators/tx_validator/timestamp_validator.ts +7 -7
  312. package/src/services/data_store.ts +5 -13
  313. package/src/services/dummy_service.ts +13 -7
  314. package/src/services/encoding.ts +16 -8
  315. package/src/services/gossipsub/README.md +29 -14
  316. package/src/services/gossipsub/topic_score_params.ts +85 -17
  317. package/src/services/libp2p/instrumentation.ts +14 -0
  318. package/src/services/libp2p/libp2p_service.ts +251 -225
  319. package/src/services/peer-manager/metrics.ts +7 -0
  320. package/src/services/peer-manager/peer_manager.ts +45 -11
  321. package/src/services/peer-manager/peer_scoring.ts +27 -5
  322. package/src/services/reqresp/README.md +229 -0
  323. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  324. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +79 -112
  325. package/src/services/reqresp/batch-tx-requester/interface.ts +3 -6
  326. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +30 -71
  327. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
  328. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
  329. package/src/services/reqresp/config.ts +2 -2
  330. package/src/services/reqresp/interface.ts +21 -11
  331. package/src/services/reqresp/metrics.ts +0 -1
  332. package/src/services/reqresp/protocols/index.ts +0 -1
  333. package/src/services/reqresp/protocols/tx.ts +1 -3
  334. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  335. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  336. package/src/services/reqresp/reqresp.ts +40 -13
  337. package/src/services/service.ts +17 -3
  338. package/src/services/tx_collection/fast_tx_collection.ts +71 -76
  339. package/src/services/tx_collection/file_store_tx_collection.ts +7 -3
  340. package/src/services/tx_collection/file_store_tx_source.ts +65 -9
  341. package/src/services/tx_collection/instrumentation.ts +7 -1
  342. package/src/services/tx_collection/proposal_tx_collector.ts +9 -13
  343. package/src/services/tx_collection/request_tracker.ts +127 -0
  344. package/src/services/tx_collection/slow_tx_collection.ts +8 -9
  345. package/src/services/tx_collection/tx_collection.ts +5 -6
  346. package/src/services/tx_collection/tx_collection_sink.ts +15 -29
  347. package/src/services/tx_collection/tx_source.ts +28 -8
  348. package/src/services/tx_file_store/tx_file_store.ts +1 -1
  349. package/src/services/tx_provider.ts +2 -2
  350. package/src/test-helpers/make-test-p2p-clients.ts +1 -3
  351. package/src/test-helpers/mock-pubsub.ts +44 -11
  352. package/src/test-helpers/reqresp-nodes.ts +5 -8
  353. package/src/test-helpers/testbench-utils.ts +33 -6
  354. package/src/testbench/p2p_client_testbench_worker.ts +89 -29
  355. package/src/testbench/worker_client_manager.ts +68 -6
  356. package/src/util.ts +8 -2
  357. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  358. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  359. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  360. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  361. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  362. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  363. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  364. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  365. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  366. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  367. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  368. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  369. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  370. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  371. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
  372. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  373. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  374. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  375. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  376. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  377. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  378. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  379. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  380. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  381. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  382. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  383. package/dest/mem_pools/tx_pool/index.js +0 -2
  384. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  385. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  386. package/dest/mem_pools/tx_pool/priority.js +0 -15
  387. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  388. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  389. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  390. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  391. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  392. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  393. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  394. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  395. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  396. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  397. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  398. package/dest/services/reqresp/protocols/block.js +0 -32
  399. package/src/mem_pools/tx_pool/README.md +0 -270
  400. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  401. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  402. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  403. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  404. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  405. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  406. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  407. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  408. package/src/mem_pools/tx_pool/index.ts +0 -2
  409. package/src/mem_pools/tx_pool/priority.ts +0 -20
  410. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  411. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  412. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  413. package/src/services/reqresp/protocols/block.ts +0 -37
package/dest/util.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { SecretValue } from '@aztec/foundation/config';
2
2
  import type { Logger } from '@aztec/foundation/log';
3
3
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
- import type { DataStoreConfig } from '@aztec/kv-store/config';
4
+ import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
5
5
  import type { GossipSub } from '@chainsafe/libp2p-gossipsub';
6
6
  import type { Identify } from '@libp2p/identify';
7
7
  import type { PeerId } from '@libp2p/interface';
@@ -10,7 +10,7 @@ import type { Libp2p } from 'libp2p';
10
10
  import type { P2PConfig } from './config.js';
11
11
  export interface PubSubLibp2p extends Pick<Libp2p, 'status' | 'start' | 'stop' | 'peerId'> {
12
12
  services: {
13
- pubsub: Pick<GossipSub, 'addEventListener' | 'removeEventListener' | 'publish' | 'subscribe' | 'reportMessageValidationResult' | 'direct'> & {
13
+ pubsub: Pick<GossipSub, 'addEventListener' | 'removeEventListener' | 'publish' | 'subscribe' | 'reportMessageValidationResult' | 'direct' | 'getMeshPeers'> & {
14
14
  score: Pick<GossipSub['score'], 'score'>;
15
15
  };
16
16
  };
@@ -58,4 +58,4 @@ export declare function getPeerIdPrivateKey(config: {
58
58
  * @returns The peer ID.
59
59
  */
60
60
  export declare function createLibP2PPeerIdFromPrivateKey(privateKey: string): Promise<PeerId>;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBYyxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJcEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSXJDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUk3QyxNQUFNLFdBQVcsWUFBYSxTQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLE9BQU8sR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBQ3hGLFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJLENBQ1YsU0FBUyxFQUNULGtCQUFrQixHQUFHLHFCQUFxQixHQUFHLFNBQVMsR0FBRyxXQUFXLEdBQUcsK0JBQStCLEdBQUcsUUFBUSxDQUNsSCxHQUFHO1lBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7U0FBRSxDQUFDO0tBQ2xELENBQUM7Q0FDSDtBQUVELE1BQU0sTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzlCLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDbkIsTUFBTSxFQUFFLFNBQVMsQ0FBQztJQUNsQixVQUFVLEVBQUU7UUFDVixpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztLQUN0QyxDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7NkNBTzZDO0FBQzdDLHdCQUFnQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssR0FBRyxLQUFLLEdBQUcsTUFBTSxDQU9qRztBQUVEOztHQUVHO0FBQ0gsd0JBQXNCLFdBQVcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBUW5EO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUd6RDtBQUVELHdCQUFzQix5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQVc5RjtBQWNELHdCQUFzQiwyQkFBMkIsQ0FDL0MsT0FBTyxFQUFFLFNBQVMsR0FBRyxlQUFlLEdBQ25DLE9BQU8sQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLENBbUJ0QztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLG1CQUFtQixDQUN2QyxNQUFNLEVBQUU7SUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUFDLG9CQUFvQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFBO0NBQUUsRUFDekcsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0EyRDlCO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixnQ0FBZ0MsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FTMUYifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBYyxNQUFNLG1CQUFtQixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJcEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSXJDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUk3QyxNQUFNLFdBQVcsWUFBYSxTQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLE9BQU8sR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBQ3hGLFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJLENBQ1YsU0FBUyxFQUNQLGtCQUFrQixHQUNsQixxQkFBcUIsR0FDckIsU0FBUyxHQUNULFdBQVcsR0FDWCwrQkFBK0IsR0FDL0IsUUFBUSxHQUNSLGNBQWMsQ0FDakIsR0FBRztZQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1NBQUUsQ0FBQztLQUNsRCxDQUFDO0NBQ0g7QUFFRCxNQUFNLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztJQUM5QixRQUFRLEVBQUUsUUFBUSxDQUFDO0lBQ25CLE1BQU0sRUFBRSxTQUFTLENBQUM7SUFDbEIsVUFBVSxFQUFFO1FBQ1YsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7S0FDdEMsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVIOzs7Ozs7OzZDQU82QztBQUM3Qyx3QkFBZ0Isa0JBQWtCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEdBQUcsS0FBSyxHQUFHLE1BQU0sQ0FPakc7QUFFRDs7R0FFRztBQUNILHdCQUFzQixXQUFXLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQVFuRDtBQUVELHdCQUFnQixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FHekQ7QUFFRCx3QkFBc0IseUJBQXlCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FXOUY7QUFjRCx3QkFBc0IsMkJBQTJCLENBQy9DLE9BQU8sRUFBRSxTQUFTLEdBQUcsZUFBZSxHQUNuQyxPQUFPLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxDQW1CdEM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixtQkFBbUIsQ0FDdkMsTUFBTSxFQUFFO0lBQUUsZ0JBQWdCLENBQUMsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFBQyxvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLEVBQ3pHLEtBQUssRUFBRSxpQkFBaUIsRUFDeEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBMkQ5QjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsZ0NBQWdDLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBUzFGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACxF,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CACV,SAAS,EACT,kBAAkB,GAAG,qBAAqB,GAAG,SAAS,GAAG,WAAW,GAAG,+BAA+B,GAAG,QAAQ,CAClH,GAAG;YAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;KAClD,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE;QACV,iBAAiB,EAAE,iBAAiB,CAAC;KACtC,CAAC;CACH,CAAC,CAAC;AAEH;;;;;;;6CAO6C;AAC7C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAOjG;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAQnD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW9F;AAcD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,SAAS,GAAG,eAAe,GACnC,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC,CAmBtC;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE;IAAE,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EACzG,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CA2D9B;AAED;;;;GAIG;AACH,wBAAsB,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAIpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IACxF,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CACV,SAAS,EACP,kBAAkB,GAClB,qBAAqB,GACrB,SAAS,GACT,WAAW,GACX,+BAA+B,GAC/B,QAAQ,GACR,cAAc,CACjB,GAAG;YAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;KAClD,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE;QACV,iBAAiB,EAAE,iBAAiB,CAAC;KACtC,CAAC;CACH,CAAC,CAAC;AAEH;;;;;;;6CAO6C;AAC7C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAOjG;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAQnD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW9F;AAcD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,SAAS,GAAG,eAAe,GACnC,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC,CAmBtC;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE;IAAE,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EACzG,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CA2D9B;AAED;;;;GAIG;AACH,wBAAsB,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/p2p",
3
- "version": "0.0.1-commit.1bb068fb5",
3
+ "version": "0.0.1-commit.1dcfe2301",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -67,17 +67,17 @@
67
67
  ]
68
68
  },
69
69
  "dependencies": {
70
- "@aztec/constants": "0.0.1-commit.1bb068fb5",
71
- "@aztec/epoch-cache": "0.0.1-commit.1bb068fb5",
72
- "@aztec/ethereum": "0.0.1-commit.1bb068fb5",
73
- "@aztec/foundation": "0.0.1-commit.1bb068fb5",
74
- "@aztec/kv-store": "0.0.1-commit.1bb068fb5",
75
- "@aztec/noir-contracts.js": "0.0.1-commit.1bb068fb5",
76
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.1bb068fb5",
77
- "@aztec/protocol-contracts": "0.0.1-commit.1bb068fb5",
78
- "@aztec/simulator": "0.0.1-commit.1bb068fb5",
79
- "@aztec/stdlib": "0.0.1-commit.1bb068fb5",
80
- "@aztec/telemetry-client": "0.0.1-commit.1bb068fb5",
70
+ "@aztec/constants": "0.0.1-commit.1dcfe2301",
71
+ "@aztec/epoch-cache": "0.0.1-commit.1dcfe2301",
72
+ "@aztec/ethereum": "0.0.1-commit.1dcfe2301",
73
+ "@aztec/foundation": "0.0.1-commit.1dcfe2301",
74
+ "@aztec/kv-store": "0.0.1-commit.1dcfe2301",
75
+ "@aztec/noir-contracts.js": "0.0.1-commit.1dcfe2301",
76
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.1dcfe2301",
77
+ "@aztec/protocol-contracts": "0.0.1-commit.1dcfe2301",
78
+ "@aztec/simulator": "0.0.1-commit.1dcfe2301",
79
+ "@aztec/stdlib": "0.0.1-commit.1dcfe2301",
80
+ "@aztec/telemetry-client": "0.0.1-commit.1dcfe2301",
81
81
  "@chainsafe/libp2p-gossipsub": "13.0.0",
82
82
  "@chainsafe/libp2p-noise": "^15.0.0",
83
83
  "@chainsafe/libp2p-yamux": "^6.0.2",
@@ -104,8 +104,8 @@
104
104
  "xxhash-wasm": "^1.1.0"
105
105
  },
106
106
  "devDependencies": {
107
- "@aztec/archiver": "0.0.1-commit.1bb068fb5",
108
- "@aztec/world-state": "0.0.1-commit.1bb068fb5",
107
+ "@aztec/archiver": "0.0.1-commit.1dcfe2301",
108
+ "@aztec/world-state": "0.0.1-commit.1dcfe2301",
109
109
  "@jest/globals": "^30.0.0",
110
110
  "@types/jest": "^30.0.0",
111
111
  "@types/node": "^22.15.17",
@@ -1,15 +1,14 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
3
  import { type Logger, createLogger } from '@aztec/foundation/log';
3
4
  import { DateProvider } from '@aztec/foundation/timer';
4
5
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
5
- import type { DataStoreConfig } from '@aztec/kv-store/config';
6
6
  import { AztecLMDBStoreV2, createStore } from '@aztec/kv-store/lmdb-v2';
7
- import type { BlockHash, L2BlockSource } from '@aztec/stdlib/block';
7
+ import type { L2BlockSource } from '@aztec/stdlib/block';
8
8
  import type { ChainConfig } from '@aztec/stdlib/config';
9
9
  import type { ContractDataSource } from '@aztec/stdlib/contract';
10
- import type { ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
11
- import { P2PClientType } from '@aztec/stdlib/p2p';
12
- import { MerkleTreeId } from '@aztec/stdlib/trees';
10
+ import type { AztecNode, ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
11
+ import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
13
12
  import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
14
13
 
15
14
  import { P2PClient } from '../client/p2p_client.js';
@@ -17,26 +16,29 @@ import type { P2PConfig } from '../config.js';
17
16
  import { AttestationPool, type AttestationPoolApi } from '../mem_pools/attestation_pool/attestation_pool.js';
18
17
  import type { MemPools } from '../mem_pools/interface.js';
19
18
  import type { TxPoolV2 } from '../mem_pools/tx_pool_v2/interfaces.js';
20
- import type { TxMetaData } from '../mem_pools/tx_pool_v2/tx_metadata.js';
21
19
  import { AztecKVTxPoolV2 } from '../mem_pools/tx_pool_v2/tx_pool_v2.js';
22
- import { AggregateTxValidator } from '../msg_validators/tx_validator/aggregate_tx_validator.js';
23
- import { BlockHeaderTxValidator } from '../msg_validators/tx_validator/block_header_validator.js';
24
- import { DoubleSpendTxValidator } from '../msg_validators/tx_validator/double_spend_validator.js';
20
+ import {
21
+ createCheckAllowedSetupCalls,
22
+ createTxValidatorForReqResponseReceivedTxs,
23
+ createTxValidatorForTransactionsEnteringPendingTxPool,
24
+ getDefaultAllowedSetupFunctions,
25
+ } from '../msg_validators/index.js';
25
26
  import { DummyP2PService } from '../services/dummy_service.js';
26
27
  import { LibP2PService } from '../services/index.js';
27
28
  import { createFileStoreTxSources } from '../services/tx_collection/file_store_tx_source.js';
28
29
  import { TxCollection } from '../services/tx_collection/tx_collection.js';
29
- import { type TxSource, createNodeRpcTxSources } from '../services/tx_collection/tx_source.js';
30
+ import { NodeRpcTxSource, type TxSource, createNodeRpcTxSources } from '../services/tx_collection/tx_source.js';
30
31
  import { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
31
32
  import { configureP2PClientAddresses, createLibP2PPeerIdFromPrivateKey, getPeerIdPrivateKey } from '../util.js';
32
33
 
33
- export type P2PClientDeps<T extends P2PClientType> = {
34
+ export type P2PClientDeps = {
34
35
  txPool?: TxPoolV2;
35
36
  store?: AztecAsyncKVStore;
36
37
  attestationPool?: AttestationPoolApi;
37
38
  logger?: Logger;
38
39
  txCollectionNodeSources?: TxSource[];
39
- p2pServiceFactory?: (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService<T>>;
40
+ rpcTxProviders?: AztecNode[];
41
+ p2pServiceFactory?: (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService>;
40
42
  };
41
43
 
42
44
  export const P2P_STORE_NAME = 'p2p';
@@ -44,8 +46,7 @@ export const P2P_ARCHIVE_STORE_NAME = 'p2p-archive';
44
46
  export const P2P_PEER_STORE_NAME = 'p2p-peers';
45
47
  export const P2P_ATTESTATION_STORE_NAME = 'p2p-attestation';
46
48
 
47
- export async function createP2PClient<T extends P2PClientType>(
48
- clientType: T,
49
+ export async function createP2PClient(
49
50
  inputConfig: P2PConfig & DataStoreConfig & ChainConfig,
50
51
  archiver: L2BlockSource & ContractDataSource,
51
52
  proofVerifier: ClientProtocolCircuitVerifier,
@@ -54,7 +55,7 @@ export async function createP2PClient<T extends P2PClientType>(
54
55
  packageVersion: string,
55
56
  dateProvider: DateProvider = new DateProvider(),
56
57
  telemetry: TelemetryClient = getTelemetryClient(),
57
- deps: P2PClientDeps<T> = {},
58
+ deps: P2PClientDeps = {},
58
59
  ) {
59
60
  const config = await configureP2PClientAddresses({
60
61
  ...inputConfig,
@@ -79,29 +80,30 @@ export async function createP2PClient<T extends P2PClientType>(
79
80
  const rollupAddress = inputConfig.l1Contracts.rollupAddress.toString().toLowerCase().replace(/^0x/, '');
80
81
  const txFileStoreBasePath = `aztec-${inputConfig.l1ChainId}-${inputConfig.rollupVersion}-0x${rollupAddress}`;
81
82
 
82
- /** Validator factory for pool re-validation (double-spend + block header only). */
83
- const createPoolTxValidator = async () => {
84
- await worldStateSynchronizer.syncImmediate();
85
- return new AggregateTxValidator<TxMetaData>(
86
- new DoubleSpendTxValidator<TxMetaData>(
87
- {
88
- nullifiersExist: async (nullifiers: Buffer[]) => {
89
- const merkleTree = worldStateSynchronizer.getCommitted();
90
- const indices = await merkleTree.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, nullifiers);
91
- return indices.map(index => index !== undefined);
92
- },
93
- },
94
- bindings,
95
- ),
96
- new BlockHeaderTxValidator<TxMetaData>(
97
- {
98
- getArchiveIndices: (archives: BlockHash[]) => {
99
- const merkleTree = worldStateSynchronizer.getCommitted();
100
- return merkleTree.findLeafIndices(MerkleTreeId.ARCHIVE, archives);
101
- },
102
- },
103
- bindings,
104
- ),
83
+ const allowedInSetup = [
84
+ ...(await getDefaultAllowedSetupFunctions()),
85
+ ...(inputConfig.txPublicSetupAllowListExtend ?? []),
86
+ ];
87
+ const checkAllowedSetupCalls = createCheckAllowedSetupCalls(
88
+ archiver,
89
+ allowedInSetup,
90
+ () => epochCache.getEpochAndSlotInNextL1Slot().ts,
91
+ );
92
+
93
+ const createTxValidator = async () => {
94
+ // We accept transactions if they are not expired by the next slot and block number (checked based on the ExpirationTimestamp field)
95
+ const currentBlockNumber = await archiver.getBlockNumber();
96
+ const { ts: nextSlotTimestamp } = epochCache.getEpochAndSlotInNextL1Slot();
97
+ const l1Constants = await archiver.getL1Constants();
98
+ return createTxValidatorForTransactionsEnteringPendingTxPool(
99
+ worldStateSynchronizer,
100
+ nextSlotTimestamp,
101
+ BlockNumber(currentBlockNumber + 1),
102
+ {
103
+ rollupManaLimit: l1Constants.rollupManaLimit,
104
+ maxBlockL2Gas: config.validateMaxL2BlockGas,
105
+ maxBlockDAGas: config.validateMaxDABlockGas,
106
+ },
105
107
  );
106
108
  };
107
109
 
@@ -113,13 +115,16 @@ export async function createP2PClient<T extends P2PClientType>(
113
115
  {
114
116
  l2BlockSource: archiver,
115
117
  worldStateSynchronizer,
116
- createTxValidator: createPoolTxValidator,
118
+ checkAllowedSetupCalls,
119
+ createTxValidator,
117
120
  },
118
121
  telemetry,
119
122
  {
120
123
  maxPendingTxCount: config.maxPendingTxCount,
121
124
  archivedTxLimit: config.archivedTxLimit,
122
125
  minTxPoolAgeMs: config.minTxPoolAgeMs,
126
+ dropTransactionsProbability: config.dropTransactionsProbability,
127
+ priceBumpPercentage: config.priceBumpPercentage,
123
128
  },
124
129
  dateProvider,
125
130
  );
@@ -129,9 +134,8 @@ export async function createP2PClient<T extends P2PClientType>(
129
134
  attestationPool: deps.attestationPool ?? new AttestationPool(attestationStore, telemetry),
130
135
  };
131
136
 
132
- const p2pService = await createP2PService<T>(
137
+ const p2pService = await createP2PService(
133
138
  config,
134
- clientType,
135
139
  archiver,
136
140
  proofVerifier,
137
141
  worldStateSynchronizer,
@@ -145,8 +149,12 @@ export async function createP2PClient<T extends P2PClientType>(
145
149
  telemetry,
146
150
  );
147
151
 
152
+ const txValidatorForTxCollection = createTxValidatorForReqResponseReceivedTxs(proofVerifier, config);
148
153
  const nodeSources = [
149
- ...createNodeRpcTxSources(config.txCollectionNodeRpcUrls, config),
154
+ ...createNodeRpcTxSources(config.txCollectionNodeRpcUrls, txValidatorForTxCollection, config),
155
+ ...(deps.rpcTxProviders ?? []).map(
156
+ (node, i) => new NodeRpcTxSource(node, txValidatorForTxCollection, `node-rpc-provider-${i}`),
157
+ ),
150
158
  ...(deps.txCollectionNodeSources ?? []),
151
159
  ];
152
160
  if (nodeSources.length > 0) {
@@ -158,7 +166,9 @@ export async function createP2PClient<T extends P2PClientType>(
158
166
  const fileStoreSources = await createFileStoreTxSources(
159
167
  config.txCollectionFileStoreUrls,
160
168
  txFileStoreBasePath,
169
+ txValidatorForTxCollection,
161
170
  logger.createChild('file-store-tx-source'),
171
+ telemetry,
162
172
  );
163
173
  if (fileStoreSources.length > 0) {
164
174
  logger.info(`Using ${fileStoreSources.length} file store sources for tx collection.`, {
@@ -187,7 +197,6 @@ export async function createP2PClient<T extends P2PClientType>(
187
197
  );
188
198
 
189
199
  return new P2PClient(
190
- clientType,
191
200
  store,
192
201
  archiver,
193
202
  mempools,
@@ -201,9 +210,8 @@ export async function createP2PClient<T extends P2PClientType>(
201
210
  );
202
211
  }
203
212
 
204
- async function createP2PService<T extends P2PClientType>(
213
+ async function createP2PService(
205
214
  config: P2PConfig & DataStoreConfig,
206
- clientType: T,
207
215
  archiver: L2BlockSource & ContractDataSource,
208
216
  proofVerifier: ClientProtocolCircuitVerifier,
209
217
  worldStateSynchronizer: WorldStateSynchronizer,
@@ -211,7 +219,7 @@ async function createP2PService<T extends P2PClientType>(
211
219
  store: AztecAsyncKVStore,
212
220
  peerStore: AztecLMDBStoreV2,
213
221
  mempools: MemPools,
214
- p2pServiceFactory: P2PClientDeps<T>['p2pServiceFactory'],
222
+ p2pServiceFactory: P2PClientDeps['p2pServiceFactory'],
215
223
  packageVersion: string,
216
224
  logger: Logger,
217
225
  telemetry: TelemetryClient,
@@ -227,7 +235,7 @@ async function createP2PService<T extends P2PClientType>(
227
235
  const peerIdPrivateKey = await getPeerIdPrivateKey(config, store, logger);
228
236
  const peerId = await createLibP2PPeerIdFromPrivateKey(peerIdPrivateKey.getValue());
229
237
 
230
- const p2pService = await (p2pServiceFactory ?? LibP2PService.new<T>)(clientType, config, peerId, {
238
+ const p2pService = await (p2pServiceFactory ?? LibP2PService.new)(config, peerId, {
231
239
  packageVersion,
232
240
  mempools,
233
241
  l2BlockSource: archiver,
@@ -1,7 +1,7 @@
1
1
  import type { SlotNumber } from '@aztec/foundation/branded-types';
2
2
  import type { EthAddress, L2BlockId } from '@aztec/stdlib/block';
3
- import type { P2PApiFull } from '@aztec/stdlib/interfaces/server';
4
- import type { BlockProposal, CheckpointAttestation, CheckpointProposal, P2PClientType } from '@aztec/stdlib/p2p';
3
+ import type { ITxProvider, P2PClient } from '@aztec/stdlib/interfaces/server';
4
+ import type { BlockProposal, CheckpointAttestation, CheckpointProposal, TopicType } from '@aztec/stdlib/p2p';
5
5
  import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
6
6
 
7
7
  import type { PeerId } from '@libp2p/interface';
@@ -48,7 +48,7 @@ export interface P2PSyncState {
48
48
  /**
49
49
  * Interface of a P2P client.
50
50
  **/
51
- export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> & {
51
+ export type P2P = P2PClient & {
52
52
  /**
53
53
  * Broadcasts a block proposal to other peers.
54
54
  *
@@ -82,7 +82,15 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
82
82
  *
83
83
  * @param handler - A function taking a received checkpoint proposal and producing attestations
84
84
  */
85
- registerCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
85
+ registerValidatorCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
86
+
87
+ /**
88
+ * Registers a callback that runs for ALL nodes (not just validators) when a checkpoint proposal is received.
89
+ * Used to set the proposed checkpoint number on the archiver so the sequencer can build on top of it.
90
+ *
91
+ * @param handler - A function taking a received checkpoint proposal
92
+ */
93
+ registerAllNodesCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
86
94
 
87
95
  /**
88
96
  * Registers a callback invoked when a duplicate proposal is detected (equivocation).
@@ -107,13 +115,6 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
107
115
  **/
108
116
  sendTx(tx: Tx): Promise<void>;
109
117
 
110
- /**
111
- * Adds transactions to the pool. Does not send to peers or validate the tx.
112
- * @param txs - The transactions.
113
- * @returns The number of txs added to the pool. Note if the transaction already exists, it will not be added again.
114
- **/
115
- addTxsToPool(txs: Tx[]): Promise<number>;
116
-
117
118
  /**
118
119
  * Handles failed transaction execution by removing txs from the pool.
119
120
  * @param txHashes - Hashes of the transactions that failed execution.
@@ -141,14 +142,6 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
141
142
  */
142
143
  hasTxsInPool(txHashes: TxHash[]): Promise<boolean[]>;
143
144
 
144
- /**
145
- * Returns transactions in the transaction pool by hash, requesting from the network if not found.
146
- * @param txHashes - Hashes of tx to return.
147
- * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
148
- * @returns An array of tx or undefined.
149
- */
150
- getTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId | undefined): Promise<(Tx | undefined)[]>;
151
-
152
145
  /**
153
146
  * Returns an archived transaction from the transaction pool by its hash.
154
147
  * @param txHash - Hash of tx to return.
@@ -220,10 +213,13 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
220
213
  /** Identifies a p2p client. */
221
214
  isP2PClient(): true;
222
215
 
216
+ /** Returns the tx provider used for fetching transactions. */
217
+ getTxProvider(): ITxProvider;
218
+
223
219
  updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
224
220
 
225
- /** Validates a set of txs. */
226
- validate(txs: Tx[]): Promise<void>;
221
+ /** Validates a set of txs received in a block proposal. */
222
+ validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
227
223
 
228
224
  /** Clears the db. */
229
225
  clear(): Promise<void>;
@@ -241,4 +237,7 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
241
237
 
242
238
  /** If node running this P2P stack is validator, passes in validator address to P2P layer */
243
239
  registerThisValidatorAddresses(address: EthAddress[]): void;
240
+
241
+ /** Returns the number of peers in the GossipSub mesh for a given topic type. */
242
+ getGossipMeshPeerCount(topicType: TopicType): Promise<number>;
244
243
  };