@aztec/p2p 0.0.0-test.1 → 0.0.1-commit.023c3e5

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 (512) 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 +26 -13
  4. package/dest/client/factory.d.ts +15 -5
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +61 -25
  7. package/dest/client/index.d.ts +2 -1
  8. package/dest/client/index.d.ts.map +1 -1
  9. package/dest/client/index.js +1 -0
  10. package/dest/client/interface.d.ts +170 -0
  11. package/dest/client/interface.d.ts.map +1 -0
  12. package/dest/client/interface.js +9 -0
  13. package/dest/client/p2p_client.d.ts +75 -193
  14. package/dest/client/p2p_client.d.ts.map +1 -1
  15. package/dest/client/p2p_client.js +765 -229
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +305 -0
  19. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  20. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  21. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  22. package/dest/config.d.ts +154 -125
  23. package/dest/config.d.ts.map +1 -1
  24. package/dest/config.js +182 -34
  25. package/dest/enr/generate-enr.d.ts +11 -3
  26. package/dest/enr/generate-enr.d.ts.map +1 -1
  27. package/dest/enr/generate-enr.js +27 -5
  28. package/dest/enr/index.d.ts +1 -1
  29. package/dest/errors/attestation-pool.error.d.ts +7 -0
  30. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  31. package/dest/errors/attestation-pool.error.js +12 -0
  32. package/dest/errors/reqresp.error.d.ts +1 -1
  33. package/dest/errors/reqresp.error.d.ts.map +1 -1
  34. package/dest/index.d.ts +4 -1
  35. package/dest/index.d.ts.map +1 -1
  36. package/dest/index.js +2 -0
  37. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +104 -25
  38. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  40. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  41. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +299 -174
  42. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  43. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +29 -11
  44. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  45. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +168 -62
  46. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +24 -10
  47. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  48. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +133 -82
  49. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -11
  50. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  51. package/dest/mem_pools/attestation_pool/mocks.js +19 -21
  52. package/dest/mem_pools/index.d.ts +1 -1
  53. package/dest/mem_pools/instrumentation.d.ts +16 -12
  54. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  55. package/dest/mem_pools/instrumentation.js +56 -41
  56. package/dest/mem_pools/interface.d.ts +3 -4
  57. package/dest/mem_pools/interface.d.ts.map +1 -1
  58. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +75 -16
  59. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  60. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +493 -142
  61. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  62. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  63. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  64. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  65. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  66. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  67. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  68. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  69. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  70. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  71. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  72. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  73. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  74. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  75. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  76. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  77. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  78. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  79. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  80. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  81. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  82. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  83. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  84. package/dest/mem_pools/tx_pool/index.js +0 -1
  85. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  86. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  87. package/dest/mem_pools/tx_pool/priority.js +7 -2
  88. package/dest/mem_pools/tx_pool/tx_pool.d.ts +72 -11
  89. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  90. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  91. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  92. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +276 -45
  93. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +7 -5
  94. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  95. package/dest/msg_validators/attestation_validator/attestation_validator.js +79 -10
  96. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  97. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  98. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +76 -0
  99. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  100. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  101. package/dest/msg_validators/attestation_validator/index.js +1 -0
  102. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  103. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  104. package/dest/msg_validators/clock_tolerance.js +37 -0
  105. package/dest/msg_validators/index.d.ts +2 -2
  106. package/dest/msg_validators/index.d.ts.map +1 -1
  107. package/dest/msg_validators/index.js +1 -1
  108. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +10 -0
  109. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -0
  110. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.js +36 -0
  111. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  112. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  113. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  114. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  115. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  116. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  117. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  118. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  119. package/dest/msg_validators/proposal_validator/index.js +3 -0
  120. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  121. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  122. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  123. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  124. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  125. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  126. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  127. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +3 -0
  129. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -0
  130. package/dest/msg_validators/tx_validator/allowed_public_setup.js +27 -0
  131. package/dest/msg_validators/tx_validator/archive_cache.d.ts +14 -0
  132. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -0
  133. package/dest/msg_validators/tx_validator/archive_cache.js +22 -0
  134. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +5 -4
  135. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  136. package/dest/msg_validators/tx_validator/block_header_validator.js +7 -6
  137. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  138. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  139. package/dest/msg_validators/tx_validator/data_validator.js +60 -87
  140. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +3 -4
  141. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  142. package/dest/msg_validators/tx_validator/double_spend_validator.js +24 -29
  143. package/dest/msg_validators/tx_validator/factory.d.ts +21 -0
  144. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -0
  145. package/dest/msg_validators/tx_validator/factory.js +84 -0
  146. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  147. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  148. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  149. package/dest/msg_validators/tx_validator/gas_validator.d.ts +12 -0
  150. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -0
  151. package/dest/msg_validators/tx_validator/gas_validator.js +110 -0
  152. package/dest/msg_validators/tx_validator/index.d.ts +9 -1
  153. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  154. package/dest/msg_validators/tx_validator/index.js +8 -0
  155. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +10 -5
  156. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/metadata_validator.js +40 -21
  158. package/dest/msg_validators/tx_validator/phases_validator.d.ts +15 -0
  159. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -0
  160. package/dest/msg_validators/tx_validator/phases_validator.js +93 -0
  161. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  162. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  163. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  164. package/dest/msg_validators/tx_validator/test_utils.d.ts +17 -0
  165. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -0
  166. package/dest/msg_validators/tx_validator/test_utils.js +22 -0
  167. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +14 -0
  168. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -0
  169. package/dest/msg_validators/tx_validator/timestamp_validator.js +32 -0
  170. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +9 -0
  171. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -0
  172. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +24 -0
  173. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  174. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  175. package/dest/msg_validators/tx_validator/tx_proof_validator.js +8 -7
  176. package/dest/services/data_store.d.ts +1 -1
  177. package/dest/services/data_store.d.ts.map +1 -1
  178. package/dest/services/data_store.js +10 -6
  179. package/dest/services/discv5/discV5_service.d.ts +10 -9
  180. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  181. package/dest/services/discv5/discV5_service.js +64 -37
  182. package/dest/services/dummy_service.d.ts +66 -11
  183. package/dest/services/dummy_service.d.ts.map +1 -1
  184. package/dest/services/dummy_service.js +130 -5
  185. package/dest/services/encoding.d.ts +26 -7
  186. package/dest/services/encoding.d.ts.map +1 -1
  187. package/dest/services/encoding.js +75 -6
  188. package/dest/services/gossipsub/scoring.d.ts +1 -1
  189. package/dest/services/index.d.ts +5 -1
  190. package/dest/services/index.d.ts.map +1 -1
  191. package/dest/services/index.js +4 -0
  192. package/dest/services/libp2p/instrumentation.d.ts +20 -0
  193. package/dest/services/libp2p/instrumentation.d.ts.map +1 -0
  194. package/dest/services/libp2p/instrumentation.js +122 -0
  195. package/dest/services/libp2p/libp2p_service.d.ts +107 -95
  196. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  197. package/dest/services/libp2p/libp2p_service.js +1328 -313
  198. package/dest/services/peer-manager/interface.d.ts +23 -0
  199. package/dest/services/peer-manager/interface.d.ts.map +1 -0
  200. package/dest/services/peer-manager/interface.js +1 -0
  201. package/dest/services/peer-manager/metrics.d.ts +12 -3
  202. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  203. package/dest/services/peer-manager/metrics.js +44 -12
  204. package/dest/services/peer-manager/peer_manager.d.ts +103 -23
  205. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  206. package/dest/services/peer-manager/peer_manager.js +551 -82
  207. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  208. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  209. package/dest/services/peer-manager/peer_scoring.js +43 -2
  210. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +47 -0
  211. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  212. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +566 -0
  213. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  214. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  215. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  216. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  217. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  218. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  219. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +37 -0
  220. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  221. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +151 -0
  222. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +54 -0
  223. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  224. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +139 -0
  225. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  226. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  227. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  228. package/dest/services/reqresp/config.d.ts +11 -9
  229. package/dest/services/reqresp/config.d.ts.map +1 -1
  230. package/dest/services/reqresp/config.js +18 -4
  231. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +23 -4
  232. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  233. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +73 -10
  234. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +32 -17
  235. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  236. package/dest/services/reqresp/connection-sampler/connection_sampler.js +154 -84
  237. package/dest/services/reqresp/constants.d.ts +12 -0
  238. package/dest/services/reqresp/constants.d.ts.map +1 -0
  239. package/dest/services/reqresp/constants.js +7 -0
  240. package/dest/services/reqresp/index.d.ts +3 -2
  241. package/dest/services/reqresp/index.d.ts.map +1 -1
  242. package/dest/services/reqresp/index.js +2 -1
  243. package/dest/services/reqresp/interface.d.ts +75 -24
  244. package/dest/services/reqresp/interface.d.ts.map +1 -1
  245. package/dest/services/reqresp/interface.js +46 -27
  246. package/dest/services/reqresp/metrics.d.ts +6 -5
  247. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  248. package/dest/services/reqresp/metrics.js +17 -21
  249. package/dest/services/reqresp/protocols/auth.d.ts +43 -0
  250. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -0
  251. package/dest/services/reqresp/protocols/auth.js +71 -0
  252. package/dest/services/reqresp/protocols/block.d.ts +6 -1
  253. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  254. package/dest/services/reqresp/protocols/block.js +30 -6
  255. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +34 -0
  256. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -0
  257. package/dest/services/reqresp/protocols/block_txs/bitvector.js +87 -0
  258. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +11 -0
  259. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -0
  260. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +52 -0
  261. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +59 -0
  262. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -0
  263. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +105 -0
  264. package/dest/services/reqresp/protocols/block_txs/index.d.ts +4 -0
  265. package/dest/services/reqresp/protocols/block_txs/index.d.ts.map +1 -0
  266. package/dest/services/reqresp/protocols/block_txs/index.js +3 -0
  267. package/dest/services/reqresp/protocols/goodbye.d.ts +3 -5
  268. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  269. package/dest/services/reqresp/protocols/goodbye.js +7 -7
  270. package/dest/services/reqresp/protocols/index.d.ts +3 -1
  271. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  272. package/dest/services/reqresp/protocols/index.js +2 -0
  273. package/dest/services/reqresp/protocols/ping.d.ts +1 -3
  274. package/dest/services/reqresp/protocols/ping.d.ts.map +1 -1
  275. package/dest/services/reqresp/protocols/status.d.ts +40 -7
  276. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  277. package/dest/services/reqresp/protocols/status.js +76 -5
  278. package/dest/services/reqresp/protocols/tx.d.ts +14 -4
  279. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  280. package/dest/services/reqresp/protocols/tx.js +34 -6
  281. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  282. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +6 -4
  283. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  284. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -2
  285. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  286. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  287. package/dest/services/reqresp/rate-limiter/rate_limits.js +21 -1
  288. package/dest/services/reqresp/reqresp.d.ts +29 -66
  289. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  290. package/dest/services/reqresp/reqresp.js +753 -248
  291. package/dest/services/reqresp/status.d.ts +10 -4
  292. package/dest/services/reqresp/status.d.ts.map +1 -1
  293. package/dest/services/reqresp/status.js +9 -2
  294. package/dest/services/service.d.ts +40 -20
  295. package/dest/services/service.d.ts.map +1 -1
  296. package/dest/services/tx_collection/config.d.ts +28 -0
  297. package/dest/services/tx_collection/config.d.ts.map +1 -0
  298. package/dest/services/tx_collection/config.js +66 -0
  299. package/dest/services/tx_collection/fast_tx_collection.d.ts +53 -0
  300. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -0
  301. package/dest/services/tx_collection/fast_tx_collection.js +311 -0
  302. package/dest/services/tx_collection/index.d.ts +4 -0
  303. package/dest/services/tx_collection/index.d.ts.map +1 -0
  304. package/dest/services/tx_collection/index.js +3 -0
  305. package/dest/services/tx_collection/instrumentation.d.ts +10 -0
  306. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -0
  307. package/dest/services/tx_collection/instrumentation.js +31 -0
  308. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  309. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  310. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  311. package/dest/services/tx_collection/slow_tx_collection.d.ts +53 -0
  312. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -0
  313. package/dest/services/tx_collection/slow_tx_collection.js +177 -0
  314. package/dest/services/tx_collection/tx_collection.d.ts +110 -0
  315. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -0
  316. package/dest/services/tx_collection/tx_collection.js +128 -0
  317. package/dest/services/tx_collection/tx_collection_sink.d.ts +30 -0
  318. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -0
  319. package/dest/services/tx_collection/tx_collection_sink.js +111 -0
  320. package/dest/services/tx_collection/tx_source.d.ts +18 -0
  321. package/dest/services/tx_collection/tx_source.d.ts.map +1 -0
  322. package/dest/services/tx_collection/tx_source.js +31 -0
  323. package/dest/services/tx_provider.d.ts +51 -0
  324. package/dest/services/tx_provider.d.ts.map +1 -0
  325. package/dest/services/tx_provider.js +219 -0
  326. package/dest/services/tx_provider_instrumentation.d.ts +16 -0
  327. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -0
  328. package/dest/services/tx_provider_instrumentation.js +34 -0
  329. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  330. package/dest/test-helpers/get-ports.d.ts +1 -1
  331. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  332. package/dest/test-helpers/index.d.ts +4 -1
  333. package/dest/test-helpers/index.d.ts.map +1 -1
  334. package/dest/test-helpers/index.js +3 -0
  335. package/dest/test-helpers/make-enrs.d.ts +1 -1
  336. package/dest/test-helpers/make-enrs.d.ts.map +1 -1
  337. package/dest/test-helpers/make-enrs.js +4 -5
  338. package/dest/test-helpers/make-test-p2p-clients.d.ts +33 -5
  339. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  340. package/dest/test-helpers/make-test-p2p-clients.js +86 -16
  341. package/dest/test-helpers/mock-pubsub.d.ts +59 -0
  342. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -0
  343. package/dest/test-helpers/mock-pubsub.js +130 -0
  344. package/dest/test-helpers/mock-tx-helpers.d.ts +12 -0
  345. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -0
  346. package/dest/test-helpers/mock-tx-helpers.js +19 -0
  347. package/dest/test-helpers/reqresp-nodes.d.ts +15 -11
  348. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  349. package/dest/test-helpers/reqresp-nodes.js +62 -28
  350. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  351. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  352. package/dest/test-helpers/test_tx_provider.js +41 -0
  353. package/dest/test-helpers/testbench-utils.d.ts +158 -0
  354. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  355. package/dest/test-helpers/testbench-utils.js +297 -0
  356. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  357. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  358. package/dest/testbench/p2p_client_testbench_worker.js +259 -90
  359. package/dest/testbench/parse_log_file.d.ts +1 -1
  360. package/dest/testbench/parse_log_file.js +4 -4
  361. package/dest/testbench/testbench.d.ts +1 -1
  362. package/dest/testbench/testbench.js +4 -4
  363. package/dest/testbench/worker_client_manager.d.ts +51 -11
  364. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  365. package/dest/testbench/worker_client_manager.js +232 -53
  366. package/dest/types/index.d.ts +4 -2
  367. package/dest/types/index.d.ts.map +1 -1
  368. package/dest/types/index.js +2 -0
  369. package/dest/util.d.ts +24 -16
  370. package/dest/util.d.ts.map +1 -1
  371. package/dest/util.js +75 -69
  372. package/dest/versioning.d.ts +4 -4
  373. package/dest/versioning.d.ts.map +1 -1
  374. package/dest/versioning.js +8 -3
  375. package/package.json +32 -27
  376. package/src/bootstrap/bootstrap.ts +34 -15
  377. package/src/client/factory.ts +135 -53
  378. package/src/client/index.ts +1 -0
  379. package/src/client/interface.ts +213 -0
  380. package/src/client/p2p_client.ts +476 -383
  381. package/src/client/test/tx_proposal_collector/README.md +227 -0
  382. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +336 -0
  383. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  384. package/src/config.ts +304 -134
  385. package/src/enr/generate-enr.ts +39 -6
  386. package/src/errors/attestation-pool.error.ts +13 -0
  387. package/src/index.ts +4 -0
  388. package/src/mem_pools/attestation_pool/attestation_pool.ts +119 -24
  389. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +352 -201
  390. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +233 -72
  391. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +199 -96
  392. package/src/mem_pools/attestation_pool/mocks.ts +24 -17
  393. package/src/mem_pools/instrumentation.ts +72 -48
  394. package/src/mem_pools/interface.ts +2 -4
  395. package/src/mem_pools/tx_pool/README.md +270 -0
  396. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +580 -143
  397. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  398. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  399. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  400. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  401. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  402. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  403. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  404. package/src/mem_pools/tx_pool/index.ts +0 -1
  405. package/src/mem_pools/tx_pool/priority.ts +9 -2
  406. package/src/mem_pools/tx_pool/tx_pool.ts +75 -10
  407. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +225 -36
  408. package/src/msg_validators/attestation_validator/attestation_validator.ts +72 -14
  409. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +94 -0
  410. package/src/msg_validators/attestation_validator/index.ts +1 -0
  411. package/src/msg_validators/clock_tolerance.ts +51 -0
  412. package/src/msg_validators/index.ts +1 -1
  413. package/src/msg_validators/msg_seen_validator/msg_seen_validator.ts +36 -0
  414. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  415. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  416. package/src/msg_validators/proposal_validator/index.ts +3 -0
  417. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  418. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  419. package/src/msg_validators/tx_validator/allowed_public_setup.ts +35 -0
  420. package/src/msg_validators/tx_validator/archive_cache.ts +28 -0
  421. package/src/msg_validators/tx_validator/block_header_validator.ts +10 -9
  422. package/src/msg_validators/tx_validator/data_validator.ts +95 -71
  423. package/src/msg_validators/tx_validator/double_spend_validator.ts +23 -20
  424. package/src/msg_validators/tx_validator/factory.ts +151 -0
  425. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  426. package/src/msg_validators/tx_validator/gas_validator.ts +123 -0
  427. package/src/msg_validators/tx_validator/index.ts +8 -0
  428. package/src/msg_validators/tx_validator/metadata_validator.ts +72 -24
  429. package/src/msg_validators/tx_validator/phases_validator.ts +118 -0
  430. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  431. package/src/msg_validators/tx_validator/test_utils.ts +43 -0
  432. package/src/msg_validators/tx_validator/timestamp_validator.ts +52 -0
  433. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +22 -0
  434. package/src/msg_validators/tx_validator/tx_proof_validator.ts +14 -8
  435. package/src/services/data_store.ts +10 -7
  436. package/src/services/discv5/discV5_service.ts +85 -39
  437. package/src/services/dummy_service.ts +198 -9
  438. package/src/services/encoding.ts +82 -6
  439. package/src/services/index.ts +4 -0
  440. package/src/services/libp2p/instrumentation.ts +126 -0
  441. package/src/services/libp2p/libp2p_service.ts +1170 -353
  442. package/src/services/peer-manager/interface.ts +29 -0
  443. package/src/services/peer-manager/metrics.ts +55 -12
  444. package/src/services/peer-manager/peer_manager.ts +657 -80
  445. package/src/services/peer-manager/peer_scoring.ts +45 -3
  446. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  447. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +706 -0
  448. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  449. package/src/services/reqresp/batch-tx-requester/interface.ts +57 -0
  450. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +209 -0
  451. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +205 -0
  452. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  453. package/src/services/reqresp/config.ts +26 -9
  454. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +77 -10
  455. package/src/services/reqresp/connection-sampler/connection_sampler.ts +166 -95
  456. package/src/services/reqresp/constants.ts +14 -0
  457. package/src/services/reqresp/index.ts +2 -0
  458. package/src/services/reqresp/interface.ts +95 -37
  459. package/src/services/reqresp/metrics.ts +40 -28
  460. package/src/services/reqresp/protocols/auth.ts +83 -0
  461. package/src/services/reqresp/protocols/block.ts +26 -4
  462. package/src/services/reqresp/protocols/block_txs/bitvector.ts +106 -0
  463. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +67 -0
  464. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +121 -0
  465. package/src/services/reqresp/protocols/block_txs/index.ts +3 -0
  466. package/src/services/reqresp/protocols/goodbye.ts +9 -7
  467. package/src/services/reqresp/protocols/index.ts +2 -0
  468. package/src/services/reqresp/protocols/status.ts +121 -5
  469. package/src/services/reqresp/protocols/tx.ts +36 -8
  470. package/src/services/reqresp/rate-limiter/rate_limiter.ts +12 -3
  471. package/src/services/reqresp/rate-limiter/rate_limits.ts +21 -1
  472. package/src/services/reqresp/reqresp.ts +449 -271
  473. package/src/services/reqresp/status.ts +12 -3
  474. package/src/services/service.ts +65 -22
  475. package/src/services/tx_collection/config.ts +98 -0
  476. package/src/services/tx_collection/fast_tx_collection.ts +364 -0
  477. package/src/services/tx_collection/index.ts +7 -0
  478. package/src/services/tx_collection/instrumentation.ts +35 -0
  479. package/src/services/tx_collection/proposal_tx_collector.ts +114 -0
  480. package/src/services/tx_collection/slow_tx_collection.ts +233 -0
  481. package/src/services/tx_collection/tx_collection.ts +216 -0
  482. package/src/services/tx_collection/tx_collection_sink.ts +129 -0
  483. package/src/services/tx_collection/tx_source.ts +37 -0
  484. package/src/services/tx_provider.ts +232 -0
  485. package/src/services/tx_provider_instrumentation.ts +54 -0
  486. package/src/test-helpers/index.ts +3 -0
  487. package/src/test-helpers/make-enrs.ts +4 -5
  488. package/src/test-helpers/make-test-p2p-clients.ts +111 -21
  489. package/src/test-helpers/mock-pubsub.ts +188 -0
  490. package/src/test-helpers/mock-tx-helpers.ts +24 -0
  491. package/src/test-helpers/reqresp-nodes.ts +87 -36
  492. package/src/test-helpers/test_tx_provider.ts +64 -0
  493. package/src/test-helpers/testbench-utils.ts +374 -0
  494. package/src/testbench/p2p_client_testbench_worker.ts +434 -89
  495. package/src/testbench/parse_log_file.ts +4 -4
  496. package/src/testbench/testbench.ts +4 -4
  497. package/src/testbench/worker_client_manager.ts +315 -59
  498. package/src/types/index.ts +2 -0
  499. package/src/util.ts +105 -91
  500. package/src/versioning.ts +11 -4
  501. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -56
  502. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  503. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -141
  504. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -8
  505. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  506. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -21
  507. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  508. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  509. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  510. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -174
  511. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -29
  512. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,195 +1,320 @@
1
- import { Secp256k1Signer } from '@aztec/foundation/crypto';
2
- import { Fr } from '@aztec/foundation/fields';
3
- import { TxHash } from '@aztec/stdlib/tx';
4
- import { jest } from '@jest/globals';
5
- import { mock } from 'jest-mock-extended';
6
- import { mockAttestation } from './mocks.js';
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { CheckpointHeader } from '@aztec/stdlib/rollup';
5
+ import { makeBlockHeader, makeBlockProposal, makeCheckpointHeader, makeCheckpointProposal } from '@aztec/stdlib/testing';
6
+ import { MAX_PROPOSALS_PER_SLOT } from './kv_attestation_pool.js';
7
+ import { mockCheckpointAttestation } from './mocks.js';
7
8
  const NUMBER_OF_SIGNERS_PER_TEST = 4;
8
9
  export function describeAttestationPool(getAttestationPool) {
9
10
  let ap;
10
11
  let signers;
11
- // Check that metrics are recorded correctly
12
- let metricsMock;
13
12
  beforeEach(()=>{
14
13
  ap = getAttestationPool();
15
14
  signers = Array.from({
16
15
  length: NUMBER_OF_SIGNERS_PER_TEST
17
16
  }, ()=>Secp256k1Signer.random());
18
- metricsMock = mock();
19
- // Can i overwrite this like this??
20
- ap.metrics = metricsMock;
21
17
  });
22
- const createAttestationsForSlot = (slotNumber)=>{
23
- const archive = Fr.random();
24
- return Promise.all(signers.map((signer)=>mockAttestation(signer, slotNumber, archive)));
18
+ const createCheckpointAttestationsForSlot = (slotNumber, archive)=>{
19
+ const archiveToUse = archive ?? Fr.random();
20
+ return signers.map((signer)=>mockCheckpointAttestation(signer, slotNumber, archiveToUse));
25
21
  };
26
- // We compare buffers as the objects can have cached values attached to them which are not serialised
27
- // using array containing as the kv store does not respect insertion order
28
- const compareAttestations = (a1, a2)=>{
22
+ const mockBlockProposalForPool = (signer, slotNumber, archive = Fr.random())=>{
23
+ const header = makeBlockHeader(1, {
24
+ slotNumber: SlotNumber(slotNumber)
25
+ });
26
+ return makeBlockProposal({
27
+ signer,
28
+ blockHeader: header,
29
+ archiveRoot: archive
30
+ });
31
+ };
32
+ // Compare checkpoint attestations buffers
33
+ // Using array containing as the kv store does not respect insertion order
34
+ const compareCheckpointAttestations = (a1, a2)=>{
29
35
  const a1Buffer = a1.map((attestation)=>attestation.toBuffer());
30
36
  const a2Buffer = a2.map((attestation)=>attestation.toBuffer());
31
37
  expect(a1Buffer.length).toBe(a2Buffer.length);
32
38
  expect(a1Buffer).toEqual(expect.arrayContaining(a2Buffer));
33
39
  };
34
- it('should add attestations to pool', async ()=>{
35
- const slotNumber = 420;
36
- const archive = Fr.random();
37
- const attestations = await Promise.all(signers.map((signer)=>mockAttestation(signer, slotNumber, archive)));
38
- await ap.addAttestations(attestations);
39
- // Check metrics have been updated.
40
- expect(metricsMock.recordAddedObjects).toHaveBeenCalledWith(attestations.length);
41
- const retreivedAttestations = await ap.getAttestationsForSlot(BigInt(slotNumber), archive.toString());
42
- expect(retreivedAttestations.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
43
- compareAttestations(retreivedAttestations, attestations);
44
- // Delete by slot
45
- await ap.deleteAttestationsForSlot(BigInt(slotNumber));
46
- expect(metricsMock.recordRemovedObjects).toHaveBeenCalledWith(attestations.length);
47
- const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), archive.toString());
48
- expect(retreivedAttestationsAfterDelete.length).toBe(0);
49
- });
50
- it('Should handle duplicate proposals in a slot', async ()=>{
51
- const slotNumber = 420;
52
- const archive = Fr.random();
53
- const txs = [
54
- 0,
55
- 1,
56
- 2,
57
- 3,
58
- 4,
59
- 5
60
- ].map(()=>TxHash.random());
61
- // Use the same signer for all attestations
62
- const attestations = [];
63
- const signer = signers[0];
64
- for(let i = 0; i < NUMBER_OF_SIGNERS_PER_TEST; i++){
65
- attestations.push(await mockAttestation(signer, slotNumber, archive, txs));
66
- }
67
- await ap.addAttestations(attestations);
68
- const retreivedAttestations = await ap.getAttestationsForSlot(BigInt(slotNumber), archive.toString());
69
- expect(retreivedAttestations.length).toBe(1);
70
- expect(retreivedAttestations[0].toBuffer()).toEqual(attestations[0].toBuffer());
71
- expect(retreivedAttestations[0].payload.txHashes).toEqual(txs);
72
- expect((await retreivedAttestations[0].getSender()).toString()).toEqual(signer.address.toString());
73
- });
74
- it('Should store attestations by differing slot', async ()=>{
75
- const slotNumbers = [
76
- 1,
77
- 2,
78
- 3,
79
- 4
80
- ];
81
- const attestations = await Promise.all(signers.map((signer, i)=>mockAttestation(signer, slotNumbers[i])));
82
- await ap.addAttestations(attestations);
83
- for (const attestation of attestations){
84
- const slot = attestation.payload.header.globalVariables.slotNumber;
85
- const archive = attestation.archive.toString();
86
- const retreivedAttestations = await ap.getAttestationsForSlot(slot.toBigInt(), archive);
40
+ describe('CheckpointAttestation', ()=>{
41
+ it('should add attestations to pool', async ()=>{
42
+ const slotNumber = 420;
43
+ const archive = Fr.random();
44
+ const attestations = signers.slice(0, -1).map((signer)=>mockCheckpointAttestation(signer, slotNumber, archive));
45
+ await ap.addCheckpointAttestations(attestations);
46
+ const retrievedAttestations = await ap.getCheckpointAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString());
47
+ expect(retrievedAttestations.length).toBe(attestations.length);
48
+ compareCheckpointAttestations(retrievedAttestations, attestations);
49
+ // Check hasCheckpointAttestation for added attestations
50
+ for (const attestation of attestations){
51
+ expect(await ap.hasCheckpointAttestation(attestation)).toBe(true);
52
+ }
53
+ const retrievedAttestationsForSlot = await ap.getCheckpointAttestationsForSlot(SlotNumber(slotNumber));
54
+ expect(retrievedAttestationsForSlot.length).toBe(attestations.length);
55
+ compareCheckpointAttestations(retrievedAttestationsForSlot, attestations);
56
+ // Add another one
57
+ const newAttestation = mockCheckpointAttestation(signers[NUMBER_OF_SIGNERS_PER_TEST - 1], slotNumber, archive);
58
+ await ap.addCheckpointAttestations([
59
+ newAttestation
60
+ ]);
61
+ const retrievedAttestationsAfterAdd = await ap.getCheckpointAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString());
62
+ expect(retrievedAttestationsAfterAdd.length).toBe(attestations.length + 1);
63
+ compareCheckpointAttestations(retrievedAttestationsAfterAdd, [
64
+ ...attestations,
65
+ newAttestation
66
+ ]);
67
+ expect(await ap.hasCheckpointAttestation(newAttestation)).toBe(true);
68
+ const retrievedAttestationsForSlotAfterAdd = await ap.getCheckpointAttestationsForSlot(SlotNumber(slotNumber));
69
+ expect(retrievedAttestationsForSlotAfterAdd.length).toBe(attestations.length + 1);
70
+ compareCheckpointAttestations(retrievedAttestationsForSlotAfterAdd, [
71
+ ...attestations,
72
+ newAttestation
73
+ ]);
74
+ // Delete by slot
75
+ await ap.deleteCheckpointAttestationsOlderThan(SlotNumber(slotNumber + 1));
76
+ const retreivedAttestationsAfterDelete = await ap.getCheckpointAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString());
77
+ expect(retreivedAttestationsAfterDelete.length).toBe(0);
78
+ // Check hasCheckpointAttestation after deletion
79
+ for (const attestation of attestations){
80
+ expect(await ap.hasCheckpointAttestation(attestation)).toBe(false);
81
+ }
82
+ expect(await ap.hasCheckpointAttestation(newAttestation)).toBe(false);
83
+ });
84
+ it('should handle duplicate proposals in a slot', async ()=>{
85
+ const slotNumber = 420;
86
+ const archive = Fr.random();
87
+ const header = CheckpointHeader.random({
88
+ slotNumber: SlotNumber(slotNumber)
89
+ });
90
+ // Use the same signer and header for all attestations
91
+ const attestations = [];
92
+ const signer = signers[0];
93
+ for(let i = 0; i < NUMBER_OF_SIGNERS_PER_TEST; i++){
94
+ attestations.push(mockCheckpointAttestation(signer, slotNumber, archive, header));
95
+ }
96
+ // Add them to store and check we end up with only one
97
+ await ap.addCheckpointAttestations(attestations);
98
+ const retreivedAttestations = await ap.getCheckpointAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString());
87
99
  expect(retreivedAttestations.length).toBe(1);
88
- expect(retreivedAttestations[0].toBuffer()).toEqual(attestation.toBuffer());
89
- expect(retreivedAttestations[0].payload.header.globalVariables.slotNumber).toEqual(slot);
90
- }
91
- });
92
- it('Should store attestations by differing slot and archive', async ()=>{
93
- const slotNumbers = [
94
- 1,
95
- 1,
96
- 2,
97
- 3
98
- ];
99
- const archives = [
100
- Fr.random(),
101
- Fr.random(),
102
- Fr.random(),
103
- Fr.random()
104
- ];
105
- const attestations = await Promise.all(signers.map((signer, i)=>mockAttestation(signer, slotNumbers[i], archives[i])));
106
- await ap.addAttestations(attestations);
107
- for (const attestation of attestations){
108
- const slot = attestation.payload.header.globalVariables.slotNumber;
109
- const proposalId = attestation.archive.toString();
110
- const retreivedAttestations = await ap.getAttestationsForSlot(slot.toBigInt(), proposalId);
111
- expect(retreivedAttestations.length).toBe(1);
112
- expect(retreivedAttestations[0].toBuffer()).toEqual(attestation.toBuffer());
113
- expect(retreivedAttestations[0].payload.header.globalVariables.slotNumber).toEqual(slot);
114
- }
115
- });
116
- it('Should delete attestations', async ()=>{
117
- const slotNumber = 420;
118
- const archive = Fr.random();
119
- const attestations = await Promise.all(signers.map((signer)=>mockAttestation(signer, slotNumber, archive)));
120
- const proposalId = attestations[0].archive.toString();
121
- await ap.addAttestations(attestations);
122
- expect(metricsMock.recordAddedObjects).toHaveBeenCalledWith(attestations.length);
123
- const retreivedAttestations = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
124
- expect(retreivedAttestations.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
125
- compareAttestations(retreivedAttestations, attestations);
126
- await ap.deleteAttestations(attestations);
127
- expect(metricsMock.recordRemovedObjects).toHaveBeenCalledWith(attestations.length);
128
- const gottenAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
129
- expect(gottenAfterDelete.length).toBe(0);
130
- });
131
- it('Should blanket delete attestations per slot', async ()=>{
132
- const slotNumber = 420;
133
- const archive = Fr.random();
134
- const attestations = await Promise.all(signers.map((signer)=>mockAttestation(signer, slotNumber, archive)));
135
- const proposalId = attestations[0].archive.toString();
136
- await ap.addAttestations(attestations);
137
- const retreivedAttestations = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
138
- expect(retreivedAttestations.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
139
- compareAttestations(retreivedAttestations, attestations);
140
- await ap.deleteAttestationsForSlot(BigInt(slotNumber));
141
- const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
142
- expect(retreivedAttestationsAfterDelete.length).toBe(0);
100
+ expect(retreivedAttestations[0].toBuffer()).toEqual(attestations[0].toBuffer());
101
+ expect(retreivedAttestations[0].getSender()?.toString()).toEqual(signer.address.toString());
102
+ // Try adding them on another operation and check they are still not duplicated
103
+ await ap.addCheckpointAttestations([
104
+ attestations[0]
105
+ ]);
106
+ expect(await ap.getCheckpointAttestationsForSlotAndProposal(SlotNumber(slotNumber), archive.toString())).toHaveLength(1);
107
+ });
108
+ it('should store attestations by differing slot', async ()=>{
109
+ const slotNumbers = [
110
+ 1,
111
+ 2,
112
+ 3,
113
+ 4
114
+ ];
115
+ const attestations = signers.map((signer, i)=>mockCheckpointAttestation(signer, slotNumbers[i]));
116
+ await ap.addCheckpointAttestations(attestations);
117
+ for (const attestation of attestations){
118
+ const slot = attestation.payload.header.slotNumber;
119
+ const archive = attestation.archive.toString();
120
+ const retreivedAttestations = await ap.getCheckpointAttestationsForSlotAndProposal(slot, archive);
121
+ expect(retreivedAttestations.length).toBe(1);
122
+ expect(retreivedAttestations[0].toBuffer()).toEqual(attestation.toBuffer());
123
+ expect(retreivedAttestations[0].payload.header.slotNumber).toEqual(slot);
124
+ }
125
+ });
126
+ it('should store attestations by differing slot and archive', async ()=>{
127
+ const slotNumbers = [
128
+ 1,
129
+ 1,
130
+ 2,
131
+ 3
132
+ ];
133
+ const archives = [
134
+ Fr.random(),
135
+ Fr.random(),
136
+ Fr.random(),
137
+ Fr.random()
138
+ ];
139
+ const attestations = signers.map((signer, i)=>mockCheckpointAttestation(signer, slotNumbers[i], archives[i]));
140
+ await ap.addCheckpointAttestations(attestations);
141
+ for (const attestation of attestations){
142
+ const slot = attestation.payload.header.slotNumber;
143
+ const proposalId = attestation.archive.toString();
144
+ const retreivedAttestations = await ap.getCheckpointAttestationsForSlotAndProposal(slot, proposalId);
145
+ expect(retreivedAttestations.length).toBe(1);
146
+ expect(retreivedAttestations[0].toBuffer()).toEqual(attestation.toBuffer());
147
+ expect(retreivedAttestations[0].payload.header.slotNumber).toEqual(slot);
148
+ }
149
+ });
150
+ it('should delete attestations older than a given slot', async ()=>{
151
+ const slotNumbers = [
152
+ 1,
153
+ 2,
154
+ 3,
155
+ 69,
156
+ 72,
157
+ 74,
158
+ 88,
159
+ 420
160
+ ];
161
+ const attestations = (await Promise.all(slotNumbers.map((slotNumber)=>createCheckpointAttestationsForSlot(slotNumber)))).flat();
162
+ const proposalId = attestations[0].archive.toString();
163
+ await ap.addCheckpointAttestations(attestations);
164
+ const attestationsForSlot1 = await ap.getCheckpointAttestationsForSlotAndProposal(SlotNumber(1), proposalId);
165
+ expect(attestationsForSlot1.length).toBe(signers.length);
166
+ await ap.deleteCheckpointAttestationsOlderThan(SlotNumber(73));
167
+ const attestationsForSlot1AfterDelete = await ap.getCheckpointAttestationsForSlotAndProposal(SlotNumber(1), proposalId);
168
+ expect(attestationsForSlot1AfterDelete.length).toBe(0);
169
+ });
143
170
  });
144
- it('Should blanket delete attestations per slot and proposal', async ()=>{
145
- const slotNumber = 420;
146
- const archive = Fr.random();
147
- const attestations = await Promise.all(signers.map((signer)=>mockAttestation(signer, slotNumber, archive)));
148
- const proposalId = attestations[0].archive.toString();
149
- // Add another set of attestations with a different proposalId, yet the same slot
150
- const archive2 = Fr.random();
151
- const attestations2 = await Promise.all(signers.map((signer)=>mockAttestation(signer, slotNumber, archive2)));
152
- const proposalId2 = attestations2[0].archive.toString();
153
- await ap.addAttestations(attestations);
154
- await ap.addAttestations(attestations2);
155
- expect(metricsMock.recordAddedObjects).toHaveBeenCalledWith(attestations.length);
156
- expect(metricsMock.recordAddedObjects).toHaveBeenCalledWith(attestations2.length);
157
- const retreivedAttestations = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
158
- expect(retreivedAttestations.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
159
- compareAttestations(retreivedAttestations, attestations);
160
- await ap.deleteAttestationsForSlotAndProposal(BigInt(slotNumber), proposalId);
161
- expect(metricsMock.recordRemovedObjects).toHaveBeenCalledWith(attestations.length);
162
- const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
163
- expect(retreivedAttestationsAfterDelete.length).toBe(0);
164
- const retreivedAttestationsAfterDeleteForOtherProposal = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId2);
165
- expect(retreivedAttestationsAfterDeleteForOtherProposal.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
166
- compareAttestations(retreivedAttestationsAfterDeleteForOtherProposal, attestations2);
171
+ describe('BlockProposal in attestation pool', ()=>{
172
+ it('should add and retrieve block proposal', async ()=>{
173
+ const slotNumber = 420;
174
+ const archive = Fr.random();
175
+ const proposal = await mockBlockProposalForPool(signers[0], slotNumber, archive);
176
+ const proposalId = proposal.archive.toString();
177
+ await ap.addBlockProposal(proposal);
178
+ const retrievedProposal = await ap.getBlockProposal(proposalId);
179
+ expect(retrievedProposal).toBeDefined();
180
+ expect(retrievedProposal).toEqual(proposal);
181
+ // Check hasBlockProposal with both id and object
182
+ expect(await ap.hasBlockProposal(proposalId)).toBe(true);
183
+ expect(await ap.hasBlockProposal(proposal)).toBe(true);
184
+ });
185
+ it('should return undefined for non-existent block proposal', async ()=>{
186
+ const nonExistentId = Fr.random().toString();
187
+ const retrievedProposal = await ap.getBlockProposal(nonExistentId);
188
+ expect(retrievedProposal).toBeUndefined();
189
+ // Check hasBlockProposal returns false for non-existent proposal
190
+ expect(await ap.hasBlockProposal(nonExistentId)).toBe(false);
191
+ });
192
+ it('should update block proposal if added twice with same id', async ()=>{
193
+ const slotNumber = 420;
194
+ const archive = Fr.random();
195
+ const proposal1 = await mockBlockProposalForPool(signers[0], slotNumber, archive);
196
+ const proposalId = proposal1.archive.toString();
197
+ await ap.addBlockProposal(proposal1);
198
+ // Create a new proposal with same archive but different signer
199
+ const proposal2 = await mockBlockProposalForPool(signers[1], slotNumber, archive);
200
+ await ap.addBlockProposal(proposal2);
201
+ const retrievedProposal = await ap.getBlockProposal(proposalId);
202
+ expect(retrievedProposal).toBeDefined();
203
+ // Should have the second proposal
204
+ expect(retrievedProposal.toBuffer()).toEqual(proposal2.toBuffer());
205
+ expect(retrievedProposal.getSender()?.toString()).toBe(signers[1].address.toString());
206
+ });
207
+ it('should handle block proposals with different slots and same archive', async ()=>{
208
+ const archive = Fr.random();
209
+ const proposal1 = await mockBlockProposalForPool(signers[0], 100, archive);
210
+ const proposal2 = await mockBlockProposalForPool(signers[1], 200, archive);
211
+ const proposalId = archive.toString();
212
+ await ap.addBlockProposal(proposal1);
213
+ await ap.addBlockProposal(proposal2);
214
+ // Should get the latest one added
215
+ const retrievedProposal = await ap.getBlockProposal(proposalId);
216
+ expect(retrievedProposal).toBeDefined();
217
+ expect(retrievedProposal.toBuffer()).toEqual(proposal2.toBuffer());
218
+ expect(retrievedProposal.slotNumber).toBe(SlotNumber(200));
219
+ });
167
220
  });
168
- it('Should delete attestations older than a given slot', async ()=>{
169
- const slotNumbers = [
170
- 1,
171
- 2,
172
- 3,
173
- 69,
174
- 72,
175
- 74,
176
- 88,
177
- 420
178
- ];
179
- const attestations = (await Promise.all(slotNumbers.map((slotNumber)=>createAttestationsForSlot(slotNumber)))).flat();
180
- const proposalId = attestations[0].archive.toString();
181
- await ap.addAttestations(attestations);
182
- const attestationsForSlot1 = await ap.getAttestationsForSlot(BigInt(1), proposalId);
183
- expect(attestationsForSlot1.length).toBe(signers.length);
184
- const deleteAttestationsSpy = jest.spyOn(ap, 'deleteAttestationsForSlot');
185
- await ap.deleteAttestationsOlderThan(BigInt(73));
186
- const attestationsForSlot1AfterDelete = await ap.getAttestationsForSlot(BigInt(1), proposalId);
187
- expect(attestationsForSlot1AfterDelete.length).toBe(0);
188
- expect(deleteAttestationsSpy).toHaveBeenCalledTimes(5);
189
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(1));
190
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(2));
191
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(3));
192
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(69));
193
- expect(deleteAttestationsSpy).toHaveBeenCalledWith(BigInt(72));
221
+ describe('CheckpointProposal in attestation pool', ()=>{
222
+ const mockCheckpointProposalForPool = (signer, slotNumber, archive = Fr.random())=>{
223
+ const checkpointHeader = makeCheckpointHeader(1, {
224
+ slotNumber: SlotNumber(slotNumber)
225
+ });
226
+ const blockHeader = makeBlockHeader(1);
227
+ return makeCheckpointProposal({
228
+ signer,
229
+ checkpointHeader,
230
+ archiveRoot: archive,
231
+ lastBlock: {
232
+ blockHeader
233
+ }
234
+ });
235
+ };
236
+ it('should add and retrieve checkpoint proposal as core (without lastBlock)', async ()=>{
237
+ const slotNumber = 420;
238
+ const archive = Fr.random();
239
+ const proposal = await mockCheckpointProposalForPool(signers[0], slotNumber, archive);
240
+ const proposalId = proposal.archive.toString();
241
+ await ap.addCheckpointProposal(proposal);
242
+ const retrievedProposal = await ap.getCheckpointProposal(proposalId);
243
+ expect(retrievedProposal).toBeDefined();
244
+ // Should return core version (without lastBlock)
245
+ expect(retrievedProposal.toBuffer()).toEqual(proposal.toCore().toBuffer());
246
+ // Check hasCheckpointProposal with both id and object
247
+ expect(await ap.hasCheckpointProposal(proposalId)).toBe(true);
248
+ expect(await ap.hasCheckpointProposal(proposal)).toBe(true);
249
+ });
250
+ it('should extract and store block proposal when adding checkpoint proposal with lastBlock', async ()=>{
251
+ const slotNumber = 420;
252
+ const archive = Fr.random();
253
+ const proposal = await mockCheckpointProposalForPool(signers[0], slotNumber, archive);
254
+ const proposalId = proposal.archive.toString();
255
+ // Verify the proposal has a lastBlock
256
+ const expectedBlockProposal = proposal.getBlockProposal();
257
+ expect(expectedBlockProposal).toBeDefined();
258
+ await ap.addCheckpointProposal(proposal);
259
+ // The block proposal should be stored separately and retrievable
260
+ const retrievedBlockProposal = await ap.getBlockProposal(proposalId);
261
+ expect(retrievedBlockProposal).toBeDefined();
262
+ expect(retrievedBlockProposal.archive.toString()).toBe(archive.toString());
263
+ expect(retrievedBlockProposal.blockHeader.toBuffer()).toEqual(expectedBlockProposal.blockHeader.toBuffer());
264
+ });
265
+ it('should not store block proposal when checkpoint proposal has no lastBlock', async ()=>{
266
+ const slotNumber = 420;
267
+ const archive = Fr.random();
268
+ const checkpointHeader = makeCheckpointHeader(1, {
269
+ slotNumber: SlotNumber(slotNumber)
270
+ });
271
+ // Create a checkpoint proposal WITHOUT lastBlock
272
+ const proposal = await makeCheckpointProposal({
273
+ signer: signers[0],
274
+ checkpointHeader,
275
+ archiveRoot: archive
276
+ });
277
+ const proposalId = proposal.archive.toString();
278
+ await ap.addCheckpointProposal(proposal);
279
+ // The checkpoint proposal should be stored
280
+ const retrievedCheckpointProposal = await ap.getCheckpointProposal(proposalId);
281
+ expect(retrievedCheckpointProposal).toBeDefined();
282
+ // But no block proposal should be stored (archive key won't have a block proposal)
283
+ const retrievedBlockProposal = await ap.getBlockProposal(proposalId);
284
+ expect(retrievedBlockProposal).toBeUndefined();
285
+ });
286
+ it('should return undefined for non-existent checkpoint proposal', async ()=>{
287
+ const nonExistentId = Fr.random().toString();
288
+ const retrievedProposal = await ap.getCheckpointProposal(nonExistentId);
289
+ expect(retrievedProposal).toBeUndefined();
290
+ // Check hasCheckpointProposal returns false for non-existent proposal
291
+ expect(await ap.hasCheckpointProposal(nonExistentId)).toBe(false);
292
+ });
293
+ it('should update checkpoint proposal if added twice with same id', async ()=>{
294
+ const slotNumber = 420;
295
+ const archive = Fr.random();
296
+ const proposal1 = await mockCheckpointProposalForPool(signers[0], slotNumber, archive);
297
+ const proposalId = proposal1.archive.toString();
298
+ await ap.addCheckpointProposal(proposal1);
299
+ // Create a new proposal with same archive but different signer
300
+ const proposal2 = await mockCheckpointProposalForPool(signers[1], slotNumber, archive);
301
+ await ap.addCheckpointProposal(proposal2);
302
+ const retrievedProposal = await ap.getCheckpointProposal(proposalId);
303
+ expect(retrievedProposal).toBeDefined();
304
+ // Should have the second proposal (as core)
305
+ expect(retrievedProposal.toBuffer()).toEqual(proposal2.toCore().toBuffer());
306
+ expect(retrievedProposal.getSender()?.toString()).toBe(signers[1].address.toString());
307
+ });
308
+ it('should throw ProposalSlotCapExceededError when exceeding capacity', async ()=>{
309
+ const slotNumber = 420;
310
+ // Add MAX_PROPOSALS_PER_SLOT proposals
311
+ for(let i = 0; i < MAX_PROPOSALS_PER_SLOT; i++){
312
+ const proposal = await mockCheckpointProposalForPool(signers[i % NUMBER_OF_SIGNERS_PER_TEST], slotNumber);
313
+ await ap.addCheckpointProposal(proposal);
314
+ }
315
+ // The next proposal should throw
316
+ const extraProposal = await mockCheckpointProposalForPool(signers[0], slotNumber);
317
+ await expect(ap.addCheckpointProposal(extraProposal)).rejects.toThrow('Maximum checkpoint proposals per slot');
318
+ });
194
319
  });
195
320
  }
@@ -1,3 +1,3 @@
1
1
  export * from './attestation_pool.js';
2
2
  export * from './memory_attestation_pool.js';
3
- //# sourceMappingURL=index.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tZW1fcG9vbHMvYXR0ZXN0YXRpb25fcG9vbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsOEJBQThCLENBQUMifQ==
@@ -1,22 +1,40 @@
1
+ import { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
- import { BlockAttestation } from '@aztec/stdlib/p2p';
3
+ import { BlockProposal, CheckpointAttestation, CheckpointProposal, type CheckpointProposalCore } from '@aztec/stdlib/p2p';
3
4
  import { type TelemetryClient } from '@aztec/telemetry-client';
4
5
  import type { AttestationPool } from './attestation_pool.js';
6
+ export declare const MAX_PROPOSALS_PER_SLOT = 5;
7
+ export declare const ATTESTATION_CAP_BUFFER = 10;
5
8
  export declare class KvAttestationPool implements AttestationPool {
6
9
  private store;
7
10
  private log;
8
11
  private metrics;
9
- private attestations;
10
- private proposalsForSlot;
11
- private attestationsForProposal;
12
+ private proposals;
13
+ private checkpointAttestations;
14
+ private checkpointProposals;
15
+ private checkpointProposalsForSlot;
16
+ private checkpointAttestationsForProposal;
12
17
  constructor(store: AztecAsyncKVStore, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
18
+ private poolStats;
19
+ isEmpty(): Promise<boolean>;
13
20
  private getProposalKey;
14
21
  private getAttestationKey;
15
- addAttestations(attestations: BlockAttestation[]): Promise<void>;
16
- getAttestationsForSlot(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
17
- deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void>;
18
- deleteAttestationsForSlot(slot: bigint): Promise<void>;
19
- deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
20
- deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
22
+ addBlockProposal(blockProposal: BlockProposal): Promise<void>;
23
+ getBlockProposal(id: string): Promise<BlockProposal | undefined>;
24
+ hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
25
+ addCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
26
+ getCheckpointProposal(id: string): Promise<CheckpointProposalCore | undefined>;
27
+ hasCheckpointProposal(idOrProposal: string | CheckpointProposal): Promise<boolean>;
28
+ addCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
29
+ getCheckpointAttestationsForSlot(slot: SlotNumber): Promise<CheckpointAttestation[]>;
30
+ getCheckpointAttestationsForSlotAndProposal(slot: SlotNumber, proposalId: string): Promise<CheckpointAttestation[]>;
31
+ deleteCheckpointAttestationsOlderThan(oldestSlot: SlotNumber): Promise<void>;
32
+ private deleteCheckpointAttestationsForSlot;
33
+ hasCheckpointAttestation(attestation: CheckpointAttestation): Promise<boolean>;
34
+ canAddProposal(_block: BlockProposal): Promise<boolean>;
35
+ canAddCheckpointProposal(proposal: CheckpointProposal): Promise<boolean>;
36
+ canAddCheckpointAttestation(attestation: CheckpointAttestation, committeeSize: number): Promise<boolean>;
37
+ hasReachedCheckpointProposalCap(slot: SlotNumber): Promise<boolean>;
38
+ hasReachedCheckpointAttestationCap(slot: SlotNumber, proposalId: string, committeeSize: number): Promise<boolean>;
21
39
  }
22
- //# sourceMappingURL=kv_attestation_pool.d.ts.map
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2t2X2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSTdELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVGLE9BQU8sRUFDTCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixLQUFLLHNCQUFzQixFQUM1QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUluRixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RCxlQUFPLE1BQU0sc0JBQXNCLElBQUksQ0FBQztBQUN4QyxlQUFPLE1BQU0sc0JBQXNCLEtBQUssQ0FBQztBQUV6QyxxQkFBYSxpQkFBa0IsWUFBVyxlQUFlO0lBZXJELE9BQU8sQ0FBQyxLQUFLO0lBRWIsT0FBTyxDQUFDLEdBQUc7SUFoQmIsT0FBTyxDQUFDLE9BQU8sQ0FBNkM7SUFFNUQsT0FBTyxDQUFDLFNBQVMsQ0FHZjtJQUdGLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBZ0M7SUFDOUQsT0FBTyxDQUFDLG1CQUFtQixDQUFnQztJQUMzRCxPQUFPLENBQUMsMEJBQTBCLENBQXFDO0lBQ3ZFLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBcUM7SUFFOUUsWUFDVSxLQUFLLEVBQUUsaUJBQWlCLEVBQ2hDLFNBQVMsR0FBRSxlQUFzQyxFQUN6QyxHQUFHLHlDQUF5QyxFQVdyRDtJQUVELE9BQU8sQ0FBQyxTQUFTLENBSWY7SUFFVyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVF2QztJQUVELE9BQU8sQ0FBQyxjQUFjO0lBWXRCLE9BQU8sQ0FBQyxpQkFBaUI7SUFJWixnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FNekU7SUFFWSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBVzVFO0lBRVksZ0JBQWdCLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUdwRjtJQUVZLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBNEI5RTtJQUVZLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyxDQVcxRjtJQUVZLHFCQUFxQixDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc5RjtJQUVZLHlCQUF5QixDQUFDLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FzQzNGO0lBRVksZ0NBQWdDLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQVNoRztJQUVZLDJDQUEyQyxDQUN0RCxJQUFJLEVBQUUsVUFBVSxFQUNoQixVQUFVLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQWtCbEM7SUFFWSxxQ0FBcUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLeEY7WUFFYSxtQ0FBbUM7SUF3QnBDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBYzFGO0lBRU0sY0FBYyxDQUFDLE1BQU0sRUFBRSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUc3RDtJQUVZLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBTXBGO0lBRVksMkJBQTJCLENBQ3RDLFdBQVcsRUFBRSxxQkFBcUIsRUFDbEMsYUFBYSxFQUFFLE1BQU0sR0FDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQVNsQjtJQUVZLCtCQUErQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUcvRTtJQUVZLGtDQUFrQyxDQUM3QyxJQUFJLEVBQUUsVUFBVSxFQUNoQixVQUFVLEVBQUUsTUFBTSxFQUNsQixhQUFhLEVBQUUsTUFBTSxHQUNwQixPQUFPLENBQUMsT0FBTyxDQUFDLENBS2xCO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"kv_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/kv_attestation_pool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,iBAAkB,YAAW,eAAe;IAQrD,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,GAAG;IATb,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,uBAAuB,CAAqC;gBAG1D,KAAK,EAAE,iBAAiB,EAChC,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAyC;IAStD,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAIZ,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBhE,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsBrF,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9D,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtD,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrF,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBjF"}
1
+ {"version":3,"file":"kv_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/kv_attestation_pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,sBAAsB,EAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,qBAAa,iBAAkB,YAAW,eAAe;IAerD,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,GAAG;IAhBb,OAAO,CAAC,OAAO,CAA6C;IAE5D,OAAO,CAAC,SAAS,CAGf;IAGF,OAAO,CAAC,sBAAsB,CAAgC;IAC9D,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,0BAA0B,CAAqC;IACvE,OAAO,CAAC,iCAAiC,CAAqC;IAE9E,YACU,KAAK,EAAE,iBAAiB,EAChC,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAyC,EAWrD;IAED,OAAO,CAAC,SAAS,CAIf;IAEW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAQvC;IAED,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAIZ,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzE;IAEY,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAW5E;IAEY,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF;IAEY,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B9E;IAEY,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAW1F;IAEY,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAG9F;IAEY,yBAAyB,CAAC,YAAY,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC3F;IAEY,gCAAgC,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAShG;IAEY,2CAA2C,CACtD,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkBlC;IAEY,qCAAqC,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxF;YAEa,mCAAmC;IAwBpC,wBAAwB,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CAc1F;IAEM,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAG7D;IAEY,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAMpF;IAEY,2BAA2B,CACtC,WAAW,EAAE,qBAAqB,EAClC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CASlB;IAEY,+BAA+B,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAG/E;IAEY,kCAAkC,CAC7C,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CAKlB;CACF"}