@aztec/end-to-end 0.0.1-commit.03f7ef2 → 0.0.1-commit.04852196a

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 (240) 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 +13 -14
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  6. package/dest/bench/client_flows/client_flows_benchmark.js +131 -138
  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 +16 -11
  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 +90 -70
  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 +15 -7
  24. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  25. package/dest/e2e_epochs/epochs_test.js +87 -40
  26. package/dest/e2e_fees/bridging_race.notest.js +3 -5
  27. package/dest/e2e_fees/fees_test.d.ts +14 -14
  28. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  29. package/dest/e2e_fees/fees_test.js +134 -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_nested_contract/nested_contract_test.d.ts +6 -9
  34. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  35. package/dest/e2e_nested_contract/nested_contract_test.js +30 -40
  36. package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
  37. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  38. package/dest/e2e_p2p/inactivity_slash_test.js +3 -3
  39. package/dest/e2e_p2p/p2p_network.d.ts +11 -9
  40. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  41. package/dest/e2e_p2p/p2p_network.js +133 -109
  42. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  43. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  44. package/dest/e2e_p2p/reqresp/utils.js +177 -0
  45. package/dest/e2e_p2p/shared.d.ts +20 -6
  46. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  47. package/dest/e2e_p2p/shared.js +42 -22
  48. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  49. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  50. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  51. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  52. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  53. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  54. package/dest/e2e_token_contract/token_contract_test.d.ts +19 -10
  55. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  56. package/dest/e2e_token_contract/token_contract_test.js +100 -92
  57. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  58. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  59. package/dest/fixtures/authwit_proxy.js +30 -0
  60. package/dest/fixtures/e2e_prover_test.d.ts +11 -17
  61. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  62. package/dest/fixtures/e2e_prover_test.js +112 -128
  63. package/dest/fixtures/elu_monitor.d.ts +21 -0
  64. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  65. package/dest/fixtures/elu_monitor.js +102 -0
  66. package/dest/fixtures/fixtures.d.ts +6 -2
  67. package/dest/fixtures/fixtures.d.ts.map +1 -1
  68. package/dest/fixtures/fixtures.js +7 -1
  69. package/dest/fixtures/ha_setup.d.ts +71 -0
  70. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  71. package/dest/fixtures/ha_setup.js +116 -0
  72. package/dest/fixtures/index.d.ts +2 -1
  73. package/dest/fixtures/index.d.ts.map +1 -1
  74. package/dest/fixtures/index.js +1 -0
  75. package/dest/fixtures/setup.d.ts +234 -0
  76. package/dest/fixtures/setup.d.ts.map +1 -0
  77. package/dest/fixtures/setup.js +605 -0
  78. package/dest/fixtures/setup_p2p_test.d.ts +16 -9
  79. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  80. package/dest/fixtures/setup_p2p_test.js +40 -29
  81. package/dest/fixtures/token_utils.d.ts +2 -2
  82. package/dest/fixtures/token_utils.d.ts.map +1 -1
  83. package/dest/fixtures/token_utils.js +12 -8
  84. package/dest/fixtures/utils.d.ts +5 -194
  85. package/dest/fixtures/utils.d.ts.map +1 -1
  86. package/dest/fixtures/utils.js +4 -619
  87. package/dest/quality_of_service/grafana_client.d.ts +41 -0
  88. package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
  89. package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
  90. package/dest/quality_of_service/prometheus_client.d.ts +38 -0
  91. package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
  92. package/dest/quality_of_service/prometheus_client.js +67 -0
  93. package/dest/shared/cross_chain_test_harness.d.ts +16 -6
  94. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  95. package/dest/shared/cross_chain_test_harness.js +26 -26
  96. package/dest/shared/gas_portal_test_harness.d.ts +11 -1
  97. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  98. package/dest/shared/gas_portal_test_harness.js +3 -3
  99. package/dest/shared/index.d.ts +3 -2
  100. package/dest/shared/index.d.ts.map +1 -1
  101. package/dest/shared/index.js +1 -0
  102. package/dest/shared/jest_setup.js +41 -1
  103. package/dest/shared/mock_state_view.d.ts +86 -0
  104. package/dest/shared/mock_state_view.d.ts.map +1 -0
  105. package/dest/shared/mock_state_view.js +186 -0
  106. package/dest/shared/submit-transactions.d.ts +4 -4
  107. package/dest/shared/submit-transactions.d.ts.map +1 -1
  108. package/dest/shared/submit-transactions.js +9 -11
  109. package/dest/shared/uniswap_l1_l2.d.ts +3 -28
  110. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  111. package/dest/shared/uniswap_l1_l2.js +57 -37
  112. package/dest/simulators/lending_simulator.d.ts +5 -1
  113. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  114. package/dest/simulators/lending_simulator.js +4 -4
  115. package/dest/simulators/token_simulator.d.ts +1 -1
  116. package/dest/simulators/token_simulator.d.ts.map +1 -1
  117. package/dest/simulators/token_simulator.js +3 -24
  118. package/dest/spartan/setup_test_wallets.d.ts +12 -4
  119. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  120. package/dest/spartan/setup_test_wallets.js +94 -36
  121. package/dest/spartan/tx_metrics.d.ts +51 -2
  122. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  123. package/dest/spartan/tx_metrics.js +334 -7
  124. package/dest/spartan/utils/bot.d.ts +28 -0
  125. package/dest/spartan/utils/bot.d.ts.map +1 -0
  126. package/dest/spartan/utils/bot.js +142 -0
  127. package/dest/spartan/utils/chaos.d.ts +79 -0
  128. package/dest/spartan/utils/chaos.d.ts.map +1 -0
  129. package/dest/spartan/utils/chaos.js +142 -0
  130. package/dest/spartan/utils/clients.d.ts +39 -0
  131. package/dest/spartan/utils/clients.d.ts.map +1 -0
  132. package/dest/spartan/utils/clients.js +90 -0
  133. package/dest/spartan/utils/config.d.ts +42 -0
  134. package/dest/spartan/utils/config.d.ts.map +1 -0
  135. package/dest/spartan/utils/config.js +22 -0
  136. package/dest/spartan/utils/health.d.ts +63 -0
  137. package/dest/spartan/utils/health.d.ts.map +1 -0
  138. package/dest/spartan/utils/health.js +202 -0
  139. package/dest/spartan/utils/helm.d.ts +15 -0
  140. package/dest/spartan/utils/helm.d.ts.map +1 -0
  141. package/dest/spartan/utils/helm.js +47 -0
  142. package/dest/spartan/utils/index.d.ts +10 -0
  143. package/dest/spartan/utils/index.d.ts.map +1 -0
  144. package/dest/spartan/utils/index.js +20 -0
  145. package/dest/spartan/utils/k8s.d.ts +128 -0
  146. package/dest/spartan/utils/k8s.d.ts.map +1 -0
  147. package/dest/spartan/utils/k8s.js +381 -0
  148. package/dest/spartan/utils/nodes.d.ts +40 -0
  149. package/dest/spartan/utils/nodes.d.ts.map +1 -0
  150. package/dest/spartan/utils/nodes.js +461 -0
  151. package/dest/spartan/utils/scripts.d.ts +30 -0
  152. package/dest/spartan/utils/scripts.d.ts.map +1 -0
  153. package/dest/spartan/utils/scripts.js +81 -0
  154. package/dest/spartan/utils.d.ts +2 -231
  155. package/dest/spartan/utils.d.ts.map +1 -1
  156. package/dest/spartan/utils.js +1 -853
  157. package/dest/test-wallet/test_wallet.d.ts +83 -0
  158. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  159. package/dest/test-wallet/test_wallet.js +214 -0
  160. package/dest/test-wallet/utils.d.ts +41 -0
  161. package/dest/test-wallet/utils.d.ts.map +1 -0
  162. package/dest/test-wallet/utils.js +71 -0
  163. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  164. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  165. package/dest/test-wallet/wallet_worker_script.js +48 -0
  166. package/dest/test-wallet/worker_wallet.d.ts +52 -0
  167. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  168. package/dest/test-wallet/worker_wallet.js +151 -0
  169. package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
  170. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  171. package/dest/test-wallet/worker_wallet_schema.js +10 -0
  172. package/package.json +47 -43
  173. package/src/bench/client_flows/benchmark.ts +24 -2
  174. package/src/bench/client_flows/client_flows_benchmark.ts +149 -211
  175. package/src/bench/client_flows/config.ts +9 -1
  176. package/src/bench/client_flows/data_extractor.ts +1 -1
  177. package/src/bench/utils.ts +36 -21
  178. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +120 -145
  179. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +127 -117
  180. package/src/e2e_deploy_contract/deploy_test.ts +22 -15
  181. package/src/e2e_epochs/epochs_test.ts +130 -94
  182. package/src/e2e_fees/bridging_race.notest.ts +4 -10
  183. package/src/e2e_fees/fees_test.ts +171 -227
  184. package/src/e2e_l1_publisher/write_json.ts +16 -16
  185. package/src/e2e_nested_contract/nested_contract_test.ts +35 -56
  186. package/src/e2e_p2p/inactivity_slash_test.ts +3 -3
  187. package/src/e2e_p2p/p2p_network.ts +197 -167
  188. package/src/e2e_p2p/reqresp/utils.ts +235 -0
  189. package/src/e2e_p2p/shared.ts +72 -28
  190. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  191. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  192. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  193. package/src/e2e_token_contract/token_contract_test.ts +121 -119
  194. package/src/fixtures/authwit_proxy.ts +50 -0
  195. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  196. package/src/fixtures/e2e_prover_test.ts +133 -172
  197. package/src/fixtures/elu_monitor.ts +126 -0
  198. package/src/fixtures/fixtures.ts +11 -1
  199. package/src/fixtures/ha_setup.ts +186 -0
  200. package/src/fixtures/index.ts +1 -0
  201. package/src/fixtures/setup.ts +897 -0
  202. package/src/fixtures/setup_p2p_test.ts +40 -44
  203. package/src/fixtures/token_utils.ts +10 -6
  204. package/src/fixtures/utils.ts +27 -907
  205. package/src/guides/up_quick_start.sh +3 -3
  206. package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
  207. package/src/quality_of_service/prometheus_client.ts +113 -0
  208. package/src/shared/cross_chain_test_harness.ts +27 -43
  209. package/src/shared/gas_portal_test_harness.ts +2 -2
  210. package/src/shared/index.ts +2 -1
  211. package/src/shared/jest_setup.ts +51 -1
  212. package/src/shared/mock_state_view.ts +188 -0
  213. package/src/shared/submit-transactions.ts +11 -16
  214. package/src/shared/uniswap_l1_l2.ts +64 -83
  215. package/src/simulators/lending_simulator.ts +6 -4
  216. package/src/simulators/token_simulator.ts +6 -30
  217. package/src/spartan/setup_test_wallets.ts +128 -27
  218. package/src/spartan/tx_metrics.ts +256 -10
  219. package/src/spartan/utils/bot.ts +188 -0
  220. package/src/spartan/utils/chaos.ts +253 -0
  221. package/src/spartan/utils/clients.ts +100 -0
  222. package/src/spartan/utils/config.ts +28 -0
  223. package/src/spartan/utils/health.ts +255 -0
  224. package/src/spartan/utils/helm.ts +84 -0
  225. package/src/spartan/utils/index.ts +68 -0
  226. package/src/spartan/utils/k8s.ts +535 -0
  227. package/src/spartan/utils/nodes.ts +543 -0
  228. package/src/spartan/utils/scripts.ts +99 -0
  229. package/src/spartan/utils.ts +1 -1077
  230. package/src/test-wallet/test_wallet.ts +306 -0
  231. package/src/test-wallet/utils.ts +112 -0
  232. package/src/test-wallet/wallet_worker_script.ts +60 -0
  233. package/src/test-wallet/worker_wallet.ts +213 -0
  234. package/src/test-wallet/worker_wallet_schema.ts +13 -0
  235. package/dest/fixtures/snapshot_manager.d.ts +0 -93
  236. package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
  237. package/dest/fixtures/snapshot_manager.js +0 -493
  238. package/dest/quality_of_service/alert_checker.d.ts +0 -41
  239. package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
  240. package/src/fixtures/snapshot_manager.ts +0 -651
@@ -1,5 +1,6 @@
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';
@@ -10,17 +11,18 @@ import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-az
10
11
  import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
11
12
  import type { ExtendedViemWalletClient } from '@aztec/ethereum/types';
12
13
  import { extractEvent } from '@aztec/ethereum/utils';
14
+ import { EpochNumber } from '@aztec/foundation/branded-types';
13
15
  import { sha256ToField } from '@aztec/foundation/crypto/sha256';
14
16
  import { InboxAbi, UniswapPortalAbi, UniswapPortalBytecode } from '@aztec/l1-artifacts';
15
17
  import { UniswapContract } from '@aztec/noir-contracts.js/Uniswap';
16
18
  import { computeL2ToL1MessageHash } from '@aztec/stdlib/hash';
17
19
  import { computeL2ToL1MembershipWitness } from '@aztec/stdlib/messaging';
18
- import type { TestWallet } from '@aztec/test-wallet/server';
19
20
 
20
21
  import { jest } from '@jest/globals';
21
22
  import { type GetContractReturnType, getContract, parseEther, toFunctionSelector } from 'viem';
22
23
 
23
- 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';
24
26
  import { CrossChainTestHarness } from './cross_chain_test_harness.js';
25
27
 
26
28
  // PSA: This tests works on forked mainnet. There is a dump of the data in `dumpedState` such that we
@@ -32,28 +34,8 @@ import { CrossChainTestHarness } from './cross_chain_test_harness.js';
32
34
 
33
35
  const TIMEOUT = 360_000;
34
36
 
35
- /** Objects to be returned by the uniswap setup function */
36
- export type UniswapSetupContext = {
37
- /** Aztec Node instance */
38
- aztecNode: AztecNode;
39
- /** Logger instance named as the current test. */
40
- logger: Logger;
41
- /** The L1 wallet client, extended with public actions. */
42
- l1Client: ExtendedViemWalletClient;
43
- /** The wallet. */
44
- wallet: TestWallet;
45
- /** The owner address. */
46
- ownerAddress: AztecAddress;
47
- /** The sponsor wallet. */
48
- sponsorAddress: AztecAddress;
49
- /** */
50
- deployL1ContractsValues: DeployAztecL1ContractsReturnType;
51
- /** Cheat codes instance. */
52
- cheatCodes: CheatCodes;
53
- };
54
-
55
37
  export const uniswapL1L2TestSuite = (
56
- setup: () => Promise<UniswapSetupContext>,
38
+ setup: () => Promise<EndToEndContext>,
57
39
  cleanup: () => Promise<void>,
58
40
  expectedForkBlockNumber = 17514288,
59
41
  ) => {
@@ -90,8 +72,19 @@ export const uniswapL1L2TestSuite = (
90
72
  let cheatCodes: CheatCodes;
91
73
  let version: number;
92
74
  beforeAll(async () => {
93
- ({ aztecNode, logger, l1Client, wallet, ownerAddress, sponsorAddress, deployL1ContractsValues, cheatCodes } =
94
- 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);
95
88
 
96
89
  if (Number(await l1Client.getBlockNumber()) < expectedForkBlockNumber) {
97
90
  throw new Error('This test must be run on a fork of mainnet with the expected fork block');
@@ -137,9 +130,9 @@ export const uniswapL1L2TestSuite = (
137
130
  client: l1Client,
138
131
  });
139
132
  // deploy l2 uniswap contract and attach to portal
140
- uniswapL2Contract = await UniswapContract.deploy(wallet, uniswapPortalAddress)
141
- .send({ from: ownerAddress })
142
- .deployed();
133
+ ({ contract: uniswapL2Contract } = await UniswapContract.deploy(wallet, uniswapPortalAddress).send({
134
+ from: ownerAddress,
135
+ }));
143
136
 
144
137
  const registryAddress = (await aztecNode.getNodeInfo()).l1ContractAddresses.registryAddress;
145
138
 
@@ -204,7 +197,7 @@ export const uniswapL1L2TestSuite = (
204
197
  logger.info('Withdrawing weth to L1 and sending message to swap to dai');
205
198
  const [secretForDepositingSwappedDai, secretHashForDepositingSwappedDai] = await generateClaimSecret();
206
199
 
207
- const l2UniswapInteractionReceipt = await uniswapL2Contract.methods
200
+ const { receipt: l2UniswapInteractionReceipt } = await uniswapL2Contract.methods
208
201
  .swap_private(
209
202
  wethCrossChainHarness.l2Token.address,
210
203
  wethCrossChainHarness.l2Bridge.address,
@@ -216,8 +209,7 @@ export const uniswapL1L2TestSuite = (
216
209
  secretHashForDepositingSwappedDai,
217
210
  ownerEthAddress,
218
211
  )
219
- .send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] })
220
- .wait();
212
+ .send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] });
221
213
 
222
214
  const swapPrivateFunction = 'swap_private(address,uint256,uint24,address,uint256,bytes32,address)';
223
215
  const swapPrivateContent = sha256ToField([
@@ -259,24 +251,19 @@ export const uniswapL1L2TestSuite = (
259
251
  // ensure that uniswap contract didn't eat the funds.
260
252
  await wethCrossChainHarness.expectPublicBalanceOnL2(uniswapL2Contract.address, 0n);
261
253
 
262
- // Since the outbox is only consumable when the block is proven, we need to set the block to be proven
263
- 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 });
264
259
 
265
260
  // 5. Consume L2 to L1 message by calling uniswapPortal.swap_private()
266
261
  logger.info('Execute withdraw and swap on the uniswapPortal!');
267
262
  const daiL1BalanceOfPortalBeforeSwap = await daiCrossChainHarness.getL1BalanceOf(
268
263
  daiCrossChainHarness.tokenPortalAddress,
269
264
  );
270
- const swapResult = await computeL2ToL1MembershipWitness(
271
- aztecNode,
272
- l2UniswapInteractionReceipt.blockNumber!,
273
- swapPrivateLeaf,
274
- );
275
- const withdrawResult = await computeL2ToL1MembershipWitness(
276
- aztecNode,
277
- l2UniswapInteractionReceipt.blockNumber!,
278
- withdrawLeaf,
279
- );
265
+ const swapResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, swapPrivateLeaf);
266
+ const withdrawResult = await computeL2ToL1MembershipWitness(aztecNode, epoch, withdrawLeaf);
280
267
 
281
268
  const swapPrivateL2MessageIndex = swapResult!.leafIndex;
282
269
  const swapPrivateSiblingPath = swapResult!.siblingPath;
@@ -285,7 +272,7 @@ export const uniswapL1L2TestSuite = (
285
272
  const withdrawSiblingPath = withdrawResult!.siblingPath;
286
273
 
287
274
  const withdrawMessageMetadata = {
288
- _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber!),
275
+ _epoch: BigInt(epoch),
289
276
  _leafIndex: BigInt(withdrawL2MessageIndex),
290
277
  _path: withdrawSiblingPath
291
278
  .toBufferArray()
@@ -293,7 +280,7 @@ export const uniswapL1L2TestSuite = (
293
280
  };
294
281
 
295
282
  const swapPrivateMessageMetadata = {
296
- _checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber!),
283
+ _epoch: BigInt(epoch),
297
284
  _leafIndex: BigInt(swapPrivateL2MessageIndex),
298
285
  _path: swapPrivateSiblingPath
299
286
  .toBufferArray()
@@ -440,10 +427,10 @@ export const uniswapL1L2TestSuite = (
440
427
  // ownerEthAddress,
441
428
  // nonceForSwap,
442
429
  // );
443
- // await ownerWallet.setPublicAuthWit({ caller: sponsorAddress, action }, true).send().wait();
430
+ // await ownerWallet.setPublicAuthWit({ caller: sponsorAddress, action }, true).send();
444
431
 
445
432
  // // 4.2 Call swap_public from user2 on behalf of owner
446
- // const uniswapL2Interaction = await action.send().wait();
433
+ // const uniswapL2Interaction = await action.send();
447
434
 
448
435
  // const swapPublicContent = sha256ToField([
449
436
  // Buffer.from(
@@ -504,7 +491,7 @@ export const uniswapL1L2TestSuite = (
504
491
  // );
505
492
 
506
493
  // const withdrawMessageMetadata = {
507
- // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
494
+ // _epoch: epoch,
508
495
  // _leafIndex: BigInt(withdrawL2MessageIndex),
509
496
  // _path: withdrawSiblingPath
510
497
  // .toBufferArray()
@@ -512,7 +499,7 @@ export const uniswapL1L2TestSuite = (
512
499
  // };
513
500
 
514
501
  // const swapPrivateMessageMetadata = {
515
- // _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
502
+ // _epoch: epoch,
516
503
  // _leafIndex: BigInt(swapPrivateL2MessageIndex),
517
504
  // _path: swapPrivateSiblingPath
518
505
  // .toBufferArray()
@@ -661,8 +648,7 @@ export const uniswapL1L2TestSuite = (
661
648
  Fr.random(),
662
649
  ownerEthAddress,
663
650
  )
664
- .send({ from: ownerAddress, authWitnesses: [transferToPublicAuthwith] })
665
- .wait(),
651
+ .send({ from: ownerAddress, authWitnesses: [transferToPublicAuthwith] }),
666
652
  ).rejects.toThrow('Assertion failed: input_asset address is not the same as seen in the bridge contract');
667
653
  });
668
654
 
@@ -687,7 +673,7 @@ export const uniswapL1L2TestSuite = (
687
673
  },
688
674
  true,
689
675
  );
690
- await validateActionInteraction.send().wait();
676
+ await validateActionInteraction.send();
691
677
 
692
678
  // No approval to call `swap` but should work even without it:
693
679
  const [_, secretHashForDepositingSwappedDai] = await generateClaimSecret();
@@ -706,8 +692,7 @@ export const uniswapL1L2TestSuite = (
706
692
  ownerEthAddress,
707
693
  Fr.ZERO, // nonce for swap -> doesn't matter
708
694
  )
709
- .send({ from: ownerAddress })
710
- .wait();
695
+ .send({ from: ownerAddress });
711
696
  // check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
712
697
  await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
713
698
  });
@@ -737,7 +722,7 @@ export const uniswapL1L2TestSuite = (
737
722
  { caller: approvedUser, action },
738
723
  true,
739
724
  );
740
- await validateActionInteraction.send().wait();
725
+ await validateActionInteraction.send();
741
726
 
742
727
  await expect(action.simulate({ from: sponsorAddress })).rejects.toThrow(/unauthorized/);
743
728
  });
@@ -759,7 +744,7 @@ export const uniswapL1L2TestSuite = (
759
744
  },
760
745
  true,
761
746
  );
762
- await validateActionInteraction.send().wait();
747
+ await validateActionInteraction.send();
763
748
 
764
749
  await expect(
765
750
  uniswapL2Contract.methods
@@ -804,7 +789,7 @@ export const uniswapL1L2TestSuite = (
804
789
  logger.info('Withdrawing weth to L1 and sending message to swap to dai');
805
790
 
806
791
  const [, secretHashForDepositingSwappedDai] = await generateClaimSecret();
807
- const withdrawReceipt = await uniswapL2Contract.methods
792
+ const { receipt: withdrawReceipt } = await uniswapL2Contract.methods
808
793
  .swap_private(
809
794
  wethCrossChainHarness.l2Token.address,
810
795
  wethCrossChainHarness.l2Bridge.address,
@@ -816,8 +801,7 @@ export const uniswapL1L2TestSuite = (
816
801
  secretHashForDepositingSwappedDai,
817
802
  ownerEthAddress,
818
803
  )
819
- .send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] })
820
- .wait();
804
+ .send({ from: ownerAddress, authWitnesses: [transferToPublicAuhtwit] });
821
805
 
822
806
  const swapPrivateContent = sha256ToField([
823
807
  Buffer.from(
@@ -856,12 +840,10 @@ export const uniswapL1L2TestSuite = (
856
840
  chainId: new Fr(l1Client.chain.id),
857
841
  });
858
842
 
859
- const swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber!, swapPrivateLeaf);
860
- const withdrawResult = await computeL2ToL1MembershipWitness(
861
- aztecNode,
862
- withdrawReceipt.blockNumber!,
863
- withdrawLeaf,
864
- );
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);
865
847
 
866
848
  const swapPrivateL2MessageIndex = swapResult!.leafIndex;
867
849
  const swapPrivateSiblingPath = swapResult!.siblingPath;
@@ -870,7 +852,7 @@ export const uniswapL1L2TestSuite = (
870
852
  const withdrawSiblingPath = withdrawResult!.siblingPath;
871
853
 
872
854
  const withdrawMessageMetadata = {
873
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
855
+ _epoch: BigInt(epoch),
874
856
  _leafIndex: BigInt(withdrawL2MessageIndex),
875
857
  _path: withdrawSiblingPath
876
858
  .toBufferArray()
@@ -878,7 +860,7 @@ export const uniswapL1L2TestSuite = (
878
860
  };
879
861
 
880
862
  const swapPrivateMessageMetadata = {
881
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
863
+ _epoch: BigInt(epoch),
882
864
  _leafIndex: BigInt(swapPrivateL2MessageIndex),
883
865
  _path: swapPrivateSiblingPath
884
866
  .toBufferArray()
@@ -888,8 +870,9 @@ export const uniswapL1L2TestSuite = (
888
870
  // ensure that user's funds were burnt
889
871
  await wethCrossChainHarness.expectPrivateBalanceOnL2(ownerAddress, wethL2BalanceBeforeSwap - wethAmountToBridge);
890
872
 
891
- // Since the outbox is only consumable when the block is proven, we need to set the block to be proven
892
- 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 });
893
876
 
894
877
  // On L1 call swap_public!
895
878
  logger.info('call swap_public on L1');
@@ -930,11 +913,11 @@ export const uniswapL1L2TestSuite = (
930
913
  },
931
914
  true,
932
915
  );
933
- await validateActionInteraction.send().wait();
916
+ await validateActionInteraction.send();
934
917
 
935
918
  // Call swap_public on L2
936
919
  const secretHashForDepositingSwappedDai = Fr.random();
937
- const withdrawReceipt = await uniswapL2Contract.methods
920
+ const { receipt: withdrawReceipt } = await uniswapL2Contract.methods
938
921
  .swap_public(
939
922
  ownerAddress,
940
923
  wethCrossChainHarness.l2Bridge.address,
@@ -948,8 +931,7 @@ export const uniswapL1L2TestSuite = (
948
931
  ownerEthAddress,
949
932
  Fr.ZERO,
950
933
  )
951
- .send({ from: ownerAddress })
952
- .wait();
934
+ .send({ from: ownerAddress });
953
935
 
954
936
  const swapPublicContent = sha256ToField([
955
937
  Buffer.from(
@@ -991,12 +973,10 @@ export const uniswapL1L2TestSuite = (
991
973
  chainId: new Fr(l1Client.chain.id),
992
974
  });
993
975
 
994
- const swapResult = await computeL2ToL1MembershipWitness(aztecNode, withdrawReceipt.blockNumber!, swapPublicLeaf);
995
- const withdrawResult = await computeL2ToL1MembershipWitness(
996
- aztecNode,
997
- withdrawReceipt.blockNumber!,
998
- withdrawLeaf,
999
- );
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);
1000
980
 
1001
981
  const swapPublicL2MessageIndex = swapResult!.leafIndex;
1002
982
  const swapPublicSiblingPath = swapResult!.siblingPath;
@@ -1005,7 +985,7 @@ export const uniswapL1L2TestSuite = (
1005
985
  const withdrawSiblingPath = withdrawResult!.siblingPath;
1006
986
 
1007
987
  const withdrawMessageMetadata = {
1008
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
988
+ _epoch: BigInt(epoch),
1009
989
  _leafIndex: BigInt(withdrawL2MessageIndex),
1010
990
  _path: withdrawSiblingPath
1011
991
  .toBufferArray()
@@ -1013,7 +993,7 @@ export const uniswapL1L2TestSuite = (
1013
993
  };
1014
994
 
1015
995
  const swapPublicMessageMetadata = {
1016
- _checkpointNumber: BigInt(withdrawReceipt.blockNumber!),
996
+ _epoch: BigInt(epoch),
1017
997
  _leafIndex: BigInt(swapPublicL2MessageIndex),
1018
998
  _path: swapPublicSiblingPath
1019
999
  .toBufferArray()
@@ -1023,8 +1003,9 @@ export const uniswapL1L2TestSuite = (
1023
1003
  // check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
1024
1004
  await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
1025
1005
 
1026
- // Since the outbox is only consumable when the block is proven, we need to set the block to be proven
1027
- 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 });
1028
1009
 
1029
1010
  // Call swap_private on L1
1030
1011
  logger.info('Execute withdraw and swap on the uniswapPortal!');
@@ -4,7 +4,7 @@ import { Fr } from '@aztec/aztec.js/fields';
4
4
  import { CheatCodes } from '@aztec/aztec/testing';
5
5
  import type { RollupContract } from '@aztec/ethereum/contracts';
6
6
  import { SlotNumber } from '@aztec/foundation/branded-types';
7
- import { pedersenHash } from '@aztec/foundation/crypto/pedersen';
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
  }