@aztec/end-to-end 0.81.0 → 0.82.0

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 (64) hide show
  1. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -2
  2. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  3. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +7 -7
  4. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -1
  5. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  6. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +3 -18
  7. package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -0
  8. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  9. package/dest/e2e_deploy_contract/deploy_test.js +2 -0
  10. package/dest/e2e_epochs/epochs_test.d.ts +1 -2
  11. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  12. package/dest/e2e_epochs/epochs_test.js +7 -6
  13. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  14. package/dest/e2e_fees/fees_test.js +20 -29
  15. package/dest/e2e_prover/e2e_prover_test.d.ts +2 -0
  16. package/dest/e2e_prover/e2e_prover_test.d.ts.map +1 -1
  17. package/dest/e2e_prover/e2e_prover_test.js +7 -8
  18. package/dest/e2e_token_contract/token_contract_test.d.ts +2 -1
  19. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  20. package/dest/e2e_token_contract/token_contract_test.js +3 -1
  21. package/dest/fixtures/snapshot_manager.d.ts +4 -2
  22. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  23. package/dest/fixtures/snapshot_manager.js +17 -16
  24. package/dest/fixtures/utils.d.ts +5 -5
  25. package/dest/fixtures/utils.d.ts.map +1 -1
  26. package/dest/fixtures/utils.js +13 -8
  27. package/dest/shared/capture_private_execution_steps.d.ts +7 -0
  28. package/dest/shared/capture_private_execution_steps.d.ts.map +1 -0
  29. package/dest/shared/capture_private_execution_steps.js +40 -0
  30. package/dest/shared/cross_chain_test_harness.d.ts +2 -2
  31. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  32. package/dest/shared/cross_chain_test_harness.js +16 -4
  33. package/dest/shared/gas_portal_test_harness.d.ts +11 -1
  34. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  35. package/dest/shared/gas_portal_test_harness.js +27 -12
  36. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  37. package/dest/shared/uniswap_l1_l2.js +24 -16
  38. package/dest/simulators/lending_simulator.d.ts +3 -5
  39. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  40. package/dest/simulators/lending_simulator.js +5 -13
  41. package/dest/spartan/setup_test_wallets.d.ts +1 -1
  42. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  43. package/dest/spartan/setup_test_wallets.js +6 -4
  44. package/dest/spartan/utils.d.ts +18 -5
  45. package/dest/spartan/utils.d.ts.map +1 -1
  46. package/dest/spartan/utils.js +8 -5
  47. package/package.json +33 -31
  48. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +9 -5
  49. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +3 -19
  50. package/src/e2e_deploy_contract/deploy_test.ts +3 -0
  51. package/src/e2e_epochs/epochs_test.ts +6 -5
  52. package/src/e2e_fees/fees_test.ts +21 -28
  53. package/src/e2e_prover/e2e_prover_test.ts +8 -7
  54. package/src/e2e_token_contract/token_contract_test.ts +4 -2
  55. package/src/fixtures/snapshot_manager.ts +24 -10
  56. package/src/fixtures/utils.ts +25 -9
  57. package/src/guides/up_quick_start.sh +1 -2
  58. package/src/shared/capture_private_execution_steps.ts +43 -0
  59. package/src/shared/cross_chain_test_harness.ts +14 -3
  60. package/src/shared/gas_portal_test_harness.ts +29 -9
  61. package/src/shared/uniswap_l1_l2.ts +16 -16
  62. package/src/simulators/lending_simulator.ts +7 -12
  63. package/src/spartan/setup_test_wallets.ts +7 -7
  64. package/src/spartan/utils.ts +8 -5
@@ -76,23 +76,15 @@ const computeMultiplier = (rate, dt)=>{
76
76
  }
77
77
  async prepare() {
78
78
  this.accumulator = BASE;
79
- const slot = await this.rollup.read.getSlotAt([
80
- BigInt(await this.cc.eth.timestamp()) + BigInt(this.ethereumSlotDuration)
81
- ]);
82
- this.time = Number(await this.rollup.read.getTimestampForSlot([
83
- slot
84
- ]));
79
+ const slot = await this.rollup.getSlotAt(BigInt(await this.cc.eth.timestamp()) + BigInt(this.ethereumSlotDuration));
80
+ this.time = Number(await this.rollup.getTimestampForSlot(slot));
85
81
  }
86
82
  async progressSlots(diff, dateProvider) {
87
83
  if (diff <= 1) {
88
84
  return;
89
85
  }
90
- const slot = await this.rollup.read.getSlotAt([
91
- BigInt(await this.cc.eth.timestamp())
92
- ]);
93
- const ts = Number(await this.rollup.read.getTimestampForSlot([
94
- slot + BigInt(diff)
95
- ]));
86
+ const slot = await this.rollup.getSlotAt(BigInt(await this.cc.eth.timestamp()));
87
+ const ts = Number(await this.rollup.getTimestampForSlot(slot + BigInt(diff)));
96
88
  const timeDiff = ts - this.time;
97
89
  this.time = ts;
98
90
  // Mine ethereum blocks such that the next block will be in a new slot
@@ -100,7 +92,7 @@ const computeMultiplier = (rate, dt)=>{
100
92
  if (dateProvider) {
101
93
  dateProvider.setTime(this.time * 1000);
102
94
  }
103
- await this.cc.rollup.markAsProven(await this.rollup.read.getPendingBlockNumber());
95
+ await this.cc.rollup.markAsProven(await this.rollup.getBlockNumber());
104
96
  this.accumulator = muldivDown(this.accumulator, computeMultiplier(this.rate, BigInt(timeDiff)), BASE);
105
97
  }
106
98
  depositPrivate(from, onBehalfOf, amount) {
@@ -10,7 +10,7 @@ export interface TestWallets {
10
10
  tokenAddress: AztecAddress;
11
11
  }
12
12
  export declare function setupTestWalletsWithTokens(pxeUrl: string, mintAmount: bigint, logger: Logger): Promise<TestWallets>;
13
- export declare function deployTestWalletWithTokens(pxeUrl: string, nodeUrl: string, l1RpcUrls: string[], mnemonicOrPrivateKey: string, mintAmount: bigint, logger: Logger, numberOfFundedWallets?: number, initialFeeJuice?: bigint): Promise<TestWallets>;
13
+ export declare function deployTestWalletWithTokens(pxeUrl: string, nodeUrl: string, l1RpcUrls: string[], mnemonicOrPrivateKey: string, mintAmount: bigint, logger: Logger, numberOfFundedWallets?: number): Promise<TestWallets>;
14
14
  export declare function performTransfers({ testWallets, rounds, transferAmount, logger, }: {
15
15
  testWallets: TestWallets;
16
16
  rounds: number;
@@ -1 +1 @@
1
- {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAKjB,KAAK,GAAG,EAIT,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,gBAAgB,EAAE,aAAa,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,0BAA0B,CAAC;IAC5C,YAAY,EAAE,YAAY,CAAC;CAC5B;AAMD,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,EACzB,eAAe,SAAa,GAC3B,OAAO,CAAC,WAAW,CAAC,CAsCtB;AA2DD,wBAAsB,gBAAgB,CAAC,EACrC,WAAW,EACX,MAAM,EACN,cAAc,EACd,MAAM,GACP,EAAE;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,iBAkBA"}
1
+ {"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAKjB,KAAK,GAAG,EAIT,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACtC,gBAAgB,EAAE,aAAa,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,0BAA0B,CAAC;IAC5C,YAAY,EAAE,YAAY,CAAC;CAC5B;AAMD,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,WAAW,CAAC,CAoCtB;AA6DD,wBAAsB,gBAAgB,CAAC,EACrC,WAAW,EACX,MAAM,EACN,cAAc,EACd,MAAM,GACP,EAAE;IACD,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,iBAkBA"}
@@ -22,13 +22,13 @@ export async function setupTestWalletsWithTokens(pxeUrl, mintAmount, logger) {
22
22
  recipientWallet
23
23
  };
24
24
  }
25
- export async function deployTestWalletWithTokens(pxeUrl, nodeUrl, l1RpcUrls, mnemonicOrPrivateKey, mintAmount, logger, numberOfFundedWallets = 1, initialFeeJuice = 10n ** 22n) {
25
+ export async function deployTestWalletWithTokens(pxeUrl, nodeUrl, l1RpcUrls, mnemonicOrPrivateKey, mintAmount, logger, numberOfFundedWallets = 1) {
26
26
  const pxe = await createCompatibleClient(pxeUrl, logger);
27
27
  const node = createAztecNodeClient(nodeUrl);
28
28
  const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
29
29
  const recipientWallet = await getSchnorrWalletWithSecretKey(pxe, recipient.secret, recipient.signingKey, recipient.salt);
30
30
  const fundedAccounts = await Promise.all(funded.map((a)=>getSchnorrAccount(pxe, a.secret, a.signingKey, a.salt)));
31
- const claims = await Promise.all(fundedAccounts.map((a)=>bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, a.getAddress(), initialFeeJuice, logger)));
31
+ const claims = await Promise.all(fundedAccounts.map((a)=>bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, a.getAddress(), undefined, logger)));
32
32
  // Progress by 2 L2 blocks so that the l1ToL2Message added above will be available to use on L2.
33
33
  await advanceL2Block(node);
34
34
  await advanceL2Block(node);
@@ -59,16 +59,18 @@ async function bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, recipient,
59
59
  const { l1ChainId } = await pxe.getNodeInfo();
60
60
  const chain = createEthereumChain(l1RpcUrls, l1ChainId);
61
61
  const { publicClient, walletClient } = createL1Clients(chain.rpcUrls, mnemonicOrPrivateKey, chain.chainInfo);
62
+ // docs:start:bridge_fee_juice
62
63
  const portal = await L1FeeJuicePortalManager.new(pxe, publicClient, walletClient, log);
63
64
  const claim = await portal.bridgeTokensPublic(recipient, amount, true);
65
+ // docs:end:bridge_fee_juice
64
66
  const isSynced = async ()=>await pxe.isL1ToL2MessageSynced(Fr.fromHexString(claim.messageHash));
65
67
  await retryUntil(isSynced, `message ${claim.messageHash} sync`, 24, 0.5);
66
68
  log.info(`Created a claim for ${amount} L1 fee juice to ${recipient}.`, claim);
67
69
  return claim;
68
70
  }
69
- async function advanceL2Block(node) {
71
+ async function advanceL2Block(node, nodeAdmin) {
70
72
  const initialBlockNumber = await node.getBlockNumber();
71
- await node.flushTxs();
73
+ await nodeAdmin?.flushTxs();
72
74
  await retryUntil(async ()=>await node.getBlockNumber() >= initialBlockNumber + 1);
73
75
  }
74
76
  async function deployTokenAndMint(wallets, admin, mintAmount, logger) {
@@ -13,6 +13,7 @@ declare const k8sLocalConfigSchema: z.ZodObject<{
13
13
  INSTANCE_NAME: z.ZodString;
14
14
  NAMESPACE: z.ZodString;
15
15
  CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
16
+ CONTAINER_NODE_ADMIN_PORT: z.ZodDefault<z.ZodNumber>;
16
17
  CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
17
18
  CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
18
19
  CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
@@ -33,6 +34,7 @@ declare const k8sLocalConfigSchema: z.ZodObject<{
33
34
  INSTANCE_NAME: string;
34
35
  NAMESPACE: string;
35
36
  CONTAINER_NODE_PORT: number;
37
+ CONTAINER_NODE_ADMIN_PORT: number;
36
38
  CONTAINER_SEQUENCER_PORT: number;
37
39
  CONTAINER_PROVER_NODE_PORT: number;
38
40
  CONTAINER_PXE_PORT: number;
@@ -56,6 +58,7 @@ declare const k8sLocalConfigSchema: z.ZodObject<{
56
58
  K8S: "local";
57
59
  ETHEREUM_HOSTS?: string | undefined;
58
60
  CONTAINER_NODE_PORT?: number | undefined;
61
+ CONTAINER_NODE_ADMIN_PORT?: number | undefined;
59
62
  CONTAINER_SEQUENCER_PORT?: number | undefined;
60
63
  CONTAINER_PROVER_NODE_PORT?: number | undefined;
61
64
  CONTAINER_PXE_PORT?: number | undefined;
@@ -74,6 +77,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
74
77
  INSTANCE_NAME: z.ZodString;
75
78
  NAMESPACE: z.ZodString;
76
79
  CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
80
+ CONTAINER_NODE_ADMIN_PORT: z.ZodDefault<z.ZodNumber>;
77
81
  CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
78
82
  CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
79
83
  CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
@@ -98,6 +102,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
98
102
  INSTANCE_NAME: string;
99
103
  NAMESPACE: string;
100
104
  CONTAINER_NODE_PORT: number;
105
+ CONTAINER_NODE_ADMIN_PORT: number;
101
106
  CONTAINER_SEQUENCER_PORT: number;
102
107
  CONTAINER_PROVER_NODE_PORT: number;
103
108
  CONTAINER_PXE_PORT: number;
@@ -125,6 +130,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
125
130
  REGION: string;
126
131
  ETHEREUM_HOSTS?: string | undefined;
127
132
  CONTAINER_NODE_PORT?: number | undefined;
133
+ CONTAINER_NODE_ADMIN_PORT?: number | undefined;
128
134
  CONTAINER_SEQUENCER_PORT?: number | undefined;
129
135
  CONTAINER_PROVER_NODE_PORT?: number | undefined;
130
136
  CONTAINER_PXE_PORT?: number | undefined;
@@ -138,6 +144,7 @@ declare const k8sGCloudConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
138
144
  declare const directConfigSchema: z.ZodObject<{
139
145
  PXE_URL: z.ZodString;
140
146
  NODE_URL: z.ZodString;
147
+ NODE_ADMIN_URL: z.ZodString;
141
148
  ETHEREUM_HOSTS: z.ZodEffects<z.ZodString, string, string>;
142
149
  K8S: z.ZodLiteral<"false">;
143
150
  }, "strip", z.ZodTypeAny, {
@@ -145,11 +152,13 @@ declare const directConfigSchema: z.ZodObject<{
145
152
  ETHEREUM_HOSTS: string;
146
153
  K8S: "false";
147
154
  NODE_URL: string;
155
+ NODE_ADMIN_URL: string;
148
156
  }, {
149
157
  PXE_URL: string;
150
158
  ETHEREUM_HOSTS: string;
151
159
  K8S: "false";
152
160
  NODE_URL: string;
161
+ NODE_ADMIN_URL: string;
153
162
  }>;
154
163
  declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
155
164
  ETHEREUM_SLOT_DURATION: z.ZodNumber;
@@ -159,6 +168,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
159
168
  INSTANCE_NAME: z.ZodString;
160
169
  NAMESPACE: z.ZodString;
161
170
  CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
171
+ CONTAINER_NODE_ADMIN_PORT: z.ZodDefault<z.ZodNumber>;
162
172
  CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
163
173
  CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
164
174
  CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
@@ -179,6 +189,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
179
189
  INSTANCE_NAME: string;
180
190
  NAMESPACE: string;
181
191
  CONTAINER_NODE_PORT: number;
192
+ CONTAINER_NODE_ADMIN_PORT: number;
182
193
  CONTAINER_SEQUENCER_PORT: number;
183
194
  CONTAINER_PROVER_NODE_PORT: number;
184
195
  CONTAINER_PXE_PORT: number;
@@ -202,6 +213,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
202
213
  K8S: "local";
203
214
  ETHEREUM_HOSTS?: string | undefined;
204
215
  CONTAINER_NODE_PORT?: number | undefined;
216
+ CONTAINER_NODE_ADMIN_PORT?: number | undefined;
205
217
  CONTAINER_SEQUENCER_PORT?: number | undefined;
206
218
  CONTAINER_PROVER_NODE_PORT?: number | undefined;
207
219
  CONTAINER_PXE_PORT?: number | undefined;
@@ -219,6 +231,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
219
231
  INSTANCE_NAME: z.ZodString;
220
232
  NAMESPACE: z.ZodString;
221
233
  CONTAINER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
234
+ CONTAINER_NODE_ADMIN_PORT: z.ZodDefault<z.ZodNumber>;
222
235
  CONTAINER_SEQUENCER_PORT: z.ZodDefault<z.ZodNumber>;
223
236
  CONTAINER_PROVER_NODE_PORT: z.ZodDefault<z.ZodNumber>;
224
237
  CONTAINER_PXE_PORT: z.ZodDefault<z.ZodNumber>;
@@ -243,6 +256,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
243
256
  INSTANCE_NAME: string;
244
257
  NAMESPACE: string;
245
258
  CONTAINER_NODE_PORT: number;
259
+ CONTAINER_NODE_ADMIN_PORT: number;
246
260
  CONTAINER_SEQUENCER_PORT: number;
247
261
  CONTAINER_PROVER_NODE_PORT: number;
248
262
  CONTAINER_PXE_PORT: number;
@@ -270,6 +284,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
270
284
  REGION: string;
271
285
  ETHEREUM_HOSTS?: string | undefined;
272
286
  CONTAINER_NODE_PORT?: number | undefined;
287
+ CONTAINER_NODE_ADMIN_PORT?: number | undefined;
273
288
  CONTAINER_SEQUENCER_PORT?: number | undefined;
274
289
  CONTAINER_PROVER_NODE_PORT?: number | undefined;
275
290
  CONTAINER_PXE_PORT?: number | undefined;
@@ -282,6 +297,7 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
282
297
  }>, z.ZodObject<{
283
298
  PXE_URL: z.ZodString;
284
299
  NODE_URL: z.ZodString;
300
+ NODE_ADMIN_URL: z.ZodString;
285
301
  ETHEREUM_HOSTS: z.ZodEffects<z.ZodString, string, string>;
286
302
  K8S: z.ZodLiteral<"false">;
287
303
  }, "strip", z.ZodTypeAny, {
@@ -289,11 +305,13 @@ declare const envSchema: z.ZodDiscriminatedUnion<"K8S", [z.ZodObject<{
289
305
  ETHEREUM_HOSTS: string;
290
306
  K8S: "false";
291
307
  NODE_URL: string;
308
+ NODE_ADMIN_URL: string;
292
309
  }, {
293
310
  PXE_URL: string;
294
311
  ETHEREUM_HOSTS: string;
295
312
  K8S: "false";
296
313
  NODE_URL: string;
314
+ NODE_ADMIN_URL: string;
297
315
  }>]>;
298
316
  export type K8sLocalConfig = z.infer<typeof k8sLocalConfigSchema>;
299
317
  export type K8sGCloudConfig = z.infer<typeof k8sGCloudConfigSchema>;
@@ -407,11 +425,6 @@ export declare function enableValidatorDynamicBootNode(instanceName: string, nam
407
425
  export declare function runAlertCheck(config: EnvConfig, alerts: AlertConfig[], logger: Logger): Promise<void>;
408
426
  export declare function updateSequencerConfig(url: string, config: Partial<SequencerConfig>): Promise<void>;
409
427
  export declare function getSequencers(namespace: string): Promise<string[]>;
410
- export declare function updateK8sSequencersConfig(args: {
411
- containerPort: number;
412
- namespace: string;
413
- config: Partial<SequencerConfig>;
414
- }): Promise<void>;
415
428
  export declare function updateSequencersConfig(env: EnvConfig, config: Partial<SequencerConfig>): Promise<void>;
416
429
  /**
417
430
  * Rolls the Aztec pods in the given namespace.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/spartan/utils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { createAztecNodeClient, createLogger, sleep } from '@aztec/aztec.js';
1
+ import { createLogger, sleep } from '@aztec/aztec.js';
2
2
  import { makeBackoff, retry } from '@aztec/foundation/retry';
3
+ import { createAztecNodeAdminClient } from '@aztec/stdlib/interfaces/client';
3
4
  import { exec, execSync, spawn } from 'child_process';
4
5
  import path from 'path';
5
6
  import { promisify } from 'util';
@@ -23,6 +24,7 @@ const k8sLocalConfigSchema = z.object({
23
24
  INSTANCE_NAME: z.string().min(1, 'INSTANCE_NAME env variable must be set'),
24
25
  NAMESPACE: z.string().min(1, 'NAMESPACE env variable must be set'),
25
26
  CONTAINER_NODE_PORT: z.coerce.number().default(8080),
27
+ CONTAINER_NODE_ADMIN_PORT: z.coerce.number().default(8880),
26
28
  CONTAINER_SEQUENCER_PORT: z.coerce.number().default(8080),
27
29
  CONTAINER_PROVER_NODE_PORT: z.coerce.number().default(8080),
28
30
  CONTAINER_PXE_PORT: z.coerce.number().default(8080),
@@ -44,6 +46,7 @@ const k8sGCloudConfigSchema = k8sLocalConfigSchema.extend({
44
46
  const directConfigSchema = z.object({
45
47
  PXE_URL: z.string().url('PXE_URL must be a valid URL'),
46
48
  NODE_URL: z.string().url('NODE_URL must be a valid URL'),
49
+ NODE_ADMIN_URL: z.string().url('NODE_ADMIN_URL must be a valid URL'),
47
50
  ETHEREUM_HOSTS: ethereumHostsSchema,
48
51
  K8S: z.literal('false')
49
52
  });
@@ -388,7 +391,7 @@ export async function runAlertCheck(config, alerts, logger) {
388
391
  }
389
392
  }
390
393
  export async function updateSequencerConfig(url, config) {
391
- const node = createAztecNodeClient(url);
394
+ const node = createAztecNodeAdminClient(url);
392
395
  // Retry incase the port forward is not ready yet
393
396
  await retry(()=>node.setConfig(config), 'Update sequencer config', makeBackoff([
394
397
  1,
@@ -401,7 +404,7 @@ export async function getSequencers(namespace) {
401
404
  const { stdout } = await execAsync(command);
402
405
  return stdout.split(' ');
403
406
  }
404
- export async function updateK8sSequencersConfig(args) {
407
+ async function updateK8sSequencersConfig(args) {
405
408
  const { containerPort, namespace, config } = args;
406
409
  const sequencers = await getSequencers(namespace);
407
410
  for (const sequencer of sequencers){
@@ -418,12 +421,12 @@ export async function updateK8sSequencersConfig(args) {
418
421
  export async function updateSequencersConfig(env, config) {
419
422
  if (isK8sConfig(env)) {
420
423
  await updateK8sSequencersConfig({
421
- containerPort: env.CONTAINER_NODE_PORT,
424
+ containerPort: env.CONTAINER_NODE_ADMIN_PORT,
422
425
  namespace: env.NAMESPACE,
423
426
  config
424
427
  });
425
428
  } else {
426
- await updateSequencerConfig(env.NODE_URL, config);
429
+ await updateSequencerConfig(env.NODE_ADMIN_URL, config);
427
430
  }
428
431
  }
429
432
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "0.81.0",
3
+ "version": "0.82.0",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -26,38 +26,40 @@
26
26
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
27
27
  },
28
28
  "dependencies": {
29
- "@aztec/accounts": "0.81.0",
30
- "@aztec/archiver": "0.81.0",
31
- "@aztec/aztec": "0.81.0",
32
- "@aztec/aztec-node": "0.81.0",
33
- "@aztec/aztec.js": "0.81.0",
34
- "@aztec/bb-prover": "0.81.0",
35
- "@aztec/blob-lib": "0.81.0",
36
- "@aztec/blob-sink": "0.81.0",
37
- "@aztec/bot": "0.81.0",
38
- "@aztec/constants": "0.81.0",
39
- "@aztec/entrypoints": "0.81.0",
40
- "@aztec/epoch-cache": "0.81.0",
41
- "@aztec/ethereum": "0.81.0",
42
- "@aztec/foundation": "0.81.0",
43
- "@aztec/kv-store": "0.81.0",
44
- "@aztec/l1-artifacts": "0.81.0",
45
- "@aztec/merkle-tree": "0.81.0",
46
- "@aztec/noir-contracts.js": "0.81.0",
47
- "@aztec/noir-protocol-circuits-types": "0.81.0",
48
- "@aztec/p2p": "0.81.0",
49
- "@aztec/protocol-contracts": "0.81.0",
50
- "@aztec/prover-client": "0.81.0",
51
- "@aztec/prover-node": "0.81.0",
52
- "@aztec/pxe": "0.81.0",
53
- "@aztec/sequencer-client": "0.81.0",
54
- "@aztec/simulator": "0.81.0",
55
- "@aztec/stdlib": "0.81.0",
56
- "@aztec/telemetry-client": "0.81.0",
57
- "@aztec/validator-client": "0.81.0",
58
- "@aztec/world-state": "0.81.0",
29
+ "@aztec/accounts": "0.82.0",
30
+ "@aztec/archiver": "0.82.0",
31
+ "@aztec/aztec": "0.82.0",
32
+ "@aztec/aztec-node": "0.82.0",
33
+ "@aztec/aztec.js": "0.82.0",
34
+ "@aztec/bb-prover": "0.82.0",
35
+ "@aztec/blob-lib": "0.82.0",
36
+ "@aztec/blob-sink": "0.82.0",
37
+ "@aztec/bot": "0.82.0",
38
+ "@aztec/constants": "0.82.0",
39
+ "@aztec/entrypoints": "0.82.0",
40
+ "@aztec/epoch-cache": "0.82.0",
41
+ "@aztec/ethereum": "0.82.0",
42
+ "@aztec/foundation": "0.82.0",
43
+ "@aztec/kv-store": "0.82.0",
44
+ "@aztec/l1-artifacts": "0.82.0",
45
+ "@aztec/merkle-tree": "0.82.0",
46
+ "@aztec/noir-contracts.js": "0.82.0",
47
+ "@aztec/noir-noirc_abi": "0.82.0",
48
+ "@aztec/noir-protocol-circuits-types": "0.82.0",
49
+ "@aztec/p2p": "0.82.0",
50
+ "@aztec/protocol-contracts": "0.82.0",
51
+ "@aztec/prover-client": "0.82.0",
52
+ "@aztec/prover-node": "0.82.0",
53
+ "@aztec/pxe": "0.82.0",
54
+ "@aztec/sequencer-client": "0.82.0",
55
+ "@aztec/simulator": "0.82.0",
56
+ "@aztec/stdlib": "0.82.0",
57
+ "@aztec/telemetry-client": "0.82.0",
58
+ "@aztec/validator-client": "0.82.0",
59
+ "@aztec/world-state": "0.82.0",
59
60
  "@iarna/toml": "^2.2.5",
60
61
  "@jest/globals": "^29.5.0",
62
+ "@msgpack/msgpack": "^3.0.0-beta2",
61
63
  "@noble/curves": "^1.0.0",
62
64
  "@swc/core": "^1.4.11",
63
65
  "@swc/jest": "^0.2.36",
@@ -1,9 +1,11 @@
1
1
  import { getSchnorrWallet } from '@aztec/accounts/schnorr';
2
2
  import {
3
3
  type AccountWallet,
4
+ AztecAddress,
4
5
  type CompleteAddress,
5
6
  Fr,
6
7
  type Logger,
8
+ type PXE,
7
9
  type TxHash,
8
10
  computeSecretHash,
9
11
  createLogger,
@@ -61,6 +63,7 @@ export class BlacklistTokenContractTest {
61
63
  private snapshotManager: ISnapshotManager;
62
64
  logger: Logger;
63
65
  wallets: AccountWallet[] = [];
66
+ pxe!: PXE;
64
67
  accounts: CompleteAddress[] = [];
65
68
  asset!: TokenBlacklistContract;
66
69
  tokenSim!: TokenSimulator;
@@ -94,6 +97,7 @@ export class BlacklistTokenContractTest {
94
97
  '3_accounts',
95
98
  deployAccounts(3, this.logger),
96
99
  async ({ deployedAccounts }, { pxe }) => {
100
+ this.pxe = pxe;
97
101
  this.wallets = await Promise.all(deployedAccounts.map(a => getSchnorrWallet(pxe, a.address, a.signingKey)));
98
102
  this.admin = this.wallets[0];
99
103
  this.other = this.wallets[1];
@@ -164,12 +168,12 @@ export class BlacklistTokenContractTest {
164
168
 
165
169
  async addPendingShieldNoteToPXE(
166
170
  contract: TokenBlacklistContract,
167
- wallet: AccountWallet,
171
+ recipient: AztecAddress,
168
172
  amount: bigint,
169
173
  secretHash: Fr,
170
174
  txHash: TxHash,
171
175
  ) {
172
- const txEffects = await wallet.getTxEffect(txHash);
176
+ const txEffects = await this.pxe.getTxEffect(txHash);
173
177
  await contract.methods
174
178
  .deliver_transparent_note(
175
179
  contract.address,
@@ -178,7 +182,7 @@ export class BlacklistTokenContractTest {
178
182
  txHash.hash,
179
183
  this.#toBoundedVec(txEffects!.data.noteHashes, MAX_NOTE_HASHES_PER_TX),
180
184
  txEffects!.data.nullifiers[0],
181
- wallet.getAddress(),
185
+ recipient,
182
186
  )
183
187
  .simulate();
184
188
  }
@@ -218,9 +222,9 @@ export class BlacklistTokenContractTest {
218
222
  const secretHash = await computeSecretHash(secret);
219
223
  const receipt = await asset.methods.mint_private(amount, secretHash).send().wait();
220
224
 
221
- await this.addPendingShieldNoteToPXE(asset, wallets[0], amount, secretHash, receipt.txHash);
225
+ await this.addPendingShieldNoteToPXE(asset, wallets[0].getAddress(), amount, secretHash, receipt.txHash);
222
226
  const txClaim = asset.methods.redeem_shield(accounts[0].address, amount, secret).send();
223
- await txClaim.wait({ debug: true });
227
+ await txClaim.wait();
224
228
  this.logger.verbose(`Minting complete.`);
225
229
 
226
230
  return { amount };
@@ -12,7 +12,7 @@ import {
12
12
  } from '@aztec/aztec.js';
13
13
  import { CheatCodes } from '@aztec/aztec.js/testing';
14
14
  import { type ViemPublicClient, createL1Clients, deployL1Contract } from '@aztec/ethereum';
15
- import { InboxAbi, OutboxAbi, RollupAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
15
+ import { InboxAbi, OutboxAbi, TestERC20Abi, TestERC20Bytecode } from '@aztec/l1-artifacts';
16
16
  import { TokenContract } from '@aztec/noir-contracts.js/Token';
17
17
  import { TokenBridgeContract } from '@aztec/noir-contracts.js/TokenBridge';
18
18
 
@@ -49,7 +49,6 @@ export class CrossChainMessagingTest {
49
49
  l2Token!: TokenContract;
50
50
  l2Bridge!: TokenBridgeContract;
51
51
 
52
- rollup!: any; // GetContractReturnType<typeof RollupAbi> | undefined;
53
52
  inbox!: any; // GetContractReturnType<typeof InboxAbi> | undefined;
54
53
  outbox!: any; // GetContractReturnType<typeof OutboxAbi> | undefined;
55
54
  cheatcodes!: CheatCodes;
@@ -60,7 +59,7 @@ export class CrossChainMessagingTest {
60
59
  }
61
60
 
62
61
  async assumeProven() {
63
- await this.cheatcodes.rollup.markAsProven(await this.rollup.read.getPendingBlockNumber());
62
+ await this.cheatcodes.rollup.markAsProven();
64
63
  }
65
64
 
66
65
  async setup() {
@@ -88,17 +87,11 @@ export class CrossChainMessagingTest {
88
87
  await this.snapshotManager.snapshot(
89
88
  '3_accounts',
90
89
  deployAccounts(3, this.logger),
91
- async ({ deployedAccounts }, { pxe, aztecNodeConfig, aztecNode, deployL1ContractsValues }) => {
90
+ async ({ deployedAccounts }, { pxe, aztecNodeConfig, aztecNode }) => {
92
91
  this.wallets = await Promise.all(deployedAccounts.map(a => getSchnorrWallet(pxe, a.address, a.signingKey)));
93
92
  this.accounts = this.wallets.map(w => w.getCompleteAddress());
94
93
  this.wallets.forEach((w, i) => this.logger.verbose(`Wallet ${i} address: ${w.getAddress()}`));
95
94
 
96
- this.rollup = getContract({
97
- address: deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
98
- abi: RollupAbi,
99
- client: deployL1ContractsValues.walletClient,
100
- });
101
-
102
95
  this.user1Wallet = this.wallets[0];
103
96
  this.user2Wallet = this.wallets[1];
104
97
 
@@ -126,15 +119,6 @@ export class CrossChainMessagingTest {
126
119
  ['Underlying', 'UND', walletClient.account.address],
127
120
  ).then(({ address }) => address);
128
121
 
129
- const underlyingERC20 = getContract({
130
- address: underlyingERC20Address!.toString(),
131
- abi: TestERC20Abi,
132
- client: walletClient,
133
- });
134
-
135
- // allow anyone to mint
136
- await underlyingERC20.write.setFreeForAll([true], {} as any);
137
-
138
122
  this.logger.verbose(`Setting up cross chain harness...`);
139
123
  this.crossChainTestHarness = await CrossChainTestHarness.new(
140
124
  this.aztecNode,
@@ -14,6 +14,7 @@ import {
14
14
  getContractInstanceFromDeployParams,
15
15
  } from '@aztec/aztec.js';
16
16
  import type { StatefulTestContract } from '@aztec/noir-contracts.js/StatefulTest';
17
+ import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
17
18
 
18
19
  import { type ISnapshotManager, createSnapshotManager, deployAccounts } from '../fixtures/snapshot_manager.js';
19
20
 
@@ -27,6 +28,7 @@ export class DeployTest {
27
28
  public pxe!: PXE;
28
29
  public wallet!: AccountWallet;
29
30
  public aztecNode!: AztecNode;
31
+ public aztecNodeAdmin!: AztecNodeAdmin;
30
32
 
31
33
  constructor(testName: string) {
32
34
  this.logger = createLogger(`e2e:e2e_deploy_contract:${testName}`);
@@ -37,6 +39,7 @@ export class DeployTest {
37
39
  await this.applyInitialAccountSnapshot();
38
40
  const context = await this.snapshotManager.setup();
39
41
  ({ pxe: this.pxe, aztecNode: this.aztecNode } = context);
42
+ this.aztecNodeAdmin = context.aztecNode;
40
43
  return this;
41
44
  }
42
45
 
@@ -1,8 +1,7 @@
1
1
  import { AztecNodeService } from '@aztec/aztec-node';
2
- import { Fr, type Logger, getTimestampRangeForEpoch, retryUntil, sleep } from '@aztec/aztec.js';
2
+ import { Fr, type Logger, MerkleTreeId, getTimestampRangeForEpoch, retryUntil, sleep } from '@aztec/aztec.js';
3
3
  import { RollupContract } from '@aztec/ethereum/contracts';
4
- import { ChainMonitor } from '@aztec/ethereum/test';
5
- import { DelayedTxUtils, type Delayer, waitUntilL1Timestamp } from '@aztec/ethereum/test';
4
+ import { ChainMonitor, DelayedTxUtils, type Delayer, waitUntilL1Timestamp } from '@aztec/ethereum/test';
6
5
  import { randomBytes } from '@aztec/foundation/crypto';
7
6
  import { withLogNameSuffix } from '@aztec/foundation/log';
8
7
  import { ProverNode, ProverNodePublisher } from '@aztec/prover-node';
@@ -11,7 +10,6 @@ import type { SequencerPublisher } from '@aztec/sequencer-client';
11
10
  import type { TestSequencerClient } from '@aztec/sequencer-client/test';
12
11
  import type { L2BlockNumber } from '@aztec/stdlib/block';
13
12
  import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
14
- import { MerkleTreeId } from '@aztec/stdlib/trees';
15
13
 
16
14
  import { join } from 'path';
17
15
  import type { Hex, PublicClient } from 'viem';
@@ -208,8 +206,11 @@ export class EpochsTestContext {
208
206
 
209
207
  /** Verifies whether the given block number is found on the aztec node. */
210
208
  public async verifyHistoricBlock(blockNumber: L2BlockNumber, expectedSuccess: boolean) {
209
+ // We use `findLeavesIndexes` here, but could use any function that queries the world-state
210
+ // at a particular block, so we know whether that historic block is available or has been
211
+ // pruned. Note that `getBlock` would not work here, since it only hits the archiver.
211
212
  const result = await this.context.aztecNode
212
- .findBlockNumbersForIndexes(blockNumber, MerkleTreeId.NULLIFIER_TREE, [0n])
213
+ .findLeavesIndexes(blockNumber, MerkleTreeId.NULLIFIER_TREE, [Fr.ZERO])
213
214
  .then(_ => true)
214
215
  .catch(_ => false);
215
216
  expect(result).toBe(expectedSuccess);