@aztec/p2p 0.0.1-commit.d1f2d6c → 0.0.1-commit.d20b825a7

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 (562) hide show
  1. package/README.md +129 -3
  2. package/dest/bootstrap/bootstrap.d.ts +4 -3
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +4 -4
  5. package/dest/client/factory.d.ts +12 -11
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +61 -19
  8. package/dest/client/interface.d.ts +54 -34
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +43 -52
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +190 -226
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +318 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  19. package/dest/config.d.ts +135 -82
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +114 -41
  22. package/dest/errors/p2p-service.error.d.ts +9 -0
  23. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  24. package/dest/errors/p2p-service.error.js +10 -0
  25. package/dest/errors/tx-pool.error.d.ts +8 -0
  26. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  27. package/dest/errors/tx-pool.error.js +9 -0
  28. package/dest/index.d.ts +2 -2
  29. package/dest/index.d.ts.map +1 -1
  30. package/dest/index.js +1 -1
  31. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +106 -88
  32. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool.js +448 -3
  34. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  35. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  36. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  37. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  38. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/index.js +1 -2
  40. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  41. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  42. package/dest/mem_pools/attestation_pool/mocks.js +2 -2
  43. package/dest/mem_pools/index.d.ts +3 -3
  44. package/dest/mem_pools/index.d.ts.map +1 -1
  45. package/dest/mem_pools/index.js +1 -1
  46. package/dest/mem_pools/instrumentation.d.ts +4 -2
  47. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  48. package/dest/mem_pools/instrumentation.js +18 -16
  49. package/dest/mem_pools/interface.d.ts +5 -5
  50. package/dest/mem_pools/interface.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  52. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  53. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  54. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  55. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  57. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  58. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  80. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_mining_rule.js +16 -35
  81. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  90. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  93. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  94. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  96. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  97. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  99. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +218 -0
  100. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -0
  103. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +223 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  114. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  115. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +924 -0
  117. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  118. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/attestation_validator/attestation_validator.js +20 -11
  120. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +5 -3
  121. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  122. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +9 -4
  123. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  124. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  125. package/dest/msg_validators/clock_tolerance.js +54 -3
  126. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +7 -4
  127. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  129. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +7 -4
  130. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  132. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +15 -8
  133. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/proposal_validator/proposal_validator.js +70 -50
  135. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  136. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  137. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  138. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  139. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  141. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  142. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  143. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  144. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  145. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  147. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  148. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  149. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  150. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  151. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  152. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  153. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  154. package/dest/msg_validators/tx_validator/data_validator.js +39 -3
  155. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  156. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  158. package/dest/msg_validators/tx_validator/factory.d.ts +137 -5
  159. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/factory.js +255 -58
  161. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  162. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  163. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  164. package/dest/msg_validators/tx_validator/gas_validator.d.ts +100 -3
  165. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  166. package/dest/msg_validators/tx_validator/gas_validator.js +138 -53
  167. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  168. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  169. package/dest/msg_validators/tx_validator/index.js +2 -0
  170. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  171. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  172. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  173. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  174. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  175. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  176. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  177. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  178. package/dest/msg_validators/tx_validator/phases_validator.js +75 -27
  179. package/dest/msg_validators/tx_validator/size_validator.d.ts +3 -1
  180. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -1
  181. package/dest/msg_validators/tx_validator/size_validator.js +4 -1
  182. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  183. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  184. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  185. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  186. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  187. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  188. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  189. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  190. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  191. package/dest/services/data_store.d.ts +1 -1
  192. package/dest/services/data_store.d.ts.map +1 -1
  193. package/dest/services/data_store.js +14 -10
  194. package/dest/services/discv5/discV5_service.js +1 -1
  195. package/dest/services/dummy_service.d.ts +28 -5
  196. package/dest/services/dummy_service.d.ts.map +1 -1
  197. package/dest/services/dummy_service.js +52 -2
  198. package/dest/services/encoding.d.ts +7 -3
  199. package/dest/services/encoding.d.ts.map +1 -1
  200. package/dest/services/encoding.js +18 -11
  201. package/dest/services/gossipsub/index.d.ts +3 -0
  202. package/dest/services/gossipsub/index.d.ts.map +1 -0
  203. package/dest/services/gossipsub/index.js +2 -0
  204. package/dest/services/gossipsub/scoring.d.ts +21 -3
  205. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  206. package/dest/services/gossipsub/scoring.js +24 -7
  207. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  208. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  209. package/dest/services/gossipsub/topic_score_params.js +363 -0
  210. package/dest/services/index.d.ts +2 -1
  211. package/dest/services/index.d.ts.map +1 -1
  212. package/dest/services/index.js +1 -0
  213. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  214. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  215. package/dest/services/libp2p/instrumentation.js +28 -3
  216. package/dest/services/libp2p/libp2p_service.d.ts +101 -51
  217. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  218. package/dest/services/libp2p/libp2p_service.js +596 -463
  219. package/dest/services/peer-manager/metrics.d.ts +4 -2
  220. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  221. package/dest/services/peer-manager/metrics.js +26 -5
  222. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  223. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  224. package/dest/services/peer-manager/peer_manager.js +39 -11
  225. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  226. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  227. package/dest/services/peer-manager/peer_scoring.js +65 -14
  228. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +51 -0
  229. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  230. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +543 -0
  231. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  232. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  233. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  234. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +47 -0
  235. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  236. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  237. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  238. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  239. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  240. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  241. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  242. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  243. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  244. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  245. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  246. package/dest/services/reqresp/config.d.ts +3 -3
  247. package/dest/services/reqresp/config.d.ts.map +1 -1
  248. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  249. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  250. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  251. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  252. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  253. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  254. package/dest/services/reqresp/interface.d.ts +25 -9
  255. package/dest/services/reqresp/interface.d.ts.map +1 -1
  256. package/dest/services/reqresp/interface.js +23 -10
  257. package/dest/services/reqresp/metrics.d.ts +6 -5
  258. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  259. package/dest/services/reqresp/metrics.js +16 -5
  260. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  261. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  262. package/dest/services/reqresp/protocols/block_txs/bitvector.js +5 -0
  263. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  264. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  265. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  266. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +29 -6
  267. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  268. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +59 -13
  269. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  270. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  271. package/dest/services/reqresp/protocols/index.js +0 -1
  272. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  273. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  274. package/dest/services/reqresp/protocols/tx.js +21 -3
  275. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  276. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  277. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  278. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  279. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  280. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  281. package/dest/services/reqresp/reqresp.d.ts +9 -2
  282. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  283. package/dest/services/reqresp/reqresp.js +95 -34
  284. package/dest/services/service.d.ts +46 -4
  285. package/dest/services/service.d.ts.map +1 -1
  286. package/dest/services/tx_collection/config.d.ts +22 -1
  287. package/dest/services/tx_collection/config.d.ts.map +1 -1
  288. package/dest/services/tx_collection/config.js +55 -1
  289. package/dest/services/tx_collection/fast_tx_collection.d.ts +7 -7
  290. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  291. package/dest/services/tx_collection/fast_tx_collection.js +95 -84
  292. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  293. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  294. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  295. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  296. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  297. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  298. package/dest/services/tx_collection/index.d.ts +3 -1
  299. package/dest/services/tx_collection/index.d.ts.map +1 -1
  300. package/dest/services/tx_collection/index.js +2 -0
  301. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  302. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  303. package/dest/services/tx_collection/instrumentation.js +10 -2
  304. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  305. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  306. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  307. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  308. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  309. package/dest/services/tx_collection/request_tracker.js +84 -0
  310. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  311. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  312. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  313. package/dest/services/tx_collection/tx_collection.d.ts +25 -15
  314. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  315. package/dest/services/tx_collection/tx_collection.js +79 -7
  316. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  317. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  318. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  319. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  320. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  321. package/dest/services/tx_collection/tx_source.js +26 -7
  322. package/dest/services/tx_file_store/config.d.ts +16 -0
  323. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  324. package/dest/services/tx_file_store/config.js +22 -0
  325. package/dest/services/tx_file_store/index.d.ts +4 -0
  326. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  327. package/dest/services/tx_file_store/index.js +3 -0
  328. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  329. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  330. package/dest/services/tx_file_store/instrumentation.js +29 -0
  331. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  332. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  333. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  334. package/dest/services/tx_provider.d.ts +4 -4
  335. package/dest/services/tx_provider.d.ts.map +1 -1
  336. package/dest/services/tx_provider.js +9 -8
  337. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  338. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  339. package/dest/services/tx_provider_instrumentation.js +5 -5
  340. package/dest/test-helpers/index.d.ts +3 -1
  341. package/dest/test-helpers/index.d.ts.map +1 -1
  342. package/dest/test-helpers/index.js +2 -0
  343. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  344. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  345. package/dest/test-helpers/make-test-p2p-clients.js +4 -2
  346. package/dest/test-helpers/mock-pubsub.d.ts +40 -6
  347. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  348. package/dest/test-helpers/mock-pubsub.js +139 -13
  349. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  350. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  351. package/dest/test-helpers/reqresp-nodes.js +8 -5
  352. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  353. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  354. package/dest/test-helpers/test_tx_provider.js +41 -0
  355. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  356. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  357. package/dest/test-helpers/testbench-utils.js +386 -0
  358. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  359. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  360. package/dest/testbench/p2p_client_testbench_worker.js +281 -143
  361. package/dest/testbench/worker_client_manager.d.ts +60 -6
  362. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  363. package/dest/testbench/worker_client_manager.js +280 -46
  364. package/dest/util.d.ts +3 -3
  365. package/dest/util.d.ts.map +1 -1
  366. package/package.json +14 -14
  367. package/src/bootstrap/bootstrap.ts +7 -4
  368. package/src/client/factory.ts +119 -38
  369. package/src/client/interface.ts +65 -35
  370. package/src/client/p2p_client.ts +228 -272
  371. package/src/client/test/tx_proposal_collector/README.md +227 -0
  372. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +357 -0
  373. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  374. package/src/config.ts +184 -46
  375. package/src/errors/p2p-service.error.ts +11 -0
  376. package/src/errors/tx-pool.error.ts +12 -0
  377. package/src/index.ts +1 -1
  378. package/src/mem_pools/attestation_pool/attestation_pool.ts +501 -91
  379. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  380. package/src/mem_pools/attestation_pool/index.ts +9 -2
  381. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  382. package/src/mem_pools/index.ts +2 -2
  383. package/src/mem_pools/instrumentation.ts +19 -14
  384. package/src/mem_pools/interface.ts +4 -4
  385. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  386. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  387. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  388. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  389. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  390. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  391. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  392. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  393. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  394. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  395. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  396. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  397. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  398. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  399. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  400. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  401. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  402. package/src/mem_pools/tx_pool_v2/interfaces.ts +250 -0
  403. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  404. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  405. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  406. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  407. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1107 -0
  408. package/src/msg_validators/attestation_validator/README.md +49 -0
  409. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -9
  410. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +14 -5
  411. package/src/msg_validators/clock_tolerance.ts +72 -3
  412. package/src/msg_validators/proposal_validator/README.md +123 -0
  413. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +17 -4
  414. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +23 -7
  415. package/src/msg_validators/proposal_validator/proposal_validator.ts +81 -51
  416. package/src/msg_validators/tx_validator/README.md +127 -0
  417. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  418. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  419. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  420. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  421. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  422. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  423. package/src/msg_validators/tx_validator/data_validator.ts +48 -3
  424. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  425. package/src/msg_validators/tx_validator/factory.ts +415 -56
  426. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  427. package/src/msg_validators/tx_validator/gas_validator.ts +203 -52
  428. package/src/msg_validators/tx_validator/index.ts +2 -0
  429. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  430. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  431. package/src/msg_validators/tx_validator/phases_validator.ts +87 -30
  432. package/src/msg_validators/tx_validator/size_validator.ts +6 -2
  433. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  434. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  435. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  436. package/src/services/data_store.ts +14 -19
  437. package/src/services/discv5/discV5_service.ts +1 -1
  438. package/src/services/dummy_service.ts +66 -3
  439. package/src/services/encoding.ts +18 -10
  440. package/src/services/gossipsub/README.md +641 -0
  441. package/src/services/gossipsub/index.ts +2 -0
  442. package/src/services/gossipsub/scoring.ts +29 -5
  443. package/src/services/gossipsub/topic_score_params.ts +519 -0
  444. package/src/services/index.ts +1 -0
  445. package/src/services/libp2p/instrumentation.ts +29 -2
  446. package/src/services/libp2p/libp2p_service.ts +644 -514
  447. package/src/services/peer-manager/metrics.ts +28 -4
  448. package/src/services/peer-manager/peer_manager.ts +45 -11
  449. package/src/services/peer-manager/peer_scoring.ts +56 -6
  450. package/src/services/reqresp/README.md +229 -0
  451. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  452. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +673 -0
  453. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  454. package/src/services/reqresp/batch-tx-requester/interface.ts +54 -0
  455. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  456. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  457. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  458. package/src/services/reqresp/config.ts +2 -2
  459. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  460. package/src/services/reqresp/connection-sampler/connection_sampler.ts +16 -0
  461. package/src/services/reqresp/interface.ts +48 -10
  462. package/src/services/reqresp/metrics.ts +33 -9
  463. package/src/services/reqresp/protocols/block_txs/bitvector.ts +7 -0
  464. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  465. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +74 -9
  466. package/src/services/reqresp/protocols/index.ts +0 -1
  467. package/src/services/reqresp/protocols/tx.ts +23 -3
  468. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  469. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  470. package/src/services/reqresp/reqresp.ts +116 -32
  471. package/src/services/service.ts +61 -3
  472. package/src/services/tx_collection/config.ts +83 -1
  473. package/src/services/tx_collection/fast_tx_collection.ts +111 -91
  474. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  475. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  476. package/src/services/tx_collection/index.ts +6 -0
  477. package/src/services/tx_collection/instrumentation.ts +17 -2
  478. package/src/services/tx_collection/proposal_tx_collector.ts +108 -0
  479. package/src/services/tx_collection/request_tracker.ts +127 -0
  480. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  481. package/src/services/tx_collection/tx_collection.ts +118 -23
  482. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  483. package/src/services/tx_collection/tx_source.ts +28 -8
  484. package/src/services/tx_file_store/config.ts +37 -0
  485. package/src/services/tx_file_store/index.ts +3 -0
  486. package/src/services/tx_file_store/instrumentation.ts +36 -0
  487. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  488. package/src/services/tx_provider.ts +10 -9
  489. package/src/services/tx_provider_instrumentation.ts +11 -5
  490. package/src/test-helpers/index.ts +2 -0
  491. package/src/test-helpers/make-test-p2p-clients.ts +6 -6
  492. package/src/test-helpers/mock-pubsub.ts +180 -14
  493. package/src/test-helpers/reqresp-nodes.ts +9 -9
  494. package/src/test-helpers/test_tx_provider.ts +64 -0
  495. package/src/test-helpers/testbench-utils.ts +457 -0
  496. package/src/testbench/p2p_client_testbench_worker.ts +396 -134
  497. package/src/testbench/worker_client_manager.ts +367 -48
  498. package/src/util.ts +8 -2
  499. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  500. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  501. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  502. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  503. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  504. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  505. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  506. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  507. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  508. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  509. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  510. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  511. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  512. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  513. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  514. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  515. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  516. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  517. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  518. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  519. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  520. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  521. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  522. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  523. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  524. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  525. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  526. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  527. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  528. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  529. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  530. package/dest/mem_pools/tx_pool/index.js +0 -2
  531. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  532. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  533. package/dest/mem_pools/tx_pool/priority.js +0 -15
  534. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  535. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  536. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  537. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  538. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  539. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  540. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  541. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  542. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  543. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  544. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  545. package/dest/services/reqresp/protocols/block.js +0 -32
  546. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  547. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  548. package/src/mem_pools/tx_pool/README.md +0 -270
  549. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  550. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  551. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  552. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  553. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  554. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  555. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  556. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  557. package/src/mem_pools/tx_pool/index.ts +0 -2
  558. package/src/mem_pools/tx_pool/priority.ts +0 -20
  559. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  560. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  561. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  562. package/src/services/reqresp/protocols/block.ts +0 -37
@@ -1,34 +1,66 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
3
- import { TxArray } from '@aztec/stdlib/tx';
3
+ import { MAX_TX_SIZE_KB } from '@aztec/stdlib/p2p';
4
+ import { TxArray, TxHashArray } from '@aztec/stdlib/tx';
4
5
  import { BitVector } from './bitvector.js';
5
6
  /**
6
7
  * Request message for requesting specific transactions from a block
7
8
  */ export class BlockTxsRequest {
8
- blockHash;
9
+ archiveRoot;
10
+ txHashes;
9
11
  txIndices;
10
- constructor(blockHash, // BitVector indicating which txs from the proposal we are requesting
12
+ constructor(// Archive root after the proposed block is applied (proposal identifier)
13
+ archiveRoot, // Hashes of txs we are requesting
14
+ txHashes, // BitVector indicating which txs from the proposal we are requesting
11
15
  // 1 means we want the tx, 0 means we don't
16
+ // If we know peer has the Block Proposal then we can use this BitVector
17
+ // Otherwise we can use this optimization
12
18
  txIndices){
13
- this.blockHash = blockHash;
19
+ this.archiveRoot = archiveRoot;
20
+ this.txHashes = txHashes;
14
21
  this.txIndices = txIndices;
15
22
  }
16
23
  /**
24
+ * Creates new BlockTxsRequest given a block txs source and missing tx hashes.
25
+ *
26
+ * @param blockTxsSource - The block or proposal for which we are making the request
27
+ * @param missingTxHashes - Tx hashes from the source we are missing
28
+ * @param includeFullTxHashes - Whether to include full list of missing tx hashes in the request or just Bitvector indices
29
+ *
30
+ * @returns undefined if there were no missingTxHashes matching the source hashes, otherwise
31
+ * returns new BlockTxsRequest
32
+ */ static fromTxsSourceAndMissingTxs(blockTxsSource, missingTxHashes, includeFullTxHashes = false) {
33
+ if (missingTxHashes.length === 0) {
34
+ return undefined; // No missing txs to request
35
+ }
36
+ const missingHashesSet = new Set(missingTxHashes.map((t)=>t.toString()));
37
+ // We cannot request txs that are not part of the block
38
+ if (!missingHashesSet.isSubsetOf(new Set(blockTxsSource.txHashes.map((t)=>t.toString())))) {
39
+ return undefined;
40
+ }
41
+ const missingIndices = blockTxsSource.txHashes.map((hash, idx)=>missingHashesSet.has(hash.toString()) ? idx : -1).filter((i)=>i != -1);
42
+ const requestBitVector = BitVector.init(blockTxsSource.txHashes.length, missingIndices);
43
+ const hashes = includeFullTxHashes ? new TxHashArray(...missingTxHashes) : new TxHashArray();
44
+ return new BlockTxsRequest(blockTxsSource.archive, hashes, requestBitVector);
45
+ }
46
+ /**
17
47
  * Deserializes the BlockTxRequest object from a Buffer
18
48
  * @param buffer - Buffer or BufferReader object to deserialize
19
49
  * @returns An instance of BlockTxRequest
20
50
  */ static fromBuffer(buffer) {
21
51
  const reader = BufferReader.asReader(buffer);
22
- const blockHash = Fr.fromBuffer(reader);
52
+ const archiveRoot = Fr.fromBuffer(reader);
53
+ const txHashes = TxHashArray.fromBuffer(reader);
23
54
  const txIndices = BitVector.fromBuffer(reader);
24
- return new BlockTxsRequest(blockHash, txIndices);
55
+ return new BlockTxsRequest(archiveRoot, txHashes, txIndices);
25
56
  }
26
57
  /**
27
58
  * Serializes the BlockTxRequest object into a Buffer
28
59
  * @returns Buffer representation of the BlockTxRequest object
29
60
  */ toBuffer() {
30
61
  return serializeToBuffer([
31
- this.blockHash,
62
+ this.archiveRoot,
63
+ this.txHashes.toBuffer(),
32
64
  this.txIndices.toBuffer()
33
65
  ]);
34
66
  }
@@ -36,13 +68,13 @@ import { BitVector } from './bitvector.js';
36
68
  /**
37
69
  * Response message containing requested transactions from a block
38
70
  */ export class BlockTxsResponse {
39
- blockHash;
71
+ archiveRoot;
40
72
  txs;
41
73
  txIndices;
42
- constructor(blockHash, txs, // BitVector indicating which txs from the proposal are available at the peer
74
+ constructor(archiveRoot, txs, // BitVector indicating which txs from the proposal are available at the peer
43
75
  // 1 means the tx is available, 0 means it is not
44
76
  txIndices){
45
- this.blockHash = blockHash;
77
+ this.archiveRoot = archiveRoot;
46
78
  this.txs = txs;
47
79
  this.txIndices = txIndices;
48
80
  }
@@ -52,10 +84,10 @@ import { BitVector } from './bitvector.js';
52
84
  * @returns An instance of BlockTxResponse
53
85
  */ static fromBuffer(buffer) {
54
86
  const reader = BufferReader.asReader(buffer);
55
- const blockHash = Fr.fromBuffer(reader);
87
+ const archiveRoot = Fr.fromBuffer(reader);
56
88
  const txs = TxArray.fromBuffer(reader);
57
89
  const txIndices = BitVector.fromBuffer(reader);
58
- return new BlockTxsResponse(blockHash, txs, txIndices);
90
+ return new BlockTxsResponse(archiveRoot, txs, txIndices);
59
91
  }
60
92
  /**
61
93
  * Serializes the BlockTxResponse object into a Buffer
@@ -64,7 +96,7 @@ import { BitVector } from './bitvector.js';
64
96
  * @returns Buffer representation of the BlockTxResponse object
65
97
  */ toBuffer() {
66
98
  return serializeToBuffer([
67
- this.blockHash,
99
+ this.archiveRoot,
68
100
  this.txs.toBuffer(),
69
101
  this.txIndices.toBuffer()
70
102
  ]);
@@ -73,3 +105,17 @@ import { BitVector } from './bitvector.js';
73
105
  return new BlockTxsResponse(Fr.ZERO, new TxArray(), BitVector.init(0, []));
74
106
  }
75
107
  }
108
+ /**
109
+ * Calculate the expected response size for a BLOCK_TXS request.
110
+ * @param requestBuffer - The serialized request buffer containing BlockTxsRequest
111
+ * @returns Expected response size in KB
112
+ */ export function calculateBlockTxsResponseSize(requestBuffer) {
113
+ try {
114
+ const request = BlockTxsRequest.fromBuffer(requestBuffer);
115
+ const requestedTxCount = request.txIndices.getTrueIndices().length;
116
+ return requestedTxCount * MAX_TX_SIZE_KB + 1; // +1 KB overhead for serialization
117
+ } catch {
118
+ // If we can't parse the request, fall back to allowing a single transaction response
119
+ return MAX_TX_SIZE_KB + 1;
120
+ }
121
+ }
@@ -5,7 +5,6 @@ export * from './ping.js';
5
5
  export * from './status.js';
6
6
  export * from './tx.js';
7
7
  export * from './goodbye.js';
8
- export * from './block.js';
9
8
  export * from './auth.js';
10
9
  export * from './block_txs/index.js';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsc0JBQXNCLENBQUMifQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsc0JBQXNCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC"}
@@ -4,6 +4,5 @@
4
4
  export * from './status.js';
5
5
  export * from './tx.js';
6
6
  export * from './goodbye.js';
7
- export * from './block.js';
8
7
  export * from './auth.js';
9
8
  export * from './block_txs/index.js';
@@ -20,4 +20,10 @@ export declare function reqRespTxHandler(mempools: MemPools): ReqRespSubProtocol
20
20
  * we define Q as max number of transactions per batch, the comment explains why we use 8.
21
21
  */
22
22
  export declare function chunkTxHashesRequest(hashes: TxHash[], chunkSize?: number): Array<TxHashArray>;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWhFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakU7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxHQUFHLHlCQUF5QixDQXdCOUU7QUFFRDs7Ozs7Ozs7R0FRRztBQUdILHdCQUFnQixvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxTQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUV4RiJ9
23
+ /**
24
+ * Calculate the expected response size for a TX request.
25
+ * @param requestBuffer - The serialized request buffer containing TxHashArray
26
+ * @returns Expected response size in KB
27
+ */
28
+ export declare function calculateTxResponseSize(requestBuffer: Buffer): number;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy90eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQVcsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWhFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHakU7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxHQUFHLHlCQUF5QixDQXdCOUU7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxTQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUV4RjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsdUJBQXVCLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBY3JFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/tx.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,yBAAyB,CAwB9E;AAED;;;;;;;;GAQG;AAGH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,SAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAExF"}
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/tx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,yBAAyB,CAwB9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,SAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAExF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAcrE"}
@@ -1,4 +1,5 @@
1
1
  import { chunk } from '@aztec/foundation/collection';
2
+ import { MAX_TX_SIZE_KB } from '@aztec/stdlib/p2p';
2
3
  import { TxArray, TxHashArray } from '@aztec/stdlib/tx';
3
4
  import { ReqRespStatus, ReqRespStatusError } from '../status.js';
4
5
  /**
@@ -41,8 +42,25 @@ import { ReqRespStatus, ReqRespStatusError } from '../status.js';
41
42
  * @param chunkSize - The size of each chunk. Default is 8. Reasoning:
42
43
  * Per: https://github.com/AztecProtocol/aztec-packages/issues/15149#issuecomment-2999054485
43
44
  * we define Q as max number of transactions per batch, the comment explains why we use 8.
44
- */ //TODO: (mralj) chunk size should by default be 8, this is just temporary until the protocol is implemented correctly
45
- //more info: https://github.com/AztecProtocol/aztec-packages/pull/15516#pullrequestreview-2995474321
46
- export function chunkTxHashesRequest(hashes, chunkSize = 1) {
45
+ */ export function chunkTxHashesRequest(hashes, chunkSize = 8) {
47
46
  return chunk(hashes, chunkSize).map((chunk)=>new TxHashArray(...chunk));
48
47
  }
48
+ /**
49
+ * Calculate the expected response size for a TX request.
50
+ * @param requestBuffer - The serialized request buffer containing TxHashArray
51
+ * @returns Expected response size in KB
52
+ */ export function calculateTxResponseSize(requestBuffer) {
53
+ try {
54
+ const txHashes = TxHashArray.fromBuffer(requestBuffer);
55
+ // TxHashArray.fromBuffer returns empty array on parse failure, so check for that
56
+ if (txHashes.length === 0 && requestBuffer.length > 0) {
57
+ // If we got an empty array but had a non-empty buffer, parsing likely failed
58
+ // Fall back to allowing a single transaction response
59
+ return MAX_TX_SIZE_KB + 1;
60
+ }
61
+ return Math.max(txHashes.length, 1) * MAX_TX_SIZE_KB + 1; // +1 KB overhead, at least 1 tx
62
+ } catch {
63
+ // If we can't parse the request, fall back to allowing a single transaction response
64
+ return MAX_TX_SIZE_KB + 1;
65
+ }
66
+ }
@@ -46,9 +46,10 @@ export declare function prettyPrintRateLimitStatus(status: RateLimitStatus): "Al
46
46
  * 2. Individual rate limits for each peer.
47
47
  *
48
48
  * How it works:
49
- * - When a request comes in, it first checks against the global rate limit.
50
- * - If the global limit allows, it then checks against the specific peer's rate limit.
51
- * - The request is only allowed if both the global and peer-specific limits allow it.
49
+ * - When a request comes in, it first checks against the peer's individual rate limit.
50
+ * - If the peer limit allows, it then checks against the global rate limit.
51
+ * - The request is only allowed if both the peer-specific and global limits allow it.
52
+ * - Checking peer limit first ensures a rate-limited peer cannot exhaust the global quota.
52
53
  * - It automatically creates and manages rate limiters for new peers as they make requests.
53
54
  * - It periodically cleans up rate limiters for inactive peers to conserve memory.
54
55
  *
@@ -101,4 +102,4 @@ export declare class RequestResponseRateLimiter {
101
102
  stop(): void;
102
103
  getRateLimits(protocol: ReqRespSubProtocol): ProtocolRateLimitQuota;
103
104
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZV9saW1pdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9yYXRlLWxpbWl0ZXIvcmF0ZV9saW1pdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLDRCQUE0QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNaEg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxxQkFBYSxlQUFlO0lBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBUztJQUUxQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBUztJQUV2Qzs7O09BR0c7SUFDSCxZQUFZLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFJbEQ7SUFFRCxLQUFLLElBQUksT0FBTyxDQVVmO0NBQ0Y7QUFTRCxvQkFBWSxlQUFlO0lBQ3pCLFlBQVksSUFBQTtJQUNaLFVBQVUsSUFBQTtJQUNWLE9BQU8sSUFBQTtDQUNSO0FBRUQsd0JBQWdCLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxlQUFlLDZDQVNqRTtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHFCQUFhLHNCQUFzQjtJQUNqQyxPQUFPLENBQUMsWUFBWSxDQUEyQztJQUMvRCxPQUFPLENBQUMsYUFBYSxDQUFrQjtJQUN2QyxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBUztJQUN4QyxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBUztJQUV6QyxZQUFZLGNBQWMsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUsvRztJQUVELEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGVBQWUsQ0FzQnJDO0lBRUQsb0JBQW9CLFNBT25CO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILHFCQUFhLDBCQUEwQjtJQU9uQyxPQUFPLENBQUMsV0FBVztJQU5yQixPQUFPLENBQUMsdUJBQXVCLENBQWtEO0lBQ2pGLE9BQU8sQ0FBQyxVQUFVLENBQStCO0lBRWpELE9BQU8sQ0FBQyxlQUFlLENBQXlDO0lBRWhFLFlBQ1UsV0FBVyxFQUFFLFdBQVcsRUFDaEMsVUFBVSxHQUFFLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBTSxFQWdCdkQ7SUFFRCxLQUFLLFNBSUo7SUFFRCxLQUFLLENBQUMsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsZUFBZSxDQVd0RTtJQUVELG9CQUFvQixTQUVuQjtJQUVEOztPQUVHO0lBQ0gsSUFBSSxTQUVIO0lBRUQsYUFBYSxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxzQkFBc0IsQ0FFbEU7Q0FDRiJ9
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZV9saW1pdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9yYXRlLWxpbWl0ZXIvcmF0ZV9saW1pdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLDRCQUE0QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNaEg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxxQkFBYSxlQUFlO0lBRTFCLE9BQU8sQ0FBQyxHQUFHLENBQVM7SUFFcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBUztJQUUxQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBUztJQUV2Qzs7O09BR0c7SUFDSCxZQUFZLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFJbEQ7SUFFRCxLQUFLLElBQUksT0FBTyxDQVVmO0NBQ0Y7QUFTRCxvQkFBWSxlQUFlO0lBQ3pCLFlBQVksSUFBQTtJQUNaLFVBQVUsSUFBQTtJQUNWLE9BQU8sSUFBQTtDQUNSO0FBRUQsd0JBQWdCLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxlQUFlLDZDQVNqRTtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gscUJBQWEsc0JBQXNCO0lBQ2pDLE9BQU8sQ0FBQyxZQUFZLENBQTJDO0lBQy9ELE9BQU8sQ0FBQyxhQUFhLENBQWtCO0lBQ3ZDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFTO0lBQ3hDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFTO0lBRXpDLFlBQVksY0FBYyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBSy9HO0lBRUQsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsZUFBZSxDQXlCckM7SUFFRCxvQkFBb0IsU0FPbkI7Q0FDRjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gscUJBQWEsMEJBQTBCO0lBT25DLE9BQU8sQ0FBQyxXQUFXO0lBTnJCLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBa0Q7SUFDakYsT0FBTyxDQUFDLFVBQVUsQ0FBK0I7SUFFakQsT0FBTyxDQUFDLGVBQWUsQ0FBeUM7SUFFaEUsWUFDVSxXQUFXLEVBQUUsV0FBVyxFQUNoQyxVQUFVLEdBQUUsT0FBTyxDQUFDLDRCQUE0QixDQUFNLEVBZ0J2RDtJQUVELEtBQUssU0FJSjtJQUVELEtBQUssQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxlQUFlLENBV3RFO0lBRUQsb0JBQW9CLFNBRW5CO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFNBRUg7SUFFRCxhQUFhLENBQUMsUUFBUSxFQUFFLGtCQUFrQixHQUFHLHNCQUFzQixDQUVsRTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"rate_limiter.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/rate-limiter/rate_limiter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAMhH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAe;IAE1B,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;OAGG;IACH,YAAY,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAIlD;IAED,KAAK,IAAI,OAAO,CAUf;CACF;AASD,oBAAY,eAAe;IACzB,YAAY,IAAA;IACZ,UAAU,IAAA;IACV,OAAO,IAAA;CACR;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,6CASjE;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC,YAAY,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAK/G;IAED,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAsBrC;IAED,oBAAoB,SAOnB;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,0BAA0B;IAOnC,OAAO,CAAC,WAAW;IANrB,OAAO,CAAC,uBAAuB,CAAkD;IACjF,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,eAAe,CAAyC;IAEhE,YACU,WAAW,EAAE,WAAW,EAChC,UAAU,GAAE,OAAO,CAAC,4BAA4B,CAAM,EAgBvD;IAED,KAAK,SAIJ;IAED,KAAK,CAAC,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAWtE;IAED,oBAAoB,SAEnB;IAED;;OAEG;IACH,IAAI,SAEH;IAED,aAAa,CAAC,QAAQ,EAAE,kBAAkB,GAAG,sBAAsB,CAElE;CACF"}
1
+ {"version":3,"file":"rate_limiter.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/rate-limiter/rate_limiter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAMhH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAe;IAE1B,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;OAGG;IACH,YAAY,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAIlD;IAED,KAAK,IAAI,OAAO,CAUf;CACF;AASD,oBAAY,eAAe;IACzB,YAAY,IAAA;IACZ,UAAU,IAAA;IACV,OAAO,IAAA;CACR;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,eAAe,6CASjE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC,YAAY,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAK/G;IAED,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAyBrC;IAED,oBAAoB,SAOnB;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,0BAA0B;IAOnC,OAAO,CAAC,WAAW;IANrB,OAAO,CAAC,uBAAuB,CAAkD;IACjF,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,eAAe,CAAyC;IAEhE,YACU,WAAW,EAAE,WAAW,EAChC,UAAU,GAAE,OAAO,CAAC,4BAA4B,CAAM,EAgBvD;IAED,KAAK,SAIJ;IAED,KAAK,CAAC,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAWtE;IAED,oBAAoB,SAEnB;IAED;;OAEG;IACH,IAAI,SAEH;IAED,aAAa,CAAC,QAAQ,EAAE,kBAAkB,GAAG,sBAAsB,CAElE;CACF"}
@@ -74,9 +74,10 @@ export function prettyPrintRateLimitStatus(status) {
74
74
  * 2. Individual rate limits for each peer.
75
75
  *
76
76
  * How it works:
77
- * - When a request comes in, it first checks against the global rate limit.
78
- * - If the global limit allows, it then checks against the specific peer's rate limit.
79
- * - The request is only allowed if both the global and peer-specific limits allow it.
77
+ * - When a request comes in, it first checks against the peer's individual rate limit.
78
+ * - If the peer limit allows, it then checks against the global rate limit.
79
+ * - The request is only allowed if both the peer-specific and global limits allow it.
80
+ * - Checking peer limit first ensures a rate-limited peer cannot exhaust the global quota.
80
81
  * - It automatically creates and manages rate limiters for new peers as they make requests.
81
82
  * - It periodically cleans up rate limiters for inactive peers to conserve memory.
82
83
  *
@@ -93,9 +94,6 @@ export function prettyPrintRateLimitStatus(status) {
93
94
  this.peerQuotaTimeMs = peerQuotaTimeMs;
94
95
  }
95
96
  allow(peerId) {
96
- if (!this.globalLimiter.allow()) {
97
- return 0;
98
- }
99
97
  const peerIdStr = peerId.toString();
100
98
  let peerLimiter = this.peerLimiters.get(peerIdStr);
101
99
  if (!peerLimiter) {
@@ -108,10 +106,14 @@ export function prettyPrintRateLimitStatus(status) {
108
106
  } else {
109
107
  peerLimiter.lastAccess = Date.now();
110
108
  }
111
- const peerLimitAllowed = peerLimiter.limiter.allow();
112
- if (!peerLimitAllowed) {
109
+ // Check peer limit first: a rate-limited peer must not consume global quota,
110
+ // otherwise one spamming peer can starve all others by exhausting the global bucket.
111
+ if (!peerLimiter.limiter.allow()) {
113
112
  return 1;
114
113
  }
114
+ if (!this.globalLimiter.allow()) {
115
+ return 0;
116
+ }
115
117
  return 2;
116
118
  }
117
119
  cleanupInactivePeers() {
@@ -1,3 +1,3 @@
1
1
  import { type ReqRespSubProtocolRateLimits } from '../interface.js';
2
2
  export declare const DEFAULT_RATE_LIMITS: ReqRespSubProtocolRateLimits;
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZV9saW1pdHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3JhdGUtbGltaXRlci9yYXRlX2xpbWl0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLEtBQUssNEJBQTRCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RixlQUFPLE1BQU0sbUJBQW1CLEVBQUUsNEJBdUVqQyxDQUFDIn0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZV9saW1pdHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3JhdGUtbGltaXRlci9yYXRlX2xpbWl0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNCLEtBQUssNEJBQTRCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RixlQUFPLE1BQU0sbUJBQW1CLEVBQUUsNEJBNkRqQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"rate_limits.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/rate-limiter/rate_limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAGxF,eAAO,MAAM,mBAAmB,EAAE,4BAuEjC,CAAC"}
1
+ {"version":3,"file":"rate_limits.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/rate-limiter/rate_limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAGxF,eAAO,MAAM,mBAAmB,EAAE,4BA6DjC,CAAC"}
@@ -41,16 +41,6 @@ export const DEFAULT_RATE_LIMITS = {
41
41
  quotaCount: 200
42
42
  }
43
43
  },
44
- [ReqRespSubProtocol.BLOCK]: {
45
- peerLimit: {
46
- quotaTimeMs: 1000,
47
- quotaCount: 2
48
- },
49
- globalLimit: {
50
- quotaTimeMs: 1000,
51
- quotaCount: 5
52
- }
53
- },
54
44
  [ReqRespSubProtocol.GOODBYE]: {
55
45
  peerLimit: {
56
46
  quotaTimeMs: 1000,
@@ -3,7 +3,8 @@ import type { PeerId } from '@libp2p/interface';
3
3
  import type { Libp2p } from 'libp2p';
4
4
  import type { PeerScoring } from '../peer-manager/peer_scoring.js';
5
5
  import { type P2PReqRespConfig } from './config.js';
6
- import { type ReqRespInterface, type ReqRespResponse, ReqRespSubProtocol, type ReqRespSubProtocolHandler, type ReqRespSubProtocolHandlers, type ReqRespSubProtocolRateLimits, type ReqRespSubProtocolValidators, type SubProtocolMap } from './interface.js';
6
+ import { ConnectionSampler } from './connection-sampler/connection_sampler.js';
7
+ import { type ReqRespInterface, type ReqRespResponse, ReqRespSubProtocol, type ReqRespSubProtocolHandler, type ReqRespSubProtocolHandlers, type ReqRespSubProtocolRateLimits, type ReqRespSubProtocolValidators, type ShouldRejectPeer, type SubProtocolMap } from './interface.js';
7
8
  /**
8
9
  * The Request Response Service
9
10
  *
@@ -29,10 +30,16 @@ export declare class ReqResp implements ReqRespInterface {
29
30
  private connectionSampler;
30
31
  private rateLimiter;
31
32
  private snappyTransform;
33
+ private shouldRejectPeer;
32
34
  private metrics;
33
35
  constructor(config: P2PReqRespConfig, libp2p: Libp2p, peerScoring: PeerScoring, logger?: import("@aztec/foundation/log").Logger, rateLimits?: Partial<ReqRespSubProtocolRateLimits>, telemetryClient?: TelemetryClient);
34
36
  updateConfig(config: Partial<P2PReqRespConfig>): void;
37
+ setShouldRejectPeer(checker: ShouldRejectPeer): void;
35
38
  get tracer(): import("@aztec/telemetry-client").Tracer;
39
+ /**
40
+ * Get the connection sampler instance
41
+ */
42
+ getConnectionSampler(): Pick<ConnectionSampler, 'getPeerListSortedByConnectionCountAsc'>;
36
43
  /**
37
44
  * Start the reqresp service
38
45
  */
@@ -121,4 +128,4 @@ export declare class ReqResp implements ReqRespInterface {
121
128
  private categorizeResponseError;
122
129
  private categorizeConnectionErrors;
123
130
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvcmVxcmVzcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQWMsS0FBSyxlQUFlLEVBQWlDLE1BQU0seUJBQXlCLENBQUM7QUFFMUcsT0FBTyxLQUFLLEVBQXNCLE1BQU0sRUFBVSxNQUFNLG1CQUFtQixDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVVyQyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBR0wsS0FBSyxnQkFBZ0IsRUFDdEIsTUFBTSxhQUFhLENBQUM7QUFHckIsT0FBTyxFQUVMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssZUFBZSxFQUNwQixrQkFBa0IsRUFDbEIsS0FBSyx5QkFBeUIsRUFDOUIsS0FBSywwQkFBMEIsRUFDL0IsS0FBSyw0QkFBNEIsRUFDakMsS0FBSyw0QkFBNEIsRUFDakMsS0FBSyxjQUFjLEVBRXBCLE1BQU0sZ0JBQWdCLENBQUM7QUFTeEI7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILHFCQUFhLE9BQVEsWUFBVyxnQkFBZ0I7SUFnQjVDLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLE1BQU07SUFqQmhCLE9BQU8sQ0FBQywwQkFBMEIsQ0FBaUQ7SUFDbkYsT0FBTyxDQUFDLGFBQWEsQ0FBMkM7SUFFaEUsT0FBTyxDQUFDLG1CQUFtQixDQUEyQztJQUN0RSxPQUFPLENBQUMscUJBQXFCLENBQTZDO0lBRTFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBb0I7SUFDN0MsT0FBTyxDQUFDLFdBQVcsQ0FBNkI7SUFFaEQsT0FBTyxDQUFDLGVBQWUsQ0FBa0I7SUFFekMsT0FBTyxDQUFDLE9BQU8sQ0FBaUI7SUFFaEMsWUFDRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsV0FBVyxFQUFFLFdBQVcsRUFDeEIsTUFBTSx5Q0FBOEIsRUFDNUMsVUFBVSxHQUFFLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBTSxFQUN0RCxlQUFlLEdBQUUsZUFBc0MsRUFnQnhEO0lBRU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBUTNEO0lBRUQsSUFBSSxNQUFNLDZDQUVUO0lBRUQ7O09BRUc7SUFDRyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsNEJBQTRCLGlCQWdCL0c7SUFFSyxjQUFjLENBQ2xCLFdBQVcsRUFBRSxrQkFBa0IsRUFDL0IsT0FBTyxFQUFFLHlCQUF5QixFQUNsQyxTQUFTLEdBQUUsNEJBQTRCLENBQUMsa0JBQWtCLENBQWdELEdBQ3pHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FXZjtJQUVEOztPQUVHO0lBQ0csSUFBSSxrQkFrQlQ7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBUUcsZ0JBQWdCLENBQUMsV0FBVyxTQUFTLGtCQUFrQixFQUMzRCxXQUFXLEVBQUUsV0FBVyxFQUN4QixRQUFRLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQ2hFLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM5QixTQUFTLFNBQVEsRUFDakIsUUFBUSxTQUErQyxFQUN2RCxnQkFBZ0IsU0FBSSxHQUNuQixPQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0E4SWxFO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXdCRztJQUtVLGlCQUFpQixDQUM1QixNQUFNLEVBQUUsTUFBTSxFQUNkLFdBQVcsRUFBRSxrQkFBa0IsRUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFDZixXQUFXLEdBQUUsTUFBMkIsR0FDdkMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQW9EMUI7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxPQUFPLENBQUMsbUJBQW1CO1lBY2IsV0FBVztZQWtFWCxhQUFhO1lBK0RiLGFBQWE7WUF3Q2IsWUFBWTtJQW1DMUIsT0FBTyxDQUFDLGtCQUFrQjtJQU8xQjs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLHNCQUFzQjtJQWlCOUI7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyx1QkFBdUI7SUF5Qi9CLE9BQU8sQ0FBQywwQkFBMEI7Q0E4RG5DIn0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvcmVxcmVzcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQWMsS0FBSyxlQUFlLEVBQWlDLE1BQU0seUJBQXlCLENBQUM7QUFFMUcsT0FBTyxLQUFLLEVBQXNCLE1BQU0sRUFBVSxNQUFNLG1CQUFtQixDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQVVyQyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBR0wsS0FBSyxnQkFBZ0IsRUFDdEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLDRDQUE0QyxDQUFDO0FBQzlGLE9BQU8sRUFFTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLGVBQWUsRUFDcEIsa0JBQWtCLEVBQ2xCLEtBQUsseUJBQXlCLEVBQzlCLEtBQUssMEJBQTBCLEVBQy9CLEtBQUssNEJBQTRCLEVBQ2pDLEtBQUssNEJBQTRCLEVBQ2pDLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssY0FBYyxFQUlwQixNQUFNLGdCQUFnQixDQUFDO0FBU3hCOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxxQkFBYSxPQUFRLFlBQVcsZ0JBQWdCO0lBa0I1QyxPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxXQUFXO0lBQ25CLE9BQU8sQ0FBQyxNQUFNO0lBbkJoQixPQUFPLENBQUMsMEJBQTBCLENBQWlEO0lBQ25GLE9BQU8sQ0FBQyxhQUFhLENBQTJDO0lBRWhFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBMkM7SUFDdEUsT0FBTyxDQUFDLHFCQUFxQixDQUE2QztJQUUxRSxPQUFPLENBQUMsaUJBQWlCLENBQW9CO0lBQzdDLE9BQU8sQ0FBQyxXQUFXLENBQTZCO0lBRWhELE9BQU8sQ0FBQyxlQUFlLENBQWtCO0lBRXpDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBK0I7SUFFdkQsT0FBTyxDQUFDLE9BQU8sQ0FBaUI7SUFFaEMsWUFDRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsV0FBVyxFQUFFLFdBQVcsRUFDeEIsTUFBTSx5Q0FBOEIsRUFDNUMsVUFBVSxHQUFFLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBTSxFQUN0RCxlQUFlLEdBQUUsZUFBc0MsRUFnQnhEO0lBRU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBUTNEO0lBRU0sbUJBQW1CLENBQUMsT0FBTyxFQUFFLGdCQUFnQixHQUFHLElBQUksQ0FFMUQ7SUFFRCxJQUFJLE1BQU0sNkNBRVQ7SUFFRDs7T0FFRztJQUNILG9CQUFvQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSx1Q0FBdUMsQ0FBQyxDQUV2RjtJQUVEOztPQUVHO0lBQ0csS0FBSyxDQUFDLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLDRCQUE0QixpQkFnQi9HO0lBRUssY0FBYyxDQUNsQixXQUFXLEVBQUUsa0JBQWtCLEVBQy9CLE9BQU8sRUFBRSx5QkFBeUIsRUFDbEMsU0FBUyxHQUFFLDRCQUE0QixDQUFDLGtCQUFrQixDQUFnRCxHQUN6RyxPQUFPLENBQUMsSUFBSSxDQUFDLENBV2Y7SUFFRDs7T0FFRztJQUNHLElBQUksa0JBa0JUO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQVFHLGdCQUFnQixDQUFDLFdBQVcsU0FBUyxrQkFBa0IsRUFDM0QsV0FBVyxFQUFFLFdBQVcsRUFDeEIsUUFBUSxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUNoRSxVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDOUIsU0FBUyxTQUFRLEVBQ2pCLFFBQVEsU0FBK0MsRUFDdkQsZ0JBQWdCLFNBQUksR0FDbkIsT0FBTyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBcUxsRTtJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Qkc7SUFLVSxpQkFBaUIsQ0FDNUIsTUFBTSxFQUFFLE1BQU0sRUFDZCxXQUFXLEVBQUUsa0JBQWtCLEVBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQ2YsV0FBVyxHQUFFLE1BQTJCLEdBQ3ZDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0EyRDFCO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBTyxDQUFDLG1CQUFtQjtZQWlCYixXQUFXO1lBNERYLGFBQWE7WUEwRWIsYUFBYTtZQXdDYixZQUFZO0lBbUMxQixPQUFPLENBQUMsa0JBQWtCO0lBTzFCOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsc0JBQXNCO0lBaUI5Qjs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLHVCQUF1QjtJQXVDL0IsT0FBTyxDQUFDLDBCQUEwQjtDQThEbkMifQ==
@@ -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":"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;AAErB,OAAO,EAAE,iBAAiB,EAAiB,MAAM,4CAA4C,CAAC;AAC9F,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,kBAAkB,EAClB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAIpB,MAAM,gBAAgB,CAAC;AASxB;;;;;;;;;;;;;GAaG;AACH,qBAAa,OAAQ,YAAW,gBAAgB;IAkB5C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAnBhB,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,gBAAgB,CAA+B;IAEvD,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;IAEM,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAE1D;IAED,IAAI,MAAM,6CAET;IAED;;OAEG;IACH,oBAAoB,IAAI,IAAI,CAAC,iBAAiB,EAAE,uCAAuC,CAAC,CAEvF;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,CAqLlE;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,CA2D1B;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;YAiBb,WAAW;YA4DX,aAAa;YA0Eb,aAAa;YAwCb,YAAY;IAmC1B,OAAO,CAAC,kBAAkB;IAO1B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAiB9B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAuC/B,OAAO,CAAC,0BAA0B;CA8DnC"}