@aztec/p2p 0.0.1-commit.6c91f13 → 0.0.1-commit.6d63667d

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 (437) 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 +1 -1
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +9 -6
  7. package/dest/client/interface.d.ts +18 -5
  8. package/dest/client/interface.d.ts.map +1 -1
  9. package/dest/client/p2p_client.d.ts +13 -14
  10. package/dest/client/p2p_client.d.ts.map +1 -1
  11. package/dest/client/p2p_client.js +462 -120
  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 +14 -2
  19. package/dest/config.d.ts.map +1 -1
  20. package/dest/config.js +7 -3
  21. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +61 -42
  22. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  23. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  24. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  25. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +237 -263
  26. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +21 -18
  27. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  28. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +113 -108
  29. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +17 -16
  30. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  31. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +89 -128
  32. package/dest/mem_pools/attestation_pool/mocks.d.ts +9 -6
  33. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/mocks.js +16 -12
  35. package/dest/mem_pools/instrumentation.d.ts +1 -1
  36. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  37. package/dest/mem_pools/instrumentation.js +5 -14
  38. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +15 -10
  39. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  40. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +91 -50
  41. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +19 -5
  42. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -1
  43. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +59 -3
  44. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +79 -5
  45. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +47 -0
  47. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  48. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  49. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  50. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +2 -2
  51. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -1
  52. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +4 -4
  53. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -1
  54. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +2 -0
  55. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +2 -2
  56. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  57. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  58. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  60. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  61. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  63. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  64. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +119 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +90 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +89 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +131 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  80. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +17 -0
  81. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +63 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +91 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +70 -0
  90. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +63 -0
  93. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  94. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  96. package/dest/mem_pools/tx_pool_v2/index.d.ts +5 -0
  97. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/index.js +4 -0
  99. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +197 -0
  100. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/interfaces.js +6 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +71 -0
  103. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +95 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +99 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +332 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +55 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +156 -0
  114. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +69 -0
  115. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +748 -0
  117. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -4
  118. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/attestation_validator/attestation_validator.js +51 -18
  120. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +5 -5
  121. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  122. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +22 -13
  123. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  124. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  125. package/dest/msg_validators/clock_tolerance.js +37 -0
  126. package/dest/msg_validators/index.d.ts +2 -2
  127. package/dest/msg_validators/index.d.ts.map +1 -1
  128. package/dest/msg_validators/index.js +1 -1
  129. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  130. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  131. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  132. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  133. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  134. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  135. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  136. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  137. package/dest/msg_validators/proposal_validator/index.js +3 -0
  138. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  139. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  140. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  141. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  142. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  143. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  144. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  145. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  147. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +5 -4
  148. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  149. package/dest/msg_validators/tx_validator/block_header_validator.js +3 -2
  150. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  151. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  152. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  153. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +3 -2
  154. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/double_spend_validator.js +3 -2
  156. package/dest/msg_validators/tx_validator/factory.d.ts +8 -3
  157. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  158. package/dest/msg_validators/tx_validator/factory.js +21 -11
  159. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  160. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  161. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  162. package/dest/msg_validators/tx_validator/gas_validator.d.ts +3 -2
  163. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  164. package/dest/msg_validators/tx_validator/gas_validator.js +11 -16
  165. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  166. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  167. package/dest/msg_validators/tx_validator/index.js +1 -0
  168. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  169. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  170. package/dest/msg_validators/tx_validator/metadata_validator.js +2 -2
  171. package/dest/msg_validators/tx_validator/phases_validator.d.ts +3 -2
  172. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  173. package/dest/msg_validators/tx_validator/phases_validator.js +3 -3
  174. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  175. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  176. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  177. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +3 -2
  178. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  179. package/dest/msg_validators/tx_validator/timestamp_validator.js +2 -2
  180. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  181. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  182. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  183. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  184. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  185. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  186. package/dest/services/data_store.d.ts +1 -1
  187. package/dest/services/data_store.d.ts.map +1 -1
  188. package/dest/services/data_store.js +10 -6
  189. package/dest/services/discv5/discV5_service.js +1 -1
  190. package/dest/services/dummy_service.d.ts +18 -2
  191. package/dest/services/dummy_service.d.ts.map +1 -1
  192. package/dest/services/dummy_service.js +42 -0
  193. package/dest/services/encoding.d.ts +1 -1
  194. package/dest/services/encoding.d.ts.map +1 -1
  195. package/dest/services/encoding.js +6 -5
  196. package/dest/services/index.d.ts +2 -1
  197. package/dest/services/index.d.ts.map +1 -1
  198. package/dest/services/index.js +1 -0
  199. package/dest/services/libp2p/instrumentation.d.ts +1 -1
  200. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  201. package/dest/services/libp2p/instrumentation.js +30 -72
  202. package/dest/services/libp2p/libp2p_service.d.ts +38 -15
  203. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  204. package/dest/services/libp2p/libp2p_service.js +747 -183
  205. package/dest/services/peer-manager/metrics.d.ts +2 -2
  206. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  207. package/dest/services/peer-manager/metrics.js +21 -26
  208. package/dest/services/peer-manager/peer_manager.d.ts +2 -2
  209. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  210. package/dest/services/peer-manager/peer_manager.js +0 -10
  211. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  212. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  213. package/dest/services/peer-manager/peer_scoring.js +7 -4
  214. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +47 -0
  215. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  216. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +566 -0
  217. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  218. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  219. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  220. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  221. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  222. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  223. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +37 -0
  224. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  225. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +151 -0
  226. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +54 -0
  227. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  228. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +139 -0
  229. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  230. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  231. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  232. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  233. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  234. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  235. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  236. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  237. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  238. package/dest/services/reqresp/constants.d.ts +12 -0
  239. package/dest/services/reqresp/constants.d.ts.map +1 -0
  240. package/dest/services/reqresp/constants.js +7 -0
  241. package/dest/services/reqresp/interface.d.ts +3 -1
  242. package/dest/services/reqresp/interface.d.ts.map +1 -1
  243. package/dest/services/reqresp/metrics.d.ts +6 -5
  244. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  245. package/dest/services/reqresp/metrics.js +17 -21
  246. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  247. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  248. package/dest/services/reqresp/protocols/block_txs/bitvector.js +12 -0
  249. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +6 -5
  250. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  251. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  252. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +23 -6
  253. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  254. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +44 -13
  255. package/dest/services/reqresp/protocols/status.d.ts +1 -1
  256. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  257. package/dest/services/reqresp/protocols/status.js +4 -1
  258. package/dest/services/reqresp/reqresp.d.ts +6 -1
  259. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  260. package/dest/services/reqresp/reqresp.js +460 -46
  261. package/dest/services/service.d.ts +19 -3
  262. package/dest/services/service.d.ts.map +1 -1
  263. package/dest/services/tx_collection/config.d.ts +4 -1
  264. package/dest/services/tx_collection/config.d.ts.map +1 -1
  265. package/dest/services/tx_collection/config.js +9 -1
  266. package/dest/services/tx_collection/fast_tx_collection.d.ts +5 -4
  267. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  268. package/dest/services/tx_collection/fast_tx_collection.js +17 -10
  269. package/dest/services/tx_collection/index.d.ts +2 -1
  270. package/dest/services/tx_collection/index.d.ts.map +1 -1
  271. package/dest/services/tx_collection/index.js +1 -0
  272. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  273. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  274. package/dest/services/tx_collection/instrumentation.js +10 -13
  275. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  276. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  277. package/dest/services/tx_collection/proposal_tx_collector.js +49 -0
  278. package/dest/services/tx_collection/slow_tx_collection.d.ts +3 -3
  279. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  280. package/dest/services/tx_collection/tx_collection.d.ts +8 -8
  281. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  282. package/dest/services/tx_collection/tx_collection.js +5 -5
  283. package/dest/services/tx_file_store/config.d.ts +18 -0
  284. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  285. package/dest/services/tx_file_store/config.js +26 -0
  286. package/dest/services/tx_file_store/index.d.ts +4 -0
  287. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  288. package/dest/services/tx_file_store/index.js +3 -0
  289. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  290. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  291. package/dest/services/tx_file_store/instrumentation.js +29 -0
  292. package/dest/services/tx_file_store/tx_file_store.d.ts +47 -0
  293. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  294. package/dest/services/tx_file_store/tx_file_store.js +149 -0
  295. package/dest/services/tx_provider.d.ts +3 -3
  296. package/dest/services/tx_provider.d.ts.map +1 -1
  297. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  298. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  299. package/dest/services/tx_provider_instrumentation.js +7 -20
  300. package/dest/test-helpers/index.d.ts +3 -1
  301. package/dest/test-helpers/index.d.ts.map +1 -1
  302. package/dest/test-helpers/index.js +2 -0
  303. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  304. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  305. package/dest/test-helpers/test_tx_provider.js +41 -0
  306. package/dest/test-helpers/testbench-utils.d.ts +158 -0
  307. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  308. package/dest/test-helpers/testbench-utils.js +297 -0
  309. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  310. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  311. package/dest/testbench/p2p_client_testbench_worker.js +218 -124
  312. package/dest/testbench/worker_client_manager.d.ts +51 -6
  313. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  314. package/dest/testbench/worker_client_manager.js +226 -39
  315. package/package.json +16 -16
  316. package/src/bootstrap/bootstrap.ts +7 -4
  317. package/src/client/factory.ts +10 -10
  318. package/src/client/interface.ts +19 -4
  319. package/src/client/p2p_client.ts +95 -133
  320. package/src/client/test/tx_proposal_collector/README.md +227 -0
  321. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +336 -0
  322. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  323. package/src/config.ts +15 -3
  324. package/src/mem_pools/attestation_pool/attestation_pool.ts +68 -41
  325. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +239 -287
  326. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +162 -140
  327. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +141 -164
  328. package/src/mem_pools/attestation_pool/mocks.ts +19 -13
  329. package/src/mem_pools/instrumentation.ts +10 -18
  330. package/src/mem_pools/tx_pool/README.md +28 -13
  331. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +130 -75
  332. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +66 -5
  333. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +119 -4
  334. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  335. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +4 -2
  336. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  337. package/src/mem_pools/tx_pool_v2/README.md +209 -0
  338. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  339. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  340. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +147 -0
  341. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +118 -0
  342. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +111 -0
  343. package/src/mem_pools/tx_pool_v2/eviction/index.ts +23 -0
  344. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +164 -0
  345. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  346. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  347. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +86 -0
  348. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +72 -0
  349. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +31 -0
  350. package/src/mem_pools/tx_pool_v2/index.ts +11 -0
  351. package/src/mem_pools/tx_pool_v2/interfaces.ts +227 -0
  352. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +161 -0
  353. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  354. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +417 -0
  355. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +212 -0
  356. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +882 -0
  357. package/src/msg_validators/attestation_validator/attestation_validator.ts +36 -21
  358. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +19 -16
  359. package/src/msg_validators/clock_tolerance.ts +51 -0
  360. package/src/msg_validators/index.ts +1 -1
  361. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  362. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  363. package/src/msg_validators/proposal_validator/index.ts +3 -0
  364. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  365. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  366. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  367. package/src/msg_validators/tx_validator/block_header_validator.ts +6 -5
  368. package/src/msg_validators/tx_validator/data_validator.ts +18 -6
  369. package/src/msg_validators/tx_validator/double_spend_validator.ts +4 -3
  370. package/src/msg_validators/tx_validator/factory.ts +64 -23
  371. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  372. package/src/msg_validators/tx_validator/gas_validator.ts +17 -28
  373. package/src/msg_validators/tx_validator/index.ts +1 -0
  374. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  375. package/src/msg_validators/tx_validator/phases_validator.ts +5 -3
  376. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  377. package/src/msg_validators/tx_validator/timestamp_validator.ts +9 -4
  378. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  379. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  380. package/src/services/data_store.ts +10 -7
  381. package/src/services/discv5/discV5_service.ts +1 -1
  382. package/src/services/dummy_service.ts +51 -0
  383. package/src/services/encoding.ts +5 -4
  384. package/src/services/index.ts +1 -0
  385. package/src/services/libp2p/instrumentation.ts +32 -73
  386. package/src/services/libp2p/libp2p_service.ts +420 -166
  387. package/src/services/peer-manager/metrics.ts +22 -26
  388. package/src/services/peer-manager/peer_manager.ts +1 -2
  389. package/src/services/peer-manager/peer_scoring.ts +3 -4
  390. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  391. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +706 -0
  392. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  393. package/src/services/reqresp/batch-tx-requester/interface.ts +57 -0
  394. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +209 -0
  395. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +205 -0
  396. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  397. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  398. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  399. package/src/services/reqresp/constants.ts +14 -0
  400. package/src/services/reqresp/interface.ts +3 -0
  401. package/src/services/reqresp/metrics.ts +36 -27
  402. package/src/services/reqresp/protocols/block_txs/bitvector.ts +16 -0
  403. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +34 -12
  404. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +57 -9
  405. package/src/services/reqresp/protocols/status.ts +7 -4
  406. package/src/services/reqresp/reqresp.ts +66 -19
  407. package/src/services/service.ts +23 -4
  408. package/src/services/tx_collection/config.ts +15 -1
  409. package/src/services/tx_collection/fast_tx_collection.ts +30 -17
  410. package/src/services/tx_collection/index.ts +5 -0
  411. package/src/services/tx_collection/instrumentation.ts +5 -13
  412. package/src/services/tx_collection/proposal_tx_collector.ts +112 -0
  413. package/src/services/tx_collection/slow_tx_collection.ts +2 -2
  414. package/src/services/tx_collection/tx_collection.ts +8 -8
  415. package/src/services/tx_file_store/config.ts +43 -0
  416. package/src/services/tx_file_store/index.ts +3 -0
  417. package/src/services/tx_file_store/instrumentation.ts +36 -0
  418. package/src/services/tx_file_store/tx_file_store.ts +173 -0
  419. package/src/services/tx_provider.ts +2 -2
  420. package/src/services/tx_provider_instrumentation.ts +13 -20
  421. package/src/test-helpers/index.ts +2 -0
  422. package/src/test-helpers/test_tx_provider.ts +64 -0
  423. package/src/test-helpers/testbench-utils.ts +374 -0
  424. package/src/testbench/p2p_client_testbench_worker.ts +337 -119
  425. package/src/testbench/worker_client_manager.ts +304 -42
  426. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts +0 -15
  427. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts.map +0 -1
  428. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.js +0 -88
  429. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  430. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  431. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -82
  432. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  433. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  434. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  435. package/src/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.ts +0 -108
  436. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -97
  437. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,21 +1,399 @@
1
- function _ts_decorate(decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
1
+ function applyDecs2203RFactory() {
2
+ function createAddInitializerMethod(initializers, decoratorFinishedRef) {
3
+ return function addInitializer(initializer) {
4
+ assertNotFinished(decoratorFinishedRef, "addInitializer");
5
+ assertCallable(initializer, "An initializer");
6
+ initializers.push(initializer);
7
+ };
8
+ }
9
+ function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value) {
10
+ var kindStr;
11
+ switch(kind){
12
+ case 1:
13
+ kindStr = "accessor";
14
+ break;
15
+ case 2:
16
+ kindStr = "method";
17
+ break;
18
+ case 3:
19
+ kindStr = "getter";
20
+ break;
21
+ case 4:
22
+ kindStr = "setter";
23
+ break;
24
+ default:
25
+ kindStr = "field";
26
+ }
27
+ var ctx = {
28
+ kind: kindStr,
29
+ name: isPrivate ? "#" + name : name,
30
+ static: isStatic,
31
+ private: isPrivate,
32
+ metadata: metadata
33
+ };
34
+ var decoratorFinishedRef = {
35
+ v: false
36
+ };
37
+ ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef);
38
+ var get, set;
39
+ if (kind === 0) {
40
+ if (isPrivate) {
41
+ get = desc.get;
42
+ set = desc.set;
43
+ } else {
44
+ get = function() {
45
+ return this[name];
46
+ };
47
+ set = function(v) {
48
+ this[name] = v;
49
+ };
50
+ }
51
+ } else if (kind === 2) {
52
+ get = function() {
53
+ return desc.value;
54
+ };
55
+ } else {
56
+ if (kind === 1 || kind === 3) {
57
+ get = function() {
58
+ return desc.get.call(this);
59
+ };
60
+ }
61
+ if (kind === 1 || kind === 4) {
62
+ set = function(v) {
63
+ desc.set.call(this, v);
64
+ };
65
+ }
66
+ }
67
+ ctx.access = get && set ? {
68
+ get: get,
69
+ set: set
70
+ } : get ? {
71
+ get: get
72
+ } : {
73
+ set: set
74
+ };
75
+ try {
76
+ return dec(value, ctx);
77
+ } finally{
78
+ decoratorFinishedRef.v = true;
79
+ }
80
+ }
81
+ function assertNotFinished(decoratorFinishedRef, fnName) {
82
+ if (decoratorFinishedRef.v) {
83
+ throw new Error("attempted to call " + fnName + " after decoration was finished");
84
+ }
85
+ }
86
+ function assertCallable(fn, hint) {
87
+ if (typeof fn !== "function") {
88
+ throw new TypeError(hint + " must be a function");
89
+ }
90
+ }
91
+ function assertValidReturnValue(kind, value) {
92
+ var type = typeof value;
93
+ if (kind === 1) {
94
+ if (type !== "object" || value === null) {
95
+ throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
96
+ }
97
+ if (value.get !== undefined) {
98
+ assertCallable(value.get, "accessor.get");
99
+ }
100
+ if (value.set !== undefined) {
101
+ assertCallable(value.set, "accessor.set");
102
+ }
103
+ if (value.init !== undefined) {
104
+ assertCallable(value.init, "accessor.init");
105
+ }
106
+ } else if (type !== "function") {
107
+ var hint;
108
+ if (kind === 0) {
109
+ hint = "field";
110
+ } else if (kind === 10) {
111
+ hint = "class";
112
+ } else {
113
+ hint = "method";
114
+ }
115
+ throw new TypeError(hint + " decorators must return a function or void 0");
116
+ }
117
+ }
118
+ function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata) {
119
+ var decs = decInfo[0];
120
+ var desc, init, value;
121
+ if (isPrivate) {
122
+ if (kind === 0 || kind === 1) {
123
+ desc = {
124
+ get: decInfo[3],
125
+ set: decInfo[4]
126
+ };
127
+ } else if (kind === 3) {
128
+ desc = {
129
+ get: decInfo[3]
130
+ };
131
+ } else if (kind === 4) {
132
+ desc = {
133
+ set: decInfo[3]
134
+ };
135
+ } else {
136
+ desc = {
137
+ value: decInfo[3]
138
+ };
139
+ }
140
+ } else if (kind !== 0) {
141
+ desc = Object.getOwnPropertyDescriptor(base, name);
142
+ }
143
+ if (kind === 1) {
144
+ value = {
145
+ get: desc.get,
146
+ set: desc.set
147
+ };
148
+ } else if (kind === 2) {
149
+ value = desc.value;
150
+ } else if (kind === 3) {
151
+ value = desc.get;
152
+ } else if (kind === 4) {
153
+ value = desc.set;
154
+ }
155
+ var newValue, get, set;
156
+ if (typeof decs === "function") {
157
+ newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
158
+ if (newValue !== void 0) {
159
+ assertValidReturnValue(kind, newValue);
160
+ if (kind === 0) {
161
+ init = newValue;
162
+ } else if (kind === 1) {
163
+ init = newValue.init;
164
+ get = newValue.get || value.get;
165
+ set = newValue.set || value.set;
166
+ value = {
167
+ get: get,
168
+ set: set
169
+ };
170
+ } else {
171
+ value = newValue;
172
+ }
173
+ }
174
+ } else {
175
+ for(var i = decs.length - 1; i >= 0; i--){
176
+ var dec = decs[i];
177
+ newValue = memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
178
+ if (newValue !== void 0) {
179
+ assertValidReturnValue(kind, newValue);
180
+ var newInit;
181
+ if (kind === 0) {
182
+ newInit = newValue;
183
+ } else if (kind === 1) {
184
+ newInit = newValue.init;
185
+ get = newValue.get || value.get;
186
+ set = newValue.set || value.set;
187
+ value = {
188
+ get: get,
189
+ set: set
190
+ };
191
+ } else {
192
+ value = newValue;
193
+ }
194
+ if (newInit !== void 0) {
195
+ if (init === void 0) {
196
+ init = newInit;
197
+ } else if (typeof init === "function") {
198
+ init = [
199
+ init,
200
+ newInit
201
+ ];
202
+ } else {
203
+ init.push(newInit);
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ if (kind === 0 || kind === 1) {
210
+ if (init === void 0) {
211
+ init = function(instance, init) {
212
+ return init;
213
+ };
214
+ } else if (typeof init !== "function") {
215
+ var ownInitializers = init;
216
+ init = function(instance, init) {
217
+ var value = init;
218
+ for(var i = 0; i < ownInitializers.length; i++){
219
+ value = ownInitializers[i].call(instance, value);
220
+ }
221
+ return value;
222
+ };
223
+ } else {
224
+ var originalInitializer = init;
225
+ init = function(instance, init) {
226
+ return originalInitializer.call(instance, init);
227
+ };
228
+ }
229
+ ret.push(init);
230
+ }
231
+ if (kind !== 0) {
232
+ if (kind === 1) {
233
+ desc.get = value.get;
234
+ desc.set = value.set;
235
+ } else if (kind === 2) {
236
+ desc.value = value;
237
+ } else if (kind === 3) {
238
+ desc.get = value;
239
+ } else if (kind === 4) {
240
+ desc.set = value;
241
+ }
242
+ if (isPrivate) {
243
+ if (kind === 1) {
244
+ ret.push(function(instance, args) {
245
+ return value.get.call(instance, args);
246
+ });
247
+ ret.push(function(instance, args) {
248
+ return value.set.call(instance, args);
249
+ });
250
+ } else if (kind === 2) {
251
+ ret.push(value);
252
+ } else {
253
+ ret.push(function(instance, args) {
254
+ return value.call(instance, args);
255
+ });
256
+ }
257
+ } else {
258
+ Object.defineProperty(base, name, desc);
259
+ }
260
+ }
261
+ }
262
+ function applyMemberDecs(Class, decInfos, metadata) {
263
+ var ret = [];
264
+ var protoInitializers;
265
+ var staticInitializers;
266
+ var existingProtoNonFields = new Map();
267
+ var existingStaticNonFields = new Map();
268
+ for(var i = 0; i < decInfos.length; i++){
269
+ var decInfo = decInfos[i];
270
+ if (!Array.isArray(decInfo)) continue;
271
+ var kind = decInfo[1];
272
+ var name = decInfo[2];
273
+ var isPrivate = decInfo.length > 3;
274
+ var isStatic = kind >= 5;
275
+ var base;
276
+ var initializers;
277
+ if (isStatic) {
278
+ base = Class;
279
+ kind = kind - 5;
280
+ staticInitializers = staticInitializers || [];
281
+ initializers = staticInitializers;
282
+ } else {
283
+ base = Class.prototype;
284
+ protoInitializers = protoInitializers || [];
285
+ initializers = protoInitializers;
286
+ }
287
+ if (kind !== 0 && !isPrivate) {
288
+ var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields;
289
+ var existingKind = existingNonFields.get(name) || 0;
290
+ if (existingKind === true || existingKind === 3 && kind !== 4 || existingKind === 4 && kind !== 3) {
291
+ throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
292
+ } else if (!existingKind && kind > 2) {
293
+ existingNonFields.set(name, kind);
294
+ } else {
295
+ existingNonFields.set(name, true);
296
+ }
297
+ }
298
+ applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata);
299
+ }
300
+ pushInitializers(ret, protoInitializers);
301
+ pushInitializers(ret, staticInitializers);
302
+ return ret;
303
+ }
304
+ function pushInitializers(ret, initializers) {
305
+ if (initializers) {
306
+ ret.push(function(instance) {
307
+ for(var i = 0; i < initializers.length; i++){
308
+ initializers[i].call(instance);
309
+ }
310
+ return instance;
311
+ });
312
+ }
313
+ }
314
+ function applyClassDecs(targetClass, classDecs, metadata) {
315
+ if (classDecs.length > 0) {
316
+ var initializers = [];
317
+ var newClass = targetClass;
318
+ var name = targetClass.name;
319
+ for(var i = classDecs.length - 1; i >= 0; i--){
320
+ var decoratorFinishedRef = {
321
+ v: false
322
+ };
323
+ try {
324
+ var nextNewClass = classDecs[i](newClass, {
325
+ kind: "class",
326
+ name: name,
327
+ addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef),
328
+ metadata
329
+ });
330
+ } finally{
331
+ decoratorFinishedRef.v = true;
332
+ }
333
+ if (nextNewClass !== undefined) {
334
+ assertValidReturnValue(10, nextNewClass);
335
+ newClass = nextNewClass;
336
+ }
337
+ }
338
+ return [
339
+ defineMetadata(newClass, metadata),
340
+ function() {
341
+ for(var i = 0; i < initializers.length; i++){
342
+ initializers[i].call(newClass);
343
+ }
344
+ }
345
+ ];
346
+ }
347
+ }
348
+ function defineMetadata(Class, metadata) {
349
+ return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), {
350
+ configurable: true,
351
+ enumerable: true,
352
+ value: metadata
353
+ });
354
+ }
355
+ return function applyDecs2203R(targetClass, memberDecs, classDecs, parentClass) {
356
+ if (parentClass !== void 0) {
357
+ var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")];
358
+ }
359
+ var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata);
360
+ var e = applyMemberDecs(targetClass, memberDecs, metadata);
361
+ if (!classDecs.length) defineMetadata(targetClass, metadata);
362
+ return {
363
+ e: e,
364
+ get c () {
365
+ return applyClassDecs(targetClass, classDecs, metadata);
366
+ }
367
+ };
368
+ };
6
369
  }
7
- import { GENESIS_BLOCK_HEADER_HASH, INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
370
+ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
371
+ return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
372
+ }
373
+ var _dec, _dec1, _initProto;
374
+ import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
8
375
  import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
9
376
  import { createLogger } from '@aztec/foundation/log';
10
377
  import { DateProvider } from '@aztec/foundation/timer';
378
+ import { L2TipsKVStore } from '@aztec/kv-store/stores';
379
+ import { L2BlockStream } from '@aztec/stdlib/block';
11
380
  import { getTimestampForSlot } from '@aztec/stdlib/epoch-helpers';
12
381
  import { tryStop } from '@aztec/stdlib/interfaces/server';
13
- import { Attributes, TraceableL2BlockStream, WithTracer, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
382
+ import { Attributes, WithTracer, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
14
383
  import { getP2PDefaultConfig } from '../config.js';
15
384
  import { ReqRespSubProtocol } from '../services/reqresp/interface.js';
16
385
  import { chunkTxHashesRequest } from '../services/reqresp/protocols/tx.js';
17
386
  import { TxProvider } from '../services/tx_provider.js';
18
387
  import { P2PClientState } from './interface.js';
388
+ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
389
+ [Attributes.SLOT_NUMBER]: proposal.slotNumber,
390
+ [Attributes.BLOCK_ARCHIVE]: proposal.archive.toString(),
391
+ [Attributes.P2P_ID]: (await proposal.p2pMessageLoggingIdentifier()).toString()
392
+ })), _dec1 = trackSpan('p2pClient.broadcastCheckpointProposal', async (proposal)=>({
393
+ [Attributes.SLOT_NUMBER]: proposal.slotNumber,
394
+ [Attributes.BLOCK_ARCHIVE]: proposal.archive.toString(),
395
+ [Attributes.P2P_ID]: (await proposal.p2pMessageLoggingIdentifier()).toString()
396
+ }));
19
397
  /**
20
398
  * The P2P client implementation.
21
399
  */ export class P2PClient extends WithTracer {
@@ -23,9 +401,24 @@ import { P2PClientState } from './interface.js';
23
401
  l2BlockSource;
24
402
  p2pService;
25
403
  txCollection;
404
+ txFileStore;
26
405
  _dateProvider;
27
406
  telemetry;
28
407
  log;
408
+ static{
409
+ ({ e: [_initProto] } = _apply_decs_2203_r(this, [
410
+ [
411
+ _dec,
412
+ 2,
413
+ "broadcastProposal"
414
+ ],
415
+ [
416
+ _dec1,
417
+ 2,
418
+ "broadcastCheckpointProposal"
419
+ ]
420
+ ], []));
421
+ }
29
422
  /** The JS promise that will be running to keep the client's data in sync. Can be interrupted if the client is stopped. */ runningPromise;
30
423
  currentState;
31
424
  syncPromise;
@@ -33,10 +426,7 @@ import { P2PClientState } from './interface.js';
33
426
  latestBlockNumberAtStart;
34
427
  provenBlockNumberAtStart;
35
428
  finalizedBlockNumberAtStart;
36
- synchedBlockHashes;
37
- synchedLatestBlockNumber;
38
- synchedProvenBlockNumber;
39
- synchedFinalizedBlockNumber;
429
+ l2Tips;
40
430
  synchedLatestSlot;
41
431
  txPool;
42
432
  attestationPool;
@@ -51,8 +441,8 @@ import { P2PClientState } from './interface.js';
51
441
  * @param txPool - The client's instance of a transaction pool. Defaults to in-memory implementation.
52
442
  * @param p2pService - The concrete instance of p2p networking to use.
53
443
  * @param log - A logger.
54
- */ constructor(_clientType, store, l2BlockSource, mempools, p2pService, txCollection, config = {}, _dateProvider = new DateProvider(), telemetry = getTelemetryClient(), log = createLogger('p2p')){
55
- super(telemetry, 'P2PClient'), this.store = store, this.l2BlockSource = l2BlockSource, this.p2pService = p2pService, this.txCollection = txCollection, this._dateProvider = _dateProvider, this.telemetry = telemetry, this.log = log, this.currentState = P2PClientState.IDLE, this.syncPromise = Promise.resolve(), this.syncResolve = undefined, this.latestBlockNumberAtStart = -1, this.provenBlockNumberAtStart = -1, this.finalizedBlockNumberAtStart = -1, this.validatorAddresses = [];
444
+ */ constructor(_clientType, store, l2BlockSource, mempools, p2pService, txCollection, txFileStore, config = {}, _dateProvider = new DateProvider(), telemetry = getTelemetryClient(), log = createLogger('p2p')){
445
+ super(telemetry, 'P2PClient'), this.store = store, this.l2BlockSource = l2BlockSource, this.p2pService = p2pService, this.txCollection = txCollection, this.txFileStore = txFileStore, this._dateProvider = _dateProvider, this.telemetry = telemetry, this.log = log, this.currentState = (_initProto(this), P2PClientState.IDLE), this.syncPromise = Promise.resolve(), this.syncResolve = undefined, this.latestBlockNumberAtStart = -1, this.provenBlockNumberAtStart = -1, this.finalizedBlockNumberAtStart = -1, this.validatorAddresses = [];
56
446
  this.config = {
57
447
  ...getP2PDefaultConfig(),
58
448
  ...config
@@ -61,7 +451,8 @@ import { P2PClientState } from './interface.js';
61
451
  this.attestationPool = mempools.attestationPool;
62
452
  this.txProvider = new TxProvider(this.txCollection, this.txPool, this, this.log.createChild('tx-provider'), this.telemetry);
63
453
  // Default to collecting all txs when we see a valid proposal
64
- // This can be overridden by the validator client to attest, and it will call getTxsForBlockProposal on its own
454
+ // This can be overridden by the validator client to validate, and it will call getTxsForBlockProposal on its own
455
+ // Note: Validators do NOT attest to individual blocks - attestations are only for checkpoint proposals.
65
456
  // TODO(palla/txs): We should not trigger a request for txs on a proposal before fully validating it. We need to bring
66
457
  // validator-client code into here so we can validate a proposal is reasonable.
67
458
  this.registerBlockProposalHandler(async (block, sender)=>{
@@ -70,23 +461,19 @@ import { P2PClientState } from './interface.js';
70
461
  const constants = this.txCollection.getConstants();
71
462
  const nextSlotTimestampSeconds = Number(getTimestampForSlot(SlotNumber(block.slotNumber + 1), constants));
72
463
  const deadline = new Date(nextSlotTimestampSeconds * 1000);
73
- const parentBlock = await this.l2BlockSource.getBlockHeaderByArchive(block.payload.header.lastArchiveRoot);
464
+ const parentBlock = await this.l2BlockSource.getBlockHeaderByArchive(block.blockHeader.lastArchive.root);
74
465
  if (!parentBlock) {
75
466
  this.log.debug(`Cannot collect txs for proposal as parent block not found`);
76
- return;
467
+ return false;
77
468
  }
78
469
  const blockNumber = BlockNumber(parentBlock.getBlockNumber() + 1);
79
470
  await this.txProvider.getTxsForBlockProposal(block, blockNumber, {
80
471
  pinnedPeer: sender,
81
472
  deadline
82
473
  });
83
- return undefined;
474
+ return true;
84
475
  });
85
- // REFACTOR: Try replacing these with an L2TipsStore
86
- this.synchedBlockHashes = store.openMap('p2p_pool_block_hashes');
87
- this.synchedLatestBlockNumber = store.openSingleton('p2p_pool_last_l2_block');
88
- this.synchedProvenBlockNumber = store.openSingleton('p2p_pool_last_proven_l2_block');
89
- this.synchedFinalizedBlockNumber = store.openSingleton('p2p_pool_last_finalized_l2_block');
476
+ this.l2Tips = new L2TipsKVStore(store, 'p2p_client');
90
477
  this.synchedLatestSlot = store.openSingleton('p2p_pool_last_l2_slot');
91
478
  }
92
479
  registerThisValidatorAddresses(addresses) {
@@ -108,95 +495,51 @@ import { P2PClientState } from './interface.js';
108
495
  return Promise.resolve(this.p2pService.getPeers(includePending));
109
496
  }
110
497
  getL2BlockHash(number) {
111
- return this.synchedBlockHashes.getAsync(number);
498
+ return this.l2Tips.getL2BlockHash(number);
112
499
  }
113
500
  updateP2PConfig(config) {
114
501
  this.txPool.updateConfig(config);
115
502
  this.p2pService.updateConfig(config);
116
503
  return Promise.resolve();
117
504
  }
118
- async getL2Tips() {
119
- const latestBlockNumber = await this.getSyncedLatestBlockNum();
120
- let latestBlockHash;
121
- const provenBlockNumber = await this.getSyncedProvenBlockNum();
122
- let provenBlockHash;
123
- const finalizedBlockNumber = await this.getSyncedFinalizedBlockNum();
124
- let finalizedBlockHash;
125
- if (latestBlockNumber > 0) {
126
- latestBlockHash = await this.synchedBlockHashes.getAsync(latestBlockNumber);
127
- if (typeof latestBlockHash === 'undefined') {
128
- throw new Error(`Block hash for latest block ${latestBlockNumber} not found in p2p client`);
129
- }
130
- }
131
- if (provenBlockNumber > 0) {
132
- provenBlockHash = await this.synchedBlockHashes.getAsync(provenBlockNumber);
133
- if (typeof provenBlockHash === 'undefined') {
134
- throw new Error(`Block hash for proven block ${provenBlockNumber} not found in p2p client`);
135
- }
136
- }
137
- if (finalizedBlockNumber > 0) {
138
- finalizedBlockHash = await this.synchedBlockHashes.getAsync(finalizedBlockNumber);
139
- if (typeof finalizedBlockHash === 'undefined') {
140
- throw new Error(`Block hash for finalized block ${finalizedBlockNumber} not found in p2p client`);
141
- }
142
- }
143
- const genesisHash = GENESIS_BLOCK_HEADER_HASH.toString();
144
- return {
145
- latest: {
146
- hash: latestBlockHash ?? genesisHash,
147
- number: latestBlockNumber
148
- },
149
- proven: {
150
- hash: provenBlockHash ?? genesisHash,
151
- number: provenBlockNumber
152
- },
153
- finalized: {
154
- hash: finalizedBlockHash ?? genesisHash,
155
- number: finalizedBlockNumber
156
- }
157
- };
505
+ getL2Tips() {
506
+ return this.l2Tips.getL2Tips();
158
507
  }
159
508
  async handleBlockStreamEvent(event) {
160
509
  this.log.debug(`Handling block stream event ${event.type}`);
161
510
  switch(event.type){
162
511
  case 'blocks-added':
163
- await this.handleLatestL2Blocks(event.blocks.map((b)=>b.block.toL2Block()));
512
+ await this.handleLatestL2Blocks(event.blocks);
164
513
  break;
165
514
  case 'chain-finalized':
166
515
  {
167
- // TODO (alexg): I think we can prune the block hashes map here
168
- await this.setBlockHash(event.block);
169
- const from = BlockNumber(await this.getSyncedFinalizedBlockNum() + 1);
516
+ const oldFinalizedBlockNum = await this.getSyncedFinalizedBlockNum();
517
+ const from = BlockNumber(oldFinalizedBlockNum + 1);
170
518
  const limit = event.block.number - from + 1;
171
519
  if (limit > 0) {
172
520
  const oldBlocks = await this.l2BlockSource.getBlocks(from, limit);
173
- await this.handleFinalizedL2Blocks(oldBlocks.map((b)=>b.toL2Block()));
521
+ await this.handleFinalizedL2Blocks(oldBlocks);
174
522
  }
175
523
  break;
176
524
  }
177
525
  case 'chain-proven':
178
- {
179
- await this.setBlockHash(event.block);
180
- this.txCollection.stopCollectingForBlocksUpTo(event.block.number);
181
- await this.synchedProvenBlockNumber.set(event.block.number);
182
- break;
183
- }
526
+ this.txCollection.stopCollectingForBlocksUpTo(event.block.number);
527
+ break;
184
528
  case 'chain-pruned':
185
- await this.setBlockHash(event.block);
186
529
  this.txCollection.stopCollectingForBlocksAfter(event.block.number);
187
530
  await this.handlePruneL2Blocks(event.block.number);
188
531
  break;
532
+ case 'chain-checkpointed':
533
+ break;
189
534
  default:
190
535
  {
191
536
  const _ = event;
192
537
  break;
193
538
  }
194
539
  }
195
- }
196
- async setBlockHash(block) {
197
- if (block.hash !== undefined) {
198
- await this.synchedBlockHashes.set(block.number, block.hash.toString());
199
- }
540
+ // Pass the event through to our l2 tips store
541
+ await this.l2Tips.handleBlockStreamEvent(event);
542
+ await this.startServiceIfSynched();
200
543
  }
201
544
  #assertIsReady() {
202
545
  // this.log.info('Checking if p2p client is ready, current state: ', this.currentState);
@@ -216,9 +559,9 @@ import { P2PClientState } from './interface.js';
216
559
  }
217
560
  // get the current latest block numbers
218
561
  const latestBlockNumbers = await this.l2BlockSource.getL2Tips();
219
- this.latestBlockNumberAtStart = latestBlockNumbers.latest.number;
220
- this.provenBlockNumberAtStart = latestBlockNumbers.proven.number;
221
- this.finalizedBlockNumberAtStart = latestBlockNumbers.finalized.number;
562
+ this.latestBlockNumberAtStart = latestBlockNumbers.proposed.number;
563
+ this.provenBlockNumberAtStart = latestBlockNumbers.proven.block.number;
564
+ this.finalizedBlockNumberAtStart = latestBlockNumbers.finalized.block.number;
222
565
  const syncedLatestBlock = await this.getSyncedLatestBlockNum() + 1;
223
566
  const syncedProvenBlock = await this.getSyncedProvenBlockNum() + 1;
224
567
  const syncedFinalizedBlock = await this.getSyncedFinalizedBlockNum() + 1;
@@ -256,6 +599,7 @@ import { P2PClientState } from './interface.js';
256
599
  }
257
600
  this.blockStream.start();
258
601
  await this.txCollection.start();
602
+ this.txFileStore?.start();
259
603
  return this.syncPromise;
260
604
  }
261
605
  addReqRespSubProtocol(subProtocol, handler, validator) {
@@ -264,7 +608,7 @@ import { P2PClientState } from './interface.js';
264
608
  initBlockStream(startingBlock) {
265
609
  if (!this.blockStream) {
266
610
  const { blockRequestBatchSize: batchSize, blockCheckIntervalMS: pollIntervalMS } = this.config;
267
- this.blockStream = new TraceableL2BlockStream(this.l2BlockSource, this, this, this.telemetry.getTracer('P2PL2BlockStream'), 'P2PL2BlockStream', createLogger(`${this.log.module}:l2-block-stream`), {
611
+ this.blockStream = new L2BlockStream(this.l2BlockSource, this, this, createLogger(`${this.log.module}:l2-block-stream`), {
268
612
  batchSize,
269
613
  pollIntervalMS,
270
614
  startingBlock
@@ -278,6 +622,8 @@ import { P2PClientState } from './interface.js';
278
622
  this.log.debug('Stopping p2p client...');
279
623
  await tryStop(this.txCollection);
280
624
  this.log.debug('Stopped tx collection service');
625
+ await this.txFileStore?.stop();
626
+ this.log.debug('Stopped tx file store');
281
627
  await this.p2pService.stop();
282
628
  this.log.debug('Stopped p2p service');
283
629
  await this.blockStream?.stop();
@@ -290,30 +636,39 @@ import { P2PClientState } from './interface.js';
290
636
  this.initBlockStream();
291
637
  await this.blockStream.sync();
292
638
  }
293
- broadcastProposal(proposal) {
639
+ async broadcastProposal(proposal) {
294
640
  this.log.verbose(`Broadcasting proposal for slot ${proposal.slotNumber} to peers`);
641
+ // Store our own proposal so we can respond to req/resp requests for it
642
+ await this.attestationPool.addBlockProposal(proposal);
295
643
  return this.p2pService.propagate(proposal);
296
644
  }
297
- async broadcastAttestations(attestations) {
298
- this.log.verbose(`Broadcasting ${attestations.length} attestations to peers`);
299
- await Promise.all(attestations.map((att)=>this.p2pService.propagate(att)));
645
+ async broadcastCheckpointProposal(proposal) {
646
+ this.log.verbose(`Broadcasting checkpoint proposal for slot ${proposal.slotNumber} to peers`);
647
+ const blockProposal = proposal.getBlockProposal();
648
+ if (blockProposal) {
649
+ // Store our own last-block proposal so we can respond to req/resp requests for it.
650
+ await this.attestationPool.addBlockProposal(blockProposal);
651
+ }
652
+ return this.p2pService.propagate(proposal);
300
653
  }
301
- async getAttestationsForSlot(slot, proposalId) {
302
- return await (proposalId ? this.attestationPool.getAttestationsForSlotAndProposal(slot, proposalId) : this.attestationPool.getAttestationsForSlot(slot));
654
+ async broadcastCheckpointAttestations(attestations) {
655
+ this.log.verbose(`Broadcasting ${attestations.length} checkpoint attestations to peers`);
656
+ await Promise.all(attestations.map((att)=>this.p2pService.propagate(att)));
303
657
  }
304
- addAttestations(attestations) {
305
- return this.attestationPool.addAttestations(attestations);
658
+ async getCheckpointAttestationsForSlot(slot, proposalId) {
659
+ return await (proposalId ? this.attestationPool.getCheckpointAttestationsForSlotAndProposal(slot, proposalId) : this.attestationPool.getCheckpointAttestationsForSlot(slot));
306
660
  }
307
- deleteAttestation(attestation) {
308
- return this.attestationPool.deleteAttestations([
309
- attestation
310
- ]);
661
+ addCheckpointAttestations(attestations) {
662
+ return this.attestationPool.addCheckpointAttestations(attestations);
311
663
  }
312
664
  // REVIEW: https://github.com/AztecProtocol/aztec-packages/issues/7963
313
665
  // ^ This pattern is not my favorite (md)
314
666
  registerBlockProposalHandler(handler) {
315
667
  this.p2pService.registerBlockReceivedCallback(handler);
316
668
  }
669
+ registerCheckpointProposalHandler(handler) {
670
+ this.p2pService.registerCheckpointReceivedCallback(handler);
671
+ }
317
672
  /**
318
673
  * Uses the batched Request Response protocol to request a set of transactions from the network.
319
674
  */ async requestTxsByHash(txHashes, pinnedPeerId) {
@@ -504,16 +859,19 @@ import { P2PClientState } from './interface.js';
504
859
  * Public function to check the latest block number that the P2P client is synced to.
505
860
  * @returns Block number of latest L2 Block we've synced with.
506
861
  */ async getSyncedLatestBlockNum() {
507
- return await this.synchedLatestBlockNumber.getAsync() ?? BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
862
+ const tips = await this.l2Tips.getL2Tips();
863
+ return tips.proposed.number;
508
864
  }
509
865
  /**
510
866
  * Public function to check the latest proven block number that the P2P client is synced to.
511
867
  * @returns Block number of latest proven L2 Block we've synced with.
512
868
  */ async getSyncedProvenBlockNum() {
513
- return await this.synchedProvenBlockNumber.getAsync() ?? BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
869
+ const tips = await this.l2Tips.getL2Tips();
870
+ return tips.proven.block.number;
514
871
  }
515
872
  async getSyncedFinalizedBlockNum() {
516
- return await this.synchedFinalizedBlockNumber.getAsync() ?? BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
873
+ const tips = await this.l2Tips.getL2Tips();
874
+ return tips.finalized.block.number;
517
875
  }
518
876
  /** Returns latest L2 slot for which we have seen an L2 block. */ async getSyncedLatestSlot() {
519
877
  return await this.synchedLatestSlot.getAsync() ?? BigInt(0);
@@ -554,14 +912,8 @@ import { P2PClientState } from './interface.js';
554
912
  await this.txPool.clearNonEvictableTxs();
555
913
  await this.startCollectingMissingTxs(blocks);
556
914
  const lastBlock = blocks.at(-1);
557
- await Promise.all(blocks.map(async (block)=>this.setBlockHash({
558
- number: block.number,
559
- hash: await block.hash().then((h)=>h.toString())
560
- })));
561
- await this.synchedLatestBlockNumber.set(lastBlock.number);
562
915
  await this.synchedLatestSlot.set(BigInt(lastBlock.header.getSlot()));
563
916
  this.log.verbose(`Synched to latest block ${lastBlock.number}`);
564
- await this.startServiceIfSynched();
565
917
  }
566
918
  /** Request txs for unproven blocks so the prover node has more chances to get them. */ async startCollectingMissingTxs(blocks) {
567
919
  try {
@@ -606,10 +958,8 @@ import { P2PClientState } from './interface.js';
606
958
  permanently: true
607
959
  });
608
960
  await this.txPool.cleanupDeletedMinedTxs(lastBlockNum);
609
- await this.attestationPool.deleteAttestationsOlderThan(lastBlockSlot);
610
- await this.synchedFinalizedBlockNumber.set(lastBlockNum);
961
+ await this.attestationPool.deleteCheckpointAttestationsOlderThan(lastBlockSlot);
611
962
  this.log.debug(`Synched to finalized block ${lastBlockNum} at slot ${lastBlockSlot}`);
612
- await this.startServiceIfSynched();
613
963
  }
614
964
  /**
615
965
  * Updates the tx pool after a chain prune.
@@ -650,16 +1000,15 @@ import { P2PClientState } from './interface.js';
650
1000
  } else {
651
1001
  await this.txPool.markMinedAsPending(minedTxsFromReorg, latestBlock);
652
1002
  }
653
- await this.synchedLatestBlockNumber.set(latestBlock);
654
- // no need to update block hashes, as they will be updated as new blocks are added
655
1003
  }
656
1004
  async startServiceIfSynched() {
657
1005
  if (this.currentState !== P2PClientState.SYNCHING) {
658
1006
  return;
659
1007
  }
660
- const syncedFinalizedBlock = await this.getSyncedFinalizedBlockNum();
661
- const syncedProvenBlock = await this.getSyncedProvenBlockNum();
662
- const syncedLatestBlock = await this.getSyncedLatestBlockNum();
1008
+ const tips = await this.l2Tips.getL2Tips();
1009
+ const syncedFinalizedBlock = tips.finalized.block.number;
1010
+ const syncedProvenBlock = tips.proven.block.number;
1011
+ const syncedLatestBlock = tips.proposed.number;
663
1012
  if (syncedLatestBlock >= this.latestBlockNumberAtStart && syncedProvenBlock >= this.provenBlockNumberAtStart && syncedFinalizedBlock >= this.finalizedBlockNumberAtStart) {
664
1013
  this.log.info(`Completed P2P client sync to block ${syncedLatestBlock}. Starting service.`, {
665
1014
  syncedLatestBlock,
@@ -694,10 +1043,3 @@ import { P2PClientState } from './interface.js';
694
1043
  return this.p2pService.handleAuthRequestFromPeer(authRequest, peerId);
695
1044
  }
696
1045
  }
697
- _ts_decorate([
698
- trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
699
- [Attributes.SLOT_NUMBER]: proposal.slotNumber,
700
- [Attributes.BLOCK_ARCHIVE]: proposal.archive.toString(),
701
- [Attributes.P2P_ID]: (await proposal.p2pMessageLoggingIdentifier()).toString()
702
- }))
703
- ], P2PClient.prototype, "broadcastProposal", null);