@aztec/p2p 0.0.1-commit.e61ad554 → 0.0.1-commit.ec5f612

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 (445) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +4 -3
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +4 -4
  4. package/dest/client/factory.d.ts +10 -10
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +45 -18
  7. package/dest/client/interface.d.ts +46 -33
  8. package/dest/client/interface.d.ts.map +1 -1
  9. package/dest/client/p2p_client.d.ts +41 -51
  10. package/dest/client/p2p_client.d.ts.map +1 -1
  11. package/dest/client/p2p_client.js +156 -200
  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 +304 -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 +35 -7
  19. package/dest/config.d.ts.map +1 -1
  20. package/dest/config.js +21 -7
  21. package/dest/errors/tx-pool.error.d.ts +8 -0
  22. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  23. package/dest/errors/tx-pool.error.js +9 -0
  24. package/dest/index.d.ts +2 -1
  25. package/dest/index.d.ts.map +1 -1
  26. package/dest/index.js +1 -0
  27. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +104 -88
  28. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  29. package/dest/mem_pools/attestation_pool/attestation_pool.js +441 -3
  30. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  31. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  32. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  33. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  34. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  35. package/dest/mem_pools/attestation_pool/index.js +1 -2
  36. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  37. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  38. package/dest/mem_pools/attestation_pool/mocks.js +2 -2
  39. package/dest/mem_pools/index.d.ts +3 -2
  40. package/dest/mem_pools/index.d.ts.map +1 -1
  41. package/dest/mem_pools/index.js +1 -1
  42. package/dest/mem_pools/instrumentation.d.ts +1 -1
  43. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  44. package/dest/mem_pools/instrumentation.js +2 -2
  45. package/dest/mem_pools/interface.d.ts +5 -5
  46. package/dest/mem_pools/interface.d.ts.map +1 -1
  47. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +3 -3
  48. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  49. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  50. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  51. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  52. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  53. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  54. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  55. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  57. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  58. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +93 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +10 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/index.js +11 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +174 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  80. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  81. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +73 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  87. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  88. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  90. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  91. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  93. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +211 -0
  94. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/interfaces.js +9 -0
  96. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +119 -0
  97. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +193 -0
  99. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  100. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  103. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +354 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +60 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +161 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +77 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +905 -0
  111. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +3 -3
  112. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  113. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +7 -2
  114. package/dest/msg_validators/proposal_validator/proposal_validator.js +5 -5
  115. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  116. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  117. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  118. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  119. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  120. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  121. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  122. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  123. package/dest/msg_validators/tx_validator/block_header_validator.js +5 -4
  124. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  125. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  126. package/dest/msg_validators/tx_validator/data_validator.js +4 -1
  127. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  128. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  129. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  130. package/dest/msg_validators/tx_validator/factory.d.ts +118 -5
  131. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  132. package/dest/msg_validators/tx_validator/factory.js +228 -57
  133. package/dest/msg_validators/tx_validator/gas_validator.d.ts +59 -3
  134. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  135. package/dest/msg_validators/tx_validator/gas_validator.js +76 -38
  136. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  137. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  138. package/dest/msg_validators/tx_validator/index.js +1 -0
  139. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  140. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  141. package/dest/msg_validators/tx_validator/metadata_validator.js +2 -2
  142. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  143. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  144. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  145. package/dest/msg_validators/tx_validator/phases_validator.d.ts +3 -2
  146. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  147. package/dest/msg_validators/tx_validator/phases_validator.js +3 -3
  148. package/dest/msg_validators/tx_validator/size_validator.d.ts +3 -1
  149. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -1
  150. package/dest/msg_validators/tx_validator/size_validator.js +4 -1
  151. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  152. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  153. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  154. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  155. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  156. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  157. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  158. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  159. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  160. package/dest/services/data_store.d.ts +1 -1
  161. package/dest/services/data_store.d.ts.map +1 -1
  162. package/dest/services/data_store.js +10 -6
  163. package/dest/services/discv5/discV5_service.js +1 -1
  164. package/dest/services/dummy_service.d.ts +24 -4
  165. package/dest/services/dummy_service.d.ts.map +1 -1
  166. package/dest/services/dummy_service.js +46 -1
  167. package/dest/services/encoding.d.ts +3 -3
  168. package/dest/services/encoding.d.ts.map +1 -1
  169. package/dest/services/encoding.js +11 -10
  170. package/dest/services/gossipsub/index.d.ts +3 -0
  171. package/dest/services/gossipsub/index.d.ts.map +1 -0
  172. package/dest/services/gossipsub/index.js +2 -0
  173. package/dest/services/gossipsub/scoring.d.ts +21 -3
  174. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  175. package/dest/services/gossipsub/scoring.js +24 -7
  176. package/dest/services/gossipsub/topic_score_params.d.ts +173 -0
  177. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  178. package/dest/services/gossipsub/topic_score_params.js +346 -0
  179. package/dest/services/index.d.ts +2 -1
  180. package/dest/services/index.d.ts.map +1 -1
  181. package/dest/services/index.js +1 -0
  182. package/dest/services/libp2p/instrumentation.d.ts +1 -1
  183. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  184. package/dest/services/libp2p/instrumentation.js +14 -3
  185. package/dest/services/libp2p/libp2p_service.d.ts +100 -42
  186. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  187. package/dest/services/libp2p/libp2p_service.js +451 -359
  188. package/dest/services/peer-manager/metrics.d.ts +2 -2
  189. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  190. package/dest/services/peer-manager/metrics.js +20 -5
  191. package/dest/services/peer-manager/peer_scoring.d.ts +1 -1
  192. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  193. package/dest/services/peer-manager/peer_scoring.js +33 -4
  194. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +48 -0
  195. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  196. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +539 -0
  197. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  198. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  199. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  200. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +46 -0
  201. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  202. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  203. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +34 -0
  204. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  205. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +130 -0
  206. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +60 -0
  207. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  208. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +173 -0
  209. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  210. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  211. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  212. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  213. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  214. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  215. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  216. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  217. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  218. package/dest/services/reqresp/interface.d.ts +12 -1
  219. package/dest/services/reqresp/interface.d.ts.map +1 -1
  220. package/dest/services/reqresp/interface.js +15 -1
  221. package/dest/services/reqresp/metrics.d.ts +6 -5
  222. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  223. package/dest/services/reqresp/metrics.js +17 -5
  224. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  225. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  226. package/dest/services/reqresp/protocols/block_txs/bitvector.js +5 -0
  227. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  228. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  229. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  230. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +29 -6
  231. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  232. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +59 -13
  233. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  234. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  235. package/dest/services/reqresp/protocols/tx.js +20 -0
  236. package/dest/services/reqresp/reqresp.d.ts +6 -1
  237. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  238. package/dest/services/reqresp/reqresp.js +71 -27
  239. package/dest/services/service.d.ts +42 -3
  240. package/dest/services/service.d.ts.map +1 -1
  241. package/dest/services/tx_collection/config.d.ts +22 -1
  242. package/dest/services/tx_collection/config.d.ts.map +1 -1
  243. package/dest/services/tx_collection/config.js +55 -1
  244. package/dest/services/tx_collection/fast_tx_collection.d.ts +7 -4
  245. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  246. package/dest/services/tx_collection/fast_tx_collection.js +71 -44
  247. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  248. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  249. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  250. package/dest/services/tx_collection/file_store_tx_source.d.ts +37 -0
  251. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  252. package/dest/services/tx_collection/file_store_tx_source.js +90 -0
  253. package/dest/services/tx_collection/index.d.ts +3 -1
  254. package/dest/services/tx_collection/index.d.ts.map +1 -1
  255. package/dest/services/tx_collection/index.js +2 -0
  256. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  257. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  258. package/dest/services/tx_collection/instrumentation.js +10 -2
  259. package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
  260. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
  261. package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
  262. package/dest/services/tx_collection/proposal_tx_collector.d.ts +49 -0
  263. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  264. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  265. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  266. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  267. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  268. package/dest/services/tx_collection/tx_collection.d.ts +25 -12
  269. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  270. package/dest/services/tx_collection/tx_collection.js +79 -7
  271. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  272. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  273. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  274. package/dest/services/tx_collection/tx_source.d.ts +8 -3
  275. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  276. package/dest/services/tx_collection/tx_source.js +19 -2
  277. package/dest/services/tx_file_store/config.d.ts +16 -0
  278. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  279. package/dest/services/tx_file_store/config.js +22 -0
  280. package/dest/services/tx_file_store/index.d.ts +4 -0
  281. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  282. package/dest/services/tx_file_store/index.js +3 -0
  283. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  284. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  285. package/dest/services/tx_file_store/instrumentation.js +29 -0
  286. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  287. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  288. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  289. package/dest/services/tx_provider.d.ts +4 -4
  290. package/dest/services/tx_provider.d.ts.map +1 -1
  291. package/dest/services/tx_provider.js +9 -8
  292. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  293. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  294. package/dest/services/tx_provider_instrumentation.js +5 -5
  295. package/dest/test-helpers/index.d.ts +3 -1
  296. package/dest/test-helpers/index.d.ts.map +1 -1
  297. package/dest/test-helpers/index.js +2 -0
  298. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  299. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  300. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  301. package/dest/test-helpers/mock-pubsub.d.ts +30 -4
  302. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  303. package/dest/test-helpers/mock-pubsub.js +105 -4
  304. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  305. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  306. package/dest/test-helpers/reqresp-nodes.js +4 -3
  307. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  308. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  309. package/dest/test-helpers/test_tx_provider.js +41 -0
  310. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  311. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  312. package/dest/test-helpers/testbench-utils.js +366 -0
  313. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  314. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  315. package/dest/testbench/p2p_client_testbench_worker.js +219 -138
  316. package/dest/testbench/worker_client_manager.d.ts +51 -6
  317. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  318. package/dest/testbench/worker_client_manager.js +226 -44
  319. package/dest/util.d.ts +2 -2
  320. package/dest/util.d.ts.map +1 -1
  321. package/package.json +14 -14
  322. package/src/bootstrap/bootstrap.ts +7 -4
  323. package/src/client/factory.ts +83 -36
  324. package/src/client/interface.ts +56 -34
  325. package/src/client/p2p_client.ts +192 -247
  326. package/src/client/test/tx_proposal_collector/README.md +227 -0
  327. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +345 -0
  328. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  329. package/src/config.ts +47 -11
  330. package/src/errors/tx-pool.error.ts +12 -0
  331. package/src/index.ts +1 -0
  332. package/src/mem_pools/attestation_pool/attestation_pool.ts +496 -91
  333. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  334. package/src/mem_pools/attestation_pool/index.ts +9 -2
  335. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  336. package/src/mem_pools/index.ts +4 -1
  337. package/src/mem_pools/instrumentation.ts +2 -1
  338. package/src/mem_pools/interface.ts +4 -4
  339. package/src/mem_pools/tx_pool/README.md +1 -1
  340. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +3 -3
  341. package/src/mem_pools/tx_pool_v2/README.md +275 -0
  342. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  343. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  344. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  345. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  346. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +121 -0
  347. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  348. package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
  349. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +209 -0
  350. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  351. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  352. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  353. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +90 -0
  354. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +31 -0
  355. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  356. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  357. package/src/mem_pools/tx_pool_v2/interfaces.ts +242 -0
  358. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +297 -0
  359. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  360. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +444 -0
  361. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +223 -0
  362. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1083 -0
  363. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +10 -4
  364. package/src/msg_validators/proposal_validator/proposal_validator.ts +5 -5
  365. package/src/msg_validators/tx_validator/README.md +115 -0
  366. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  367. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  368. package/src/msg_validators/tx_validator/block_header_validator.ts +22 -11
  369. package/src/msg_validators/tx_validator/data_validator.ts +6 -2
  370. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  371. package/src/msg_validators/tx_validator/factory.ts +372 -55
  372. package/src/msg_validators/tx_validator/gas_validator.ts +98 -29
  373. package/src/msg_validators/tx_validator/index.ts +1 -0
  374. package/src/msg_validators/tx_validator/metadata_validator.ts +6 -3
  375. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  376. package/src/msg_validators/tx_validator/phases_validator.ts +5 -3
  377. package/src/msg_validators/tx_validator/size_validator.ts +6 -2
  378. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  379. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  380. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  381. package/src/services/data_store.ts +10 -7
  382. package/src/services/discv5/discV5_service.ts +1 -1
  383. package/src/services/dummy_service.ts +59 -2
  384. package/src/services/encoding.ts +9 -9
  385. package/src/services/gossipsub/README.md +641 -0
  386. package/src/services/gossipsub/index.ts +2 -0
  387. package/src/services/gossipsub/scoring.ts +29 -5
  388. package/src/services/gossipsub/topic_score_params.ts +487 -0
  389. package/src/services/index.ts +1 -0
  390. package/src/services/libp2p/instrumentation.ts +15 -2
  391. package/src/services/libp2p/libp2p_service.ts +496 -397
  392. package/src/services/peer-manager/metrics.ts +21 -4
  393. package/src/services/peer-manager/peer_scoring.ts +29 -1
  394. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  395. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +678 -0
  396. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  397. package/src/services/reqresp/batch-tx-requester/interface.ts +53 -0
  398. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +161 -0
  399. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +244 -0
  400. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  401. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  402. package/src/services/reqresp/connection-sampler/connection_sampler.ts +16 -0
  403. package/src/services/reqresp/interface.ts +29 -1
  404. package/src/services/reqresp/metrics.ts +34 -9
  405. package/src/services/reqresp/protocols/block_txs/bitvector.ts +7 -0
  406. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  407. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +74 -9
  408. package/src/services/reqresp/protocols/tx.ts +22 -0
  409. package/src/services/reqresp/reqresp.ts +82 -23
  410. package/src/services/service.ts +55 -2
  411. package/src/services/tx_collection/config.ts +83 -1
  412. package/src/services/tx_collection/fast_tx_collection.ts +93 -47
  413. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  414. package/src/services/tx_collection/file_store_tx_source.ts +117 -0
  415. package/src/services/tx_collection/index.ts +6 -0
  416. package/src/services/tx_collection/instrumentation.ts +17 -2
  417. package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
  418. package/src/services/tx_collection/proposal_tx_collector.ts +113 -0
  419. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  420. package/src/services/tx_collection/tx_collection.ts +117 -20
  421. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  422. package/src/services/tx_collection/tx_source.ts +22 -3
  423. package/src/services/tx_file_store/config.ts +37 -0
  424. package/src/services/tx_file_store/index.ts +3 -0
  425. package/src/services/tx_file_store/instrumentation.ts +36 -0
  426. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  427. package/src/services/tx_provider.ts +10 -9
  428. package/src/services/tx_provider_instrumentation.ts +11 -5
  429. package/src/test-helpers/index.ts +2 -0
  430. package/src/test-helpers/make-test-p2p-clients.ts +3 -5
  431. package/src/test-helpers/mock-pubsub.ts +146 -9
  432. package/src/test-helpers/reqresp-nodes.ts +4 -6
  433. package/src/test-helpers/test_tx_provider.ts +64 -0
  434. package/src/test-helpers/testbench-utils.ts +430 -0
  435. package/src/testbench/p2p_client_testbench_worker.ts +333 -131
  436. package/src/testbench/worker_client_manager.ts +304 -47
  437. package/src/util.ts +7 -1
  438. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  439. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  440. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  441. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  442. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  443. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  444. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  445. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
@@ -1 +1 @@
1
- {"version":3,"file":"reqresp.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/reqresp.ts"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,eAAe,EAAiC,MAAM,yBAAyB,CAAC;AAE1G,OAAO,KAAK,EAAsB,MAAM,EAAU,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AASxB;;;;;;;;;;;;;GAaG;AACH,qBAAa,OAAQ,YAAW,gBAAgB;IAgB5C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAjBhB,OAAO,CAAC,0BAA0B,CAAiD;IACnF,OAAO,CAAC,aAAa,CAA2C;IAEhE,OAAO,CAAC,mBAAmB,CAA2C;IACtE,OAAO,CAAC,qBAAqB,CAA6C;IAE1E,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,OAAO,CAAiB;IAEhC,YACE,MAAM,EAAE,gBAAgB,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,yCAA8B,EAC5C,UAAU,GAAE,OAAO,CAAC,4BAA4B,CAAM,EACtD,eAAe,GAAE,eAAsC,EAgBxD;IAEM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAQ3D;IAED,IAAI,MAAM,6CAET;IAED;;OAEG;IACG,KAAK,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,4BAA4B,iBAgB/G;IAEK,cAAc,CAClB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,yBAAyB,EAClC,SAAS,GAAE,4BAA4B,CAAC,kBAAkB,CAAgD,GACzG,OAAO,CAAC,IAAI,CAAC,CAWf;IAED;;OAEG;IACG,IAAI,kBAkBT;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IAQG,gBAAgB,CAAC,WAAW,SAAS,kBAAkB,EAC3D,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAChE,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,SAAQ,EACjB,QAAQ,SAA+C,EACvD,gBAAgB,SAAI,GACnB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CA8IlE;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAKU,iBAAiB,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAA2B,GACvC,OAAO,CAAC,eAAe,CAAC,CAoD1B;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;YAcb,WAAW;YAkEX,aAAa;YA+Db,aAAa;YAwCb,YAAY;IAmC1B,OAAO,CAAC,kBAAkB;IAO1B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAyB/B,OAAO,CAAC,0BAA0B;CA8DnC"}
1
+ {"version":3,"file":"reqresp.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/reqresp.ts"],"names":[],"mappings":"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"}
@@ -384,7 +384,7 @@ import { SnappyTransform } from '../encoding.js';
384
384
  import { DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS, DEFAULT_REQRESP_DIAL_TIMEOUT_MS } from './config.js';
385
385
  import { BatchConnectionSampler } from './connection-sampler/batch_connection_sampler.js';
386
386
  import { ConnectionSampler, RandomSampler } from './connection-sampler/connection_sampler.js';
387
- import { DEFAULT_SUB_PROTOCOL_VALIDATORS, ReqRespSubProtocol, responseFromBuffer } from './interface.js';
387
+ import { DEFAULT_SUB_PROTOCOL_VALIDATORS, ReqRespSubProtocol, responseFromBuffer, subProtocolSizeCalculators } from './interface.js';
388
388
  import { ReqRespMetrics } from './metrics.js';
389
389
  import { RateLimitStatus, RequestResponseRateLimiter, prettyPrintRateLimitStatus } from './rate-limiter/rate_limiter.js';
390
390
  import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqRespStatus } from './status.js';
@@ -469,6 +469,11 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
469
469
  return this.metrics.tracer;
470
470
  }
471
471
  /**
472
+ * Get the connection sampler instance
473
+ */ getConnectionSampler() {
474
+ return this.connectionSampler;
475
+ }
476
+ /**
472
477
  * Start the reqresp service
473
478
  */ async start(subProtocolHandlers, subProtocolValidators) {
474
479
  Object.assign(this.subProtocolHandlers, subProtocolHandlers);
@@ -528,6 +533,14 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
528
533
  const responseValidator = this.subProtocolValidators[subProtocol] ?? DEFAULT_SUB_PROTOCOL_VALIDATORS[subProtocol];
529
534
  const responses = new Array(requests.length);
530
535
  const requestBuffers = requests.map((req)=>req.toBuffer());
536
+ const isEmptyResponse = (value)=>{
537
+ // Some responses serialize to a non-empty buffer even when they contain no items (e.g., empty TxArray).
538
+ if (!value || typeof value !== 'object') {
539
+ return false;
540
+ }
541
+ const length = value.length;
542
+ return typeof length === 'number' && length === 0;
543
+ };
531
544
  const requestFunction = async (signal)=>{
532
545
  // Track which requests still need to be processed
533
546
  const pendingRequestIndices = new Set(requestBuffers.map((_, i)=>i));
@@ -555,7 +568,7 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
555
568
  for (const requestIndex of pendingRequestIndices){
556
569
  const peer = batchSampler.getPeerForRequest(requestIndex);
557
570
  if (!peer) {
558
- break;
571
+ continue;
559
572
  }
560
573
  const peerAsString = peer.toString();
561
574
  if (!requestBatches.has(peerAsString)) {
@@ -575,6 +588,11 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
575
588
  indices: Array.from(pendingRequestIndices.values()).slice(0, limit)
576
589
  });
577
590
  }
591
+ // If no requests could be assigned (all peers exhausted for all indices), exit early
592
+ if (requestBatches.size === 0) {
593
+ this.logger.warn('No peers available for any pending request indices, stopping batch request');
594
+ break;
595
+ }
578
596
  // Make parallel requests for each peer's batch
579
597
  // A batch entry will look something like this:
580
598
  // PeerId0: [0, 1, 2, 3]
@@ -583,39 +601,56 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
583
601
  // while simultaneously Peer Id 1 will send requests 4, 5, 6, 7 in serial
584
602
  const batchResults = await Promise.all(Array.from(requestBatches.entries()).map(async ([peerAsString, { peerId: peer, indices }])=>{
585
603
  try {
604
+ const markIndexFailed = (index)=>batchSampler.markPeerFailedForIndex(peer, index);
586
605
  // Requests all going to the same peer are sent synchronously
587
606
  const peerResults = [];
607
+ let shouldReplacePeer = false;
608
+ const handleFailure = (status, index)=>{
609
+ this.logger.warn(`Request to peer ${peerAsString} failed with status ${prettyPrintReqRespStatus(status)}`);
610
+ markIndexFailed(index);
611
+ return status === ReqRespStatus.RATE_LIMIT_EXCEEDED;
612
+ };
588
613
  for (const index of indices){
589
- this.logger.trace(`Sending request ${index} to peer ${peerAsString}`);
614
+ this.logger.info(`Sending request ${index} to peer ${peerAsString}`);
590
615
  const response = await this.sendRequestToPeer(peer, subProtocol, requestBuffers[index]);
591
616
  // Check the status of the response buffer
592
617
  if (response.status !== ReqRespStatus.SUCCESS) {
593
- this.logger.debug(`Request to peer ${peerAsString} failed with status ${prettyPrintReqRespStatus(response.status)}`);
594
- // If we hit a rate limit or some failure, we remove the peer and return the results,
595
- // they will be split among remaining peers and the new sampled peer
596
- batchSampler.removePeerAndReplace(peer);
597
- return {
598
- peer,
599
- results: peerResults
600
- };
601
- }
602
- if (response && response.data.length > 0) {
603
- const object = responseFromBuffer(subProtocol, response.data);
604
- const isValid = await responseValidator(requests[index], object, peer);
605
- if (isValid) {
606
- peerResults.push({
607
- index,
608
- response: object
609
- });
618
+ shouldReplacePeer = handleFailure(response.status, index);
619
+ if (shouldReplacePeer) {
620
+ break;
610
621
  }
622
+ continue;
623
+ }
624
+ if (response.data.length === 0) {
625
+ markIndexFailed(index);
626
+ continue;
627
+ }
628
+ const object = responseFromBuffer(subProtocol, response.data);
629
+ if (isEmptyResponse(object)) {
630
+ markIndexFailed(index);
631
+ continue;
611
632
  }
633
+ const isValid = await responseValidator(requests[index], object, peer);
634
+ if (!isValid) {
635
+ markIndexFailed(index);
636
+ continue;
637
+ }
638
+ peerResults.push({
639
+ index,
640
+ response: object
641
+ });
642
+ }
643
+ // If peer had a hard failure (rate limit), replace it for future iterations
644
+ if (shouldReplacePeer) {
645
+ this.logger.warn(`Peer ${peerAsString} hit a hard failure, removing from sampler`);
646
+ batchSampler.removePeerAndReplace(peer);
612
647
  }
613
648
  return {
614
649
  peer,
615
650
  results: peerResults
616
651
  };
617
652
  } catch (error) {
618
- this.logger.debug(`Failed batch request to peer ${peerAsString}:`, error);
653
+ this.logger.warn(`Failed batch request to peer ${peerAsString}:`, error);
619
654
  batchSampler.removePeerAndReplace(peer);
620
655
  return {
621
656
  peer,
@@ -635,14 +670,14 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
635
670
  retryAttempts++;
636
671
  }
637
672
  if (retryAttempts >= maxRetryAttempts) {
638
- this.logger.debug(`Max retry attempts ${maxRetryAttempts} reached for batch request`);
673
+ this.logger.warn(`Max retry attempts ${maxRetryAttempts} reached for batch request`);
639
674
  }
640
675
  return responses;
641
676
  };
642
677
  try {
643
678
  return await executeTimeout(requestFunction, timeoutMs, ()=>new CollectiveReqRespTimeoutError());
644
679
  } catch (e) {
645
- this.logger.debug(`${e.message} | subProtocol: ${subProtocol}`);
680
+ this.logger.warn(`${e.message} | subProtocol: ${subProtocol}`);
646
681
  return [];
647
682
  }
648
683
  }
@@ -674,22 +709,27 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
674
709
  let stream;
675
710
  try {
676
711
  this.metrics.recordRequestSent(subProtocol);
712
+ // Calculate expected response size based on the request payload
713
+ const expectedSizeKb = subProtocolSizeCalculators[subProtocol](payload);
677
714
  this.logger.trace(`Sending request to peer ${peerId.toString()} on sub protocol ${subProtocol}`);
678
715
  stream = await this.connectionSampler.dialProtocol(peerId, subProtocol, dialTimeout);
679
716
  this.logger.trace(`Opened stream ${stream.id} for sending request to peer ${peerId.toString()} on sub protocol ${subProtocol}`);
680
717
  const timeoutErr = new IndividualReqRespTimeoutError();
718
+ // Create a wrapper to pass the expected size to readMessage
719
+ const readMessageWithSizeLimit = (source)=>this.readMessage(source, expectedSizeKb);
681
720
  const [_, resp] = await executeTimeout((signal)=>Promise.all([
682
721
  pipeline([
683
722
  payload
684
723
  ], stream.sink, {
685
724
  signal
686
725
  }),
687
- pipeline(stream.source, this.readMessage.bind(this), {
726
+ pipeline(stream.source, readMessageWithSizeLimit, {
688
727
  signal
689
728
  })
690
729
  ]), this.individualRequestTimeoutMs, ()=>timeoutErr);
691
730
  return resp;
692
731
  } catch (e) {
732
+ this.logger.warn(`SUBPROTOCOL: ${subProtocol}\n`, e);
693
733
  // On error we immediately abort the stream, this is preferred way,
694
734
  // because it signals to the sender that error happened, whereas
695
735
  // closing the stream only closes our side and is much slower
@@ -737,7 +777,10 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
737
777
  * The message is split into two components
738
778
  * - The first chunk should contain a control byte, indicating the status of the response see `ReqRespStatus`
739
779
  * - The second chunk should contain the response data
740
- */ async readMessage(source) {
780
+ *
781
+ * @param source - The async iterable source of data chunks
782
+ * @param maxSizeKb - Optional maximum expected size in KB for the decompressed response
783
+ */ async readMessage(source, maxSizeKb) {
741
784
  let status;
742
785
  const chunks = [];
743
786
  try {
@@ -758,7 +801,7 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
758
801
  }
759
802
  }
760
803
  const messageData = Buffer.concat(chunks);
761
- const message = this.snappyTransform.inboundTransformData(messageData);
804
+ const message = this.snappyTransform.inboundTransformData(messageData, undefined, maxSizeKb);
762
805
  return {
763
806
  status: status ?? ReqRespStatus.UNKNOWN,
764
807
  data: message
@@ -819,7 +862,8 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
819
862
  // and that this stream should be dropped
820
863
  const isMessageToNotWarn = err instanceof Error && [
821
864
  'stream reset',
822
- 'Cannot push value onto an ended pushable'
865
+ 'Cannot push value onto an ended pushable',
866
+ 'read ECONNRESET'
823
867
  ].some((msg)=>err.message.includes(msg));
824
868
  const level = isMessageToNotWarn ? 'debug' : 'warn';
825
869
  this.logger[level]('Unknown stream error while handling the stream, aborting', {
@@ -1,10 +1,12 @@
1
+ import type { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import type { EthAddress } from '@aztec/foundation/eth-address';
2
3
  import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
3
- import type { BlockProposal, CheckpointAttestation, CheckpointProposalCore, Gossipable } from '@aztec/stdlib/p2p';
4
+ import type { BlockProposal, CheckpointAttestation, CheckpointProposalCore, Gossipable, TopicType } from '@aztec/stdlib/p2p';
4
5
  import type { Tx } from '@aztec/stdlib/tx';
5
6
  import type { PeerId } from '@libp2p/interface';
6
7
  import type { ENR } from '@nethermindeth/enr';
7
8
  import type EventEmitter from 'events';
9
+ import type { BatchTxRequesterLibP2PService } from './reqresp/batch-tx-requester/interface.js';
8
10
  import type { P2PReqRespConfig } from './reqresp/config.js';
9
11
  import type { StatusMessage } from './reqresp/index.js';
10
12
  import type { ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators, SubProtocolMap } from './reqresp/interface.js';
@@ -27,6 +29,28 @@ export type P2PBlockReceivedCallback = (block: BlockProposal, sender: PeerId) =>
27
29
  */
28
30
  export type P2PCheckpointReceivedCallback = (checkpoint: CheckpointProposalCore, sender: PeerId) => Promise<CheckpointAttestation[] | undefined>;
29
31
  export type AuthReceivedCallback = (peerId: PeerId, authRequest: AuthRequest) => Promise<AuthResponse | undefined>;
32
+ /** Minimal info passed to the duplicate proposal callback. */
33
+ export type DuplicateProposalInfo = {
34
+ slot: SlotNumber;
35
+ proposer: EthAddress;
36
+ type: 'checkpoint' | 'block';
37
+ };
38
+ /**
39
+ * Callback for when a duplicate proposal is detected (equivocation).
40
+ * Invoked on the first duplicate (when count goes from 1 to 2).
41
+ */
42
+ export type P2PDuplicateProposalCallback = (info: DuplicateProposalInfo) => void;
43
+ /** Minimal info passed to the duplicate attestation callback. */
44
+ export type DuplicateAttestationInfo = {
45
+ slot: SlotNumber;
46
+ attester: EthAddress;
47
+ };
48
+ /**
49
+ * Callback for when a duplicate attestation is detected (equivocation).
50
+ * A validator signing attestations for different proposals at the same slot.
51
+ * Invoked on the first duplicate (when count goes from 1 to 2).
52
+ */
53
+ export type P2PDuplicateAttestationCallback = (info: DuplicateAttestationInfo) => void;
30
54
  /**
31
55
  * The interface for a P2P service implementation.
32
56
  */
@@ -56,14 +80,29 @@ export interface P2PService {
56
80
  sendBatchRequest<Protocol extends ReqRespSubProtocol>(protocol: Protocol, requests: InstanceType<SubProtocolMap[Protocol]['request']>[], pinnedPeerId?: PeerId, timeoutMs?: number, maxPeers?: number, maxRetryAttempts?: number): Promise<InstanceType<SubProtocolMap[Protocol]['response']>[]>;
57
81
  registerBlockReceivedCallback(callback: P2PBlockReceivedCallback): void;
58
82
  registerCheckpointReceivedCallback(callback: P2PCheckpointReceivedCallback): void;
83
+ /**
84
+ * Registers a callback invoked when a duplicate proposal is detected (equivocation).
85
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
86
+ */
87
+ registerDuplicateProposalCallback(callback: P2PDuplicateProposalCallback): void;
88
+ /**
89
+ * Registers a callback invoked when a duplicate attestation is detected (equivocation).
90
+ * A validator signing attestations for different proposals at the same slot.
91
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
92
+ */
93
+ registerDuplicateAttestationCallback(callback: P2PDuplicateAttestationCallback): void;
59
94
  getEnr(): ENR | undefined;
60
95
  getPeers(includePending?: boolean): PeerInfo[];
61
- validate(txs: Tx[]): Promise<void>;
96
+ /** Returns the number of peers in the GossipSub mesh for a given topic type. */
97
+ getGossipMeshPeerCount(topicType: TopicType): number;
98
+ validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
62
99
  addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
63
100
  handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
64
101
  updateConfig(config: Partial<P2PReqRespConfig>): void;
65
102
  /** If node running this P2P stack is validator, passes in validator address to P2P layer */
66
103
  registerThisValidatorAddresses(address: EthAddress[]): void;
104
+ /** Get BatchTxRequester service dependencies */
105
+ getBatchTxRequesterService(): BatchTxRequesterLibP2PService;
67
106
  }
68
107
  /**
69
108
  * The interface for a peer discovery service implementation.
@@ -101,4 +140,4 @@ export interface PeerDiscoveryService extends EventEmitter {
101
140
  getEnr(): ENR | undefined;
102
141
  bootstrapNodeEnrs: ENR[];
103
142
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xILE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRXZDLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQ1Ysa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsY0FBYyxFQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdFLG9CQUFZLGtCQUFrQjtJQUM1QixPQUFPLFlBQVk7SUFDbkIsT0FBTyxZQUFZO0NBQ3BCO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFbEc7Ozs7O0dBS0c7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
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLFNBQVMsRUFDVixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRXZDLE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0YsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFDVixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixjQUFjLEVBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0Usb0JBQVksa0JBQWtCO0lBQzVCLE9BQU8sWUFBWTtJQUNuQixPQUFPLFlBQVk7Q0FDcEI7QUFFRDs7OztHQUlHO0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE7E,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAElG;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAC1C,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,qBAAqB,EAAE,GAAG,SAAS,CAAC,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;AAEnH,8DAA8D;AAC9D,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAEjF,iEAAiE;AACjE,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,SAAS,kBAAkB,EAClD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7D,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IAGjE,6BAA6B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAExE,kCAAkC,CAAC,QAAQ,EAAE,6BAA6B,GAAG,IAAI,CAAC;IAElF;;;OAGG;IACH,iCAAiC,CAAC,QAAQ,EAAE,4BAA4B,GAAG,IAAI,CAAC;IAEhF;;;;OAIG;IACH,oCAAoC,CAAC,QAAQ,EAAE,+BAA+B,GAAG,IAAI,CAAC;IAEtF,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;IAE1B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAE/C,gFAAgF;IAChF,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC;IAErD,kCAAkC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,qBAAqB,CACnB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,yBAAyB,EAClC,SAAS,CAAC,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,yBAAyB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5F,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAEtD,4FAA4F;IAC5F,8BAA8B,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAE5D,gDAAgD;IAChD,0BAA0B,IAAI,6BAA6B,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD;;SAEK;IACL,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;SAEK;IACL,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,YAAY,IAAI,GAAG,EAAE,CAAC;IAEtB;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAElD,SAAS,IAAI,kBAAkB,CAAC;IAEhC,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;IAE1B,iBAAiB,EAAE,GAAG,EAAE,CAAC;CAC1B"}
@@ -1,4 +1,5 @@
1
1
  import { type ConfigMappingsType } from '@aztec/foundation/config';
2
+ export type MissingTxsCollectorType = 'new' | 'old';
2
3
  export type TxCollectionConfig = {
3
4
  /** How long to wait before starting reqresp for fast collection */
4
5
  txCollectionFastNodesTimeoutBeforeReqRespMs: number;
@@ -20,6 +21,26 @@ export type TxCollectionConfig = {
20
21
  txCollectionFastMaxParallelRequestsPerNode: number;
21
22
  /** Maximum number of transactions to request from a node in a single batch */
22
23
  txCollectionNodeRpcMaxBatchSize: number;
24
+ /** Which collector implementation to use for missing txs collection */
25
+ txCollectionMissingTxsCollectorType: MissingTxsCollectorType;
26
+ /** A comma-separated list of file store URLs (s3://, gs://, file://, http://) for tx collection */
27
+ txCollectionFileStoreUrls: string[];
28
+ /** Delay in ms before file store collection starts after slow collection is triggered */
29
+ txCollectionFileStoreSlowDelayMs: number;
30
+ /** Delay in ms before file store collection starts after fast collection is triggered */
31
+ txCollectionFileStoreFastDelayMs: number;
32
+ /** Number of concurrent workers for fast file store collection */
33
+ txCollectionFileStoreFastWorkerCount: number;
34
+ /** Number of concurrent workers for slow file store collection */
35
+ txCollectionFileStoreSlowWorkerCount: number;
36
+ /** Base backoff time in ms for fast file store collection retries */
37
+ txCollectionFileStoreFastBackoffBaseMs: number;
38
+ /** Base backoff time in ms for slow file store collection retries */
39
+ txCollectionFileStoreSlowBackoffBaseMs: number;
40
+ /** Max backoff time in ms for fast file store collection retries */
41
+ txCollectionFileStoreFastBackoffMaxMs: number;
42
+ /** Max backoff time in ms for slow file store collection retries */
43
+ txCollectionFileStoreSlowBackoffMaxMs: number;
23
44
  };
24
45
  export declare const txCollectionConfigMappings: ConfigMappingsType<TxCollectionConfig>;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQTJDLE1BQU0sMEJBQTBCLENBQUM7QUFHNUcsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLG9FQUFvRTtJQUNwRSwyQ0FBMkMsRUFBRSxNQUFNLENBQUM7SUFDcEQsaURBQWlEO0lBQ2pELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxzQ0FBc0M7SUFDdEMsaUNBQWlDLEVBQUUsTUFBTSxDQUFDO0lBQzFDLHFFQUFxRTtJQUNyRSxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDekMsd0RBQXdEO0lBQ3hELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxnR0FBZ0c7SUFDaEcseUNBQXlDLEVBQUUsT0FBTyxDQUFDO0lBQ25ELDJGQUEyRjtJQUMzRiw4QkFBOEIsRUFBRSxNQUFNLENBQUM7SUFDdkMsNkVBQTZFO0lBQzdFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLG1GQUFtRjtJQUNuRiwwQ0FBMEMsRUFBRSxNQUFNLENBQUM7SUFDbkQsOEVBQThFO0lBQzlFLCtCQUErQixFQUFFLE1BQU0sQ0FBQztDQUN6QyxDQUFDO0FBRUYsZUFBTyxNQUFNLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQXlEN0UsQ0FBQyJ9
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBSXhCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsTUFBTSxNQUFNLHVCQUF1QixHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7QUFFcEQsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLG9FQUFvRTtJQUNwRSwyQ0FBMkMsRUFBRSxNQUFNLENBQUM7SUFDcEQsaURBQWlEO0lBQ2pELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxzQ0FBc0M7SUFDdEMsaUNBQWlDLEVBQUUsTUFBTSxDQUFDO0lBQzFDLHFFQUFxRTtJQUNyRSxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDekMsd0RBQXdEO0lBQ3hELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxnR0FBZ0c7SUFDaEcseUNBQXlDLEVBQUUsT0FBTyxDQUFDO0lBQ25ELDJGQUEyRjtJQUMzRiw4QkFBOEIsRUFBRSxNQUFNLENBQUM7SUFDdkMsNkVBQTZFO0lBQzdFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLG1GQUFtRjtJQUNuRiwwQ0FBMEMsRUFBRSxNQUFNLENBQUM7SUFDbkQsOEVBQThFO0lBQzlFLCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4Qyx1RUFBdUU7SUFDdkUsbUNBQW1DLEVBQUUsdUJBQXVCLENBQUM7SUFDN0QsbUdBQW1HO0lBQ25HLHlCQUF5QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BDLHlGQUF5RjtJQUN6RixnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDekMseUZBQXlGO0lBQ3pGLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQztJQUN6QyxrRUFBa0U7SUFDbEUsb0NBQW9DLEVBQUUsTUFBTSxDQUFDO0lBQzdDLGtFQUFrRTtJQUNsRSxvQ0FBb0MsRUFBRSxNQUFNLENBQUM7SUFDN0MscUVBQXFFO0lBQ3JFLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQztJQUMvQyxxRUFBcUU7SUFDckUsc0NBQXNDLEVBQUUsTUFBTSxDQUFDO0lBQy9DLG9FQUFvRTtJQUNwRSxxQ0FBcUMsRUFBRSxNQUFNLENBQUM7SUFDOUMsb0VBQW9FO0lBQ3BFLHFDQUFxQyxFQUFFLE1BQU0sQ0FBQztDQUMvQyxDQUFDO0FBRUYsZUFBTyxNQUFNLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQWdIN0UsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA2C,MAAM,0BAA0B,CAAC;AAG5G,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oEAAoE;IACpE,2CAA2C,EAAE,MAAM,CAAC;IACpD,iDAAiD;IACjD,+BAA+B,EAAE,MAAM,CAAC;IACxC,sCAAsC;IACtC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,qEAAqE;IACrE,gCAAgC,EAAE,MAAM,CAAC;IACzC,wDAAwD;IACxD,+BAA+B,EAAE,MAAM,CAAC;IACxC,gGAAgG;IAChG,yCAAyC,EAAE,OAAO,CAAC;IACnD,2FAA2F;IAC3F,8BAA8B,EAAE,MAAM,CAAC;IACvC,6EAA6E;IAC7E,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,mFAAmF;IACnF,0CAA0C,EAAE,MAAM,CAAC;IACnD,8EAA8E;IAC9E,+BAA+B,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAyD7E,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,KAAK,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oEAAoE;IACpE,2CAA2C,EAAE,MAAM,CAAC;IACpD,iDAAiD;IACjD,+BAA+B,EAAE,MAAM,CAAC;IACxC,sCAAsC;IACtC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,qEAAqE;IACrE,gCAAgC,EAAE,MAAM,CAAC;IACzC,wDAAwD;IACxD,+BAA+B,EAAE,MAAM,CAAC;IACxC,gGAAgG;IAChG,yCAAyC,EAAE,OAAO,CAAC;IACnD,2FAA2F;IAC3F,8BAA8B,EAAE,MAAM,CAAC;IACvC,6EAA6E;IAC7E,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,mFAAmF;IACnF,0CAA0C,EAAE,MAAM,CAAC;IACnD,8EAA8E;IAC9E,+BAA+B,EAAE,MAAM,CAAC;IACxC,uEAAuE;IACvE,mCAAmC,EAAE,uBAAuB,CAAC;IAC7D,mGAAmG;IACnG,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,yFAAyF;IACzF,gCAAgC,EAAE,MAAM,CAAC;IACzC,yFAAyF;IACzF,gCAAgC,EAAE,MAAM,CAAC;IACzC,kEAAkE;IAClE,oCAAoC,EAAE,MAAM,CAAC;IAC7C,kEAAkE;IAClE,oCAAoC,EAAE,MAAM,CAAC;IAC7C,qEAAqE;IACrE,sCAAsC,EAAE,MAAM,CAAC;IAC/C,qEAAqE;IACrE,sCAAsC,EAAE,MAAM,CAAC;IAC/C,oEAAoE;IACpE,qCAAqC,EAAE,MAAM,CAAC;IAC9C,oEAAoE;IACpE,qCAAqC,EAAE,MAAM,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAgH7E,CAAC"}
@@ -1,4 +1,4 @@
1
- import { booleanConfigHelper, numberConfigHelper } from '@aztec/foundation/config';
1
+ import { booleanConfigHelper, enumConfigHelper, numberConfigHelper } from '@aztec/foundation/config';
2
2
  import { MAX_RPC_TXS_LEN } from '@aztec/stdlib/interfaces/api-limit';
3
3
  export const txCollectionConfigMappings = {
4
4
  txCollectionFastNodesTimeoutBeforeReqRespMs: {
@@ -54,5 +54,59 @@ export const txCollectionConfigMappings = {
54
54
  env: 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE',
55
55
  description: 'Maximum number of transactions to request from a node in a single batch',
56
56
  ...numberConfigHelper(MAX_RPC_TXS_LEN)
57
+ },
58
+ txCollectionMissingTxsCollectorType: {
59
+ env: 'TX_COLLECTION_MISSING_TXS_COLLECTOR_TYPE',
60
+ description: 'Which collector implementation to use for missing txs collection (new or old)',
61
+ ...enumConfigHelper([
62
+ 'new',
63
+ 'old'
64
+ ], 'new')
65
+ },
66
+ txCollectionFileStoreUrls: {
67
+ env: 'TX_COLLECTION_FILE_STORE_URLS',
68
+ description: 'A comma-separated list of file store URLs (s3://, gs://, file://, http://) for tx collection',
69
+ parseEnv: (val)=>val.split(',').map((url)=>url.trim()).filter((url)=>url.length > 0),
70
+ defaultValue: []
71
+ },
72
+ txCollectionFileStoreSlowDelayMs: {
73
+ env: 'TX_COLLECTION_FILE_STORE_SLOW_DELAY_MS',
74
+ description: 'Delay before file store collection starts after slow collection',
75
+ ...numberConfigHelper(24_000)
76
+ },
77
+ txCollectionFileStoreFastDelayMs: {
78
+ env: 'TX_COLLECTION_FILE_STORE_FAST_DELAY_MS',
79
+ description: 'Delay before file store collection starts after fast collection',
80
+ ...numberConfigHelper(2_000)
81
+ },
82
+ txCollectionFileStoreFastWorkerCount: {
83
+ env: 'TX_COLLECTION_FILE_STORE_FAST_WORKER_COUNT',
84
+ description: 'Number of concurrent workers for fast file store collection',
85
+ ...numberConfigHelper(5)
86
+ },
87
+ txCollectionFileStoreSlowWorkerCount: {
88
+ env: 'TX_COLLECTION_FILE_STORE_SLOW_WORKER_COUNT',
89
+ description: 'Number of concurrent workers for slow file store collection',
90
+ ...numberConfigHelper(2)
91
+ },
92
+ txCollectionFileStoreFastBackoffBaseMs: {
93
+ env: 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_BASE_MS',
94
+ description: 'Base backoff time in ms for fast file store collection retries',
95
+ ...numberConfigHelper(1_000)
96
+ },
97
+ txCollectionFileStoreSlowBackoffBaseMs: {
98
+ env: 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_BASE_MS',
99
+ description: 'Base backoff time in ms for slow file store collection retries',
100
+ ...numberConfigHelper(5_000)
101
+ },
102
+ txCollectionFileStoreFastBackoffMaxMs: {
103
+ env: 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_MAX_MS',
104
+ description: 'Max backoff time in ms for fast file store collection retries',
105
+ ...numberConfigHelper(5_000)
106
+ },
107
+ txCollectionFileStoreSlowBackoffMaxMs: {
108
+ env: 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_MAX_MS',
109
+ description: 'Max backoff time in ms for slow file store collection retries',
110
+ ...numberConfigHelper(30_000)
57
111
  }
58
112
  };
@@ -4,20 +4,21 @@ import { DateProvider } from '@aztec/foundation/timer';
4
4
  import type { BlockProposal } from '@aztec/stdlib/p2p';
5
5
  import { type Tx, TxHash } from '@aztec/stdlib/tx';
6
6
  import type { PeerId } from '@libp2p/interface';
7
- import { type ReqRespInterface } from '../reqresp/interface.js';
7
+ import type { BatchTxRequesterLibP2PService } from '../reqresp/batch-tx-requester/interface.js';
8
8
  import type { TxCollectionConfig } from './config.js';
9
+ import { type MissingTxsCollector } from './proposal_tx_collector.js';
9
10
  import type { FastCollectionRequest, FastCollectionRequestInput } from './tx_collection.js';
10
11
  import type { TxCollectionSink } from './tx_collection_sink.js';
11
12
  import type { TxSource } from './tx_source.js';
12
13
  export declare class FastTxCollection {
13
- private reqResp;
14
14
  private nodes;
15
15
  private txCollectionSink;
16
16
  private config;
17
17
  private dateProvider;
18
18
  private log;
19
19
  protected requests: Set<FastCollectionRequest>;
20
- constructor(reqResp: Pick<ReqRespInterface, 'sendBatchRequest'>, nodes: TxSource[], txCollectionSink: TxCollectionSink, config: TxCollectionConfig, dateProvider?: DateProvider, log?: Logger);
20
+ private missingTxsCollector;
21
+ constructor(p2pService: BatchTxRequesterLibP2PService, nodes: TxSource[], txCollectionSink: TxCollectionSink, config: TxCollectionConfig, dateProvider?: DateProvider, log?: Logger, missingTxsCollector?: MissingTxsCollector);
21
22
  stop(): Promise<void>;
22
23
  getFastCollectionRequests(): Set<FastCollectionRequest>;
23
24
  collectFastFor(input: FastCollectionRequestInput, txHashes: TxHash[] | string[], opts: {
@@ -32,6 +33,8 @@ export declare class FastTxCollection {
32
33
  private collectFastFromNodes;
33
34
  private collectFastFromNode;
34
35
  private collectFastViaReqResp;
36
+ /** Returns the TxAddContext for the given request, used by the sink to add txs to the pool correctly. */
37
+ private getAddContext;
35
38
  /**
36
39
  * Handle txs by marking them as found for the requests that are waiting for them, and resolves the request if all its txs have been found.
37
40
  * Called internally and from the main tx collection manager whenever the tx pool emits a tx-added event.
@@ -48,4 +51,4 @@ export declare class FastTxCollection {
48
51
  */
49
52
  stopCollectingForBlocksAfter(blockNumber: BlockNumber): void;
50
53
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdF90eF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9mYXN0X3R4X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUlsRSxPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxxQkFBYSxnQkFBZ0I7SUFLekIsT0FBTyxDQUFDLE9BQU87SUFDZixPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsR0FBRztJQVJiLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQWE7SUFFM0QsWUFDVSxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLEVBQ25ELEtBQUssRUFBRSxRQUFRLEVBQUUsRUFDakIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLE1BQU0sRUFBRSxrQkFBa0IsRUFDMUIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLEdBQUcsR0FBRSxNQUFrRCxFQUM3RDtJQUVTLElBQUksa0JBR2hCO0lBRU0seUJBQXlCLCtCQUUvQjtJQUVZLGNBQWMsQ0FDekIsS0FBSyxFQUFFLDBCQUEwQixFQUNqQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQzdCLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkEwQzlDO0lBRUQsVUFBZ0IsV0FBVyxDQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQzlCLElBQUksRUFBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkErQ3hFO1lBUWEsb0JBQW9CO1lBWXBCLG1CQUFtQjtZQWlGbkIscUJBQXFCO0lBNkNuQzs7O09BR0c7SUFDSSxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQXdCeEI7SUFFRDs7O09BR0c7SUFDSSwyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FPakU7SUFFRDs7O09BR0c7SUFDSSw0QkFBNEIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FPbEU7Q0FDRiJ9
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdF90eF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9mYXN0X3R4X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEcsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEQsT0FBTyxFQUVMLEtBQUssbUJBQW1CLEVBRXpCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxxQkFBYSxnQkFBZ0I7SUFPekIsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLEdBQUc7SUFUYixTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFhO0lBQzNELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBc0I7SUFFakQsWUFDRSxVQUFVLEVBQUUsNkJBQTZCLEVBQ2pDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFDakIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLE1BQU0sRUFBRSxrQkFBa0IsRUFDMUIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLEdBQUcsR0FBRSxNQUFrRCxFQUMvRCxtQkFBbUIsQ0FBQyxFQUFFLG1CQUFtQixFQVMxQztJQUVZLElBQUksa0JBR2hCO0lBRU0seUJBQXlCLCtCQUUvQjtJQUVZLGNBQWMsQ0FDekIsS0FBSyxFQUFFLDBCQUEwQixFQUNqQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQzdCLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkEwQzlDO0lBRUQsVUFBZ0IsV0FBVyxDQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQzlCLElBQUksRUFBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkErQ3hFO1lBUWEsb0JBQW9CO1lBZ0JwQixtQkFBbUI7WUF5Rm5CLHFCQUFxQjtJQXlEbkMseUdBQXlHO0lBQ3pHLE9BQU8sQ0FBQyxhQUFhO0lBUXJCOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBc0J4QjtJQUVEOzs7T0FHRztJQUNJLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU9qRTtJQUVEOzs7T0FHRztJQUNJLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU9sRTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fast_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/fast_tx_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAsB,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IARb,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAa;IAE3D,YACU,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EACnD,KAAK,EAAE,QAAQ,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAkD,EAC7D;IAES,IAAI,kBAGhB;IAEM,yBAAyB,+BAE/B;IAEY,cAAc,CACzB,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAC7B,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA0C9C;IAED,UAAgB,WAAW,CACzB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA+CxE;YAQa,oBAAoB;YAYpB,mBAAmB;YAiFnB,qBAAqB;IA6CnC;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,QAwBxB;IAED;;;OAGG;IACI,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOjE;IAED;;;OAGG;IACI,4BAA4B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOlE;CACF"}
1
+ {"version":3,"file":"fast_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/fast_tx_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IATb,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAa;IAC3D,OAAO,CAAC,mBAAmB,CAAsB;IAEjD,YACE,UAAU,EAAE,6BAA6B,EACjC,KAAK,EAAE,QAAQ,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAkD,EAC/D,mBAAmB,CAAC,EAAE,mBAAmB,EAS1C;IAEY,IAAI,kBAGhB;IAEM,yBAAyB,+BAE/B;IAEY,cAAc,CACzB,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAC7B,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA0C9C;IAED,UAAgB,WAAW,CACzB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA+CxE;YAQa,oBAAoB;YAgBpB,mBAAmB;YAyFnB,qBAAqB;IAyDnC,yGAAyG;IACzG,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,QAsBxB;IAED;;;OAGG;IACI,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOjE;IAED;;;OAGG;IACI,4BAA4B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOlE;CACF"}