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

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 (604) 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 +10 -10
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +45 -19
  7. package/dest/client/index.d.ts +1 -1
  8. package/dest/client/interface.d.ts +61 -33
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +52 -83
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +612 -318
  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 +304 -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 +95 -64
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +42 -21
  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/errors/tx-pool.error.d.ts +8 -0
  30. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  31. package/dest/errors/tx-pool.error.js +9 -0
  32. package/dest/index.d.ts +2 -1
  33. package/dest/index.d.ts.map +1 -1
  34. package/dest/index.js +1 -0
  35. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +114 -57
  36. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  37. package/dest/mem_pools/attestation_pool/attestation_pool.js +441 -3
  38. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  39. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  40. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +529 -288
  41. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  42. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  43. package/dest/mem_pools/attestation_pool/index.js +1 -2
  44. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  45. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  46. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  47. package/dest/mem_pools/index.d.ts +3 -2
  48. package/dest/mem_pools/index.d.ts.map +1 -1
  49. package/dest/mem_pools/index.js +1 -1
  50. package/dest/mem_pools/instrumentation.d.ts +9 -1
  51. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  52. package/dest/mem_pools/instrumentation.js +37 -10
  53. package/dest/mem_pools/interface.d.ts +6 -7
  54. package/dest/mem_pools/interface.d.ts.map +1 -1
  55. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +33 -58
  56. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  57. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  58. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  59. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  60. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  61. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  62. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  63. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  64. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  65. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  66. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  67. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  68. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  69. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  70. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  71. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  72. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  73. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  74. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  75. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  76. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  77. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  78. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  79. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  80. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  81. package/dest/mem_pools/tx_pool/index.js +0 -1
  82. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  83. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  84. package/dest/mem_pools/tx_pool/priority.js +6 -1
  85. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  86. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  87. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  88. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  89. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -24
  90. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  91. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  93. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  94. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  96. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  97. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  99. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  100. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  102. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  103. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +93 -0
  105. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  106. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  108. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  109. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  111. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +174 -0
  112. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  114. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  115. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  117. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  118. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  119. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  120. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  121. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  122. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  123. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  124. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  125. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +73 -0
  126. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  127. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  128. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  129. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  130. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  131. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  132. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  133. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  134. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  135. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +211 -0
  136. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  137. package/dest/mem_pools/tx_pool_v2/interfaces.js +9 -0
  138. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +119 -0
  139. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  140. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +193 -0
  141. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  142. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  143. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  144. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  145. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  146. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +354 -0
  147. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +60 -0
  148. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  149. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +161 -0
  150. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +77 -0
  151. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  152. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +905 -0
  153. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +7 -6
  154. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  155. package/dest/msg_validators/attestation_validator/attestation_validator.js +57 -24
  156. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  157. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  158. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +76 -0
  159. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  160. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  161. package/dest/msg_validators/attestation_validator/index.js +1 -0
  162. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  163. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  164. package/dest/msg_validators/clock_tolerance.js +37 -0
  165. package/dest/msg_validators/index.d.ts +2 -2
  166. package/dest/msg_validators/index.d.ts.map +1 -1
  167. package/dest/msg_validators/index.js +1 -1
  168. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  169. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  170. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  171. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  172. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  173. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  174. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  175. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  176. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  177. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  178. package/dest/msg_validators/proposal_validator/index.js +3 -0
  179. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  180. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  181. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  182. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  183. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  184. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  185. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  186. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  187. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  188. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  189. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  190. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  191. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  192. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  193. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  194. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  195. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  196. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  197. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  198. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  199. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  200. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  201. package/dest/msg_validators/tx_validator/factory.d.ts +120 -6
  202. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  203. package/dest/msg_validators/tx_validator/factory.js +228 -57
  204. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  205. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  206. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  207. package/dest/msg_validators/tx_validator/gas_validator.d.ts +59 -3
  208. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  209. package/dest/msg_validators/tx_validator/gas_validator.js +84 -52
  210. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  211. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  212. package/dest/msg_validators/tx_validator/index.js +2 -0
  213. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  214. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  215. package/dest/msg_validators/tx_validator/metadata_validator.js +2 -2
  216. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  217. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  218. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  219. package/dest/msg_validators/tx_validator/phases_validator.d.ts +3 -2
  220. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  221. package/dest/msg_validators/tx_validator/phases_validator.js +6 -4
  222. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  223. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  224. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  225. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  226. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  227. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +23 -5
  228. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  229. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  230. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  231. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  232. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  233. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  234. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  235. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  236. package/dest/services/data_store.d.ts +1 -1
  237. package/dest/services/data_store.d.ts.map +1 -1
  238. package/dest/services/data_store.js +10 -6
  239. package/dest/services/discv5/discV5_service.d.ts +1 -1
  240. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  241. package/dest/services/discv5/discV5_service.js +1 -1
  242. package/dest/services/dummy_service.d.ts +28 -4
  243. package/dest/services/dummy_service.d.ts.map +1 -1
  244. package/dest/services/dummy_service.js +49 -1
  245. package/dest/services/encoding.d.ts +3 -3
  246. package/dest/services/encoding.d.ts.map +1 -1
  247. package/dest/services/encoding.js +16 -14
  248. package/dest/services/gossipsub/index.d.ts +3 -0
  249. package/dest/services/gossipsub/index.d.ts.map +1 -0
  250. package/dest/services/gossipsub/index.js +2 -0
  251. package/dest/services/gossipsub/scoring.d.ts +21 -3
  252. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  253. package/dest/services/gossipsub/scoring.js +24 -7
  254. package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
  255. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  256. package/dest/services/gossipsub/topic_score_params.js +346 -0
  257. package/dest/services/index.d.ts +2 -1
  258. package/dest/services/index.d.ts.map +1 -1
  259. package/dest/services/index.js +1 -0
  260. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  261. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  262. package/dest/services/libp2p/instrumentation.js +36 -71
  263. package/dest/services/libp2p/libp2p_service.d.ts +112 -93
  264. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  265. package/dest/services/libp2p/libp2p_service.js +1158 -342
  266. package/dest/services/peer-manager/interface.d.ts +1 -1
  267. package/dest/services/peer-manager/metrics.d.ts +9 -2
  268. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  269. package/dest/services/peer-manager/metrics.js +39 -16
  270. package/dest/services/peer-manager/peer_manager.d.ts +2 -33
  271. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  272. package/dest/services/peer-manager/peer_manager.js +6 -12
  273. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  274. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  275. package/dest/services/peer-manager/peer_scoring.js +68 -4
  276. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +48 -0
  277. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  278. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +539 -0
  279. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  280. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  281. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  282. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +46 -0
  283. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  284. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  285. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +34 -0
  286. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  287. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +130 -0
  288. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +60 -0
  289. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  290. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +173 -0
  291. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  292. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  293. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  294. package/dest/services/reqresp/config.d.ts +1 -1
  295. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  296. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  297. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  298. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  299. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  300. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  301. package/dest/services/reqresp/constants.d.ts +12 -0
  302. package/dest/services/reqresp/constants.d.ts.map +1 -0
  303. package/dest/services/reqresp/constants.js +7 -0
  304. package/dest/services/reqresp/index.d.ts +1 -1
  305. package/dest/services/reqresp/interface.d.ts +13 -2
  306. package/dest/services/reqresp/interface.d.ts.map +1 -1
  307. package/dest/services/reqresp/interface.js +16 -2
  308. package/dest/services/reqresp/metrics.d.ts +6 -5
  309. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  310. package/dest/services/reqresp/metrics.js +17 -21
  311. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  312. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  313. package/dest/services/reqresp/protocols/auth.js +2 -2
  314. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  315. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  316. package/dest/services/reqresp/protocols/block.js +3 -2
  317. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  318. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  319. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  320. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  321. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  322. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  323. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +30 -9
  324. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  325. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +60 -14
  326. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  327. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  328. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  329. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  330. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  331. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  332. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  333. package/dest/services/reqresp/protocols/status.js +7 -3
  334. package/dest/services/reqresp/protocols/tx.d.ts +8 -3
  335. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  336. package/dest/services/reqresp/protocols/tx.js +20 -0
  337. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  338. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  339. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  340. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  341. package/dest/services/reqresp/reqresp.d.ts +6 -41
  342. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  343. package/dest/services/reqresp/reqresp.js +473 -51
  344. package/dest/services/reqresp/status.d.ts +2 -2
  345. package/dest/services/reqresp/status.d.ts.map +1 -1
  346. package/dest/services/service.d.ts +56 -4
  347. package/dest/services/service.d.ts.map +1 -1
  348. package/dest/services/tx_collection/config.d.ts +22 -1
  349. package/dest/services/tx_collection/config.d.ts.map +1 -1
  350. package/dest/services/tx_collection/config.js +56 -2
  351. package/dest/services/tx_collection/fast_tx_collection.d.ts +10 -12
  352. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  353. package/dest/services/tx_collection/fast_tx_collection.js +71 -44
  354. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  355. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  356. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  357. package/dest/services/tx_collection/file_store_tx_source.d.ts +37 -0
  358. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  359. package/dest/services/tx_collection/file_store_tx_source.js +90 -0
  360. package/dest/services/tx_collection/index.d.ts +3 -1
  361. package/dest/services/tx_collection/index.d.ts.map +1 -1
  362. package/dest/services/tx_collection/index.js +2 -0
  363. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  364. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  365. package/dest/services/tx_collection/instrumentation.js +11 -13
  366. package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
  367. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
  368. package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
  369. package/dest/services/tx_collection/proposal_tx_collector.d.ts +49 -0
  370. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  371. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  372. package/dest/services/tx_collection/slow_tx_collection.d.ts +9 -6
  373. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  374. package/dest/services/tx_collection/slow_tx_collection.js +61 -26
  375. package/dest/services/tx_collection/tx_collection.d.ts +31 -18
  376. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  377. package/dest/services/tx_collection/tx_collection.js +79 -7
  378. package/dest/services/tx_collection/tx_collection_sink.d.ts +19 -9
  379. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  380. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  381. package/dest/services/tx_collection/tx_source.d.ts +8 -3
  382. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  383. package/dest/services/tx_collection/tx_source.js +19 -2
  384. package/dest/services/tx_file_store/config.d.ts +16 -0
  385. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  386. package/dest/services/tx_file_store/config.js +22 -0
  387. package/dest/services/tx_file_store/index.d.ts +4 -0
  388. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  389. package/dest/services/tx_file_store/index.js +3 -0
  390. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  391. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  392. package/dest/services/tx_file_store/instrumentation.js +29 -0
  393. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  394. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  395. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  396. package/dest/services/tx_provider.d.ts +7 -5
  397. package/dest/services/tx_provider.d.ts.map +1 -1
  398. package/dest/services/tx_provider.js +20 -10
  399. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  400. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  401. package/dest/services/tx_provider_instrumentation.js +14 -14
  402. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  403. package/dest/test-helpers/get-ports.d.ts +1 -1
  404. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  405. package/dest/test-helpers/index.d.ts +3 -1
  406. package/dest/test-helpers/index.d.ts.map +1 -1
  407. package/dest/test-helpers/index.js +2 -0
  408. package/dest/test-helpers/make-enrs.d.ts +1 -1
  409. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  410. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  411. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  412. package/dest/test-helpers/mock-pubsub.d.ts +32 -6
  413. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  414. package/dest/test-helpers/mock-pubsub.js +105 -4
  415. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  416. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  417. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  418. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  419. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  420. package/dest/test-helpers/reqresp-nodes.js +4 -3
  421. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  422. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  423. package/dest/test-helpers/test_tx_provider.js +41 -0
  424. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  425. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  426. package/dest/test-helpers/testbench-utils.js +366 -0
  427. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  428. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  429. package/dest/testbench/p2p_client_testbench_worker.js +225 -127
  430. package/dest/testbench/parse_log_file.d.ts +1 -1
  431. package/dest/testbench/testbench.d.ts +1 -1
  432. package/dest/testbench/worker_client_manager.d.ts +51 -6
  433. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  434. package/dest/testbench/worker_client_manager.js +226 -39
  435. package/dest/types/index.d.ts +1 -1
  436. package/dest/util.d.ts +3 -2
  437. package/dest/util.d.ts.map +1 -1
  438. package/dest/util.js +11 -2
  439. package/dest/versioning.d.ts +1 -1
  440. package/package.json +19 -18
  441. package/src/bootstrap/bootstrap.ts +7 -4
  442. package/src/client/factory.ts +85 -43
  443. package/src/client/interface.ts +74 -34
  444. package/src/client/p2p_client.ts +281 -383
  445. package/src/client/test/tx_proposal_collector/README.md +227 -0
  446. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +345 -0
  447. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  448. package/src/config.ts +77 -30
  449. package/src/errors/attestation-pool.error.ts +13 -0
  450. package/src/errors/tx-pool.error.ts +12 -0
  451. package/src/index.ts +1 -0
  452. package/src/mem_pools/attestation_pool/attestation_pool.ts +514 -58
  453. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +614 -309
  454. package/src/mem_pools/attestation_pool/index.ts +9 -2
  455. package/src/mem_pools/attestation_pool/mocks.ts +22 -15
  456. package/src/mem_pools/index.ts +4 -1
  457. package/src/mem_pools/instrumentation.ts +48 -10
  458. package/src/mem_pools/interface.ts +5 -7
  459. package/src/mem_pools/tx_pool/README.md +270 -0
  460. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +367 -371
  461. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  462. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  463. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  464. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  465. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  466. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  467. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  468. package/src/mem_pools/tx_pool/index.ts +0 -1
  469. package/src/mem_pools/tx_pool/priority.ts +8 -1
  470. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  471. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +23 -17
  472. package/src/mem_pools/tx_pool_v2/README.md +275 -0
  473. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  474. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  475. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  476. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  477. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +121 -0
  478. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  479. package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
  480. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +209 -0
  481. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  482. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  483. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  484. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +90 -0
  485. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +31 -0
  486. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  487. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  488. package/src/mem_pools/tx_pool_v2/interfaces.ts +242 -0
  489. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +297 -0
  490. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  491. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +444 -0
  492. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +223 -0
  493. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1083 -0
  494. package/src/msg_validators/attestation_validator/attestation_validator.ts +45 -32
  495. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +94 -0
  496. package/src/msg_validators/attestation_validator/index.ts +1 -0
  497. package/src/msg_validators/clock_tolerance.ts +51 -0
  498. package/src/msg_validators/index.ts +1 -1
  499. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  500. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  501. package/src/msg_validators/proposal_validator/index.ts +3 -0
  502. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  503. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  504. package/src/msg_validators/tx_validator/README.md +115 -0
  505. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  506. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  507. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  508. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  509. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  510. package/src/msg_validators/tx_validator/factory.ts +375 -57
  511. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  512. package/src/msg_validators/tx_validator/gas_validator.ts +106 -54
  513. package/src/msg_validators/tx_validator/index.ts +2 -0
  514. package/src/msg_validators/tx_validator/metadata_validator.ts +19 -8
  515. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  516. package/src/msg_validators/tx_validator/phases_validator.ts +8 -4
  517. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  518. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  519. package/src/msg_validators/tx_validator/timestamp_validator.ts +30 -19
  520. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  521. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  522. package/src/services/data_store.ts +10 -7
  523. package/src/services/discv5/discV5_service.ts +1 -1
  524. package/src/services/dummy_service.ts +65 -2
  525. package/src/services/encoding.ts +13 -12
  526. package/src/services/gossipsub/README.md +641 -0
  527. package/src/services/gossipsub/index.ts +2 -0
  528. package/src/services/gossipsub/scoring.ts +29 -5
  529. package/src/services/gossipsub/topic_score_params.ts +487 -0
  530. package/src/services/index.ts +1 -0
  531. package/src/services/libp2p/instrumentation.ts +39 -71
  532. package/src/services/libp2p/libp2p_service.ts +883 -364
  533. package/src/services/peer-manager/metrics.ts +44 -16
  534. package/src/services/peer-manager/peer_manager.ts +7 -4
  535. package/src/services/peer-manager/peer_scoring.ts +70 -3
  536. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  537. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +678 -0
  538. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  539. package/src/services/reqresp/batch-tx-requester/interface.ts +53 -0
  540. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +161 -0
  541. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +244 -0
  542. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  543. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  544. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  545. package/src/services/reqresp/constants.ts +14 -0
  546. package/src/services/reqresp/interface.ts +30 -2
  547. package/src/services/reqresp/metrics.ts +36 -27
  548. package/src/services/reqresp/protocols/auth.ts +2 -2
  549. package/src/services/reqresp/protocols/block.ts +3 -2
  550. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  551. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  552. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +75 -10
  553. package/src/services/reqresp/protocols/status.ts +16 -12
  554. package/src/services/reqresp/protocols/tx.ts +23 -2
  555. package/src/services/reqresp/reqresp.ts +82 -23
  556. package/src/services/service.ts +73 -5
  557. package/src/services/tx_collection/config.ts +84 -2
  558. package/src/services/tx_collection/fast_tx_collection.ts +96 -49
  559. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  560. package/src/services/tx_collection/file_store_tx_source.ts +117 -0
  561. package/src/services/tx_collection/index.ts +6 -0
  562. package/src/services/tx_collection/instrumentation.ts +11 -13
  563. package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
  564. package/src/services/tx_collection/proposal_tx_collector.ts +113 -0
  565. package/src/services/tx_collection/slow_tx_collection.ts +70 -36
  566. package/src/services/tx_collection/tx_collection.ts +122 -24
  567. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  568. package/src/services/tx_collection/tx_source.ts +22 -3
  569. package/src/services/tx_file_store/config.ts +37 -0
  570. package/src/services/tx_file_store/index.ts +3 -0
  571. package/src/services/tx_file_store/instrumentation.ts +36 -0
  572. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  573. package/src/services/tx_provider.ts +29 -12
  574. package/src/services/tx_provider_instrumentation.ts +24 -14
  575. package/src/test-helpers/index.ts +2 -0
  576. package/src/test-helpers/make-test-p2p-clients.ts +3 -5
  577. package/src/test-helpers/mock-pubsub.ts +147 -10
  578. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  579. package/src/test-helpers/reqresp-nodes.ts +5 -7
  580. package/src/test-helpers/test_tx_provider.ts +64 -0
  581. package/src/test-helpers/testbench-utils.ts +430 -0
  582. package/src/testbench/p2p_client_testbench_worker.ts +350 -125
  583. package/src/testbench/worker_client_manager.ts +304 -42
  584. package/src/util.ts +19 -3
  585. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -30
  586. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  587. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -190
  588. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -25
  589. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  590. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -197
  591. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  592. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  593. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  594. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  595. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  596. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  597. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  598. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  599. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  600. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -256
  601. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -253
  602. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  603. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  604. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,238 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { Tx, TxHash } from '@aztec/stdlib/tx';
3
- import { getTelemetryClient } from '@aztec/telemetry-client';
4
- import EventEmitter from 'node:events';
5
- import { PoolInstrumentation, PoolName } from '../instrumentation.js';
6
- import { getPendingTxPriority } from './priority.js';
7
- /**
8
- * In-memory implementation of the Transaction Pool.
9
- */ export class InMemoryTxPool extends EventEmitter {
10
- log;
11
- /**
12
- * Our tx pool, stored as a Map in-memory, with K: tx hash and V: the transaction.
13
- */ txs;
14
- minedTxs;
15
- pendingTxs;
16
- deletedMinedTxHashes;
17
- blockToDeletedMinedTxHash;
18
- metrics;
19
- /**
20
- * Class constructor for in-memory TxPool. Initiates our transaction pool as a JS Map.
21
- * @param log - A logger.
22
- */ constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:tx_pool')){
23
- super(), this.log = log, this.countTx = ()=>{
24
- return Promise.resolve({
25
- itemCount: {
26
- mined: this.minedTxs.size,
27
- pending: this.pendingTxs.size
28
- }
29
- });
30
- };
31
- this.txs = new Map();
32
- this.minedTxs = new Map();
33
- this.pendingTxs = new Set();
34
- this.deletedMinedTxHashes = new Map();
35
- this.blockToDeletedMinedTxHash = new Map();
36
- this.metrics = new PoolInstrumentation(telemetry, PoolName.TX_POOL, this.countTx);
37
- }
38
- countTx;
39
- isEmpty() {
40
- return Promise.resolve(this.txs.size === 0);
41
- }
42
- markAsMined(txHashes, blockHeader) {
43
- const keys = txHashes.map((x)=>x.toBigInt());
44
- for (const key of keys){
45
- // If this tx was previously soft-deleted, remove it from the deleted sets
46
- if (this.deletedMinedTxHashes.has(key)) {
47
- const originalBlock = this.deletedMinedTxHashes.get(key);
48
- this.deletedMinedTxHashes.delete(key);
49
- // Remove from block-to-hash mapping
50
- const txHashesForBlock = this.blockToDeletedMinedTxHash.get(originalBlock);
51
- if (txHashesForBlock) {
52
- txHashesForBlock.delete(key);
53
- if (txHashesForBlock.size === 0) {
54
- this.blockToDeletedMinedTxHash.delete(originalBlock);
55
- }
56
- }
57
- }
58
- this.minedTxs.set(key, blockHeader.globalVariables.blockNumber);
59
- this.pendingTxs.delete(key);
60
- }
61
- return Promise.resolve();
62
- }
63
- markMinedAsPending(txHashes) {
64
- if (txHashes.length === 0) {
65
- return Promise.resolve();
66
- }
67
- const keys = txHashes.map((x)=>x.toBigInt());
68
- for (const key of keys){
69
- this.minedTxs.delete(key);
70
- // only add back to the pending set if we have the tx object
71
- if (this.txs.has(key)) {
72
- this.pendingTxs.add(key);
73
- }
74
- }
75
- return Promise.resolve();
76
- }
77
- async getPendingTxHashes() {
78
- const txs = (await this.getAllTxs()).sort((tx1, tx2)=>-getPendingTxPriority(tx1).localeCompare(getPendingTxPriority(tx2)));
79
- const txHashes = await Promise.all(txs.map((tx)=>tx.getTxHash()));
80
- // No need to check deleted since pending txs are never soft-deleted
81
- return txHashes.filter((txHash)=>{
82
- const key = txHash.toBigInt();
83
- return this.pendingTxs.has(key);
84
- });
85
- }
86
- getMinedTxHashes() {
87
- return Promise.resolve(Array.from(this.minedTxs.entries()).map(([txHash, blockNumber])=>[
88
- TxHash.fromBigInt(txHash),
89
- blockNumber
90
- ]));
91
- }
92
- getPendingTxCount() {
93
- // Soft-deleted transactions are always mined, never pending
94
- return Promise.resolve(this.pendingTxs.size);
95
- }
96
- getTxStatus(txHash) {
97
- const key = txHash.toBigInt();
98
- if (this.deletedMinedTxHashes.has(key)) {
99
- return Promise.resolve('deleted');
100
- }
101
- if (this.minedTxs.has(key)) {
102
- return Promise.resolve('mined');
103
- }
104
- if (this.pendingTxs.has(key)) {
105
- return Promise.resolve('pending');
106
- }
107
- return Promise.resolve(undefined);
108
- }
109
- /**
110
- * Checks if a transaction exists in the pool and returns it.
111
- * @param txHash - The generated tx hash.
112
- * @returns The transaction, if found, 'undefined' otherwise.
113
- */ getTxByHash(txHash) {
114
- const result = this.txs.get(txHash.toBigInt());
115
- return Promise.resolve(result === undefined ? undefined : Tx.clone(result));
116
- }
117
- getTxsByHash(txHashes) {
118
- return Promise.all(txHashes.map((txHash)=>this.getTxByHash(txHash)));
119
- }
120
- hasTxs(txHashes) {
121
- return Promise.resolve(txHashes.map((txHash)=>this.txs.has(txHash.toBigInt())));
122
- }
123
- async hasTx(txHash) {
124
- const result = await this.hasTxs([
125
- txHash
126
- ]);
127
- return result[0];
128
- }
129
- getArchivedTxByHash() {
130
- return Promise.resolve(undefined);
131
- }
132
- /**
133
- * Adds a list of transactions to the pool. Duplicates are ignored.
134
- * @param txs - An array of txs to be added to the pool.
135
- * @returns Empty promise.
136
- */ addTxs(txs, opts = {}) {
137
- const added = [];
138
- for (const tx of txs){
139
- const txHash = tx.getTxHash();
140
- this.log.verbose(`Adding tx ${txHash.toString()} to pool`, {
141
- eventName: 'tx-added-to-pool',
142
- ...tx.getStats()
143
- });
144
- const key = txHash.toBigInt();
145
- if (!this.txs.has(key)) {
146
- added.push(tx);
147
- this.txs.set(key, tx);
148
- }
149
- if (!this.minedTxs.has(key)) {
150
- this.metrics.recordSize(tx);
151
- this.pendingTxs.add(key);
152
- }
153
- }
154
- if (added.length > 0) {
155
- this.emit('txs-added', {
156
- ...opts,
157
- txs: added
158
- });
159
- }
160
- return Promise.resolve(added.length);
161
- }
162
- /**
163
- * Deletes transactions from the pool. Tx hashes that are not present are ignored.
164
- * Mined transactions are soft-deleted with a timestamp, pending transactions are permanently deleted.
165
- * @param txHashes - An array of tx hashes to be deleted from the tx pool.
166
- * @returns Empty promise.
167
- */ deleteTxs(txHashes, opts) {
168
- for (const txHash of txHashes){
169
- const key = txHash.toBigInt();
170
- if (this.txs.has(key)) {
171
- if (this.minedTxs.has(key)) {
172
- const blockNumber = this.minedTxs.get(key);
173
- this.minedTxs.delete(key);
174
- // Soft-delete mined transactions: remove from mined set but keep in storage
175
- if (opts?.permanently) {
176
- // Permanently delete mined transactions if specified
177
- this.txs.delete(key);
178
- } else {
179
- this.deletedMinedTxHashes.set(key, blockNumber);
180
- if (!this.blockToDeletedMinedTxHash.has(blockNumber)) {
181
- this.blockToDeletedMinedTxHash.set(blockNumber, new Set());
182
- }
183
- this.blockToDeletedMinedTxHash.get(blockNumber).add(key);
184
- }
185
- } else {
186
- // Permanently delete pending transactions
187
- this.txs.delete(key);
188
- this.pendingTxs.delete(key);
189
- }
190
- }
191
- }
192
- return Promise.resolve();
193
- }
194
- /**
195
- * Gets all the transactions stored in the pool.
196
- * @returns Array of tx objects in the order they were added to the pool.
197
- */ getAllTxs() {
198
- return Promise.resolve(Array.from(this.txs.values()).map((x)=>Tx.clone(x)));
199
- }
200
- /**
201
- * Gets the hashes of all transactions currently in the tx pool.
202
- * @returns An array of transaction hashes found in the tx pool.
203
- */ getAllTxHashes() {
204
- return Promise.resolve(Array.from(this.txs.keys()).map((x)=>TxHash.fromBigInt(x)));
205
- }
206
- updateConfig(_config) {}
207
- markTxsAsNonEvictable(_) {
208
- return Promise.resolve();
209
- }
210
- /**
211
- * Permanently deletes deleted mined transactions from blocks up to and including the specified block number.
212
- * @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
213
- * @returns The number of transactions permanently deleted.
214
- */ cleanupDeletedMinedTxs(blockNumber) {
215
- let deletedCount = 0;
216
- const blocksToDelete = [];
217
- // Find all blocks up to the specified block number
218
- for (const [block, txHashes] of this.blockToDeletedMinedTxHash.entries()){
219
- if (block <= blockNumber) {
220
- // Permanently delete all transactions from this block
221
- for (const txHash of txHashes){
222
- this.txs.delete(txHash);
223
- this.deletedMinedTxHashes.delete(txHash);
224
- deletedCount++;
225
- }
226
- blocksToDelete.push(block);
227
- }
228
- }
229
- // Clean up block-to-hash mapping
230
- for (const block of blocksToDelete){
231
- this.blockToDeletedMinedTxHash.delete(block);
232
- }
233
- if (deletedCount > 0) {
234
- this.log.debug(`Permanently deleted ${deletedCount} deleted mined txs from blocks up to ${blockNumber}`);
235
- }
236
- return Promise.resolve(deletedCount);
237
- }
238
- }
@@ -1,12 +0,0 @@
1
- import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import { type BlockProposal, type P2PValidator, PeerErrorSeverity } from '@aztec/stdlib/p2p';
3
- export declare class BlockProposalValidator implements P2PValidator<BlockProposal> {
4
- private epochCache;
5
- private logger;
6
- private txsPermitted;
7
- constructor(epochCache: EpochCacheInterface, opts: {
8
- txsPermitted: boolean;
9
- });
10
- validate(block: BlockProposal): Promise<PeerErrorSeverity | undefined>;
11
- }
12
- //# sourceMappingURL=block_proposal_validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"block_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/block_proposal_validator/block_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7F,qBAAa,sBAAuB,YAAW,YAAY,CAAC,aAAa,CAAC;IACxE,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAU;gBAElB,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE;IAMtE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;CAgE7E"}
@@ -1,70 +0,0 @@
1
- import { NoCommitteeError } from '@aztec/ethereum';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
4
- export class BlockProposalValidator {
5
- epochCache;
6
- logger;
7
- txsPermitted;
8
- constructor(epochCache, opts){
9
- this.epochCache = epochCache;
10
- this.txsPermitted = opts.txsPermitted;
11
- this.logger = createLogger('p2p:block_proposal_validator');
12
- }
13
- async validate(block) {
14
- try {
15
- // Check signature validity first - invalid signatures are a high-severity issue
16
- const proposer = block.getSender();
17
- if (!proposer) {
18
- this.logger.debug(`Penalizing peer for block proposal with invalid signature`);
19
- return PeerErrorSeverity.MidToleranceError;
20
- }
21
- // Check if transactions are permitted when the proposal contains transaction hashes
22
- if (!this.txsPermitted && block.txHashes.length > 0) {
23
- this.logger.debug(`Penalizing peer for block proposal with ${block.txHashes.length} transaction(s) when transactions are not permitted`);
24
- return PeerErrorSeverity.MidToleranceError;
25
- }
26
- const { currentProposer, nextProposer, currentSlot, nextSlot } = await this.epochCache.getProposerAttesterAddressInCurrentOrNextSlot();
27
- // Check that the attestation is for the current or next slot
28
- const slotNumberBigInt = block.payload.header.slotNumber.toBigInt();
29
- if (slotNumberBigInt !== currentSlot && slotNumberBigInt !== nextSlot) {
30
- this.logger.debug(`Penalizing peer for invalid slot number ${slotNumberBigInt}`, {
31
- currentSlot,
32
- nextSlot
33
- });
34
- return PeerErrorSeverity.HighToleranceError;
35
- }
36
- // Check that the block proposal is from the current or next proposer
37
- if (slotNumberBigInt === currentSlot && currentProposer !== undefined && !proposer.equals(currentProposer)) {
38
- this.logger.debug(`Penalizing peer for invalid proposer for current slot ${slotNumberBigInt}`, {
39
- currentProposer,
40
- nextProposer,
41
- proposer: proposer.toString()
42
- });
43
- return PeerErrorSeverity.MidToleranceError;
44
- }
45
- if (slotNumberBigInt === nextSlot && nextProposer !== undefined && !proposer.equals(nextProposer)) {
46
- this.logger.debug(`Penalizing peer for invalid proposer for next slot ${slotNumberBigInt}`, {
47
- currentProposer,
48
- nextProposer,
49
- proposer: proposer.toString()
50
- });
51
- return PeerErrorSeverity.MidToleranceError;
52
- }
53
- // Validate tx hashes for all txs embedded in the proposal
54
- if (!(await Promise.all(block.txs?.map((tx)=>tx.validateTxHash()) ?? [])).every((v)=>v)) {
55
- this.logger.warn(`Penalizing peer for invalid tx hashes in block proposal`, {
56
- proposer,
57
- slotNumber: slotNumberBigInt
58
- });
59
- return PeerErrorSeverity.LowToleranceError;
60
- }
61
- return undefined;
62
- } catch (e) {
63
- // People shouldn't be sending us block proposals if the committee doesn't exist
64
- if (e instanceof NoCommitteeError) {
65
- return PeerErrorSeverity.LowToleranceError;
66
- }
67
- throw e;
68
- }
69
- }
70
- }
@@ -1,2 +0,0 @@
1
- export * from './block_proposal_validator.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/block_proposal_validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -1 +0,0 @@
1
- export * from './block_proposal_validator.js';
@@ -1,256 +0,0 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { toArray } from '@aztec/foundation/iterable';
3
- import { createLogger } from '@aztec/foundation/log';
4
- import type { AztecAsyncKVStore, AztecAsyncMap, AztecAsyncMultiMap } from '@aztec/kv-store';
5
- import { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
6
- import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
7
-
8
- import { PoolInstrumentation, PoolName, type PoolStatsCallback } from '../instrumentation.js';
9
- import type { AttestationPool } from './attestation_pool.js';
10
-
11
- export class KvAttestationPool implements AttestationPool {
12
- private metrics: PoolInstrumentation<BlockAttestation>;
13
-
14
- private attestations: AztecAsyncMap<string, Buffer>;
15
- private proposals: AztecAsyncMap<
16
- /* proposal.payload.archive */ string,
17
- /* buffer representation of proposal */ Buffer
18
- >;
19
- private proposalsForSlot: AztecAsyncMultiMap<string, string>;
20
- private attestationsForProposal: AztecAsyncMultiMap<string, string>;
21
-
22
- constructor(
23
- private store: AztecAsyncKVStore,
24
- telemetry: TelemetryClient = getTelemetryClient(),
25
- private log = createLogger('aztec:attestation_pool'),
26
- ) {
27
- this.attestations = store.openMap('attestations');
28
- this.proposals = store.openMap('proposals');
29
- this.proposalsForSlot = store.openMultiMap('proposals_for_slot');
30
- this.attestationsForProposal = store.openMultiMap('attestations_for_proposal');
31
-
32
- this.metrics = new PoolInstrumentation(telemetry, PoolName.ATTESTATION_POOL, this.poolStats);
33
- }
34
-
35
- private poolStats: PoolStatsCallback = async () => {
36
- return {
37
- itemCount: await this.attestations.sizeAsync(),
38
- };
39
- };
40
-
41
- public async isEmpty(): Promise<boolean> {
42
- for await (const _ of this.attestations.entriesAsync()) {
43
- return false;
44
- }
45
- return true;
46
- }
47
-
48
- private getProposalKey(slot: number | bigint | Fr | string, proposalId: Fr | string | Buffer): string {
49
- const slotStr = typeof slot === 'string' ? slot : new Fr(slot).toString();
50
- const proposalIdStr =
51
- typeof proposalId === 'string'
52
- ? proposalId
53
- : Buffer.isBuffer(proposalId)
54
- ? Fr.fromBuffer(proposalId).toString()
55
- : proposalId.toString();
56
-
57
- return `${slotStr}-${proposalIdStr}`;
58
- }
59
-
60
- private getAttestationKey(slot: number | bigint | Fr | string, proposalId: Fr | string, address: string): string {
61
- return `${this.getProposalKey(slot, proposalId)}-${address}`;
62
- }
63
-
64
- public async addAttestations(attestations: BlockAttestation[]): Promise<void> {
65
- await this.store.transactionAsync(async () => {
66
- for (const attestation of attestations) {
67
- const slotNumber = attestation.payload.header.slotNumber;
68
- const proposalId = attestation.archive;
69
- const sender = attestation.getSender();
70
-
71
- // Skip attestations with invalid signatures
72
- if (!sender) {
73
- this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber.toBigInt()}`, {
74
- signature: attestation.signature.toString(),
75
- slotNumber,
76
- proposalId,
77
- });
78
- continue;
79
- }
80
-
81
- const address = sender.toString();
82
-
83
- await this.attestations.set(this.getAttestationKey(slotNumber, proposalId, address), attestation.toBuffer());
84
-
85
- await this.proposalsForSlot.set(slotNumber.toString(), proposalId.toString());
86
- await this.attestationsForProposal.set(
87
- this.getProposalKey(slotNumber, proposalId),
88
- this.getAttestationKey(slotNumber, proposalId, address),
89
- );
90
-
91
- this.log.verbose(`Added attestation for slot ${slotNumber.toBigInt()} from ${address}`, {
92
- signature: attestation.signature.toString(),
93
- slotNumber,
94
- address,
95
- proposalId,
96
- });
97
- }
98
- });
99
- }
100
-
101
- public async getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]> {
102
- const slotFr = new Fr(slot);
103
- const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
104
- const attestations: BlockAttestation[] = [];
105
-
106
- for (const proposalId of proposalIds) {
107
- attestations.push(...(await this.getAttestationsForSlotAndProposal(slot, proposalId)));
108
- }
109
-
110
- return attestations;
111
- }
112
-
113
- public async getAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<BlockAttestation[]> {
114
- const attestationIds = await toArray(
115
- this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)),
116
- );
117
- const attestations: BlockAttestation[] = [];
118
-
119
- // alternatively iterate this.attestaions starting from slot-proposal-EthAddress.zero
120
- for (const id of attestationIds) {
121
- const buf = await this.attestations.getAsync(id);
122
-
123
- if (!buf) {
124
- // this should not happen unless we lost writes
125
- throw new Error('Attestation not found ' + id);
126
- }
127
-
128
- const attestation = BlockAttestation.fromBuffer(buf);
129
- attestations.push(attestation);
130
- }
131
-
132
- return attestations;
133
- }
134
-
135
- public async deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void> {
136
- const olderThan = await toArray(this.proposalsForSlot.keysAsync({ end: new Fr(oldestSlot).toString() }));
137
- for (const oldSlot of olderThan) {
138
- await this.deleteAttestationsForSlot(BigInt(oldSlot));
139
- }
140
- }
141
-
142
- public async deleteAttestationsForSlot(slot: bigint): Promise<void> {
143
- const slotFr = new Fr(slot);
144
- let numberOfAttestations = 0;
145
- await this.store.transactionAsync(async () => {
146
- const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
147
- for (const proposalId of proposalIds) {
148
- const attestations = await toArray(
149
- this.attestationsForProposal.getValuesAsync(this.getProposalKey(slotFr, proposalId)),
150
- );
151
-
152
- numberOfAttestations += attestations.length;
153
- for (const attestation of attestations) {
154
- await this.attestations.delete(attestation);
155
- }
156
-
157
- await this.proposals.delete(proposalId);
158
- await this.attestationsForProposal.delete(this.getProposalKey(slotFr, proposalId));
159
- }
160
-
161
- this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot}`);
162
- });
163
- }
164
-
165
- public async deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void> {
166
- let numberOfAttestations = 0;
167
- await this.store.transactionAsync(async () => {
168
- const slotString = new Fr(slot).toString();
169
- const attestations = await toArray(
170
- this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)),
171
- );
172
-
173
- numberOfAttestations += attestations.length;
174
- for (const attestation of attestations) {
175
- await this.attestations.delete(attestation);
176
- }
177
-
178
- await this.proposals.delete(proposalId);
179
- await this.proposalsForSlot.deleteValue(slotString, proposalId);
180
- await this.attestationsForProposal.delete(this.getProposalKey(slotString, proposalId));
181
-
182
- this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot} and proposal ${proposalId}`);
183
- });
184
- }
185
-
186
- public async deleteAttestations(attestations: BlockAttestation[]): Promise<void> {
187
- await this.store.transactionAsync(async () => {
188
- for (const attestation of attestations) {
189
- const slotNumber = attestation.payload.header.slotNumber;
190
- const proposalId = attestation.archive;
191
- const sender = attestation.getSender();
192
-
193
- // Skip attestations with invalid signatures
194
- if (!sender) {
195
- this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber.toBigInt()}`);
196
- continue;
197
- }
198
-
199
- const address = sender.toString();
200
- const key = this.getAttestationKey(slotNumber, proposalId, address);
201
-
202
- if (await this.attestations.hasAsync(key)) {
203
- await this.attestations.delete(key);
204
- }
205
-
206
- await this.attestationsForProposal.deleteValue(
207
- this.getProposalKey(slotNumber, proposalId),
208
- this.getAttestationKey(slotNumber, proposalId, address),
209
- );
210
-
211
- this.log.debug(`Deleted attestation for slot ${slotNumber} from ${address}`);
212
- }
213
- });
214
- }
215
-
216
- public async hasAttestation(attestation: BlockAttestation): Promise<boolean> {
217
- const slotNumber = attestation.payload.header.slotNumber;
218
- const proposalId = attestation.archive;
219
- const sender = attestation.getSender();
220
-
221
- // Attestations with invalid signatures are never in the pool
222
- if (!sender) {
223
- return false;
224
- }
225
-
226
- const address = sender.toString();
227
- const key = this.getAttestationKey(slotNumber, proposalId, address);
228
-
229
- return await this.attestations.hasAsync(key);
230
- }
231
-
232
- public async getBlockProposal(id: string): Promise<BlockProposal | undefined> {
233
- const buffer = await this.proposals.getAsync(id);
234
- try {
235
- if (buffer && buffer.length > 0) {
236
- return BlockProposal.fromBuffer(buffer);
237
- }
238
- } catch {
239
- return Promise.resolve(undefined);
240
- }
241
-
242
- return Promise.resolve(undefined);
243
- }
244
-
245
- public async hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean> {
246
- const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.payload.archive.toString();
247
- return await this.proposals.hasAsync(id);
248
- }
249
-
250
- public async addBlockProposal(blockProposal: BlockProposal): Promise<void> {
251
- await this.store.transactionAsync(async () => {
252
- await this.proposalsForSlot.set(blockProposal.slotNumber.toString(), blockProposal.archive.toString());
253
- await this.proposals.set(blockProposal.payload.archive.toString(), blockProposal.toBuffer());
254
- });
255
- }
256
- }