@aztec/p2p 0.0.1-commit.42ee6df9b → 0.0.1-commit.431c48d

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 (360) hide show
  1. package/README.md +7 -6
  2. package/dest/bootstrap/bootstrap.d.ts +1 -1
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +22 -6
  5. package/dest/client/factory.d.ts +4 -3
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +32 -23
  8. package/dest/client/interface.d.ts +44 -11
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +34 -19
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +119 -59
  13. package/dest/config.d.ts +150 -107
  14. package/dest/config.d.ts.map +1 -1
  15. package/dest/config.js +77 -26
  16. package/dest/errors/reqresp.error.d.ts +9 -16
  17. package/dest/errors/reqresp.error.d.ts.map +1 -1
  18. package/dest/errors/reqresp.error.js +10 -17
  19. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +98 -56
  20. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  21. package/dest/mem_pools/attestation_pool/attestation_pool.js +270 -198
  22. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  23. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  24. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +218 -59
  25. package/dest/mem_pools/attestation_pool/mocks.d.ts +1 -1
  26. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  27. package/dest/mem_pools/attestation_pool/mocks.js +6 -4
  28. package/dest/mem_pools/instrumentation.d.ts +9 -4
  29. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  30. package/dest/mem_pools/instrumentation.js +28 -9
  31. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +10 -5
  32. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -1
  33. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +29 -20
  34. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +3 -3
  35. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -1
  36. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +6 -6
  37. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  38. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  39. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +3 -3
  40. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
  41. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  42. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +3 -1
  43. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -1
  44. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  45. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -0
  46. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  47. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  48. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +64 -0
  49. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +1 -1
  50. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +3 -4
  52. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +1 -1
  53. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -1
  54. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +6 -7
  55. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +1 -1
  56. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  57. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +6 -5
  58. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +11 -1
  59. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -1
  60. package/dest/mem_pools/tx_pool_v2/instrumentation.js +24 -0
  61. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +33 -5
  62. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  63. package/dest/mem_pools/tx_pool_v2/interfaces.js +2 -1
  64. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +5 -2
  65. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  66. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +8 -5
  67. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +15 -1
  68. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  69. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +31 -0
  70. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +16 -3
  71. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  72. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +83 -32
  73. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +50 -6
  74. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  75. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +243 -127
  76. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +10 -3
  77. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  78. package/dest/msg_validators/attestation_validator/attestation_validator.js +38 -16
  79. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +7 -3
  80. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  81. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +4 -5
  82. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +8 -3
  83. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  84. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +2 -2
  85. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +8 -3
  86. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  87. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +8 -2
  88. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +25 -3
  89. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  90. package/dest/msg_validators/proposal_validator/proposal_validator.js +85 -15
  91. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  92. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  93. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +8 -15
  94. package/dest/msg_validators/tx_validator/allowed_public_setup.js +3 -3
  95. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  96. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  97. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  98. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  99. package/dest/msg_validators/tx_validator/data_validator.d.ts +2 -1
  100. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  101. package/dest/msg_validators/tx_validator/data_validator.js +1 -0
  102. package/dest/msg_validators/tx_validator/factory.d.ts +14 -15
  103. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  104. package/dest/msg_validators/tx_validator/factory.js +29 -16
  105. package/dest/msg_validators/tx_validator/gas_validator.d.ts +47 -10
  106. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  107. package/dest/msg_validators/tx_validator/gas_validator.js +65 -48
  108. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  109. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  110. package/dest/msg_validators/tx_validator/index.js +2 -0
  111. package/dest/msg_validators/tx_validator/phases_validator.js +2 -2
  112. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +2 -1
  113. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  114. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -0
  115. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  116. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  117. package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
  118. package/dest/services/data_store.d.ts +1 -1
  119. package/dest/services/data_store.d.ts.map +1 -1
  120. package/dest/services/data_store.js +5 -5
  121. package/dest/services/discv5/discV5_service.d.ts +13 -2
  122. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  123. package/dest/services/discv5/discV5_service.js +119 -23
  124. package/dest/services/discv5/persisted_enr_store.d.ts +38 -0
  125. package/dest/services/discv5/persisted_enr_store.d.ts.map +1 -0
  126. package/dest/services/discv5/persisted_enr_store.js +145 -0
  127. package/dest/services/dummy_service.d.ts +18 -18
  128. package/dest/services/dummy_service.d.ts.map +1 -1
  129. package/dest/services/dummy_service.js +19 -18
  130. package/dest/services/encoding.d.ts +19 -6
  131. package/dest/services/encoding.d.ts.map +1 -1
  132. package/dest/services/encoding.js +25 -15
  133. package/dest/services/gossipsub/topic_score_params.d.ts +6 -12
  134. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  135. package/dest/services/gossipsub/topic_score_params.js +4 -14
  136. package/dest/services/libp2p/instrumentation.d.ts +6 -1
  137. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  138. package/dest/services/libp2p/instrumentation.js +21 -0
  139. package/dest/services/libp2p/libp2p_service.d.ts +40 -43
  140. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  141. package/dest/services/libp2p/libp2p_service.js +370 -276
  142. package/dest/services/peer-manager/peer_manager.d.ts +26 -2
  143. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  144. package/dest/services/peer-manager/peer_manager.js +103 -17
  145. package/dest/services/peer-manager/peer_scoring.d.ts +30 -1
  146. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  147. package/dest/services/peer-manager/peer_scoring.js +74 -3
  148. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +1 -8
  149. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  150. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +35 -44
  151. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +8 -5
  152. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  153. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +5 -14
  154. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -1
  155. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +6 -20
  156. package/dest/services/reqresp/config.d.ts +15 -3
  157. package/dest/services/reqresp/config.d.ts.map +1 -1
  158. package/dest/services/reqresp/config.js +11 -0
  159. package/dest/services/reqresp/interface.d.ts +16 -18
  160. package/dest/services/reqresp/interface.d.ts.map +1 -1
  161. package/dest/services/reqresp/interface.js +10 -20
  162. package/dest/services/reqresp/metrics.d.ts +1 -1
  163. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  164. package/dest/services/reqresp/metrics.js +0 -1
  165. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +4 -3
  166. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  167. package/dest/services/reqresp/protocols/block_txs/bitvector.js +3 -2
  168. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  169. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  170. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +31 -28
  171. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +12 -7
  172. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  173. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +42 -24
  174. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  175. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  176. package/dest/services/reqresp/protocols/index.js +0 -1
  177. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  178. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  179. package/dest/services/reqresp/protocols/tx.js +1 -3
  180. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  181. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  182. package/dest/services/reqresp/rate-limiter/rate_limits.js +3 -13
  183. package/dest/services/reqresp/reqresp.d.ts +7 -29
  184. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  185. package/dest/services/reqresp/reqresp.js +59 -209
  186. package/dest/services/service.d.ts +41 -19
  187. package/dest/services/service.d.ts.map +1 -1
  188. package/dest/services/tx_collection/config.d.ts +2 -23
  189. package/dest/services/tx_collection/config.d.ts.map +1 -1
  190. package/dest/services/tx_collection/config.js +2 -55
  191. package/dest/services/tx_collection/file_store_tx_collection.d.ts +12 -28
  192. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -1
  193. package/dest/services/tx_collection/file_store_tx_collection.js +43 -83
  194. package/dest/services/tx_collection/index.d.ts +2 -3
  195. package/dest/services/tx_collection/index.d.ts.map +1 -1
  196. package/dest/services/tx_collection/index.js +0 -1
  197. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  198. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  199. package/dest/services/tx_collection/instrumentation.js +0 -2
  200. package/dest/services/tx_collection/tx_collection.d.ts +35 -51
  201. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  202. package/dest/services/tx_collection/tx_collection.js +275 -119
  203. package/dest/services/tx_collection/tx_collection_sink.d.ts +1 -1
  204. package/dest/services/tx_collection/tx_collection_sink.js +2 -2
  205. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  206. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  207. package/dest/services/tx_collection/tx_source.js +4 -1
  208. package/dest/services/tx_file_store/tx_file_store.d.ts +1 -3
  209. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
  210. package/dest/services/tx_file_store/tx_file_store.js +4 -14
  211. package/dest/services/tx_provider.d.ts +3 -1
  212. package/dest/services/tx_provider.d.ts.map +1 -1
  213. package/dest/services/tx_provider.js +3 -0
  214. package/dest/test-helpers/make-test-p2p-clients.d.ts +1 -1
  215. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  216. package/dest/test-helpers/make-test-p2p-clients.js +5 -2
  217. package/dest/test-helpers/mock-pubsub.d.ts +33 -9
  218. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  219. package/dest/test-helpers/mock-pubsub.js +57 -44
  220. package/dest/test-helpers/reqresp-nodes.d.ts +4 -5
  221. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  222. package/dest/test-helpers/reqresp-nodes.js +16 -18
  223. package/dest/test-helpers/test_tx_provider.d.ts +3 -1
  224. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -1
  225. package/dest/test-helpers/test_tx_provider.js +3 -0
  226. package/dest/test-helpers/testbench-utils.d.ts +15 -14
  227. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  228. package/dest/test-helpers/testbench-utils.js +28 -13
  229. package/dest/testbench/p2p_client_testbench_worker.d.ts +3 -5
  230. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  231. package/dest/testbench/p2p_client_testbench_worker.js +60 -27
  232. package/dest/testbench/worker_client_manager.d.ts +10 -6
  233. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  234. package/dest/testbench/worker_client_manager.js +51 -8
  235. package/dest/util.d.ts +11 -6
  236. package/dest/util.d.ts.map +1 -1
  237. package/dest/util.js +35 -14
  238. package/dest/versioning.d.ts +3 -6
  239. package/dest/versioning.d.ts.map +1 -1
  240. package/dest/versioning.js +3 -24
  241. package/package.json +17 -17
  242. package/src/bootstrap/bootstrap.ts +17 -3
  243. package/src/client/factory.ts +48 -24
  244. package/src/client/interface.ts +39 -17
  245. package/src/client/p2p_client.ts +135 -92
  246. package/src/client/test/{tx_proposal_collector/README.md → p2p_client.batch_tx_requester.bench.README.md} +23 -53
  247. package/src/config.ts +159 -34
  248. package/src/errors/reqresp.error.ts +13 -19
  249. package/src/mem_pools/attestation_pool/attestation_pool.ts +325 -242
  250. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +238 -63
  251. package/src/mem_pools/attestation_pool/mocks.ts +13 -8
  252. package/src/mem_pools/instrumentation.ts +18 -12
  253. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +30 -20
  254. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +7 -7
  255. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +2 -4
  256. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -2
  257. package/src/mem_pools/tx_pool_v2/eviction/index.ts +1 -0
  258. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +67 -0
  259. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +1 -3
  260. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +5 -7
  261. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +5 -6
  262. package/src/mem_pools/tx_pool_v2/instrumentation.ts +27 -0
  263. package/src/mem_pools/tx_pool_v2/interfaces.ts +31 -4
  264. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +13 -7
  265. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +35 -0
  266. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +94 -31
  267. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +270 -133
  268. package/src/msg_validators/attestation_validator/attestation_validator.ts +46 -15
  269. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +15 -7
  270. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +15 -3
  271. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +26 -3
  272. package/src/msg_validators/proposal_validator/proposal_validator.ts +94 -12
  273. package/src/msg_validators/tx_validator/README.md +13 -3
  274. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -12
  275. package/src/msg_validators/tx_validator/allowed_public_setup.ts +3 -3
  276. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  277. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  278. package/src/msg_validators/tx_validator/data_validator.ts +2 -0
  279. package/src/msg_validators/tx_validator/factory.ts +37 -20
  280. package/src/msg_validators/tx_validator/gas_validator.ts +99 -54
  281. package/src/msg_validators/tx_validator/index.ts +2 -0
  282. package/src/msg_validators/tx_validator/phases_validator.ts +2 -2
  283. package/src/msg_validators/tx_validator/tx_proof_validator.ts +2 -0
  284. package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
  285. package/src/services/data_store.ts +5 -13
  286. package/src/services/discv5/discV5_service.ts +126 -14
  287. package/src/services/discv5/persisted_enr_store.ts +158 -0
  288. package/src/services/dummy_service.ts +25 -44
  289. package/src/services/encoding.ts +28 -20
  290. package/src/services/gossipsub/README.md +33 -11
  291. package/src/services/gossipsub/topic_score_params.ts +9 -18
  292. package/src/services/libp2p/instrumentation.ts +22 -0
  293. package/src/services/libp2p/libp2p_service.ts +433 -302
  294. package/src/services/peer-manager/peer_manager.ts +112 -16
  295. package/src/services/peer-manager/peer_scoring.ts +81 -3
  296. package/src/services/reqresp/README.md +2 -37
  297. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +39 -52
  298. package/src/services/reqresp/batch-tx-requester/interface.ts +11 -4
  299. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +12 -25
  300. package/src/services/reqresp/config.ts +19 -2
  301. package/src/services/reqresp/interface.ts +21 -47
  302. package/src/services/reqresp/metrics.ts +0 -1
  303. package/src/services/reqresp/protocols/block_txs/bitvector.ts +3 -2
  304. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +34 -30
  305. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +47 -20
  306. package/src/services/reqresp/protocols/index.ts +0 -1
  307. package/src/services/reqresp/protocols/tx.ts +1 -3
  308. package/src/services/reqresp/rate-limiter/rate_limits.ts +3 -13
  309. package/src/services/reqresp/reqresp.ts +69 -252
  310. package/src/services/service.ts +48 -37
  311. package/src/services/tx_collection/config.ts +3 -80
  312. package/src/services/tx_collection/file_store_tx_collection.ts +54 -103
  313. package/src/services/tx_collection/index.ts +1 -6
  314. package/src/services/tx_collection/instrumentation.ts +1 -7
  315. package/src/services/tx_collection/tx_collection.ts +330 -173
  316. package/src/services/tx_collection/tx_collection_sink.ts +2 -2
  317. package/src/services/tx_collection/tx_source.ts +2 -1
  318. package/src/services/tx_file_store/tx_file_store.ts +5 -17
  319. package/src/services/tx_provider.ts +5 -0
  320. package/src/test-helpers/make-test-p2p-clients.ts +3 -0
  321. package/src/test-helpers/mock-pubsub.ts +61 -60
  322. package/src/test-helpers/reqresp-nodes.ts +12 -22
  323. package/src/test-helpers/test_tx_provider.ts +5 -0
  324. package/src/test-helpers/testbench-utils.ts +35 -26
  325. package/src/testbench/p2p_client_testbench_worker.ts +68 -44
  326. package/src/testbench/worker_client_manager.ts +59 -19
  327. package/src/util.ts +32 -17
  328. package/src/versioning.ts +3 -33
  329. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +0 -2
  330. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +0 -1
  331. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +0 -315
  332. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +0 -73
  333. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +0 -1
  334. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +0 -8
  335. package/dest/msg_validators/clock_tolerance.d.ts +0 -21
  336. package/dest/msg_validators/clock_tolerance.d.ts.map +0 -1
  337. package/dest/msg_validators/clock_tolerance.js +0 -38
  338. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -64
  339. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  340. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -151
  341. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  342. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  343. package/dest/services/reqresp/protocols/block.js +0 -32
  344. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -51
  345. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  346. package/dest/services/tx_collection/fast_tx_collection.js +0 -311
  347. package/dest/services/tx_collection/proposal_tx_collector.d.ts +0 -48
  348. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +0 -1
  349. package/dest/services/tx_collection/proposal_tx_collector.js +0 -50
  350. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -57
  351. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  352. package/dest/services/tx_collection/slow_tx_collection.js +0 -211
  353. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +0 -355
  354. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +0 -43
  355. package/src/msg_validators/clock_tolerance.ts +0 -52
  356. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -161
  357. package/src/services/reqresp/protocols/block.ts +0 -37
  358. package/src/services/tx_collection/fast_tx_collection.ts +0 -361
  359. package/src/services/tx_collection/proposal_tx_collector.ts +0 -108
  360. package/src/services/tx_collection/slow_tx_collection.ts +0 -266
package/dest/config.d.ts CHANGED
@@ -8,21 +8,15 @@ import { type TxFileStoreConfig } from './services/tx_file_store/config.js';
8
8
  /**
9
9
  * P2P client configuration values.
10
10
  */
11
- export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, ChainConfig, TxCollectionConfig, TxFileStoreConfig, Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'> {
11
+ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, ChainConfig, TxCollectionConfig, TxFileStoreConfig, Pick<SequencerConfig, 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock' | 'checkpointProposalSyncGraceSeconds' | 'maxBlocksPerCheckpoint'>, Required<Pick<SequencerConfig, 'blockDurationMs'>> {
12
12
  /** Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set. */
13
13
  validateMaxTxsPerBlock?: number;
14
14
  /** Maximum transactions per checkpoint for validation. Used as fallback for maxTxsPerBlock when that is not set. */
15
15
  validateMaxTxsPerCheckpoint?: number;
16
- /** Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected. */
17
- validateMaxL2BlockGas?: number;
18
- /** Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected. */
19
- validateMaxDABlockGas?: number;
20
16
  /** A flag dictating whether the P2P subsystem should be enabled. */
21
17
  p2pEnabled: boolean;
22
18
  /** The frequency in which to check for new L2 blocks. */
23
19
  blockCheckIntervalMS: number;
24
- /** The frequency in which to check for new L2 slots. */
25
- slotCheckIntervalMS: number;
26
20
  /** The number of blocks to fetch in a single batch. */
27
21
  blockRequestBatchSize: number;
28
22
  /** DEBUG: Disable colocation penalty - for testing purposes only */
@@ -53,8 +47,18 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
53
47
  bootstrapNodesAsFullPeers: boolean;
54
48
  /** The maximum number of peers (a peer count above this will cause the node to refuse connection attempts) */
55
49
  maxPeerCount: number;
50
+ /**
51
+ * Minimum number of connected peers for the p2p component to report itself as healthy on the node status endpoint.
52
+ * Defaults to zero, so p2p health is reported but never fails the check: the first node of a fresh network
53
+ * legitimately runs with no peers, and failing readiness by default would prevent bootstrapping the network.
54
+ */
55
+ p2pHealthMinPeers: number;
56
56
  /** If announceUdpAddress or announceTcpAddress are not provided, query for the IP address of the machine. Default is false. */
57
57
  queryForIp: boolean;
58
+ /**
59
+ * HTTPS URLs that return plain-text public IPv4, tried in order when resolving the announce IP (e.g. when `queryForIp` is true and `p2pIp` is unset).
60
+ */
61
+ publicIpServices: string[];
58
62
  /** The interval of the gossipsub heartbeat to perform maintenance tasks. */
59
63
  gossipsubInterval: number;
60
64
  /** The D parameter for the gossipsub protocol. */
@@ -73,6 +77,12 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
73
77
  gossipsubMcacheGossip: number;
74
78
  /** How long to keep message IDs in the seen cache (ms). */
75
79
  gossipsubSeenTTL: number;
80
+ /**
81
+ * Maximum clock-disparity tolerance (ms) applied to proposal/attestation gossip receive windows. Both
82
+ * ends of each acceptance window are widened by this much so peers are not penalized for messages valid
83
+ * when sent but arriving slightly early or late due to clock skew (Ethereum's MAXIMUM_GOSSIP_CLOCK_DISPARITY).
84
+ */
85
+ maxGossipClockDisparityMs: number;
76
86
  /** The 'age' (in # of L2 blocks) of a processed tx after which we heavily penalize a peer for re-sending it. */
77
87
  doubleSpendSeverePeerPenaltyWindow: number;
78
88
  /** The weight of the tx topic for the gossipsub protocol. This determines how much the score for this specific topic contributes to the overall peer score. */
@@ -83,6 +93,8 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
83
93
  gossipsubTxInvalidMessageDeliveriesDecay: number;
84
94
  /** The values for the peer scoring system. Passed as a comma separated list of values in order: low, mid, high tolerance errors. */
85
95
  peerPenaltyValues: number[];
96
+ /** How long (in seconds) a peer is banned for once its score drops below the ban threshold. */
97
+ peerBanDurationSeconds: number;
86
98
  /** Limit of transactions to archive in the tx pool. Once the archived tx limit is reached, the oldest archived txs will be purged. */
87
99
  archivedTxLimit: number;
88
100
  /** A list of trusted peers. */
@@ -99,6 +111,8 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
99
111
  maxPendingTxCount: number;
100
112
  /** The node's seen message ID cache size */
101
113
  seenMessageCacheSize: number;
114
+ /** Maximum number of (validator, tx) pairs to keep in the tx validation LRU cache. */
115
+ txValidationCacheSize: number;
102
116
  /** True to disable the status handshake on peer connected. */
103
117
  p2pDisableStatusHandshake?: boolean;
104
118
  /** True to only permit validators to connect */
@@ -121,10 +135,39 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
121
135
  broadcastEquivocatedProposals?: boolean;
122
136
  /** Minimum age (ms) a transaction must have been in the pool before it's eligible for block building. */
123
137
  minTxPoolAgeMs: number;
138
+ /**
139
+ * Number of full L2 slots to wait after a checkpoint's slot before declaring its txs missing
140
+ * for data-withholding slashing.
141
+ */
142
+ slashDataWithholdingToleranceSlots: number;
143
+ /**
144
+ * Number of L2 slots after a mined block's slot to keep collecting its missing txs. Clamped
145
+ * up so that collection always runs at least until the data-withholding slash verdict is
146
+ * rendered (`block.slot + slashDataWithholdingToleranceSlots + 1`). Defaults to undefined,
147
+ * in which case the tolerance window is used directly.
148
+ */
149
+ p2pMissingTxCollectionDeadlineSlots?: number;
124
150
  /** Minimum percentage fee increase required to replace an existing tx via RPC (0 = no bump). */
125
151
  priceBumpPercentage: bigint;
152
+ /**
153
+ * Number of slots behind the finalized tip to keep finalized txs for before deleting them. 0 deletes
154
+ * at the finalized tip (default).
155
+ */
156
+ keepFinalizedTxsForSlots: number;
157
+ /** Drop incoming block and checkpoint proposals at the libp2p dispatch layer (for testing only) */
158
+ skipIncomingProposals?: boolean;
159
+ /** Accept proposal gossip regardless of slot timing (for testing only). */
160
+ skipProposalSlotValidation?: boolean;
161
+ /**
162
+ * Whether this node skips checkpoint proposal validation and always attests. When set, the checkpoint
163
+ * attestation is created and broadcast before the embedded last block is processed, so it is not delayed
164
+ * past the slot's attestation window by that block's re-execution. Mirrors the validator config flag.
165
+ */
166
+ skipCheckpointProposalValidation?: boolean;
126
167
  }
127
168
  export declare const DEFAULT_P2P_PORT = 40400;
169
+ /** Default endpoints used to discover this machine's public IPv4 when `queryForIp` is enabled. */
170
+ export declare const DEFAULT_PUBLIC_IP_SERVICES: string[];
128
171
  export declare const p2pConfigMappings: ConfigMappingsType<P2PConfig>;
129
172
  /**
130
173
  * Gets the config values for p2p client from environment variables.
@@ -135,106 +178,106 @@ export declare function getP2PDefaultConfig(): P2PConfig;
135
178
  /**
136
179
  * Required P2P config values for a bootstrap node.
137
180
  */
138
- export type BootnodeConfig = Pick<P2PConfig, 'p2pIp' | 'p2pPort' | 'p2pBroadcastPort' | 'peerIdPrivateKey' | 'peerIdPrivateKeyPath' | 'bootstrapNodes' | 'listenAddress' | 'queryForIp'> & Required<Pick<P2PConfig, 'p2pIp' | 'p2pPort'>> & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'> & Pick<ChainConfig, 'l1ChainId'>;
181
+ export type BootnodeConfig = Pick<P2PConfig, 'p2pIp' | 'p2pPort' | 'p2pBroadcastPort' | 'peerIdPrivateKey' | 'peerIdPrivateKeyPath' | 'bootstrapNodes' | 'listenAddress' | 'queryForIp' | 'publicIpServices'> & Required<Pick<P2PConfig, 'p2pIp' | 'p2pPort'>> & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'> & Pick<ChainConfig, 'l1ChainId'>;
139
182
  export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
140
- archivedTxLimit: unknown;
141
- batchTxRequesterBadPeerThreshold: unknown;
142
- batchTxRequesterDumbParallelWorkerCount: unknown;
143
- batchTxRequesterSmartParallelWorkerCount: unknown;
144
- batchTxRequesterTxBatchSize: unknown;
145
- blockCheckIntervalMS: unknown;
146
- blockDurationMs: unknown;
147
- blockRequestBatchSize: unknown;
148
- bootstrapNodeEnrVersionCheck: unknown;
149
- bootstrapNodes: unknown;
150
- bootstrapNodesAsFullPeers: unknown;
151
- broadcastEquivocatedProposals: unknown;
152
- dataDirectory: unknown;
153
- dataStoreMapSizeKb: unknown;
154
- debugDisableColocationPenalty: unknown;
155
- debugP2PInstrumentMessages: unknown;
156
- dialTimeoutMs: unknown;
157
- disableTransactions: unknown;
158
- doubleSpendSeverePeerPenaltyWindow: unknown;
159
- dropTransactionsProbability: unknown;
160
- expectedBlockProposalsPerSlot: unknown;
161
- fishermanMode: unknown;
162
- gossipsubD: unknown;
163
- gossipsubDLazy: unknown;
164
- gossipsubDhi: unknown;
165
- gossipsubDlo: unknown;
166
- gossipsubFloodPublish: unknown;
167
- gossipsubInterval: unknown;
168
- gossipsubMcacheGossip: unknown;
169
- gossipsubMcacheLength: unknown;
170
- gossipsubSeenTTL: unknown;
171
- gossipsubTxInvalidMessageDeliveriesDecay: unknown;
172
- gossipsubTxInvalidMessageDeliveriesWeight: unknown;
173
- gossipsubTxTopicWeight: unknown;
174
- individualRequestTimeoutMs: unknown;
175
- l1ChainId: unknown;
176
- l1Contracts: unknown;
177
- l2QueueSize: unknown;
178
- listenAddress: unknown;
179
- maxPeerCount: unknown;
180
- maxPendingTxCount: unknown;
181
- maxTxsPerBlock: unknown;
182
- minTxPoolAgeMs: unknown;
183
- overallRequestTimeoutMs: unknown;
184
- p2pAllowOnlyValidators: unknown;
185
- p2pBroadcastPort: unknown;
186
- p2pDisableStatusHandshake: unknown;
187
- p2pDiscoveryDisabled: unknown;
188
- p2pEnabled: unknown;
189
- p2pIp: unknown;
190
- p2pMaxFailedAuthAttemptsAllowed: unknown;
191
- p2pOptimisticNegotiation: unknown;
192
- p2pPort: unknown;
193
- p2pStoreMapSizeKb: unknown;
194
- peerCheckIntervalMS: unknown;
195
- peerFailedBanTimeMs: unknown;
196
- peerIdPrivateKey: unknown;
197
- peerIdPrivateKeyPath: unknown;
198
- peerPenaltyValues: unknown;
199
- preferredPeers: unknown;
200
- priceBumpPercentage: unknown;
201
- privatePeers: unknown;
202
- queryForIp: unknown;
203
- rollupVersion: unknown;
204
- seenMessageCacheSize: unknown;
205
- slotCheckIntervalMS: unknown;
206
- trustedPeers: unknown;
207
- txCollectionDisableSlowDuringFastRequests: unknown;
208
- txCollectionFastMaxParallelRequestsPerNode: unknown;
209
- txCollectionFastNodeIntervalMs: unknown;
210
- txCollectionFastNodesTimeoutBeforeReqRespMs: unknown;
211
- txCollectionFileStoreFastBackoffBaseMs: unknown;
212
- txCollectionFileStoreFastBackoffMaxMs: unknown;
213
- txCollectionFileStoreFastDelayMs: unknown;
214
- txCollectionFileStoreFastWorkerCount: unknown;
215
- txCollectionFileStoreSlowBackoffBaseMs: unknown;
216
- txCollectionFileStoreSlowBackoffMaxMs: unknown;
217
- txCollectionFileStoreSlowDelayMs: unknown;
218
- txCollectionFileStoreSlowWorkerCount: unknown;
219
- txCollectionFileStoreUrls: unknown;
220
- txCollectionMissingTxsCollectorType: unknown;
221
- txCollectionNodeRpcMaxBatchSize: unknown;
222
- txCollectionNodeRpcUrls: unknown;
223
- txCollectionReconcileIntervalMs: unknown;
224
- txCollectionSlowNodesIntervalMs: unknown;
225
- txCollectionSlowReqRespIntervalMs: unknown;
226
- txCollectionSlowReqRespTimeoutMs: unknown;
227
- txFileStoreEnabled: unknown;
228
- txFileStoreMaxQueueSize: unknown;
229
- txFileStoreUploadConcurrency: unknown;
230
- txFileStoreUrl: unknown;
231
- txPoolDeleteTxsAfterReorg: unknown;
232
- txPublicSetupAllowListExtend: unknown;
233
- validateMaxDABlockGas: unknown;
234
- validateMaxL2BlockGas: unknown;
235
- validateMaxTxsPerBlock: unknown;
236
- validateMaxTxsPerCheckpoint: unknown;
237
- }, "bootstrapNodes" | "dataDirectory" | "dataStoreMapSizeKb" | "l1ChainId" | "listenAddress" | "p2pBroadcastPort" | "p2pIp" | "p2pPort" | "peerIdPrivateKey" | "peerIdPrivateKeyPath" | "queryForIp">>;
183
+ maxTxsPerBlock: number;
184
+ maxBlocksPerCheckpoint: number;
185
+ blockDurationMs: number;
186
+ checkpointProposalSyncGraceSeconds: number;
187
+ expectedBlockProposalsPerSlot: number;
188
+ l1ChainId: number;
189
+ rollupVersion: number;
190
+ dataDirectory: string;
191
+ dataStoreMapSizeKb: number;
192
+ batchTxRequesterSmartParallelWorkerCount: number;
193
+ batchTxRequesterDumbParallelWorkerCount: number;
194
+ batchTxRequesterTxBatchSize: number;
195
+ batchTxRequesterBadPeerThreshold: number;
196
+ overallRequestTimeoutMs: number;
197
+ individualRequestTimeoutMs: number;
198
+ p2pOptimisticNegotiation: boolean;
199
+ dialTimeoutMs: number;
200
+ txCollectionFastNodesTimeoutBeforeReqRespMs: number;
201
+ txCollectionFastNodeIntervalMs: number;
202
+ txCollectionNodeRpcUrls: string[];
203
+ txCollectionFastMaxParallelRequestsPerNode: number;
204
+ txCollectionNodeRpcMaxBatchSize: number;
205
+ txCollectionFileStoreUrls: string[];
206
+ txCollectionFileStoreFastDelayMs: number;
207
+ txCollectionFileStoreFastWorkerCount: number;
208
+ txCollectionFileStoreFastBackoffBaseMs: number;
209
+ txCollectionFileStoreFastBackoffMaxMs: number;
210
+ txFileStoreUrl: string;
211
+ txFileStoreUploadConcurrency: number;
212
+ txFileStoreMaxQueueSize: number;
213
+ txFileStoreEnabled: boolean;
214
+ validateMaxTxsPerBlock: number;
215
+ validateMaxTxsPerCheckpoint: number;
216
+ p2pEnabled: boolean;
217
+ blockCheckIntervalMS: number;
218
+ blockRequestBatchSize: number;
219
+ debugDisableColocationPenalty: boolean;
220
+ peerCheckIntervalMS: number;
221
+ peerFailedBanTimeMs: number;
222
+ l2QueueSize: number;
223
+ p2pPort: number;
224
+ p2pBroadcastPort: number;
225
+ p2pIp: string;
226
+ listenAddress: string;
227
+ peerIdPrivateKey: SecretValue<string>;
228
+ peerIdPrivateKeyPath: string;
229
+ bootstrapNodes: string[];
230
+ bootstrapNodeEnrVersionCheck: boolean;
231
+ bootstrapNodesAsFullPeers: boolean;
232
+ maxPeerCount: number;
233
+ p2pHealthMinPeers: number;
234
+ queryForIp: boolean;
235
+ publicIpServices: string[];
236
+ gossipsubInterval: number;
237
+ gossipsubD: number;
238
+ gossipsubDlo: number;
239
+ gossipsubDhi: number;
240
+ gossipsubDLazy: number;
241
+ gossipsubFloodPublish: boolean;
242
+ gossipsubMcacheLength: number;
243
+ gossipsubMcacheGossip: number;
244
+ gossipsubSeenTTL: number;
245
+ maxGossipClockDisparityMs: number;
246
+ doubleSpendSeverePeerPenaltyWindow: number;
247
+ gossipsubTxTopicWeight: number;
248
+ gossipsubTxInvalidMessageDeliveriesWeight: number;
249
+ gossipsubTxInvalidMessageDeliveriesDecay: number;
250
+ peerPenaltyValues: number[];
251
+ peerBanDurationSeconds: number;
252
+ archivedTxLimit: number;
253
+ trustedPeers: string[];
254
+ privatePeers: string[];
255
+ preferredPeers: string[];
256
+ p2pStoreMapSizeKb: number;
257
+ txPublicSetupAllowListExtend: AllowedElement[];
258
+ maxPendingTxCount: number;
259
+ seenMessageCacheSize: number;
260
+ txValidationCacheSize: number;
261
+ p2pDisableStatusHandshake: boolean;
262
+ p2pAllowOnlyValidators: boolean;
263
+ p2pDiscoveryDisabled: boolean;
264
+ p2pMaxFailedAuthAttemptsAllowed: number;
265
+ disableTransactions: boolean;
266
+ dropTransactionsProbability: number;
267
+ txPoolDeleteTxsAfterReorg: boolean;
268
+ debugP2PInstrumentMessages: boolean;
269
+ fishermanMode: boolean;
270
+ broadcastEquivocatedProposals: boolean;
271
+ minTxPoolAgeMs: number;
272
+ slashDataWithholdingToleranceSlots: number;
273
+ p2pMissingTxCollectionDeadlineSlots: number;
274
+ priceBumpPercentage: bigint;
275
+ keepFinalizedTxsForSlots: number;
276
+ skipIncomingProposals: boolean;
277
+ skipProposalSlotValidation: boolean;
278
+ skipCheckpointProposalValidation: boolean;
279
+ rollupAddress: import("@aztec/foundation/eth-address").EthAddress;
280
+ }, "bootstrapNodes" | "dataDirectory" | "dataStoreMapSizeKb" | "l1ChainId" | "listenAddress" | "p2pBroadcastPort" | "p2pIp" | "p2pPort" | "peerIdPrivateKey" | "peerIdPrivateKeyPath" | "publicIpServices" | "queryForIp">>;
238
281
  /**
239
282
  * Parses a string to a list of allowed elements.
240
283
  * Each entry is expected to be of one of the following formats:
@@ -249,4 +292,4 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
249
292
  * @returns A list of allowed elements
250
293
  */
251
294
  export declare function parseAllowList(value: string): AllowedElement[];
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBQ25CLEtBQUssV0FBVyxFQUNoQixLQUFLLGVBQWUsRUFHckIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFFbEYsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQTRCLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQThCLE1BQU0sb0NBQW9DLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQTZCLE1BQU0sb0NBQW9DLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsU0FDZixTQUFRLGdCQUFnQixFQUN0QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsR0FBRywrQkFBK0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMvRiw4R0FBOEc7SUFDOUcsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFaEMsb0hBQW9IO0lBQ3BILDJCQUEyQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRXJDLGdHQUFnRztJQUNoRyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUUvQixnR0FBZ0c7SUFDaEcscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFL0Isb0VBQW9FO0lBQ3BFLFVBQVUsRUFBRSxPQUFPLENBQUM7SUFFcEIseURBQXlEO0lBQ3pELG9CQUFv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
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBV1osTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBQ25CLEtBQUssV0FBVyxFQUNoQixLQUFLLGVBQWUsRUFHckIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFFbEYsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQTRCLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQThCLE1BQU0sb0NBQW9DLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQTZCLE1BQU0sb0NBQW9DLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsU0FDZixTQUFRLGdCQUFnQixFQUN0QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsSUFBSSxDQUNGLGVBQWUsRUFDYiwrQkFBK0IsR0FDL0IsZ0JBQWdCLEdBQ2hCLG9DQUFvQyxHQUNwQyx3QkFBd0IsQ0FDM0IsRUFHRCxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BELDhHQUE4RztJQUM5RyxzQkFBc0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUVoQyxvSEFBb0g7SUFDcEgsMkJBQTJCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFckMsb0VBQW9FO0lBQ3BFLFVBQVUsRUFBRSxPQUFPLENBQUM7SUFFcEIseURBQXlEO0lBQ3pELG9CQUFvQixFQUFFLE1BQU0sQ0FBQztJQUU3Qix1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
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dest/config.js CHANGED
@@ -1,4 +1,4 @@
1
- import { bigintConfigHelper, booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, percentageConfigHelper, pickConfigMappings, secretStringConfigHelper } from '@aztec/foundation/config';
1
+ import { bigintConfigHelper, booleanConfigHelper, floatConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, optionalNumberConfigHelper, percentageConfigHelper, pickConfigMappings, secretStringConfigHelper } from '@aztec/foundation/config';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { FunctionSelector } from '@aztec/stdlib/abi/function-selector';
4
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
@@ -9,26 +9,22 @@ import { p2pReqRespConfigMappings } from './services/reqresp/config.js';
9
9
  import { txCollectionConfigMappings } from './services/tx_collection/config.js';
10
10
  import { txFileStoreConfigMappings } from './services/tx_file_store/config.js';
11
11
  export const DEFAULT_P2P_PORT = 40400;
12
+ /** Default endpoints used to discover this machine's public IPv4 when `queryForIp` is enabled. */ export const DEFAULT_PUBLIC_IP_SERVICES = [
13
+ 'https://api.ipify.org/',
14
+ 'https://checkip.amazonaws.com/',
15
+ 'https://ifconfig.me/ip',
16
+ 'https://icanhazip.com/'
17
+ ];
12
18
  export const p2pConfigMappings = {
13
19
  validateMaxTxsPerBlock: {
14
20
  env: 'VALIDATOR_MAX_TX_PER_BLOCK',
15
21
  description: 'Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set.',
16
- parseEnv: (val)=>val ? parseInt(val, 10) : undefined
22
+ ...optionalNumberConfigHelper()
17
23
  },
18
24
  validateMaxTxsPerCheckpoint: {
19
25
  env: 'VALIDATOR_MAX_TX_PER_CHECKPOINT',
20
26
  description: 'Maximum transactions per checkpoint for validation. Used as fallback for maxTxsPerBlock when that is not set.',
21
- parseEnv: (val)=>val ? parseInt(val, 10) : undefined
22
- },
23
- validateMaxL2BlockGas: {
24
- env: 'VALIDATOR_MAX_L2_BLOCK_GAS',
25
- description: 'Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected.',
26
- parseEnv: (val)=>val ? parseInt(val, 10) : undefined
27
- },
28
- validateMaxDABlockGas: {
29
- env: 'VALIDATOR_MAX_DA_BLOCK_GAS',
30
- description: 'Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected.',
31
- parseEnv: (val)=>val ? parseInt(val, 10) : undefined
27
+ ...optionalNumberConfigHelper()
32
28
  },
33
29
  p2pEnabled: {
34
30
  env: 'P2P_ENABLED',
@@ -45,11 +41,6 @@ export const p2pConfigMappings = {
45
41
  description: 'The frequency in which to check for new L2 blocks.',
46
42
  ...numberConfigHelper(100)
47
43
  },
48
- slotCheckIntervalMS: {
49
- env: 'P2P_SLOT_CHECK_INTERVAL_MS',
50
- description: 'The frequency in which to check for new L2 slots.',
51
- ...numberConfigHelper(1000)
52
- },
53
44
  debugDisableColocationPenalty: {
54
45
  env: 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY',
55
46
  description: 'DEBUG: Disable colocation penalty - NEVER set to true in production',
@@ -118,11 +109,22 @@ export const p2pConfigMappings = {
118
109
  description: 'The maximum number of peers to connect to.',
119
110
  ...numberConfigHelper(100)
120
111
  },
112
+ p2pHealthMinPeers: {
113
+ env: 'P2P_HEALTH_MIN_PEERS',
114
+ description: 'Minimum number of connected peers for p2p to be reported as healthy on the status endpoint. Zero never fails the check.',
115
+ ...numberConfigHelper(0)
116
+ },
121
117
  queryForIp: {
122
118
  env: 'P2P_QUERY_FOR_IP',
123
119
  description: 'If announceUdpAddress or announceTcpAddress are not provided, query for the IP address of the machine. Default is false.',
124
120
  ...booleanConfigHelper()
125
121
  },
122
+ publicIpServices: {
123
+ env: 'P2P_PUBLIC_IP_SERVICES',
124
+ parseEnv: (val)=>val.split(',').map((s)=>s.trim()).filter(Boolean),
125
+ description: 'Comma-separated HTTPS URLs that return plain-text public IPv4. Used when P2P_QUERY_FOR_IP is true and P2P_IP is unset. Tried in order until one succeeds.',
126
+ defaultValue: DEFAULT_PUBLIC_IP_SERVICES
127
+ },
126
128
  gossipsubInterval: {
127
129
  env: 'P2P_GOSSIPSUB_INTERVAL_MS',
128
130
  description: 'The interval of the gossipsub heartbeat to perform maintenance tasks.',
@@ -156,7 +158,7 @@ export const p2pConfigMappings = {
156
158
  gossipsubMcacheLength: {
157
159
  env: 'P2P_GOSSIPSUB_MCACHE_LENGTH',
158
160
  description: 'The number of gossipsub interval message cache windows to keep.',
159
- ...numberConfigHelper(6)
161
+ ...numberConfigHelper(12)
160
162
  },
161
163
  gossipsubMcacheGossip: {
162
164
  env: 'P2P_GOSSIPSUB_MCACHE_GOSSIP',
@@ -168,20 +170,25 @@ export const p2pConfigMappings = {
168
170
  description: 'How long to keep message IDs in the seen cache.',
169
171
  ...numberConfigHelper(20 * 60 * 1000)
170
172
  },
173
+ maxGossipClockDisparityMs: {
174
+ env: 'P2P_MAX_GOSSIP_CLOCK_DISPARITY_MS',
175
+ description: 'Maximum clock-disparity tolerance (ms) applied to both ends of proposal/attestation gossip receive windows.',
176
+ ...numberConfigHelper(500)
177
+ },
171
178
  gossipsubTxTopicWeight: {
172
179
  env: 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT',
173
180
  description: 'The weight of the tx topic for the gossipsub protocol.',
174
- ...numberConfigHelper(1)
181
+ ...floatConfigHelper(1)
175
182
  },
176
183
  gossipsubTxInvalidMessageDeliveriesWeight: {
177
184
  env: 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT',
178
185
  description: 'The weight of the tx invalid message deliveries for the gossipsub protocol.',
179
- ...numberConfigHelper(-20)
186
+ ...floatConfigHelper(-20)
180
187
  },
181
188
  gossipsubTxInvalidMessageDeliveriesDecay: {
182
189
  env: 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_DECAY',
183
190
  description: 'Determines how quickly the penalty for invalid message deliveries decays over time. Between 0 and 1.',
184
- ...numberConfigHelper(0.5)
191
+ ...floatConfigHelper(0.5)
185
192
  },
186
193
  peerPenaltyValues: {
187
194
  env: 'P2P_PEER_PENALTY_VALUES',
@@ -193,6 +200,11 @@ export const p2pConfigMappings = {
193
200
  50
194
201
  ]
195
202
  },
203
+ peerBanDurationSeconds: {
204
+ env: 'P2P_PEER_BAN_DURATION_SECONDS',
205
+ description: 'How long (in seconds) a peer is banned for once its score drops below the ban threshold.',
206
+ ...numberConfigHelper(24 * 60 * 60)
207
+ },
196
208
  doubleSpendSeverePeerPenaltyWindow: {
197
209
  env: 'P2P_DOUBLE_SPEND_SEVERE_PEER_PENALTY_WINDOW',
198
210
  description: 'The "age" (in L2 blocks) of a tx after which we heavily penalize a peer for sending it.',
@@ -228,7 +240,7 @@ export const p2pConfigMappings = {
228
240
  },
229
241
  p2pStoreMapSizeKb: {
230
242
  env: 'P2P_STORE_MAP_SIZE_KB',
231
- parseEnv: (val)=>val ? +val : undefined,
243
+ ...optionalNumberConfigHelper(),
232
244
  description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb.'
233
245
  },
234
246
  txPublicSetupAllowListExtend: {
@@ -249,6 +261,11 @@ export const p2pConfigMappings = {
249
261
  description: 'The number of messages to keep in the seen message cache',
250
262
  ...numberConfigHelper(100_000)
251
263
  },
264
+ txValidationCacheSize: {
265
+ env: 'P2P_TX_VALIDATION_CACHE_SIZE',
266
+ description: 'Maximum number of items to keep in the tx validation LRU cache.',
267
+ ...numberConfigHelper(5_000)
268
+ },
252
269
  p2pDisableStatusHandshake: {
253
270
  env: 'P2P_DISABLE_STATUS_HANDSHAKE',
254
271
  description: 'True to disable the status handshake on peer connected.',
@@ -293,17 +310,50 @@ export const p2pConfigMappings = {
293
310
  description: 'Broadcast block proposals even when a conflicting proposal for the same slot already exists in the pool (for testing purposes only).',
294
311
  ...booleanConfigHelper(false)
295
312
  },
313
+ skipIncomingProposals: {
314
+ description: 'Drop incoming block and checkpoint proposals at the libp2p dispatch layer (for testing only)',
315
+ ...booleanConfigHelper(false)
316
+ },
317
+ skipProposalSlotValidation: {
318
+ description: 'Accept proposal gossip regardless of slot timing (for testing only)',
319
+ ...booleanConfigHelper(false)
320
+ },
321
+ skipCheckpointProposalValidation: {
322
+ description: 'Skip checkpoint proposal validation and always attest, broadcasting the attestation before processing the embedded last block',
323
+ ...booleanConfigHelper(false)
324
+ },
296
325
  minTxPoolAgeMs: {
297
326
  env: 'P2P_MIN_TX_POOL_AGE_MS',
298
327
  description: 'Minimum age (ms) a transaction must have been in the pool before it is eligible for block building.',
299
328
  ...numberConfigHelper(2_000)
300
329
  },
330
+ slashDataWithholdingToleranceSlots: {
331
+ env: 'SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS',
332
+ description: 'L2 slots to wait after a checkpoint slot before declaring its txs missing. Drives both the data-withholding slasher check and the missing-tx collection deadline.',
333
+ ...numberConfigHelper(3)
334
+ },
335
+ p2pMissingTxCollectionDeadlineSlots: {
336
+ env: 'P2P_MISSING_TX_COLLECTION_DEADLINE_SLOTS',
337
+ description: 'Optional deadline (in L2 slots after the block slot) for collecting missing txs for unproven mined blocks. Clamped up to the data-withholding tolerance window so collection never gives up before the slash verdict.',
338
+ ...optionalNumberConfigHelper()
339
+ },
301
340
  priceBumpPercentage: {
302
341
  env: 'P2P_RPC_PRICE_BUMP_PERCENTAGE',
303
342
  description: 'Minimum percentage fee increase required to replace an existing tx via RPC. Even at 0%, replacement still requires paying at least 1 unit more.',
304
343
  ...bigintConfigHelper(10n)
305
344
  },
306
- ...sharedSequencerConfigMappings,
345
+ keepFinalizedTxsForSlots: {
346
+ env: 'P2P_KEEP_FINALIZED_TXS_FOR_SLOTS',
347
+ description: 'Number of slots behind the finalized tip to keep finalized txs for before deleting them. 0 deletes at the finalized tip.',
348
+ ...numberConfigHelper(0)
349
+ },
350
+ ...pickConfigMappings(sharedSequencerConfigMappings, [
351
+ 'expectedBlockProposalsPerSlot',
352
+ 'maxTxsPerBlock',
353
+ 'checkpointProposalSyncGraceSeconds',
354
+ 'maxBlocksPerCheckpoint',
355
+ 'blockDurationMs'
356
+ ]),
307
357
  ...p2pReqRespConfigMappings,
308
358
  ...batchTxRequesterConfigMappings,
309
359
  ...chainConfigMappings,
@@ -330,7 +380,8 @@ const bootnodeConfigKeys = [
330
380
  'dataStoreMapSizeKb',
331
381
  'bootstrapNodes',
332
382
  'l1ChainId',
333
- 'queryForIp'
383
+ 'queryForIp',
384
+ 'publicIpServices'
334
385
  ];
335
386
  export const bootnodeConfigMappings = pickConfigMappings({
336
387
  ...p2pConfigMappings,
@@ -389,7 +440,7 @@ export const bootnodeConfigMappings = pickConfigMappings({
389
440
  const flags = flagsString ? parseFlags(flagsString, trimmed) : {};
390
441
  if (typeString === 'I') {
391
442
  entries.push({
392
- address: AztecAddress.fromString(identifierString),
443
+ address: AztecAddress.fromStringUnsafe(identifierString),
393
444
  selector,
394
445
  ...flags
395
446
  });
@@ -6,23 +6,16 @@
6
6
  export declare class IndividualReqRespTimeoutError extends Error {
7
7
  constructor();
8
8
  }
9
- /** Collective request timeout error
9
+ /** Oversized reqresp request error
10
10
  *
11
- * This error will be thrown when a req resp request times out regardless of the peer.
11
+ * Thrown locally (before dialing) when a request payload does not fit in a single muxer frame. Such a request would
12
+ * reach the responder split across multiple chunks, which are never reassembled into one request.
12
13
  * @category Errors
13
14
  */
14
- export declare class CollectiveReqRespTimeoutError extends Error {
15
- constructor();
16
- }
17
- /** Invalid response error
18
- *
19
- * This error will be thrown when a response is received that is not valid.
20
- *
21
- * This error does not need to be punished as message validators will handle punishing invalid
22
- * requests
23
- * @category Errors
24
- */
25
- export declare class InvalidResponseError extends Error {
26
- constructor();
15
+ export declare class OversizedReqRespRequestError extends Error {
16
+ readonly subProtocol: string;
17
+ readonly payloadSizeBytes: number;
18
+ readonly maxSizeBytes: number;
19
+ constructor(subProtocol: string, payloadSizeBytes: number, maxSizeBytes: number);
27
20
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC5lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9yZXFyZXNwLmVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxxQkFBYSw2QkFBOEIsU0FBUSxLQUFLO0lBQ3RELGNBRUM7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCxxQkFBYSw2QkFBOEIsU0FBUSxLQUFLO0lBQ3RELGNBRUM7Q0FDRjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCxxQkFBYSxvQkFBcUIsU0FBUSxLQUFLO0lBQzdDLGNBRUM7Q0FDRiJ9
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC5lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9yZXFyZXNwLmVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxxQkFBYSw2QkFBOEIsU0FBUSxLQUFLO0lBQ3RELGNBRUM7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQWEsNEJBQTZCLFNBQVEsS0FBSzthQUVuQyxXQUFXLEVBQUUsTUFBTTthQUNuQixnQkFBZ0IsRUFBRSxNQUFNO2FBQ3hCLFlBQVksRUFBRSxNQUFNO0lBSHRDLFlBQ2tCLFdBQVcsRUFBRSxNQUFNLEVBQ25CLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsWUFBWSxFQUFFLE1BQU0sRUFNckM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"reqresp.error.d.ts","sourceRoot":"","sources":["../../src/errors/reqresp.error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,cAEC;CACF;AAED;;;;GAIG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,cAEC;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,cAEC;CACF"}
1
+ {"version":3,"file":"reqresp.error.d.ts","sourceRoot":"","sources":["../../src/errors/reqresp.error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,cAEC;CACF;AAED;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;aAEnC,WAAW,EAAE,MAAM;aACnB,gBAAgB,EAAE,MAAM;aACxB,YAAY,EAAE,MAAM;IAHtC,YACkB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EAMrC;CACF"}