@aztec/end-to-end 0.0.1-commit.fce3e4f → 0.0.1-commit.ffe5b04ea

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 (259) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +3 -2
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/benchmark.js +21 -1
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +15 -16
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  6. package/dest/bench/client_flows/client_flows_benchmark.js +136 -141
  7. package/dest/bench/client_flows/config.d.ts +2 -2
  8. package/dest/bench/client_flows/config.d.ts.map +1 -1
  9. package/dest/bench/client_flows/config.js +18 -0
  10. package/dest/bench/client_flows/data_extractor.js +3 -1
  11. package/dest/bench/utils.d.ts +9 -8
  12. package/dest/bench/utils.d.ts.map +1 -1
  13. package/dest/bench/utils.js +31 -19
  14. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +9 -8
  15. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  16. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +107 -113
  17. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +20 -14
  18. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  19. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +92 -71
  20. package/dest/e2e_deploy_contract/deploy_test.d.ts +5 -4
  21. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  22. package/dest/e2e_deploy_contract/deploy_test.js +18 -13
  23. package/dest/e2e_epochs/epochs_test.d.ts +25 -15
  24. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  25. package/dest/e2e_epochs/epochs_test.js +100 -51
  26. package/dest/e2e_fees/bridging_race.notest.js +4 -6
  27. package/dest/e2e_fees/fees_test.d.ts +21 -17
  28. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  29. package/dest/e2e_fees/fees_test.js +137 -145
  30. package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
  31. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  32. package/dest/e2e_l1_publisher/write_json.js +14 -16
  33. package/dest/e2e_multi_validator/utils.js +1 -1
  34. package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
  35. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  36. package/dest/e2e_nested_contract/nested_contract_test.js +30 -40
  37. package/dest/e2e_p2p/inactivity_slash_test.d.ts +4 -4
  38. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  39. package/dest/e2e_p2p/inactivity_slash_test.js +6 -9
  40. package/dest/e2e_p2p/p2p_network.d.ts +17 -14
  41. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  42. package/dest/e2e_p2p/p2p_network.js +141 -115
  43. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  44. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  45. package/dest/e2e_p2p/reqresp/utils.js +177 -0
  46. package/dest/e2e_p2p/shared.d.ts +21 -7
  47. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  48. package/dest/e2e_p2p/shared.js +42 -22
  49. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  50. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  51. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  52. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  53. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  54. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  55. package/dest/e2e_token_contract/token_contract_test.d.ts +19 -10
  56. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  57. package/dest/e2e_token_contract/token_contract_test.js +100 -92
  58. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  59. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  60. package/dest/fixtures/authwit_proxy.js +30 -0
  61. package/dest/fixtures/e2e_prover_test.d.ts +13 -21
  62. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  63. package/dest/fixtures/e2e_prover_test.js +114 -133
  64. package/dest/fixtures/elu_monitor.d.ts +21 -0
  65. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  66. package/dest/fixtures/elu_monitor.js +102 -0
  67. package/dest/fixtures/fixtures.d.ts +6 -3
  68. package/dest/fixtures/fixtures.d.ts.map +1 -1
  69. package/dest/fixtures/fixtures.js +8 -3
  70. package/dest/fixtures/get_acvm_config.js +1 -1
  71. package/dest/fixtures/ha_setup.d.ts +71 -0
  72. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  73. package/dest/fixtures/ha_setup.js +116 -0
  74. package/dest/fixtures/index.d.ts +2 -1
  75. package/dest/fixtures/index.d.ts.map +1 -1
  76. package/dest/fixtures/index.js +1 -0
  77. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  78. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  79. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  80. package/dest/fixtures/setup.d.ts +234 -0
  81. package/dest/fixtures/setup.d.ts.map +1 -0
  82. package/dest/fixtures/setup.js +605 -0
  83. package/dest/fixtures/setup_p2p_test.d.ts +16 -9
  84. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  85. package/dest/fixtures/setup_p2p_test.js +43 -32
  86. package/dest/fixtures/token_utils.d.ts +2 -2
  87. package/dest/fixtures/token_utils.d.ts.map +1 -1
  88. package/dest/fixtures/token_utils.js +12 -8
  89. package/dest/fixtures/utils.d.ts +5 -637
  90. package/dest/fixtures/utils.d.ts.map +1 -1
  91. package/dest/fixtures/utils.js +4 -647
  92. package/dest/fixtures/web3signer.js +1 -1
  93. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  94. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  95. package/dest/fixtures/with_telemetry_utils.js +2 -2
  96. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  97. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  98. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  99. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  100. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  101. package/dest/quality_of_service/prometheus_client.js +67 -0
  102. package/dest/shared/cross_chain_test_harness.d.ts +18 -6
  103. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  104. package/dest/shared/cross_chain_test_harness.js +27 -27
  105. package/dest/shared/gas_portal_test_harness.d.ts +12 -2
  106. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  107. package/dest/shared/gas_portal_test_harness.js +3 -3
  108. package/dest/shared/index.d.ts +3 -2
  109. package/dest/shared/index.d.ts.map +1 -1
  110. package/dest/shared/index.js +1 -0
  111. package/dest/shared/jest_setup.js +41 -1
  112. package/dest/shared/mock_state_view.d.ts +86 -0
  113. package/dest/shared/mock_state_view.d.ts.map +1 -0
  114. package/dest/shared/mock_state_view.js +186 -0
  115. package/dest/shared/submit-transactions.d.ts +4 -4
  116. package/dest/shared/submit-transactions.d.ts.map +1 -1
  117. package/dest/shared/submit-transactions.js +9 -11
  118. package/dest/shared/uniswap_l1_l2.d.ts +3 -27
  119. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  120. package/dest/shared/uniswap_l1_l2.js +61 -39
  121. package/dest/simulators/lending_simulator.d.ts +6 -2
  122. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  123. package/dest/simulators/lending_simulator.js +4 -4
  124. package/dest/simulators/token_simulator.d.ts +1 -1
  125. package/dest/simulators/token_simulator.d.ts.map +1 -1
  126. package/dest/simulators/token_simulator.js +3 -24
  127. package/dest/spartan/setup_test_wallets.d.ts +12 -4
  128. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  129. package/dest/spartan/setup_test_wallets.js +96 -37
  130. package/dest/spartan/tx_metrics.d.ts +88 -0
  131. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  132. package/dest/spartan/tx_metrics.js +422 -0
  133. package/dest/spartan/utils/bot.d.ts +28 -0
  134. package/dest/spartan/utils/bot.d.ts.map +1 -0
  135. package/dest/spartan/utils/bot.js +142 -0
  136. package/dest/spartan/utils/chaos.d.ts +79 -0
  137. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  138. package/dest/spartan/utils/chaos.js +142 -0
  139. package/dest/spartan/utils/clients.d.ts +39 -0
  140. package/dest/spartan/utils/clients.d.ts.map +1 -0
  141. package/dest/spartan/utils/clients.js +90 -0
  142. package/dest/spartan/utils/config.d.ts +42 -0
  143. package/dest/spartan/utils/config.d.ts.map +1 -0
  144. package/dest/spartan/utils/config.js +22 -0
  145. package/dest/spartan/utils/health.d.ts +63 -0
  146. package/dest/spartan/utils/health.d.ts.map +1 -0
  147. package/dest/spartan/utils/health.js +202 -0
  148. package/dest/spartan/utils/helm.d.ts +15 -0
  149. package/dest/spartan/utils/helm.d.ts.map +1 -0
  150. package/dest/spartan/utils/helm.js +47 -0
  151. package/dest/spartan/utils/index.d.ts +10 -0
  152. package/dest/spartan/utils/index.d.ts.map +1 -0
  153. package/dest/spartan/utils/index.js +20 -0
  154. package/dest/spartan/utils/k8s.d.ts +128 -0
  155. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  156. package/dest/spartan/utils/k8s.js +381 -0
  157. package/dest/spartan/utils/nodes.d.ts +40 -0
  158. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  159. package/dest/spartan/utils/nodes.js +461 -0
  160. package/dest/spartan/utils/scripts.d.ts +30 -0
  161. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  162. package/dest/spartan/utils/scripts.js +81 -0
  163. package/dest/spartan/utils.d.ts +2 -218
  164. package/dest/spartan/utils.d.ts.map +1 -1
  165. package/dest/spartan/utils.js +1 -749
  166. package/dest/test-wallet/test_wallet.d.ts +83 -0
  167. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  168. package/dest/test-wallet/test_wallet.js +214 -0
  169. package/dest/test-wallet/utils.d.ts +41 -0
  170. package/dest/test-wallet/utils.d.ts.map +1 -0
  171. package/dest/test-wallet/utils.js +71 -0
  172. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  173. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  174. package/dest/test-wallet/wallet_worker_script.js +48 -0
  175. package/dest/test-wallet/worker_wallet.d.ts +52 -0
  176. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  177. package/dest/test-wallet/worker_wallet.js +151 -0
  178. package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
  179. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  180. package/dest/test-wallet/worker_wallet_schema.js +10 -0
  181. package/package.json +49 -45
  182. package/src/bench/client_flows/benchmark.ts +24 -2
  183. package/src/bench/client_flows/client_flows_benchmark.ts +156 -215
  184. package/src/bench/client_flows/config.ts +9 -1
  185. package/src/bench/client_flows/data_extractor.ts +1 -1
  186. package/src/bench/utils.ts +36 -21
  187. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +120 -145
  188. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +140 -126
  189. package/src/e2e_deploy_contract/deploy_test.ts +22 -15
  190. package/src/e2e_epochs/epochs_test.ts +162 -113
  191. package/src/e2e_fees/bridging_race.notest.ts +5 -11
  192. package/src/e2e_fees/fees_test.ts +178 -228
  193. package/src/e2e_l1_publisher/write_json.ts +16 -16
  194. package/src/e2e_multi_validator/utils.ts +1 -1
  195. package/src/e2e_nested_contract/nested_contract_test.ts +35 -56
  196. package/src/e2e_p2p/inactivity_slash_test.ts +7 -10
  197. package/src/e2e_p2p/p2p_network.ts +204 -181
  198. package/src/e2e_p2p/reqresp/utils.ts +235 -0
  199. package/src/e2e_p2p/shared.ts +77 -29
  200. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  201. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  202. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  203. package/src/e2e_token_contract/token_contract_test.ts +121 -119
  204. package/src/fixtures/authwit_proxy.ts +50 -0
  205. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  206. package/src/fixtures/e2e_prover_test.ts +136 -177
  207. package/src/fixtures/elu_monitor.ts +126 -0
  208. package/src/fixtures/fixtures.ts +12 -5
  209. package/src/fixtures/get_acvm_config.ts +1 -1
  210. package/src/fixtures/ha_setup.ts +186 -0
  211. package/src/fixtures/index.ts +1 -0
  212. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  213. package/src/fixtures/setup.ts +897 -0
  214. package/src/fixtures/setup_p2p_test.ts +43 -47
  215. package/src/fixtures/token_utils.ts +10 -6
  216. package/src/fixtures/utils.ts +27 -966
  217. package/src/fixtures/web3signer.ts +1 -1
  218. package/src/fixtures/with_telemetry_utils.ts +2 -2
  219. package/src/guides/up_quick_start.sh +3 -3
  220. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  221. package/src/quality_of_service/prometheus_client.ts +113 -0
  222. package/src/shared/cross_chain_test_harness.ts +30 -43
  223. package/src/shared/gas_portal_test_harness.ts +3 -3
  224. package/src/shared/index.ts +2 -1
  225. package/src/shared/jest_setup.ts +51 -1
  226. package/src/shared/mock_state_view.ts +188 -0
  227. package/src/shared/submit-transactions.ts +11 -16
  228. package/src/shared/uniswap_l1_l2.ts +71 -92
  229. package/src/simulators/lending_simulator.ts +7 -5
  230. package/src/simulators/token_simulator.ts +6 -30
  231. package/src/spartan/DEVELOP.md +7 -0
  232. package/src/spartan/setup_test_wallets.ts +130 -28
  233. package/src/spartan/tx_metrics.ts +376 -0
  234. package/src/spartan/utils/bot.ts +188 -0
  235. package/src/spartan/utils/chaos.ts +253 -0
  236. package/src/spartan/utils/clients.ts +100 -0
  237. package/src/spartan/utils/config.ts +28 -0
  238. package/src/spartan/utils/health.ts +255 -0
  239. package/src/spartan/utils/helm.ts +84 -0
  240. package/src/spartan/utils/index.ts +68 -0
  241. package/src/spartan/utils/k8s.ts +535 -0
  242. package/src/spartan/utils/nodes.ts +543 -0
  243. package/src/spartan/utils/scripts.ts +99 -0
  244. package/src/spartan/utils.ts +1 -942
  245. package/src/test-wallet/test_wallet.ts +306 -0
  246. package/src/test-wallet/utils.ts +112 -0
  247. package/src/test-wallet/wallet_worker_script.ts +60 -0
  248. package/src/test-wallet/worker_wallet.ts +213 -0
  249. package/src/test-wallet/worker_wallet_schema.ts +13 -0
  250. package/dest/fixtures/setup_l1_contracts.d.ts +0 -477
  251. package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
  252. package/dest/fixtures/setup_l1_contracts.js +0 -17
  253. package/dest/fixtures/snapshot_manager.d.ts +0 -95
  254. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  255. package/dest/fixtures/snapshot_manager.js +0 -505
  256. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  257. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  258. package/src/fixtures/setup_l1_contracts.ts +0 -26
  259. package/src/fixtures/snapshot_manager.ts +0 -665
@@ -1,28 +1,28 @@
1
1
  import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
2
2
  import { computeAuthWitMessageHash } from '@aztec/aztec.js/authorization';
3
+ import { waitForProven } from '@aztec/aztec.js/contracts';
3
4
  import { generateClaimSecret } from '@aztec/aztec.js/ethereum';
4
5
  import { Fr } from '@aztec/aztec.js/fields';
5
6
  import type { Logger } from '@aztec/aztec.js/log';
6
7
  import type { AztecNode } from '@aztec/aztec.js/node';
7
8
  import { CheatCodes } from '@aztec/aztec/testing';
8
- import {
9
- type DeployL1ContractsReturnType,
10
- type ExtendedViemWalletClient,
11
- RollupContract,
12
- deployL1Contract,
13
- extractEvent,
14
- } from '@aztec/ethereum';
15
- import { sha256ToField } from '@aztec/foundation/crypto';
9
+ import { RollupContract } from '@aztec/ethereum/contracts';
10
+ import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
11
+ import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
12
+ import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
13
+ import { extractEvent } from '@aztec/ethereum/utils';
14
+ import { EpochNumber } from '@aztec/foundation/branded-types';
15
+ import { sha256ToField } from '@aztec/foundation/crypto/sha256';
16
16
  import { InboxAbi, UniswapPortalAbi, UniswapPortalBytecode } from '@aztec/l1-artifacts';
17
17
  import { UniswapContract } from '@aztec/noir-contracts.js/Uniswap';
18
18
  import { computeL2ToL1MessageHash } from '@aztec/stdlib/hash';
19
19
  import { computeL2ToL1MembershipWitness } from '@aztec/stdlib/messaging';
20
- import type { TestWallet } from '@aztec/test-wallet/server';
21
20
 
22
21
  import { jest } from '@jest/globals';
23
22
  import { type GetContractReturnType, getContract, parseEther, toFunctionSelector } from 'viem';
24
23
 
25
- import { ensureAccountContractsPublished } from '../fixtures/utils.js';
24
+ import { type EndToEndContext, ensureAccountContractsPublished } from '../fixtures/utils.js';
25
+ import type { TestWallet } from '../test-wallet/test_wallet.js';
26
26
  import { CrossChainTestHarness } from './cross_chain_test_harness.js';
27
27
 
28
28
  // PSA: This tests works on forked mainnet. There is a dump of the data in `dumpedState` such that we
@@ -34,28 +34,8 @@ import { CrossChainTestHarness } from './cross_chain_test_harness.js';
34
34
 
35
35
  const TIMEOUT = 360_000;
36
36
 
37
- /** Objects to be returned by the uniswap setup function */
38
- export type UniswapSetupContext = {
39
- /** Aztec Node instance */
40
- aztecNode: AztecNode;
41
- /** Logger instance named as the current test. */
42
- logger: Logger;
43
- /** The L1 wallet client, extended with public actions. */
44
- l1Client: ExtendedViemWalletClient;
45
- /** The wallet. */
46
- wallet: TestWallet;
47
- /** The owner address. */
48
- ownerAddress: AztecAddress;
49
- /** The sponsor wallet. */
50
- sponsorAddress: AztecAddress;
51
- /** */
52
- deployL1ContractsValues: DeployL1ContractsReturnType;
53
- /** Cheat codes instance. */
54
- cheatCodes: CheatCodes;
55
- };
56
-
57
37
  export const uniswapL1L2TestSuite = (
58
- setup: () => Promise<UniswapSetupContext>,
38
+ setup: () => Promise<EndToEndContext>,
59
39
  cleanup: () => Promise<void>,
60
40
  expectedForkBlockNumber = 17514288,
61
41
  ) => {
@@ -79,7 +59,7 @@ export const uniswapL1L2TestSuite = (
79
59
  let daiCrossChainHarness: CrossChainTestHarness;
80
60
  let wethCrossChainHarness: CrossChainTestHarness;
81
61
 
82
- let deployL1ContractsValues: DeployL1ContractsReturnType;
62
+ let deployL1ContractsValues: DeployAztecL1ContractsReturnType;
83
63
  let rollup: RollupContract;
84
64
  let uniswapPortal: GetContractReturnType<typeof UniswapPortalAbi, ExtendedViemWalletClient>;
85
65
  let uniswapPortalAddress: EthAddress;
@@ -92,8 +72,19 @@ export const uniswapL1L2TestSuite = (
92
72
  let cheatCodes: CheatCodes;
93
73
  let version: number;
94
74
  beforeAll(async () => {
95
- ({ aztecNode, logger, l1Client, wallet, ownerAddress, sponsorAddress, deployL1ContractsValues, cheatCodes } =
96
- await setup());
75
+ const t = await setup();
76
+ ({
77
+ aztecNode,
78
+ logger,
79
+ deployL1ContractsValues,
80
+ cheatCodes,
81
+ wallet,
82
+ accounts: [ownerAddress, sponsorAddress],
83
+ } = t);
84
+
85
+ l1Client = deployL1ContractsValues.l1Client;
86
+
87
+ t.watcher.setIsMarkingAsProven(false);
97
88
 
98
89
  if (Number(await l1Client.getBlockNumber()) < expectedForkBlockNumber) {
99
90
  throw new Error('This test must be run on a fork of mainnet with the expected fork block');
@@ -139,9 +130,9 @@ export const uniswapL1L2TestSuite = (
139
130
  client: l1Client,
140
131
  });
141
132
  // deploy l2 uniswap contract and attach to portal
142
- uniswapL2Contract = await UniswapContract.deploy(wallet, uniswapPortalAddress)
143
- .send({ from: ownerAddress })
144
- .deployed();
133
+ ({ contract: uniswapL2Contract } = await UniswapContract.deploy(wallet, uniswapPortalAddress).send({
134
+ from: ownerAddress,
135
+ }));
145
136
 
146
137
  const registryAddress = (await aztecNode.getNodeInfo()).l1ContractAddresses.registryAddress;
147
138
 
@@ -206,7 +197,7 @@ export const uniswapL1L2TestSuite = (
206
197
  logger.info('Withdrawing weth to L1 and sending message to swap to dai');
207
198
  const [secretForDepositingSwappedDai, secretHashForDepositingSwappedDai] = await generateClaimSecret();
208
199
 
209
- const l2UniswapInteractionReceipt = await uniswapL2Contract.methods
200
+ const { receipt: l2UniswapInteractionReceipt } = await uniswapL2Contract.methods
210
201
  .swap_private(
211
202
  wethCrossChainHarness.l2Token.address,
212
203
  wethCrossChainHarness.l2Bridge.address,
@@ -218,8 +209,7 @@ export const uniswapL1L2TestSuite = (
218
209
  secretHashForDepositingSwappedDai,
219
210
  ownerEthAddress,
220
211
  )
221
- .send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] })
222
- .wait();
212
+ .send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] });
223
213
 
224
214
  const swapPrivateFunction = 'swap_private(address,uint256,uint24,address,uint256,bytes32,address)';
225
215
  const swapPrivateContent = sha256ToField([
@@ -261,24 +251,19 @@ export const uniswapL1L2TestSuite = (
261
251
  // ensure that uniswap contract didn't eat the funds.
262
252
  await wethCrossChainHarness.expectPublicBalanceOnL2(uniswapL2Contract.address, 0n);
263
253
 
264
- // Since the outbox is only consumable when the block is proven, we need to set the block to be proven
265
- await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
254
+ // Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
255
+ const block = await aztecNode.getBlock(l2UniswapInteractionReceipt.blockNumber!);
256
+ const epoch = await rollup.getEpochNumberForCheckpoint(block!.checkpointNumber);
257
+ await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
258
+ await waitForProven(aztecNode, l2UniswapInteractionReceipt, { provenTimeout: 300 });
266
259
 
267
260
  // 5. Consume L2 to L1 message by calling uniswapPortal.swap_private()
268
261
  logger.info('Execute withdraw and swap on the uniswapPortal!');
269
262
  const daiL1BalanceOfPortalBeforeSwap = await daiCrossChainHarness.getL1BalanceOf(
270
263
  daiCrossChainHarness.tokenPortalAddress,
271
264
  );
272
- const swapResult = await computeL2ToL1MembershipWitness(
273
- aztecNode,
274
- l2UniswapInteractionReceipt.blockNumber!,
275
- swapPrivateLeaf,
276
- );
277
- const withdrawResult = await computeL2ToL1MembershipWitness(
278
- aztecNode,
279
- l2UniswapInteractionReceipt.blockNumber!,
280
- withdrawLeaf,
281
- );
265
+ const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPrivateLeaf);
266
+ const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
282
267
 
283
268
  const swapPrivateL2MessageIndex = swapResult!.leafIndex;
284
269
  const swapPrivateSiblingPath = swapResult!.siblingPath;
@@ -287,7 +272,7 @@ export const uniswapL1L2TestSuite = (
287
272
  const withdrawSiblingPath = withdrawResult!.siblingPath;
288
273
 
289
274
  const withdrawMessageMetadata = {
290
- _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber!),
275
+ _epoch: BigInt(epoch),
291
276
  _leafIndex: BigInt(withdrawL2MessageIndex),
292
277
  _path: withdrawSiblingPath
293
278
  .toBufferArray()
@@ -295,7 +280,7 @@ export const uniswapL1L2TestSuite = (
295
280
  };
296
281
 
297
282
  const swapPrivateMessageMetadata = {
298
- _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber!),
283
+ _epoch: BigInt(epoch),
299
284
  _leafIndex: BigInt(swapPrivateL2MessageIndex),
300
285
  _path: swapPrivateSiblingPath
301
286
  .toBufferArray()
@@ -442,10 +427,10 @@ export const uniswapL1L2TestSuite = (
442
427
  // ownerEthAddress,
443
428
  // nonceForSwap,
444
429
  // );
445
- // await ownerWallet.setPublicAuthWit({ caller: sponsorAddress, action }, true).send().wait();
430
+ // await ownerWallet.setPublicAuthWit({ caller: sponsorAddress, action }, true).send();
446
431
 
447
432
  // // 4.2 Call swap_public from user2 on behalf of owner
448
- // const uniswapL2Interaction = await action.send().wait();
433
+ // const uniswapL2Interaction = await action.send();
449
434
 
450
435
  // const swapPublicContent = sha256ToField([
451
436
  // Buffer.from(
@@ -506,7 +491,7 @@ export const uniswapL1L2TestSuite = (
506
491
  // );
507
492
 
508
493
  // const withdrawMessageMetadata = {
509
- // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
494
+ // _epoch: epoch,
510
495
  // _leafIndex: BigInt(withdrawL2MessageIndex),
511
496
  // _path: withdrawSiblingPath
512
497
  // .toBufferArray()
@@ -514,7 +499,7 @@ export const uniswapL1L2TestSuite = (
514
499
  // };
515
500
 
516
501
  // const swapPrivateMessageMetadata = {
517
- // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
502
+ // _epoch: epoch,
518
503
  // _leafIndex: BigInt(swapPrivateL2MessageIndex),
519
504
  // _path: swapPrivateSiblingPath
520
505
  // .toBufferArray()
@@ -663,8 +648,7 @@ export const uniswapL1L2TestSuite = (
663
648
  Fr.random(),
664
649
  ownerEthAddress,
665
650
  )
666
- .send({ from: ownerAddress, authWitnesses: [transferToPublicAuthwith] })
667
- .wait(),
651
+ .send({ from: ownerAddress, authWitnesses: [transferToPublicAuthwith] }),
668
652
  ).rejects.toThrow('Assertion failed: input_asset address is not the same as seen in the bridge contract');
669
653
  });
670
654
 
@@ -689,7 +673,7 @@ export const uniswapL1L2TestSuite = (
689
673
  },
690
674
  true,
691
675
  );
692
- await validateActionInteraction.send().wait();
676
+ await validateActionInteraction.send();
693
677
 
694
678
  // No approval to call `swap` but should work even without it:
695
679
  const [_, secretHashForDepositingSwappedDai] = await generateClaimSecret();
@@ -708,8 +692,7 @@ export const uniswapL1L2TestSuite = (
708
692
  ownerEthAddress,
709
693
  Fr.ZERO, // nonce for swap -> doesn't matter
710
694
  )
711
- .send({ from: ownerAddress })
712
- .wait();
695
+ .send({ from: ownerAddress });
713
696
  // check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
714
697
  await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
715
698
  });
@@ -739,7 +722,7 @@ export const uniswapL1L2TestSuite = (
739
722
  { caller: approvedUser, action },
740
723
  true,
741
724
  );
742
- await validateActionInteraction.send().wait();
725
+ await validateActionInteraction.send();
743
726
 
744
727
  await expect(action.simulate({ from: sponsorAddress })).rejects.toThrow(/unauthorized/);
745
728
  });
@@ -761,7 +744,7 @@ export const uniswapL1L2TestSuite = (
761
744
  },
762
745
  true,
763
746
  );
764
- await validateActionInteraction.send().wait();
747
+ await validateActionInteraction.send();
765
748
 
766
749
  await expect(
767
750
  uniswapL2Contract.methods
@@ -806,7 +789,7 @@ export const uniswapL1L2TestSuite = (
806
789
  logger.info('Withdrawing weth to L1 and sending message to swap to dai');
807
790
 
808
791
  const [, secretHashForDepositingSwappedDai] = await generateClaimSecret();
809
- const withdrawReceipt = await uniswapL2Contract.methods
792
+ const { receipt: withdrawReceipt } = await uniswapL2Contract.methods
810
793
  .swap_private(
811
794
  wethCrossChainHarness.l2Token.address,
812
795
  wethCrossChainHarness.l2Bridge.address,
@@ -818,8 +801,7 @@ export const uniswapL1L2TestSuite = (
818
801
  secretHashForDepositingSwappedDai,
819
802
  ownerEthAddress,
820
803
  )
821
- .send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] })
822
- .wait();
804
+ .send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] });
823
805
 
824
806
  const swapPrivateContent = sha256ToField([
825
807
  Buffer.from(
@@ -858,12 +840,10 @@ export const uniswapL1L2TestSuite = (
858
840
  chainId: new Fr(l1Client.chain.id),
859
841
  });
860
842
 
861
- const swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber!, swapPrivateLeaf);
862
- const withdrawResult = await computeL2ToL1MembershipWitness(
863
- aztecNode,
864
- withdrawReceipt.blockNumber!,
865
- withdrawLeaf,
866
- );
843
+ const block = await aztecNode.getBlock(withdrawReceipt.blockNumber!);
844
+ const epoch = await rollup.getEpochNumberForCheckpoint(block!.checkpointNumber);
845
+ const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPrivateLeaf);
846
+ const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
867
847
 
868
848
  const swapPrivateL2MessageIndex = swapResult!.leafIndex;
869
849
  const swapPrivateSiblingPath = swapResult!.siblingPath;
@@ -872,7 +852,7 @@ export const uniswapL1L2TestSuite = (
872
852
  const withdrawSiblingPath = withdrawResult!.siblingPath;
873
853
 
874
854
  const withdrawMessageMetadata = {
875
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
855
+ _epoch: BigInt(epoch),
876
856
  _leafIndex: BigInt(withdrawL2MessageIndex),
877
857
  _path: withdrawSiblingPath
878
858
  .toBufferArray()
@@ -880,7 +860,7 @@ export const uniswapL1L2TestSuite = (
880
860
  };
881
861
 
882
862
  const swapPrivateMessageMetadata = {
883
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
863
+ _epoch: BigInt(epoch),
884
864
  _leafIndex: BigInt(swapPrivateL2MessageIndex),
885
865
  _path: swapPrivateSiblingPath
886
866
  .toBufferArray()
@@ -890,8 +870,9 @@ export const uniswapL1L2TestSuite = (
890
870
  // ensure that user's funds were burnt
891
871
  await wethCrossChainHarness.expectPrivateBalanceOnL2(ownerAddress, wethL2BalanceBeforeSwap - wethAmountToBridge);
892
872
 
893
- // Since the outbox is only consumable when the block is proven, we need to set the block to be proven
894
- await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
873
+ // Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
874
+ await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
875
+ await waitForProven(aztecNode, withdrawReceipt, { provenTimeout: 300 });
895
876
 
896
877
  // On L1 call swap_public!
897
878
  logger.info('call swap_public on L1');
@@ -932,11 +913,11 @@ export const uniswapL1L2TestSuite = (
932
913
  },
933
914
  true,
934
915
  );
935
- await validateActionInteraction.send().wait();
916
+ await validateActionInteraction.send();
936
917
 
937
918
  // Call swap_public on L2
938
919
  const secretHashForDepositingSwappedDai = Fr.random();
939
- const withdrawReceipt = await uniswapL2Contract.methods
920
+ const { receipt: withdrawReceipt } = await uniswapL2Contract.methods
940
921
  .swap_public(
941
922
  ownerAddress,
942
923
  wethCrossChainHarness.l2Bridge.address,
@@ -950,8 +931,7 @@ export const uniswapL1L2TestSuite = (
950
931
  ownerEthAddress,
951
932
  Fr.ZERO,
952
933
  )
953
- .send({ from: ownerAddress })
954
- .wait();
934
+ .send({ from: ownerAddress });
955
935
 
956
936
  const swapPublicContent = sha256ToField([
957
937
  Buffer.from(
@@ -993,12 +973,10 @@ export const uniswapL1L2TestSuite = (
993
973
  chainId: new Fr(l1Client.chain.id),
994
974
  });
995
975
 
996
- const swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber!, swapPublicLeaf);
997
- const withdrawResult = await computeL2ToL1MembershipWitness(
998
- aztecNode,
999
- withdrawReceipt.blockNumber!,
1000
- withdrawLeaf,
1001
- );
976
+ const block = await aztecNode.getBlock(withdrawReceipt.blockNumber!);
977
+ const epoch = await rollup.getEpochNumberForCheckpoint(block!.checkpointNumber);
978
+ const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPublicLeaf);
979
+ const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
1002
980
 
1003
981
  const swapPublicL2MessageIndex = swapResult!.leafIndex;
1004
982
  const swapPublicSiblingPath = swapResult!.siblingPath;
@@ -1007,7 +985,7 @@ export const uniswapL1L2TestSuite = (
1007
985
  const withdrawSiblingPath = withdrawResult!.siblingPath;
1008
986
 
1009
987
  const withdrawMessageMetadata = {
1010
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
988
+ _epoch: BigInt(epoch),
1011
989
  _leafIndex: BigInt(withdrawL2MessageIndex),
1012
990
  _path: withdrawSiblingPath
1013
991
  .toBufferArray()
@@ -1015,7 +993,7 @@ export const uniswapL1L2TestSuite = (
1015
993
  };
1016
994
 
1017
995
  const swapPublicMessageMetadata = {
1018
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
996
+ _epoch: BigInt(epoch),
1019
997
  _leafIndex: BigInt(swapPublicL2MessageIndex),
1020
998
  _path: swapPublicSiblingPath
1021
999
  .toBufferArray()
@@ -1025,8 +1003,9 @@ export const uniswapL1L2TestSuite = (
1025
1003
  // check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
1026
1004
  await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
1027
1005
 
1028
- // Since the outbox is only consumable when the block is proven, we need to set the block to be proven
1029
- await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
1006
+ // Since the outbox is only consumable when the epoch is proven, we need to advance to the next epoch.
1007
+ await cheatCodes.rollup.advanceToEpoch(EpochNumber(epoch + 1));
1008
+ await waitForProven(aztecNode, withdrawReceipt, { provenTimeout: 300 });
1030
1009
 
1031
1010
  // Call swap_private on L1
1032
1011
  logger.info('Execute withdraw and swap on the uniswapPortal!');
@@ -2,9 +2,9 @@
2
2
  import { AztecAddress } from '@aztec/aztec.js/addresses';
3
3
  import { Fr } from '@aztec/aztec.js/fields';
4
4
  import { CheatCodes } from '@aztec/aztec/testing';
5
- import type { RollupContract } from '@aztec/ethereum';
5
+ import type { RollupContract } from '@aztec/ethereum/contracts';
6
6
  import { SlotNumber } from '@aztec/foundation/branded-types';
7
- import { pedersenHash } from '@aztec/foundation/crypto';
7
+ import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
8
8
  import type { TestDateProvider } from '@aztec/foundation/timer';
9
9
  import type { LendingContract } from '@aztec/noir-contracts.js/Lending';
10
10
 
@@ -29,7 +29,7 @@ export class LendingAccount {
29
29
  * @returns Key in public space
30
30
  */
31
31
  public key() {
32
- return pedersenHash([this.address, this.secret]);
32
+ return poseidon2Hash([this.address, this.secret]);
33
33
  }
34
34
  }
35
35
 
@@ -186,14 +186,16 @@ export class LendingSimulator {
186
186
 
187
187
  expect(this.borrowed).toEqual(this.stableCoin.totalSupply - this.mintedOutside);
188
188
 
189
- const asset = await this.lendingContract.methods.get_asset(0).simulate({ from: this.account.address });
189
+ const { result: asset } = await this.lendingContract.methods.get_asset(0).simulate({ from: this.account.address });
190
190
 
191
191
  const interestAccumulator = asset['interest_accumulator'];
192
192
  expect(interestAccumulator).toEqual(this.accumulator);
193
193
  expect(asset['last_updated_ts']).toEqual(BigInt(this.time));
194
194
 
195
195
  for (const key of [this.account.address, AztecAddress.fromField(await this.account.key())]) {
196
- const privatePos = await this.lendingContract.methods.get_position(key).simulate({ from: this.account.address });
196
+ const { result: privatePos } = await this.lendingContract.methods
197
+ .get_position(key)
198
+ .simulate({ from: this.account.address });
197
199
  expect(new Fr(privatePos['collateral'])).toEqual(this.collateral[key.toString()] ?? Fr.ZERO);
198
200
  expect(new Fr(privatePos['static_debt'])).toEqual(this.staticDebt[key.toString()] ?? Fr.ZERO);
199
201
  expect(privatePos['debt']).toEqual(
@@ -109,7 +109,9 @@ export class TokenSimulator {
109
109
  await Promise.all(
110
110
  chunk(calls, 5).map(batch => new BatchCall(this.defaultWallet, batch).simulate({ from: this.defaultAddress })),
111
111
  )
112
- ).flat();
112
+ )
113
+ .flat()
114
+ .map(r => r.result);
113
115
  expect(results[0]).toEqual(this.totalSupply);
114
116
 
115
117
  // Check that all our balances match
@@ -119,39 +121,13 @@ export class TokenSimulator {
119
121
  }
120
122
 
121
123
  async checkPrivate() {
122
- // Private calls
123
- const defaultLookups = [];
124
- const nonDefaultLookups = [];
125
-
126
124
  for (const address of this.accounts) {
127
- if (this.lookupProvider.has(address.toString())) {
128
- nonDefaultLookups.push(address);
129
- } else {
130
- defaultLookups.push(address);
131
- }
132
- }
133
-
134
- const defaultCalls = defaultLookups.map(address => this.token.methods.balance_of_private(address));
135
- const results = (
136
- await Promise.all(
137
- chunk(defaultCalls, 4).map(batch =>
138
- new BatchCall(this.defaultWallet, batch).simulate({ from: this.defaultAddress }),
139
- ),
140
- )
141
- ).flat();
142
- for (let i = 0; i < defaultLookups.length; i++) {
143
- expect(results[i]).toEqual(this.balanceOfPrivate(defaultLookups[i]));
144
- }
145
-
146
- // We are just running individual calls for the non-default lookups
147
- // @todo We should also batch these
148
- for (const address of nonDefaultLookups) {
149
125
  const wallet = this.lookupProvider.get(address.toString());
150
126
  const asset = wallet ? this.token.withWallet(wallet) : this.token;
151
127
 
152
- const actualPrivateBalance = await asset.methods
153
- .balance_of_private({ address })
154
- .simulate({ from: this.defaultAddress });
128
+ const { result: actualPrivateBalance } = await asset.methods
129
+ .balance_of_private(address)
130
+ .simulate({ from: address });
155
131
  expect(actualPrivateBalance).toEqual(this.balanceOfPrivate(address));
156
132
  }
157
133
  }
@@ -61,10 +61,17 @@ The export is important there. The `AZTEC_DOCKER_IMAGE` env var is used as both:
61
61
  - the containers for the aztec infrastructure (validators, provers, etc)
62
62
 
63
63
  # Deploy Metrics
64
+
64
65
  ```bash
65
66
  ./spartan/bootstrap.sh metrics-kind
66
67
  ```
67
68
 
69
+ # Install Chaos Mesh
70
+
71
+ ```bash
72
+ ./spartan/bootstrap.sh chaos-mesh
73
+ ```
74
+
68
75
  # Deploy stuff
69
76
 
70
77
  ```bash