@aztec/p2p 0.0.1-commit.0c875d939 → 0.0.1-commit.10bd49492

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 (290) hide show
  1. package/dest/client/factory.d.ts +7 -7
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +24 -28
  4. package/dest/client/interface.d.ts +10 -19
  5. package/dest/client/interface.d.ts.map +1 -1
  6. package/dest/client/p2p_client.d.ts +7 -18
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +47 -96
  9. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +6 -7
  10. package/dest/config.d.ts +28 -15
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +76 -37
  13. package/dest/errors/tx-pool.error.d.ts +8 -0
  14. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  15. package/dest/errors/tx-pool.error.js +9 -0
  16. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +1 -1
  17. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  18. package/dest/mem_pools/attestation_pool/attestation_pool.js +5 -1
  19. package/dest/mem_pools/instrumentation.d.ts +4 -2
  20. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  21. package/dest/mem_pools/instrumentation.js +16 -14
  22. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +3 -3
  23. package/dest/mem_pools/tx_pool/priority.d.ts +2 -2
  24. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  25. package/dest/mem_pools/tx_pool/priority.js +4 -3
  26. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  27. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  28. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +3 -1
  29. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +3 -1
  30. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -1
  31. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +9 -0
  32. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +3 -3
  33. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -1
  34. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +18 -9
  35. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +3 -3
  36. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +3 -3
  37. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  38. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +12 -4
  39. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -2
  40. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  41. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -1
  42. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +54 -5
  43. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  44. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +8 -0
  45. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +4 -4
  46. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +5 -5
  47. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
  48. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  49. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +12 -6
  50. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +4 -4
  51. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  52. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +16 -4
  53. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +3 -3
  54. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  55. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +3 -3
  56. package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
  57. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  58. package/dest/mem_pools/tx_pool_v2/index.js +1 -1
  59. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  60. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  61. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  62. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +18 -6
  63. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  64. package/dest/mem_pools/tx_pool_v2/interfaces.js +4 -1
  65. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +46 -14
  66. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  67. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +99 -17
  68. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +5 -2
  69. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  70. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +38 -46
  71. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +6 -3
  72. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  73. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +9 -5
  74. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +12 -5
  75. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  76. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +285 -149
  77. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -4
  78. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  79. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  80. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -4
  81. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  82. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  83. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -8
  84. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  85. package/dest/msg_validators/proposal_validator/proposal_validator.js +48 -36
  86. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +2 -2
  87. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  88. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  89. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  90. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  91. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  92. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  93. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  94. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  95. package/dest/msg_validators/tx_validator/factory.d.ts +125 -6
  96. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  97. package/dest/msg_validators/tx_validator/factory.js +226 -58
  98. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  99. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  100. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  101. package/dest/msg_validators/tx_validator/gas_validator.d.ts +67 -3
  102. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  103. package/dest/msg_validators/tx_validator/gas_validator.js +104 -37
  104. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  105. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  106. package/dest/msg_validators/tx_validator/index.js +2 -0
  107. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  108. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  109. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  110. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  111. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  112. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  113. package/dest/msg_validators/tx_validator/phases_validator.d.ts +2 -2
  114. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  115. package/dest/msg_validators/tx_validator/phases_validator.js +44 -23
  116. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +2 -2
  117. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  118. package/dest/msg_validators/tx_validator/timestamp_validator.js +6 -6
  119. package/dest/services/dummy_service.d.ts +4 -4
  120. package/dest/services/dummy_service.d.ts.map +1 -1
  121. package/dest/services/dummy_service.js +4 -4
  122. package/dest/services/encoding.d.ts +2 -2
  123. package/dest/services/encoding.d.ts.map +1 -1
  124. package/dest/services/encoding.js +9 -8
  125. package/dest/services/gossipsub/topic_score_params.d.ts +18 -6
  126. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  127. package/dest/services/gossipsub/topic_score_params.js +32 -10
  128. package/dest/services/libp2p/libp2p_service.d.ts +16 -13
  129. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  130. package/dest/services/libp2p/libp2p_service.js +111 -93
  131. package/dest/services/peer-manager/metrics.d.ts +3 -1
  132. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  133. package/dest/services/peer-manager/metrics.js +6 -0
  134. package/dest/services/peer-manager/peer_manager.d.ts +1 -1
  135. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  136. package/dest/services/peer-manager/peer_manager.js +2 -1
  137. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +4 -3
  138. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  139. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +19 -46
  140. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +2 -6
  141. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  142. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +10 -13
  143. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  144. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +25 -46
  145. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +17 -11
  146. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  147. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +49 -15
  148. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
  149. package/dest/services/reqresp/reqresp.d.ts +1 -1
  150. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  151. package/dest/services/reqresp/reqresp.js +2 -1
  152. package/dest/services/service.d.ts +5 -3
  153. package/dest/services/service.d.ts.map +1 -1
  154. package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -1
  155. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  156. package/dest/services/tx_collection/fast_tx_collection.js +39 -33
  157. package/dest/services/tx_collection/file_store_tx_collection.d.ts +1 -1
  158. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -1
  159. package/dest/services/tx_collection/file_store_tx_collection.js +4 -2
  160. package/dest/services/tx_collection/file_store_tx_source.d.ts +15 -6
  161. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
  162. package/dest/services/tx_collection/file_store_tx_source.js +47 -16
  163. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  164. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  165. package/dest/services/tx_collection/instrumentation.js +2 -1
  166. package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
  167. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
  168. package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
  169. package/dest/services/tx_collection/proposal_tx_collector.d.ts +7 -6
  170. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  171. package/dest/services/tx_collection/proposal_tx_collector.js +5 -4
  172. package/dest/services/tx_collection/slow_tx_collection.d.ts +2 -2
  173. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  174. package/dest/services/tx_collection/slow_tx_collection.js +10 -8
  175. package/dest/services/tx_collection/tx_collection.d.ts +5 -4
  176. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  177. package/dest/services/tx_collection/tx_collection_sink.d.ts +6 -5
  178. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  179. package/dest/services/tx_collection/tx_collection_sink.js +13 -22
  180. package/dest/services/tx_collection/tx_source.d.ts +8 -3
  181. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  182. package/dest/services/tx_collection/tx_source.js +19 -2
  183. package/dest/services/tx_file_store/tx_file_store.js +1 -1
  184. package/dest/services/tx_provider.d.ts +3 -3
  185. package/dest/services/tx_provider.d.ts.map +1 -1
  186. package/dest/services/tx_provider.js +4 -4
  187. package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
  188. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  189. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  190. package/dest/test-helpers/mock-pubsub.d.ts +4 -4
  191. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  192. package/dest/test-helpers/mock-pubsub.js +8 -2
  193. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  194. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  195. package/dest/test-helpers/reqresp-nodes.js +2 -2
  196. package/dest/test-helpers/testbench-utils.d.ts +6 -3
  197. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  198. package/dest/test-helpers/testbench-utils.js +3 -2
  199. package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -2
  200. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  201. package/dest/testbench/p2p_client_testbench_worker.js +15 -14
  202. package/dest/testbench/worker_client_manager.d.ts +3 -1
  203. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  204. package/dest/testbench/worker_client_manager.js +6 -2
  205. package/dest/util.d.ts +3 -3
  206. package/dest/util.d.ts.map +1 -1
  207. package/package.json +14 -14
  208. package/src/client/factory.ts +35 -49
  209. package/src/client/interface.ts +11 -20
  210. package/src/client/p2p_client.ts +48 -126
  211. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +20 -11
  212. package/src/config.ts +108 -43
  213. package/src/errors/tx-pool.error.ts +12 -0
  214. package/src/mem_pools/attestation_pool/attestation_pool.ts +5 -4
  215. package/src/mem_pools/instrumentation.ts +17 -13
  216. package/src/mem_pools/tx_pool/README.md +1 -1
  217. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +3 -3
  218. package/src/mem_pools/tx_pool/priority.ts +6 -3
  219. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +3 -1
  220. package/src/mem_pools/tx_pool_v2/README.md +10 -2
  221. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +11 -0
  222. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +21 -8
  223. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +3 -3
  224. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +18 -4
  225. package/src/mem_pools/tx_pool_v2/eviction/index.ts +4 -0
  226. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +59 -4
  227. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +4 -4
  228. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +5 -5
  229. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +12 -9
  230. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +33 -6
  231. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +4 -3
  232. package/src/mem_pools/tx_pool_v2/index.ts +1 -1
  233. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  234. package/src/mem_pools/tx_pool_v2/interfaces.ts +18 -6
  235. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +141 -25
  236. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +43 -46
  237. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +15 -7
  238. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +318 -145
  239. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +14 -4
  240. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +20 -7
  241. package/src/msg_validators/proposal_validator/proposal_validator.ts +63 -40
  242. package/src/msg_validators/tx_validator/README.md +115 -0
  243. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -3
  244. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  245. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  246. package/src/msg_validators/tx_validator/factory.ts +366 -77
  247. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  248. package/src/msg_validators/tx_validator/gas_validator.ts +123 -27
  249. package/src/msg_validators/tx_validator/index.ts +2 -0
  250. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  251. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  252. package/src/msg_validators/tx_validator/phases_validator.ts +51 -26
  253. package/src/msg_validators/tx_validator/timestamp_validator.ts +7 -7
  254. package/src/services/dummy_service.ts +6 -6
  255. package/src/services/encoding.ts +7 -7
  256. package/src/services/gossipsub/README.md +29 -14
  257. package/src/services/gossipsub/topic_score_params.ts +49 -13
  258. package/src/services/libp2p/libp2p_service.ts +122 -101
  259. package/src/services/peer-manager/metrics.ts +7 -0
  260. package/src/services/peer-manager/peer_manager.ts +2 -1
  261. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +20 -48
  262. package/src/services/reqresp/batch-tx-requester/interface.ts +1 -5
  263. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +23 -71
  264. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +63 -24
  265. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
  266. package/src/services/reqresp/reqresp.ts +3 -1
  267. package/src/services/service.ts +11 -2
  268. package/src/services/tx_collection/fast_tx_collection.ts +51 -30
  269. package/src/services/tx_collection/file_store_tx_collection.ts +7 -3
  270. package/src/services/tx_collection/file_store_tx_source.ts +61 -17
  271. package/src/services/tx_collection/instrumentation.ts +7 -1
  272. package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
  273. package/src/services/tx_collection/proposal_tx_collector.ts +8 -7
  274. package/src/services/tx_collection/slow_tx_collection.ts +8 -9
  275. package/src/services/tx_collection/tx_collection.ts +4 -3
  276. package/src/services/tx_collection/tx_collection_sink.ts +15 -29
  277. package/src/services/tx_collection/tx_source.ts +22 -3
  278. package/src/services/tx_file_store/tx_file_store.ts +1 -1
  279. package/src/services/tx_provider.ts +2 -2
  280. package/src/test-helpers/make-test-p2p-clients.ts +1 -3
  281. package/src/test-helpers/mock-pubsub.ts +13 -6
  282. package/src/test-helpers/reqresp-nodes.ts +3 -6
  283. package/src/test-helpers/testbench-utils.ts +4 -3
  284. package/src/testbench/p2p_client_testbench_worker.ts +24 -20
  285. package/src/testbench/worker_client_manager.ts +13 -5
  286. package/src/util.ts +8 -2
  287. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  288. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  289. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  290. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
@@ -372,18 +372,16 @@ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
372
372
  }
373
373
  var _dec, _dec1, _initProto;
374
374
  import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
375
- import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
375
+ import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
376
376
  import { createLogger } from '@aztec/foundation/log';
377
377
  import { RunningPromise } from '@aztec/foundation/promise';
378
378
  import { DateProvider } from '@aztec/foundation/timer';
379
379
  import { L2TipsKVStore } from '@aztec/kv-store/stores';
380
380
  import { L2BlockStream } from '@aztec/stdlib/block';
381
- import { getTimestampForSlot } from '@aztec/stdlib/epoch-helpers';
382
381
  import { tryStop } from '@aztec/stdlib/interfaces/server';
383
382
  import { Attributes, WithTracer, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
384
383
  import { getP2PDefaultConfig } from '../config.js';
385
- import { ReqRespSubProtocol } from '../services/reqresp/interface.js';
386
- import { chunkTxHashesRequest } from '../services/reqresp/protocols/tx.js';
384
+ import { TxPoolError } from '../errors/tx-pool.error.js';
387
385
  import { TxProvider } from '../services/tx_provider.js';
388
386
  import { P2PClientState } from './interface.js';
389
387
  _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
@@ -438,7 +436,7 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
438
436
  validatorAddresses;
439
437
  /** Tracks the last slot for which we called prepareForSlot */ lastSlotProcessed;
440
438
  /** Polls for slot changes and calls prepareForSlot on the tx pool */ slotMonitor;
441
- constructor(_clientType, store, l2BlockSource, mempools, p2pService, txCollection, txFileStore, epochCache, config = {}, _dateProvider = new DateProvider(), telemetry = getTelemetryClient(), log = createLogger('p2p')){
439
+ constructor(store, l2BlockSource, mempools, p2pService, txCollection, txFileStore, epochCache, config = {}, _dateProvider = new DateProvider(), telemetry = getTelemetryClient(), log = createLogger('p2p')){
442
440
  super(telemetry, 'P2PClient'), this.store = store, this.l2BlockSource = l2BlockSource, this.p2pService = p2pService, this.txCollection = txCollection, this.txFileStore = txFileStore, this.epochCache = epochCache, this._dateProvider = _dateProvider, this.telemetry = telemetry, this.log = log, this.currentState = (_initProto(this), P2PClientState.IDLE), this.syncPromise = Promise.resolve(), this.syncResolve = undefined, this.latestBlockNumberAtStart = -1, this.provenBlockNumberAtStart = -1, this.finalizedBlockNumberAtStart = -1, this.validatorAddresses = [], this.lastSlotProcessed = SlotNumber.ZERO;
443
441
  this.config = {
444
442
  ...getP2PDefaultConfig(),
@@ -447,29 +445,6 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
447
445
  this.txPool = mempools.txPool;
448
446
  this.attestationPool = mempools.attestationPool;
449
447
  this.txProvider = new TxProvider(this.txCollection, this.txPool, this, this.log.createChild('tx-provider'), this.telemetry);
450
- // Default to collecting all txs when we see a valid proposal
451
- // This can be overridden by the validator client to validate, and it will call getTxsForBlockProposal on its own
452
- // Note: Validators do NOT attest to individual blocks - attestations are only for checkpoint proposals.
453
- // TODO(palla/txs): We should not trigger a request for txs on a proposal before fully validating it. We need to bring
454
- // validator-client code into here so we can validate a proposal is reasonable.
455
- this.registerBlockProposalHandler(async (block, sender)=>{
456
- this.log.debug(`Received block proposal from ${sender.toString()}`);
457
- // TODO(palla/txs): Need to subtract validatorReexecuteDeadlineMs from this deadline (see ValidatorClient.getReexecutionDeadline)
458
- const constants = this.txCollection.getConstants();
459
- const nextSlotTimestampSeconds = Number(getTimestampForSlot(SlotNumber(block.slotNumber + 1), constants));
460
- const deadline = new Date(nextSlotTimestampSeconds * 1000);
461
- const parentBlock = await this.l2BlockSource.getBlockHeaderByArchive(block.blockHeader.lastArchive.root);
462
- if (!parentBlock) {
463
- this.log.debug(`Cannot collect txs for proposal as parent block not found`);
464
- return false;
465
- }
466
- const blockNumber = BlockNumber(parentBlock.getBlockNumber() + 1);
467
- await this.txProvider.getTxsForBlockProposal(block, blockNumber, {
468
- pinnedPeer: sender,
469
- deadline
470
- });
471
- return true;
472
- });
473
448
  this.l2Tips = new L2TipsKVStore(store, 'p2p_client');
474
449
  this.synchedLatestSlot = store.openSingleton('p2p_pool_last_l2_slot');
475
450
  }
@@ -491,6 +466,9 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
491
466
  getPeers(includePending) {
492
467
  return Promise.resolve(this.p2pService.getPeers(includePending));
493
468
  }
469
+ getGossipMeshPeerCount(topicType) {
470
+ return Promise.resolve(this.p2pService.getGossipMeshPeerCount(topicType));
471
+ }
494
472
  getL2BlockHash(number) {
495
473
  return this.l2Tips.getL2BlockHash(number);
496
474
  }
@@ -523,7 +501,7 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
523
501
  break;
524
502
  case 'chain-pruned':
525
503
  this.txCollection.stopCollectingForBlocksAfter(event.block.number);
526
- await this.handlePruneL2Blocks(event.block);
504
+ await this.handlePruneL2Blocks(event.block, event.checkpoint);
527
505
  break;
528
506
  case 'chain-checkpointed':
529
507
  break;
@@ -693,23 +671,6 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
693
671
  registerDuplicateAttestationCallback(callback) {
694
672
  this.p2pService.registerDuplicateAttestationCallback(callback);
695
673
  }
696
- /**
697
- * Uses the batched Request Response protocol to request a set of transactions from the network.
698
- */ async requestTxsByHash(txHashes, pinnedPeerId) {
699
- const timeoutMs = 8000; // Longer timeout for now
700
- const maxRetryAttempts = 10; // Keep retrying within the timeout
701
- const requests = chunkTxHashesRequest(txHashes);
702
- const maxPeers = Math.min(Math.ceil(requests.length / 3), 10);
703
- const txBatches = await this.p2pService.sendBatchRequest(ReqRespSubProtocol.TX, requests, pinnedPeerId, timeoutMs, maxPeers, maxRetryAttempts);
704
- const txs = txBatches.flat();
705
- if (txs.length > 0) {
706
- await this.txPool.addPendingTxs(txs);
707
- }
708
- const txHashesStr = txHashes.map((tx)=>tx.toString()).join(', ');
709
- this.log.debug(`Requested txs ${txHashesStr} (${txs.length} / ${txHashes.length}) from peers`);
710
- // We return all transactions, even the not found ones to the caller, such they can handle missing items themselves.
711
- return txs;
712
- }
713
674
  async getPendingTxs(limit, after) {
714
675
  if (limit !== undefined && limit <= 0) {
715
676
  throw new TypeError('limit must be greater than 0');
@@ -765,42 +726,6 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
765
726
  return this.txPool.hasTxs(txHashes);
766
727
  }
767
728
  /**
768
- * Returns transactions in the transaction pool by hash.
769
- * If a transaction is not in the pool, it will be requested from the network.
770
- * @param txHashes - Hashes of the transactions to look for.
771
- * @returns The txs found, or undefined if not found in the order requested.
772
- */ async getTxsByHash(txHashes, pinnedPeerId) {
773
- const txs = await Promise.all(txHashes.map((txHash)=>this.txPool.getTxByHash(txHash)));
774
- const missingTxHashes = txs.map((tx, index)=>[
775
- tx,
776
- index
777
- ]).filter(([tx, _index])=>!tx).map(([_tx, index])=>txHashes[index]);
778
- if (missingTxHashes.length === 0) {
779
- return txs;
780
- }
781
- const missingTxs = await this.requestTxsByHash(missingTxHashes, pinnedPeerId);
782
- // TODO: optimize
783
- // Merge the found txs in order
784
- const mergingTxs = txHashes.map((txHash)=>{
785
- // Is it in the txs list from the mempool?
786
- for (const tx of txs){
787
- if (tx !== undefined && tx.getTxHash().equals(txHash)) {
788
- return tx;
789
- }
790
- }
791
- // Is it in the fetched missing txs?
792
- // Note: this is an O(n^2) operation, but we expect the number of missing txs to be small.
793
- for (const tx of missingTxs){
794
- if (tx.getTxHash().equals(txHash)) {
795
- return tx;
796
- }
797
- }
798
- // Otherwise return undefined
799
- return undefined;
800
- });
801
- return mergingTxs;
802
- }
803
- /**
804
729
  * Returns an archived transaction in the transaction pool by its hash.
805
730
  * @param txHash - Hash of the archived transaction to look for.
806
731
  * @returns A single tx or undefined.
@@ -815,19 +740,20 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
815
740
  this.#assertIsReady();
816
741
  const result = await this.txPool.addPendingTxs([
817
742
  tx
818
- ]);
743
+ ], {
744
+ feeComparisonOnly: true
745
+ });
819
746
  if (result.accepted.length === 1) {
820
747
  await this.p2pService.propagate(tx);
821
- } else {
822
- this.log.warn(`Tx ${tx.getTxHash()} not propagated: accepted=${result.accepted.length} ignored=${result.ignored.length} rejected=${result.rejected.length}`);
748
+ return;
823
749
  }
824
- }
825
- /**
826
- * Adds transactions to the pool. Does not send to peers or validate the txs.
827
- * @param txs - The transactions.
828
- **/ async addTxsToPool(txs) {
829
- this.#assertIsReady();
830
- return (await this.txPool.addPendingTxs(txs)).accepted.length;
750
+ const txHashStr = tx.getTxHash().toString();
751
+ const reason = result.errors?.get(txHashStr);
752
+ if (reason) {
753
+ this.log.warn(`Tx ${txHashStr} not added to pool: ${reason.message}`);
754
+ throw new TxPoolError(reason);
755
+ }
756
+ this.log.warn(`Tx ${txHashStr} not propagated: accepted=${result.accepted.length} ignored=${result.ignored.length} rejected=${result.rejected.length}`);
831
757
  }
832
758
  /**
833
759
  * Returns whether the given tx hash is flagged as pending or mined.
@@ -955,9 +881,34 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
955
881
  }
956
882
  /**
957
883
  * Updates the tx pool after a chain prune.
884
+ * Detects epoch prunes (checkpoint number changed) and deletes all txs in that case.
958
885
  * @param latestBlock - The block ID the chain was pruned to.
959
- */ async handlePruneL2Blocks(latestBlock) {
960
- await this.txPool.handlePrunedBlocks(latestBlock);
886
+ * @param newCheckpoint - The checkpoint ID after the prune.
887
+ */ async handlePruneL2Blocks(latestBlock, newCheckpoint) {
888
+ const deleteAllTxs = this.config.txPoolDeleteTxsAfterReorg && await this.isEpochPrune(newCheckpoint);
889
+ await this.txPool.handlePrunedBlocks(latestBlock, {
890
+ deleteAllTxs
891
+ });
892
+ }
893
+ /**
894
+ * Returns true if the prune crossed a checkpoint boundary.
895
+ * If the old and new checkpoint numbers are the same, the prune is within a single checkpoint.
896
+ * If they differ, the prune spans across checkpoints (epoch prune).
897
+ */ async isEpochPrune(newCheckpoint) {
898
+ const tips = await this.l2Tips.getL2Tips();
899
+ const oldCheckpointNumber = tips.checkpointed.checkpoint.number;
900
+ if (oldCheckpointNumber <= CheckpointNumber.ZERO) {
901
+ return false;
902
+ }
903
+ const newCheckpointNumber = newCheckpoint.number;
904
+ const isEpochPrune = oldCheckpointNumber !== newCheckpointNumber;
905
+ if (isEpochPrune) {
906
+ this.log.info(`Detected epoch prune to ${newCheckpointNumber}`, {
907
+ oldCheckpointNumber,
908
+ newCheckpointNumber
909
+ });
910
+ }
911
+ return isEpochPrune;
961
912
  }
962
913
  /** Checks if the slot has changed and calls prepareForSlot if so. */ async maybeCallPrepareForSlot() {
963
914
  const { currentSlot } = this.epochCache.getCurrentAndNextSlot();
@@ -996,8 +947,8 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
996
947
  this.currentState = newState;
997
948
  this.log.debug(`Moved from state ${P2PClientState[oldState]} to ${P2PClientState[this.currentState]}`);
998
949
  }
999
- validate(txs) {
1000
- return this.p2pService.validate(txs);
950
+ validateTxsReceivedInBlockProposal(txs) {
951
+ return this.p2pService.validateTxsReceivedInBlockProposal(txs);
1001
952
  }
1002
953
  /**
1003
954
  * Protects existing transactions by hash for a given slot.
@@ -4,13 +4,12 @@ import { createLogger } from '@aztec/foundation/log';
4
4
  import { sleep } from '@aztec/foundation/sleep';
5
5
  import { DateProvider, Timer, executeTimeout } from '@aztec/foundation/timer';
6
6
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
7
- import { P2PClientType } from '@aztec/stdlib/p2p';
8
7
  import { getTelemetryClient } from '@aztec/telemetry-client';
9
8
  import { peerIdFromString } from '@libp2p/peer-id';
9
+ import { BatchTxRequesterCollector, SendBatchRequestCollector } from '../../../services/index.js';
10
10
  import { RateLimitStatus } from '../../../services/reqresp/rate-limiter/rate_limiter.js';
11
- import { BatchTxRequesterCollector, SendBatchRequestCollector } from '../../../services/tx_collection/proposal_tx_collector.js';
12
- import { AlwaysTrueCircuitVerifier } from '../../../test-helpers/reqresp-nodes.js';
13
- import { BENCHMARK_CONSTANTS, InMemoryAttestationPool, InMemoryTxPool, UNLIMITED_RATE_LIMIT_QUOTA, calculateInternalTimeout, createMockEpochCache, createMockWorldStateSynchronizer } from '../../../test-helpers/testbench-utils.js';
11
+ import { MissingTxsTracker } from '../../../services/tx_collection/missing_txs_tracker.js';
12
+ import { AlwaysTrueCircuitVerifier, BENCHMARK_CONSTANTS, InMemoryAttestationPool, InMemoryTxPool, UNLIMITED_RATE_LIMIT_QUOTA, calculateInternalTimeout, createMockEpochCache, createMockWorldStateSynchronizer } from '../../../test-helpers/index.js';
14
13
  import { createP2PClient } from '../../index.js';
15
14
  import { deserializeBlockProposal, deserializeTx, deserializeTxHash } from './proposal_tx_collector_worker_protocol.js';
16
15
  let client;
@@ -83,7 +82,7 @@ async function startClient(config, clientIndex) {
83
82
  store: kvStore,
84
83
  logger
85
84
  };
86
- client = await createP2PClient(P2PClientType.Full, config, l2BlockSource, proofVerifier, worldState, epochCache, 'proposal-tx-collector-bench-worker', new DateProvider(), telemetry, deps);
85
+ client = await createP2PClient(config, l2BlockSource, proofVerifier, worldState, epochCache, 'proposal-tx-collector-bench-worker', new DateProvider(), telemetry, deps);
87
86
  await client.start();
88
87
  installUnlimitedRateLimits();
89
88
  for(let i = 0; i < 120; i++){
@@ -162,11 +161,11 @@ async function runCollector(cmd) {
162
161
  try {
163
162
  if (collectorType === 'batch-requester') {
164
163
  const collector = new BatchTxRequesterCollector(p2pService, logger, new DateProvider(), noopTxValidator);
165
- const fetched = await executeTimeout((_signal)=>collector.collectTxs(parsedTxHashes, parsedProposal, pinnedPeer, internalTimeoutMs), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
164
+ const fetched = await executeTimeout((_signal)=>collector.collectTxs(MissingTxsTracker.fromArray(parsedTxHashes), parsedProposal, pinnedPeer, internalTimeoutMs), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
166
165
  fetchedCount = fetched.length;
167
166
  } else {
168
167
  const collector = new SendBatchRequestCollector(p2pService, BENCHMARK_CONSTANTS.FIXED_MAX_PEERS, BENCHMARK_CONSTANTS.FIXED_MAX_RETRY_ATTEMPTS);
169
- const fetched = await executeTimeout((_signal)=>collector.collectTxs(parsedTxHashes, parsedProposal, pinnedPeer, internalTimeoutMs), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
168
+ const fetched = await executeTimeout((_signal)=>collector.collectTxs(MissingTxsTracker.fromArray(parsedTxHashes), parsedProposal, pinnedPeer, internalTimeoutMs), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
170
169
  fetchedCount = fetched.length;
171
170
  }
172
171
  } catch (err) {
package/dest/config.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
2
- import { type DataStoreConfig } from '@aztec/kv-store/config';
3
2
  import { type AllowedElement, type ChainConfig, type SequencerConfig } from '@aztec/stdlib/config';
3
+ import { type DataStoreConfig } from '@aztec/stdlib/kv-store';
4
4
  import { type BatchTxRequesterConfig } from './services/reqresp/batch-tx-requester/config.js';
5
5
  import { type P2PReqRespConfig } from './services/reqresp/config.js';
6
6
  import { type TxCollectionConfig } from './services/tx_collection/config.js';
@@ -8,7 +8,13 @@ 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'> {
11
+ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, ChainConfig, TxCollectionConfig, TxFileStoreConfig, Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'> {
12
+ /** Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set. */
13
+ validateMaxTxsPerBlock?: number;
14
+ /** Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected. */
15
+ validateMaxL2BlockGas?: number;
16
+ /** Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected. */
17
+ validateMaxDABlockGas?: number;
12
18
  /** A flag dictating whether the P2P subsystem should be enabled. */
13
19
  p2pEnabled: boolean;
14
20
  /** The frequency in which to check for new L2 blocks. */
@@ -83,8 +89,8 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
83
89
  preferredPeers: string[];
84
90
  /** The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb. */
85
91
  p2pStoreMapSizeKb?: number;
86
- /** Which calls are allowed in the public setup phase of a tx. */
87
- txPublicSetupAllowList: AllowedElement[];
92
+ /** Additional entries to extend the default setup allow list. */
93
+ txPublicSetupAllowListExtend: AllowedElement[];
88
94
  /** The maximum number of pending txs before evicting lower priority txs. */
89
95
  maxPendingTxCount: number;
90
96
  /** The node's seen message ID cache size */
@@ -99,9 +105,7 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
99
105
  p2pMaxFailedAuthAttemptsAllowed: number;
100
106
  /** Whether transactions are disabled for this node. This means transactions will be rejected at the RPC and P2P layers. */
101
107
  disableTransactions: boolean;
102
- /** True to simulate discarding transactions. - For testing purposes only*/
103
- dropTransactions: boolean;
104
- /** The probability that a transaction is discarded. - For testing purposes only */
108
+ /** The probability that a transaction is discarded (0 = disabled). - For testing purposes only */
105
109
  dropTransactionsProbability: number;
106
110
  /** Whether to delete transactions from the pool after a reorg instead of moving them back to pending. */
107
111
  txPoolDeleteTxsAfterReorg: boolean;
@@ -113,6 +117,8 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
113
117
  broadcastEquivocatedProposals?: boolean;
114
118
  /** Minimum age (ms) a transaction must have been in the pool before it's eligible for block building. */
115
119
  minTxPoolAgeMs: number;
120
+ /** Minimum percentage fee increase required to replace an existing tx via RPC (0 = no bump). */
121
+ priceBumpPercentage: bigint;
116
122
  }
117
123
  export declare const DEFAULT_P2P_PORT = 40400;
118
124
  export declare const p2pConfigMappings: ConfigMappingsType<P2PConfig>;
@@ -146,8 +152,8 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
146
152
  dialTimeoutMs: unknown;
147
153
  disableTransactions: unknown;
148
154
  doubleSpendSeverePeerPenaltyWindow: unknown;
149
- dropTransactions: unknown;
150
155
  dropTransactionsProbability: unknown;
156
+ expectedBlockProposalsPerSlot: unknown;
151
157
  fishermanMode: unknown;
152
158
  gossipsubD: unknown;
153
159
  gossipsubDLazy: unknown;
@@ -168,6 +174,7 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
168
174
  listenAddress: unknown;
169
175
  maxPeerCount: unknown;
170
176
  maxPendingTxCount: unknown;
177
+ maxTxsPerBlock: unknown;
171
178
  minTxPoolAgeMs: unknown;
172
179
  overallRequestTimeoutMs: unknown;
173
180
  p2pAllowOnlyValidators: unknown;
@@ -185,6 +192,7 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
185
192
  peerIdPrivateKeyPath: unknown;
186
193
  peerPenaltyValues: unknown;
187
194
  preferredPeers: unknown;
195
+ priceBumpPercentage: unknown;
188
196
  privatePeers: unknown;
189
197
  queryForIp: unknown;
190
198
  rollupVersion: unknown;
@@ -216,18 +224,23 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
216
224
  txFileStoreUploadConcurrency: unknown;
217
225
  txFileStoreUrl: unknown;
218
226
  txPoolDeleteTxsAfterReorg: unknown;
219
- txPublicSetupAllowList: unknown;
227
+ txPublicSetupAllowListExtend: unknown;
228
+ validateMaxDABlockGas: unknown;
229
+ validateMaxL2BlockGas: unknown;
230
+ validateMaxTxsPerBlock: unknown;
220
231
  }, "bootstrapNodes" | "dataDirectory" | "dataStoreMapSizeKb" | "l1ChainId" | "listenAddress" | "p2pBroadcastPort" | "p2pIp" | "p2pPort" | "peerIdPrivateKey" | "peerIdPrivateKeyPath" | "queryForIp">>;
221
232
  /**
222
233
  * Parses a string to a list of allowed elements.
223
- * Each encoded is expected to be of one of the following formats
224
- * `I:${address}`
225
- * `I:${address}:${selector}`
226
- * `C:${classId}`
227
- * `C:${classId}:${selector}`
234
+ * Each entry is expected to be of one of the following formats:
235
+ * `I:${address}:${selector}` — instance (contract address) with function selector
236
+ * `C:${classId}:${selector}` — class with function selector
237
+ *
238
+ * An optional flags segment can be appended after the selector:
239
+ * `I:${address}:${selector}:${flags}` or `C:${classId}:${selector}:${flags}`
240
+ * where flags is a `+`-separated list of: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
228
241
  *
229
242
  * @param value The string to parse
230
243
  * @returns A list of allowed elements
231
244
  */
232
245
  export declare function parseAllowList(value: string): AllowedElement[];
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBUVosTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFHbEYsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLFdBQVcsRUFDaEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQTRCLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQThCLE1BQU0sb0NBQW9DLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQTZCLE1BQU0sb0NBQW9DLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsU0FDZixTQUFRLGdCQUFnQixFQUN0QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQztJQUMxQyxvRUFBb0U7SUFDcEUsVUFBVSxFQUFFLE9BQU8sQ0FBQztJQUVwQix5REFBeUQ7SUFDekQsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBRTdCLHdEQUF3RDtJQUN4RCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFFNUIsdURBQXVEO0lBQ3ZELHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUU5QixvRUFBb0U7SUFDcEUsNkJBQTZCLEVBQUUsT0FBTyxDQUFDO0lBRXZDLHFEQUFxRDtJQUNyRCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFFNUIsMkNBQTJDO0lBQzNDLFdBQVcsRUFB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
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBQ25CLEtBQUssV0FBVyxFQUNoQixLQUFLLGVBQWUsRUFHckIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFFbEYsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQTRCLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQThCLE1BQU0sb0NBQW9DLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQTZCLE1BQU0sb0NBQW9DLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsU0FDZixTQUFRLGdCQUFnQixFQUN0QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsR0FBRywrQkFBK0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMvRiw4R0FBOEc7SUFDOUcsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFaEMsZ0dBQWdHO0lBQ2hHLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRS9CLGdHQUFnRztJQUNoRyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUUvQixvRUFBb0U7SUFDcEUsVUFBVSxFQUFFLE9BQU8sQ0FBQztJQUVwQix5REFBeUQ7SUFDekQsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBRTdCLHdEQUF3RDtJQUN4RCxtQkFBbUIsRUFB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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,15 +1,30 @@
1
- import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, percentageConfigHelper, pickConfigMappings, secretStringConfigHelper } from '@aztec/foundation/config';
1
+ import { bigintConfigHelper, booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, percentageConfigHelper, pickConfigMappings, secretStringConfigHelper } from '@aztec/foundation/config';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { dataConfigMappings } from '@aztec/kv-store/config';
4
3
  import { FunctionSelector } from '@aztec/stdlib/abi/function-selector';
5
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
5
  import { chainConfigMappings, sharedSequencerConfigMappings } from '@aztec/stdlib/config';
6
+ import { dataConfigMappings } from '@aztec/stdlib/kv-store';
7
7
  import { batchTxRequesterConfigMappings } from './services/reqresp/batch-tx-requester/config.js';
8
8
  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
12
  export const p2pConfigMappings = {
13
+ validateMaxTxsPerBlock: {
14
+ env: 'VALIDATOR_MAX_TX_PER_BLOCK',
15
+ description: 'Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set.',
16
+ parseEnv: (val)=>val ? parseInt(val, 10) : undefined
17
+ },
18
+ validateMaxL2BlockGas: {
19
+ env: 'VALIDATOR_MAX_L2_BLOCK_GAS',
20
+ description: 'Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected.',
21
+ parseEnv: (val)=>val ? parseInt(val, 10) : undefined
22
+ },
23
+ validateMaxDABlockGas: {
24
+ env: 'VALIDATOR_MAX_DA_BLOCK_GAS',
25
+ description: 'Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected.',
26
+ parseEnv: (val)=>val ? parseInt(val, 10) : undefined
27
+ },
13
28
  p2pEnabled: {
14
29
  env: 'P2P_ENABLED',
15
30
  description: 'A flag dictating whether the P2P subsystem should be enabled.',
@@ -206,11 +221,11 @@ export const p2pConfigMappings = {
206
221
  parseEnv: (val)=>val ? +val : undefined,
207
222
  description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb.'
208
223
  },
209
- txPublicSetupAllowList: {
224
+ txPublicSetupAllowListExtend: {
210
225
  env: 'TX_PUBLIC_SETUP_ALLOWLIST',
211
226
  parseEnv: (val)=>parseAllowList(val),
212
- description: 'The list of functions calls allowed to run in setup',
213
- printDefault: ()=>'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee'
227
+ description: 'Additional entries to extend the default setup allow list. Format: I:address:selector[:flags],C:classId:selector[:flags]. Flags: os (onlySelf), rn (rejectNullMsgSender), cl=N (calldataLength), joined with +.',
228
+ printDefault: ()=>'Default: AuthRegistry._set_authorized, AuthRegistry.set_authorized, FeeJuice._increase_public_balance'
214
229
  },
215
230
  maxPendingTxCount: {
216
231
  env: 'P2P_MAX_PENDING_TX_COUNT',
@@ -239,11 +254,6 @@ export const p2pConfigMappings = {
239
254
  description: 'Number of auth attempts to allow before peer is banned. Number is inclusive',
240
255
  ...numberConfigHelper(3)
241
256
  },
242
- dropTransactions: {
243
- env: 'P2P_DROP_TX',
244
- description: 'True to simulate discarding transactions. - For testing purposes only',
245
- ...booleanConfigHelper(false)
246
- },
247
257
  dropTransactionsProbability: {
248
258
  env: 'P2P_DROP_TX_CHANCE',
249
259
  description: 'The probability that a transaction is discarded (0 - 1). - For testing purposes only',
@@ -278,6 +288,11 @@ export const p2pConfigMappings = {
278
288
  description: 'Minimum age (ms) a transaction must have been in the pool before it is eligible for block building.',
279
289
  ...numberConfigHelper(2_000)
280
290
  },
291
+ priceBumpPercentage: {
292
+ env: 'P2P_RPC_PRICE_BUMP_PERCENTAGE',
293
+ 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.',
294
+ ...bigintConfigHelper(10n)
295
+ },
281
296
  ...sharedSequencerConfigMappings,
282
297
  ...p2pReqRespConfigMappings,
283
298
  ...batchTxRequesterConfigMappings,
@@ -312,13 +327,37 @@ export const bootnodeConfigMappings = pickConfigMappings({
312
327
  ...dataConfigMappings,
313
328
  ...chainConfigMappings
314
329
  }, bootnodeConfigKeys);
330
+ /**
331
+ * Parses a `+`-separated flags string into validation properties for an allow list entry.
332
+ * Supported flags: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
333
+ */ function parseFlags(flags, entry) {
334
+ const result = {};
335
+ for (const flag of flags.split('+')){
336
+ if (flag === 'os') {
337
+ result.onlySelf = true;
338
+ } else if (flag === 'rn') {
339
+ result.rejectNullMsgSender = true;
340
+ } else if (flag.startsWith('cl=')) {
341
+ const n = parseInt(flag.slice(3), 10);
342
+ if (isNaN(n) || n < 0) {
343
+ throw new Error(`Invalid allow list entry "${entry}": invalid calldataLength in flag "${flag}". Expected a non-negative integer.`);
344
+ }
345
+ result.calldataLength = n;
346
+ } else {
347
+ throw new Error(`Invalid allow list entry "${entry}": unknown flag "${flag}". Supported flags: os, rn, cl=N.`);
348
+ }
349
+ }
350
+ return result;
351
+ }
315
352
  /**
316
353
  * Parses a string to a list of allowed elements.
317
- * Each encoded is expected to be of one of the following formats
318
- * `I:${address}`
319
- * `I:${address}:${selector}`
320
- * `C:${classId}`
321
- * `C:${classId}:${selector}`
354
+ * Each entry is expected to be of one of the following formats:
355
+ * `I:${address}:${selector}` — instance (contract address) with function selector
356
+ * `C:${classId}:${selector}` — class with function selector
357
+ *
358
+ * An optional flags segment can be appended after the selector:
359
+ * `I:${address}:${selector}:${flags}` or `C:${classId}:${selector}:${flags}`
360
+ * where flags is a `+`-separated list of: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
322
361
  *
323
362
  * @param value The string to parse
324
363
  * @returns A list of allowed elements
@@ -328,30 +367,30 @@ export const bootnodeConfigMappings = pickConfigMappings({
328
367
  return entries;
329
368
  }
330
369
  for (const val of value.split(',')){
331
- const [typeString, identifierString, selectorString] = val.split(':');
332
- const selector = selectorString !== undefined ? FunctionSelector.fromString(selectorString) : undefined;
370
+ const trimmed = val.trim();
371
+ if (!trimmed) {
372
+ continue;
373
+ }
374
+ const [typeString, identifierString, selectorString, flagsString] = trimmed.split(':');
375
+ if (!selectorString) {
376
+ throw new Error(`Invalid allow list entry "${trimmed}": selector is required. Expected format: I:address:selector or C:classId:selector`);
377
+ }
378
+ const selector = FunctionSelector.fromString(selectorString);
379
+ const flags = flagsString ? parseFlags(flagsString, trimmed) : {};
333
380
  if (typeString === 'I') {
334
- if (selector) {
335
- entries.push({
336
- address: AztecAddress.fromString(identifierString),
337
- selector
338
- });
339
- } else {
340
- entries.push({
341
- address: AztecAddress.fromString(identifierString)
342
- });
343
- }
381
+ entries.push({
382
+ address: AztecAddress.fromString(identifierString),
383
+ selector,
384
+ ...flags
385
+ });
344
386
  } else if (typeString === 'C') {
345
- if (selector) {
346
- entries.push({
347
- classId: Fr.fromHexString(identifierString),
348
- selector
349
- });
350
- } else {
351
- entries.push({
352
- classId: Fr.fromHexString(identifierString)
353
- });
354
- }
387
+ entries.push({
388
+ classId: Fr.fromHexString(identifierString),
389
+ selector,
390
+ ...flags
391
+ });
392
+ } else {
393
+ throw new Error(`Invalid allow list entry "${trimmed}": unknown type "${typeString}". Expected "I" (instance) or "C" (class).`);
355
394
  }
356
395
  }
357
396
  return entries;
@@ -0,0 +1,8 @@
1
+ import type { TxPoolRejectionError } from '../mem_pools/tx_pool_v2/eviction/interfaces.js';
2
+ /** Error thrown when a transaction is not added to the mempool. */
3
+ export declare class TxPoolError extends Error {
4
+ readonly reason: TxPoolRejectionError;
5
+ readonly data: TxPoolRejectionError;
6
+ constructor(reason: TxPoolRejectionError);
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcG9vbC5lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy90eC1wb29sLmVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFM0YsbUVBQW1FO0FBQ25FLHFCQUFhLFdBQVksU0FBUSxLQUFLO2FBR1IsTUFBTSxFQUFFLG9CQUFvQjtJQUZ4RCxTQUFnQixJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFFM0MsWUFBNEIsTUFBTSxFQUFFLG9CQUFvQixFQUl2RDtDQUNGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-pool.error.d.ts","sourceRoot":"","sources":["../../src/errors/tx-pool.error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAE3F,mEAAmE;AACnE,qBAAa,WAAY,SAAQ,KAAK;aAGR,MAAM,EAAE,oBAAoB;IAFxD,SAAgB,IAAI,EAAE,oBAAoB,CAAC;IAE3C,YAA4B,MAAM,EAAE,oBAAoB,EAIvD;CACF"}
@@ -0,0 +1,9 @@
1
+ /** Error thrown when a transaction is not added to the mempool. */ export class TxPoolError extends Error {
2
+ reason;
3
+ data;
4
+ constructor(reason){
5
+ super(reason.message), this.reason = reason;
6
+ this.name = 'TxPoolError';
7
+ this.data = reason;
8
+ }
9
+ }
@@ -149,4 +149,4 @@ export declare class AttestationPool {
149
149
  }
150
150
  /** Creates an AttestationPool backed by a temporary store for testing. */
151
151
  export declare function createTestAttestationPool(telemetry?: TelemetryClient): Promise<AttestationPool>;
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUlwRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUVyQixLQUFLLHNCQUFzQixFQUM1QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUluRiw0RUFBNEU7QUFDNUUsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixpQ0FBaUM7SUFDakMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNmLDZDQUE2QztJQUM3QyxhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQ3ZCOzs7bUZBRytFO0lBQy9FLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYsZUFBTyxNQUFNLGlDQUFpQyxJQUFJLENBQUM7QUFDbkQsZUFBTyxNQUFNLGdDQUFnQyxJQUFJLENBQUM7QUFDbEQsb0ZBQW9GO0FBQ3BGLGVBQU8sTUFBTSxvQ0FBb0MsSUFBSSxDQUFDO0FBRXRELGtHQUFrRztBQUNsRyxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUNuQyxlQUFlLEVBQ2IscUJBQXFCLEdBQ3JCLGtCQUFrQixHQUNsQiwwQkFBMEIsR0FDMUIsdUJBQXVCLEdBQ3ZCLDhCQUE4QixHQUM5Qiw2QkFBNkIsR0FDN0IsaUJBQWlCLEdBQ2pCLGtDQUFrQyxHQUNsQyw2Q0FBNkMsR0FDN0MsMEJBQTBCLEdBQzFCLFNBQVMsQ0FDWixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxxQkFBYSxlQUFlO0lBMEJ4QixPQUFP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
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUlwRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUVyQixLQUFLLHNCQUFzQixFQUM1QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUluRiw0RUFBNEU7QUFDNUUsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixpQ0FBaUM7SUFDakMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNmLDZDQUE2QztJQUM3QyxhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQ3ZCOzs7bUZBRytFO0lBQy9FLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYsZUFBTyxNQUFNLGlDQUFpQyxJQUFJLENBQUM7QUFDbkQsZUFBTyxNQUFNLGdDQUFnQyxJQUFJLENBQUM7QUFDbEQsb0ZBQW9GO0FBQ3BGLGVBQU8sTUFBTSxvQ0FBb0MsSUFBSSxDQUFDO0FBRXRELGtHQUFrRztBQUNsRyxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUNuQyxlQUFlLEVBQ2IscUJBQXFCLEdBQ3JCLGtCQUFrQixHQUNsQiwwQkFBMEIsR0FDMUIsdUJBQXVCLEdBQ3ZCLDhCQUE4QixHQUM5Qiw2QkFBNkIsR0FDN0IsaUJBQWlCLEdBQ2pCLGtDQUFrQyxHQUNsQyw2Q0FBNkMsR0FDN0MsMEJBQTBCLEdBQzFCLFNBQVMsQ0FDWixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxxQkFBYSxlQUFlO0lBMEJ4QixPQUFP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