@aztec/p2p 0.0.1-commit.b1c78909e → 0.0.1-commit.b2a5d0dd1

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 (301) hide show
  1. package/README.md +129 -3
  2. package/dest/client/factory.d.ts +3 -2
  3. package/dest/client/factory.d.ts.map +1 -1
  4. package/dest/client/factory.js +19 -10
  5. package/dest/client/interface.d.ts +9 -2
  6. package/dest/client/interface.d.ts.map +1 -1
  7. package/dest/client/p2p_client.d.ts +3 -2
  8. package/dest/client/p2p_client.d.ts.map +1 -1
  9. package/dest/client/p2p_client.js +40 -14
  10. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +21 -7
  11. package/dest/config.d.ts +107 -97
  12. package/dest/config.d.ts.map +1 -1
  13. package/dest/config.js +20 -5
  14. package/dest/errors/p2p-service.error.d.ts +9 -0
  15. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  16. package/dest/errors/p2p-service.error.js +10 -0
  17. package/dest/index.d.ts +1 -2
  18. package/dest/index.d.ts.map +1 -1
  19. package/dest/index.js +0 -1
  20. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +7 -5
  21. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  22. package/dest/mem_pools/attestation_pool/attestation_pool.js +11 -8
  23. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +6 -6
  24. package/dest/mem_pools/index.d.ts +1 -2
  25. package/dest/mem_pools/index.d.ts.map +1 -1
  26. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  27. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  28. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +2 -1
  29. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -1
  30. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  31. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -0
  32. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  33. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  34. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  35. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
  36. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +10 -5
  37. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  38. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +13 -3
  39. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  40. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +20 -7
  41. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +4 -2
  42. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  43. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +3 -0
  44. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +1 -1
  45. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +13 -5
  47. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  48. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  49. package/dest/msg_validators/attestation_validator/attestation_validator.js +20 -11
  50. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +4 -2
  51. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  52. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +2 -2
  53. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  54. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  55. package/dest/msg_validators/clock_tolerance.js +54 -3
  56. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +2 -1
  57. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  58. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +2 -1
  59. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  60. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +3 -1
  61. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  62. package/dest/msg_validators/proposal_validator/proposal_validator.js +19 -11
  63. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  64. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  65. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  66. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  67. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  68. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  69. package/dest/msg_validators/tx_validator/data_validator.js +35 -2
  70. package/dest/msg_validators/tx_validator/factory.d.ts +10 -2
  71. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  72. package/dest/msg_validators/tx_validator/factory.js +26 -7
  73. package/dest/msg_validators/tx_validator/gas_validator.d.ts +36 -4
  74. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  75. package/dest/msg_validators/tx_validator/gas_validator.js +50 -33
  76. package/dest/msg_validators/tx_validator/phases_validator.d.ts +21 -1
  77. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  78. package/dest/msg_validators/tx_validator/phases_validator.js +28 -1
  79. package/dest/services/data_store.d.ts +1 -1
  80. package/dest/services/data_store.d.ts.map +1 -1
  81. package/dest/services/data_store.js +5 -5
  82. package/dest/services/dummy_service.d.ts +6 -3
  83. package/dest/services/dummy_service.d.ts.map +1 -1
  84. package/dest/services/dummy_service.js +6 -1
  85. package/dest/services/encoding.d.ts +5 -1
  86. package/dest/services/encoding.d.ts.map +1 -1
  87. package/dest/services/encoding.js +7 -1
  88. package/dest/services/gossipsub/topic_score_params.d.ts +13 -2
  89. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  90. package/dest/services/gossipsub/topic_score_params.js +21 -4
  91. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  92. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  93. package/dest/services/libp2p/instrumentation.js +14 -0
  94. package/dest/services/libp2p/libp2p_service.d.ts +19 -27
  95. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  96. package/dest/services/libp2p/libp2p_service.js +141 -130
  97. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  98. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  99. package/dest/services/peer-manager/peer_manager.js +37 -10
  100. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  101. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  102. package/dest/services/peer-manager/peer_scoring.js +32 -10
  103. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +11 -8
  104. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  105. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +69 -65
  106. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +3 -2
  107. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  108. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +5 -4
  109. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  110. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +13 -7
  111. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +3 -1
  112. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  113. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +3 -0
  114. package/dest/services/reqresp/config.d.ts +3 -3
  115. package/dest/services/reqresp/config.d.ts.map +1 -1
  116. package/dest/services/reqresp/interface.d.ts +14 -9
  117. package/dest/services/reqresp/interface.d.ts.map +1 -1
  118. package/dest/services/reqresp/interface.js +10 -11
  119. package/dest/services/reqresp/metrics.d.ts +1 -1
  120. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  121. package/dest/services/reqresp/metrics.js +0 -1
  122. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  123. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  124. package/dest/services/reqresp/protocols/index.js +0 -1
  125. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  126. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  127. package/dest/services/reqresp/protocols/tx.js +1 -3
  128. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  129. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  130. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  131. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  132. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  133. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  134. package/dest/services/reqresp/reqresp.d.ts +4 -2
  135. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  136. package/dest/services/reqresp/reqresp.js +28 -11
  137. package/dest/services/service.d.ts +5 -2
  138. package/dest/services/service.d.ts.map +1 -1
  139. package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -4
  140. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  141. package/dest/services/tx_collection/fast_tx_collection.js +57 -73
  142. package/dest/services/tx_collection/file_store_tx_source.d.ts +5 -4
  143. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
  144. package/dest/services/tx_collection/file_store_tx_source.js +39 -29
  145. package/dest/services/tx_collection/proposal_tx_collector.d.ts +6 -7
  146. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  147. package/dest/services/tx_collection/proposal_tx_collector.js +4 -4
  148. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  149. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  150. package/dest/services/tx_collection/request_tracker.js +84 -0
  151. package/dest/services/tx_collection/slow_tx_collection.js +1 -1
  152. package/dest/services/tx_collection/tx_collection.d.ts +3 -6
  153. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  154. package/dest/services/tx_collection/tx_source.d.ts +6 -5
  155. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  156. package/dest/services/tx_collection/tx_source.js +9 -7
  157. package/dest/test-helpers/make-test-p2p-clients.d.ts +1 -1
  158. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  159. package/dest/test-helpers/make-test-p2p-clients.js +4 -1
  160. package/dest/test-helpers/mock-pubsub.d.ts +11 -3
  161. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  162. package/dest/test-helpers/mock-pubsub.js +36 -11
  163. package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
  164. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  165. package/dest/test-helpers/reqresp-nodes.js +5 -3
  166. package/dest/test-helpers/testbench-utils.d.ts +1 -1
  167. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  168. package/dest/test-helpers/testbench-utils.js +21 -2
  169. package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
  170. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  171. package/dest/testbench/p2p_client_testbench_worker.js +73 -17
  172. package/dest/testbench/worker_client_manager.d.ts +8 -1
  173. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  174. package/dest/testbench/worker_client_manager.js +49 -1
  175. package/package.json +14 -14
  176. package/src/client/factory.ts +31 -4
  177. package/src/client/interface.ts +9 -1
  178. package/src/client/p2p_client.ts +47 -15
  179. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +20 -8
  180. package/src/config.ts +35 -6
  181. package/src/errors/p2p-service.error.ts +11 -0
  182. package/src/index.ts +0 -1
  183. package/src/mem_pools/attestation_pool/attestation_pool.ts +12 -8
  184. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +6 -6
  185. package/src/mem_pools/index.ts +0 -3
  186. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +2 -1
  187. package/src/mem_pools/tx_pool_v2/eviction/index.ts +1 -0
  188. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  189. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +3 -3
  190. package/src/mem_pools/tx_pool_v2/interfaces.ts +9 -4
  191. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +31 -9
  192. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +13 -1
  193. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +14 -4
  194. package/src/msg_validators/attestation_validator/README.md +49 -0
  195. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -9
  196. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +4 -1
  197. package/src/msg_validators/clock_tolerance.ts +72 -3
  198. package/src/msg_validators/proposal_validator/README.md +123 -0
  199. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +4 -1
  200. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +4 -1
  201. package/src/msg_validators/proposal_validator/proposal_validator.ts +17 -10
  202. package/src/msg_validators/tx_validator/README.md +15 -3
  203. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  204. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  205. package/src/msg_validators/tx_validator/data_validator.ts +42 -1
  206. package/src/msg_validators/tx_validator/factory.ts +31 -2
  207. package/src/msg_validators/tx_validator/gas_validator.ts +82 -33
  208. package/src/msg_validators/tx_validator/phases_validator.ts +31 -1
  209. package/src/services/data_store.ts +5 -13
  210. package/src/services/dummy_service.ts +8 -2
  211. package/src/services/encoding.ts +9 -1
  212. package/src/services/gossipsub/topic_score_params.ts +36 -4
  213. package/src/services/libp2p/instrumentation.ts +14 -0
  214. package/src/services/libp2p/libp2p_service.ts +141 -141
  215. package/src/services/peer-manager/peer_manager.ts +43 -10
  216. package/src/services/peer-manager/peer_scoring.ts +27 -5
  217. package/src/services/reqresp/README.md +229 -0
  218. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  219. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +64 -69
  220. package/src/services/reqresp/batch-tx-requester/interface.ts +2 -1
  221. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +13 -6
  222. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +5 -0
  223. package/src/services/reqresp/config.ts +2 -2
  224. package/src/services/reqresp/interface.ts +21 -11
  225. package/src/services/reqresp/metrics.ts +0 -1
  226. package/src/services/reqresp/protocols/index.ts +0 -1
  227. package/src/services/reqresp/protocols/tx.ts +1 -3
  228. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  229. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  230. package/src/services/reqresp/reqresp.ts +37 -12
  231. package/src/services/service.ts +6 -1
  232. package/src/services/tx_collection/fast_tx_collection.ts +57 -83
  233. package/src/services/tx_collection/file_store_tx_source.ts +43 -31
  234. package/src/services/tx_collection/proposal_tx_collector.ts +8 -13
  235. package/src/services/tx_collection/request_tracker.ts +127 -0
  236. package/src/services/tx_collection/slow_tx_collection.ts +1 -1
  237. package/src/services/tx_collection/tx_collection.ts +3 -5
  238. package/src/services/tx_collection/tx_source.ts +8 -7
  239. package/src/test-helpers/make-test-p2p-clients.ts +2 -0
  240. package/src/test-helpers/mock-pubsub.ts +34 -5
  241. package/src/test-helpers/reqresp-nodes.ts +4 -2
  242. package/src/test-helpers/testbench-utils.ts +29 -3
  243. package/src/testbench/p2p_client_testbench_worker.ts +73 -14
  244. package/src/testbench/worker_client_manager.ts +55 -1
  245. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  246. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  247. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  248. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  249. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  250. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  251. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  252. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  253. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  254. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  255. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  256. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  257. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  258. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  259. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
  260. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  261. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  262. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  263. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  264. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  265. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  266. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  267. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  268. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  269. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  270. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  271. package/dest/mem_pools/tx_pool/index.js +0 -2
  272. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  273. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  274. package/dest/mem_pools/tx_pool/priority.js +0 -16
  275. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  276. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  277. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  278. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  279. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  280. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -402
  281. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  282. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  283. package/dest/services/reqresp/protocols/block.js +0 -32
  284. package/dest/services/tx_collection/missing_txs_tracker.d.ts +0 -32
  285. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +0 -1
  286. package/dest/services/tx_collection/missing_txs_tracker.js +0 -27
  287. package/src/mem_pools/tx_pool/README.md +0 -270
  288. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  289. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  290. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  291. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  292. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  293. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  294. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  295. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  296. package/src/mem_pools/tx_pool/index.ts +0 -2
  297. package/src/mem_pools/tx_pool/priority.ts +0 -23
  298. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  299. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -321
  300. package/src/services/reqresp/protocols/block.ts +0 -37
  301. package/src/services/tx_collection/missing_txs_tracker.ts +0 -52
@@ -1,402 +0,0 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { unfreeze } from '@aztec/foundation/types';
3
- import { GasFees } from '@aztec/stdlib/gas';
4
- import { mockTx } from '@aztec/stdlib/testing';
5
- import { BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
6
- /**
7
- * Tests a TxPool implementation.
8
- * @param getTxPool - Gets a fresh TxPool
9
- */ export function describeTxPool(getTxPool) {
10
- let pool;
11
- const minedBlockHeader = BlockHeader.empty({
12
- globalVariables: GlobalVariables.empty({
13
- blockNumber: BlockNumber(1),
14
- timestamp: 0n
15
- })
16
- });
17
- beforeEach(()=>{
18
- pool = getTxPool();
19
- });
20
- afterEach(()=>{
21
- pool.removeAllListeners('txs-added');
22
- });
23
- it('adds txs to the pool as pending', async ()=>{
24
- const tx1 = await mockTx(1);
25
- await pool.addTxs([
26
- tx1
27
- ]);
28
- const poolTx = await pool.getTxByHash(tx1.getTxHash());
29
- expect(poolTx.getTxHash()).toEqual(tx1.getTxHash());
30
- await expect(pool.getTxStatus(tx1.getTxHash())).resolves.toEqual('pending');
31
- await expect(pool.getPendingTxHashes()).resolves.toEqual([
32
- tx1.getTxHash()
33
- ]);
34
- await expect(pool.getPendingTxCount()).resolves.toEqual(1);
35
- });
36
- it('emits txs-added event with new txs', async ()=>{
37
- const tx1 = await mockTx(1); // existing and pending
38
- const tx2 = await mockTx(2); // mined but not known
39
- const tx3 = await mockTx(3); // brand new
40
- await pool.addTxs([
41
- tx1
42
- ]);
43
- await pool.markAsMined([
44
- tx2.getTxHash()
45
- ], minedBlockHeader);
46
- let txsFromEvent = undefined;
47
- pool.once('txs-added', ({ txs })=>{
48
- txsFromEvent = txs;
49
- });
50
- await pool.addTxs([
51
- tx1,
52
- tx2,
53
- tx3
54
- ]);
55
- expect(txsFromEvent).toBeDefined();
56
- expect(txsFromEvent).toHaveLength(2);
57
- const eventHashes = txsFromEvent.map((tx)=>tx.getTxHash());
58
- expect(eventHashes).toEqual(expect.arrayContaining([
59
- tx2.getTxHash(),
60
- tx3.getTxHash()
61
- ]));
62
- });
63
- it('removes txs from the pool', async ()=>{
64
- const pendingTx = await mockTx(1);
65
- const minedTx = await mockTx(2);
66
- await pool.addTxs([
67
- pendingTx,
68
- minedTx
69
- ]);
70
- await pool.markAsMined([
71
- minedTx.getTxHash()
72
- ], minedBlockHeader);
73
- // Delete a pending tx - should be permanently deleted
74
- await pool.deleteTxs([
75
- pendingTx.getTxHash()
76
- ]);
77
- await expect(pool.getTxByHash(pendingTx.getTxHash())).resolves.toBeUndefined();
78
- await expect(pool.getTxStatus(pendingTx.getTxHash())).resolves.toBeUndefined();
79
- // Delete a mined tx - should be soft-deleted (still in storage)
80
- await pool.deleteTxs([
81
- minedTx.getTxHash()
82
- ]);
83
- await expect(pool.getTxByHash(minedTx.getTxHash())).resolves.toBeDefined();
84
- await expect(pool.getTxStatus(minedTx.getTxHash())).resolves.toEqual('deleted');
85
- await expect(pool.getMinedTxHashes()).resolves.toEqual([]);
86
- await expect(pool.getPendingTxCount()).resolves.toEqual(0);
87
- });
88
- it('marks txs as mined', async ()=>{
89
- const tx1 = await mockTx(1);
90
- const tx2 = await mockTx(2);
91
- await pool.addTxs([
92
- tx1,
93
- tx2
94
- ]);
95
- await pool.markAsMined([
96
- tx1.getTxHash()
97
- ], minedBlockHeader);
98
- const retrievedTx = await pool.getTxByHash(tx1.getTxHash());
99
- expect(retrievedTx?.getTxHash()).toEqual(tx1.getTxHash());
100
- await expect(pool.getTxStatus(tx1.getTxHash())).resolves.toEqual('mined');
101
- await expect(pool.getMinedTxHashes()).resolves.toEqual([
102
- [
103
- tx1.getTxHash(),
104
- 1
105
- ]
106
- ]);
107
- await expect(pool.getPendingTxHashes()).resolves.toEqual([
108
- tx2.getTxHash()
109
- ]);
110
- await expect(pool.getPendingTxCount()).resolves.toEqual(1);
111
- });
112
- it('marks txs as pending after being mined', async ()=>{
113
- const tx1 = await mockTx(1);
114
- const tx2 = await mockTx(2);
115
- await pool.addTxs([
116
- tx1,
117
- tx2
118
- ]);
119
- await pool.markAsMined([
120
- tx1.getTxHash()
121
- ], minedBlockHeader);
122
- await pool.markMinedAsPending([
123
- tx1.getTxHash()
124
- ], BlockNumber(1));
125
- await expect(pool.getMinedTxHashes()).resolves.toEqual([]);
126
- const pending = await pool.getPendingTxHashes();
127
- expect(pending).toHaveLength(2);
128
- expect(pending).toEqual(expect.arrayContaining([
129
- tx1.getTxHash(),
130
- tx2.getTxHash()
131
- ]));
132
- await expect(pool.getPendingTxCount()).resolves.toEqual(2);
133
- });
134
- it('only marks txs as pending if they are known', async ()=>{
135
- const tx1 = await mockTx(1);
136
- // simulate a situation where not all peers have all the txs
137
- const tx2 = await mockTx(2);
138
- const someTxHashThatThisPeerDidNotSee = tx2.getTxHash();
139
- await pool.addTxs([
140
- tx1
141
- ]);
142
- // this peer knows that tx2 was mined, but it does not have the tx object
143
- await pool.markAsMined([
144
- tx1.getTxHash(),
145
- someTxHashThatThisPeerDidNotSee
146
- ], minedBlockHeader);
147
- expect(await pool.getMinedTxHashes()).toEqual(expect.arrayContaining([
148
- [
149
- tx1.getTxHash(),
150
- 1
151
- ],
152
- [
153
- someTxHashThatThisPeerDidNotSee,
154
- 1
155
- ]
156
- ]));
157
- // reorg: both txs should now become available again
158
- await pool.markMinedAsPending([
159
- tx1.getTxHash(),
160
- someTxHashThatThisPeerDidNotSee
161
- ], BlockNumber(1));
162
- await expect(pool.getMinedTxHashes()).resolves.toEqual([]);
163
- await expect(pool.getPendingTxHashes()).resolves.toEqual([
164
- tx1.getTxHash()
165
- ]); // tx2 is not in the pool
166
- await expect(pool.getPendingTxCount()).resolves.toEqual(1);
167
- });
168
- it('returns all transactions in the pool', async ()=>{
169
- const tx1 = await mockTx(1);
170
- const tx2 = await mockTx(2);
171
- const tx3 = await mockTx(3);
172
- await pool.addTxs([
173
- tx1,
174
- tx2,
175
- tx3
176
- ]);
177
- const poolTxs = await pool.getAllTxs();
178
- expect(poolTxs).toHaveLength(3);
179
- const poolHashes = poolTxs.map((tx)=>tx.getTxHash());
180
- expect(poolHashes).toEqual(expect.arrayContaining([
181
- tx1.getTxHash(),
182
- tx2.getTxHash(),
183
- tx3.getTxHash()
184
- ]));
185
- await expect(pool.getPendingTxCount()).resolves.toEqual(3);
186
- });
187
- it('returns all txHashes in the pool', async ()=>{
188
- const tx1 = await mockTx(1);
189
- const tx2 = await mockTx(2);
190
- const tx3 = await mockTx(3);
191
- await pool.addTxs([
192
- tx1,
193
- tx2,
194
- tx3
195
- ]);
196
- const poolTxHashes = await pool.getAllTxHashes();
197
- const expectedHashes = [
198
- tx1,
199
- tx2,
200
- tx3
201
- ].map((tx)=>tx.getTxHash());
202
- expect(poolTxHashes).toHaveLength(3);
203
- expect(poolTxHashes).toEqual(expect.arrayContaining(expectedHashes));
204
- await expect(pool.getPendingTxCount()).resolves.toEqual(3);
205
- });
206
- it('returns txs by their hash', async ()=>{
207
- const tx1 = await mockTx(1);
208
- const tx2 = await mockTx(2);
209
- const tx3 = await mockTx(3);
210
- await pool.addTxs([
211
- tx1,
212
- tx2,
213
- tx3
214
- ]);
215
- const requestedTxs = await pool.getTxsByHash([
216
- tx1.getTxHash(),
217
- tx3.getTxHash()
218
- ]);
219
- expect(requestedTxs).toHaveLength(2);
220
- const requestedHashes = requestedTxs.map((tx)=>tx.getTxHash());
221
- expect(requestedHashes).toEqual(expect.arrayContaining([
222
- tx1.getTxHash(),
223
- tx3.getTxHash()
224
- ]));
225
- });
226
- it('returns a large number of transactions by their hash', async ()=>{
227
- const numTxs = 1_000;
228
- const txs = await Promise.all(Array.from({
229
- length: numTxs
230
- }, (_, i)=>mockTx(i)));
231
- const hashes = txs.map((tx)=>tx.getTxHash());
232
- await pool.addTxs(txs);
233
- const requestedTxs = await pool.getTxsByHash(hashes);
234
- expect(requestedTxs).toHaveLength(numTxs);
235
- const requestedHashes = requestedTxs.map((tx)=>tx.getTxHash());
236
- expect(requestedHashes).toEqual(expect.arrayContaining(hashes));
237
- });
238
- it('returns whether or not txs exist', async ()=>{
239
- const tx1 = await mockTx(1);
240
- const tx2 = await mockTx(2);
241
- const tx3 = await mockTx(3);
242
- await pool.addTxs([
243
- tx1,
244
- tx2,
245
- tx3
246
- ]);
247
- const tx4 = await mockTx(4);
248
- const tx5 = await mockTx(5);
249
- const availability = await pool.hasTxs([
250
- tx1.getTxHash(),
251
- tx2.getTxHash(),
252
- tx3.getTxHash(),
253
- tx4.getTxHash(),
254
- tx5.getTxHash()
255
- ]);
256
- expect(availability).toHaveLength(5);
257
- expect(availability).toEqual(expect.arrayContaining([
258
- true,
259
- true,
260
- true,
261
- false,
262
- false
263
- ]));
264
- });
265
- it('returns pending tx hashes sorted by priority', async ()=>{
266
- const withPriorityFee = (tx, fee)=>{
267
- const gs = unfreeze(tx.data.constants.txContext.gasSettings);
268
- gs.maxPriorityFeesPerGas = new GasFees(fee, fee);
269
- gs.maxFeesPerGas = new GasFees(fee, fee);
270
- return tx;
271
- };
272
- const tx1 = withPriorityFee(await mockTx(0), 1000);
273
- const tx2 = withPriorityFee(await mockTx(1), 100);
274
- const tx3 = withPriorityFee(await mockTx(2), 200);
275
- const tx4 = withPriorityFee(await mockTx(3), 3000);
276
- await pool.addTxs([
277
- tx1,
278
- tx2,
279
- tx3,
280
- tx4
281
- ]);
282
- const poolTxHashes = await pool.getPendingTxHashes();
283
- expect(poolTxHashes).toHaveLength(4);
284
- expect(poolTxHashes).toEqual([
285
- tx4,
286
- tx1,
287
- tx3,
288
- tx2
289
- ].map((tx)=>tx.getTxHash()));
290
- });
291
- describe('soft-delete', ()=>{
292
- it('soft-deletes mined txs and keeps them in storage', async ()=>{
293
- const txs = await Promise.all([
294
- mockTx(1),
295
- mockTx(2),
296
- mockTx(3)
297
- ]);
298
- await pool.addTxs(txs);
299
- // Mark first tx as mined
300
- await pool.markAsMined([
301
- txs[0].getTxHash()
302
- ], minedBlockHeader);
303
- // Verify initial state
304
- await expect(pool.getPendingTxCount()).resolves.toBe(2);
305
- await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeDefined();
306
- await expect(pool.getTxByHash(txs[1].getTxHash())).resolves.toBeDefined();
307
- // Delete mined tx - should be soft-deleted
308
- await pool.deleteTxs([
309
- txs[0].getTxHash()
310
- ]);
311
- // Delete pending tx - should be permanently deleted
312
- await pool.deleteTxs([
313
- txs[1].getTxHash()
314
- ]);
315
- // Verify mined tx still exists in storage but has 'deleted' status
316
- await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeDefined();
317
- await expect(pool.getTxStatus(txs[0].getTxHash())).resolves.toEqual('deleted');
318
- // Verify pending tx is permanently deleted
319
- await expect(pool.getTxByHash(txs[1].getTxHash())).resolves.toBeUndefined();
320
- await expect(pool.getTxStatus(txs[1].getTxHash())).resolves.toBeUndefined();
321
- // Verify remaining pending count
322
- await expect(pool.getPendingTxCount()).resolves.toBe(1);
323
- // Verify pending hashes don't include deleted txs
324
- const pendingHashes = await pool.getPendingTxHashes();
325
- expect(pendingHashes).toHaveLength(1);
326
- expect(pendingHashes.map((h)=>h.toString())).toContain(txs[2].getTxHash().toString());
327
- });
328
- it('cleans up old deleted mined transactions', async ()=>{
329
- const txs = await Promise.all([
330
- mockTx(1),
331
- mockTx(2),
332
- mockTx(3)
333
- ]);
334
- await pool.addTxs(txs);
335
- // Mark first two as mined in block 1
336
- await pool.markAsMined([
337
- txs[0].getTxHash(),
338
- txs[1].getTxHash()
339
- ], minedBlockHeader);
340
- // Soft-delete mined transactions
341
- await pool.deleteTxs([
342
- txs[0].getTxHash(),
343
- txs[1].getTxHash()
344
- ]);
345
- // Clean up deleted mined txs from block 1 and earlier
346
- const deletedCount = await pool.cleanupDeletedMinedTxs(BlockNumber(1));
347
- // Verify old transactions are permanently deleted
348
- expect(deletedCount).toBe(2);
349
- await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeUndefined();
350
- await expect(pool.getTxByHash(txs[1].getTxHash())).resolves.toBeUndefined();
351
- await expect(pool.getTxByHash(txs[2].getTxHash())).resolves.toBeDefined();
352
- });
353
- it('does not clean up recent deleted mined transactions', async ()=>{
354
- const txs = await Promise.all([
355
- mockTx(1),
356
- mockTx(2)
357
- ]);
358
- await pool.addTxs(txs);
359
- // Mark as mined in block 2
360
- const laterBlockHeader = BlockHeader.empty({
361
- globalVariables: GlobalVariables.empty({
362
- blockNumber: BlockNumber(2),
363
- timestamp: 0n
364
- })
365
- });
366
- await pool.markAsMined([
367
- txs[0].getTxHash()
368
- ], laterBlockHeader);
369
- // Soft-delete a mined transaction
370
- await pool.deleteTxs([
371
- txs[0].getTxHash()
372
- ]);
373
- // Try to clean up with block 1 (before the mined block)
374
- const deletedCount = await pool.cleanupDeletedMinedTxs(BlockNumber(1));
375
- // Verify no transactions were cleaned up
376
- expect(deletedCount).toBe(0);
377
- await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeDefined();
378
- });
379
- it('restores deleted mined tx when it is mined again', async ()=>{
380
- const tx = await mockTx(1);
381
- await pool.addTxs([
382
- tx
383
- ]);
384
- // Mark as mined
385
- await pool.markAsMined([
386
- tx.getTxHash()
387
- ], minedBlockHeader);
388
- // Soft-delete it
389
- await pool.deleteTxs([
390
- tx.getTxHash()
391
- ]);
392
- await expect(pool.getTxStatus(tx.getTxHash())).resolves.toEqual('deleted');
393
- // Mark as mined again (e.g., after a reorg)
394
- await pool.markAsMined([
395
- tx.getTxHash()
396
- ], minedBlockHeader);
397
- // Should be back to mined status
398
- await expect(pool.getTxStatus(tx.getTxHash())).resolves.toEqual('mined');
399
- await expect(pool.getTxByHash(tx.getTxHash())).resolves.toBeDefined();
400
- });
401
- });
402
- }
@@ -1,9 +0,0 @@
1
- import type { L2BlockSource } from '@aztec/stdlib/block';
2
- import type { ReqRespSubProtocolHandler } from '../interface.js';
3
- /**
4
- * Handler for L2 Block requests
5
- * @param l2BlockSource - source for L2 blocks
6
- * @returns the Block request handler
7
- * */
8
- export declare function reqRespBlockHandler(l2BlockSource: L2BlockSource): ReqRespSubProtocolHandler;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2suZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUl6RCxPQUFPLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR2pFOzs7O0tBSUs7QUFDTCx3QkFBZ0IsbUJBQW1CLENBQUMsYUFBYSxFQUFFLGFBQWEsR0FBRyx5QkFBeUIsQ0FzQjNGIn0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/block.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE;;;;KAIK;AACL,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,yBAAyB,CAsB3F"}
@@ -1,32 +0,0 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { ReqRespStatus, ReqRespStatusError } from '../status.js';
4
- /**
5
- * Handler for L2 Block requests
6
- * @param l2BlockSource - source for L2 blocks
7
- * @returns the Block request handler
8
- * */ export function reqRespBlockHandler(l2BlockSource) {
9
- /**
10
- * @param peerId - the peer ID of the requester
11
- * @param msg - the block request message, which is expected to contain valid block number as a Buffer
12
- * @returns a Buffer containing the requested block data, or an empty Buffer if the block is not found
13
- * @throws ReqRespStatusError if the input msg is not a valid block number
14
- * */ return async (_peerId, msg)=>{
15
- let blockNumber;
16
- try {
17
- blockNumber = Fr.fromBuffer(msg);
18
- } catch (err) {
19
- throw new ReqRespStatusError(ReqRespStatus.BADLY_FORMED_REQUEST, {
20
- cause: err
21
- });
22
- }
23
- try {
24
- const foundBlock = await l2BlockSource.getBlock(BlockNumber(Number(blockNumber)));
25
- return foundBlock ? foundBlock.toBuffer() : Buffer.alloc(0);
26
- } catch (err) {
27
- throw new ReqRespStatusError(ReqRespStatus.INTERNAL_ERROR, {
28
- cause: err
29
- });
30
- }
31
- };
32
- }
@@ -1,32 +0,0 @@
1
- import { TxHash } from '@aztec/stdlib/tx';
2
- import type { Tx } from '@aztec/stdlib/tx';
3
- /**
4
- * Tracks which transactions are still missing and need to be fetched.
5
- * Allows external code to mark transactions as fetched, enabling coordination
6
- * between multiple fetching mechanisms (e.g., BatchTxRequester and Rpc Node requests).
7
- */
8
- export interface IMissingTxsTracker {
9
- /** Returns the set of transaction hashes that are still missing. */
10
- get missingTxHashes(): Set<string>;
11
- /** Size of this.missingTxHashes */
12
- get numberOfMissingTxs(): number;
13
- /** Are all requested txs are fetched */
14
- allFetched(): boolean;
15
- /** Checks that transaction is still missing */
16
- isMissing(txHash: string): boolean;
17
- /** Marks a transaction as fetched. Returns true if it was previously missing. */
18
- markFetched(tx: Tx): boolean;
19
- /** Get list of collected txs */
20
- get collectedTxs(): Tx[];
21
- }
22
- export declare class MissingTxsTracker implements IMissingTxsTracker {
23
- readonly missingTxHashes: Set<string>;
24
- readonly collectedTxs: Tx[];
25
- private constructor();
26
- static fromArray(hashes: TxHash[] | string[]): MissingTxsTracker;
27
- markFetched(tx: Tx): boolean;
28
- get numberOfMissingTxs(): number;
29
- allFetched(): boolean;
30
- isMissing(txHash: string): boolean;
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzc2luZ190eHNfdHJhY2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3R4X2NvbGxlY3Rpb24vbWlzc2luZ190eHNfdHJhY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0M7Ozs7R0FJRztBQUNILE1BQU0sV0FBVyxrQkFBa0I7SUFDakMsb0VBQW9FO0lBQ3BFLElBQUksZUFBZSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxtQ0FBbUM7SUFDbkMsSUFBSSxrQkFBa0IsSUFBSSxNQUFNLENBQUM7SUFDakMsd0NBQXdDO0lBQ3hDLFVBQVUsSUFBSSxPQUFPLENBQUM7SUFDdEIsK0NBQStDO0lBQy9DLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNuQyxpRkFBaUY7SUFDakYsV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzdCLGdDQUFnQztJQUNoQyxJQUFJLFlBQVksSUFBSSxFQUFFLEVBQUUsQ0FBQztDQUMxQjtBQUVELHFCQUFhLGlCQUFrQixZQUFXLGtCQUFrQjthQUd0QixlQUFlLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUZoRSxTQUFnQixZQUFZLEVBQUUsRUFBRSxFQUFFLENBQU07SUFFeEMsT0FBTyxlQUE2RDtJQUVwRSxPQUFjLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLHFCQUVsRDtJQUVELFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FNM0I7SUFFRCxJQUFJLGtCQUFrQixJQUFJLE1BQU0sQ0FFL0I7SUFFRCxVQUFVLElBQUksT0FBTyxDQUVwQjtJQUVELFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFakM7Q0FDRiJ9
@@ -1 +0,0 @@
1
- {"version":3,"file":"missing_txs_tracker.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/missing_txs_tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,IAAI,eAAe,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,mCAAmC;IACnC,IAAI,kBAAkB,IAAI,MAAM,CAAC;IACjC,wCAAwC;IACxC,UAAU,IAAI,OAAO,CAAC;IACtB,+CAA+C;IAC/C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,iFAAiF;IACjF,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAC7B,gCAAgC;IAChC,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;CAC1B;AAED,qBAAa,iBAAkB,YAAW,kBAAkB;aAGtB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC;IAFhE,SAAgB,YAAY,EAAE,EAAE,EAAE,CAAM;IAExC,OAAO,eAA6D;IAEpE,OAAc,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,qBAElD;IAED,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAM3B;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,UAAU,IAAI,OAAO,CAEpB;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjC;CACF"}
@@ -1,27 +0,0 @@
1
- export class MissingTxsTracker {
2
- missingTxHashes;
3
- collectedTxs;
4
- constructor(missingTxHashes){
5
- this.missingTxHashes = missingTxHashes;
6
- this.collectedTxs = [];
7
- }
8
- static fromArray(hashes) {
9
- return new MissingTxsTracker(new Set(hashes.map((hash)=>hash.toString())));
10
- }
11
- markFetched(tx) {
12
- if (this.missingTxHashes.delete(tx.txHash.toString())) {
13
- this.collectedTxs.push(tx);
14
- return true;
15
- }
16
- return false;
17
- }
18
- get numberOfMissingTxs() {
19
- return this.missingTxHashes.size;
20
- }
21
- allFetched() {
22
- return this.numberOfMissingTxs === 0;
23
- }
24
- isMissing(txHash) {
25
- return this.missingTxHashes.has(txHash.toString());
26
- }
27
- }