@aztec/end-to-end 0.0.1-commit.24de95ac → 0.0.1-commit.2606882

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 (299) hide show
  1. package/README.md +27 -0
  2. package/dest/bench/client_flows/benchmark.d.ts +17 -2
  3. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  4. package/dest/bench/client_flows/benchmark.js +38 -1
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts +23 -17
  6. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  7. package/dest/bench/client_flows/client_flows_benchmark.js +143 -136
  8. package/dest/bench/client_flows/config.d.ts +2 -2
  9. package/dest/bench/client_flows/config.d.ts.map +1 -1
  10. package/dest/bench/client_flows/config.js +18 -0
  11. package/dest/bench/client_flows/data_extractor.d.ts +1 -1
  12. package/dest/bench/client_flows/data_extractor.js +7 -27
  13. package/dest/bench/utils.d.ts +8 -7
  14. package/dest/bench/utils.d.ts.map +1 -1
  15. package/dest/bench/utils.js +33 -19
  16. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +12 -10
  17. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  18. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +120 -117
  19. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +33 -16
  20. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  21. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +124 -70
  22. package/dest/e2e_deploy_contract/deploy_test.d.ts +7 -6
  23. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  24. package/dest/e2e_deploy_contract/deploy_test.js +20 -14
  25. package/dest/e2e_epochs/epochs_test.d.ts +49 -16
  26. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  27. package/dest/e2e_epochs/epochs_test.js +188 -64
  28. package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
  29. package/dest/e2e_fees/bridging_race.notest.js +5 -7
  30. package/dest/e2e_fees/fees_test.d.ts +25 -18
  31. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  32. package/dest/e2e_fees/fees_test.js +162 -141
  33. package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
  34. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  35. package/dest/e2e_l1_publisher/write_json.js +18 -19
  36. package/dest/e2e_multi_validator/utils.d.ts +1 -1
  37. package/dest/e2e_multi_validator/utils.js +1 -1
  38. package/dest/e2e_nested_contract/nested_contract_test.d.ts +7 -10
  39. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  40. package/dest/e2e_nested_contract/nested_contract_test.js +32 -40
  41. package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
  42. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  43. package/dest/e2e_p2p/inactivity_slash_test.js +11 -9
  44. package/dest/e2e_p2p/p2p_network.d.ts +237 -28
  45. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  46. package/dest/e2e_p2p/p2p_network.js +176 -129
  47. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  48. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  49. package/dest/e2e_p2p/reqresp/utils.js +206 -0
  50. package/dest/e2e_p2p/shared.d.ts +44 -15
  51. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  52. package/dest/e2e_p2p/shared.js +102 -68
  53. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  54. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  55. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  56. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  57. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  58. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  59. package/dest/e2e_token_contract/token_contract_test.d.ts +20 -11
  60. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  61. package/dest/e2e_token_contract/token_contract_test.js +103 -93
  62. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  63. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  64. package/dest/fixtures/authwit_proxy.js +34 -0
  65. package/dest/fixtures/e2e_prover_test.d.ts +19 -24
  66. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  67. package/dest/fixtures/e2e_prover_test.js +126 -145
  68. package/dest/fixtures/elu_monitor.d.ts +21 -0
  69. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  70. package/dest/fixtures/elu_monitor.js +102 -0
  71. package/dest/fixtures/fixtures.d.ts +75 -3
  72. package/dest/fixtures/fixtures.d.ts.map +1 -1
  73. package/dest/fixtures/fixtures.js +73 -3
  74. package/dest/fixtures/get_acvm_config.d.ts +1 -1
  75. package/dest/fixtures/get_acvm_config.js +1 -1
  76. package/dest/fixtures/get_bb_config.d.ts +1 -1
  77. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  78. package/dest/fixtures/get_bb_config.js +5 -5
  79. package/dest/fixtures/ha_setup.d.ts +71 -0
  80. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  81. package/dest/fixtures/ha_setup.js +116 -0
  82. package/dest/fixtures/index.d.ts +2 -1
  83. package/dest/fixtures/index.d.ts.map +1 -1
  84. package/dest/fixtures/index.js +1 -0
  85. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  86. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  87. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  88. package/dest/fixtures/logging.d.ts +1 -1
  89. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts +25 -0
  90. package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
  91. package/dest/fixtures/schnorr_hardcoded_account_contract.js +37 -0
  92. package/dest/fixtures/setup.d.ts +272 -0
  93. package/dest/fixtures/setup.d.ts.map +1 -0
  94. package/dest/fixtures/setup.js +735 -0
  95. package/dest/fixtures/setup_p2p_test.d.ts +22 -11
  96. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  97. package/dest/fixtures/setup_p2p_test.js +57 -38
  98. package/dest/fixtures/token_utils.d.ts +6 -3
  99. package/dest/fixtures/token_utils.d.ts.map +1 -1
  100. package/dest/fixtures/token_utils.js +13 -9
  101. package/dest/fixtures/utils.d.ts +5 -192
  102. package/dest/fixtures/utils.d.ts.map +1 -1
  103. package/dest/fixtures/utils.js +4 -648
  104. package/dest/fixtures/web3signer.d.ts +1 -1
  105. package/dest/fixtures/web3signer.js +1 -1
  106. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  107. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  108. package/dest/fixtures/with_telemetry_utils.js +2 -2
  109. package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
  110. package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
  111. package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
  112. package/dest/forward-compatibility/wallet_service.d.ts +3 -0
  113. package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
  114. package/dest/forward-compatibility/wallet_service.js +109 -0
  115. package/dest/index.d.ts +1 -1
  116. package/dest/install_legacy_contracts.d.cts +10 -0
  117. package/dest/install_legacy_contracts.d.cts.map +1 -0
  118. package/dest/legacy-jest-resolver.d.cts +3 -0
  119. package/dest/legacy-jest-resolver.d.cts.map +1 -0
  120. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  121. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  122. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  123. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  124. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  125. package/dest/quality_of_service/prometheus_client.js +67 -0
  126. package/dest/shared/cross_chain_test_harness.d.ts +9 -6
  127. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  128. package/dest/shared/cross_chain_test_harness.js +34 -30
  129. package/dest/shared/gas_portal_test_harness.d.ts +9 -6
  130. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  131. package/dest/shared/gas_portal_test_harness.js +21 -12
  132. package/dest/shared/index.d.ts +3 -2
  133. package/dest/shared/index.d.ts.map +1 -1
  134. package/dest/shared/index.js +1 -0
  135. package/dest/shared/jest_setup.d.ts +1 -1
  136. package/dest/shared/jest_setup.js +41 -1
  137. package/dest/shared/mock_state_view.d.ts +86 -0
  138. package/dest/shared/mock_state_view.d.ts.map +1 -0
  139. package/dest/shared/mock_state_view.js +186 -0
  140. package/dest/shared/submit-transactions.d.ts +4 -4
  141. package/dest/shared/submit-transactions.d.ts.map +1 -1
  142. package/dest/shared/submit-transactions.js +9 -11
  143. package/dest/shared/uniswap_l1_l2.d.ts +3 -27
  144. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  145. package/dest/shared/uniswap_l1_l2.js +87 -50
  146. package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
  147. package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
  148. package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
  149. package/dest/simulators/index.d.ts +1 -1
  150. package/dest/simulators/lending_simulator.d.ts +11 -4
  151. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  152. package/dest/simulators/lending_simulator.js +32 -18
  153. package/dest/simulators/token_simulator.d.ts +1 -1
  154. package/dest/simulators/token_simulator.d.ts.map +1 -1
  155. package/dest/simulators/token_simulator.js +3 -24
  156. package/dest/spartan/setup_test_wallets.d.ts +18 -6
  157. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  158. package/dest/spartan/setup_test_wallets.js +159 -30
  159. package/dest/spartan/tx_metrics.d.ts +102 -0
  160. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  161. package/dest/spartan/tx_metrics.js +475 -0
  162. package/dest/spartan/utils/bot.d.ts +28 -0
  163. package/dest/spartan/utils/bot.d.ts.map +1 -0
  164. package/dest/spartan/utils/bot.js +142 -0
  165. package/dest/spartan/utils/chaos.d.ts +79 -0
  166. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  167. package/dest/spartan/utils/chaos.js +142 -0
  168. package/dest/spartan/utils/clients.d.ts +39 -0
  169. package/dest/spartan/utils/clients.d.ts.map +1 -0
  170. package/dest/spartan/utils/clients.js +90 -0
  171. package/dest/spartan/utils/config.d.ts +19 -0
  172. package/dest/spartan/utils/config.d.ts.map +1 -0
  173. package/dest/spartan/utils/config.js +23 -0
  174. package/dest/spartan/utils/health.d.ts +63 -0
  175. package/dest/spartan/utils/health.d.ts.map +1 -0
  176. package/dest/spartan/utils/health.js +202 -0
  177. package/dest/spartan/utils/helm.d.ts +15 -0
  178. package/dest/spartan/utils/helm.d.ts.map +1 -0
  179. package/dest/spartan/utils/helm.js +47 -0
  180. package/dest/spartan/utils/index.d.ts +11 -0
  181. package/dest/spartan/utils/index.d.ts.map +1 -0
  182. package/dest/spartan/utils/index.js +22 -0
  183. package/dest/spartan/utils/k8s.d.ts +128 -0
  184. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  185. package/dest/spartan/utils/k8s.js +381 -0
  186. package/dest/spartan/utils/nodes.d.ts +40 -0
  187. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  188. package/dest/spartan/utils/nodes.js +461 -0
  189. package/dest/spartan/utils/pod_logs.d.ts +25 -0
  190. package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
  191. package/dest/spartan/utils/pod_logs.js +74 -0
  192. package/dest/spartan/utils/scripts.d.ts +30 -0
  193. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  194. package/dest/spartan/utils/scripts.js +81 -0
  195. package/dest/spartan/utils.d.ts +2 -218
  196. package/dest/spartan/utils.d.ts.map +1 -1
  197. package/dest/spartan/utils.js +1 -749
  198. package/dest/test-wallet/test_wallet.d.ts +85 -0
  199. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  200. package/dest/test-wallet/test_wallet.js +273 -0
  201. package/dest/test-wallet/utils.d.ts +41 -0
  202. package/dest/test-wallet/utils.d.ts.map +1 -0
  203. package/dest/test-wallet/utils.js +66 -0
  204. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  205. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  206. package/dest/test-wallet/wallet_worker_script.js +53 -0
  207. package/dest/test-wallet/worker_wallet.d.ts +53 -0
  208. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  209. package/dest/test-wallet/worker_wallet.js +155 -0
  210. package/dest/test-wallet/worker_wallet_schema.d.ts +160 -0
  211. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  212. package/dest/test-wallet/worker_wallet_schema.js +22 -0
  213. package/package.json +56 -46
  214. package/src/bench/client_flows/benchmark.ts +43 -2
  215. package/src/bench/client_flows/client_flows_benchmark.ts +203 -206
  216. package/src/bench/client_flows/config.ts +9 -1
  217. package/src/bench/client_flows/data_extractor.ts +6 -28
  218. package/src/bench/utils.ts +38 -22
  219. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +141 -152
  220. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +180 -127
  221. package/src/e2e_deploy_contract/deploy_test.ts +25 -17
  222. package/src/e2e_epochs/epochs_test.ts +254 -116
  223. package/src/e2e_fees/bridging_race.notest.ts +6 -12
  224. package/src/e2e_fees/fees_test.ts +215 -229
  225. package/src/e2e_l1_publisher/write_json.ts +20 -19
  226. package/src/e2e_multi_validator/utils.ts +1 -1
  227. package/src/e2e_nested_contract/nested_contract_test.ts +38 -56
  228. package/src/e2e_p2p/inactivity_slash_test.ts +12 -10
  229. package/src/e2e_p2p/p2p_network.ts +246 -201
  230. package/src/e2e_p2p/reqresp/utils.ts +274 -0
  231. package/src/e2e_p2p/shared.ts +132 -82
  232. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  233. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  234. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  235. package/src/e2e_token_contract/token_contract_test.ts +129 -117
  236. package/src/fixtures/authwit_proxy.ts +54 -0
  237. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  238. package/src/fixtures/e2e_prover_test.ts +154 -199
  239. package/src/fixtures/elu_monitor.ts +126 -0
  240. package/src/fixtures/fixtures.ts +95 -5
  241. package/src/fixtures/get_acvm_config.ts +1 -1
  242. package/src/fixtures/get_bb_config.ts +7 -6
  243. package/src/fixtures/ha_setup.ts +188 -0
  244. package/src/fixtures/index.ts +1 -0
  245. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  246. package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
  247. package/src/fixtures/setup.ts +1056 -0
  248. package/src/fixtures/setup_p2p_test.ts +70 -56
  249. package/src/fixtures/token_utils.ts +9 -8
  250. package/src/fixtures/utils.ts +29 -947
  251. package/src/fixtures/web3signer.ts +1 -1
  252. package/src/fixtures/with_telemetry_utils.ts +2 -2
  253. package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
  254. package/src/forward-compatibility/wallet_service.ts +104 -0
  255. package/src/guides/up_quick_start.sh +4 -6
  256. package/src/install_legacy_contracts.cjs +75 -0
  257. package/src/legacy-jest-resolver.cjs +112 -0
  258. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  259. package/src/quality_of_service/prometheus_client.ts +113 -0
  260. package/src/shared/cross_chain_test_harness.ts +37 -40
  261. package/src/shared/gas_portal_test_harness.ts +24 -14
  262. package/src/shared/index.ts +2 -1
  263. package/src/shared/jest_setup.ts +51 -1
  264. package/src/shared/mock_state_view.ts +188 -0
  265. package/src/shared/submit-transactions.ts +11 -16
  266. package/src/shared/uniswap_l1_l2.ts +142 -114
  267. package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
  268. package/src/simulators/lending_simulator.ts +39 -19
  269. package/src/simulators/token_simulator.ts +6 -30
  270. package/src/spartan/DEVELOP.md +7 -0
  271. package/src/spartan/setup_test_wallets.ts +234 -32
  272. package/src/spartan/tx_metrics.ts +434 -0
  273. package/src/spartan/utils/bot.ts +188 -0
  274. package/src/spartan/utils/chaos.ts +253 -0
  275. package/src/spartan/utils/clients.ts +100 -0
  276. package/src/spartan/utils/config.ts +29 -0
  277. package/src/spartan/utils/health.ts +255 -0
  278. package/src/spartan/utils/helm.ts +84 -0
  279. package/src/spartan/utils/index.ts +71 -0
  280. package/src/spartan/utils/k8s.ts +535 -0
  281. package/src/spartan/utils/nodes.ts +543 -0
  282. package/src/spartan/utils/pod_logs.ts +99 -0
  283. package/src/spartan/utils/scripts.ts +99 -0
  284. package/src/spartan/utils.ts +1 -942
  285. package/src/test-wallet/test_wallet.ts +376 -0
  286. package/src/test-wallet/utils.ts +108 -0
  287. package/src/test-wallet/wallet_worker_script.ts +63 -0
  288. package/src/test-wallet/worker_wallet.ts +218 -0
  289. package/src/test-wallet/worker_wallet_schema.ts +13 -0
  290. package/dest/fixtures/setup_l1_contracts.d.ts +0 -6
  291. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  292. package/dest/fixtures/setup_l1_contracts.js +0 -17
  293. package/dest/fixtures/snapshot_manager.d.ts +0 -95
  294. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  295. package/dest/fixtures/snapshot_manager.js +0 -505
  296. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  297. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  298. package/src/fixtures/setup_l1_contracts.ts +0 -26
  299. package/src/fixtures/snapshot_manager.ts +0 -665
@@ -1,7 +1,14 @@
1
+ import { generateSchnorrAccounts } from '@aztec/accounts/testing';
2
+ import { getAccountContractAddress } from '@aztec/aztec.js/account';
1
3
  import { EthAddress } from '@aztec/aztec.js/addresses';
2
4
  import { Fr } from '@aztec/aztec.js/fields';
3
- import { GSEContract, MultiAdderArtifact, RollupContract, createL1TxUtilsFromViemWallet, deployL1Contract, getL1ContractsConfigEnvVars } from '@aztec/ethereum';
5
+ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
6
+ import { GSEContract, RollupContract } from '@aztec/ethereum/contracts';
7
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
8
+ import { MultiAdderArtifact } from '@aztec/ethereum/l1-artifacts';
9
+ import { createL1TxUtils } from '@aztec/ethereum/l1-tx-utils';
4
10
  import { ChainMonitor } from '@aztec/ethereum/test';
11
+ import { EpochNumber } from '@aztec/foundation/branded-types';
5
12
  import { SecretValue } from '@aztec/foundation/config';
6
13
  import { createLogger } from '@aztec/foundation/log';
7
14
  import { retryUntil } from '@aztec/foundation/retry';
@@ -9,15 +16,15 @@ import { RollupAbi, SlasherAbi, TestERC20Abi } from '@aztec/l1-artifacts';
9
16
  import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
10
17
  import { createBootstrapNodeFromPrivateKey, getBootstrapNodeEnr } from '@aztec/p2p/test-helpers';
11
18
  import { tryStop } from '@aztec/stdlib/interfaces/server';
12
- import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
19
+ import { TopicType } from '@aztec/stdlib/p2p';
13
20
  import { ZkPassportProofParams } from '@aztec/stdlib/zkpassport';
14
21
  import { getGenesisValues } from '@aztec/world-state/testing';
15
22
  import getPort from 'get-port';
16
23
  import { getAddress, getContract } from 'viem';
17
24
  import { privateKeyToAccount } from 'viem/accounts';
25
+ import { SCHNORR_HARDCODED_PRIVATE_KEY, SchnorrHardcodedKeyAccountContract } from '../fixtures/schnorr_hardcoded_account_contract.js';
26
+ import { getPrivateKeyFromIndex, getSponsoredFPCAddress, setup, teardown } from '../fixtures/setup.js';
18
27
  import { ATTESTER_PRIVATE_KEYS_START_INDEX, createValidatorConfig, generatePrivateKeys } from '../fixtures/setup_p2p_test.js';
19
- import { createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
20
- import { getPrivateKeyFromIndex, getSponsoredFPCAddress } from '../fixtures/utils.js';
21
28
  import { getEndToEndTestTelemetryClient } from '../fixtures/with_telemetry_utils.js';
22
29
  // Use a fixed bootstrap node private key so that we can re-use the same snapshot and the nodes can find each other
23
30
  const BOOTSTRAP_NODE_PRIVATE_KEY = '080212208f988fc0899e4a73a5aee4d271a5f20670603a756ad8d84f2c94263a6427c591';
@@ -26,7 +33,7 @@ export const WAIT_FOR_TX_TIMEOUT = l1ContractsConfig.aztecSlotDuration * 3;
26
33
  export const SHORTENED_BLOCK_TIME_CONFIG_NO_PRUNES = {
27
34
  aztecSlotDuration: 12,
28
35
  ethereumSlotDuration: 4,
29
- aztecProofSubmissionWindow: 640
36
+ aztecProofSubmissionEpochs: 640
30
37
  };
31
38
  export class P2PNetworkTest {
32
39
  testName;
@@ -35,7 +42,7 @@ export class P2PNetworkTest {
35
42
  numberOfValidators;
36
43
  numberOfNodes;
37
44
  metricsPort;
38
- snapshotManager;
45
+ context;
39
46
  baseAccountPrivateKey;
40
47
  baseAccount;
41
48
  logger;
@@ -45,15 +52,18 @@ export class P2PNetworkTest {
45
52
  attesterPublicKeys;
46
53
  peerIdPrivateKeys;
47
54
  validators;
48
- deployedAccounts;
49
- prefilledPublicData;
55
+ hardcodedAccountData;
56
+ genesis;
50
57
  // The re-execution test needs a wallet and a spam contract
51
58
  wallet;
52
59
  defaultAccountAddress;
53
60
  spamContract;
54
61
  bootstrapNode;
62
+ // Store setup options for use in setup()
63
+ setupOptions;
64
+ deployL1ContractsArgs;
55
65
  constructor(testName, bootstrapNodeEnr, bootNodePort, numberOfValidators, initialValidatorConfig, numberOfNodes = 0, // If set enable metrics collection
56
- metricsPort, startProverNode, mockZkPassportVerifier){
66
+ metricsPort, startProverNode){
57
67
  this.testName = testName;
58
68
  this.bootstrapNodeEnr = bootstrapNodeEnr;
59
69
  this.bootNodePort = bootNodePort;
@@ -64,8 +74,6 @@ export class P2PNetworkTest {
64
74
  this.attesterPublicKeys = [];
65
75
  this.peerIdPrivateKeys = [];
66
76
  this.validators = [];
67
- this.deployedAccounts = [];
68
- this.prefilledPublicData = [];
69
77
  this.logger = createLogger(`e2e:e2e_p2p:${testName}`);
70
78
  // Set up the base account and node private keys for the initial network deployment
71
79
  this.baseAccountPrivateKey = `0x${getPrivateKeyFromIndex(1).toString('hex')}`;
@@ -73,56 +81,55 @@ export class P2PNetworkTest {
73
81
  this.attesterPrivateKeys = generatePrivateKeys(ATTESTER_PRIVATE_KEYS_START_INDEX + numberOfNodes, numberOfValidators);
74
82
  this.attesterPublicKeys = this.attesterPrivateKeys.map((privateKey)=>privateKeyToAccount(privateKey).address);
75
83
  const zkPassportParams = ZkPassportProofParams.random();
76
- this.snapshotManager = createSnapshotManager(`e2e_p2p_network/${testName}`, process.env.E2E_DATA_PATH, {
84
+ // Store setup options for later use
85
+ this.setupOptions = {
77
86
  ...initialValidatorConfig,
78
87
  ethereumSlotDuration: initialValidatorConfig.ethereumSlotDuration ?? l1ContractsConfig.ethereumSlotDuration,
79
88
  aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
80
89
  aztecSlotDuration: initialValidatorConfig.aztecSlotDuration ?? l1ContractsConfig.aztecSlotDuration,
81
90
  aztecProofSubmissionEpochs: initialValidatorConfig.aztecProofSubmissionEpochs ?? l1ContractsConfig.aztecProofSubmissionEpochs,
82
91
  slashingRoundSizeInEpochs: initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
83
- slasherFlavor: initialValidatorConfig.slasherFlavor ?? 'tally',
92
+ slasherEnabled: initialValidatorConfig.slasherEnabled ?? true,
84
93
  aztecTargetCommitteeSize: numberOfValidators,
85
- salt: 420,
86
94
  metricsPort: metricsPort,
87
95
  numberOfInitialFundedAccounts: 2,
88
96
  startProverNode
89
- }, {
97
+ };
98
+ this.deployL1ContractsArgs = {
90
99
  ...initialValidatorConfig,
91
100
  aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
92
101
  slashingRoundSizeInEpochs: initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
93
- slasherFlavor: initialValidatorConfig.slasherFlavor ?? 'tally',
102
+ slasherEnabled: initialValidatorConfig.slasherEnabled ?? true,
94
103
  ethereumSlotDuration: initialValidatorConfig.ethereumSlotDuration ?? l1ContractsConfig.ethereumSlotDuration,
95
104
  aztecSlotDuration: initialValidatorConfig.aztecSlotDuration ?? l1ContractsConfig.aztecSlotDuration,
96
105
  aztecProofSubmissionEpochs: initialValidatorConfig.aztecProofSubmissionEpochs ?? l1ContractsConfig.aztecProofSubmissionEpochs,
97
106
  aztecTargetCommitteeSize: numberOfValidators,
98
107
  initialValidators: [],
99
108
  zkPassportArgs: {
100
- mockZkPassportVerifier,
101
109
  zkPassportDomain: zkPassportParams.domain,
102
110
  zkPassportScope: zkPassportParams.scope
103
111
  }
104
- });
112
+ };
105
113
  }
106
- static async create({ testName, numberOfNodes, numberOfValidators, basePort, metricsPort, initialConfig, startProverNode, mockZkPassportVerifier }) {
114
+ static async create({ testName, numberOfNodes, numberOfValidators, basePort, metricsPort, initialConfig, startProverNode }) {
107
115
  const port = basePort || await getPort();
108
116
  const bootstrapNodeENR = await getBootstrapNodeEnr(BOOTSTRAP_NODE_PRIVATE_KEY, port);
109
117
  const bootstrapNodeEnr = bootstrapNodeENR.encodeTxt();
110
118
  const initialValidatorConfig = await createValidatorConfig(initialConfig ?? {}, bootstrapNodeEnr);
111
- return new P2PNetworkTest(testName, bootstrapNodeEnr, port, numberOfValidators, initialValidatorConfig, numberOfNodes, metricsPort, startProverNode, mockZkPassportVerifier);
119
+ return new P2PNetworkTest(testName, bootstrapNodeEnr, port, numberOfValidators, initialValidatorConfig, numberOfNodes, metricsPort, startProverNode);
112
120
  }
113
121
  get fundedAccount() {
114
- if (!this.deployedAccounts[0]) {
115
- throw new Error('Call snapshot t.setupAccount to create a funded account.');
122
+ if (!this.hardcodedAccountData) {
123
+ throw new Error('Call setup to initialize the hardcoded account.');
116
124
  }
117
- return this.deployedAccounts[0];
125
+ return this.hardcodedAccountData;
118
126
  }
119
127
  async addBootstrapNode() {
120
- await this.snapshotManager.snapshot('add-bootstrap-node', async ({ aztecNodeConfig })=>{
121
- const telemetry = getEndToEndTestTelemetryClient(this.metricsPort);
122
- this.bootstrapNode = await createBootstrapNodeFromPrivateKey(BOOTSTRAP_NODE_PRIVATE_KEY, this.bootNodePort, telemetry, aztecNodeConfig);
123
- // Overwrite enr with updated info
124
- this.bootstrapNodeEnr = this.bootstrapNode.getENR().encodeTxt();
125
- });
128
+ this.logger.info('Adding bootstrap node');
129
+ const telemetry = await getEndToEndTestTelemetryClient(this.metricsPort);
130
+ this.bootstrapNode = await createBootstrapNodeFromPrivateKey(BOOTSTRAP_NODE_PRIVATE_KEY, this.bootNodePort, telemetry, this.context.config);
131
+ // Overwrite enr with updated info
132
+ this.bootstrapNodeEnr = this.bootstrapNode.getENR().encodeTxt();
126
133
  }
127
134
  getValidators() {
128
135
  const validators = [];
@@ -140,123 +147,148 @@ export class P2PNetworkTest {
140
147
  validators
141
148
  };
142
149
  }
143
- async applyBaseSnapshots() {
150
+ async applyBaseSetup() {
144
151
  await this.addBootstrapNode();
145
- await this.snapshotManager.snapshot('add-validators', async ({ deployL1ContractsValues, cheatCodes })=>{
146
- const rollup = getContract({
147
- address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
148
- abi: RollupAbi,
149
- client: deployL1ContractsValues.l1Client
150
- });
151
- this.logger.info(`Adding ${this.numberOfValidators} validators`);
152
- const stakingAsset = getContract({
153
- address: deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
154
- abi: TestERC20Abi,
155
- client: deployL1ContractsValues.l1Client
156
- });
157
- const { address: multiAdderAddress } = await deployL1Contract(deployL1ContractsValues.l1Client, MultiAdderArtifact.contractAbi, MultiAdderArtifact.contractBytecode, [
158
- rollup.address,
159
- deployL1ContractsValues.l1Client.account.address
160
- ]);
161
- const multiAdder = getContract({
162
- address: multiAdderAddress.toString(),
163
- abi: MultiAdderArtifact.contractAbi,
164
- client: deployL1ContractsValues.l1Client
165
- });
166
- const stakeNeeded = await rollup.read.getActivationThreshold() * BigInt(this.numberOfValidators);
167
- await Promise.all([
168
- await stakingAsset.write.mint([
169
- multiAdder.address,
170
- stakeNeeded
171
- ], {})
172
- ].map((txHash)=>deployL1ContractsValues.l1Client.waitForTransactionReceipt({
173
- hash: txHash
174
- })));
175
- const { validators } = this.getValidators();
176
- this.validators = validators;
177
- const gseAddress = deployL1ContractsValues.l1ContractAddresses.gseAddress;
178
- if (!gseAddress) {
179
- throw new Error('GSE contract not deployed');
180
- }
181
- const gseContract = new GSEContract(deployL1ContractsValues.l1Client, gseAddress.toString());
182
- const makeValidatorTuples = async (validator)=>{
183
- const registrationTuple = await gseContract.makeRegistrationTuple(validator.bn254SecretKey.getValue());
184
- return {
185
- attester: validator.attester.toString(),
186
- withdrawer: validator.withdrawer.toString(),
187
- ...registrationTuple
188
- };
152
+ this.logger.info('Adding validators');
153
+ const rollup = getContract({
154
+ address: this.context.deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
155
+ abi: RollupAbi,
156
+ client: this.context.deployL1ContractsValues.l1Client
157
+ });
158
+ this.logger.info(`Adding ${this.numberOfValidators} validators`);
159
+ const stakingAsset = getContract({
160
+ address: this.context.deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
161
+ abi: TestERC20Abi,
162
+ client: this.context.deployL1ContractsValues.l1Client
163
+ });
164
+ const { address: multiAdderAddress } = await deployL1Contract(this.context.deployL1ContractsValues.l1Client, MultiAdderArtifact.contractAbi, MultiAdderArtifact.contractBytecode, [
165
+ rollup.address,
166
+ this.context.deployL1ContractsValues.l1Client.account.address
167
+ ]);
168
+ const multiAdder = getContract({
169
+ address: multiAdderAddress.toString(),
170
+ abi: MultiAdderArtifact.contractAbi,
171
+ client: this.context.deployL1ContractsValues.l1Client
172
+ });
173
+ const stakeNeeded = await rollup.read.getActivationThreshold() * BigInt(this.numberOfValidators);
174
+ await Promise.all([
175
+ await stakingAsset.write.mint([
176
+ multiAdder.address,
177
+ stakeNeeded
178
+ ], {})
179
+ ].map((txHash)=>this.context.deployL1ContractsValues.l1Client.waitForTransactionReceipt({
180
+ hash: txHash
181
+ })));
182
+ const { validators } = this.getValidators();
183
+ this.validators = validators;
184
+ const gseAddress = this.context.deployL1ContractsValues.l1ContractAddresses.gseAddress;
185
+ if (!gseAddress) {
186
+ throw new Error('GSE contract not deployed');
187
+ }
188
+ const gseContract = new GSEContract(this.context.deployL1ContractsValues.l1Client, gseAddress.toString());
189
+ const makeValidatorTuples = async (validator)=>{
190
+ const registrationTuple = await gseContract.makeRegistrationTuple(validator.bn254SecretKey.getValue());
191
+ return {
192
+ attester: validator.attester.toString(),
193
+ withdrawer: validator.withdrawer.toString(),
194
+ ...registrationTuple
189
195
  };
190
- const validatorTuples = await Promise.all(validators.map(makeValidatorTuples));
191
- await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
192
- hash: await multiAdder.write.addValidators([
193
- validatorTuples
194
- ])
195
- });
196
- await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + await rollup.read.getLagInEpochs() + 1n);
197
- // Send and await a tx to make sure we mine a block for the warp to correctly progress.
198
- await this._sendDummyTx(deployL1ContractsValues.l1Client);
196
+ };
197
+ const validatorTuples = await Promise.all(validators.map(makeValidatorTuples));
198
+ await this.context.deployL1ContractsValues.l1Client.waitForTransactionReceipt({
199
+ hash: await multiAdder.write.addValidators([
200
+ validatorTuples
201
+ ])
199
202
  });
203
+ await this.context.cheatCodes.rollup.advanceToEpoch(EpochNumber.fromBigInt(BigInt(await this.context.cheatCodes.rollup.getEpoch()) + await rollup.read.getLagInEpochsForValidatorSet() + 1n));
204
+ // Send and await a tx to make sure we mine a block for the warp to correctly progress.
205
+ await this._sendDummyTx(this.context.deployL1ContractsValues.l1Client);
206
+ }
207
+ /** Points the wallet to a P2P-enabled node so transactions can propagate through the network. */ setupWalletOnNode(node) {
208
+ this.logger.info('Pointing wallet to a P2P-enabled node');
209
+ this.context.wallet.updateNode(node);
200
210
  }
201
- async setupAccount() {
202
- await this.snapshotManager.snapshot('setup-account', deployAccounts(1, this.logger), ({ deployedAccounts }, { wallet })=>{
203
- this.deployedAccounts = deployedAccounts;
204
- [{ address: this.defaultAccountAddress }] = deployedAccounts;
205
- this.wallet = wallet;
206
- return Promise.resolve();
211
+ /** Registers the hardcoded account in PXE without on-chain deployment. No sequencer needed. */ async setupAccount() {
212
+ this.logger.info('Registering hardcoded account (no deployment)');
213
+ const contract = new SchnorrHardcodedKeyAccountContract();
214
+ const accountManager = await this.context.wallet.createAccount({
215
+ secret: this.hardcodedAccountData.secret,
216
+ salt: this.hardcodedAccountData.salt,
217
+ contract
207
218
  });
219
+ this.defaultAccountAddress = accountManager.address;
220
+ this.wallet = this.context.wallet;
208
221
  }
209
222
  async deploySpamContract() {
210
- await this.snapshotManager.snapshot('add-spam-contract', async ()=>{
211
- if (!this.wallet) {
212
- throw new Error('Call snapshot t.setupAccount before deploying account contract');
213
- }
214
- const spamContract = await SpamContract.deploy(this.wallet).send({
215
- from: this.defaultAccountAddress
216
- }).deployed();
217
- return {
218
- contractAddress: spamContract.address
219
- };
220
- }, async ({ contractAddress })=>{
221
- if (!this.wallet) {
222
- throw new Error('Call snapshot t.setupAccount before deploying account contract');
223
- }
224
- this.spamContract = await SpamContract.at(contractAddress, this.wallet);
225
- });
223
+ this.logger.info('Deploying spam contract');
224
+ if (!this.wallet) {
225
+ throw new Error('Call setupAccount before deploying spam contract');
226
+ }
227
+ ({ contract: this.spamContract } = await SpamContract.deploy(this.wallet).send({
228
+ from: this.defaultAccountAddress
229
+ }));
226
230
  }
227
231
  async removeInitialNode() {
228
- await this.snapshotManager.snapshot('remove-initial-validator', async ({ deployL1ContractsValues, aztecNode, dateProvider })=>{
229
- // Send and await a tx to make sure we mine a block for the warp to correctly progress.
230
- const { receipt } = await this._sendDummyTx(deployL1ContractsValues.l1Client);
231
- const block = await deployL1ContractsValues.l1Client.getBlock({
232
- blockNumber: receipt.blockNumber
233
- });
234
- dateProvider.setTime(Number(block.timestamp) * 1000);
235
- await aztecNode.stop();
232
+ this.logger.info('Removing initial node');
233
+ // Send and await a tx to make sure we mine a block for the warp to correctly progress.
234
+ const { receipt } = await this._sendDummyTx(this.context.deployL1ContractsValues.l1Client);
235
+ const block = await this.context.deployL1ContractsValues.l1Client.getBlock({
236
+ blockNumber: receipt.blockNumber
236
237
  });
238
+ this.context.dateProvider.setTime(Number(block.timestamp) * 1000);
239
+ await this.context.aztecNodeService.stop();
237
240
  }
238
241
  async sendDummyTx() {
239
242
  return await this._sendDummyTx(this.ctx.deployL1ContractsValues.l1Client);
240
243
  }
241
244
  async _sendDummyTx(l1Client) {
242
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client);
245
+ const l1TxUtils = createL1TxUtils(l1Client);
243
246
  return await l1TxUtils.sendAndMonitorTransaction({
244
247
  to: l1Client.account.address,
245
248
  value: 1n
246
249
  });
247
250
  }
248
251
  async setup() {
249
- this.ctx = await this.snapshotManager.setup();
252
+ this.logger.info('Setting up subsystems from fresh');
253
+ // Pre-compute hardcoded account data so it gets funded in genesis.
254
+ const contract = new SchnorrHardcodedKeyAccountContract();
255
+ const secret = Fr.random();
256
+ const salt = Fr.random();
257
+ this.hardcodedAccountData = {
258
+ secret,
259
+ salt,
260
+ signingKey: SCHNORR_HARDCODED_PRIVATE_KEY,
261
+ address: await getAccountContractAddress(contract, secret, salt)
262
+ };
263
+ // Generate regular Schnorr accounts for tests that need deployable accounts (e.g. add_rollup).
264
+ const regularAccounts = await generateSchnorrAccounts(this.setupOptions.numberOfInitialFundedAccounts ?? 2);
265
+ this.context = await setup(0, {
266
+ ...this.setupOptions,
267
+ fundSponsoredFPC: true,
268
+ skipAccountDeployment: true,
269
+ skipInitialSequencer: true,
270
+ initialFundedAccounts: [
271
+ ...regularAccounts,
272
+ this.hardcodedAccountData
273
+ ],
274
+ slasherEnabled: this.setupOptions.slasherEnabled ?? this.deployL1ContractsArgs.slasherEnabled ?? false,
275
+ aztecTargetCommitteeSize: 0,
276
+ l1ContractsArgs: this.deployL1ContractsArgs
277
+ }, // Use checkpointed chain tip for PXE to avoid issues with blocks being dropped due to pruned anchor blocks.
278
+ {
279
+ syncChainTip: 'checkpointed'
280
+ });
281
+ this.ctx = this.context;
250
282
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
251
283
  const initialFundedAccounts = [
252
- ...this.ctx.initialFundedAccounts.map((a)=>a.address),
284
+ ...this.context.initialFundedAccounts.map((a)=>a.address),
253
285
  sponsoredFPCAddress
254
286
  ];
255
- const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
256
- this.prefilledPublicData = prefilledPublicData;
257
- const rollupContract = RollupContract.getFromL1ContractsValues(this.ctx.deployL1ContractsValues);
258
- this.monitor = new ChainMonitor(rollupContract, this.ctx.dateProvider).start();
259
- this.monitor.on('l1-block', ({ timestamp })=>this.ctx.dateProvider.setTime(Number(timestamp) * 1000));
287
+ const { genesis } = await getGenesisValues(initialFundedAccounts, undefined, undefined, this.context.genesis.genesisTimestamp);
288
+ this.genesis = genesis;
289
+ const rollupContract = RollupContract.getFromL1ContractsValues(this.context.deployL1ContractsValues);
290
+ this.monitor = new ChainMonitor(rollupContract, this.context.dateProvider).start();
291
+ this.monitor.on('l1-block', ({ timestamp })=>this.context.dateProvider.setTime(Number(timestamp) * 1000));
260
292
  }
261
293
  async stopNodes(nodes) {
262
294
  this.logger.info('Stopping nodes');
@@ -276,7 +308,9 @@ export class P2PNetworkTest {
276
308
  * @param expectedNodeCount - Expected number of nodes in the network (defaults to nodes.length)
277
309
  * @param timeoutSeconds - Maximum time to wait for connections (default: 30 seconds)
278
310
  * @param checkIntervalSeconds - How often to check connectivity (default: 0.1 seconds)
279
- */ async waitForP2PMeshConnectivity(nodes, expectedNodeCount, timeoutSeconds = 30, checkIntervalSeconds = 0.1) {
311
+ */ async waitForP2PMeshConnectivity(nodes, expectedNodeCount, timeoutSeconds = 30, checkIntervalSeconds = 0.1, topics = [
312
+ TopicType.tx
313
+ ]) {
280
314
  const nodeCount = expectedNodeCount ?? nodes.length;
281
315
  const minPeerCount = nodeCount - 1;
282
316
  this.logger.warn(`Waiting for all ${nodeCount} nodes to connect to P2P mesh (at least ${minPeerCount} peers each)...`);
@@ -289,30 +323,43 @@ export class P2PNetworkTest {
289
323
  }, `Node ${index} to connect to at least ${minPeerCount} peers`, timeoutSeconds, checkIntervalSeconds);
290
324
  }));
291
325
  this.logger.warn('All nodes connected to P2P mesh');
326
+ // Wait for GossipSub mesh to form for all specified topics.
327
+ // We only require at least 1 mesh peer per node because GossipSub
328
+ // stops grafting once it reaches Dlo peers and won't fill the mesh to all available peers.
329
+ for (const topic of topics){
330
+ this.logger.warn(`Waiting for GossipSub mesh to form for ${topic} topic...`);
331
+ await Promise.all(nodes.map(async (node, index)=>{
332
+ const p2p = node.getP2P();
333
+ await retryUntil(async ()=>{
334
+ const meshPeers = await p2p.getGossipMeshPeerCount(topic);
335
+ this.logger.debug(`Node ${index} has ${meshPeers} gossip mesh peers for ${topic} topic`);
336
+ return meshPeers >= 1 ? true : undefined;
337
+ }, `Node ${index} to have gossip mesh peers for ${topic} topic`, timeoutSeconds, checkIntervalSeconds);
338
+ }));
339
+ this.logger.warn(`All nodes have gossip mesh peers for ${topic} topic`);
340
+ }
292
341
  }
293
342
  async teardown() {
294
343
  await this.monitor.stop();
295
344
  await tryStop(this.bootstrapNode, this.logger);
296
- await this.snapshotManager.teardown();
345
+ await teardown(this.context);
297
346
  }
298
347
  async getContracts() {
299
348
  if (!this.ctx.deployL1ContractsValues) {
300
- throw new Error('DeployL1ContractsValues not set');
349
+ throw new Error('DeployAztecL1ContractsValues not set');
301
350
  }
302
351
  const rollup = new RollupContract(this.ctx.deployL1ContractsValues.l1Client, this.ctx.deployL1ContractsValues.l1ContractAddresses.rollupAddress);
303
352
  const slasherContract = getContract({
304
- address: getAddress(await rollup.getSlasherAddress()),
353
+ address: getAddress((await rollup.getSlasherAddress()).toString()),
305
354
  abi: SlasherAbi,
306
355
  client: this.ctx.deployL1ContractsValues.l1Client
307
356
  });
308
- // Get the actual slashing proposer from rollup (which handles both empire and tally)
357
+ // Get the actual slashing proposer from rollup
309
358
  const slashingProposer = await rollup.getSlashingProposer();
310
- const slashFactory = new SlashFactoryContract(this.ctx.deployL1ContractsValues.l1Client, getAddress(this.ctx.deployL1ContractsValues.l1ContractAddresses.slashFactoryAddress.toString()));
311
359
  return {
312
360
  rollup,
313
361
  slasherContract,
314
- slashingProposer,
315
- slashFactory
362
+ slashingProposer
316
363
  };
317
364
  }
318
365
  }
@@ -0,0 +1,22 @@
1
+ import type { AztecNodeService } from '@aztec/aztec-node';
2
+ import { P2PNetworkTest } from '../p2p_network.js';
3
+ export declare const NUM_VALIDATORS = 6;
4
+ export declare const NUM_TXS_PER_NODE = 4;
5
+ export declare const BOOT_NODE_UDP_PORT: number;
6
+ export declare const createReqrespDataDir: () => string;
7
+ type ReqrespOptions = {
8
+ disableStatusHandshake?: boolean;
9
+ };
10
+ export declare function createReqrespTest(options?: ReqrespOptions): Promise<P2PNetworkTest>;
11
+ export declare function cleanupReqrespTest(params: {
12
+ t: P2PNetworkTest;
13
+ nodes?: AztecNodeService[];
14
+ dataDir: string;
15
+ }): Promise<void>;
16
+ export declare function runReqrespTxTest(params: {
17
+ t: P2PNetworkTest;
18
+ dataDir: string;
19
+ disableStatusHandshake?: boolean;
20
+ }): Promise<AztecNodeService[]>;
21
+ export {};
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lMmVfcDJwL3JlcXJlc3AvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQWlCMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSW5ELGVBQU8sTUFBTSxjQUFjLElBQUksQ0FBQztBQUNoQyxlQUFPLE1BQU0sZ0JBQWdCLElBQUksQ0FBQztBQUNsQyxlQUFPLE1BQU0sa0JBQWtCLFFBQXVCLENBQUM7QUFFdkQsZUFBTyxNQUFNLG9CQUFvQixjQUEyRCxDQUFDO0FBRTdGLEtBQUssY0FBYyxHQUFHO0lBQ3BCLHNCQUFzQixDQUFDLEVBQUUsT0FBTyxDQUFDO0NBQ2xDLENBQUM7QUFFRix3QkFBc0IsaUJBQWlCLENBQUMsT0FBTyxHQUFFLGNBQW1CLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQTZCN0Y7QUFFRCx3QkFBc0Isa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBQztJQUFDLEtBQUssQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUM7SUFBQyxPQUFPLEVBQUUsTUFBTSxDQUFBO0NBQUUsaUJBU2xIO0FBSUQsd0JBQXNCLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtJQUM3QyxDQUFDLEVBQUUsY0FBYyxDQUFDO0lBQ2xCLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsc0JBQXNCLENBQUMsRUFBRSxPQUFPLENBQUM7Q0FDbEMsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQWlLOUIifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/e2e_p2p/reqresp/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAiB1D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,kBAAkB,QAAuB,CAAC;AAEvD,eAAO,MAAM,oBAAoB,cAA2D,CAAC;AAE7F,KAAK,cAAc,GAAG;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CA6B7F;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAAE,CAAC,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,iBASlH;AAID,wBAAsB,gBAAgB,CAAC,MAAM,EAAE;IAC7C,CAAC,EAAE,cAAc,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAiK9B"}