@aztec/end-to-end 0.0.1-commit.9b94fc1 → 0.0.1-commit.9badcec54

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 (279) hide show
  1. package/README.md +27 -0
  2. package/dest/bench/client_flows/benchmark.d.ts +3 -2
  3. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  4. package/dest/bench/client_flows/benchmark.js +21 -1
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts +15 -16
  6. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  7. package/dest/bench/client_flows/client_flows_benchmark.js +124 -144
  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.js +3 -1
  12. package/dest/bench/utils.d.ts +9 -8
  13. package/dest/bench/utils.d.ts.map +1 -1
  14. package/dest/bench/utils.js +31 -19
  15. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +11 -9
  16. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  17. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +108 -114
  18. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +20 -14
  19. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  20. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +92 -71
  21. package/dest/e2e_deploy_contract/deploy_test.d.ts +5 -4
  22. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  23. package/dest/e2e_deploy_contract/deploy_test.js +18 -13
  24. package/dest/e2e_epochs/epochs_test.d.ts +27 -15
  25. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  26. package/dest/e2e_epochs/epochs_test.js +106 -54
  27. package/dest/e2e_fees/bridging_race.notest.js +4 -6
  28. package/dest/e2e_fees/fees_test.d.ts +21 -17
  29. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  30. package/dest/e2e_fees/fees_test.js +137 -145
  31. package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
  32. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  33. package/dest/e2e_l1_publisher/write_json.js +14 -16
  34. package/dest/e2e_multi_validator/utils.js +1 -1
  35. package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
  36. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  37. package/dest/e2e_nested_contract/nested_contract_test.js +30 -40
  38. package/dest/e2e_p2p/inactivity_slash_test.d.ts +4 -4
  39. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  40. package/dest/e2e_p2p/inactivity_slash_test.js +9 -12
  41. package/dest/e2e_p2p/p2p_network.d.ts +20 -19
  42. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  43. package/dest/e2e_p2p/p2p_network.js +153 -126
  44. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  45. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  46. package/dest/e2e_p2p/reqresp/utils.js +190 -0
  47. package/dest/e2e_p2p/shared.d.ts +30 -12
  48. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  49. package/dest/e2e_p2p/shared.js +64 -62
  50. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  51. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  52. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  53. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  54. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  55. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  56. package/dest/e2e_token_contract/token_contract_test.d.ts +19 -10
  57. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  58. package/dest/e2e_token_contract/token_contract_test.js +100 -92
  59. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  60. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  61. package/dest/fixtures/authwit_proxy.js +34 -0
  62. package/dest/fixtures/e2e_prover_test.d.ts +16 -23
  63. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  64. package/dest/fixtures/e2e_prover_test.js +115 -139
  65. package/dest/fixtures/elu_monitor.d.ts +21 -0
  66. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  67. package/dest/fixtures/elu_monitor.js +102 -0
  68. package/dest/fixtures/fixtures.d.ts +6 -3
  69. package/dest/fixtures/fixtures.d.ts.map +1 -1
  70. package/dest/fixtures/fixtures.js +8 -3
  71. package/dest/fixtures/get_acvm_config.js +1 -1
  72. package/dest/fixtures/get_bb_config.d.ts +1 -1
  73. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  74. package/dest/fixtures/get_bb_config.js +5 -5
  75. package/dest/fixtures/ha_setup.d.ts +71 -0
  76. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  77. package/dest/fixtures/ha_setup.js +116 -0
  78. package/dest/fixtures/index.d.ts +2 -1
  79. package/dest/fixtures/index.d.ts.map +1 -1
  80. package/dest/fixtures/index.js +1 -0
  81. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  82. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  83. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  84. package/dest/fixtures/setup.d.ts +242 -0
  85. package/dest/fixtures/setup.d.ts.map +1 -0
  86. package/dest/fixtures/setup.js +611 -0
  87. package/dest/fixtures/setup_p2p_test.d.ts +18 -11
  88. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  89. package/dest/fixtures/setup_p2p_test.js +46 -35
  90. package/dest/fixtures/token_utils.d.ts +2 -2
  91. package/dest/fixtures/token_utils.d.ts.map +1 -1
  92. package/dest/fixtures/token_utils.js +7 -6
  93. package/dest/fixtures/utils.d.ts +5 -637
  94. package/dest/fixtures/utils.d.ts.map +1 -1
  95. package/dest/fixtures/utils.js +4 -647
  96. package/dest/fixtures/web3signer.js +1 -1
  97. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  98. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  99. package/dest/fixtures/with_telemetry_utils.js +2 -2
  100. package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
  101. package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
  102. package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
  103. package/dest/forward-compatibility/wallet_service.d.ts +3 -0
  104. package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
  105. package/dest/forward-compatibility/wallet_service.js +109 -0
  106. package/dest/legacy-jest-resolver.d.cts +3 -0
  107. package/dest/legacy-jest-resolver.d.cts.map +1 -0
  108. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  109. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  110. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  111. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  112. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  113. package/dest/quality_of_service/prometheus_client.js +67 -0
  114. package/dest/shared/cross_chain_test_harness.d.ts +18 -6
  115. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  116. package/dest/shared/cross_chain_test_harness.js +27 -27
  117. package/dest/shared/gas_portal_test_harness.d.ts +12 -2
  118. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  119. package/dest/shared/gas_portal_test_harness.js +4 -4
  120. package/dest/shared/index.d.ts +3 -2
  121. package/dest/shared/index.d.ts.map +1 -1
  122. package/dest/shared/index.js +1 -0
  123. package/dest/shared/jest_setup.js +41 -1
  124. package/dest/shared/mock_state_view.d.ts +86 -0
  125. package/dest/shared/mock_state_view.d.ts.map +1 -0
  126. package/dest/shared/mock_state_view.js +186 -0
  127. package/dest/shared/submit-transactions.d.ts +4 -4
  128. package/dest/shared/submit-transactions.d.ts.map +1 -1
  129. package/dest/shared/submit-transactions.js +9 -11
  130. package/dest/shared/uniswap_l1_l2.d.ts +3 -27
  131. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  132. package/dest/shared/uniswap_l1_l2.js +58 -43
  133. package/dest/simulators/lending_simulator.d.ts +6 -2
  134. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  135. package/dest/simulators/lending_simulator.js +6 -6
  136. package/dest/simulators/token_simulator.d.ts +1 -1
  137. package/dest/simulators/token_simulator.d.ts.map +1 -1
  138. package/dest/simulators/token_simulator.js +3 -24
  139. package/dest/spartan/setup_test_wallets.d.ts +15 -5
  140. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  141. package/dest/spartan/setup_test_wallets.js +132 -43
  142. package/dest/spartan/tx_metrics.d.ts +88 -0
  143. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  144. package/dest/spartan/tx_metrics.js +422 -0
  145. package/dest/spartan/utils/bot.d.ts +28 -0
  146. package/dest/spartan/utils/bot.d.ts.map +1 -0
  147. package/dest/spartan/utils/bot.js +142 -0
  148. package/dest/spartan/utils/chaos.d.ts +79 -0
  149. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  150. package/dest/spartan/utils/chaos.js +142 -0
  151. package/dest/spartan/utils/clients.d.ts +39 -0
  152. package/dest/spartan/utils/clients.d.ts.map +1 -0
  153. package/dest/spartan/utils/clients.js +90 -0
  154. package/dest/spartan/utils/config.d.ts +45 -0
  155. package/dest/spartan/utils/config.d.ts.map +1 -0
  156. package/dest/spartan/utils/config.js +23 -0
  157. package/dest/spartan/utils/health.d.ts +63 -0
  158. package/dest/spartan/utils/health.d.ts.map +1 -0
  159. package/dest/spartan/utils/health.js +202 -0
  160. package/dest/spartan/utils/helm.d.ts +15 -0
  161. package/dest/spartan/utils/helm.d.ts.map +1 -0
  162. package/dest/spartan/utils/helm.js +47 -0
  163. package/dest/spartan/utils/index.d.ts +11 -0
  164. package/dest/spartan/utils/index.d.ts.map +1 -0
  165. package/dest/spartan/utils/index.js +22 -0
  166. package/dest/spartan/utils/k8s.d.ts +128 -0
  167. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  168. package/dest/spartan/utils/k8s.js +381 -0
  169. package/dest/spartan/utils/nodes.d.ts +40 -0
  170. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  171. package/dest/spartan/utils/nodes.js +461 -0
  172. package/dest/spartan/utils/pod_logs.d.ts +25 -0
  173. package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
  174. package/dest/spartan/utils/pod_logs.js +74 -0
  175. package/dest/spartan/utils/scripts.d.ts +30 -0
  176. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  177. package/dest/spartan/utils/scripts.js +81 -0
  178. package/dest/spartan/utils.d.ts +2 -218
  179. package/dest/spartan/utils.d.ts.map +1 -1
  180. package/dest/spartan/utils.js +1 -749
  181. package/dest/test-wallet/test_wallet.d.ts +84 -0
  182. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  183. package/dest/test-wallet/test_wallet.js +249 -0
  184. package/dest/test-wallet/utils.d.ts +41 -0
  185. package/dest/test-wallet/utils.d.ts.map +1 -0
  186. package/dest/test-wallet/utils.js +71 -0
  187. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  188. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  189. package/dest/test-wallet/wallet_worker_script.js +48 -0
  190. package/dest/test-wallet/worker_wallet.d.ts +52 -0
  191. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  192. package/dest/test-wallet/worker_wallet.js +151 -0
  193. package/dest/test-wallet/worker_wallet_schema.d.ts +279 -0
  194. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  195. package/dest/test-wallet/worker_wallet_schema.js +10 -0
  196. package/package.json +49 -45
  197. package/src/bench/client_flows/benchmark.ts +24 -2
  198. package/src/bench/client_flows/client_flows_benchmark.ts +165 -215
  199. package/src/bench/client_flows/config.ts +9 -1
  200. package/src/bench/client_flows/data_extractor.ts +1 -1
  201. package/src/bench/utils.ts +36 -21
  202. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +123 -151
  203. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +140 -126
  204. package/src/e2e_deploy_contract/deploy_test.ts +22 -15
  205. package/src/e2e_epochs/epochs_test.ts +173 -112
  206. package/src/e2e_fees/bridging_race.notest.ts +5 -11
  207. package/src/e2e_fees/fees_test.ts +178 -228
  208. package/src/e2e_l1_publisher/write_json.ts +16 -16
  209. package/src/e2e_multi_validator/utils.ts +1 -1
  210. package/src/e2e_nested_contract/nested_contract_test.ts +35 -56
  211. package/src/e2e_p2p/inactivity_slash_test.ts +10 -13
  212. package/src/e2e_p2p/p2p_network.ts +217 -199
  213. package/src/e2e_p2p/reqresp/utils.ts +256 -0
  214. package/src/e2e_p2p/shared.ts +96 -79
  215. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  216. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  217. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  218. package/src/e2e_token_contract/token_contract_test.ts +121 -119
  219. package/src/fixtures/authwit_proxy.ts +54 -0
  220. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  221. package/src/fixtures/e2e_prover_test.ts +143 -189
  222. package/src/fixtures/elu_monitor.ts +126 -0
  223. package/src/fixtures/fixtures.ts +12 -5
  224. package/src/fixtures/get_acvm_config.ts +1 -1
  225. package/src/fixtures/get_bb_config.ts +7 -6
  226. package/src/fixtures/ha_setup.ts +186 -0
  227. package/src/fixtures/index.ts +1 -0
  228. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  229. package/src/fixtures/setup.ts +910 -0
  230. package/src/fixtures/setup_p2p_test.ts +51 -55
  231. package/src/fixtures/token_utils.ts +7 -6
  232. package/src/fixtures/utils.ts +27 -966
  233. package/src/fixtures/web3signer.ts +1 -1
  234. package/src/fixtures/with_telemetry_utils.ts +2 -2
  235. package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
  236. package/src/forward-compatibility/wallet_service.ts +104 -0
  237. package/src/guides/up_quick_start.sh +3 -5
  238. package/src/legacy-jest-resolver.cjs +135 -0
  239. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  240. package/src/quality_of_service/prometheus_client.ts +113 -0
  241. package/src/shared/cross_chain_test_harness.ts +30 -43
  242. package/src/shared/gas_portal_test_harness.ts +3 -4
  243. package/src/shared/index.ts +2 -1
  244. package/src/shared/jest_setup.ts +51 -1
  245. package/src/shared/mock_state_view.ts +188 -0
  246. package/src/shared/submit-transactions.ts +11 -16
  247. package/src/shared/uniswap_l1_l2.ts +86 -106
  248. package/src/simulators/lending_simulator.ts +11 -7
  249. package/src/simulators/token_simulator.ts +6 -30
  250. package/src/spartan/DEVELOP.md +7 -0
  251. package/src/spartan/setup_test_wallets.ts +192 -28
  252. package/src/spartan/tx_metrics.ts +376 -0
  253. package/src/spartan/utils/bot.ts +188 -0
  254. package/src/spartan/utils/chaos.ts +253 -0
  255. package/src/spartan/utils/clients.ts +100 -0
  256. package/src/spartan/utils/config.ts +29 -0
  257. package/src/spartan/utils/health.ts +255 -0
  258. package/src/spartan/utils/helm.ts +84 -0
  259. package/src/spartan/utils/index.ts +71 -0
  260. package/src/spartan/utils/k8s.ts +535 -0
  261. package/src/spartan/utils/nodes.ts +543 -0
  262. package/src/spartan/utils/pod_logs.ts +99 -0
  263. package/src/spartan/utils/scripts.ts +99 -0
  264. package/src/spartan/utils.ts +1 -942
  265. package/src/test-wallet/test_wallet.ts +351 -0
  266. package/src/test-wallet/utils.ts +112 -0
  267. package/src/test-wallet/wallet_worker_script.ts +60 -0
  268. package/src/test-wallet/worker_wallet.ts +214 -0
  269. package/src/test-wallet/worker_wallet_schema.ts +13 -0
  270. package/dest/fixtures/setup_l1_contracts.d.ts +0 -477
  271. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  272. package/dest/fixtures/setup_l1_contracts.js +0 -17
  273. package/dest/fixtures/snapshot_manager.d.ts +0 -95
  274. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  275. package/dest/fixtures/snapshot_manager.js +0 -505
  276. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  277. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  278. package/src/fixtures/setup_l1_contracts.ts +0 -26
  279. package/src/fixtures/snapshot_manager.ts +0 -665
@@ -2,20 +2,14 @@ import type { InitialAccountData } from '@aztec/accounts/testing';
2
2
  import type { AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
3
3
  import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
4
4
  import { Fr } from '@aztec/aztec.js/fields';
5
- import {
6
- type EmpireSlashingProposerContract,
7
- type ExtendedViemWalletClient,
8
- GSEContract,
9
- MultiAdderArtifact,
10
- type Operator,
11
- RollupContract,
12
- type TallySlashingProposerContract,
13
- type ViemClient,
14
- createL1TxUtilsFromViemWallet,
15
- deployL1Contract,
16
- getL1ContractsConfigEnvVars,
17
- } from '@aztec/ethereum';
5
+ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
6
+ import { GSEContract, RollupContract, type SlashingProposerContract } from '@aztec/ethereum/contracts';
7
+ import type { Operator } from '@aztec/ethereum/deploy-aztec-l1-contracts';
8
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
9
+ import { MultiAdderArtifact } from '@aztec/ethereum/l1-artifacts';
10
+ import { createL1TxUtils } from '@aztec/ethereum/l1-tx-utils';
18
11
  import { ChainMonitor } from '@aztec/ethereum/test';
12
+ import type { ExtendedViemWalletClient, ViemClient } from '@aztec/ethereum/types';
19
13
  import { EpochNumber } from '@aztec/foundation/branded-types';
20
14
  import { SecretValue } from '@aztec/foundation/config';
21
15
  import { type Logger, createLogger } from '@aztec/foundation/log';
@@ -25,29 +19,32 @@ import { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
25
19
  import type { BootstrapNode } from '@aztec/p2p/bootstrap';
26
20
  import { createBootstrapNodeFromPrivateKey, getBootstrapNodeEnr } from '@aztec/p2p/test-helpers';
27
21
  import { tryStop } from '@aztec/stdlib/interfaces/server';
28
- import { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
29
- import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
22
+ import { TopicType } from '@aztec/stdlib/p2p';
23
+ import { TxStatus } from '@aztec/stdlib/tx';
24
+ import type { GenesisData } from '@aztec/stdlib/world-state';
30
25
  import { ZkPassportProofParams } from '@aztec/stdlib/zkpassport';
31
- import type { TestWallet } from '@aztec/test-wallet/server';
32
26
  import { getGenesisValues } from '@aztec/world-state/testing';
33
27
 
34
28
  import getPort from 'get-port';
35
29
  import { type GetContractReturnType, getAddress, getContract } from 'viem';
36
30
  import { privateKeyToAccount } from 'viem/accounts';
37
31
 
32
+ import {
33
+ type EndToEndContext,
34
+ type SetupOptions,
35
+ deployAccounts,
36
+ getPrivateKeyFromIndex,
37
+ getSponsoredFPCAddress,
38
+ setup,
39
+ teardown,
40
+ } from '../fixtures/setup.js';
38
41
  import {
39
42
  ATTESTER_PRIVATE_KEYS_START_INDEX,
40
43
  createValidatorConfig,
41
44
  generatePrivateKeys,
42
45
  } from '../fixtures/setup_p2p_test.js';
43
- import {
44
- type ISnapshotManager,
45
- type SubsystemsContext,
46
- createSnapshotManager,
47
- deployAccounts,
48
- } from '../fixtures/snapshot_manager.js';
49
- import { type SetupOptions, getPrivateKeyFromIndex, getSponsoredFPCAddress } from '../fixtures/utils.js';
50
46
  import { getEndToEndTestTelemetryClient } from '../fixtures/with_telemetry_utils.js';
47
+ import type { TestWallet } from '../test-wallet/test_wallet.js';
51
48
 
52
49
  // Use a fixed bootstrap node private key so that we can re-use the same snapshot and the nodes can find each other
53
50
  const BOOTSTRAP_NODE_PRIVATE_KEY = '080212208f988fc0899e4a73a5aee4d271a5f20670603a756ad8d84f2c94263a6427c591';
@@ -57,25 +54,25 @@ export const WAIT_FOR_TX_TIMEOUT = l1ContractsConfig.aztecSlotDuration * 3;
57
54
  export const SHORTENED_BLOCK_TIME_CONFIG_NO_PRUNES = {
58
55
  aztecSlotDuration: 12,
59
56
  ethereumSlotDuration: 4,
60
- aztecProofSubmissionWindow: 640,
57
+ aztecProofSubmissionEpochs: 640,
61
58
  };
62
59
 
63
60
  export class P2PNetworkTest {
64
- private snapshotManager: ISnapshotManager;
61
+ public context!: EndToEndContext;
65
62
  public baseAccountPrivateKey: `0x${string}`;
66
63
  public baseAccount;
67
64
 
68
65
  public logger: Logger;
69
66
  public monitor!: ChainMonitor;
70
67
 
71
- public ctx!: SubsystemsContext;
68
+ public ctx!: EndToEndContext;
72
69
  public attesterPrivateKeys: `0x${string}`[] = [];
73
70
  public attesterPublicKeys: string[] = [];
74
71
  public peerIdPrivateKeys: string[] = [];
75
72
  public validators: Operator[] = [];
76
73
 
77
74
  public deployedAccounts: InitialAccountData[] = [];
78
- public prefilledPublicData: PublicDataTreeLeaf[] = [];
75
+ public genesis: GenesisData | undefined;
79
76
 
80
77
  // The re-execution test needs a wallet and a spam contract
81
78
  public wallet?: TestWallet;
@@ -84,6 +81,10 @@ export class P2PNetworkTest {
84
81
 
85
82
  public bootstrapNode?: BootstrapNode;
86
83
 
84
+ // Store setup options for use in setup()
85
+ private setupOptions: SetupOptions;
86
+ private deployL1ContractsArgs: any;
87
+
87
88
  constructor(
88
89
  public readonly testName: string,
89
90
  public bootstrapNodeEnr: string,
@@ -94,7 +95,6 @@ export class P2PNetworkTest {
94
95
  // If set enable metrics collection
95
96
  private metricsPort?: number,
96
97
  startProverNode?: boolean,
97
- mockZkPassportVerifier?: boolean,
98
98
  ) {
99
99
  this.logger = createLogger(`e2e:e2e_p2p:${testName}`);
100
100
 
@@ -109,45 +109,42 @@ export class P2PNetworkTest {
109
109
 
110
110
  const zkPassportParams = ZkPassportProofParams.random();
111
111
 
112
- this.snapshotManager = createSnapshotManager(
113
- `e2e_p2p_network/${testName}`,
114
- process.env.E2E_DATA_PATH,
115
- {
116
- ...initialValidatorConfig,
117
- ethereumSlotDuration: initialValidatorConfig.ethereumSlotDuration ?? l1ContractsConfig.ethereumSlotDuration,
118
- aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
119
- aztecSlotDuration: initialValidatorConfig.aztecSlotDuration ?? l1ContractsConfig.aztecSlotDuration,
120
- aztecProofSubmissionEpochs:
121
- initialValidatorConfig.aztecProofSubmissionEpochs ?? l1ContractsConfig.aztecProofSubmissionEpochs,
122
- slashingRoundSizeInEpochs:
123
- initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
124
- slasherFlavor: initialValidatorConfig.slasherFlavor ?? 'tally',
125
- aztecTargetCommitteeSize: numberOfValidators,
126
- salt: 420,
127
- metricsPort: metricsPort,
128
- numberOfInitialFundedAccounts: 2,
129
- startProverNode,
130
- },
131
- {
132
- ...initialValidatorConfig,
133
- aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
134
- slashingRoundSizeInEpochs:
135
- initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
136
- slasherFlavor: initialValidatorConfig.slasherFlavor ?? 'tally',
137
-
138
- ethereumSlotDuration: initialValidatorConfig.ethereumSlotDuration ?? l1ContractsConfig.ethereumSlotDuration,
139
- aztecSlotDuration: initialValidatorConfig.aztecSlotDuration ?? l1ContractsConfig.aztecSlotDuration,
140
- aztecProofSubmissionEpochs:
141
- initialValidatorConfig.aztecProofSubmissionEpochs ?? l1ContractsConfig.aztecProofSubmissionEpochs,
142
- aztecTargetCommitteeSize: numberOfValidators,
143
- initialValidators: [],
144
- zkPassportArgs: {
145
- mockZkPassportVerifier,
146
- zkPassportDomain: zkPassportParams.domain,
147
- zkPassportScope: zkPassportParams.scope,
148
- },
112
+ // Store setup options for later use
113
+ this.setupOptions = {
114
+ ...initialValidatorConfig,
115
+ ethereumSlotDuration: initialValidatorConfig.ethereumSlotDuration ?? l1ContractsConfig.ethereumSlotDuration,
116
+ aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
117
+ aztecSlotDuration: initialValidatorConfig.aztecSlotDuration ?? l1ContractsConfig.aztecSlotDuration,
118
+ aztecProofSubmissionEpochs:
119
+ initialValidatorConfig.aztecProofSubmissionEpochs ?? l1ContractsConfig.aztecProofSubmissionEpochs,
120
+ slashingRoundSizeInEpochs:
121
+ initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
122
+ slasherEnabled: initialValidatorConfig.slasherEnabled ?? true,
123
+ aztecTargetCommitteeSize: numberOfValidators,
124
+ metricsPort: metricsPort,
125
+ numberOfInitialFundedAccounts: 2,
126
+ startProverNode,
127
+ walletMinFeePadding: 2.0,
128
+ };
129
+
130
+ this.deployL1ContractsArgs = {
131
+ ...initialValidatorConfig,
132
+ aztecEpochDuration: initialValidatorConfig.aztecEpochDuration ?? l1ContractsConfig.aztecEpochDuration,
133
+ slashingRoundSizeInEpochs:
134
+ initialValidatorConfig.slashingRoundSizeInEpochs ?? l1ContractsConfig.slashingRoundSizeInEpochs,
135
+ slasherEnabled: initialValidatorConfig.slasherEnabled ?? true,
136
+
137
+ ethereumSlotDuration: initialValidatorConfig.ethereumSlotDuration ?? l1ContractsConfig.ethereumSlotDuration,
138
+ aztecSlotDuration: initialValidatorConfig.aztecSlotDuration ?? l1ContractsConfig.aztecSlotDuration,
139
+ aztecProofSubmissionEpochs:
140
+ initialValidatorConfig.aztecProofSubmissionEpochs ?? l1ContractsConfig.aztecProofSubmissionEpochs,
141
+ aztecTargetCommitteeSize: numberOfValidators,
142
+ initialValidators: [],
143
+ zkPassportArgs: {
144
+ zkPassportDomain: zkPassportParams.domain,
145
+ zkPassportScope: zkPassportParams.scope,
149
146
  },
150
- );
147
+ };
151
148
  }
152
149
 
153
150
  static async create({
@@ -158,7 +155,6 @@ export class P2PNetworkTest {
158
155
  metricsPort,
159
156
  initialConfig,
160
157
  startProverNode,
161
- mockZkPassportVerifier,
162
158
  }: {
163
159
  testName: string;
164
160
  numberOfNodes: number;
@@ -167,7 +163,6 @@ export class P2PNetworkTest {
167
163
  metricsPort?: number;
168
164
  initialConfig?: SetupOptions;
169
165
  startProverNode?: boolean;
170
- mockZkPassportVerifier?: boolean;
171
166
  }) {
172
167
  const port = basePort || (await getPort());
173
168
 
@@ -188,29 +183,27 @@ export class P2PNetworkTest {
188
183
  numberOfNodes,
189
184
  metricsPort,
190
185
  startProverNode,
191
- mockZkPassportVerifier,
192
186
  );
193
187
  }
194
188
 
195
189
  get fundedAccount() {
196
190
  if (!this.deployedAccounts[0]) {
197
- throw new Error('Call snapshot t.setupAccount to create a funded account.');
191
+ throw new Error('Call setupAccount to create a funded account.');
198
192
  }
199
193
  return this.deployedAccounts[0];
200
194
  }
201
195
 
202
196
  async addBootstrapNode() {
203
- await this.snapshotManager.snapshot('add-bootstrap-node', async ({ aztecNodeConfig }) => {
204
- const telemetry = getEndToEndTestTelemetryClient(this.metricsPort);
205
- this.bootstrapNode = await createBootstrapNodeFromPrivateKey(
206
- BOOTSTRAP_NODE_PRIVATE_KEY,
207
- this.bootNodePort,
208
- telemetry,
209
- aztecNodeConfig,
210
- );
211
- // Overwrite enr with updated info
212
- this.bootstrapNodeEnr = this.bootstrapNode.getENR().encodeTxt();
213
- });
197
+ this.logger.info('Adding bootstrap node');
198
+ const telemetry = await getEndToEndTestTelemetryClient(this.metricsPort);
199
+ this.bootstrapNode = await createBootstrapNodeFromPrivateKey(
200
+ BOOTSTRAP_NODE_PRIVATE_KEY,
201
+ this.bootNodePort,
202
+ telemetry,
203
+ this.context.config,
204
+ );
205
+ // Overwrite enr with updated info
206
+ this.bootstrapNodeEnr = this.bootstrapNode.getENR().encodeTxt();
214
207
  }
215
208
 
216
209
  getValidators() {
@@ -231,128 +224,116 @@ export class P2PNetworkTest {
231
224
  return { validators };
232
225
  }
233
226
 
234
- async applyBaseSnapshots() {
227
+ async applyBaseSetup() {
235
228
  await this.addBootstrapNode();
236
- await this.snapshotManager.snapshot('add-validators', async ({ deployL1ContractsValues, cheatCodes }) => {
237
- const rollup = getContract({
238
- address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
239
- abi: RollupAbi,
240
- client: deployL1ContractsValues.l1Client,
241
- });
242
229
 
243
- this.logger.info(`Adding ${this.numberOfValidators} validators`);
230
+ this.logger.info('Adding validators');
231
+ const rollup = getContract({
232
+ address: this.context.deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
233
+ abi: RollupAbi,
234
+ client: this.context.deployL1ContractsValues.l1Client,
235
+ });
244
236
 
245
- const stakingAsset = getContract({
246
- address: deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
247
- abi: TestERC20Abi,
248
- client: deployL1ContractsValues.l1Client,
249
- });
237
+ this.logger.info(`Adding ${this.numberOfValidators} validators`);
250
238
 
251
- const { address: multiAdderAddress } = await deployL1Contract(
252
- deployL1ContractsValues.l1Client,
253
- MultiAdderArtifact.contractAbi,
254
- MultiAdderArtifact.contractBytecode,
255
- [rollup.address, deployL1ContractsValues.l1Client.account.address],
256
- );
239
+ const stakingAsset = getContract({
240
+ address: this.context.deployL1ContractsValues.l1ContractAddresses.stakingAssetAddress.toString(),
241
+ abi: TestERC20Abi,
242
+ client: this.context.deployL1ContractsValues.l1Client,
243
+ });
257
244
 
258
- const multiAdder = getContract({
259
- address: multiAdderAddress.toString(),
260
- abi: MultiAdderArtifact.contractAbi,
261
- client: deployL1ContractsValues.l1Client,
262
- });
245
+ const { address: multiAdderAddress } = await deployL1Contract(
246
+ this.context.deployL1ContractsValues.l1Client,
247
+ MultiAdderArtifact.contractAbi,
248
+ MultiAdderArtifact.contractBytecode,
249
+ [rollup.address, this.context.deployL1ContractsValues.l1Client.account.address],
250
+ );
263
251
 
264
- const stakeNeeded = (await rollup.read.getActivationThreshold()) * BigInt(this.numberOfValidators);
265
- await Promise.all(
266
- [await stakingAsset.write.mint([multiAdder.address, stakeNeeded], {} as any)].map(txHash =>
267
- deployL1ContractsValues.l1Client.waitForTransactionReceipt({ hash: txHash }),
268
- ),
269
- );
252
+ const multiAdder = getContract({
253
+ address: multiAdderAddress.toString(),
254
+ abi: MultiAdderArtifact.contractAbi,
255
+ client: this.context.deployL1ContractsValues.l1Client,
256
+ });
257
+
258
+ const stakeNeeded = (await rollup.read.getActivationThreshold()) * BigInt(this.numberOfValidators);
259
+ await Promise.all(
260
+ [await stakingAsset.write.mint([multiAdder.address, stakeNeeded], {} as any)].map(txHash =>
261
+ this.context.deployL1ContractsValues.l1Client.waitForTransactionReceipt({ hash: txHash }),
262
+ ),
263
+ );
270
264
 
271
- const { validators } = this.getValidators();
272
- this.validators = validators;
265
+ const { validators } = this.getValidators();
266
+ this.validators = validators;
273
267
 
274
- const gseAddress = deployL1ContractsValues.l1ContractAddresses.gseAddress!;
275
- if (!gseAddress) {
276
- throw new Error('GSE contract not deployed');
277
- }
268
+ const gseAddress = this.context.deployL1ContractsValues.l1ContractAddresses.gseAddress!;
269
+ if (!gseAddress) {
270
+ throw new Error('GSE contract not deployed');
271
+ }
278
272
 
279
- const gseContract = new GSEContract(deployL1ContractsValues.l1Client, gseAddress.toString());
273
+ const gseContract = new GSEContract(this.context.deployL1ContractsValues.l1Client, gseAddress.toString());
280
274
 
281
- const makeValidatorTuples = async (validator: Operator) => {
282
- const registrationTuple = await gseContract.makeRegistrationTuple(validator.bn254SecretKey.getValue());
283
- return {
284
- attester: validator.attester.toString() as `0x${string}`,
285
- withdrawer: validator.withdrawer.toString() as `0x${string}`,
286
- ...registrationTuple,
287
- };
275
+ const makeValidatorTuples = async (validator: Operator) => {
276
+ const registrationTuple = await gseContract.makeRegistrationTuple(validator.bn254SecretKey.getValue());
277
+ return {
278
+ attester: validator.attester.toString() as `0x${string}`,
279
+ withdrawer: validator.withdrawer.toString() as `0x${string}`,
280
+ ...registrationTuple,
288
281
  };
289
- const validatorTuples = await Promise.all(validators.map(makeValidatorTuples));
282
+ };
283
+ const validatorTuples = await Promise.all(validators.map(makeValidatorTuples));
290
284
 
291
- await deployL1ContractsValues.l1Client.waitForTransactionReceipt({
292
- hash: await multiAdder.write.addValidators([validatorTuples]),
293
- });
285
+ await this.context.deployL1ContractsValues.l1Client.waitForTransactionReceipt({
286
+ hash: await multiAdder.write.addValidators([validatorTuples]),
287
+ });
294
288
 
295
- await cheatCodes.rollup.advanceToEpoch(
296
- EpochNumber.fromBigInt(
297
- BigInt(await cheatCodes.rollup.getEpoch()) + (await rollup.read.getLagInEpochsForValidatorSet()) + 1n,
298
- ),
299
- );
289
+ await this.context.cheatCodes.rollup.advanceToEpoch(
290
+ EpochNumber.fromBigInt(
291
+ BigInt(await this.context.cheatCodes.rollup.getEpoch()) +
292
+ (await rollup.read.getLagInEpochsForValidatorSet()) +
293
+ 1n,
294
+ ),
295
+ );
300
296
 
301
- // Send and await a tx to make sure we mine a block for the warp to correctly progress.
302
- await this._sendDummyTx(deployL1ContractsValues.l1Client);
303
- });
297
+ // Send and await a tx to make sure we mine a block for the warp to correctly progress.
298
+ await this._sendDummyTx(this.context.deployL1ContractsValues.l1Client);
304
299
  }
305
300
 
306
301
  async setupAccount() {
307
- await this.snapshotManager.snapshot(
308
- 'setup-account',
309
- deployAccounts(1, this.logger),
310
- ({ deployedAccounts }, { wallet }) => {
311
- this.deployedAccounts = deployedAccounts;
312
- [{ address: this.defaultAccountAddress }] = deployedAccounts;
313
- this.wallet = wallet;
314
- return Promise.resolve();
302
+ this.logger.info('Setting up account');
303
+ const { deployedAccounts } = await deployAccounts(1, this.logger, {
304
+ wait: {
305
+ waitForStatus: TxStatus.CHECKPOINTED,
315
306
  },
316
- );
307
+ })({
308
+ wallet: this.context.wallet,
309
+ initialFundedAccounts: this.context.initialFundedAccounts,
310
+ });
311
+ this.deployedAccounts = deployedAccounts;
312
+ [{ address: this.defaultAccountAddress }] = deployedAccounts;
313
+ this.wallet = this.context.wallet;
317
314
  }
318
315
 
319
316
  async deploySpamContract() {
320
- await this.snapshotManager.snapshot(
321
- 'add-spam-contract',
322
- async () => {
323
- if (!this.wallet) {
324
- throw new Error('Call snapshot t.setupAccount before deploying account contract');
325
- }
326
-
327
- const spamContract = await SpamContract.deploy(this.wallet)
328
- .send({ from: this.defaultAccountAddress! })
329
- .deployed();
330
- return { contractAddress: spamContract.address };
331
- },
332
- ({ contractAddress }) => {
333
- if (!this.wallet) {
334
- throw new Error('Call snapshot t.setupAccount before deploying account contract');
335
- }
336
- this.spamContract = SpamContract.at(contractAddress, this.wallet);
337
- return Promise.resolve();
338
- },
339
- );
317
+ this.logger.info('Deploying spam contract');
318
+ if (!this.wallet) {
319
+ throw new Error('Call setupAccount before deploying spam contract');
320
+ }
321
+
322
+ ({ contract: this.spamContract } = await SpamContract.deploy(this.wallet).send({
323
+ from: this.defaultAccountAddress!,
324
+ }));
340
325
  }
341
326
 
342
327
  async removeInitialNode() {
343
- await this.snapshotManager.snapshot(
344
- 'remove-initial-validator',
345
- async ({ deployL1ContractsValues, aztecNode, dateProvider }) => {
346
- // Send and await a tx to make sure we mine a block for the warp to correctly progress.
347
- const { receipt } = await this._sendDummyTx(deployL1ContractsValues.l1Client);
348
- const block = await deployL1ContractsValues.l1Client.getBlock({
349
- blockNumber: receipt.blockNumber,
350
- });
351
- dateProvider.setTime(Number(block.timestamp) * 1000);
352
-
353
- await aztecNode.stop();
354
- },
355
- );
328
+ this.logger.info('Removing initial node');
329
+ // Send and await a tx to make sure we mine a block for the warp to correctly progress.
330
+ const { receipt } = await this._sendDummyTx(this.context.deployL1ContractsValues.l1Client);
331
+ const block = await this.context.deployL1ContractsValues.l1Client.getBlock({
332
+ blockNumber: receipt.blockNumber,
333
+ });
334
+ this.context.dateProvider.setTime(Number(block.timestamp) * 1000);
335
+
336
+ await this.context.aztecNodeService.stop();
356
337
  }
357
338
 
358
339
  async sendDummyTx() {
@@ -360,7 +341,7 @@ export class P2PNetworkTest {
360
341
  }
361
342
 
362
343
  private async _sendDummyTx(l1Client: ExtendedViemWalletClient) {
363
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client);
344
+ const l1TxUtils = createL1TxUtils(l1Client);
364
345
  return await l1TxUtils.sendAndMonitorTransaction({
365
346
  to: l1Client.account!.address,
366
347
  value: 1n,
@@ -368,17 +349,36 @@ export class P2PNetworkTest {
368
349
  }
369
350
 
370
351
  async setup() {
371
- this.ctx = await this.snapshotManager.setup();
352
+ this.logger.info('Setting up subsystems from fresh');
353
+ this.context = await setup(
354
+ 0,
355
+ {
356
+ ...this.setupOptions,
357
+ fundSponsoredFPC: true,
358
+ skipAccountDeployment: true,
359
+ slasherEnabled: this.setupOptions.slasherEnabled ?? this.deployL1ContractsArgs.slasherEnabled ?? false,
360
+ aztecTargetCommitteeSize: 0,
361
+ l1ContractsArgs: this.deployL1ContractsArgs,
362
+ },
363
+ // Use checkpointed chain tip for PXE to avoid issues with blocks being dropped due to pruned anchor blocks.
364
+ { syncChainTip: 'checkpointed' },
365
+ );
366
+ this.ctx = this.context;
372
367
 
373
368
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
374
- const initialFundedAccounts = [...this.ctx.initialFundedAccounts.map(a => a.address), sponsoredFPCAddress];
369
+ const initialFundedAccounts = [...this.context.initialFundedAccounts.map(a => a.address), sponsoredFPCAddress];
375
370
 
376
- const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
377
- this.prefilledPublicData = prefilledPublicData;
371
+ const { genesis } = await getGenesisValues(
372
+ initialFundedAccounts,
373
+ undefined,
374
+ undefined,
375
+ this.context.genesis!.genesisTimestamp,
376
+ );
377
+ this.genesis = genesis;
378
378
 
379
- const rollupContract = RollupContract.getFromL1ContractsValues(this.ctx.deployL1ContractsValues);
380
- this.monitor = new ChainMonitor(rollupContract, this.ctx.dateProvider).start();
381
- this.monitor.on('l1-block', ({ timestamp }) => this.ctx.dateProvider.setTime(Number(timestamp) * 1000));
379
+ const rollupContract = RollupContract.getFromL1ContractsValues(this.context.deployL1ContractsValues);
380
+ this.monitor = new ChainMonitor(rollupContract, this.context.dateProvider).start();
381
+ this.monitor.on('l1-block', ({ timestamp }) => this.context.dateProvider.setTime(Number(timestamp) * 1000));
382
382
  }
383
383
 
384
384
  async stopNodes(nodes: AztecNodeService[]) {
@@ -409,6 +409,7 @@ export class P2PNetworkTest {
409
409
  expectedNodeCount?: number,
410
410
  timeoutSeconds = 30,
411
411
  checkIntervalSeconds = 0.1,
412
+ topics: TopicType[] = [TopicType.tx],
412
413
  ) {
413
414
  const nodeCount = expectedNodeCount ?? nodes.length;
414
415
  const minPeerCount = nodeCount - 1;
@@ -434,22 +435,44 @@ export class P2PNetworkTest {
434
435
  );
435
436
 
436
437
  this.logger.warn('All nodes connected to P2P mesh');
438
+
439
+ // Wait for GossipSub mesh to form for all specified topics.
440
+ // We only require at least 1 mesh peer per node because GossipSub
441
+ // stops grafting once it reaches Dlo peers and won't fill the mesh to all available peers.
442
+ for (const topic of topics) {
443
+ this.logger.warn(`Waiting for GossipSub mesh to form for ${topic} topic...`);
444
+ await Promise.all(
445
+ nodes.map(async (node, index) => {
446
+ const p2p = node.getP2P();
447
+ await retryUntil(
448
+ async () => {
449
+ const meshPeers = await p2p.getGossipMeshPeerCount(topic);
450
+ this.logger.debug(`Node ${index} has ${meshPeers} gossip mesh peers for ${topic} topic`);
451
+ return meshPeers >= 1 ? true : undefined;
452
+ },
453
+ `Node ${index} to have gossip mesh peers for ${topic} topic`,
454
+ timeoutSeconds,
455
+ checkIntervalSeconds,
456
+ );
457
+ }),
458
+ );
459
+ this.logger.warn(`All nodes have gossip mesh peers for ${topic} topic`);
460
+ }
437
461
  }
438
462
 
439
463
  async teardown() {
440
464
  await this.monitor.stop();
441
465
  await tryStop(this.bootstrapNode, this.logger);
442
- await this.snapshotManager.teardown();
466
+ await teardown(this.context);
443
467
  }
444
468
 
445
469
  async getContracts(): Promise<{
446
470
  rollup: RollupContract;
447
471
  slasherContract: GetContractReturnType<typeof SlasherAbi, ViemClient>;
448
- slashingProposer: EmpireSlashingProposerContract | TallySlashingProposerContract | undefined;
449
- slashFactory: SlashFactoryContract;
472
+ slashingProposer: SlashingProposerContract | undefined;
450
473
  }> {
451
474
  if (!this.ctx.deployL1ContractsValues) {
452
- throw new Error('DeployL1ContractsValues not set');
475
+ throw new Error('DeployAztecL1ContractsValues not set');
453
476
  }
454
477
 
455
478
  const rollup = new RollupContract(
@@ -458,19 +481,14 @@ export class P2PNetworkTest {
458
481
  );
459
482
 
460
483
  const slasherContract = getContract({
461
- address: getAddress(await rollup.getSlasherAddress()),
484
+ address: getAddress((await rollup.getSlasherAddress()).toString()),
462
485
  abi: SlasherAbi,
463
486
  client: this.ctx.deployL1ContractsValues.l1Client,
464
487
  });
465
488
 
466
- // Get the actual slashing proposer from rollup (which handles both empire and tally)
489
+ // Get the actual slashing proposer from rollup
467
490
  const slashingProposer = await rollup.getSlashingProposer();
468
491
 
469
- const slashFactory = new SlashFactoryContract(
470
- this.ctx.deployL1ContractsValues.l1Client,
471
- getAddress(this.ctx.deployL1ContractsValues.l1ContractAddresses.slashFactoryAddress!.toString()),
472
- );
473
-
474
- return { rollup, slasherContract, slashingProposer, slashFactory };
492
+ return { rollup, slasherContract, slashingProposer };
475
493
  }
476
494
  }