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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +4 -3
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +4 -4
  4. package/dest/client/factory.d.ts +2 -2
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +8 -8
  7. package/dest/client/index.d.ts +1 -1
  8. package/dest/client/interface.d.ts +18 -3
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +16 -37
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +464 -126
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +305 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  19. package/dest/config.d.ts +69 -60
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +23 -14
  22. package/dest/enr/generate-enr.d.ts +1 -1
  23. package/dest/enr/index.d.ts +1 -1
  24. package/dest/errors/attestation-pool.error.d.ts +7 -0
  25. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  26. package/dest/errors/attestation-pool.error.js +12 -0
  27. package/dest/errors/reqresp.error.d.ts +1 -1
  28. package/dest/errors/reqresp.error.d.ts.map +1 -1
  29. package/dest/index.d.ts +1 -1
  30. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +77 -36
  31. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +241 -266
  35. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  36. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +24 -14
  37. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  38. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +123 -95
  39. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +18 -12
  40. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  41. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +91 -108
  42. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  43. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  44. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  45. package/dest/mem_pools/index.d.ts +1 -1
  46. package/dest/mem_pools/instrumentation.d.ts +9 -1
  47. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  48. package/dest/mem_pools/instrumentation.js +37 -10
  49. package/dest/mem_pools/interface.d.ts +3 -4
  50. package/dest/mem_pools/interface.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +33 -58
  52. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  54. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  55. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  57. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  58. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  60. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  61. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  63. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  64. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  66. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  67. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  69. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  70. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  72. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  73. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  75. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  76. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  77. package/dest/mem_pools/tx_pool/index.js +0 -1
  78. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  79. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  80. package/dest/mem_pools/tx_pool/priority.js +6 -1
  81. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  82. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  83. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  84. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  85. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -24
  86. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +7 -6
  87. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  88. package/dest/msg_validators/attestation_validator/attestation_validator.js +57 -24
  89. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  90. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  91. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +76 -0
  92. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  93. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  94. package/dest/msg_validators/attestation_validator/index.js +1 -0
  95. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  96. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  97. package/dest/msg_validators/clock_tolerance.js +37 -0
  98. package/dest/msg_validators/index.d.ts +2 -2
  99. package/dest/msg_validators/index.d.ts.map +1 -1
  100. package/dest/msg_validators/index.js +1 -1
  101. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  102. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  103. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  104. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  105. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  106. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  107. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  108. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  109. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  110. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  111. package/dest/msg_validators/proposal_validator/index.js +3 -0
  112. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  113. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  114. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  115. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  116. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  117. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  118. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  119. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  120. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  121. package/dest/msg_validators/tx_validator/archive_cache.d.ts +2 -2
  122. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  123. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +4 -3
  124. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  126. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  127. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  129. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +3 -2
  130. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/tx_validator/double_spend_validator.js +3 -2
  132. package/dest/msg_validators/tx_validator/factory.d.ts +10 -4
  133. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  134. package/dest/msg_validators/tx_validator/factory.js +22 -12
  135. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  136. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  137. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  138. package/dest/msg_validators/tx_validator/gas_validator.d.ts +3 -2
  139. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/gas_validator.js +11 -16
  141. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  142. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/index.js +1 -0
  144. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  145. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/metadata_validator.js +2 -2
  147. package/dest/msg_validators/tx_validator/phases_validator.d.ts +3 -2
  148. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  149. package/dest/msg_validators/tx_validator/phases_validator.js +6 -4
  150. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  151. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  152. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  153. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  154. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +5 -3
  156. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/timestamp_validator.js +2 -2
  158. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  159. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  161. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  162. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  163. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  164. package/dest/services/data_store.d.ts +1 -1
  165. package/dest/services/data_store.d.ts.map +1 -1
  166. package/dest/services/discv5/discV5_service.d.ts +1 -1
  167. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  168. package/dest/services/discv5/discV5_service.js +1 -1
  169. package/dest/services/dummy_service.d.ts +18 -2
  170. package/dest/services/dummy_service.d.ts.map +1 -1
  171. package/dest/services/dummy_service.js +42 -0
  172. package/dest/services/encoding.d.ts +1 -1
  173. package/dest/services/encoding.d.ts.map +1 -1
  174. package/dest/services/encoding.js +7 -6
  175. package/dest/services/gossipsub/scoring.d.ts +1 -1
  176. package/dest/services/index.d.ts +1 -1
  177. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  178. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  179. package/dest/services/libp2p/instrumentation.js +36 -71
  180. package/dest/services/libp2p/libp2p_service.d.ts +48 -81
  181. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  182. package/dest/services/libp2p/libp2p_service.js +926 -193
  183. package/dest/services/peer-manager/interface.d.ts +1 -1
  184. package/dest/services/peer-manager/metrics.d.ts +9 -2
  185. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  186. package/dest/services/peer-manager/metrics.js +39 -16
  187. package/dest/services/peer-manager/peer_manager.d.ts +2 -33
  188. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  189. package/dest/services/peer-manager/peer_manager.js +6 -12
  190. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  191. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  192. package/dest/services/peer-manager/peer_scoring.js +43 -2
  193. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +47 -0
  194. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  195. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +566 -0
  196. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  197. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  198. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  199. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  200. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  201. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  202. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +37 -0
  203. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  204. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +151 -0
  205. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +54 -0
  206. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  207. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +139 -0
  208. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  209. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  210. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  211. package/dest/services/reqresp/config.d.ts +1 -1
  212. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  213. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  214. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  215. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  216. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  217. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  218. package/dest/services/reqresp/constants.d.ts +12 -0
  219. package/dest/services/reqresp/constants.d.ts.map +1 -0
  220. package/dest/services/reqresp/constants.js +7 -0
  221. package/dest/services/reqresp/index.d.ts +1 -1
  222. package/dest/services/reqresp/interface.d.ts +4 -2
  223. package/dest/services/reqresp/interface.d.ts.map +1 -1
  224. package/dest/services/reqresp/interface.js +1 -1
  225. package/dest/services/reqresp/metrics.d.ts +6 -5
  226. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  227. package/dest/services/reqresp/metrics.js +17 -21
  228. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  229. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  230. package/dest/services/reqresp/protocols/auth.js +2 -2
  231. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  232. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  233. package/dest/services/reqresp/protocols/block.js +3 -2
  234. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  235. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  236. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  237. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  238. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  239. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +14 -1
  240. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +17 -7
  241. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  242. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +34 -4
  243. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  244. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  245. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  246. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  247. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  248. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  249. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  250. package/dest/services/reqresp/protocols/status.js +7 -3
  251. package/dest/services/reqresp/protocols/tx.d.ts +2 -3
  252. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  253. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  254. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  255. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  256. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  257. package/dest/services/reqresp/reqresp.d.ts +6 -41
  258. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  259. package/dest/services/reqresp/reqresp.js +460 -46
  260. package/dest/services/reqresp/status.d.ts +2 -2
  261. package/dest/services/reqresp/status.d.ts.map +1 -1
  262. package/dest/services/service.d.ts +19 -3
  263. package/dest/services/service.d.ts.map +1 -1
  264. package/dest/services/tx_collection/config.d.ts +4 -1
  265. package/dest/services/tx_collection/config.d.ts.map +1 -1
  266. package/dest/services/tx_collection/config.js +10 -2
  267. package/dest/services/tx_collection/fast_tx_collection.d.ts +9 -12
  268. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  269. package/dest/services/tx_collection/fast_tx_collection.js +16 -5
  270. package/dest/services/tx_collection/index.d.ts +2 -1
  271. package/dest/services/tx_collection/index.d.ts.map +1 -1
  272. package/dest/services/tx_collection/index.js +1 -0
  273. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  274. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  275. package/dest/services/tx_collection/instrumentation.js +10 -13
  276. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  277. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  278. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  279. package/dest/services/tx_collection/slow_tx_collection.d.ts +4 -5
  280. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  281. package/dest/services/tx_collection/slow_tx_collection.js +2 -1
  282. package/dest/services/tx_collection/tx_collection.d.ts +10 -10
  283. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  284. package/dest/services/tx_collection/tx_collection.js +5 -5
  285. package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
  286. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  287. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  288. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  289. package/dest/services/tx_provider.d.ts +4 -2
  290. package/dest/services/tx_provider.d.ts.map +1 -1
  291. package/dest/services/tx_provider.js +11 -2
  292. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  293. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  294. package/dest/services/tx_provider_instrumentation.js +14 -14
  295. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  296. package/dest/test-helpers/get-ports.d.ts +1 -1
  297. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  298. package/dest/test-helpers/index.d.ts +3 -1
  299. package/dest/test-helpers/index.d.ts.map +1 -1
  300. package/dest/test-helpers/index.js +2 -0
  301. package/dest/test-helpers/make-enrs.d.ts +1 -1
  302. package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
  303. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  304. package/dest/test-helpers/mock-pubsub.d.ts +4 -4
  305. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  306. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  307. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  308. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  309. package/dest/test-helpers/reqresp-nodes.d.ts +2 -2
  310. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  311. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  312. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  313. package/dest/test-helpers/test_tx_provider.js +41 -0
  314. package/dest/test-helpers/testbench-utils.d.ts +156 -0
  315. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  316. package/dest/test-helpers/testbench-utils.js +296 -0
  317. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  318. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  319. package/dest/testbench/p2p_client_testbench_worker.js +218 -120
  320. package/dest/testbench/parse_log_file.d.ts +1 -1
  321. package/dest/testbench/testbench.d.ts +1 -1
  322. package/dest/testbench/worker_client_manager.d.ts +51 -6
  323. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  324. package/dest/testbench/worker_client_manager.js +226 -39
  325. package/dest/types/index.d.ts +1 -1
  326. package/dest/util.d.ts +2 -1
  327. package/dest/util.d.ts.map +1 -1
  328. package/dest/util.js +11 -2
  329. package/dest/versioning.d.ts +1 -1
  330. package/package.json +19 -18
  331. package/src/bootstrap/bootstrap.ts +7 -4
  332. package/src/client/factory.ts +11 -20
  333. package/src/client/interface.ts +20 -2
  334. package/src/client/p2p_client.ts +108 -155
  335. package/src/client/test/tx_proposal_collector/README.md +227 -0
  336. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +336 -0
  337. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  338. package/src/config.ts +36 -20
  339. package/src/errors/attestation-pool.error.ts +13 -0
  340. package/src/mem_pools/attestation_pool/attestation_pool.ts +86 -35
  341. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +243 -278
  342. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +175 -111
  343. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +147 -136
  344. package/src/mem_pools/attestation_pool/mocks.ts +21 -15
  345. package/src/mem_pools/instrumentation.ts +48 -10
  346. package/src/mem_pools/interface.ts +2 -4
  347. package/src/mem_pools/tx_pool/README.md +270 -0
  348. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +367 -371
  349. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  350. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  351. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  352. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  353. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  354. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  355. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  356. package/src/mem_pools/tx_pool/index.ts +0 -1
  357. package/src/mem_pools/tx_pool/priority.ts +8 -1
  358. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  359. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +23 -17
  360. package/src/msg_validators/attestation_validator/attestation_validator.ts +45 -32
  361. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +94 -0
  362. package/src/msg_validators/attestation_validator/index.ts +1 -0
  363. package/src/msg_validators/clock_tolerance.ts +51 -0
  364. package/src/msg_validators/index.ts +1 -1
  365. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  366. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  367. package/src/msg_validators/proposal_validator/index.ts +3 -0
  368. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  369. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  370. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  371. package/src/msg_validators/tx_validator/block_header_validator.ts +8 -5
  372. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  373. package/src/msg_validators/tx_validator/double_spend_validator.ts +4 -3
  374. package/src/msg_validators/tx_validator/factory.ts +67 -25
  375. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  376. package/src/msg_validators/tx_validator/gas_validator.ts +17 -28
  377. package/src/msg_validators/tx_validator/index.ts +1 -0
  378. package/src/msg_validators/tx_validator/metadata_validator.ts +19 -8
  379. package/src/msg_validators/tx_validator/phases_validator.ts +8 -4
  380. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  381. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  382. package/src/msg_validators/tx_validator/timestamp_validator.ts +11 -5
  383. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  384. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  385. package/src/services/discv5/discV5_service.ts +1 -1
  386. package/src/services/dummy_service.ts +51 -0
  387. package/src/services/encoding.ts +6 -5
  388. package/src/services/libp2p/instrumentation.ts +39 -71
  389. package/src/services/libp2p/libp2p_service.ts +628 -194
  390. package/src/services/peer-manager/metrics.ts +44 -16
  391. package/src/services/peer-manager/peer_manager.ts +7 -4
  392. package/src/services/peer-manager/peer_scoring.ts +45 -3
  393. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  394. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +706 -0
  395. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  396. package/src/services/reqresp/batch-tx-requester/interface.ts +57 -0
  397. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +209 -0
  398. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +205 -0
  399. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  400. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  401. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  402. package/src/services/reqresp/constants.ts +14 -0
  403. package/src/services/reqresp/interface.ts +4 -1
  404. package/src/services/reqresp/metrics.ts +36 -27
  405. package/src/services/reqresp/protocols/auth.ts +2 -2
  406. package/src/services/reqresp/protocols/block.ts +3 -2
  407. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  408. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +16 -2
  409. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +47 -5
  410. package/src/services/reqresp/protocols/status.ts +16 -12
  411. package/src/services/reqresp/protocols/tx.ts +1 -2
  412. package/src/services/reqresp/reqresp.ts +66 -19
  413. package/src/services/service.ts +23 -4
  414. package/src/services/tx_collection/config.ts +16 -2
  415. package/src/services/tx_collection/fast_tx_collection.ts +39 -15
  416. package/src/services/tx_collection/index.ts +5 -0
  417. package/src/services/tx_collection/instrumentation.ts +5 -13
  418. package/src/services/tx_collection/proposal_tx_collector.ts +114 -0
  419. package/src/services/tx_collection/slow_tx_collection.ts +5 -4
  420. package/src/services/tx_collection/tx_collection.ts +10 -9
  421. package/src/services/tx_provider.ts +19 -3
  422. package/src/services/tx_provider_instrumentation.ts +24 -14
  423. package/src/test-helpers/index.ts +2 -0
  424. package/src/test-helpers/mock-pubsub.ts +1 -1
  425. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  426. package/src/test-helpers/reqresp-nodes.ts +1 -1
  427. package/src/test-helpers/test_tx_provider.ts +64 -0
  428. package/src/test-helpers/testbench-utils.ts +372 -0
  429. package/src/testbench/p2p_client_testbench_worker.ts +338 -116
  430. package/src/testbench/worker_client_manager.ts +304 -42
  431. package/src/util.ts +12 -2
  432. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  433. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  434. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  435. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  436. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  437. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  438. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  439. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  440. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  441. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  442. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  443. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
package/src/config.ts CHANGED
@@ -2,26 +2,30 @@ import {
2
2
  type ConfigMappingsType,
3
3
  SecretValue,
4
4
  booleanConfigHelper,
5
- floatConfigHelper,
6
5
  getConfigFromMappings,
7
6
  getDefaultConfig,
8
7
  numberConfigHelper,
8
+ percentageConfigHelper,
9
9
  pickConfigMappings,
10
10
  secretStringConfigHelper,
11
11
  } from '@aztec/foundation/config';
12
- import { Fr } from '@aztec/foundation/fields';
12
+ import { Fr } from '@aztec/foundation/curves/bn254';
13
13
  import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
14
- import { FunctionSelector } from '@aztec/stdlib/abi';
14
+ import { FunctionSelector } from '@aztec/stdlib/abi/function-selector';
15
15
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
16
16
  import { type AllowedElement, type ChainConfig, chainConfigMappings } from '@aztec/stdlib/config';
17
17
 
18
+ import {
19
+ type BatchTxRequesterConfig,
20
+ batchTxRequesterConfigMappings,
21
+ } from './services/reqresp/batch-tx-requester/config.js';
18
22
  import { type P2PReqRespConfig, p2pReqRespConfigMappings } from './services/reqresp/config.js';
19
23
  import { type TxCollectionConfig, txCollectionConfigMappings } from './services/tx_collection/config.js';
20
24
 
21
25
  /**
22
26
  * P2P client configuration values.
23
27
  */
24
- export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionConfig {
28
+ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, ChainConfig, TxCollectionConfig {
25
29
  /** A flag dictating whether the P2P subsystem should be enabled. */
26
30
  p2pEnabled: boolean;
27
31
 
@@ -133,11 +137,8 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
133
137
  /** Which calls are allowed in the public setup phase of a tx. */
134
138
  txPublicSetupAllowList: AllowedElement[];
135
139
 
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;
140
+ /** The maximum number of pending txs before evicting lower priority txs. */
141
+ maxPendingTxCount: number;
141
142
 
142
143
  /** The node's seen message ID cache size */
143
144
  seenMessageCacheSize: number;
@@ -164,6 +165,12 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
164
165
 
165
166
  /** Whether to delete transactions from the pool after a reorg instead of moving them back to pending. */
166
167
  txPoolDeleteTxsAfterReorg: boolean;
168
+
169
+ /** Alters the format of p2p messages to include things like broadcast timestamp FOR TESTING ONLY */
170
+ debugP2PInstrumentMessages: boolean;
171
+
172
+ /** Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus */
173
+ fishermanMode: boolean;
167
174
  }
168
175
 
169
176
  export const DEFAULT_P2P_PORT = 40400;
@@ -369,15 +376,12 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
369
376
  printDefault: () =>
370
377
  'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee',
371
378
  },
372
- maxTxPoolSize: {
373
- env: 'P2P_MAX_TX_POOL_SIZE',
374
- description: 'The maximum cumulative tx size of pending txs (in bytes) before evicting lower priority txs.',
375
- ...numberConfigHelper(100_000_000), // 100MB
376
- },
377
- txPoolOverflowFactor: {
378
- env: 'P2P_TX_POOL_OVERFLOW_FACTOR',
379
- description: 'How much the tx pool can overflow before it starts evicting txs. Must be greater than 1',
380
- ...floatConfigHelper(1.1), // 10% overflow
379
+ maxPendingTxCount: {
380
+ env: 'P2P_MAX_PENDING_TX_COUNT',
381
+ description: 'The maximum number of pending txs before evicting lower priority txs.',
382
+ // Worst case scenario: Uncompressed public/private tx is ~ 156kb
383
+ // This implies we are using ~156MB of memory for pending pool
384
+ ...numberConfigHelper(1_000),
381
385
  },
382
386
  seenMessageCacheSize: {
383
387
  env: 'P2P_SEEN_MSG_CACHE_SIZE',
@@ -406,8 +410,8 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
406
410
  },
407
411
  dropTransactionsProbability: {
408
412
  env: 'P2P_DROP_TX_CHANCE',
409
- description: 'The probability that a transaction is discarded. - For testing purposes only',
410
- ...floatConfigHelper(0),
413
+ description: 'The probability that a transaction is discarded (0 - 1). - For testing purposes only',
414
+ ...percentageConfigHelper(0),
411
415
  },
412
416
  disableTransactions: {
413
417
  env: 'TRANSACTIONS_DISABLED',
@@ -420,7 +424,19 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
420
424
  description: 'Whether to delete transactions from the pool after a reorg instead of moving them back to pending.',
421
425
  ...booleanConfigHelper(false),
422
426
  },
427
+ debugP2PInstrumentMessages: {
428
+ env: 'DEBUG_P2P_INSTRUMENT_MESSAGES',
429
+ description: 'Alters the format of p2p messages to include things like broadcast timestamp FOR TESTING ONLY',
430
+ ...booleanConfigHelper(false),
431
+ },
432
+ fishermanMode: {
433
+ env: 'FISHERMAN_MODE',
434
+ description:
435
+ 'Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus.',
436
+ ...booleanConfigHelper(false),
437
+ },
423
438
  ...p2pReqRespConfigMappings,
439
+ ...batchTxRequesterConfigMappings,
424
440
  ...chainConfigMappings,
425
441
  ...txCollectionConfigMappings,
426
442
  };
@@ -0,0 +1,13 @@
1
+ export class AttestationPoolError extends Error {
2
+ constructor(message?: string) {
3
+ super(message);
4
+ this.name = 'AttestationPoolError';
5
+ }
6
+ }
7
+
8
+ export class ProposalSlotCapExceededError extends AttestationPoolError {
9
+ constructor(message?: string) {
10
+ super(message);
11
+ this.name = 'ProposalSlotCapExceededError';
12
+ }
13
+ }
@@ -1,4 +1,10 @@
1
- import type { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
1
+ import type { SlotNumber } from '@aztec/foundation/branded-types';
2
+ import type {
3
+ BlockProposal,
4
+ CheckpointAttestation,
5
+ CheckpointProposal,
6
+ CheckpointProposalCore,
7
+ } from '@aztec/stdlib/p2p';
2
8
 
3
9
  /**
4
10
  * An Attestation Pool contains attestations collected by a validator
@@ -31,75 +37,120 @@ export interface AttestationPool {
31
37
  hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
32
38
 
33
39
  /**
34
- * AddAttestations
40
+ * Adds a checkpoint proposal to the pool.
35
41
  *
36
- * @param attestations - Attestations to add into the pool
42
+ * If the proposal contains a lastBlock, the BlockProposal is automatically extracted
43
+ * and stored separately via addBlockProposal. The checkpoint proposal is then stored
44
+ * without the lastBlock info (as CheckpointProposalCore).
45
+ *
46
+ * @param proposal - The checkpoint proposal to add
47
+ * @throws ProposalSlotCapExceededError if the slot has reached the maximum number of proposals
37
48
  */
38
- addAttestations(attestations: BlockAttestation[]): Promise<void>;
49
+ addCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
39
50
 
40
51
  /**
41
- * DeleteAttestation
52
+ * Get checkpoint proposal by its ID.
53
+ *
54
+ * Returns a CheckpointProposalCore (without lastBlock info) since the lastBlock
55
+ * is extracted and stored separately as a BlockProposal when added.
42
56
  *
43
- * @param attestations - Attestations to remove from the pool
57
+ * @param id - The ID of the checkpoint proposal to retrieve (proposal.archive)
58
+ * @return The checkpoint proposal core if it exists, otherwise undefined.
44
59
  */
45
- deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
60
+ getCheckpointProposal(id: string): Promise<CheckpointProposalCore | undefined>;
46
61
 
47
62
  /**
48
- * Delete Attestations with a slot number smaller than the given slot
63
+ * Check if a checkpoint proposal exists in the pool
49
64
  *
50
- * Removes all attestations associated with a slot
51
- *
52
- * @param slot - The oldest slot to keep.
65
+ * @param idOrProposal - The ID of the checkpoint proposal or the proposal itself
66
+ * @return True if the proposal exists, false otherwise.
53
67
  */
54
- deleteAttestationsOlderThan(slot: bigint): Promise<void>;
68
+ hasCheckpointProposal(idOrProposal: string | CheckpointProposal): Promise<boolean>;
55
69
 
56
70
  /**
57
- * Delete Attestations for slot
71
+ * Add checkpoint attestations to the pool
58
72
  *
59
- * Removes all attestations associated with a slot
60
- *
61
- * @param slot - The slot to delete.
73
+ * @param attestations - Checkpoint attestations to add into the pool
62
74
  */
63
- deleteAttestationsForSlot(slot: bigint): Promise<void>;
75
+ addCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
64
76
 
65
77
  /**
66
- * Delete Attestations for slot and proposal
67
- *
68
- * Removes all attestations associated with a slot and proposal
78
+ * Delete checkpoint attestations older than the given slot
69
79
  *
70
- * @param slot - The slot to delete.
71
- * @param proposalId - The proposal to delete.
80
+ * @param slot - The oldest slot to keep.
72
81
  */
73
- deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
82
+ deleteCheckpointAttestationsOlderThan(slot: SlotNumber): Promise<void>;
74
83
 
75
84
  /**
76
- * Get all Attestations for all proposals for a given slot
77
- *
78
- * Retrieve all of the attestations observed pertaining to a given slot
85
+ * Get all checkpoint attestations for a given slot
79
86
  *
80
87
  * @param slot - The slot to query
81
- * @return BlockAttestations
88
+ * @return CheckpointAttestations
82
89
  */
83
- getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]>;
90
+ getCheckpointAttestationsForSlot(slot: SlotNumber): Promise<CheckpointAttestation[]>;
84
91
 
85
92
  /**
86
- * Get Attestations for slot and given proposal
87
- *
88
- * Retrieve all of the attestations observed pertaining to a given slot
93
+ * Get checkpoint attestations for slot and given proposal
89
94
  *
90
95
  * @param slot - The slot to query
91
96
  * @param proposalId - The proposal to query
92
- * @return BlockAttestations
97
+ * @return CheckpointAttestations
93
98
  */
94
- getAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
99
+ getCheckpointAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<CheckpointAttestation[]>;
95
100
 
96
101
  /**
97
- * Check if a specific attestation exists in the pool
102
+ * Check if a specific checkpoint attestation exists in the pool
98
103
  *
99
104
  * @param attestation - The attestation to check
100
105
  * @return True if the attestation exists, false otherwise
101
106
  */
102
- hasAttestation(attestation: BlockAttestation): Promise<boolean>;
107
+ hasCheckpointAttestation(attestation: CheckpointAttestation): Promise<boolean>;
108
+
109
+ /**
110
+ * Returns whether adding this proposal is permitted at current capacity:
111
+ * - True if the proposal already exists, allow overwrite to keep parity with tests.
112
+ * - True if the slot is below the proposal cap.
113
+ * - False if the slot is at/above cap and this would be a new unique proposal.
114
+ *
115
+ * @param block - The block proposal to check
116
+ * @returns True if the proposal can be added (or already exists), false otherwise.
117
+ */
118
+ canAddProposal(block: BlockProposal): Promise<boolean>;
119
+
120
+ /**
121
+ * Returns whether adding this checkpoint proposal is permitted at current capacity.
122
+ *
123
+ * @param proposal - The checkpoint proposal to check
124
+ * @returns True if the proposal can be added, false otherwise.
125
+ */
126
+ canAddCheckpointProposal(proposal: CheckpointProposal): Promise<boolean>;
127
+
128
+ /**
129
+ * Returns whether a checkpoint attestation would be accepted for (slot, proposalId).
130
+ *
131
+ * @param attestation - The attestation to check
132
+ * @param committeeSize - Committee size for the attestation's slot
133
+ * @returns True if the attestation can be added, false otherwise.
134
+ */
135
+ canAddCheckpointAttestation(attestation: CheckpointAttestation, committeeSize: number): Promise<boolean>;
136
+
137
+ /**
138
+ * Returns whether the checkpoint proposal cap for the given slot has been reached.
139
+ *
140
+ * @param slot - The slot to check
141
+ * @returns True if the cap has been reached, false otherwise.
142
+ */
143
+ hasReachedCheckpointProposalCap(slot: SlotNumber): Promise<boolean>;
144
+
145
+ /**
146
+ * Returns whether the checkpoint attestation cap for the given slot and proposal has been reached.
147
+ *
148
+ * @param slot - The slot to check
149
+ * @param proposalId - The proposal to check
150
+ * @param committeeSize - Committee size for the slot
151
+ * @returns True if the cap has been reached, false otherwise.
152
+ */
153
+ hasReachedCheckpointAttestationCap(slot: SlotNumber, proposalId: string, committeeSize: number): Promise<boolean>;
103
154
 
104
155
  /** Returns whether the pool is empty. */
105
156
  isEmpty(): Promise<boolean>;