@aztec/end-to-end 3.0.0-nightly.20251219 → 3.0.0-nightly.20251221

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.
@@ -13,6 +13,7 @@ declare const testConfigSchema: z.ZodObject<{
13
13
  L1_RPC_URLS_JSON: z.ZodOptional<z.ZodString>;
14
14
  L1_ACCOUNT_MNEMONIC: z.ZodOptional<z.ZodString>;
15
15
  AZTEC_SLOT_DURATION: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
16
+ AZTEC_EPOCH_DURATION: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
16
17
  AZTEC_PROOF_SUBMISSION_WINDOW: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
17
18
  }, "strip", z.ZodTypeAny, {
18
19
  NAMESPACE: string;
@@ -21,6 +22,7 @@ declare const testConfigSchema: z.ZodObject<{
21
22
  L1_RPC_URLS_JSON?: string | undefined;
22
23
  L1_ACCOUNT_MNEMONIC?: string | undefined;
23
24
  AZTEC_SLOT_DURATION: number;
25
+ AZTEC_EPOCH_DURATION: number;
24
26
  AZTEC_PROOF_SUBMISSION_WINDOW: number;
25
27
  }, {
26
28
  NAMESPACE?: string | undefined;
@@ -29,6 +31,7 @@ declare const testConfigSchema: z.ZodObject<{
29
31
  L1_RPC_URLS_JSON?: string | undefined;
30
32
  L1_ACCOUNT_MNEMONIC?: string | undefined;
31
33
  AZTEC_SLOT_DURATION?: number | undefined;
34
+ AZTEC_EPOCH_DURATION?: number | undefined;
32
35
  AZTEC_PROOF_SUBMISSION_WINDOW?: number | undefined;
33
36
  }>;
34
37
  export type TestConfig = z.infer<typeof testConfigSchema>;
@@ -117,29 +120,35 @@ export declare function applyProverFailure({ namespace, spartanDir, durationSeco
117
120
  durationSeconds: number;
118
121
  logger: Logger;
119
122
  }): Promise<string>;
120
- export declare function applyProverKill({ namespace, spartanDir, logger }: {
123
+ export declare function applyProverKill({ namespace, spartanDir, logger, values }: {
121
124
  namespace: string;
122
125
  spartanDir: string;
123
126
  logger: Logger;
127
+ values?: Record<string, string | number>;
124
128
  }): Promise<string>;
125
- export declare function applyProverBrokerKill({ namespace, spartanDir, logger }: {
129
+ export declare function applyProverBrokerKill({ namespace, spartanDir, logger, values }: {
126
130
  namespace: string;
127
131
  spartanDir: string;
128
132
  logger: Logger;
133
+ values?: Record<string, string | number>;
129
134
  }): Promise<string>;
130
- export declare function applyBootNodeFailure({ namespace, spartanDir, durationSeconds, logger }: {
135
+ export declare function applyBootNodeFailure({ instanceName, namespace, spartanDir, durationSeconds, logger, values }: {
136
+ instanceName?: string;
131
137
  namespace: string;
132
138
  spartanDir: string;
133
139
  durationSeconds: number;
134
140
  logger: Logger;
141
+ values?: Record<string, string | number>;
135
142
  }): Promise<string>;
136
- export declare function applyValidatorKill({ namespace, spartanDir, logger, values }: {
143
+ export declare function applyValidatorKill({ instanceName, namespace, spartanDir, logger, values }: {
144
+ instanceName?: string;
137
145
  namespace: string;
138
146
  spartanDir: string;
139
147
  logger: Logger;
140
148
  values?: Record<string, string | number>;
141
149
  }): Promise<string>;
142
- export declare function applyNetworkShaping({ valuesFile, namespace, spartanDir, logger }: {
150
+ export declare function applyNetworkShaping({ instanceName, valuesFile, namespace, spartanDir, logger }: {
151
+ instanceName?: string;
143
152
  valuesFile: string;
144
153
  namespace: string;
145
154
  spartanDir: string;
@@ -219,4 +228,4 @@ export declare function getNodeClient(env: TestConfig, index?: number): Promise<
219
228
  process: ChildProcess;
220
229
  }>;
221
230
  export {};
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGFydGFuL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLG9CQUFvQixFQUV6QixxQkFBcUIsRUFDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUlwRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBTXhCLFFBQUEsTUFBTSxnQkFBZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVFwQixDQUFDO0FBRUgsTUFBTSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQztBQUUxRCx3QkFBZ0IsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxVQUFVLENBSXpEO0FBeUJELHdCQUFnQixXQUFXLFdBRTFCO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFFdkY7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1BQU0s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
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGFydGFuL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLcEQsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLG9CQUFvQixFQUV6QixxQkFBcUIsRUFDdEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQUlwRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBTXhCLFFBQUEsTUFBTSxnQkFBZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVNwQixDQUFDO0FBRUgsTUFBTSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsQ0FBQztBQUUxRCx3QkFBZ0IsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxVQUFVLENBSXpEO0FBeUJELHdCQUFnQixXQUFXLFdBRTFCO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFFdkY7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE1B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
@@ -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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"}
@@ -18,6 +18,7 @@ const testConfigSchema = z.object({
18
18
  L1_RPC_URLS_JSON: z.string().optional(),
19
19
  L1_ACCOUNT_MNEMONIC: z.string().optional(),
20
20
  AZTEC_SLOT_DURATION: z.coerce.number().optional().default(24),
21
+ AZTEC_EPOCH_DURATION: z.coerce.number().optional().default(32),
21
22
  AZTEC_PROOF_SUBMISSION_WINDOW: z.coerce.number().optional().default(5)
22
23
  });
23
24
  export function setupEnvironment(env) {
@@ -185,9 +186,8 @@ export async function deleteResourceByName({ resource, namespace, name, force =
185
186
  return stdout;
186
187
  }
187
188
  export async function deleteResourceByLabel({ resource, namespace, label, timeout = '5m', force = false }) {
188
- // Check if the resource type exists before attempting to delete
189
189
  try {
190
- await execAsync(`kubectl api-resources --api-group="" --no-headers -o name | grep -q "^${resource}$" || kubectl api-resources --no-headers -o name | grep -q "^${resource}$"`);
190
+ await execAsync(`kubectl api-resources --no-headers -o name | grep -Eq "^${resource}(\\\\..+)?$"`);
191
191
  } catch (error) {
192
192
  logger.warn(`Resource type '${resource}' not found in cluster, skipping deletion ${error}`);
193
193
  return '';
@@ -224,6 +224,30 @@ async function execHelmCommand(args) {
224
224
  const { stdout } = await execAsync(helmCommand);
225
225
  return stdout;
226
226
  }
227
+ async function getHelmReleaseStatus(instanceName, namespace) {
228
+ try {
229
+ const { stdout } = await execAsync(`helm list --namespace ${namespace} --all --filter '^${instanceName}$' --output json | cat`);
230
+ const parsed = JSON.parse(stdout);
231
+ const row = parsed.find((r)=>r.name === instanceName);
232
+ return row?.status;
233
+ } catch {
234
+ return undefined;
235
+ }
236
+ }
237
+ async function forceDeleteHelmReleaseRecord(instanceName, namespace, logger) {
238
+ const labelSelector = `owner=helm,name=${instanceName}`;
239
+ const cmd = `kubectl delete secret -n ${namespace} -l ${labelSelector} --ignore-not-found=true`;
240
+ logger.warn(`Force deleting Helm release record: ${cmd}`);
241
+ await execAsync(cmd).catch(()=>undefined);
242
+ }
243
+ async function hasDeployedHelmRelease(instanceName, namespace) {
244
+ try {
245
+ const status = await getHelmReleaseStatus(instanceName, namespace);
246
+ return status?.toLowerCase() === 'deployed';
247
+ } catch {
248
+ return false;
249
+ }
250
+ }
227
251
  export async function uninstallChaosMesh(instanceName, namespace, logger) {
228
252
  // uninstall the helm chart if it exists
229
253
  logger.info(`Uninstalling helm chart ${instanceName}`);
@@ -295,41 +319,45 @@ export function applyProverFailure({ namespace, spartanDir, durationSeconds, log
295
319
  logger
296
320
  });
297
321
  }
298
- export function applyProverKill({ namespace, spartanDir, logger }) {
322
+ export function applyProverKill({ namespace, spartanDir, logger, values }) {
299
323
  return installChaosMeshChart({
300
324
  instanceName: 'prover-kill',
301
325
  targetNamespace: namespace,
302
326
  valuesFile: 'prover-kill.yaml',
303
327
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
328
+ chaosMeshNamespace: namespace,
304
329
  clean: true,
305
- logger
330
+ logger,
331
+ values
306
332
  });
307
333
  }
308
- export function applyProverBrokerKill({ namespace, spartanDir, logger }) {
334
+ export function applyProverBrokerKill({ namespace, spartanDir, logger, values }) {
309
335
  return installChaosMeshChart({
310
336
  instanceName: 'prover-broker-kill',
311
337
  targetNamespace: namespace,
312
338
  valuesFile: 'prover-broker-kill.yaml',
313
339
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
314
340
  clean: true,
315
- logger
341
+ logger,
342
+ values
316
343
  });
317
344
  }
318
- export function applyBootNodeFailure({ namespace, spartanDir, durationSeconds, logger }) {
345
+ export function applyBootNodeFailure({ instanceName = 'boot-node-failure', namespace, spartanDir, durationSeconds, logger, values }) {
319
346
  return installChaosMeshChart({
320
- instanceName: 'boot-node-failure',
347
+ instanceName,
321
348
  targetNamespace: namespace,
322
349
  valuesFile: 'boot-node-failure.yaml',
323
350
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
324
351
  values: {
325
- 'bootNodeFailure.duration': `${durationSeconds}s`
352
+ 'bootNodeFailure.duration': `${durationSeconds}s`,
353
+ ...values ?? {}
326
354
  },
327
355
  logger
328
356
  });
329
357
  }
330
- export function applyValidatorKill({ namespace, spartanDir, logger, values }) {
358
+ export function applyValidatorKill({ instanceName = 'validator-kill', namespace, spartanDir, logger, values }) {
331
359
  return installChaosMeshChart({
332
- instanceName: 'validator-kill',
360
+ instanceName,
333
361
  targetNamespace: namespace,
334
362
  valuesFile: 'validator-kill.yaml',
335
363
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
@@ -337,9 +365,9 @@ export function applyValidatorKill({ namespace, spartanDir, logger, values }) {
337
365
  values
338
366
  });
339
367
  }
340
- export function applyNetworkShaping({ valuesFile, namespace, spartanDir, logger }) {
368
+ export function applyNetworkShaping({ instanceName = 'network-shaping', valuesFile, namespace, spartanDir, logger }) {
341
369
  return installChaosMeshChart({
342
- instanceName: 'network-shaping',
370
+ instanceName,
343
371
  targetNamespace: namespace,
344
372
  valuesFile,
345
373
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
@@ -402,7 +430,12 @@ export async function restartBot(namespace, logger) {
402
430
  // Provide L1 execution RPC for bridging fee juice
403
431
  'bot.node.env.ETHEREUM_HOSTS': `http://${namespace}-eth-execution.${namespace}.svc.cluster.local:8545`,
404
432
  // Provide L1 mnemonic for bridging (falls back to labs mnemonic)
405
- 'bot.node.env.BOT_L1_MNEMONIC': mnemonic
433
+ 'bot.node.env.BOT_L1_MNEMONIC': mnemonic,
434
+ // The bot does not need Kubernetes API access. Disable RBAC + ServiceAccount creation so the chart
435
+ // can be installed by users without cluster-scoped RBAC permissions.
436
+ 'bot.rbac.create': false,
437
+ 'bot.serviceAccount.create': false,
438
+ 'bot.serviceAccount.name': 'default'
406
439
  };
407
440
  // Ensure we derive a funded L1 key (index 0 is funded on anvil default mnemonic)
408
441
  if (mnemonicStartIndex === undefined) {
@@ -425,7 +458,7 @@ export async function restartBot(namespace, logger) {
425
458
  let tag = tagFromEnv;
426
459
  if (!repository || !tag) {
427
460
  try {
428
- const { stdout } = await execAsync(`kubectl get pods -l app.kubernetes.io/component=validator -n ${namespace} -o jsonpath='{.items[0].spec.containers[?(@.name=="aztec")].image}' | cat`);
461
+ const { stdout } = await execAsync(`kubectl get pods -l app.kubernetes.io/name=validator -n ${namespace} -o jsonpath='{.items[0].spec.containers[?(@.name=="aztec")].image}' | cat`);
429
462
  const image = stdout.trim().replace(/^'|'$/g, '');
430
463
  if (image && image.includes(':')) {
431
464
  const lastColon = image.lastIndexOf(':');
@@ -443,6 +476,22 @@ export async function restartBot(namespace, logger) {
443
476
  if (mnemonicStartIndex !== undefined) {
444
477
  values['bot.mnemonicStartIndex'] = typeof mnemonicStartIndex === 'string' ? mnemonicStartIndex : Number(mnemonicStartIndex);
445
478
  }
479
+ // If a previous install attempt left the release in a non-deployed state (e.g. FAILED),
480
+ // `helm upgrade --install` can error with "has no deployed releases".
481
+ // In that case, clear the release record and do a clean install.
482
+ const existingStatus = await getHelmReleaseStatus(instanceName, namespace);
483
+ if (existingStatus && existingStatus.toLowerCase() !== 'deployed') {
484
+ logger.warn(`Transfer bot release ${instanceName} is in status '${existingStatus}'. Reinstalling cleanly.`);
485
+ await execAsync(`helm uninstall ${instanceName} --namespace ${namespace} --wait --ignore-not-found`).catch(()=>undefined);
486
+ // If helm left the release in `uninstalling`, force-delete the record so we can reinstall.
487
+ const afterUninstallStatus = await getHelmReleaseStatus(instanceName, namespace);
488
+ if (afterUninstallStatus?.toLowerCase() === 'uninstalling') {
489
+ await forceDeleteHelmReleaseRecord(instanceName, namespace, logger);
490
+ }
491
+ }
492
+ // `--reuse-values` fails if the release has never successfully deployed (e.g. first install, or a previous failed install).
493
+ // Only reuse values when we have a deployed release to reuse from.
494
+ const effectiveReuseValues = reuseValues && await hasDeployedHelmRelease(instanceName, namespace);
446
495
  await execHelmCommand({
447
496
  instanceName,
448
497
  helmChartDir,
@@ -450,7 +499,7 @@ export async function restartBot(namespace, logger) {
450
499
  valuesFile: undefined,
451
500
  timeout,
452
501
  values: values,
453
- reuseValues
502
+ reuseValues: effectiveReuseValues
454
503
  });
455
504
  if (replicas > 0) {
456
505
  await waitForResourceByLabel({
@@ -482,8 +531,9 @@ export async function restartBot(namespace, logger) {
482
531
  const drop = enabled ? 'true' : 'false';
483
532
  const prob = String(probability);
484
533
  const selectors = [
485
- 'app=validator',
486
- 'app.kubernetes.io/component=validator'
534
+ 'app.kubernetes.io/name=validator',
535
+ 'app.kubernetes.io/component=validator',
536
+ 'app=validator'
487
537
  ];
488
538
  let updated = false;
489
539
  for (const selector of selectors){
@@ -510,8 +560,9 @@ export async function restartBot(namespace, logger) {
510
560
  }
511
561
  export async function restartValidators(namespace, logger) {
512
562
  const selectors = [
513
- 'app=validator',
514
- 'app.kubernetes.io/component=validator'
563
+ 'app.kubernetes.io/name=validator',
564
+ 'app.kubernetes.io/component=validator',
565
+ 'app=validator'
515
566
  ];
516
567
  let any = false;
517
568
  for (const selector of selectors){
@@ -565,11 +616,27 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
565
616
  logger.info(`Validator dynamic boot node enabled`);
566
617
  }
567
618
  export async function getSequencers(namespace) {
568
- const command = `kubectl get pods -l app.kubernetes.io/component=validator -n ${namespace} -o jsonpath='{.items[*].metadata.name}'`;
569
- const { stdout } = await execAsync(command);
570
- const sequencers = stdout.split(' ');
571
- logger.verbose(`Found sequencer pods ${sequencers.join(', ')}`);
572
- return sequencers;
619
+ const selectors = [
620
+ 'app.kubernetes.io/name=validator',
621
+ 'app.kubernetes.io/component=validator',
622
+ 'app.kubernetes.io/component=sequencer-node',
623
+ 'app=validator'
624
+ ];
625
+ for (const selector of selectors){
626
+ try {
627
+ const command = `kubectl get pods -l ${selector} -n ${namespace} -o jsonpath='{.items[*].metadata.name}'`;
628
+ const { stdout } = await execAsync(command);
629
+ const sequencers = stdout.split(' ').map((s)=>s.trim()).filter(Boolean);
630
+ if (sequencers.length > 0) {
631
+ logger.verbose(`Found sequencer pods ${sequencers.join(', ')} (selector=${selector})`);
632
+ return sequencers;
633
+ }
634
+ } catch {
635
+ // try next selector
636
+ }
637
+ }
638
+ // Fail fast instead of returning [''] which leads to attempts to port-forward `pod/`.
639
+ throw new Error(`No sequencer/validator pods found in namespace ${namespace}. Tried selectors: ${selectors.join(', ')}`);
573
640
  }
574
641
  export function updateSequencersConfig(env, config) {
575
642
  return withSequencersAdmin(env, async (client)=>{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "3.0.0-nightly.20251219",
3
+ "version": "3.0.0-nightly.20251221",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -25,43 +25,43 @@
25
25
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
26
26
  },
27
27
  "dependencies": {
28
- "@aztec/accounts": "3.0.0-nightly.20251219",
29
- "@aztec/archiver": "3.0.0-nightly.20251219",
30
- "@aztec/aztec": "3.0.0-nightly.20251219",
31
- "@aztec/aztec-node": "3.0.0-nightly.20251219",
32
- "@aztec/aztec.js": "3.0.0-nightly.20251219",
33
- "@aztec/bb-prover": "3.0.0-nightly.20251219",
34
- "@aztec/bb.js": "3.0.0-nightly.20251219",
35
- "@aztec/blob-lib": "3.0.0-nightly.20251219",
36
- "@aztec/blob-sink": "3.0.0-nightly.20251219",
37
- "@aztec/bot": "3.0.0-nightly.20251219",
38
- "@aztec/cli": "3.0.0-nightly.20251219",
39
- "@aztec/constants": "3.0.0-nightly.20251219",
40
- "@aztec/entrypoints": "3.0.0-nightly.20251219",
41
- "@aztec/epoch-cache": "3.0.0-nightly.20251219",
42
- "@aztec/ethereum": "3.0.0-nightly.20251219",
43
- "@aztec/foundation": "3.0.0-nightly.20251219",
44
- "@aztec/kv-store": "3.0.0-nightly.20251219",
45
- "@aztec/l1-artifacts": "3.0.0-nightly.20251219",
46
- "@aztec/merkle-tree": "3.0.0-nightly.20251219",
47
- "@aztec/node-keystore": "3.0.0-nightly.20251219",
48
- "@aztec/noir-contracts.js": "3.0.0-nightly.20251219",
49
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20251219",
50
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251219",
51
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251219",
52
- "@aztec/p2p": "3.0.0-nightly.20251219",
53
- "@aztec/protocol-contracts": "3.0.0-nightly.20251219",
54
- "@aztec/prover-client": "3.0.0-nightly.20251219",
55
- "@aztec/prover-node": "3.0.0-nightly.20251219",
56
- "@aztec/pxe": "3.0.0-nightly.20251219",
57
- "@aztec/sequencer-client": "3.0.0-nightly.20251219",
58
- "@aztec/simulator": "3.0.0-nightly.20251219",
59
- "@aztec/slasher": "3.0.0-nightly.20251219",
60
- "@aztec/stdlib": "3.0.0-nightly.20251219",
61
- "@aztec/telemetry-client": "3.0.0-nightly.20251219",
62
- "@aztec/test-wallet": "3.0.0-nightly.20251219",
63
- "@aztec/validator-client": "3.0.0-nightly.20251219",
64
- "@aztec/world-state": "3.0.0-nightly.20251219",
28
+ "@aztec/accounts": "3.0.0-nightly.20251221",
29
+ "@aztec/archiver": "3.0.0-nightly.20251221",
30
+ "@aztec/aztec": "3.0.0-nightly.20251221",
31
+ "@aztec/aztec-node": "3.0.0-nightly.20251221",
32
+ "@aztec/aztec.js": "3.0.0-nightly.20251221",
33
+ "@aztec/bb-prover": "3.0.0-nightly.20251221",
34
+ "@aztec/bb.js": "3.0.0-nightly.20251221",
35
+ "@aztec/blob-lib": "3.0.0-nightly.20251221",
36
+ "@aztec/blob-sink": "3.0.0-nightly.20251221",
37
+ "@aztec/bot": "3.0.0-nightly.20251221",
38
+ "@aztec/cli": "3.0.0-nightly.20251221",
39
+ "@aztec/constants": "3.0.0-nightly.20251221",
40
+ "@aztec/entrypoints": "3.0.0-nightly.20251221",
41
+ "@aztec/epoch-cache": "3.0.0-nightly.20251221",
42
+ "@aztec/ethereum": "3.0.0-nightly.20251221",
43
+ "@aztec/foundation": "3.0.0-nightly.20251221",
44
+ "@aztec/kv-store": "3.0.0-nightly.20251221",
45
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251221",
46
+ "@aztec/merkle-tree": "3.0.0-nightly.20251221",
47
+ "@aztec/node-keystore": "3.0.0-nightly.20251221",
48
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20251221",
49
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20251221",
50
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251221",
51
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251221",
52
+ "@aztec/p2p": "3.0.0-nightly.20251221",
53
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251221",
54
+ "@aztec/prover-client": "3.0.0-nightly.20251221",
55
+ "@aztec/prover-node": "3.0.0-nightly.20251221",
56
+ "@aztec/pxe": "3.0.0-nightly.20251221",
57
+ "@aztec/sequencer-client": "3.0.0-nightly.20251221",
58
+ "@aztec/simulator": "3.0.0-nightly.20251221",
59
+ "@aztec/slasher": "3.0.0-nightly.20251221",
60
+ "@aztec/stdlib": "3.0.0-nightly.20251221",
61
+ "@aztec/telemetry-client": "3.0.0-nightly.20251221",
62
+ "@aztec/test-wallet": "3.0.0-nightly.20251221",
63
+ "@aztec/validator-client": "3.0.0-nightly.20251221",
64
+ "@aztec/world-state": "3.0.0-nightly.20251221",
65
65
  "@iarna/toml": "^2.2.5",
66
66
  "@jest/globals": "^30.0.0",
67
67
  "@noble/curves": "=1.0.0",
@@ -32,6 +32,7 @@ const testConfigSchema = z.object({
32
32
  L1_RPC_URLS_JSON: z.string().optional(),
33
33
  L1_ACCOUNT_MNEMONIC: z.string().optional(),
34
34
  AZTEC_SLOT_DURATION: z.coerce.number().optional().default(24),
35
+ AZTEC_EPOCH_DURATION: z.coerce.number().optional().default(32),
35
36
  AZTEC_PROOF_SUBMISSION_WINDOW: z.coerce.number().optional().default(5),
36
37
  });
37
38
 
@@ -244,11 +245,8 @@ export async function deleteResourceByLabel({
244
245
  timeout?: string;
245
246
  force?: boolean;
246
247
  }) {
247
- // Check if the resource type exists before attempting to delete
248
248
  try {
249
- await execAsync(
250
- `kubectl api-resources --api-group="" --no-headers -o name | grep -q "^${resource}$" || kubectl api-resources --no-headers -o name | grep -q "^${resource}$"`,
251
- );
249
+ await execAsync(`kubectl api-resources --no-headers -o name | grep -Eq "^${resource}(\\\\..+)?$"`);
252
250
  } catch (error) {
253
251
  logger.warn(`Resource type '${resource}' not found in cluster, skipping deletion ${error}`);
254
252
  return '';
@@ -331,6 +329,35 @@ async function execHelmCommand(args: Parameters<typeof createHelmCommand>[0]) {
331
329
  return stdout;
332
330
  }
333
331
 
332
+ async function getHelmReleaseStatus(instanceName: string, namespace: string): Promise<string | undefined> {
333
+ try {
334
+ const { stdout } = await execAsync(
335
+ `helm list --namespace ${namespace} --all --filter '^${instanceName}$' --output json | cat`,
336
+ );
337
+ const parsed = JSON.parse(stdout) as Array<{ name?: string; status?: string }>;
338
+ const row = parsed.find(r => r.name === instanceName);
339
+ return row?.status;
340
+ } catch {
341
+ return undefined;
342
+ }
343
+ }
344
+
345
+ async function forceDeleteHelmReleaseRecord(instanceName: string, namespace: string, logger: Logger) {
346
+ const labelSelector = `owner=helm,name=${instanceName}`;
347
+ const cmd = `kubectl delete secret -n ${namespace} -l ${labelSelector} --ignore-not-found=true`;
348
+ logger.warn(`Force deleting Helm release record: ${cmd}`);
349
+ await execAsync(cmd).catch(() => undefined);
350
+ }
351
+
352
+ async function hasDeployedHelmRelease(instanceName: string, namespace: string): Promise<boolean> {
353
+ try {
354
+ const status = await getHelmReleaseStatus(instanceName, namespace);
355
+ return status?.toLowerCase() === 'deployed';
356
+ } catch {
357
+ return false;
358
+ }
359
+ }
360
+
334
361
  export async function uninstallChaosMesh(instanceName: string, namespace: string, logger: Logger) {
335
362
  // uninstall the helm chart if it exists
336
363
  logger.info(`Uninstalling helm chart ${instanceName}`);
@@ -435,18 +462,22 @@ export function applyProverKill({
435
462
  namespace,
436
463
  spartanDir,
437
464
  logger,
465
+ values,
438
466
  }: {
439
467
  namespace: string;
440
468
  spartanDir: string;
441
469
  logger: Logger;
470
+ values?: Record<string, string | number>;
442
471
  }) {
443
472
  return installChaosMeshChart({
444
473
  instanceName: 'prover-kill',
445
474
  targetNamespace: namespace,
446
475
  valuesFile: 'prover-kill.yaml',
447
476
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
477
+ chaosMeshNamespace: namespace,
448
478
  clean: true,
449
479
  logger,
480
+ values,
450
481
  });
451
482
  }
452
483
 
@@ -454,10 +485,12 @@ export function applyProverBrokerKill({
454
485
  namespace,
455
486
  spartanDir,
456
487
  logger,
488
+ values,
457
489
  }: {
458
490
  namespace: string;
459
491
  spartanDir: string;
460
492
  logger: Logger;
493
+ values?: Record<string, string | number>;
461
494
  }) {
462
495
  return installChaosMeshChart({
463
496
  instanceName: 'prover-broker-kill',
@@ -466,45 +499,53 @@ export function applyProverBrokerKill({
466
499
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
467
500
  clean: true,
468
501
  logger,
502
+ values,
469
503
  });
470
504
  }
471
505
 
472
506
  export function applyBootNodeFailure({
507
+ instanceName = 'boot-node-failure',
473
508
  namespace,
474
509
  spartanDir,
475
510
  durationSeconds,
476
511
  logger,
512
+ values,
477
513
  }: {
514
+ instanceName?: string;
478
515
  namespace: string;
479
516
  spartanDir: string;
480
517
  durationSeconds: number;
481
518
  logger: Logger;
519
+ values?: Record<string, string | number>;
482
520
  }) {
483
521
  return installChaosMeshChart({
484
- instanceName: 'boot-node-failure',
522
+ instanceName,
485
523
  targetNamespace: namespace,
486
524
  valuesFile: 'boot-node-failure.yaml',
487
525
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
488
526
  values: {
489
527
  'bootNodeFailure.duration': `${durationSeconds}s`,
528
+ ...(values ?? {}),
490
529
  },
491
530
  logger,
492
531
  });
493
532
  }
494
533
 
495
534
  export function applyValidatorKill({
535
+ instanceName = 'validator-kill',
496
536
  namespace,
497
537
  spartanDir,
498
538
  logger,
499
539
  values,
500
540
  }: {
541
+ instanceName?: string;
501
542
  namespace: string;
502
543
  spartanDir: string;
503
544
  logger: Logger;
504
545
  values?: Record<string, string | number>;
505
546
  }) {
506
547
  return installChaosMeshChart({
507
- instanceName: 'validator-kill',
548
+ instanceName,
508
549
  targetNamespace: namespace,
509
550
  valuesFile: 'validator-kill.yaml',
510
551
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
@@ -514,18 +555,20 @@ export function applyValidatorKill({
514
555
  }
515
556
 
516
557
  export function applyNetworkShaping({
558
+ instanceName = 'network-shaping',
517
559
  valuesFile,
518
560
  namespace,
519
561
  spartanDir,
520
562
  logger,
521
563
  }: {
564
+ instanceName?: string;
522
565
  valuesFile: string;
523
566
  namespace: string;
524
567
  spartanDir: string;
525
568
  logger: Logger;
526
569
  }) {
527
570
  return installChaosMeshChart({
528
- instanceName: 'network-shaping',
571
+ instanceName,
529
572
  targetNamespace: namespace,
530
573
  valuesFile,
531
574
  helmChartDir: getChartDir(spartanDir, 'aztec-chaos-scenarios'),
@@ -624,6 +667,12 @@ export async function installTransferBot({
624
667
  'bot.node.env.ETHEREUM_HOSTS': `http://${namespace}-eth-execution.${namespace}.svc.cluster.local:8545`,
625
668
  // Provide L1 mnemonic for bridging (falls back to labs mnemonic)
626
669
  'bot.node.env.BOT_L1_MNEMONIC': mnemonic,
670
+
671
+ // The bot does not need Kubernetes API access. Disable RBAC + ServiceAccount creation so the chart
672
+ // can be installed by users without cluster-scoped RBAC permissions.
673
+ 'bot.rbac.create': false,
674
+ 'bot.serviceAccount.create': false,
675
+ 'bot.serviceAccount.name': 'default',
627
676
  };
628
677
  // Ensure we derive a funded L1 key (index 0 is funded on anvil default mnemonic)
629
678
  if (mnemonicStartIndex === undefined) {
@@ -648,7 +697,7 @@ export async function installTransferBot({
648
697
  if (!repository || !tag) {
649
698
  try {
650
699
  const { stdout } = await execAsync(
651
- `kubectl get pods -l app.kubernetes.io/component=validator -n ${namespace} -o jsonpath='{.items[0].spec.containers[?(@.name=="aztec")].image}' | cat`,
700
+ `kubectl get pods -l app.kubernetes.io/name=validator -n ${namespace} -o jsonpath='{.items[0].spec.containers[?(@.name=="aztec")].image}' | cat`,
652
701
  );
653
702
  const image = stdout.trim().replace(/^'|'$/g, '');
654
703
  if (image && image.includes(':')) {
@@ -669,6 +718,26 @@ export async function installTransferBot({
669
718
  typeof mnemonicStartIndex === 'string' ? mnemonicStartIndex : Number(mnemonicStartIndex);
670
719
  }
671
720
 
721
+ // If a previous install attempt left the release in a non-deployed state (e.g. FAILED),
722
+ // `helm upgrade --install` can error with "has no deployed releases".
723
+ // In that case, clear the release record and do a clean install.
724
+ const existingStatus = await getHelmReleaseStatus(instanceName, namespace);
725
+ if (existingStatus && existingStatus.toLowerCase() !== 'deployed') {
726
+ logger.warn(`Transfer bot release ${instanceName} is in status '${existingStatus}'. Reinstalling cleanly.`);
727
+ await execAsync(`helm uninstall ${instanceName} --namespace ${namespace} --wait --ignore-not-found`).catch(
728
+ () => undefined,
729
+ );
730
+ // If helm left the release in `uninstalling`, force-delete the record so we can reinstall.
731
+ const afterUninstallStatus = await getHelmReleaseStatus(instanceName, namespace);
732
+ if (afterUninstallStatus?.toLowerCase() === 'uninstalling') {
733
+ await forceDeleteHelmReleaseRecord(instanceName, namespace, logger);
734
+ }
735
+ }
736
+
737
+ // `--reuse-values` fails if the release has never successfully deployed (e.g. first install, or a previous failed install).
738
+ // Only reuse values when we have a deployed release to reuse from.
739
+ const effectiveReuseValues = reuseValues && (await hasDeployedHelmRelease(instanceName, namespace));
740
+
672
741
  await execHelmCommand({
673
742
  instanceName,
674
743
  helmChartDir,
@@ -676,7 +745,7 @@ export async function installTransferBot({
676
745
  valuesFile: undefined,
677
746
  timeout,
678
747
  values: values as unknown as Record<string, string | number | boolean>,
679
- reuseValues,
748
+ reuseValues: effectiveReuseValues,
680
749
  });
681
750
 
682
751
  if (replicas > 0) {
@@ -721,7 +790,7 @@ export async function setValidatorTxDrop({
721
790
  const drop = enabled ? 'true' : 'false';
722
791
  const prob = String(probability);
723
792
 
724
- const selectors = ['app=validator', 'app.kubernetes.io/component=validator'];
793
+ const selectors = ['app.kubernetes.io/name=validator', 'app.kubernetes.io/component=validator', 'app=validator'];
725
794
  let updated = false;
726
795
  for (const selector of selectors) {
727
796
  try {
@@ -752,7 +821,7 @@ export async function setValidatorTxDrop({
752
821
  }
753
822
 
754
823
  export async function restartValidators(namespace: string, logger: Logger) {
755
- const selectors = ['app=validator', 'app.kubernetes.io/component=validator'];
824
+ const selectors = ['app.kubernetes.io/name=validator', 'app.kubernetes.io/component=validator', 'app=validator'];
756
825
  let any = false;
757
826
  for (const selector of selectors) {
758
827
  try {
@@ -807,11 +876,33 @@ export async function enableValidatorDynamicBootNode(
807
876
  }
808
877
 
809
878
  export async function getSequencers(namespace: string) {
810
- const command = `kubectl get pods -l app.kubernetes.io/component=validator -n ${namespace} -o jsonpath='{.items[*].metadata.name}'`;
811
- const { stdout } = await execAsync(command);
812
- const sequencers = stdout.split(' ');
813
- logger.verbose(`Found sequencer pods ${sequencers.join(', ')}`);
814
- return sequencers;
879
+ const selectors = [
880
+ 'app.kubernetes.io/name=validator',
881
+ 'app.kubernetes.io/component=validator',
882
+ 'app.kubernetes.io/component=sequencer-node',
883
+ 'app=validator',
884
+ ];
885
+ for (const selector of selectors) {
886
+ try {
887
+ const command = `kubectl get pods -l ${selector} -n ${namespace} -o jsonpath='{.items[*].metadata.name}'`;
888
+ const { stdout } = await execAsync(command);
889
+ const sequencers = stdout
890
+ .split(' ')
891
+ .map(s => s.trim())
892
+ .filter(Boolean);
893
+ if (sequencers.length > 0) {
894
+ logger.verbose(`Found sequencer pods ${sequencers.join(', ')} (selector=${selector})`);
895
+ return sequencers;
896
+ }
897
+ } catch {
898
+ // try next selector
899
+ }
900
+ }
901
+
902
+ // Fail fast instead of returning [''] which leads to attempts to port-forward `pod/`.
903
+ throw new Error(
904
+ `No sequencer/validator pods found in namespace ${namespace}. Tried selectors: ${selectors.join(', ')}`,
905
+ );
815
906
  }
816
907
 
817
908
  export function updateSequencersConfig(env: TestConfig, config: Partial<AztecNodeAdminConfig>) {