@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,253 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import type { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
3
- import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
4
-
5
- import { PoolInstrumentation, PoolName, type PoolStatsCallback } from '../instrumentation.js';
6
- import type { AttestationPool } from './attestation_pool.js';
7
-
8
- export class InMemoryAttestationPool implements AttestationPool {
9
- private metrics: PoolInstrumentation<BlockAttestation>;
10
-
11
- private attestations: Map</*slot=*/ bigint, Map</*proposalId*/ string, Map</*address=*/ string, BlockAttestation>>>;
12
- private proposals: Map<string, BlockProposal>;
13
-
14
- constructor(
15
- telemetry: TelemetryClient = getTelemetryClient(),
16
- private log = createLogger('p2p:attestation_pool'),
17
- ) {
18
- this.attestations = new Map();
19
- this.proposals = new Map();
20
- this.metrics = new PoolInstrumentation(telemetry, PoolName.ATTESTATION_POOL, this.poolStats);
21
- }
22
-
23
- private poolStats: PoolStatsCallback = () => {
24
- return Promise.resolve({
25
- itemCount: this.attestations.size,
26
- });
27
- };
28
-
29
- public isEmpty(): Promise<boolean> {
30
- return Promise.resolve(this.attestations.size === 0);
31
- }
32
-
33
- public getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]> {
34
- return Promise.resolve(
35
- Array.from(this.attestations.get(slot)?.values() ?? []).flatMap(proposalAttestationMap =>
36
- Array.from(proposalAttestationMap.values()),
37
- ),
38
- );
39
- }
40
-
41
- public getAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<BlockAttestation[]> {
42
- const slotAttestationMap = this.attestations.get(slot);
43
- if (slotAttestationMap) {
44
- const proposalAttestationMap = slotAttestationMap.get(proposalId);
45
- if (proposalAttestationMap) {
46
- return Promise.resolve(Array.from(proposalAttestationMap.values()));
47
- }
48
- }
49
- return Promise.resolve([]);
50
- }
51
-
52
- public addAttestations(attestations: BlockAttestation[]): Promise<void> {
53
- for (const attestation of attestations) {
54
- // Perf: order and group by slot before insertion
55
- const slotNumber = attestation.payload.header.slotNumber;
56
-
57
- const proposalId = attestation.archive.toString();
58
- const sender = attestation.getSender();
59
-
60
- // Skip attestations with invalid signatures
61
- if (!sender) {
62
- this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber.toBigInt()}`, {
63
- signature: attestation.signature.toString(),
64
- slotNumber,
65
- proposalId,
66
- });
67
- continue;
68
- }
69
-
70
- const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber.toBigInt());
71
- const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
72
- proposalAttestationMap.set(sender.toString(), attestation);
73
-
74
- this.log.verbose(`Added attestation for slot ${slotNumber.toBigInt()} from ${sender}`, {
75
- signature: attestation.signature.toString(),
76
- slotNumber,
77
- address: sender,
78
- proposalId,
79
- });
80
- }
81
-
82
- return Promise.resolve();
83
- }
84
-
85
- #getNumberOfAttestationsInSlot(slot: bigint): number {
86
- let total = 0;
87
- const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
88
-
89
- if (slotAttestationMap) {
90
- for (const proposalAttestationMap of slotAttestationMap.values() ?? []) {
91
- total += proposalAttestationMap.size;
92
- }
93
- }
94
- return total;
95
- }
96
-
97
- public async deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void> {
98
- const olderThan = [];
99
-
100
- // Entries are iterated in insertion order, so we can break as soon as we find a slot that is older than the oldestSlot.
101
- // Note: this will only prune correctly if attestations are added in order of rising slot, it is important that we do not allow
102
- // insertion of attestations that are old. #(https://github.com/AztecProtocol/aztec-packages/issues/10322)
103
- const slots = this.attestations.keys();
104
- for (const slot of slots) {
105
- if (slot < oldestSlot) {
106
- olderThan.push(slot);
107
- } else {
108
- break;
109
- }
110
- }
111
-
112
- for (const oldSlot of olderThan) {
113
- await this.deleteAttestationsForSlot(oldSlot);
114
- }
115
- return Promise.resolve();
116
- }
117
-
118
- public deleteAttestationsForSlot(slot: bigint): Promise<void> {
119
- // We count the number of attestations we are removing
120
- const numberOfAttestations = this.#getNumberOfAttestationsInSlot(slot);
121
- const proposalIdsToDelete = this.attestations.get(slot)?.keys();
122
- let proposalIdsToDeleteCount = 0;
123
- proposalIdsToDelete?.forEach(proposalId => {
124
- this.proposals.delete(proposalId);
125
- proposalIdsToDeleteCount++;
126
- });
127
-
128
- this.attestations.delete(slot);
129
- this.log.verbose(
130
- `Removed ${numberOfAttestations} attestations and ${proposalIdsToDeleteCount} proposals for slot ${slot}`,
131
- );
132
-
133
- return Promise.resolve();
134
- }
135
-
136
- public deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void> {
137
- const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
138
- if (slotAttestationMap) {
139
- if (slotAttestationMap.has(proposalId)) {
140
- const numberOfAttestations = slotAttestationMap.get(proposalId)?.size ?? 0;
141
-
142
- slotAttestationMap.delete(proposalId);
143
-
144
- this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot} and proposal ${proposalId}`);
145
- }
146
- }
147
-
148
- this.proposals.delete(proposalId);
149
- return Promise.resolve();
150
- }
151
-
152
- public deleteAttestations(attestations: BlockAttestation[]): Promise<void> {
153
- for (const attestation of attestations) {
154
- const slotNumber = attestation.payload.header.slotNumber;
155
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
156
- if (slotAttestationMap) {
157
- const proposalId = attestation.archive.toString();
158
- const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
159
- if (proposalAttestationMap) {
160
- const sender = attestation.getSender();
161
-
162
- // Skip attestations with invalid signatures
163
- if (!sender) {
164
- this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber.toBigInt()}`);
165
- continue;
166
- }
167
-
168
- proposalAttestationMap.delete(sender.toString());
169
- this.log.debug(`Deleted attestation for slot ${slotNumber} from ${sender}`);
170
- }
171
- }
172
- }
173
- return Promise.resolve();
174
- }
175
-
176
- public hasAttestation(attestation: BlockAttestation): Promise<boolean> {
177
- const slotNumber = attestation.payload.header.slotNumber;
178
- const proposalId = attestation.archive.toString();
179
- const sender = attestation.getSender();
180
-
181
- // Attestations with invalid signatures are never in the pool
182
- if (!sender) {
183
- return Promise.resolve(false);
184
- }
185
-
186
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
187
- if (!slotAttestationMap) {
188
- return Promise.resolve(false);
189
- }
190
-
191
- const proposalAttestationMap = slotAttestationMap.get(proposalId);
192
- if (!proposalAttestationMap) {
193
- return Promise.resolve(false);
194
- }
195
-
196
- return Promise.resolve(proposalAttestationMap.has(sender.toString()));
197
- }
198
-
199
- public addBlockProposal(blockProposal: BlockProposal): Promise<void> {
200
- // We initialize slot-proposal mapping if it does not exist
201
- // This is important to ensure we can delete this proposal if there were not attestations for it
202
- const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber.toBigInt());
203
- slotProposalMapping.set(blockProposal.payload.archive.toString(), new Map<string, BlockAttestation>());
204
-
205
- this.proposals.set(blockProposal.payload.archive.toString(), blockProposal);
206
- return Promise.resolve();
207
- }
208
-
209
- public getBlockProposal(id: string): Promise<BlockProposal | undefined> {
210
- return Promise.resolve(this.proposals.get(id));
211
- }
212
-
213
- public hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean> {
214
- const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.payload.archive.toString();
215
- return Promise.resolve(this.proposals.has(id));
216
- }
217
- }
218
-
219
- /**
220
- * Get Slot or Default
221
- *
222
- * Fetch the slot mapping, if it does not exist, then create a mapping and return it
223
- * @param map - The map to fetch from
224
- * @param slot - The slot to fetch
225
- * @returns The slot mapping
226
- */
227
- function getSlotOrDefault(
228
- map: Map<bigint, Map<string, Map<string, BlockAttestation>>>,
229
- slot: bigint,
230
- ): Map<string, Map<string, BlockAttestation>> {
231
- if (!map.has(slot)) {
232
- map.set(slot, new Map<string, Map<string, BlockAttestation>>());
233
- }
234
- return map.get(slot)!;
235
- }
236
-
237
- /**
238
- * Get Proposal or Default
239
- *
240
- * Fetch the proposal mapping, if it does not exist, then create a mapping and return it
241
- * @param map - The map to fetch from
242
- * @param proposalId - The proposal id to fetch
243
- * @returns The proposal mapping
244
- */
245
- function getProposalOrDefault(
246
- map: Map<string, Map<string, BlockAttestation>>,
247
- proposalId: string,
248
- ): Map<string, BlockAttestation> {
249
- if (!map.has(proposalId)) {
250
- map.set(proposalId, new Map<string, BlockAttestation>());
251
- }
252
- return map.get(proposalId)!;
253
- }
@@ -1,283 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import type { TypedEventEmitter } from '@aztec/foundation/types';
3
- import type { TxAddedToPoolStats } from '@aztec/stdlib/stats';
4
- import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
5
- import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
6
-
7
- import EventEmitter from 'node:events';
8
-
9
- import { PoolInstrumentation, PoolName, type PoolStatsCallback } from '../instrumentation.js';
10
- import { getPendingTxPriority } from './priority.js';
11
- import type { TxPool, TxPoolEvents, TxPoolOptions } from './tx_pool.js';
12
-
13
- /**
14
- * In-memory implementation of the Transaction Pool.
15
- */
16
- export class InMemoryTxPool extends (EventEmitter as new () => TypedEventEmitter<TxPoolEvents>) implements TxPool {
17
- /**
18
- * Our tx pool, stored as a Map in-memory, with K: tx hash and V: the transaction.
19
- */
20
- private txs: Map<bigint, Tx>;
21
- private minedTxs: Map<bigint, number>;
22
- private pendingTxs: Set<bigint>;
23
- private deletedMinedTxHashes: Map<bigint, number>;
24
- private blockToDeletedMinedTxHash: Map<number, Set<bigint>>;
25
-
26
- private metrics: PoolInstrumentation<Tx>;
27
-
28
- /**
29
- * Class constructor for in-memory TxPool. Initiates our transaction pool as a JS Map.
30
- * @param log - A logger.
31
- */
32
- constructor(
33
- telemetry: TelemetryClient = getTelemetryClient(),
34
- private log = createLogger('p2p:tx_pool'),
35
- ) {
36
- super();
37
- this.txs = new Map<bigint, Tx>();
38
- this.minedTxs = new Map();
39
- this.pendingTxs = new Set();
40
- this.deletedMinedTxHashes = new Map();
41
- this.blockToDeletedMinedTxHash = new Map();
42
- this.metrics = new PoolInstrumentation(telemetry, PoolName.TX_POOL, this.countTx);
43
- }
44
-
45
- private countTx: PoolStatsCallback = () => {
46
- return Promise.resolve({
47
- itemCount: {
48
- mined: this.minedTxs.size,
49
- pending: this.pendingTxs.size,
50
- },
51
- });
52
- };
53
-
54
- public isEmpty(): Promise<boolean> {
55
- return Promise.resolve(this.txs.size === 0);
56
- }
57
-
58
- public markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void> {
59
- const keys = txHashes.map(x => x.toBigInt());
60
- for (const key of keys) {
61
- // If this tx was previously soft-deleted, remove it from the deleted sets
62
- if (this.deletedMinedTxHashes.has(key)) {
63
- const originalBlock = this.deletedMinedTxHashes.get(key)!;
64
- this.deletedMinedTxHashes.delete(key);
65
- // Remove from block-to-hash mapping
66
- const txHashesForBlock = this.blockToDeletedMinedTxHash.get(originalBlock);
67
- if (txHashesForBlock) {
68
- txHashesForBlock.delete(key);
69
- if (txHashesForBlock.size === 0) {
70
- this.blockToDeletedMinedTxHash.delete(originalBlock);
71
- }
72
- }
73
- }
74
- this.minedTxs.set(key, blockHeader.globalVariables.blockNumber);
75
- this.pendingTxs.delete(key);
76
- }
77
- return Promise.resolve();
78
- }
79
-
80
- public markMinedAsPending(txHashes: TxHash[]): Promise<void> {
81
- if (txHashes.length === 0) {
82
- return Promise.resolve();
83
- }
84
-
85
- const keys = txHashes.map(x => x.toBigInt());
86
- for (const key of keys) {
87
- this.minedTxs.delete(key);
88
-
89
- // only add back to the pending set if we have the tx object
90
- if (this.txs.has(key)) {
91
- this.pendingTxs.add(key);
92
- }
93
- }
94
-
95
- return Promise.resolve();
96
- }
97
-
98
- public async getPendingTxHashes(): Promise<TxHash[]> {
99
- const txs = (await this.getAllTxs()).sort(
100
- (tx1, tx2) => -getPendingTxPriority(tx1).localeCompare(getPendingTxPriority(tx2)),
101
- );
102
- const txHashes = await Promise.all(txs.map(tx => tx.getTxHash()));
103
-
104
- // No need to check deleted since pending txs are never soft-deleted
105
- return txHashes.filter(txHash => {
106
- const key = txHash.toBigInt();
107
- return this.pendingTxs.has(key);
108
- });
109
- }
110
-
111
- public getMinedTxHashes(): Promise<[TxHash, number][]> {
112
- return Promise.resolve(
113
- Array.from(this.minedTxs.entries()).map(([txHash, blockNumber]) => [TxHash.fromBigInt(txHash), blockNumber]),
114
- );
115
- }
116
-
117
- public getPendingTxCount(): Promise<number> {
118
- // Soft-deleted transactions are always mined, never pending
119
- return Promise.resolve(this.pendingTxs.size);
120
- }
121
-
122
- public getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined> {
123
- const key = txHash.toBigInt();
124
-
125
- if (this.deletedMinedTxHashes.has(key)) {
126
- return Promise.resolve('deleted');
127
- }
128
- if (this.minedTxs.has(key)) {
129
- return Promise.resolve('mined');
130
- }
131
- if (this.pendingTxs.has(key)) {
132
- return Promise.resolve('pending');
133
- }
134
- return Promise.resolve(undefined);
135
- }
136
-
137
- /**
138
- * Checks if a transaction exists in the pool and returns it.
139
- * @param txHash - The generated tx hash.
140
- * @returns The transaction, if found, 'undefined' otherwise.
141
- */
142
- public getTxByHash(txHash: TxHash): Promise<Tx | undefined> {
143
- const result = this.txs.get(txHash.toBigInt());
144
- return Promise.resolve(result === undefined ? undefined : Tx.clone(result));
145
- }
146
-
147
- getTxsByHash(txHashes: TxHash[]): Promise<(Tx | undefined)[]> {
148
- return Promise.all(txHashes.map(txHash => this.getTxByHash(txHash)));
149
- }
150
- hasTxs(txHashes: TxHash[]): Promise<boolean[]> {
151
- return Promise.resolve(txHashes.map(txHash => this.txs.has(txHash.toBigInt())));
152
- }
153
-
154
- async hasTx(txHash: TxHash): Promise<boolean> {
155
- const result = await this.hasTxs([txHash]);
156
- return result[0];
157
- }
158
-
159
- public getArchivedTxByHash(): Promise<Tx | undefined> {
160
- return Promise.resolve(undefined);
161
- }
162
-
163
- /**
164
- * Adds a list of transactions to the pool. Duplicates are ignored.
165
- * @param txs - An array of txs to be added to the pool.
166
- * @returns Empty promise.
167
- */
168
- public addTxs(txs: Tx[], opts: { source?: string } = {}): Promise<number> {
169
- const added: Tx[] = [];
170
- for (const tx of txs) {
171
- const txHash = tx.getTxHash();
172
- this.log.verbose(`Adding tx ${txHash.toString()} to pool`, {
173
- eventName: 'tx-added-to-pool',
174
- ...tx.getStats(),
175
- } satisfies TxAddedToPoolStats);
176
-
177
- const key = txHash.toBigInt();
178
- if (!this.txs.has(key)) {
179
- added.push(tx as Tx);
180
- this.txs.set(key, tx);
181
- }
182
-
183
- if (!this.minedTxs.has(key)) {
184
- this.metrics.recordSize(tx);
185
- this.pendingTxs.add(key);
186
- }
187
- }
188
- if (added.length > 0) {
189
- this.emit('txs-added', { ...opts, txs: added });
190
- }
191
- return Promise.resolve(added.length);
192
- }
193
-
194
- /**
195
- * Deletes transactions from the pool. Tx hashes that are not present are ignored.
196
- * Mined transactions are soft-deleted with a timestamp, pending transactions are permanently deleted.
197
- * @param txHashes - An array of tx hashes to be deleted from the tx pool.
198
- * @returns Empty promise.
199
- */
200
- public deleteTxs(txHashes: TxHash[], opts?: { permanently?: boolean }): Promise<void> {
201
- for (const txHash of txHashes) {
202
- const key = txHash.toBigInt();
203
- if (this.txs.has(key)) {
204
- if (this.minedTxs.has(key)) {
205
- const blockNumber = this.minedTxs.get(key)!;
206
- this.minedTxs.delete(key);
207
- // Soft-delete mined transactions: remove from mined set but keep in storage
208
- if (opts?.permanently) {
209
- // Permanently delete mined transactions if specified
210
- this.txs.delete(key);
211
- } else {
212
- this.deletedMinedTxHashes.set(key, blockNumber);
213
- if (!this.blockToDeletedMinedTxHash.has(blockNumber)) {
214
- this.blockToDeletedMinedTxHash.set(blockNumber, new Set());
215
- }
216
- this.blockToDeletedMinedTxHash.get(blockNumber)!.add(key);
217
- }
218
- } else {
219
- // Permanently delete pending transactions
220
- this.txs.delete(key);
221
- this.pendingTxs.delete(key);
222
- }
223
- }
224
- }
225
-
226
- return Promise.resolve();
227
- }
228
-
229
- /**
230
- * Gets all the transactions stored in the pool.
231
- * @returns Array of tx objects in the order they were added to the pool.
232
- */
233
- public getAllTxs(): Promise<Tx[]> {
234
- return Promise.resolve(Array.from(this.txs.values()).map(x => Tx.clone(x)));
235
- }
236
-
237
- /**
238
- * Gets the hashes of all transactions currently in the tx pool.
239
- * @returns An array of transaction hashes found in the tx pool.
240
- */
241
- public getAllTxHashes(): Promise<TxHash[]> {
242
- return Promise.resolve(Array.from(this.txs.keys()).map(x => TxHash.fromBigInt(x)));
243
- }
244
-
245
- updateConfig(_config: TxPoolOptions): void {}
246
-
247
- markTxsAsNonEvictable(_: TxHash[]): Promise<void> {
248
- return Promise.resolve();
249
- }
250
-
251
- /**
252
- * Permanently deletes deleted mined transactions from blocks up to and including the specified block number.
253
- * @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
254
- * @returns The number of transactions permanently deleted.
255
- */
256
- public cleanupDeletedMinedTxs(blockNumber: number): Promise<number> {
257
- let deletedCount = 0;
258
- const blocksToDelete: number[] = [];
259
-
260
- // Find all blocks up to the specified block number
261
- for (const [block, txHashes] of this.blockToDeletedMinedTxHash.entries()) {
262
- if (block <= blockNumber) {
263
- // Permanently delete all transactions from this block
264
- for (const txHash of txHashes) {
265
- this.txs.delete(txHash);
266
- this.deletedMinedTxHashes.delete(txHash);
267
- deletedCount++;
268
- }
269
- blocksToDelete.push(block);
270
- }
271
- }
272
-
273
- // Clean up block-to-hash mapping
274
- for (const block of blocksToDelete) {
275
- this.blockToDeletedMinedTxHash.delete(block);
276
- }
277
-
278
- if (deletedCount > 0) {
279
- this.log.debug(`Permanently deleted ${deletedCount} deleted mined txs from blocks up to ${blockNumber}`);
280
- }
281
- return Promise.resolve(deletedCount);
282
- }
283
- }
@@ -1,81 +0,0 @@
1
- import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import { NoCommitteeError } from '@aztec/ethereum';
3
- import { type Logger, createLogger } from '@aztec/foundation/log';
4
- import { type BlockProposal, type P2PValidator, PeerErrorSeverity } from '@aztec/stdlib/p2p';
5
-
6
- export class BlockProposalValidator implements P2PValidator<BlockProposal> {
7
- private epochCache: EpochCacheInterface;
8
- private logger: Logger;
9
- private txsPermitted: boolean;
10
-
11
- constructor(epochCache: EpochCacheInterface, opts: { txsPermitted: boolean }) {
12
- this.epochCache = epochCache;
13
- this.txsPermitted = opts.txsPermitted;
14
- this.logger = createLogger('p2p:block_proposal_validator');
15
- }
16
-
17
- async validate(block: BlockProposal): Promise<PeerErrorSeverity | undefined> {
18
- try {
19
- // Check signature validity first - invalid signatures are a high-severity issue
20
- const proposer = block.getSender();
21
- if (!proposer) {
22
- this.logger.debug(`Penalizing peer for block proposal with invalid signature`);
23
- return PeerErrorSeverity.MidToleranceError;
24
- }
25
-
26
- // Check if transactions are permitted when the proposal contains transaction hashes
27
- if (!this.txsPermitted && block.txHashes.length > 0) {
28
- this.logger.debug(
29
- `Penalizing peer for block proposal with ${block.txHashes.length} transaction(s) when transactions are not permitted`,
30
- );
31
- return PeerErrorSeverity.MidToleranceError;
32
- }
33
-
34
- const { currentProposer, nextProposer, currentSlot, nextSlot } =
35
- await this.epochCache.getProposerAttesterAddressInCurrentOrNextSlot();
36
-
37
- // Check that the attestation is for the current or next slot
38
- const slotNumberBigInt = block.payload.header.slotNumber.toBigInt();
39
- if (slotNumberBigInt !== currentSlot && slotNumberBigInt !== nextSlot) {
40
- this.logger.debug(`Penalizing peer for invalid slot number ${slotNumberBigInt}`, { currentSlot, nextSlot });
41
- return PeerErrorSeverity.HighToleranceError;
42
- }
43
-
44
- // Check that the block proposal is from the current or next proposer
45
- if (slotNumberBigInt === currentSlot && currentProposer !== undefined && !proposer.equals(currentProposer)) {
46
- this.logger.debug(`Penalizing peer for invalid proposer for current slot ${slotNumberBigInt}`, {
47
- currentProposer,
48
- nextProposer,
49
- proposer: proposer.toString(),
50
- });
51
- return PeerErrorSeverity.MidToleranceError;
52
- }
53
-
54
- if (slotNumberBigInt === nextSlot && nextProposer !== undefined && !proposer.equals(nextProposer)) {
55
- this.logger.debug(`Penalizing peer for invalid proposer for next slot ${slotNumberBigInt}`, {
56
- currentProposer,
57
- nextProposer,
58
- proposer: proposer.toString(),
59
- });
60
- return PeerErrorSeverity.MidToleranceError;
61
- }
62
-
63
- // Validate tx hashes for all txs embedded in the proposal
64
- if (!(await Promise.all(block.txs?.map(tx => tx.validateTxHash()) ?? [])).every(v => v)) {
65
- this.logger.warn(`Penalizing peer for invalid tx hashes in block proposal`, {
66
- proposer,
67
- slotNumber: slotNumberBigInt,
68
- });
69
- return PeerErrorSeverity.LowToleranceError;
70
- }
71
-
72
- return undefined;
73
- } catch (e) {
74
- // People shouldn't be sending us block proposals if the committee doesn't exist
75
- if (e instanceof NoCommitteeError) {
76
- return PeerErrorSeverity.LowToleranceError;
77
- }
78
- throw e;
79
- }
80
- }
81
- }
@@ -1 +0,0 @@
1
- export * from './block_proposal_validator.js';