@aztec/end-to-end 0.0.1-commit.b655e406 → 0.0.1-commit.d3ec352c

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 (126) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +1 -1
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.d.ts +8 -1
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  5. package/dest/bench/client_flows/client_flows_benchmark.js +53 -30
  6. package/dest/bench/client_flows/config.d.ts +1 -1
  7. package/dest/bench/client_flows/data_extractor.d.ts +1 -1
  8. package/dest/bench/client_flows/data_extractor.js +5 -27
  9. package/dest/bench/utils.d.ts +2 -2
  10. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +1 -1
  11. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  12. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +2 -2
  13. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +1 -1
  14. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  15. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +4 -3
  16. package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -2
  17. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  18. package/dest/e2e_epochs/epochs_test.d.ts +9 -8
  19. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  20. package/dest/e2e_epochs/epochs_test.js +8 -7
  21. package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
  22. package/dest/e2e_fees/bridging_race.notest.js +1 -1
  23. package/dest/e2e_fees/fees_test.d.ts +3 -2
  24. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  25. package/dest/e2e_fees/fees_test.js +12 -9
  26. package/dest/e2e_l1_publisher/write_json.d.ts +1 -1
  27. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  28. package/dest/e2e_l1_publisher/write_json.js +5 -4
  29. package/dest/e2e_multi_validator/utils.d.ts +1 -1
  30. package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
  31. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  32. package/dest/e2e_nested_contract/nested_contract_test.js +4 -3
  33. package/dest/e2e_p2p/inactivity_slash_test.d.ts +2 -2
  34. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
  35. package/dest/e2e_p2p/inactivity_slash_test.js +6 -2
  36. package/dest/e2e_p2p/p2p_network.d.ts +214 -9
  37. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  38. package/dest/e2e_p2p/p2p_network.js +5 -3
  39. package/dest/e2e_p2p/shared.d.ts +5 -5
  40. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  41. package/dest/e2e_p2p/shared.js +6 -5
  42. package/dest/e2e_token_contract/token_contract_test.d.ts +1 -1
  43. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  44. package/dest/e2e_token_contract/token_contract_test.js +2 -2
  45. package/dest/fixtures/e2e_prover_test.d.ts +3 -1
  46. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  47. package/dest/fixtures/e2e_prover_test.js +18 -14
  48. package/dest/fixtures/fixtures.d.ts +1 -1
  49. package/dest/fixtures/fixtures.d.ts.map +1 -1
  50. package/dest/fixtures/fixtures.js +1 -1
  51. package/dest/fixtures/get_acvm_config.d.ts +1 -1
  52. package/dest/fixtures/get_bb_config.d.ts +1 -1
  53. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  54. package/dest/fixtures/index.d.ts +1 -1
  55. package/dest/fixtures/l1_to_l2_messaging.d.ts +1 -1
  56. package/dest/fixtures/logging.d.ts +1 -1
  57. package/dest/fixtures/setup_l1_contracts.d.ts +475 -4
  58. package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
  59. package/dest/fixtures/setup_p2p_test.d.ts +4 -4
  60. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  61. package/dest/fixtures/setup_p2p_test.js +15 -7
  62. package/dest/fixtures/snapshot_manager.d.ts +2 -2
  63. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  64. package/dest/fixtures/token_utils.d.ts +5 -2
  65. package/dest/fixtures/token_utils.d.ts.map +1 -1
  66. package/dest/fixtures/token_utils.js +7 -4
  67. package/dest/fixtures/utils.d.ts +451 -5
  68. package/dest/fixtures/utils.d.ts.map +1 -1
  69. package/dest/fixtures/utils.js +11 -12
  70. package/dest/fixtures/web3signer.d.ts +1 -1
  71. package/dest/fixtures/with_telemetry_utils.d.ts +1 -1
  72. package/dest/index.d.ts +1 -1
  73. package/dest/quality_of_service/alert_checker.d.ts +1 -1
  74. package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
  75. package/dest/shared/cross_chain_test_harness.d.ts +3 -13
  76. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  77. package/dest/shared/gas_portal_test_harness.d.ts +1 -11
  78. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  79. package/dest/shared/gas_portal_test_harness.js +1 -1
  80. package/dest/shared/index.d.ts +1 -1
  81. package/dest/shared/jest_setup.d.ts +1 -1
  82. package/dest/shared/submit-transactions.d.ts +1 -1
  83. package/dest/shared/submit-transactions.d.ts.map +1 -1
  84. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  85. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  86. package/dest/shared/uniswap_l1_l2.js +11 -11
  87. package/dest/simulators/index.d.ts +1 -1
  88. package/dest/simulators/lending_simulator.d.ts +1 -5
  89. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  90. package/dest/simulators/lending_simulator.js +4 -2
  91. package/dest/simulators/token_simulator.d.ts +1 -1
  92. package/dest/simulators/token_simulator.d.ts.map +1 -1
  93. package/dest/spartan/setup_test_wallets.d.ts +5 -3
  94. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  95. package/dest/spartan/setup_test_wallets.js +43 -9
  96. package/dest/spartan/utils.d.ts +22 -19
  97. package/dest/spartan/utils.d.ts.map +1 -1
  98. package/dest/spartan/utils.js +66 -33
  99. package/package.json +42 -40
  100. package/src/bench/client_flows/client_flows_benchmark.ts +75 -30
  101. package/src/bench/client_flows/data_extractor.ts +6 -28
  102. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +2 -2
  103. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +4 -3
  104. package/src/e2e_deploy_contract/deploy_test.ts +1 -1
  105. package/src/e2e_epochs/epochs_test.ts +15 -14
  106. package/src/e2e_fees/bridging_race.notest.ts +1 -1
  107. package/src/e2e_fees/fees_test.ts +15 -11
  108. package/src/e2e_l1_publisher/write_json.ts +5 -4
  109. package/src/e2e_nested_contract/nested_contract_test.ts +4 -3
  110. package/src/e2e_p2p/inactivity_slash_test.ts +6 -2
  111. package/src/e2e_p2p/p2p_network.ts +7 -3
  112. package/src/e2e_p2p/shared.ts +8 -5
  113. package/src/e2e_token_contract/token_contract_test.ts +2 -2
  114. package/src/fixtures/e2e_prover_test.ts +15 -16
  115. package/src/fixtures/fixtures.ts +1 -2
  116. package/src/fixtures/setup_p2p_test.ts +20 -6
  117. package/src/fixtures/token_utils.ts +4 -4
  118. package/src/fixtures/utils.ts +36 -17
  119. package/src/guides/up_quick_start.sh +1 -1
  120. package/src/shared/cross_chain_test_harness.ts +2 -1
  121. package/src/shared/gas_portal_test_harness.ts +1 -1
  122. package/src/shared/uniswap_l1_l2.ts +11 -11
  123. package/src/simulators/lending_simulator.ts +4 -2
  124. package/src/spartan/DEVELOP.md +7 -0
  125. package/src/spartan/setup_test_wallets.ts +47 -11
  126. package/src/spartan/utils.ts +73 -32
@@ -1,7 +1,9 @@
1
1
  import { createLogger } from '@aztec/aztec.js/log';
2
2
  import type { RollupCheatCodes } from '@aztec/aztec/testing';
3
3
  import type { L1ContractAddresses, ViemPublicClient } from '@aztec/ethereum';
4
+ import type { CheckpointNumber } from '@aztec/foundation/branded-types';
4
5
  import type { Logger } from '@aztec/foundation/log';
6
+ import { promiseWithResolvers } from '@aztec/foundation/promise';
5
7
  import { makeBackoff, retry } from '@aztec/foundation/retry';
6
8
  import { schemas } from '@aztec/foundation/schemas';
7
9
  import { sleep } from '@aztec/foundation/sleep';
@@ -160,9 +162,42 @@ export async function startPortForward({
160
162
  return { process, port };
161
163
  }
162
164
 
163
- export function startPortForwardForRPC(namespace: string) {
165
+ export function getExternalIP(namespace: string, serviceName: string): Promise<string> {
166
+ const { promise, resolve, reject } = promiseWithResolvers<string>();
167
+ const process = spawn(
168
+ 'kubectl',
169
+ [
170
+ 'get',
171
+ 'service',
172
+ '-n',
173
+ namespace,
174
+ `${namespace}-${serviceName}`,
175
+ '--output',
176
+ "jsonpath='{.status.loadBalancer.ingress[0].ip}'",
177
+ ],
178
+ {
179
+ stdio: 'pipe',
180
+ },
181
+ );
182
+
183
+ let ip = '';
184
+ process.stdout.on('data', data => {
185
+ ip += data;
186
+ });
187
+ process.on('error', err => {
188
+ reject(err);
189
+ });
190
+ process.on('exit', () => {
191
+ // kubectl prints JSON. Remove the quotes
192
+ resolve(ip.replace(/"|'/g, ''));
193
+ });
194
+
195
+ return promise;
196
+ }
197
+
198
+ export function startPortForwardForRPC(namespace: string, index = 0) {
164
199
  return startPortForward({
165
- resource: `services/${namespace}-rpc-aztec-node`,
200
+ resource: `pod/${namespace}-rpc-aztec-node-${index}`,
166
201
  namespace,
167
202
  containerPort: 8080,
168
203
  });
@@ -295,6 +330,32 @@ async function execHelmCommand(args: Parameters<typeof createHelmCommand>[0]) {
295
330
  return stdout;
296
331
  }
297
332
 
333
+ export async function cleanHelm(instanceName: string, namespace: string, logger: Logger) {
334
+ // uninstall the helm chart if it exists
335
+ logger.info(`Uninstalling helm chart ${instanceName}`);
336
+ await execAsync(`helm uninstall ${instanceName} --namespace ${namespace} --wait --ignore-not-found`);
337
+ // and delete the chaos-mesh resources created by this release
338
+ const deleteByLabel = async (resource: string) => {
339
+ const args = {
340
+ resource,
341
+ namespace: namespace,
342
+ label: `app.kubernetes.io/instance=${instanceName}`,
343
+ } as const;
344
+ logger.info(`Deleting ${resource} resources for release ${instanceName}`);
345
+ await deleteResourceByLabel(args).catch(e => {
346
+ logger.error(`Error deleting ${resource}: ${e}`);
347
+ logger.info(`Force deleting ${resource}`);
348
+ return deleteResourceByLabel({ ...args, force: true });
349
+ });
350
+ };
351
+
352
+ await deleteByLabel('podchaos');
353
+ await deleteByLabel('networkchaos');
354
+ await deleteByLabel('podnetworkchaos');
355
+ await deleteByLabel('workflows');
356
+ await deleteByLabel('workflownodes');
357
+ }
358
+
298
359
  /**
299
360
  * Installs a Helm chart with the given parameters.
300
361
  * @param instanceName - The name of the Helm chart instance.
@@ -317,7 +378,6 @@ export async function installChaosMeshChart({
317
378
  targetNamespace,
318
379
  valuesFile,
319
380
  helmChartDir,
320
- chaosMeshNamespace = 'chaos-mesh',
321
381
  timeout = '10m',
322
382
  clean = true,
323
383
  values = {},
@@ -334,32 +394,13 @@ export async function installChaosMeshChart({
334
394
  logger: Logger;
335
395
  }) {
336
396
  if (clean) {
337
- // uninstall the helm chart if it exists
338
- logger.info(`Uninstalling helm chart ${instanceName}`);
339
- await execAsync(`helm uninstall ${instanceName} --namespace ${chaosMeshNamespace} --wait --ignore-not-found`);
340
- // and delete the chaos-mesh resources created by this release
341
- const deleteByLabel = async (resource: string) => {
342
- const args = {
343
- resource,
344
- namespace: chaosMeshNamespace,
345
- label: `app.kubernetes.io/instance=${instanceName}`,
346
- } as const;
347
- logger.info(`Deleting ${resource} resources for release ${instanceName}`);
348
- await deleteResourceByLabel(args).catch(e => {
349
- logger.error(`Error deleting ${resource}: ${e}`);
350
- logger.info(`Force deleting ${resource}`);
351
- return deleteResourceByLabel({ ...args, force: true });
352
- });
353
- };
354
-
355
- await deleteByLabel('podchaos');
356
- await deleteByLabel('networkchaos');
397
+ await cleanHelm(instanceName, targetNamespace, logger);
357
398
  }
358
399
 
359
400
  return execHelmCommand({
360
401
  instanceName,
361
402
  helmChartDir,
362
- namespace: chaosMeshNamespace,
403
+ namespace: targetNamespace,
363
404
  valuesFile,
364
405
  timeout,
365
406
  values: { ...values, 'global.targetNamespace': targetNamespace },
@@ -491,24 +532,24 @@ export function applyNetworkShaping({
491
532
  });
492
533
  }
493
534
 
494
- export async function awaitL2BlockNumber(
535
+ export async function awaitCheckpointNumber(
495
536
  rollupCheatCodes: RollupCheatCodes,
496
- blockNumber: bigint,
537
+ checkpointNumber: CheckpointNumber,
497
538
  timeoutSeconds: number,
498
539
  logger: Logger,
499
540
  ) {
500
- logger.info(`Waiting for L2 Block ${blockNumber}`);
541
+ logger.info(`Waiting for checkpoint ${checkpointNumber}`);
501
542
  let tips = await rollupCheatCodes.getTips();
502
543
  const endTime = Date.now() + timeoutSeconds * 1000;
503
- while (tips.pending < blockNumber && Date.now() < endTime) {
504
- logger.info(`At L2 Block ${tips.pending}`);
544
+ while (tips.pending < checkpointNumber && Date.now() < endTime) {
545
+ logger.info(`At checkpoint ${tips.pending}`);
505
546
  await sleep(1000);
506
547
  tips = await rollupCheatCodes.getTips();
507
548
  }
508
- if (tips.pending < blockNumber) {
509
- throw new Error(`Timeout waiting for L2 Block ${blockNumber}, only reached ${tips.pending}`);
549
+ if (tips.pending < checkpointNumber) {
550
+ throw new Error(`Timeout waiting for checkpoint ${checkpointNumber}, only reached ${tips.pending}`);
510
551
  } else {
511
- logger.info(`Reached L2 Block ${tips.pending}`);
552
+ logger.info(`Reached checkpoint ${tips.pending}`);
512
553
  }
513
554
  }
514
555