@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
@@ -6,9 +6,11 @@ import type { Tx, TxHash } from '@aztec/stdlib/tx';
6
6
  import { type ComponentsVersions, getComponentsVersionsFromConfig } from '@aztec/stdlib/versioning';
7
7
  import { makeTracedFetch } from '@aztec/telemetry-client';
8
8
 
9
+ export type TxSourceCollectionResult = { validTxs: Tx[]; invalidTxHashes: string[] };
10
+
9
11
  export interface TxSource {
10
12
  getInfo(): string;
11
- getTxsByHash(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
13
+ getTxsByHash(txHashes: TxHash[]): Promise<TxSourceCollectionResult>;
12
14
  }
13
15
 
14
16
  export class NodeRpcTxSource implements TxSource {
@@ -26,8 +28,25 @@ export class NodeRpcTxSource implements TxSource {
26
28
  return this.info;
27
29
  }
28
30
 
29
- public getTxsByHash(txHashes: TxHash[]): Promise<(Tx | undefined)[]> {
30
- return this.client.getTxsByHash(txHashes);
31
+ public async getTxsByHash(txHashes: TxHash[]): Promise<TxSourceCollectionResult> {
32
+ return this.verifyTxs(await this.client.getTxsByHash(txHashes));
33
+ }
34
+
35
+ private async verifyTxs(txs: Tx[]): Promise<TxSourceCollectionResult> {
36
+ // Validate tx hashes for all collected txs from external sources
37
+ const validTxs: Tx[] = [];
38
+ const invalidTxHashes: string[] = [];
39
+ await Promise.all(
40
+ txs.map(async tx => {
41
+ const isValid = await tx.validateTxHash();
42
+ if (isValid) {
43
+ validTxs.push(tx);
44
+ } else {
45
+ invalidTxHashes.push(tx.getTxHash().toString());
46
+ }
47
+ }),
48
+ );
49
+ return { validTxs: validTxs, invalidTxHashes: invalidTxHashes };
31
50
  }
32
51
  }
33
52
 
@@ -146,7 +146,7 @@ export class TxFileStore {
146
146
  }
147
147
 
148
148
  await retry(
149
- () => this.fileStore.save(path, tx.toBuffer(), { compress: false }),
149
+ () => this.fileStore.save(path, tx.toBuffer(), { compress: true }),
150
150
  `Uploading tx ${txHash}`,
151
151
  makeBackoff([0.1, 0.5, 2]),
152
152
  this.log,
@@ -25,7 +25,7 @@ export class TxProvider implements ITxProvider {
25
25
  constructor(
26
26
  private txCollection: TxCollection,
27
27
  private txPool: TxPoolV2,
28
- private txValidator: Pick<P2PClient, 'validate'>,
28
+ private blockProposalTransactionValidator: Pick<P2PClient, 'validateTxsReceivedInBlockProposal'>,
29
29
  private log: Logger = createLogger('p2p:tx-collector'),
30
30
  client: TelemetryClient = getTelemetryClient(),
31
31
  ) {
@@ -227,7 +227,7 @@ export class TxProvider implements ITxProvider {
227
227
  if (txs.length === 0) {
228
228
  return;
229
229
  }
230
- await this.txValidator.validate(txs);
230
+ await this.blockProposalTransactionValidator.validateTxsReceivedInBlockProposal(txs);
231
231
  await this.txPool.addProtectedTxs(txs, blockHeader);
232
232
  }
233
233
  }
@@ -4,10 +4,9 @@ import { SecretValue } from '@aztec/foundation/config';
4
4
  import { type Logger, createLogger } from '@aztec/foundation/log';
5
5
  import { retryUntil } from '@aztec/foundation/retry';
6
6
  import { sleep } from '@aztec/foundation/sleep';
7
- import type { DataStoreConfig } from '@aztec/kv-store/config';
8
7
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
9
8
  import type { WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
10
- import { P2PClientType } from '@aztec/stdlib/p2p';
9
+ import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
11
10
 
12
11
  import { createP2PClient } from '../client/index.js';
13
12
  import type { P2PClient } from '../client/p2p_client.js';
@@ -98,7 +97,6 @@ export async function makeTestP2PClient(
98
97
  const kvStore = await openTmpStore('test');
99
98
 
100
99
  const client = await createP2PClient(
101
- P2PClientType.Full,
102
100
  config,
103
101
  l2BlockSource,
104
102
  proofVerifier,
@@ -4,7 +4,6 @@ import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
4
  import type { L2BlockSource } from '@aztec/stdlib/block';
5
5
  import type { ContractDataSource } from '@aztec/stdlib/contract';
6
6
  import type { ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
7
- import { P2PClientType } from '@aztec/stdlib/p2p';
8
7
  import type { TelemetryClient } from '@aztec/telemetry-client';
9
8
 
10
9
  import type { GossipsubEvents, GossipsubMessage } from '@chainsafe/libp2p-gossipsub';
@@ -42,11 +41,10 @@ type GossipSubService = PubSubLibp2p['services']['pubsub'];
42
41
  * Given a mock gossip sub network, returns a factory function that creates an instance LibP2PService connected to it.
43
42
  * Designed to be used in tests in P2PClientDeps.p2pServiceFactory.
44
43
  */
45
- export function getMockPubSubP2PServiceFactory<T extends P2PClientType>(
44
+ export function getMockPubSubP2PServiceFactory(
46
45
  network: MockGossipSubNetwork,
47
- ): (...args: Parameters<(typeof LibP2PService<T>)['new']>) => Promise<LibP2PService<T>> {
46
+ ): (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService> {
48
47
  return (
49
- clientType: P2PClientType,
50
48
  config: P2PConfig,
51
49
  peerId: PeerId,
52
50
  deps: {
@@ -66,8 +64,7 @@ export function getMockPubSubP2PServiceFactory<T extends P2PClientType>(
66
64
  const peerManager = new DummyPeerManager(peerId, network);
67
65
  const reqresp: ReqRespInterface = new MockReqResp(peerId, network);
68
66
  const peerDiscoveryService = new DummyPeerDiscoveryService();
69
- const service = new LibP2PService<T>(
70
- clientType as T,
67
+ const service = new LibP2PService(
71
68
  config,
72
69
  libp2p,
73
70
  peerDiscoveryService,
@@ -270,6 +267,16 @@ class MockGossipSubService extends TypedEventEmitter<GossipsubEvents> implements
270
267
  { msgId, propagationSource, acceptance },
271
268
  );
272
269
  }
270
+
271
+ getMeshPeers(topic?: TopicStr): PeerIdStr[] {
272
+ if (topic && !this.subscribedTopics.has(topic)) {
273
+ return [];
274
+ }
275
+ return this.network
276
+ .getPeers()
277
+ .filter(peer => !this.peerId.equals(peer))
278
+ .map(peer => peer.toString());
279
+ }
273
280
  }
274
281
 
275
282
  /**
@@ -2,7 +2,6 @@ import type { EpochCache } from '@aztec/epoch-cache';
2
2
  import { timesParallel } from '@aztec/foundation/collection';
3
3
  import { SecretValue } from '@aztec/foundation/config';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
- import type { DataStoreConfig } from '@aztec/kv-store/config';
6
5
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
7
6
  import type { L2BlockSource } from '@aztec/stdlib/block';
8
7
  import { type ChainConfig, emptyChainConfig } from '@aztec/stdlib/config';
@@ -12,7 +11,7 @@ import type {
12
11
  IVCProofVerificationResult,
13
12
  WorldStateSynchronizer,
14
13
  } from '@aztec/stdlib/interfaces/server';
15
- import type { P2PClientType } from '@aztec/stdlib/p2p';
14
+ import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
16
15
  import type { Tx } from '@aztec/stdlib/tx';
17
16
  import { compressComponentVersions } from '@aztec/stdlib/versioning';
18
17
  import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
@@ -107,8 +106,7 @@ export async function createLibp2pNode(
107
106
  *
108
107
  *
109
108
  */
110
- export async function createTestLibP2PService<T extends P2PClientType>(
111
- clientType: T,
109
+ export async function createTestLibP2PService(
112
110
  boostrapAddrs: string[] = [],
113
111
  archiver: L2BlockSource & ContractDataSource,
114
112
  worldStateSynchronizer: WorldStateSynchronizer,
@@ -159,8 +157,7 @@ export async function createTestLibP2PService<T extends P2PClientType>(
159
157
  p2pNode.services.pubsub.score.params.appSpecificScore = (peerId: string) =>
160
158
  peerManager.shouldDisableP2PGossip(peerId) ? -Infinity : peerManager.getPeerScore(peerId);
161
159
 
162
- return new LibP2PService<T>(
163
- clientType,
160
+ return new LibP2PService(
164
161
  config,
165
162
  p2pNode as PubSubLibp2p,
166
163
  discoveryService,
@@ -59,7 +59,7 @@ export class InMemoryTxPool extends EventEmitter implements TxPoolV2 {
59
59
 
60
60
  // === Core Operations (TxPoolV2) ===
61
61
 
62
- addPendingTxs(txs: Tx[], opts?: { source?: string }): Promise<AddTxsResult> {
62
+ addPendingTxs(txs: Tx[], opts?: { source?: string; feeComparisonOnly?: boolean }): Promise<AddTxsResult> {
63
63
  const accepted: TxHash[] = [];
64
64
  const newTxs: Tx[] = [];
65
65
  for (const tx of txs) {
@@ -76,7 +76,7 @@ export class InMemoryTxPool extends EventEmitter implements TxPoolV2 {
76
76
  return Promise.resolve({ accepted, ignored: [], rejected: [] });
77
77
  }
78
78
 
79
- canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored' | 'rejected'> {
79
+ canAddPendingTx(tx: Tx): Promise<'accepted' | 'ignored'> {
80
80
  const key = tx.getTxHash().toString();
81
81
  if (this.txsByHash.has(key)) {
82
82
  return Promise.resolve('ignored');
@@ -123,7 +123,7 @@ export class InMemoryTxPool extends EventEmitter implements TxPoolV2 {
123
123
  return Promise.resolve();
124
124
  }
125
125
 
126
- handlePrunedBlocks(_latestBlock: L2BlockId): Promise<void> {
126
+ handlePrunedBlocks(_latestBlock: L2BlockId, _options?: { deleteAllTxs?: boolean }): Promise<void> {
127
127
  return Promise.resolve();
128
128
  }
129
129
 
@@ -292,6 +292,7 @@ export function createMockEpochCache(): EpochCacheInterface {
292
292
  ethereumSlotDuration: 1,
293
293
  proofSubmissionEpochs: 1,
294
294
  targetCommitteeSize: 48,
295
+ rollupManaLimit: Number.MAX_SAFE_INTEGER,
295
296
  }),
296
297
  };
297
298
  }
@@ -12,14 +12,14 @@ import { Fr } from '@aztec/foundation/curves/bn254';
12
12
  import { type Logger, createLogger } from '@aztec/foundation/log';
13
13
  import { sleep } from '@aztec/foundation/sleep';
14
14
  import { DateProvider, Timer } from '@aztec/foundation/timer';
15
- import type { DataStoreConfig } from '@aztec/kv-store/config';
16
15
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
17
16
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
18
17
  import { protocolContractsHash } from '@aztec/protocol-contracts';
19
18
  import type { L2BlockSource } from '@aztec/stdlib/block';
20
19
  import type { ContractDataSource } from '@aztec/stdlib/contract';
21
20
  import type { ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
22
- import { type BlockProposal, P2PClientType, P2PMessage } from '@aztec/stdlib/p2p';
21
+ import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
22
+ import { type BlockProposal, P2PMessage } from '@aztec/stdlib/p2p';
23
23
  import { ChonkProof } from '@aztec/stdlib/proofs';
24
24
  import { makeAztecAddress, makeBlockHeader, makeBlockProposal, mockTx } from '@aztec/stdlib/testing';
25
25
  import { Tx, TxHash, type TxValidationResult } from '@aztec/stdlib/tx';
@@ -29,22 +29,19 @@ import type { Message, PeerId } from '@libp2p/interface';
29
29
  import { TopicValidatorResult } from '@libp2p/interface';
30
30
  import { peerIdFromString } from '@libp2p/peer-id';
31
31
 
32
- import type { P2PClient } from '../client/p2p_client.js';
32
+ import type { P2PClient } from '../client/index.js';
33
33
  import type { P2PConfig } from '../config.js';
34
34
  import { createP2PClient } from '../index.js';
35
- import type { MemPools } from '../mem_pools/interface.js';
36
- import { LibP2PService } from '../services/libp2p/libp2p_service.js';
35
+ import type { MemPools } from '../mem_pools/index.js';
36
+ import { BatchTxRequesterCollector, LibP2PService, SendBatchRequestCollector } from '../services/index.js';
37
37
  import type { PeerManager } from '../services/peer-manager/peer_manager.js';
38
38
  import type { BatchTxRequesterLibP2PService } from '../services/reqresp/batch-tx-requester/interface.js';
39
39
  import type { IBatchRequestTxValidator } from '../services/reqresp/batch-tx-requester/tx_validator.js';
40
40
  import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.js';
41
41
  import type { ReqResp } from '../services/reqresp/reqresp.js';
42
42
  import type { PeerDiscoveryService } from '../services/service.js';
43
- import {
44
- BatchTxRequesterCollector,
45
- SendBatchRequestCollector,
46
- } from '../services/tx_collection/proposal_tx_collector.js';
47
- import { AlwaysTrueCircuitVerifier } from '../test-helpers/reqresp-nodes.js';
43
+ import { MissingTxsTracker } from '../services/tx_collection/missing_txs_tracker.js';
44
+ import { AlwaysTrueCircuitVerifier } from '../test-helpers/index.js';
48
45
  import {
49
46
  BENCHMARK_CONSTANTS,
50
47
  type CollectorType,
@@ -55,7 +52,7 @@ import {
55
52
  createMockEpochCache,
56
53
  createMockWorldStateSynchronizer,
57
54
  filterTxsByDistribution,
58
- } from '../test-helpers/testbench-utils.js';
55
+ } from '../test-helpers/index.js';
59
56
  import type { PubSubLibp2p } from '../util.js';
60
57
 
61
58
  export type { DistributionPattern, CollectorType } from '../test-helpers/testbench-utils.js';
@@ -89,12 +86,11 @@ export interface BenchReadyMessage {
89
86
  }
90
87
  const txCache = new Map<number, Tx[]>();
91
88
 
92
- class TestLibP2PService<T extends P2PClientType = P2PClientType.Full> extends LibP2PService<T> {
89
+ class TestLibP2PService extends LibP2PService {
93
90
  private disableTxValidation: boolean;
94
91
  private gossipMessageCount = 0;
95
92
 
96
93
  constructor(
97
- clientType: T,
98
94
  config: P2PConfig,
99
95
  node: PubSubLibp2p,
100
96
  peerDiscoveryService: PeerDiscoveryService,
@@ -110,7 +106,6 @@ class TestLibP2PService<T extends P2PClientType = P2PClientType.Full> extends Li
110
106
  disableTxValidation = true,
111
107
  ) {
112
108
  super(
113
- clientType,
114
109
  config,
115
110
  node,
116
111
  peerDiscoveryService,
@@ -166,7 +161,7 @@ async function generateDeterministicTxs(txCount: number, seed: number, config: P
166
161
  return cached.slice(0, txCount);
167
162
  }
168
163
 
169
- const includeByTimestampBase = BigInt(seed);
164
+ const expirationTimestampBase = BigInt(seed);
170
165
  for (let i = cached.length; i < txCount; i++) {
171
166
  const txSeed = seed * 10000 + i;
172
167
  const tx = await mockTx(txSeed, {
@@ -182,7 +177,7 @@ async function generateDeterministicTxs(txCount: number, seed: number, config: P
182
177
  hasPublicTeardownCallRequest: false,
183
178
  publicCalldataSize: 0,
184
179
  });
185
- tx.data.includeByTimestamp = includeByTimestampBase + BigInt(i);
180
+ tx.data.expirationTimestamp = expirationTimestampBase + BigInt(i);
186
181
  await tx.recomputeHash();
187
182
  cached.push(tx);
188
183
  }
@@ -277,7 +272,12 @@ async function runAggregatorBenchmark(
277
272
  new DateProvider(),
278
273
  noopTxValidator,
279
274
  );
280
- const fetchedTxs = await collector.collectTxs(txHashes, blockProposal, pinnedPeer, timeoutMs);
275
+ const fetchedTxs = await collector.collectTxs(
276
+ MissingTxsTracker.fromArray(txHashes),
277
+ blockProposal,
278
+ pinnedPeer,
279
+ timeoutMs,
280
+ );
281
281
  const durationMs = timer.ms();
282
282
  return {
283
283
  type: 'BENCH_RESULT',
@@ -292,7 +292,12 @@ async function runAggregatorBenchmark(
292
292
  BENCHMARK_CONSTANTS.FIXED_MAX_PEERS,
293
293
  BENCHMARK_CONSTANTS.FIXED_MAX_RETRY_ATTEMPTS,
294
294
  );
295
- const fetchedTxs = await collector.collectTxs(txHashes, blockProposal, pinnedPeer, timeoutMs);
295
+ const fetchedTxs = await collector.collectTxs(
296
+ MissingTxsTracker.fromArray(txHashes),
297
+ blockProposal,
298
+ pinnedPeer,
299
+ timeoutMs,
300
+ );
296
301
  const durationMs = timer.ms();
297
302
  return {
298
303
  type: 'BENCH_RESULT',
@@ -335,6 +340,7 @@ process.on('message', async msg => {
335
340
  const config: P2PConfig = {
336
341
  ...rawConfig,
337
342
  peerIdPrivateKey: rawConfig.peerIdPrivateKey ? new SecretValue(rawConfig.peerIdPrivateKey) : undefined,
343
+ priceBumpPercentage: 10n,
338
344
  } as P2PConfig;
339
345
 
340
346
  workerConfig = config;
@@ -358,7 +364,6 @@ process.on('message', async msg => {
358
364
  };
359
365
 
360
366
  const client = await createP2PClient(
361
- P2PClientType.Full,
362
367
  config as P2PConfig & DataStoreConfig,
363
368
  l2BlockSource,
364
369
  proofVerifier as ClientProtocolCircuitVerifier,
@@ -371,7 +376,6 @@ process.on('message', async msg => {
371
376
  );
372
377
 
373
378
  const testService = new TestLibP2PService(
374
- P2PClientType.Full,
375
379
  config,
376
380
  (client as any).p2pService.node,
377
381
  (client as any).p2pService.peerDiscoveryService,
@@ -81,13 +81,15 @@ class WorkerClientManager {
81
81
  * Note: We send the raw peerIdPrivateKey string instead of SecretValue
82
82
  * because SecretValue.toJSON() returns '[Redacted]', losing the value.
83
83
  * The worker must re-wrap it in SecretValue.
84
+ * We also omit priceBumpPercentage since it's a bigint and can't be
85
+ * serialized over IPC (which uses JSON under the hood).
84
86
  */
85
87
  private createClientConfig(
86
88
  clientIndex: number,
87
89
  port: number,
88
90
  otherNodes: string[],
89
- ): Omit<P2PConfig, 'peerIdPrivateKey'> & { peerIdPrivateKey: string } & Partial<ChainConfig> {
90
- return {
91
+ ): Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & { peerIdPrivateKey: string } & Partial<ChainConfig> {
92
+ const { priceBumpPercentage: _, ...config } = {
91
93
  ...getP2PDefaultConfig(),
92
94
  p2pEnabled: true,
93
95
  peerIdPrivateKey: this.peerIdPrivateKeys[clientIndex],
@@ -96,7 +98,10 @@ class WorkerClientManager {
96
98
  p2pPort: port,
97
99
  bootstrapNodes: [...otherNodes],
98
100
  ...this.p2pConfig,
99
- } as Omit<P2PConfig, 'peerIdPrivateKey'> & { peerIdPrivateKey: string } & Partial<ChainConfig>;
101
+ };
102
+ return config as Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & {
103
+ peerIdPrivateKey: string;
104
+ } & Partial<ChainConfig>;
100
105
  }
101
106
 
102
107
  /**
@@ -104,7 +109,9 @@ class WorkerClientManager {
104
109
  * Config uses raw string for peerIdPrivateKey (not SecretValue) for IPC serialization.
105
110
  */
106
111
  private spawnWorkerProcess(
107
- config: Omit<P2PConfig, 'peerIdPrivateKey'> & { peerIdPrivateKey: string } & Partial<ChainConfig>,
112
+ config: Omit<P2PConfig, 'peerIdPrivateKey' | 'priceBumpPercentage'> & {
113
+ peerIdPrivateKey: string;
114
+ } & Partial<ChainConfig>,
108
115
  clientIndex: number,
109
116
  ): [ChildProcess, Promise<void>] {
110
117
  const useCompiled = existsSync(workerJsPath);
@@ -483,7 +490,8 @@ class WorkerClientManager {
483
490
  };
484
491
 
485
492
  this.processes[0].send(aggregatorCmd);
486
- const result = await this.waitForBenchResult(0, config.timeoutMs + 30000);
493
+ const aggregatorBudgetMs = config.timeoutMs + BENCHMARK_CONSTANTS.MAX_PEER_WAIT_MS + 30000;
494
+ const result = await this.waitForBenchResult(0, aggregatorBudgetMs);
487
495
 
488
496
  this.logger.info(
489
497
  `Benchmark complete: fetched=${result.fetchedCount}/${config.txCount}, duration=${result.durationMs.toFixed(0)}ms, success=${result.success}`,
package/src/util.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { SecretValue } from '@aztec/foundation/config';
2
2
  import type { Logger } from '@aztec/foundation/log';
3
3
  import type { AztecAsyncKVStore, AztecAsyncSingleton } from '@aztec/kv-store';
4
- import type { DataStoreConfig } from '@aztec/kv-store/config';
4
+ import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
5
5
 
6
6
  import type { GossipSub } from '@chainsafe/libp2p-gossipsub';
7
7
  import { generateKeyPair, marshalPrivateKey, unmarshalPrivateKey } from '@libp2p/crypto/keys';
@@ -23,7 +23,13 @@ export interface PubSubLibp2p extends Pick<Libp2p, 'status' | 'start' | 'stop' |
23
23
  services: {
24
24
  pubsub: Pick<
25
25
  GossipSub,
26
- 'addEventListener' | 'removeEventListener' | 'publish' | 'subscribe' | 'reportMessageValidationResult' | 'direct'
26
+ | 'addEventListener'
27
+ | 'removeEventListener'
28
+ | 'publish'
29
+ | 'subscribe'
30
+ | 'reportMessageValidationResult'
31
+ | 'direct'
32
+ | 'getMeshPeers'
27
33
  > & { score: Pick<GossipSub['score'], 'score'> };
28
34
  };
29
35
  }
@@ -1,23 +0,0 @@
1
- import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import type { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
3
- import type { EthAddress } from '@aztec/foundation/eth-address';
4
- import { type BlockProposal, type CheckpointProposal, type ValidationResult } from '@aztec/stdlib/p2p';
5
- import type { TxHash } from '@aztec/stdlib/tx';
6
- import type { MockProxy } from 'jest-mock-extended';
7
- export interface ProposalValidatorTestParams<TProposal extends BlockProposal | CheckpointProposal> {
8
- validatorFactory: (epochCache: EpochCacheInterface, opts: {
9
- txsPermitted: boolean;
10
- }) => {
11
- validate: (proposal: TProposal) => Promise<ValidationResult>;
12
- };
13
- makeProposal: (options?: any) => Promise<TProposal>;
14
- makeHeader: (epochNumber: number | bigint, slotNumber: number | bigint, blockNumber: number | bigint) => any;
15
- getSigner: () => Secp256k1Signer;
16
- getAddress: (signer?: Secp256k1Signer) => EthAddress;
17
- getSlot: (slot: number | bigint) => any;
18
- getTxHashes: (n: number) => TxHash[];
19
- getTxs: () => any[];
20
- epochCacheMock: () => MockProxy<EpochCacheInterface>;
21
- }
22
- export declare function sharedProposalValidatorTests<TProposal extends BlockProposal | CheckpointProposal>(params: ProposalValidatorTestParams<TProposal>): void;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdmFsaWRhdG9yX3Rlc3Rfc3VpdGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy9wcm9wb3NhbF92YWxpZGF0b3IvcHJvcG9zYWxfdmFsaWRhdG9yX3Rlc3Rfc3VpdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsS0FBSyxhQUFhLEVBQ2xCLEtBQUssa0JBQWtCLEVBRXZCLEtBQUssZ0JBQWdCLEVBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsTUFBTSxXQUFXLDJCQUEyQixDQUFDLFNBQVMsU0FBUyxhQUFhLEdBQUcsa0JBQWtCO0lBQy9GLGdCQUFnQixFQUFFLENBQ2hCLFVBQVUsRUFBRSxtQkFBbUIsRUFDL0IsSUFBSSxFQUFFO1FBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQTtLQUFFLEtBQzVCO1FBQUUsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsS0FBSyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtLQUFFLENBQUM7SUFDdEUsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxLQUFLLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxVQUFVLEVBQUUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sS0FBSyxHQUFHLENBQUM7SUFDN0csU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0lBQ2pDLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGVBQWUsS0FBSyxVQUFVLENBQUM7SUFDckQsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxNQUFNLEtBQUssR0FBRyxDQUFDO0lBQ3hDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDckMsTUFBTSxFQUFFLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDcEIsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Q0FDdEQ7QUFFRCx3QkFBZ0IsNEJBQTRCLENBQUMsU0FBUyxTQUFTLGFBQWEsR0FBRyxrQkFBa0IsRUFDL0YsTUFBTSxFQUFFLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxRQXdNL0MifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"proposal_validator_test_suite.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/proposal_validator/proposal_validator_test_suite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,2BAA2B,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB;IAC/F,gBAAgB,EAAE,CAChB,UAAU,EAAE,mBAAmB,EAC/B,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE,KAC5B;QAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;KAAE,CAAC;IACtE,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACpD,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;IAC7G,SAAS,EAAE,MAAM,eAAe,CAAC;IACjC,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,UAAU,CAAC;IACrD,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,GAAG,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,SAAS,CAAC,mBAAmB,CAAC,CAAC;CACtD;AAED,wBAAgB,4BAA4B,CAAC,SAAS,SAAS,aAAa,GAAG,kBAAkB,EAC/F,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,QAwM/C"}