@aztec/p2p 0.0.1-commit.21caa21 → 0.0.1-commit.21ecf947b

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 (535) 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 +5 -5
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +50 -14
  7. package/dest/client/interface.d.ts +53 -18
  8. package/dest/client/interface.d.ts.map +1 -1
  9. package/dest/client/p2p_client.d.ts +49 -51
  10. package/dest/client/p2p_client.d.ts.map +1 -1
  11. package/dest/client/p2p_client.js +578 -258
  12. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +305 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  18. package/dest/config.d.ts +36 -9
  19. package/dest/config.d.ts.map +1 -1
  20. package/dest/config.js +31 -15
  21. package/dest/index.d.ts +2 -1
  22. package/dest/index.d.ts.map +1 -1
  23. package/dest/index.js +1 -0
  24. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +111 -76
  25. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  26. package/dest/mem_pools/attestation_pool/attestation_pool.js +441 -3
  27. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  28. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  29. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +529 -289
  30. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  31. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/index.js +1 -2
  33. package/dest/mem_pools/attestation_pool/mocks.d.ts +11 -8
  34. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  35. package/dest/mem_pools/attestation_pool/mocks.js +17 -13
  36. package/dest/mem_pools/index.d.ts +3 -2
  37. package/dest/mem_pools/index.d.ts.map +1 -1
  38. package/dest/mem_pools/index.js +1 -1
  39. package/dest/mem_pools/instrumentation.d.ts +7 -1
  40. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  41. package/dest/mem_pools/instrumentation.js +31 -13
  42. package/dest/mem_pools/interface.d.ts +6 -7
  43. package/dest/mem_pools/interface.d.ts.map +1 -1
  44. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +37 -27
  45. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -335
  47. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  48. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  49. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  50. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  51. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  52. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  53. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  54. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  55. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  56. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  57. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  58. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  59. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  60. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  61. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  62. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  63. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  64. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  65. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  66. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  67. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  68. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  69. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  70. package/dest/mem_pools/tx_pool/index.js +0 -1
  71. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  72. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  73. package/dest/mem_pools/tx_pool/priority.js +6 -1
  74. package/dest/mem_pools/tx_pool/tx_pool.d.ts +11 -6
  75. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  76. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  77. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  78. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +30 -24
  79. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  80. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  81. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  82. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  83. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  84. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  85. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +102 -0
  86. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  87. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +242 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  90. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +119 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  93. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +93 -0
  94. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  95. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  96. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +89 -0
  97. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  98. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  99. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  100. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +131 -0
  101. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  102. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +17 -0
  103. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  104. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  105. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  106. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  107. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  108. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  109. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  110. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  111. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +72 -0
  112. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  113. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  114. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +63 -0
  115. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  116. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  117. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  118. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  119. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  120. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  121. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +201 -0
  122. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  123. package/dest/mem_pools/tx_pool_v2/interfaces.js +7 -0
  124. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +95 -0
  125. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  126. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +128 -0
  127. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  128. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  129. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  130. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +105 -0
  131. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  132. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +345 -0
  133. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +57 -0
  134. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  135. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +160 -0
  136. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +71 -0
  137. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  138. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +780 -0
  139. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -4
  140. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  141. package/dest/msg_validators/attestation_validator/attestation_validator.js +52 -19
  142. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +7 -7
  143. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  144. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +22 -13
  145. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  146. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  147. package/dest/msg_validators/clock_tolerance.js +37 -0
  148. package/dest/msg_validators/index.d.ts +2 -2
  149. package/dest/msg_validators/index.d.ts.map +1 -1
  150. package/dest/msg_validators/index.js +1 -1
  151. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  152. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  153. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  154. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  155. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  156. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  157. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  158. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  159. package/dest/msg_validators/proposal_validator/index.js +3 -0
  160. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  161. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  162. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  163. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  164. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  165. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  166. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +3 -3
  167. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  168. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  169. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  170. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  171. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  172. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  173. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  174. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  175. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  176. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  177. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  178. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  179. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  180. package/dest/msg_validators/tx_validator/factory.d.ts +10 -4
  181. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  182. package/dest/msg_validators/tx_validator/factory.js +22 -12
  183. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  184. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  185. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  186. package/dest/msg_validators/tx_validator/gas_validator.d.ts +3 -2
  187. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  188. package/dest/msg_validators/tx_validator/gas_validator.js +11 -16
  189. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  190. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  191. package/dest/msg_validators/tx_validator/index.js +1 -0
  192. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  193. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  194. package/dest/msg_validators/tx_validator/metadata_validator.js +2 -2
  195. package/dest/msg_validators/tx_validator/phases_validator.d.ts +3 -2
  196. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  197. package/dest/msg_validators/tx_validator/phases_validator.js +3 -3
  198. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  199. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  200. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  201. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  202. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  203. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +23 -5
  204. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  205. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  206. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  207. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  208. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  209. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  210. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  211. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  212. package/dest/services/data_store.d.ts +1 -1
  213. package/dest/services/data_store.d.ts.map +1 -1
  214. package/dest/services/data_store.js +10 -6
  215. package/dest/services/discv5/discV5_service.js +1 -1
  216. package/dest/services/dummy_service.d.ts +26 -2
  217. package/dest/services/dummy_service.d.ts.map +1 -1
  218. package/dest/services/dummy_service.js +48 -0
  219. package/dest/services/encoding.d.ts +2 -2
  220. package/dest/services/encoding.d.ts.map +1 -1
  221. package/dest/services/encoding.js +9 -8
  222. package/dest/services/gossipsub/index.d.ts +3 -0
  223. package/dest/services/gossipsub/index.d.ts.map +1 -0
  224. package/dest/services/gossipsub/index.js +2 -0
  225. package/dest/services/gossipsub/scoring.d.ts +21 -3
  226. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  227. package/dest/services/gossipsub/scoring.js +24 -7
  228. package/dest/services/gossipsub/topic_score_params.d.ts +161 -0
  229. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  230. package/dest/services/gossipsub/topic_score_params.js +324 -0
  231. package/dest/services/index.d.ts +2 -1
  232. package/dest/services/index.d.ts.map +1 -1
  233. package/dest/services/index.js +1 -0
  234. package/dest/services/libp2p/instrumentation.d.ts +1 -1
  235. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  236. package/dest/services/libp2p/instrumentation.js +30 -72
  237. package/dest/services/libp2p/libp2p_service.d.ts +108 -36
  238. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  239. package/dest/services/libp2p/libp2p_service.js +984 -326
  240. package/dest/services/peer-manager/metrics.d.ts +7 -2
  241. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  242. package/dest/services/peer-manager/metrics.js +33 -21
  243. package/dest/services/peer-manager/peer_manager.d.ts +2 -2
  244. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  245. package/dest/services/peer-manager/peer_manager.js +4 -12
  246. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  247. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  248. package/dest/services/peer-manager/peer_scoring.js +32 -6
  249. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +47 -0
  250. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  251. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +566 -0
  252. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  253. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  254. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  255. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  256. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  257. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  258. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +37 -0
  259. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  260. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +151 -0
  261. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +54 -0
  262. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  263. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +139 -0
  264. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  265. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  266. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  267. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  268. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  269. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  270. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  271. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  272. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  273. package/dest/services/reqresp/constants.d.ts +12 -0
  274. package/dest/services/reqresp/constants.d.ts.map +1 -0
  275. package/dest/services/reqresp/constants.js +7 -0
  276. package/dest/services/reqresp/interface.d.ts +13 -2
  277. package/dest/services/reqresp/interface.d.ts.map +1 -1
  278. package/dest/services/reqresp/interface.js +16 -2
  279. package/dest/services/reqresp/metrics.d.ts +6 -5
  280. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  281. package/dest/services/reqresp/metrics.js +17 -21
  282. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  283. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  284. package/dest/services/reqresp/protocols/auth.js +2 -2
  285. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  286. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  287. package/dest/services/reqresp/protocols/block.js +3 -2
  288. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  289. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  290. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  291. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  292. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  293. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  294. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +30 -7
  295. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  296. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +60 -14
  297. package/dest/services/reqresp/protocols/status.d.ts +5 -4
  298. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  299. package/dest/services/reqresp/protocols/status.js +7 -3
  300. package/dest/services/reqresp/protocols/tx.d.ts +8 -3
  301. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  302. package/dest/services/reqresp/protocols/tx.js +20 -0
  303. package/dest/services/reqresp/reqresp.d.ts +6 -1
  304. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  305. package/dest/services/reqresp/reqresp.js +471 -50
  306. package/dest/services/service.d.ts +53 -3
  307. package/dest/services/service.d.ts.map +1 -1
  308. package/dest/services/tx_collection/config.d.ts +22 -1
  309. package/dest/services/tx_collection/config.d.ts.map +1 -1
  310. package/dest/services/tx_collection/config.js +56 -2
  311. package/dest/services/tx_collection/fast_tx_collection.d.ts +10 -6
  312. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  313. package/dest/services/tx_collection/fast_tx_collection.js +34 -13
  314. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  315. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  316. package/dest/services/tx_collection/file_store_tx_collection.js +165 -0
  317. package/dest/services/tx_collection/file_store_tx_source.d.ts +28 -0
  318. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  319. package/dest/services/tx_collection/file_store_tx_source.js +59 -0
  320. package/dest/services/tx_collection/index.d.ts +3 -1
  321. package/dest/services/tx_collection/index.d.ts.map +1 -1
  322. package/dest/services/tx_collection/index.js +2 -0
  323. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  324. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  325. package/dest/services/tx_collection/instrumentation.js +10 -13
  326. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  327. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  328. package/dest/services/tx_collection/proposal_tx_collector.js +49 -0
  329. package/dest/services/tx_collection/slow_tx_collection.d.ts +8 -3
  330. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  331. package/dest/services/tx_collection/slow_tx_collection.js +55 -23
  332. package/dest/services/tx_collection/tx_collection.d.ts +27 -14
  333. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  334. package/dest/services/tx_collection/tx_collection.js +79 -7
  335. package/dest/services/tx_collection/tx_collection_sink.d.ts +15 -6
  336. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  337. package/dest/services/tx_collection/tx_collection_sink.js +13 -7
  338. package/dest/services/tx_file_store/config.d.ts +16 -0
  339. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  340. package/dest/services/tx_file_store/config.js +22 -0
  341. package/dest/services/tx_file_store/index.d.ts +4 -0
  342. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  343. package/dest/services/tx_file_store/index.js +3 -0
  344. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  345. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  346. package/dest/services/tx_file_store/instrumentation.js +29 -0
  347. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  348. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  349. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  350. package/dest/services/tx_provider.d.ts +6 -4
  351. package/dest/services/tx_provider.d.ts.map +1 -1
  352. package/dest/services/tx_provider.js +16 -6
  353. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  354. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  355. package/dest/services/tx_provider_instrumentation.js +14 -14
  356. package/dest/test-helpers/index.d.ts +3 -1
  357. package/dest/test-helpers/index.d.ts.map +1 -1
  358. package/dest/test-helpers/index.js +2 -0
  359. package/dest/test-helpers/make-test-p2p-clients.d.ts +3 -3
  360. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  361. package/dest/test-helpers/mock-pubsub.d.ts +27 -1
  362. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  363. package/dest/test-helpers/mock-pubsub.js +97 -2
  364. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  365. package/dest/test-helpers/reqresp-nodes.d.ts +2 -2
  366. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  367. package/dest/test-helpers/reqresp-nodes.js +2 -1
  368. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  369. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  370. package/dest/test-helpers/test_tx_provider.js +41 -0
  371. package/dest/test-helpers/testbench-utils.d.ts +160 -0
  372. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  373. package/dest/test-helpers/testbench-utils.js +366 -0
  374. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  375. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  376. package/dest/testbench/p2p_client_testbench_worker.js +219 -124
  377. package/dest/testbench/worker_client_manager.d.ts +51 -6
  378. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  379. package/dest/testbench/worker_client_manager.js +226 -39
  380. package/package.json +18 -18
  381. package/src/bootstrap/bootstrap.ts +7 -4
  382. package/src/client/factory.ts +92 -29
  383. package/src/client/interface.ts +63 -17
  384. package/src/client/p2p_client.ts +251 -302
  385. package/src/client/test/tx_proposal_collector/README.md +227 -0
  386. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +336 -0
  387. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  388. package/src/config.ts +58 -20
  389. package/src/index.ts +1 -0
  390. package/src/mem_pools/attestation_pool/attestation_pool.ts +510 -78
  391. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +614 -322
  392. package/src/mem_pools/attestation_pool/index.ts +9 -2
  393. package/src/mem_pools/attestation_pool/mocks.ts +22 -15
  394. package/src/mem_pools/index.ts +4 -1
  395. package/src/mem_pools/instrumentation.ts +39 -14
  396. package/src/mem_pools/interface.ts +5 -7
  397. package/src/mem_pools/tx_pool/README.md +270 -0
  398. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +367 -371
  399. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  400. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  401. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  402. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  403. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  404. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  405. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  406. package/src/mem_pools/tx_pool/index.ts +0 -1
  407. package/src/mem_pools/tx_pool/priority.ts +8 -1
  408. package/src/mem_pools/tx_pool/tx_pool.ts +11 -5
  409. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +23 -17
  410. package/src/mem_pools/tx_pool_v2/README.md +275 -0
  411. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  412. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  413. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +310 -0
  414. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +147 -0
  415. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +121 -0
  416. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +111 -0
  417. package/src/mem_pools/tx_pool_v2/eviction/index.ts +23 -0
  418. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +164 -0
  419. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  420. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  421. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +88 -0
  422. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +72 -0
  423. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +31 -0
  424. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  425. package/src/mem_pools/tx_pool_v2/interfaces.ts +233 -0
  426. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +211 -0
  427. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  428. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +433 -0
  429. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +218 -0
  430. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +924 -0
  431. package/src/msg_validators/attestation_validator/attestation_validator.ts +37 -22
  432. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +21 -18
  433. package/src/msg_validators/clock_tolerance.ts +51 -0
  434. package/src/msg_validators/index.ts +1 -1
  435. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  436. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  437. package/src/msg_validators/proposal_validator/index.ts +3 -0
  438. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  439. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  440. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +2 -2
  441. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  442. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  443. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  444. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  445. package/src/msg_validators/tx_validator/factory.ts +67 -25
  446. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  447. package/src/msg_validators/tx_validator/gas_validator.ts +17 -28
  448. package/src/msg_validators/tx_validator/index.ts +1 -0
  449. package/src/msg_validators/tx_validator/metadata_validator.ts +19 -8
  450. package/src/msg_validators/tx_validator/phases_validator.ts +5 -3
  451. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  452. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  453. package/src/msg_validators/tx_validator/timestamp_validator.ts +30 -19
  454. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  455. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  456. package/src/services/data_store.ts +10 -7
  457. package/src/services/discv5/discV5_service.ts +1 -1
  458. package/src/services/dummy_service.ts +63 -0
  459. package/src/services/encoding.ts +8 -7
  460. package/src/services/gossipsub/README.md +626 -0
  461. package/src/services/gossipsub/index.ts +2 -0
  462. package/src/services/gossipsub/scoring.ts +29 -5
  463. package/src/services/gossipsub/topic_score_params.ts +451 -0
  464. package/src/services/index.ts +1 -0
  465. package/src/services/libp2p/instrumentation.ts +32 -73
  466. package/src/services/libp2p/libp2p_service.ts +656 -316
  467. package/src/services/peer-manager/metrics.ts +39 -21
  468. package/src/services/peer-manager/peer_manager.ts +5 -4
  469. package/src/services/peer-manager/peer_scoring.ts +28 -4
  470. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  471. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +706 -0
  472. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  473. package/src/services/reqresp/batch-tx-requester/interface.ts +57 -0
  474. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +209 -0
  475. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +205 -0
  476. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  477. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  478. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  479. package/src/services/reqresp/constants.ts +14 -0
  480. package/src/services/reqresp/interface.ts +30 -2
  481. package/src/services/reqresp/metrics.ts +36 -27
  482. package/src/services/reqresp/protocols/auth.ts +2 -2
  483. package/src/services/reqresp/protocols/block.ts +3 -2
  484. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  485. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  486. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +75 -10
  487. package/src/services/reqresp/protocols/status.ts +16 -12
  488. package/src/services/reqresp/protocols/tx.ts +23 -2
  489. package/src/services/reqresp/reqresp.ts +79 -22
  490. package/src/services/service.ts +63 -4
  491. package/src/services/tx_collection/config.ts +84 -2
  492. package/src/services/tx_collection/fast_tx_collection.ts +47 -21
  493. package/src/services/tx_collection/file_store_tx_collection.ts +198 -0
  494. package/src/services/tx_collection/file_store_tx_source.ts +73 -0
  495. package/src/services/tx_collection/index.ts +6 -0
  496. package/src/services/tx_collection/instrumentation.ts +5 -13
  497. package/src/services/tx_collection/proposal_tx_collector.ts +112 -0
  498. package/src/services/tx_collection/slow_tx_collection.ts +67 -33
  499. package/src/services/tx_collection/tx_collection.ts +118 -21
  500. package/src/services/tx_collection/tx_collection_sink.ts +17 -7
  501. package/src/services/tx_file_store/config.ts +37 -0
  502. package/src/services/tx_file_store/index.ts +3 -0
  503. package/src/services/tx_file_store/instrumentation.ts +36 -0
  504. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  505. package/src/services/tx_provider.ts +27 -10
  506. package/src/services/tx_provider_instrumentation.ts +24 -14
  507. package/src/test-helpers/index.ts +2 -0
  508. package/src/test-helpers/make-test-p2p-clients.ts +3 -3
  509. package/src/test-helpers/mock-pubsub.ts +134 -4
  510. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  511. package/src/test-helpers/reqresp-nodes.ts +3 -2
  512. package/src/test-helpers/test_tx_provider.ts +64 -0
  513. package/src/test-helpers/testbench-utils.ts +430 -0
  514. package/src/testbench/p2p_client_testbench_worker.ts +339 -120
  515. package/src/testbench/worker_client_manager.ts +304 -42
  516. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -37
  517. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  518. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -213
  519. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -30
  520. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  521. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -219
  522. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  523. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  524. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  525. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  526. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  527. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -82
  528. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  529. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  530. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  531. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -298
  532. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -287
  533. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  534. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -97
  535. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,3 +1,4 @@
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
1
2
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
3
  import type { P2PBootstrapApi } from '@aztec/stdlib/interfaces/server';
3
4
  import { type TelemetryClient } from '@aztec/telemetry-client';
@@ -9,10 +10,10 @@ import type { BootnodeConfig } from '../config.js';
9
10
  export declare class BootstrapNode implements P2PBootstrapApi {
10
11
  private store;
11
12
  private telemetry;
12
- private logger;
13
13
  private node?;
14
14
  private peerId?;
15
- constructor(store: AztecAsyncKVStore, telemetry: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
15
+ private logger;
16
+ constructor(store: AztecAsyncKVStore, telemetry: TelemetryClient, bindings?: LoggerBindings);
16
17
  /**
17
18
  * Starts the bootstrap node.
18
19
  * @param config - A partial P2P configuration. No need for TCP values as well as aztec node specific values.
@@ -35,4 +36,4 @@ export declare class BootstrapNode implements P2PBootstrapApi {
35
36
  getEncodedEnr(): Promise<any>;
36
37
  getRoutingTable(): Promise<any>;
37
38
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYm9vdHN0cmFwL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBc0IsS0FBSyxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUtoRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkQ7O0dBRUc7QUFDSCxxQkFBYSxhQUFjLFlBQVcsZUFBZTtJQUtqRCxPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxNQUFNO0lBTmhCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBaUM7SUFDOUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFTO0lBRXhCLFlBQ1UsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixTQUFTLEVBQUUsZUFBZSxFQUMxQixNQUFNLHlDQUFnQyxFQUM1QztJQUVKOzs7O09BSUc7SUFDVSxLQUFLLENBQUMsTUFBTSxFQUFFLGNBQWMsaUJBaUZ4QztJQUVEOzs7T0FHRztJQUNVLElBQUksa0JBS2hCO0lBRUQsT0FBTyxDQUFDLGlCQUFpQjtJQU16QixPQUFPLENBQUMsWUFBWTtJQU1wQjs7O09BR0c7SUFDSSxTQUFTLFdBR2Y7SUFFTSxNQUFNLFFBR1o7SUFFTSxhQUFhLGlCQUduQjtJQUVNLGVBQWUsaUJBR3JCO0NBQ0YifQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYm9vdHN0cmFwL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQXNCLEtBQUssZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFLaEQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSW5EOztHQUVHO0FBQ0gscUJBQWEsYUFBYyxZQUFXLGVBQWU7SUFNakQsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsU0FBUztJQU5uQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQWlDO0lBQzlDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBUztJQUN4QixPQUFPLENBQUMsTUFBTSxDQUFTO0lBRXZCLFlBQ1UsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixTQUFTLEVBQUUsZUFBZSxFQUNsQyxRQUFRLENBQUMsRUFBRSxjQUFjLEVBRzFCO0lBRUQ7Ozs7T0FJRztJQUNVLEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxpQkFpRnhDO0lBRUQ7OztPQUdHO0lBQ1UsSUFBSSxrQkFLaEI7SUFFRCxPQUFPLENBQUMsaUJBQWlCO0lBTXpCLE9BQU8sQ0FBQyxZQUFZO0lBTXBCOzs7T0FHRztJQUNJLFNBQVMsV0FHZjtJQUVNLE1BQU0sUUFHWjtJQUVNLGFBQWEsaUJBR25CO0lBRU0sZUFBZSxpQkFHckI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAKjD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,IAAI,CAAC,CAAiC;IAC9C,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB,YACU,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,eAAe,EAC1B,MAAM,yCAAgC,EAC5C;IAEJ;;;;OAIG;IACU,KAAK,CAAC,MAAM,EAAE,cAAc,iBAiFxC;IAED;;;OAGG;IACU,IAAI,kBAKhB;IAED,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACI,SAAS,WAGf;IAEM,MAAM,QAGZ;IAEM,aAAa,iBAGnB;IAEM,eAAe,iBAGrB;CACF"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAMjD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IANnB,OAAO,CAAC,IAAI,CAAC,CAAiC;IAC9C,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IAEvB,YACU,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,eAAe,EAClC,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAED;;;;OAIG;IACU,KAAK,CAAC,MAAM,EAAE,cAAc,iBAiFxC;IAED;;;OAGG;IACU,IAAI,kBAKhB;IAED,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACI,SAAS,WAGf;IAEM,MAAM,QAGZ;IAEM,aAAa,iBAGnB;IAEM,eAAe,iBAGrB;CACF"}
@@ -10,14 +10,14 @@ import { convertToMultiaddr, getPeerIdPrivateKey, getPublicIp } from '../util.js
10
10
  */ export class BootstrapNode {
11
11
  store;
12
12
  telemetry;
13
- logger;
14
13
  node;
15
14
  peerId;
16
- constructor(store, telemetry, logger = createLogger('p2p:bootstrap')){
15
+ logger;
16
+ constructor(store, telemetry, bindings){
17
17
  this.store = store;
18
18
  this.telemetry = telemetry;
19
- this.logger = logger;
20
19
  this.node = undefined;
20
+ this.logger = createLogger('p2p:bootstrap', bindings);
21
21
  }
22
22
  /**
23
23
  * Starts the bootstrap node.
@@ -46,7 +46,7 @@ import { convertToMultiaddr, getPeerIdPrivateKey, getPublicIp } from '../util.js
46
46
  const { enr: ourEnr, peerId } = await createBootnodeENRandPeerId(peerIdPrivateKey.getValue(), p2pIp, config.p2pBroadcastPort, config.l1ChainId);
47
47
  this.peerId = peerId;
48
48
  this.logger.debug(`Starting bootstrap node ${peerId} listening on ${listenAddrUdp.toString()}`);
49
- const metricsRegistry = new OtelMetricsAdapter(this.telemetry);
49
+ const metricsRegistry = new OtelMetricsAdapter(this.telemetry, this.logger.getBindings());
50
50
  this.node = Discv5.create({
51
51
  enr: ourEnr,
52
52
  peerId,
@@ -11,14 +11,14 @@ import { P2PClientType } from '@aztec/stdlib/p2p';
11
11
  import { type TelemetryClient } from '@aztec/telemetry-client';
12
12
  import { P2PClient } from '../client/p2p_client.js';
13
13
  import type { P2PConfig } from '../config.js';
14
- import type { AttestationPool } from '../mem_pools/attestation_pool/attestation_pool.js';
15
- import { type TxPool } from '../mem_pools/tx_pool/index.js';
14
+ import { type AttestationPoolApi } from '../mem_pools/attestation_pool/attestation_pool.js';
15
+ import type { TxPoolV2 } from '../mem_pools/tx_pool_v2/interfaces.js';
16
16
  import { LibP2PService } from '../services/index.js';
17
17
  import { type TxSource } from '../services/tx_collection/tx_source.js';
18
18
  export type P2PClientDeps<T extends P2PClientType> = {
19
- txPool?: TxPool;
19
+ txPool?: TxPoolV2;
20
20
  store?: AztecAsyncKVStore;
21
- attestationPool?: T extends P2PClientType.Full ? AttestationPool : undefined;
21
+ attestationPool?: AttestationPoolApi;
22
22
  logger?: Logger;
23
23
  txCollectionNodeSources?: TxSource[];
24
24
  p2pServiceFactory?: (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService<T>>;
@@ -28,4 +28,4 @@ export declare const P2P_ARCHIVE_STORE_NAME = "p2p-archive";
28
28
  export declare const P2P_PEER_STORE_NAME = "p2p-peers";
29
29
  export declare const P2P_ATTESTATION_STORE_NAME = "p2p-attestation";
30
30
  export declare function createP2PClient<T extends P2PClientType>(clientType: T, inputConfig: P2PConfig & DataStoreConfig & ChainConfig, archiver: L2BlockSource & ContractDataSource, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, epochCache: EpochCacheInterface, packageVersion: string, dateProvider?: DateProvider, telemetry?: TelemetryClient, deps?: P2PClientDeps<T>): Promise<P2PClient<T>>;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFHekYsT0FBTyxFQUFpQixLQUFLLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFHL0YsTUFBTSxNQUFNLGFBQWEsQ0FBQyxDQUFDLFNBQVMsYUFBYSxJQUFJO0lBQ25ELE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixLQUFLLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUMxQixlQUFlLENBQUMsRUFBRSxDQUFDLFNBQVMsYUFBYSxDQUFDLElBQUksR0FBRyxlQUFlLEdBQUcsU0FBUyxDQUFDO0lBQzdFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQix1QkFBdUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3ZHLENBQUM7QUFFRixlQUFPLE1BQU0sY0FBYyxRQUFRLENBQUM7QUFDcEMsZUFBTyxNQUFNLHNCQUFzQixnQkFBZ0IsQ0FBQztBQUNwRCxlQUFPLE1BQU0sbUJBQW1CLGNBQWMsQ0FBQztBQUMvQyxlQUFPLE1BQU0sMEJBQTBCLG9CQUFvQixDQUFDO0FBRTVELHdCQUFzQixlQUFlLENBQUMsQ0FBQyxTQUFTLGFBQWEsRUFDM0QsVUFBVSxFQUFFLENBQUMsRUFDYixXQUFXLEVBQUUsU0FBUyxHQUFHLGVBQWUsR0FBRyxXQUFXLEVBQ3RELFFBQVEsRUFBRSxhQUFhLEdBQUcsa0JBQWtCLEVBQzVDLGFBQWEsRUFBRSw2QkFBNkIsRUFDNUMsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQzlDLFVBQVUsRUFBRSxtQkFBbUIsRUFDL0IsY0FBYyxFQUFFLE1BQU0sRUFDdEIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLFNBQVMsR0FBRSxlQUFzQyxFQUNqRCxJQUFJLEdBQUUsYUFBYSxDQUFDLENBQUMsQ0FBTSx5QkF5RjVCIn0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFhLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFtQixLQUFLLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFN0csT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFPdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3JELE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBMEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUkvRixNQUFNLE1BQU0sYUFBYSxDQUFDLENBQUMsU0FBUyxhQUFhLElBQUk7SUFDbkQsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDO0lBQ2xCLEtBQUssQ0FBQyxFQUFFLGlCQUFpQixDQUFDO0lBQzFCLGVBQWUsQ0FBQyxFQUFFLGtCQUFrQixDQUFDO0lBQ3JDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQix1QkFBdUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3ZHLENBQUM7QUFFRixlQUFPLE1BQU0sY0FBYyxRQUFRLENBQUM7QUFDcEMsZUFBTyxNQUFNLHNCQUFzQixnQkFBZ0IsQ0FBQztBQUNwRCxlQUFPLE1BQU0sbUJBQW1CLGNBQWMsQ0FBQztBQUMvQyxlQUFPLE1BQU0sMEJBQTBCLG9CQUFvQixDQUFDO0FBRTVELHdCQUFzQixlQUFlLENBQUMsQ0FBQyxTQUFTLGFBQWEsRUFDM0QsVUFBVSxFQUFFLENBQUMsRUFDYixXQUFXLEVBQUUsU0FBUyxHQUFHLGVBQWUsR0FBRyxXQUFXLEVBQ3RELFFBQVEsRUFBRSxhQUFhLEdBQUcsa0JBQWtCLEVBQzVDLGFBQWEsRUFBRSw2QkFBNkIsRUFDNUMsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQzlDLFVBQVUsRUFBRSxtQkFBbUIsRUFDL0IsY0FBYyxFQUFFLE1BQU0sRUFDdEIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLFNBQVMsR0FBRSxlQUFzQyxFQUNqRCxJQUFJLEdBQUUsYUFBYSxDQUFDLENBQUMsQ0FBTSx5QkFpSjVCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/client/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAGzF,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,wCAAwC,CAAC;AAG/F,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,SAAS,aAAa,CAAC,IAAI,GAAG,eAAe,GAAG,SAAS,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACvG,CAAC;AAEF,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,wBAAsB,eAAe,CAAC,CAAC,SAAS,aAAa,EAC3D,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,SAAS,GAAG,eAAe,GAAG,WAAW,EACtD,QAAQ,EAAE,aAAa,GAAG,kBAAkB,EAC5C,aAAa,EAAE,6BAA6B,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,mBAAmB,EAC/B,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,YAAiC,EAC/C,SAAS,GAAE,eAAsC,EACjD,IAAI,GAAE,aAAa,CAAC,CAAC,CAAM,yBAyF5B"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/client/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAa,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAmB,KAAK,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAOtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,wCAAwC,CAAC;AAI/F,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IACnD,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACvG,CAAC;AAEF,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,wBAAsB,eAAe,CAAC,CAAC,SAAS,aAAa,EAC3D,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,SAAS,GAAG,eAAe,GAAG,WAAW,EACtD,QAAQ,EAAE,aAAa,GAAG,kBAAkB,EAC5C,aAAa,EAAE,6BAA6B,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,mBAAmB,EAC/B,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,YAAiC,EAC/C,SAAS,GAAE,eAAsC,EACjD,IAAI,GAAE,aAAa,CAAC,CAAC,CAAM,yBAiJ5B"}
@@ -1,15 +1,20 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { DateProvider } from '@aztec/foundation/timer';
3
3
  import { createStore } from '@aztec/kv-store/lmdb-v2';
4
- import { P2PClientType } from '@aztec/stdlib/p2p';
4
+ import { MerkleTreeId } from '@aztec/stdlib/trees';
5
5
  import { getTelemetryClient } from '@aztec/telemetry-client';
6
6
  import { P2PClient } from '../client/p2p_client.js';
7
- import { KvAttestationPool } from '../mem_pools/attestation_pool/kv_attestation_pool.js';
8
- import { AztecKVTxPool } from '../mem_pools/tx_pool/index.js';
7
+ import { AttestationPool } from '../mem_pools/attestation_pool/attestation_pool.js';
8
+ import { AztecKVTxPoolV2 } from '../mem_pools/tx_pool_v2/tx_pool_v2.js';
9
+ import { AggregateTxValidator } from '../msg_validators/tx_validator/aggregate_tx_validator.js';
10
+ import { BlockHeaderTxValidator } from '../msg_validators/tx_validator/block_header_validator.js';
11
+ import { DoubleSpendTxValidator } from '../msg_validators/tx_validator/double_spend_validator.js';
9
12
  import { DummyP2PService } from '../services/dummy_service.js';
10
13
  import { LibP2PService } from '../services/index.js';
14
+ import { createFileStoreTxSources } from '../services/tx_collection/file_store_tx_source.js';
11
15
  import { TxCollection } from '../services/tx_collection/tx_collection.js';
12
16
  import { createNodeRpcTxSources } from '../services/tx_collection/tx_source.js';
17
+ import { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
13
18
  import { configureP2PClientAddresses, createLibP2PPeerIdFromPrivateKey, getPeerIdPrivateKey } from '../util.js';
14
19
  export const P2P_STORE_NAME = 'p2p';
15
20
  export const P2P_ARCHIVE_STORE_NAME = 'p2p-archive';
@@ -24,17 +29,41 @@ export async function createP2PClient(clientType, inputConfig, archiver, proofVe
24
29
  if (config.bootstrapNodes.length === 0) {
25
30
  logger.warn('No bootstrap nodes have been provided. Set the BOOTSTRAP_NODES environment variable in order to join the P2P network');
26
31
  }
27
- const store = deps.store ?? await createStore(P2P_STORE_NAME, 2, config, createLogger('p2p:lmdb-v2'));
28
- const archive = await createStore(P2P_ARCHIVE_STORE_NAME, 1, config, createLogger('p2p-archive:lmdb-v2'));
29
- const peerStore = await createStore(P2P_PEER_STORE_NAME, 1, config, createLogger('p2p-peer:lmdb-v2'));
30
- const attestationStore = await createStore(P2P_ATTESTATION_STORE_NAME, 1, config, createLogger('p2p-attestation:lmdb-v2'));
32
+ const bindings = logger.getBindings();
33
+ const store = deps.store ?? await createStore(P2P_STORE_NAME, 2, config, bindings);
34
+ const archive = await createStore(P2P_ARCHIVE_STORE_NAME, 1, config, bindings);
35
+ const peerStore = await createStore(P2P_PEER_STORE_NAME, 1, config, bindings);
36
+ const attestationStore = await createStore(P2P_ATTESTATION_STORE_NAME, 1, config, bindings);
31
37
  const l1Constants = await archiver.getL1Constants();
38
+ const rollupAddress = inputConfig.l1Contracts.rollupAddress.toString().toLowerCase().replace(/^0x/, '');
39
+ const txFileStoreBasePath = `aztec-${inputConfig.l1ChainId}-${inputConfig.rollupVersion}-0x${rollupAddress}`;
40
+ /** Validator factory for pool re-validation (double-spend + block header only). */ const createPoolTxValidator = async ()=>{
41
+ await worldStateSynchronizer.syncImmediate();
42
+ return new AggregateTxValidator(new DoubleSpendTxValidator({
43
+ nullifiersExist: async (nullifiers)=>{
44
+ const merkleTree = worldStateSynchronizer.getCommitted();
45
+ const indices = await merkleTree.findLeafIndices(MerkleTreeId.NULLIFIER_TREE, nullifiers);
46
+ return indices.map((index)=>index !== undefined);
47
+ }
48
+ }, bindings), new BlockHeaderTxValidator({
49
+ getArchiveIndices: (archives)=>{
50
+ const merkleTree = worldStateSynchronizer.getCommitted();
51
+ return merkleTree.findLeafIndices(MerkleTreeId.ARCHIVE, archives);
52
+ }
53
+ }, bindings));
54
+ };
55
+ const txPool = deps.txPool ?? new AztecKVTxPoolV2(store, archive, {
56
+ l2BlockSource: archiver,
57
+ worldStateSynchronizer,
58
+ createTxValidator: createPoolTxValidator
59
+ }, telemetry, {
60
+ maxPendingTxCount: config.maxPendingTxCount,
61
+ archivedTxLimit: config.archivedTxLimit,
62
+ minTxPoolAgeMs: config.minTxPoolAgeMs
63
+ }, dateProvider);
32
64
  const mempools = {
33
- txPool: deps.txPool ?? new AztecKVTxPool(store, archive, worldStateSynchronizer, telemetry, {
34
- maxTxPoolSize: config.maxTxPoolSize,
35
- archivedTxLimit: config.archivedTxLimit
36
- }),
37
- attestationPool: clientType === P2PClientType.Full ? deps.attestationPool ?? new KvAttestationPool(attestationStore, telemetry) : undefined
65
+ txPool,
66
+ attestationPool: deps.attestationPool ?? new AttestationPool(attestationStore, telemetry)
38
67
  };
39
68
  const p2pService = await createP2PService(config, clientType, archiver, proofVerifier, worldStateSynchronizer, epochCache, store, peerStore, mempools, deps.p2pServiceFactory, packageVersion, logger.createChild('libp2p_service'), telemetry);
40
69
  const nodeSources = [
@@ -46,8 +75,15 @@ export async function createP2PClient(clientType, inputConfig, archiver, proofVe
46
75
  nodes: nodeSources.map((n)=>n.getInfo())
47
76
  });
48
77
  }
49
- const txCollection = new TxCollection(p2pService, nodeSources, l1Constants, mempools.txPool, config, dateProvider, telemetry, logger.createChild('tx-collection'));
50
- return new P2PClient(clientType, store, archiver, mempools, p2pService, txCollection, config, dateProvider, telemetry);
78
+ const fileStoreSources = await createFileStoreTxSources(config.txCollectionFileStoreUrls, txFileStoreBasePath, logger.createChild('file-store-tx-source'));
79
+ if (fileStoreSources.length > 0) {
80
+ logger.info(`Using ${fileStoreSources.length} file store sources for tx collection.`, {
81
+ stores: fileStoreSources.map((s)=>s.getInfo())
82
+ });
83
+ }
84
+ const txCollection = new TxCollection(p2pService.getBatchTxRequesterService(), nodeSources, l1Constants, mempools.txPool, config, fileStoreSources, dateProvider, telemetry, logger.createChild('tx-collection'));
85
+ const txFileStore = await TxFileStore.create(mempools.txPool, config, txFileStoreBasePath, logger.createChild('tx-file-store'), telemetry);
86
+ return new P2PClient(clientType, store, archiver, mempools, p2pService, txCollection, txFileStore, epochCache, config, dateProvider, telemetry);
51
87
  }
52
88
  async function createP2PService(config, clientType, archiver, proofVerifier, worldStateSynchronizer, epochCache, store, peerStore, mempools, p2pServiceFactory, packageVersion, logger, telemetry) {
53
89
  if (!config.p2pEnabled) {
@@ -1,13 +1,14 @@
1
+ import type { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import type { EthAddress, L2BlockId } from '@aztec/stdlib/block';
2
3
  import type { P2PApiFull } from '@aztec/stdlib/interfaces/server';
3
- import type { BlockAttestation, BlockProposal, P2PClientType } from '@aztec/stdlib/p2p';
4
- import type { Tx, TxHash } from '@aztec/stdlib/tx';
4
+ import type { BlockProposal, CheckpointAttestation, CheckpointProposal, P2PClientType } from '@aztec/stdlib/p2p';
5
+ import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
5
6
  import type { PeerId } from '@libp2p/interface';
6
7
  import type { ENR } from '@nethermindeth/enr';
7
8
  import type { P2PConfig } from '../config.js';
8
9
  import type { AuthRequest, StatusMessage } from '../services/index.js';
9
10
  import type { ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators } from '../services/reqresp/interface.js';
10
- import type { P2PBlockReceivedCallback } from '../services/service.js';
11
+ import type { DuplicateAttestationInfo, DuplicateProposalInfo, P2PBlockReceivedCallback, P2PCheckpointReceivedCallback } from '../services/service.js';
11
12
  /**
12
13
  * Enum defining the possible states of the p2p client.
13
14
  */
@@ -40,8 +41,14 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
40
41
  * @param proposal - the block proposal
41
42
  */
42
43
  broadcastProposal(proposal: BlockProposal): Promise<void>;
43
- /** Broadcasts block attestations to other peers. */
44
- broadcastAttestations(attestations: BlockAttestation[]): Promise<void>;
44
+ /**
45
+ * Broadcasts a checkpoint proposal (last block in a checkpoint) to other peers.
46
+ *
47
+ * @param proposal - the checkpoint proposal
48
+ */
49
+ broadcastCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
50
+ /** Broadcasts checkpoint attestations to other peers. */
51
+ broadcastCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
45
52
  /**
46
53
  * Registers a callback from the validator client that determines how to behave when
47
54
  * foreign block proposals are received
@@ -50,12 +57,27 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
50
57
  */
51
58
  registerBlockProposalHandler(callback: P2PBlockReceivedCallback): void;
52
59
  /**
53
- * Request a list of transactions from another peer by their tx hashes.
54
- * @param txHashes - Hashes of the txs to query.
55
- * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
56
- * @returns A list of transactions or undefined if the transactions are not found.
60
+ * Registers a callback from the validator client that determines how to behave when
61
+ * foreign checkpoint proposals are received
62
+ *
63
+ * @param handler - A function taking a received checkpoint proposal and producing attestations
64
+ */
65
+ registerCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
66
+ /**
67
+ * Registers a callback invoked when a duplicate proposal is detected (equivocation).
68
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
69
+ *
70
+ * @param callback - Function called with info about the duplicate proposal
57
71
  */
58
- requestTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId): Promise<Tx[]>;
72
+ registerDuplicateProposalCallback(callback: (info: DuplicateProposalInfo) => void): void;
73
+ /**
74
+ * Registers a callback invoked when a duplicate attestation is detected (equivocation).
75
+ * A validator signing attestations for different proposals at the same slot.
76
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
77
+ *
78
+ * @param callback - Function called with info about the duplicate attestation
79
+ */
80
+ registerDuplicateAttestationCallback(callback: (info: DuplicateAttestationInfo) => void): void;
59
81
  /**
60
82
  * Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
61
83
  * @param tx - The transaction.
@@ -68,11 +90,10 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
68
90
  **/
69
91
  addTxsToPool(txs: Tx[]): Promise<number>;
70
92
  /**
71
- * Deletes 'txs' from the pool, given hashes.
72
- * NOT used if we use sendTx as reconcileTxPool will handle this.
73
- * @param txHashes - Hashes to check.
93
+ * Handles failed transaction execution by removing txs from the pool.
94
+ * @param txHashes - Hashes of the transactions that failed execution.
74
95
  **/
75
- deleteTxs(txHashes: TxHash[]): Promise<void>;
96
+ handleFailedExecution(txHashes: TxHash[]): Promise<void>;
76
97
  /**
77
98
  * Returns a transaction in the transaction pool by its hash.
78
99
  * @param txHash - Hash of tx to return.
@@ -112,13 +133,25 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
112
133
  getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
113
134
  /** Returns an iterator over pending txs on the mempool. */
114
135
  iteratePendingTxs(): AsyncIterableIterator<Tx>;
136
+ /** Returns an iterator over pending txs that have been in the pool long enough to be eligible for block building. */
137
+ iterateEligiblePendingTxs(): AsyncIterableIterator<Tx>;
115
138
  /** Returns the number of pending txs in the mempool. */
116
139
  getPendingTxCount(): Promise<number>;
117
140
  /**
118
- * Marks transactions as non-evictable in the pool.
119
- * @param txHashes - Hashes of the transactions to mark as non-evictable.
141
+ * Protects existing transactions by hash for a given slot.
142
+ * Returns hashes of transactions that weren't found in the pool.
143
+ * @param txHashes - Hashes of the transactions to protect.
144
+ * @param blockHeader - The block header providing slot context.
145
+ * @returns Hashes of transactions not found in the pool.
146
+ */
147
+ protectTxs(txHashes: TxHash[], blockHeader: BlockHeader): Promise<TxHash[]>;
148
+ /**
149
+ * Prepares the pool for a new slot.
150
+ * Unprotects transactions from earlier slots and validates them before
151
+ * returning to pending state.
152
+ * @param slotNumber - The slot number to prepare for
120
153
  */
121
- markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
154
+ prepareForSlot(slotNumber: SlotNumber): Promise<void>;
122
155
  /**
123
156
  * Starts the p2p client.
124
157
  * @returns A promise signalling the completion of the block sync.
@@ -151,7 +184,9 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
151
184
  clear(): Promise<void>;
152
185
  addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
153
186
  handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
187
+ /** Checks if any block proposals exist for the given slot. */
188
+ hasBlockProposalsForSlot(slot: SlotNumber): Promise<boolean>;
154
189
  /** If node running this P2P stack is validator, passes in validator address to P2P layer */
155
190
  registerThisValidatorAddresses(address: EthAddress[]): void;
156
191
  };
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hGLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUNWLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzdCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RTs7R0FFRztBQUNILG9CQUFZLGNBQWM7SUFDeEIsSUFBSSxJQUFBO0lBQ0osUUFBUSxJQUFBO0lBQ1IsT0FBTyxJQUFBO0lBQ1AsT0FBTyxJQUFBO0NBQ1I7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxZQUFZO0lBQzNCOztPQUVHO0lBQ0gsS0FBSyxFQUFFLGNBQWMsQ0FBQztJQUN0Qjs7T0FFRztJQUNILGVBQWUsRUFBRSxTQUFTLENBQUM7Q0FDNUI7QUFFRDs7SUFFSTtBQUNKLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxTQUFTLGFBQWEsR0FBRyxhQUFhLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRztJQUM5RTs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsUUFBUSxFQUFFLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFMUQsb0RBQW9EO0lBQ3BELHFCQUFxQixDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV2RTs7Ozs7T0FLRztJQUdILDRCQUE0QixDQUFDLFFBQVEsRUFBRSx3QkFBd0IsR0FBRyxJQUFJLENBQUM7SUFFdkU7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUUxRTs7O1FBR0k7SUFDSixNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFOUI7Ozs7UUFJSTtJQUNKLFlBQVksQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpDOzs7O1FBSUk7SUFDSixTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU3Qzs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRTdEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV0RTs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUVyRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sR0FBRyxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVoRzs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRTdEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFFbEYsMkRBQTJEO0lBQzNELGlCQUFpQixJQUFJLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLHdEQUF3RDtJQUN4RCxpQkFBaUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFckM7OztPQUdHO0lBQ0gscUJBQXFCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RDs7O09BR0c7SUFDSCxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZCOzs7T0FHRztJQUNILElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdEI7OztPQUdHO0lBQ0gsT0FBTyxJQUFJLE9BQU8sQ0FBQztJQUVuQjs7T0FFRztJQUNILFNBQVMsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFbkM7O09BRUc7SUFDSCxNQUFNLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQztJQUUxQiwrQkFBK0I7SUFDL0IsV0FBVyxJQUFJLElBQUksQ0FBQztJQUVwQixlQUFlLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0QsOEJBQThCO0lBQzlCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRW5DLHFCQUFxQjtJQUNyQixLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZCLHFCQUFxQixDQUNuQixXQUFXLEVBQUUsa0JBQWtCLEVBQy9CLE9BQU8sRUFBRSx5QkFBeUIsRUFDbEMsU0FBUyxDQUFDLEVBQUUsNEJBQTRCLENBQUMsa0JBQWtCLENBQUMsR0FDM0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpCLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFNUYsNEZBQTRGO0lBQzVGLDhCQUE4QixDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUM7Q0FDN0QsQ0FBQyJ9
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pILE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFDVixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM3QixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUNWLHdCQUF3QixFQUN4QixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLDZCQUE2QixFQUM5QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDOztHQUVHO0FBQ0gsb0JBQVksY0FBYztJQUN4QixJQUFJLElBQUE7SUFDSixRQUFRLElBQUE7SUFDUixPQUFPLElBQUE7SUFDUCxPQUFPLElBQUE7Q0FDUjtBQUVEOztHQUVHO0FBQ0gs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
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/client/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/client/interface.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
- import { SlotNumber } from '@aztec/foundation/branded-types';
1
+ import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
+ import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
3
  import { DateProvider } from '@aztec/foundation/timer';
3
4
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
- import type { EthAddress, L2BlockSource, L2BlockStreamEvent, L2Tips } from '@aztec/stdlib/block';
5
+ import { type EthAddress, type L2BlockSource, type L2BlockStreamEvent, type L2Tips } from '@aztec/stdlib/block';
5
6
  import type { ContractDataSource } from '@aztec/stdlib/contract';
6
7
  import { type PeerInfo } from '@aztec/stdlib/interfaces/server';
7
- import { BlockAttestation, type BlockProposal, type P2PClientType } from '@aztec/stdlib/p2p';
8
- import type { Tx, TxHash } from '@aztec/stdlib/tx';
8
+ import { type BlockProposal, CheckpointAttestation, type CheckpointProposal, type P2PClientType } from '@aztec/stdlib/p2p';
9
+ import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
9
10
  import { type TelemetryClient, WithTracer } from '@aztec/telemetry-client';
10
11
  import type { PeerId } from '@libp2p/interface';
11
12
  import type { ENR } from '@nethermindeth/enr';
@@ -13,8 +14,9 @@ import { type P2PConfig } from '../config.js';
13
14
  import type { MemPools } from '../mem_pools/interface.js';
14
15
  import type { AuthRequest, StatusMessage } from '../services/index.js';
15
16
  import { ReqRespSubProtocol, type ReqRespSubProtocolHandler, type ReqRespSubProtocolValidators } from '../services/reqresp/interface.js';
16
- import type { P2PBlockReceivedCallback, P2PService } from '../services/service.js';
17
+ import type { DuplicateAttestationInfo, DuplicateProposalInfo, P2PBlockReceivedCallback, P2PCheckpointReceivedCallback, P2PService } from '../services/service.js';
17
18
  import { TxCollection } from '../services/tx_collection/tx_collection.js';
19
+ import type { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
18
20
  import { TxProvider } from '../services/tx_provider.js';
19
21
  import { type P2P, type P2PSyncState } from './interface.js';
20
22
  /**
@@ -26,6 +28,8 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
26
28
  private l2BlockSource;
27
29
  private p2pService;
28
30
  private txCollection;
31
+ private txFileStore;
32
+ private epochCache;
29
33
  private _dateProvider;
30
34
  private telemetry;
31
35
  private log;
@@ -37,10 +41,7 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
37
41
  private latestBlockNumberAtStart;
38
42
  private provenBlockNumberAtStart;
39
43
  private finalizedBlockNumberAtStart;
40
- private synchedBlockHashes;
41
- private synchedLatestBlockNumber;
42
- private synchedProvenBlockNumber;
43
- private synchedFinalizedBlockNumber;
44
+ private l2Tips;
44
45
  private synchedLatestSlot;
45
46
  private txPool;
46
47
  private attestationPool;
@@ -48,25 +49,20 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
48
49
  private blockStream;
49
50
  private txProvider;
50
51
  private validatorAddresses;
51
- /**
52
- * In-memory P2P client constructor.
53
- * @param store - The client's instance of the KV store.
54
- * @param l2BlockSource - P2P client's source for fetching existing blocks.
55
- * @param txPool - The client's instance of a transaction pool. Defaults to in-memory implementation.
56
- * @param p2pService - The concrete instance of p2p networking to use.
57
- * @param log - A logger.
58
- */
59
- constructor(_clientType: T, store: AztecAsyncKVStore, l2BlockSource: L2BlockSource & ContractDataSource, mempools: MemPools<T>, p2pService: P2PService, txCollection: TxCollection, config?: Partial<P2PConfig>, _dateProvider?: DateProvider, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
52
+ /** Tracks the last slot for which we called prepareForSlot */
53
+ private lastSlotProcessed;
54
+ /** Polls for slot changes and calls prepareForSlot on the tx pool */
55
+ private slotMonitor;
56
+ constructor(_clientType: T, store: AztecAsyncKVStore, l2BlockSource: L2BlockSource & ContractDataSource, mempools: MemPools, p2pService: P2PService, txCollection: TxCollection, txFileStore: TxFileStore | undefined, epochCache: EpochCacheInterface, config?: Partial<P2PConfig>, _dateProvider?: DateProvider, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
60
57
  registerThisValidatorAddresses(addresses: EthAddress[]): void;
61
58
  clear(): Promise<void>;
62
59
  isP2PClient(): true;
63
60
  getTxProvider(): TxProvider;
64
61
  getPeers(includePending?: boolean): Promise<PeerInfo[]>;
65
- getL2BlockHash(number: number): Promise<string | undefined>;
62
+ getL2BlockHash(number: BlockNumber): Promise<string | undefined>;
66
63
  updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
67
64
  getL2Tips(): Promise<L2Tips>;
68
65
  handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
69
- private setBlockHash;
70
66
  /**
71
67
  * Starts the P2P client.
72
68
  * @returns An empty promise signalling the synching process.
@@ -82,26 +78,20 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
82
78
  /** Triggers a sync to the archiver. Used for testing. */
83
79
  sync(): Promise<void>;
84
80
  broadcastProposal(proposal: BlockProposal): Promise<void>;
85
- broadcastAttestations(attestations: BlockAttestation[]): Promise<void>;
86
- getAttestationsForSlot(slot: SlotNumber, proposalId?: string): Promise<BlockAttestation[]>;
87
- addAttestations(attestations: BlockAttestation[]): Promise<void>;
88
- deleteAttestation(attestation: BlockAttestation): Promise<void>;
81
+ broadcastCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
82
+ broadcastCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
83
+ getCheckpointAttestationsForSlot(slot: SlotNumber, proposalId?: string): Promise<CheckpointAttestation[]>;
84
+ addOwnCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
85
+ hasBlockProposalsForSlot(slot: SlotNumber): Promise<boolean>;
89
86
  registerBlockProposalHandler(handler: P2PBlockReceivedCallback): void;
90
- /**
91
- * Uses the batched Request Response protocol to request a set of transactions from the network.
92
- */
93
- requestTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId | undefined): Promise<Tx[]>;
87
+ registerCheckpointProposalHandler(handler: P2PCheckpointReceivedCallback): void;
88
+ registerDuplicateProposalCallback(callback: (info: DuplicateProposalInfo) => void): void;
89
+ registerDuplicateAttestationCallback(callback: (info: DuplicateAttestationInfo) => void): void;
90
+ private requestTxsByHash;
94
91
  getPendingTxs(limit?: number, after?: TxHash): Promise<Tx[]>;
95
92
  getPendingTxCount(): Promise<number>;
96
93
  iteratePendingTxs(): AsyncIterableIterator<Tx>;
97
- /**
98
- * Returns all transactions in the transaction pool.
99
- * @param filter - The type of txs to return
100
- * @param limit - How many txs to return
101
- * @param after - If paginating, the last known tx hash. Will return txs after this hash
102
- * @returns An array of Txs.
103
- */
104
- getTxs(filter: 'all' | 'pending' | 'mined', limit?: number, after?: TxHash): Promise<Tx[]>;
94
+ iterateEligiblePendingTxs(): AsyncIterableIterator<Tx>;
105
95
  /**
106
96
  * Returns a transaction in the transaction pool by its hash.
107
97
  * @param txHash - Hash of the transaction to look for in the pool.
@@ -129,8 +119,8 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
129
119
  */
130
120
  getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
131
121
  /**
132
- * Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
133
- * @param tx - The tx to verify.
122
+ * Accepts a transaction, adds it to local tx pool and forwards it to other peers.
123
+ * @param tx - The tx to send.
134
124
  * @returns Empty promise.
135
125
  **/
136
126
  sendTx(tx: Tx): Promise<void>;
@@ -148,12 +138,10 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
148
138
  getEnr(): ENR | undefined;
149
139
  getEncodedEnr(): Promise<string | undefined>;
150
140
  /**
151
- * Deletes the 'txs' from the pool.
152
- * NOT used if we use sendTx as reconcileTxPool will handle this.
153
- * @param txHashes - Hashes of the transactions to delete.
154
- * @returns Empty promise.
141
+ * Handles failed transaction execution by removing txs from the pool.
142
+ * @param txHashes - Hashes of the transactions that failed execution.
155
143
  **/
156
- deleteTxs(txHashes: TxHash[]): Promise<void>;
144
+ handleFailedExecution(txHashes: TxHash[]): Promise<void>;
157
145
  /**
158
146
  * Public function to check if the p2p client is fully synced and ready to receive txs.
159
147
  * @returns True if the P2P client is ready to receive txs.
@@ -163,13 +151,13 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
163
151
  * Public function to check the latest block number that the P2P client is synced to.
164
152
  * @returns Block number of latest L2 Block we've synced with.
165
153
  */
166
- getSyncedLatestBlockNum(): Promise<number>;
154
+ getSyncedLatestBlockNum(): Promise<BlockNumber>;
167
155
  /**
168
156
  * Public function to check the latest proven block number that the P2P client is synced to.
169
157
  * @returns Block number of latest proven L2 Block we've synced with.
170
158
  */
171
- getSyncedProvenBlockNum(): Promise<number>;
172
- getSyncedFinalizedBlockNum(): Promise<number>;
159
+ getSyncedProvenBlockNum(): Promise<BlockNumber>;
160
+ getSyncedFinalizedBlockNum(): Promise<BlockNumber>;
173
161
  /** Returns latest L2 slot for which we have seen an L2 block. */
174
162
  getSyncedLatestSlot(): Promise<bigint>;
175
163
  /**
@@ -177,11 +165,12 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
177
165
  * @returns Information about p2p client status: state & syncedToBlockNum.
178
166
  */
179
167
  getStatus(): Promise<P2PSyncState>;
180
- private markTxsAsMinedFromBlocks;
168
+ private handleMinedBlocks;
181
169
  private handleLatestL2Blocks;
182
170
  private startCollectingMissingTxs;
183
171
  private handleFinalizedL2Blocks;
184
172
  private handlePruneL2Blocks;
173
+ private maybeCallPrepareForSlot;
185
174
  private startServiceIfSynched;
186
175
  /**
187
176
  * Method to set the value of the current state.
@@ -190,10 +179,19 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
190
179
  private setCurrentState;
191
180
  validate(txs: Tx[]): Promise<void>;
192
181
  /**
193
- * Marks transactions as non-evictable in the pool.
194
- * @param txHashes - Hashes of the transactions to mark as non-evictable.
182
+ * Protects existing transactions by hash for a given slot.
183
+ * Returns hashes of transactions that weren't found in the pool.
184
+ * @param txHashes - Hashes of the transactions to protect.
185
+ * @param blockHeader - The block header providing slot context.
186
+ * @returns Hashes of transactions not found in the pool.
187
+ */
188
+ protectTxs(txHashes: TxHash[], blockHeader: BlockHeader): Promise<TxHash[]>;
189
+ /**
190
+ * Prepares the pool for a new slot.
191
+ * Unprotects transactions from earlier slots and validates them.
192
+ * @param slotNumber - The slot number to prepare for
195
193
  */
196
- markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
194
+ prepareForSlot(slotNumber: SlotNumber): Promise<void>;
197
195
  handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
198
196
  }
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9wMnBfY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQXNDLE1BQU0saUJBQWlCLENBQUM7QUFDN0YsT0FBTyxLQUFLLEVBQ1YsVUFBVSxFQUdWLGFBQWEsRUFFYixrQkFBa0IsRUFDbEIsTUFBTSxFQUVQLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVqRSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQVcsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxhQUFhLEVBQUUsS0FBSyxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RixPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUVMLEtBQUssZUFBZSxFQUVwQixVQUFVLEVBR1gsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBRW5FLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsa0JBQWtC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
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9wMnBfY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUcxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFFOUUsT0FBTyxFQUNMLEtBQUssVUFBVSxFQUdmLEtBQUssYUFBYSxFQUVsQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLE1BQU0sRUFFWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFXLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUNMLEtBQUssYUFBYSxFQUNsQixxQkFBcUIsRUFDckIsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxhQUFhLEVBQ25CLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQWMsS0FBSyxlQUFlLEVBQUUsVUFBVSxFQUFpQyxNQUFNLHlCQUF5QixDQUFDO0FBRXRILE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBdUIsTUFBTSxjQUFjLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUs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