@aztec/end-to-end 0.0.1-commit.cd76b27 → 0.0.1-commit.d1cd2107c

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 (102) hide show
  1. package/dest/bench/client_flows/client_flows_benchmark.d.ts +1 -1
  2. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.js +16 -8
  4. package/dest/bench/utils.d.ts +1 -1
  5. package/dest/bench/utils.d.ts.map +1 -1
  6. package/dest/bench/utils.js +6 -3
  7. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +1 -1
  8. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  9. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +14 -14
  10. package/dest/e2e_fees/fees_test.d.ts +1 -1
  11. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  12. package/dest/e2e_fees/fees_test.js +13 -6
  13. package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
  14. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  15. package/dest/e2e_nested_contract/nested_contract_test.js +4 -6
  16. package/dest/e2e_p2p/p2p_network.d.ts +4 -3
  17. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  18. package/dest/e2e_p2p/p2p_network.js +19 -16
  19. package/dest/e2e_p2p/shared.d.ts +15 -1
  20. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  21. package/dest/e2e_p2p/shared.js +25 -2
  22. package/dest/e2e_token_contract/token_contract_test.d.ts +1 -1
  23. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  24. package/dest/e2e_token_contract/token_contract_test.js +11 -11
  25. package/dest/fixtures/authwit_proxy.d.ts +3 -3
  26. package/dest/fixtures/authwit_proxy.d.ts.map +1 -1
  27. package/dest/fixtures/e2e_prover_test.d.ts +1 -1
  28. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  29. package/dest/fixtures/e2e_prover_test.js +6 -6
  30. package/dest/fixtures/elu_monitor.d.ts +21 -0
  31. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  32. package/dest/fixtures/elu_monitor.js +102 -0
  33. package/dest/fixtures/setup.d.ts +3 -4
  34. package/dest/fixtures/setup.d.ts.map +1 -1
  35. package/dest/fixtures/setup.js +3 -3
  36. package/dest/fixtures/token_utils.d.ts +2 -2
  37. package/dest/fixtures/token_utils.d.ts.map +1 -1
  38. package/dest/fixtures/token_utils.js +5 -4
  39. package/dest/shared/cross_chain_test_harness.d.ts +1 -1
  40. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  41. package/dest/shared/cross_chain_test_harness.js +13 -13
  42. package/dest/shared/gas_portal_test_harness.js +2 -2
  43. package/dest/shared/jest_setup.js +41 -1
  44. package/dest/shared/submit-transactions.js +1 -1
  45. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  46. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  47. package/dest/shared/uniswap_l1_l2.js +5 -5
  48. package/dest/simulators/lending_simulator.d.ts +1 -1
  49. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  50. package/dest/simulators/lending_simulator.js +2 -2
  51. package/dest/simulators/token_simulator.d.ts +1 -1
  52. package/dest/simulators/token_simulator.d.ts.map +1 -1
  53. package/dest/simulators/token_simulator.js +2 -2
  54. package/dest/spartan/setup_test_wallets.d.ts +1 -1
  55. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  56. package/dest/spartan/setup_test_wallets.js +4 -3
  57. package/dest/spartan/tx_metrics.js +1 -1
  58. package/dest/spartan/utils/config.d.ts +4 -1
  59. package/dest/spartan/utils/config.d.ts.map +1 -1
  60. package/dest/spartan/utils/config.js +2 -1
  61. package/dest/spartan/utils/index.d.ts +2 -1
  62. package/dest/spartan/utils/index.d.ts.map +1 -1
  63. package/dest/spartan/utils/index.js +2 -0
  64. package/dest/spartan/utils/nodes.d.ts +4 -5
  65. package/dest/spartan/utils/nodes.d.ts.map +1 -1
  66. package/dest/spartan/utils/nodes.js +9 -9
  67. package/dest/test-wallet/test_wallet.js +1 -1
  68. package/dest/test-wallet/wallet_worker_script.js +41 -33
  69. package/dest/test-wallet/worker_wallet.d.ts +1 -1
  70. package/dest/test-wallet/worker_wallet.d.ts.map +1 -1
  71. package/dest/test-wallet/worker_wallet.js +51 -3
  72. package/dest/test-wallet/worker_wallet_schema.d.ts +5 -2
  73. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -1
  74. package/package.json +43 -44
  75. package/src/bench/client_flows/client_flows_benchmark.ts +38 -30
  76. package/src/bench/utils.ts +7 -2
  77. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +18 -14
  78. package/src/e2e_fees/fees_test.ts +13 -6
  79. package/src/e2e_nested_contract/nested_contract_test.ts +6 -4
  80. package/src/e2e_p2p/p2p_network.ts +25 -21
  81. package/src/e2e_p2p/shared.ts +45 -2
  82. package/src/e2e_token_contract/token_contract_test.ts +16 -8
  83. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  84. package/src/fixtures/e2e_prover_test.ts +11 -5
  85. package/src/fixtures/elu_monitor.ts +126 -0
  86. package/src/fixtures/setup.ts +8 -7
  87. package/src/fixtures/token_utils.ts +6 -3
  88. package/src/shared/cross_chain_test_harness.ts +13 -9
  89. package/src/shared/gas_portal_test_harness.ts +1 -1
  90. package/src/shared/jest_setup.ts +51 -1
  91. package/src/shared/submit-transactions.ts +1 -1
  92. package/src/shared/uniswap_l1_l2.ts +6 -4
  93. package/src/simulators/lending_simulator.ts +4 -2
  94. package/src/simulators/token_simulator.ts +6 -2
  95. package/src/spartan/setup_test_wallets.ts +16 -11
  96. package/src/spartan/tx_metrics.ts +1 -1
  97. package/src/spartan/utils/config.ts +1 -0
  98. package/src/spartan/utils/index.ts +3 -0
  99. package/src/spartan/utils/nodes.ts +15 -10
  100. package/src/test-wallet/test_wallet.ts +1 -1
  101. package/src/test-wallet/wallet_worker_script.ts +47 -30
  102. package/src/test-wallet/worker_wallet.ts +51 -3
@@ -119,7 +119,7 @@ export async function withSequencersAdmin(env, fn) {
119
119
  if (statusRes.status !== 200) {
120
120
  throw new Error(`Admin endpoint returned status ${statusRes.status}`);
121
121
  }
122
- const client = createAztecNodeAdminClient(url);
122
+ const client = createAztecNodeAdminClient(url, {}, undefined, env.AZTEC_ADMIN_API_KEY);
123
123
  return {
124
124
  result: await fn(client),
125
125
  process: process1
@@ -193,10 +193,9 @@ export async function initHADb(namespace) {
193
193
  ]), logger, true);
194
194
  }
195
195
  /**
196
- * Enables or disables probabilistic transaction dropping on validators and waits for rollout.
197
- * Wired to env vars P2P_DROP_TX and P2P_DROP_TX_CHANCE via Helm values.
198
- */ export async function setValidatorTxDrop({ namespace, enabled, probability, logger: log }) {
199
- const drop = enabled ? 'true' : 'false';
196
+ * Sets probabilistic transaction dropping on validators and waits for rollout.
197
+ * Use probability=0 to disable. Wired to env var P2P_DROP_TX_CHANCE via Helm values.
198
+ */ export async function setValidatorTxDrop({ namespace, probability, logger: log }) {
200
199
  const prob = String(probability);
201
200
  const selectors = [
202
201
  'app.kubernetes.io/name=validator',
@@ -211,7 +210,7 @@ export async function initHADb(namespace) {
211
210
  if (names.length === 0) {
212
211
  continue;
213
212
  }
214
- const cmd = `kubectl set env statefulset -l ${selector} -n ${namespace} P2P_DROP_TX=${drop} P2P_DROP_TX_CHANCE=${prob}`;
213
+ const cmd = `kubectl set env statefulset -l ${selector} -n ${namespace} P2P_DROP_TX_CHANCE=${prob}`;
215
214
  log.info(`command: ${cmd}`);
216
215
  await execAsync(cmd);
217
216
  updated = true;
@@ -291,13 +290,14 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
291
290
  * Defaults to false, which preserves the existing storage.
292
291
  */ export async function rollAztecPods(namespace, clearState = false) {
293
292
  // Pod components use 'validator', but StatefulSets and PVCs use 'sequencer-node' for validators
293
+ // RPC nodes have nodeType='rpc-node' in Helm values, so their component label is 'rpc-node' (not 'rpc')
294
294
  const podComponents = [
295
295
  'p2p-bootstrap',
296
296
  'prover-node',
297
297
  'prover-broker',
298
298
  'prover-agent',
299
299
  'sequencer-node',
300
- 'rpc',
300
+ 'rpc-node',
301
301
  'validator-ha-db'
302
302
  ];
303
303
  const pvcComponents = [
@@ -305,7 +305,7 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
305
305
  'prover-node',
306
306
  'prover-broker',
307
307
  'sequencer-node',
308
- 'rpc',
308
+ 'rpc-node',
309
309
  'validator-ha-db'
310
310
  ];
311
311
  // StatefulSet components that need to be scaled down before PVC deletion
@@ -315,7 +315,7 @@ export async function enableValidatorDynamicBootNode(instanceName, namespace, sp
315
315
  'prover-node',
316
316
  'prover-broker',
317
317
  'sequencer-node',
318
- 'rpc',
318
+ 'rpc-node',
319
319
  'validator-ha-db'
320
320
  ];
321
321
  if (clearState) {
@@ -193,7 +193,7 @@ import { AztecNodeProxy, ProvenTx } from './utils.js';
193
193
  async proveTx(exec, opts) {
194
194
  const fee = await this.completeFeeOptions(opts.from, exec.feePayer, opts.fee?.gasSettings);
195
195
  const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(exec, opts.from, fee);
196
- const txProvingResult = await this.pxe.proveTx(txRequest, this.scopesFor(opts.from));
196
+ const txProvingResult = await this.pxe.proveTx(txRequest, this.scopesFrom(opts.from, opts.additionalScopes));
197
197
  return new ProvenTx(this.aztecNode, await txProvingResult.toTx(), txProvingResult.getOffchainEffects(), txProvingResult.stats);
198
198
  }
199
199
  getTxReceipt(txHash) {
@@ -1,40 +1,48 @@
1
1
  import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
2
  import { jsonStringify } from '@aztec/foundation/json-rpc';
3
+ import { createLogger } from '@aztec/foundation/log';
3
4
  import { parseWithOptionals, schemaHasMethod } from '@aztec/foundation/schemas';
4
5
  import { NodeListener, TransportServer } from '@aztec/foundation/transport';
6
+ import { Tx } from '@aztec/stdlib/tx';
5
7
  import { workerData } from 'worker_threads';
6
8
  import { TestWallet } from './test_wallet.js';
7
9
  import { WorkerWalletSchema } from './worker_wallet_schema.js';
8
- const { nodeUrl, pxeConfig } = workerData;
9
- const node = createAztecNodeClient(nodeUrl);
10
- const wallet = await TestWallet.create(node, pxeConfig);
11
- /** Handlers for methods that need custom implementation (not direct wallet passthrough). */ const handlers = {
12
- proveTx: async (exec, opts)=>{
13
- const provenTx = await wallet.proveTx(exec, opts);
14
- // ProvenTx has non-serializable fields (node proxy, etc.) — extract only Tx-compatible fields
15
- const { data, chonkProof, contractClassLogFields, publicFunctionCalldata } = provenTx;
16
- return {
17
- data,
18
- chonkProof,
19
- contractClassLogFields,
20
- publicFunctionCalldata
21
- };
22
- },
23
- registerAccount: async (secret, salt)=>{
24
- const manager = await wallet.createSchnorrAccount(secret, salt);
25
- return manager.address;
26
- }
27
- };
28
- const schema = WorkerWalletSchema;
29
- const listener = new NodeListener();
30
- const server = new TransportServer(listener, async (msg)=>{
31
- if (!schemaHasMethod(schema, msg.fn)) {
32
- throw new Error(`Unknown method: ${msg.fn}`);
33
- }
34
- const jsonParams = JSON.parse(msg.args);
35
- const args = await parseWithOptionals(jsonParams, schema[msg.fn].parameters());
36
- const handler = handlers[msg.fn];
37
- const result = handler ? await handler(...args) : await wallet[msg.fn](...args);
38
- return jsonStringify(result);
39
- });
40
- server.start();
10
+ const logger = createLogger('e2e:test-wallet:worker');
11
+ try {
12
+ const { nodeUrl, pxeConfig } = workerData;
13
+ logger.info('Initializing worker wallet', {
14
+ nodeUrl
15
+ });
16
+ const node = createAztecNodeClient(nodeUrl);
17
+ const wallet = await TestWallet.create(node, pxeConfig);
18
+ logger.info('Worker wallet initialized');
19
+ const customMethods = {
20
+ proveTx: async (exec, opts)=>{
21
+ const provenTx = await wallet.proveTx(exec, opts);
22
+ return new Tx(provenTx.getTxHash(), provenTx.data, provenTx.chonkProof, provenTx.contractClassLogFields, provenTx.publicFunctionCalldata);
23
+ },
24
+ registerAccount: async (secret, salt)=>{
25
+ const manager = await wallet.createSchnorrAccount(secret, salt);
26
+ return manager.address;
27
+ }
28
+ };
29
+ const schema = WorkerWalletSchema;
30
+ const listener = new NodeListener();
31
+ const server = new TransportServer(listener, async (msg)=>{
32
+ if (!schemaHasMethod(schema, msg.fn)) {
33
+ throw new Error(`Unknown method: ${msg.fn}`);
34
+ }
35
+ const jsonParams = JSON.parse(msg.args);
36
+ const args = await parseWithOptionals(jsonParams, schema[msg.fn].parameters());
37
+ // we have to erase the fn type in order to be able to spread ...args
38
+ const handler = msg.fn in customMethods ? customMethods[msg.fn] : undefined;
39
+ const result = handler ? await handler(...args) : await wallet[msg.fn](...args);
40
+ return jsonStringify(result);
41
+ });
42
+ server.start();
43
+ } catch (err) {
44
+ logger.error('Worker wallet initialization failed', {
45
+ error: err instanceof Error ? err.stack : String(err)
46
+ });
47
+ process.exit(1);
48
+ }
@@ -49,4 +49,4 @@ export declare class WorkerWallet implements Wallet {
49
49
  /** Shuts down the worker thread and closes the transport. */
50
50
  stop(): Promise<void>;
51
51
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX3dhbGxldC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qtd2FsbGV0L3dvcmtlcl93YWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUNWLE9BQU8sRUFDUCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE1BQU0sRUFDTixrQkFBa0IsRUFDbkIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUl6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RILE9BQU8s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
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX3dhbGxldC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qtd2FsbGV0L3dvcmtlcl93YWxsZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUNWLE9BQU8sRUFDUCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE1BQU0sRUFDTixrQkFBa0IsRUFDbkIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU96RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RILE9BQU8s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
@@ -1 +1 @@
1
- {"version":3,"file":"worker_wallet.d.ts","sourceRoot":"","sources":["../../src/test-wallet/worker_wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker_wallet.d.ts","sourceRoot":"","sources":["../../src/test-wallet/worker_wallet.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  import { jsonStringify } from '@aztec/foundation/json-rpc';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { promiseWithResolvers } from '@aztec/foundation/promise';
4
+ import { sleep } from '@aztec/foundation/sleep';
2
5
  import { NodeConnector, TransportClient } from '@aztec/foundation/transport';
3
6
  import { Worker } from 'worker_threads';
4
7
  import { WorkerWalletSchema } from './worker_wallet_schema.js';
8
+ const log = createLogger('e2e:test-wallet:worker-wallet');
9
+ const WORKER_READY_TIMEOUT_MS = 120_000;
5
10
  /**
6
11
  * Wallet implementation that offloads all work to a worker thread.
7
12
  * Implements the Wallet interface by proxying calls over a transport layer
@@ -19,18 +24,61 @@ import { WorkerWalletSchema } from './worker_wallet_schema.js';
19
24
  * @param pxeConfig - Optional PXE configuration overrides.
20
25
  * @returns A WorkerWallet ready to use.
21
26
  */ static async create(nodeUrl, pxeConfig) {
22
- const worker = new Worker(new URL('./wallet_worker_script.js', import.meta.url), {
27
+ // replace stc/ with dest/ so the wallet works in Jest tests
28
+ const workerUrl = new URL('./wallet_worker_script.js', import.meta.url);
29
+ workerUrl.pathname = workerUrl.pathname.replace('/src/', '/dest/');
30
+ // remove JEST_WORKER_ID so the worker uses pino-pretty transport instead of Jest's raw output.
31
+ const { JEST_WORKER_ID: _, ...parentEnv } = process.env;
32
+ const worker = new Worker(workerUrl, {
23
33
  workerData: {
24
34
  nodeUrl,
25
35
  pxeConfig
36
+ },
37
+ env: {
38
+ ...parentEnv,
39
+ ...process.stderr.isTTY || process.env.FORCE_COLOR ? {
40
+ FORCE_COLOR: '1'
41
+ } : {},
42
+ LOG_LEVEL: process.env.WORKER_LOG_LEVEL ?? 'warn'
26
43
  }
27
44
  });
28
45
  const connector = new NodeConnector(worker);
29
46
  const client = new TransportClient(connector);
30
47
  await client.open();
31
48
  const wallet = new WorkerWallet(worker, client);
32
- // Warmup / readiness check blocks until the worker has finished creating the TestWallet.
33
- await wallet.getChainInfo();
49
+ const { promise: workerDied, reject: rejectWorkerDied } = promiseWithResolvers();
50
+ // reject if the worker exits or errors before the warmup completes.
51
+ const onError = (err)=>{
52
+ worker.off('exit', onExit);
53
+ rejectWorkerDied(new Error(`Worker wallet thread error: ${err.message}`));
54
+ };
55
+ const onExit = (code)=>{
56
+ worker.off('error', onError);
57
+ rejectWorkerDied(new Error(`Worker wallet thread exited with code ${code} before becoming ready`));
58
+ };
59
+ worker.once('error', onError);
60
+ worker.once('exit', onExit);
61
+ const timeout = sleep(WORKER_READY_TIMEOUT_MS).then(()=>{
62
+ throw new Error(`Worker wallet creation timed out after ${WORKER_READY_TIMEOUT_MS / 1000}s`);
63
+ });
64
+ try {
65
+ // wait for worker wallet to start
66
+ await Promise.race([
67
+ wallet.getChainInfo(),
68
+ workerDied,
69
+ timeout
70
+ ]);
71
+ } catch (err) {
72
+ log.error('Worker wallet creation failed, cleaning up', {
73
+ error: String(err)
74
+ });
75
+ client.close();
76
+ await worker.terminate();
77
+ throw err;
78
+ } finally{
79
+ worker.off('error', onError);
80
+ worker.off('exit', onExit);
81
+ }
34
82
  return wallet;
35
83
  }
36
84
  async callRaw(fn, ...args) {
@@ -14,7 +14,7 @@ export declare const WorkerWalletSchema: {
14
14
  simulateTx: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/tx").ExecutionPayload, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").SimulateOptions, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/tx").TxSimulationResult, z.ZodTypeDef, any>>;
15
15
  executeUtility: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/abi").FunctionCall, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").ExecuteUtilityOptions, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/tx").UtilityExecutionResult, z.ZodTypeDef, any>>;
16
16
  profileTx: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/tx").ExecutionPayload, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").ProfileOptions, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/tx").TxProfileResult, z.ZodTypeDef, any>>;
17
- sendTx: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/tx").ExecutionPayload, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").SendOptions<import("@aztec/aztec.js/contracts").InteractionWaitOptions>, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/tx").TxHash | import("@aztec/stdlib/tx").TxReceipt, z.ZodTypeDef, any>>;
17
+ sendTx: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/stdlib/tx").ExecutionPayload, z.ZodTypeDef, any>, opts: z.ZodType<import("@aztec/aztec.js/wallet").SendOptions<import("@aztec/aztec.js/contracts").InteractionWaitOptions>, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/aztec.js/contracts").TxSendResultImmediate | import("@aztec/aztec.js/contracts").TxSendResultMined<import("@aztec/stdlib/tx").TxReceipt>, z.ZodTypeDef, any>>;
18
18
  createAuthWit: z.ZodFunction<z.ZodTuple<[z.ZodType<AztecAddress, z.ZodTypeDef, any>, messageHashOrIntent: z.ZodType<import("@aztec/aztec.js/authorization").CallIntent | import("@aztec/aztec.js/authorization").IntentInnerHash, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/stdlib/auth-witness").AuthWitness, z.ZodTypeDef, any>>;
19
19
  requestCapabilities: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/aztec.js/wallet").AppCapabilities, z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<import("@aztec/aztec.js/wallet").WalletCapabilities, z.ZodTypeDef, any>>;
20
20
  batch: z.ZodFunction<z.ZodTuple<[z.ZodType<readonly import("@aztec/aztec.js/wallet").BatchedMethod[], z.ZodTypeDef, any>], z.ZodUnknown>, z.ZodType<readonly import("@aztec/aztec.js/wallet").BatchedMethodResultWrapper<import("@aztec/aztec.js/wallet").BatchedMethod>[], z.ZodTypeDef, any>>;
@@ -211,6 +211,7 @@ export declare const WorkerWalletSchema: {
211
211
  interval?: number | undefined;
212
212
  dontThrowOnRevert?: boolean | undefined;
213
213
  }>]>>;
214
+ additionalScopes: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodArray<import("@aztec/foundation/schemas").ZodFor<AztecAddress>, "many">>;
214
215
  }, "strip", z.ZodTypeAny, {
215
216
  from: AztecAddress;
216
217
  authWitnesses?: import("@aztec/stdlib/auth-witness").AuthWitness[] | undefined;
@@ -235,6 +236,7 @@ export declare const WorkerWalletSchema: {
235
236
  interval?: number | undefined;
236
237
  dontThrowOnRevert?: boolean | undefined;
237
238
  } | undefined;
239
+ additionalScopes?: AztecAddress[] | undefined;
238
240
  }, {
239
241
  from?: any;
240
242
  authWitnesses?: string[] | undefined;
@@ -265,7 +267,8 @@ export declare const WorkerWalletSchema: {
265
267
  interval?: number | undefined;
266
268
  dontThrowOnRevert?: boolean | undefined;
267
269
  } | undefined;
270
+ additionalScopes?: any[] | undefined;
268
271
  }>], z.ZodUnknown>, import("@aztec/foundation/schemas").ZodFor<Tx>>;
269
272
  registerAccount: z.ZodFunction<z.ZodTuple<[z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>, z.ZodType<import("@aztec/foundation/schemas").Fr, any, string>], z.ZodUnknown>, import("@aztec/foundation/schemas").ZodFor<AztecAddress>>;
270
273
  };
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX3dhbGxldF9zY2hlbWEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LXdhbGxldC93b3JrZXJfd2FsbGV0X3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsaUdBQStGO0FBQy9GLGVBQU8sTUFBTSxrQkFBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FJOUIsQ0FBQyJ9
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX3dhbGxldF9zY2hlbWEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LXdhbGxldC93b3JrZXJfd2FsbGV0X3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsaUdBQStGO0FBQy9GLGVBQU8sTUFBTSxrQkFBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FJOUIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"worker_wallet_schema.d.ts","sourceRoot":"","sources":["../../src/test-wallet/worker_wallet_schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iGAA+F;AAC/F,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9B,CAAC"}
1
+ {"version":3,"file":"worker_wallet_schema.d.ts","sourceRoot":"","sources":["../../src/test-wallet/worker_wallet_schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,iGAA+F;AAC/F,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "0.0.1-commit.cd76b27",
3
+ "version": "0.0.1-commit.d1cd2107c",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -12,12 +12,12 @@
12
12
  "build:dev": "../scripts/tsc.sh --watch",
13
13
  "clean": "rm -rf ./dest .tsbuildinfo",
14
14
  "test:with-alerts": "./scripts/test-with-alerts.sh",
15
- "test:e2e": "LOG_LEVEL=${LOG_LEVEL:-verbose} NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=300000 --forceExit",
15
+ "test:e2e": "LOG_LEVEL=${LOG_LEVEL:-verbose} NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=300000",
16
16
  "test:e2e-docker": "./scripts/run_test.sh simple",
17
17
  "test:e2e-no-docker": "echo 'The command test:e2e-no-docker is now the same as test:e2e. You can now run this dropping the no-docker suffix.'; yarn test:e2e",
18
- "test:profile": "LOG_LEVEL=${LOG_LEVEL:-verbose} NODE_NO_WARNINGS=1 0x --output-dir \"flame_graph/{pid}.0x\" -- node --experimental-vm-modules ../node_modules/jest/bin/jest.js --runInBand --testTimeout=300000 --forceExit",
18
+ "test:profile": "LOG_LEVEL=${LOG_LEVEL:-verbose} NODE_NO_WARNINGS=1 0x --output-dir \"flame_graph/{pid}.0x\" -- node --experimental-vm-modules ../node_modules/jest/bin/jest.js --runInBand --testTimeout=300000",
19
19
  "serve:flames": "python3 -m http.server --directory \"flame_graph\" 8000",
20
- "test:debug": "LOG_LEVEL=${LOG_LEVEL:-verbose} NODE_NO_WARNINGS=1 node --inspect --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=300000 --forceExit",
20
+ "test:debug": "LOG_LEVEL=${LOG_LEVEL:-verbose} NODE_NO_WARNINGS=1 node --inspect --experimental-vm-modules ../node_modules/.bin/jest --testTimeout=300000",
21
21
  "test:integration": "concurrently -k -s first -c reset,dim -n test,anvil \"yarn test:integration:run\" \"anvil\"",
22
22
  "test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --no-cache --runInBand --config jest.integration.config.json",
23
23
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests src/fixtures",
@@ -26,45 +26,45 @@
26
26
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
27
27
  },
28
28
  "dependencies": {
29
- "@aztec/accounts": "0.0.1-commit.cd76b27",
30
- "@aztec/archiver": "0.0.1-commit.cd76b27",
31
- "@aztec/aztec": "0.0.1-commit.cd76b27",
32
- "@aztec/aztec-node": "0.0.1-commit.cd76b27",
33
- "@aztec/aztec.js": "0.0.1-commit.cd76b27",
34
- "@aztec/bb-prover": "0.0.1-commit.cd76b27",
35
- "@aztec/bb.js": "0.0.1-commit.cd76b27",
36
- "@aztec/blob-client": "0.0.1-commit.cd76b27",
37
- "@aztec/blob-lib": "0.0.1-commit.cd76b27",
38
- "@aztec/bot": "0.0.1-commit.cd76b27",
39
- "@aztec/cli": "0.0.1-commit.cd76b27",
40
- "@aztec/constants": "0.0.1-commit.cd76b27",
41
- "@aztec/entrypoints": "0.0.1-commit.cd76b27",
42
- "@aztec/epoch-cache": "0.0.1-commit.cd76b27",
43
- "@aztec/ethereum": "0.0.1-commit.cd76b27",
44
- "@aztec/foundation": "0.0.1-commit.cd76b27",
45
- "@aztec/kv-store": "0.0.1-commit.cd76b27",
46
- "@aztec/l1-artifacts": "0.0.1-commit.cd76b27",
47
- "@aztec/merkle-tree": "0.0.1-commit.cd76b27",
48
- "@aztec/node-keystore": "0.0.1-commit.cd76b27",
49
- "@aztec/noir-contracts.js": "0.0.1-commit.cd76b27",
50
- "@aztec/noir-noirc_abi": "0.0.1-commit.cd76b27",
51
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.cd76b27",
52
- "@aztec/noir-test-contracts.js": "0.0.1-commit.cd76b27",
53
- "@aztec/p2p": "0.0.1-commit.cd76b27",
54
- "@aztec/protocol-contracts": "0.0.1-commit.cd76b27",
55
- "@aztec/prover-client": "0.0.1-commit.cd76b27",
56
- "@aztec/prover-node": "0.0.1-commit.cd76b27",
57
- "@aztec/pxe": "0.0.1-commit.cd76b27",
58
- "@aztec/sequencer-client": "0.0.1-commit.cd76b27",
59
- "@aztec/simulator": "0.0.1-commit.cd76b27",
60
- "@aztec/slasher": "0.0.1-commit.cd76b27",
61
- "@aztec/stdlib": "0.0.1-commit.cd76b27",
62
- "@aztec/telemetry-client": "0.0.1-commit.cd76b27",
63
- "@aztec/validator-client": "0.0.1-commit.cd76b27",
64
- "@aztec/validator-ha-signer": "0.0.1-commit.cd76b27",
65
- "@aztec/wallet-sdk": "0.0.1-commit.cd76b27",
66
- "@aztec/wallets": "0.0.1-commit.cd76b27",
67
- "@aztec/world-state": "0.0.1-commit.cd76b27",
29
+ "@aztec/accounts": "0.0.1-commit.d1cd2107c",
30
+ "@aztec/archiver": "0.0.1-commit.d1cd2107c",
31
+ "@aztec/aztec": "0.0.1-commit.d1cd2107c",
32
+ "@aztec/aztec-node": "0.0.1-commit.d1cd2107c",
33
+ "@aztec/aztec.js": "0.0.1-commit.d1cd2107c",
34
+ "@aztec/bb-prover": "0.0.1-commit.d1cd2107c",
35
+ "@aztec/bb.js": "0.0.1-commit.d1cd2107c",
36
+ "@aztec/blob-client": "0.0.1-commit.d1cd2107c",
37
+ "@aztec/blob-lib": "0.0.1-commit.d1cd2107c",
38
+ "@aztec/bot": "0.0.1-commit.d1cd2107c",
39
+ "@aztec/cli": "0.0.1-commit.d1cd2107c",
40
+ "@aztec/constants": "0.0.1-commit.d1cd2107c",
41
+ "@aztec/entrypoints": "0.0.1-commit.d1cd2107c",
42
+ "@aztec/epoch-cache": "0.0.1-commit.d1cd2107c",
43
+ "@aztec/ethereum": "0.0.1-commit.d1cd2107c",
44
+ "@aztec/foundation": "0.0.1-commit.d1cd2107c",
45
+ "@aztec/kv-store": "0.0.1-commit.d1cd2107c",
46
+ "@aztec/l1-artifacts": "0.0.1-commit.d1cd2107c",
47
+ "@aztec/merkle-tree": "0.0.1-commit.d1cd2107c",
48
+ "@aztec/node-keystore": "0.0.1-commit.d1cd2107c",
49
+ "@aztec/noir-contracts.js": "0.0.1-commit.d1cd2107c",
50
+ "@aztec/noir-noirc_abi": "0.0.1-commit.d1cd2107c",
51
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.d1cd2107c",
52
+ "@aztec/noir-test-contracts.js": "0.0.1-commit.d1cd2107c",
53
+ "@aztec/p2p": "0.0.1-commit.d1cd2107c",
54
+ "@aztec/protocol-contracts": "0.0.1-commit.d1cd2107c",
55
+ "@aztec/prover-client": "0.0.1-commit.d1cd2107c",
56
+ "@aztec/prover-node": "0.0.1-commit.d1cd2107c",
57
+ "@aztec/pxe": "0.0.1-commit.d1cd2107c",
58
+ "@aztec/sequencer-client": "0.0.1-commit.d1cd2107c",
59
+ "@aztec/simulator": "0.0.1-commit.d1cd2107c",
60
+ "@aztec/slasher": "0.0.1-commit.d1cd2107c",
61
+ "@aztec/stdlib": "0.0.1-commit.d1cd2107c",
62
+ "@aztec/telemetry-client": "0.0.1-commit.d1cd2107c",
63
+ "@aztec/validator-client": "0.0.1-commit.d1cd2107c",
64
+ "@aztec/validator-ha-signer": "0.0.1-commit.d1cd2107c",
65
+ "@aztec/wallet-sdk": "0.0.1-commit.d1cd2107c",
66
+ "@aztec/wallets": "0.0.1-commit.d1cd2107c",
67
+ "@aztec/world-state": "0.0.1-commit.d1cd2107c",
68
68
  "@iarna/toml": "^2.2.5",
69
69
  "@jest/globals": "^30.0.0",
70
70
  "@noble/curves": "=1.0.0",
@@ -76,7 +76,6 @@
76
76
  "@types/koa-static": "^4.0.2",
77
77
  "@types/lodash.every": "^4.6.7",
78
78
  "@types/node": "^22.15.17",
79
- "@viem/anvil": "^0.0.9",
80
79
  "buffer": "^6.0.3",
81
80
  "crypto-browserify": "^3.12.1",
82
81
  "fs-extra": "^11.2.0",
@@ -4,7 +4,7 @@ import { type FeePaymentMethod, PrivateFeePaymentMethod, SponsoredFeePaymentMeth
4
4
  import { type Logger, createLogger } from '@aztec/aztec.js/log';
5
5
  import type { AztecNode } from '@aztec/aztec.js/node';
6
6
  import type { Wallet } from '@aztec/aztec.js/wallet';
7
- import { CheatCodes } from '@aztec/aztec/testing';
7
+ import { CheatCodes, getTokenAllowedSetupFunctions } from '@aztec/aztec/testing';
8
8
  import { createExtendedL1Client } from '@aztec/ethereum/client';
9
9
  import { RollupContract } from '@aztec/ethereum/contracts';
10
10
  import type { DeployAztecL1ContractsArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
@@ -130,11 +130,14 @@ export class ClientFlowsBenchmark {
130
130
 
131
131
  async setup() {
132
132
  this.logger.info('Setting up subsystems from fresh');
133
+ // Token allowlist entries are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
134
+ const tokenAllowList = await getTokenAllowedSetupFunctions();
133
135
  this.context = await setup(0, {
134
136
  ...this.setupOptions,
135
137
  fundSponsoredFPC: true,
136
138
  skipAccountDeployment: true,
137
139
  l1ContractsArgs: this.setupOptions,
140
+ txPublicSetupAllowListExtend: [...(this.setupOptions.txPublicSetupAllowListExtend ?? []), ...tokenAllowList],
138
141
  });
139
142
  await this.applyBaseSetup();
140
143
 
@@ -148,6 +151,7 @@ export class ClientFlowsBenchmark {
148
151
 
149
152
  async teardown() {
150
153
  await this.chainMonitor.stop();
154
+ await this.userWallet?.stop();
151
155
  await teardown(this.context);
152
156
  }
153
157
 
@@ -161,11 +165,15 @@ export class ClientFlowsBenchmark {
161
165
 
162
166
  /** Admin mints bananaCoin tokens privately to the target address and redeems them. */
163
167
  async mintPrivateBananas(amount: bigint, address: AztecAddress) {
164
- const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({ from: address });
168
+ const { result: balanceBefore } = await this.bananaCoin.methods
169
+ .balance_of_private(address)
170
+ .simulate({ from: address });
165
171
 
166
172
  await mintTokensToPrivate(this.bananaCoin, this.adminAddress, address, amount);
167
173
 
168
- const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({ from: address });
174
+ const { result: balanceAfter } = await this.bananaCoin.methods
175
+ .balance_of_private(address)
176
+ .simulate({ from: address });
169
177
  expect(balanceAfter).toEqual(balanceBefore + amount);
170
178
  }
171
179
 
@@ -241,13 +249,12 @@ export class ClientFlowsBenchmark {
241
249
 
242
250
  async applyDeployBananaToken() {
243
251
  this.logger.info('Applying banana token deployment');
244
- const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(
245
- this.adminWallet,
246
- this.adminAddress,
247
- 'BC',
248
- 'BC',
249
- 18n,
250
- ).send({ from: this.adminAddress, wait: { returnReceipt: true } });
252
+ const {
253
+ receipt: { contract: bananaCoin, instance: bananaCoinInstance },
254
+ } = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
255
+ from: this.adminAddress,
256
+ wait: { returnReceipt: true },
257
+ });
251
258
  this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
252
259
  this.bananaCoin = bananaCoin;
253
260
  this.bananaCoinInstance = bananaCoinInstance;
@@ -255,13 +262,12 @@ export class ClientFlowsBenchmark {
255
262
 
256
263
  async applyDeployCandyBarToken() {
257
264
  this.logger.info('Applying candy bar token deployment');
258
- const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(
259
- this.adminWallet,
260
- this.adminAddress,
261
- 'CBC',
262
- 'CBC',
263
- 18n,
264
- ).send({ from: this.adminAddress, wait: { returnReceipt: true } });
265
+ const {
266
+ receipt: { contract: candyBarCoin, instance: candyBarCoinInstance },
267
+ } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
268
+ from: this.adminAddress,
269
+ wait: { returnReceipt: true },
270
+ });
265
271
  this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
266
272
  this.candyBarCoin = candyBarCoin;
267
273
  this.candyBarCoinInstance = candyBarCoinInstance;
@@ -273,11 +279,12 @@ export class ClientFlowsBenchmark {
273
279
  expect((await this.context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
274
280
 
275
281
  const bananaCoin = this.bananaCoin;
276
- const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(
277
- this.adminWallet,
278
- bananaCoin.address,
279
- this.adminAddress,
280
- ).send({ from: this.adminAddress, wait: { returnReceipt: true } });
282
+ const {
283
+ receipt: { contract: bananaFPC, instance: bananaFPCInstance },
284
+ } = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
285
+ from: this.adminAddress,
286
+ wait: { returnReceipt: true },
287
+ });
281
288
 
282
289
  this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
283
290
 
@@ -340,14 +347,15 @@ export class ClientFlowsBenchmark {
340
347
 
341
348
  public async applyDeployAmm() {
342
349
  this.logger.info('Applying AMM deployment');
343
- const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(
344
- this.adminWallet,
345
- this.adminAddress,
346
- 'LPT',
347
- 'LPT',
348
- 18n,
349
- ).send({ from: this.adminAddress, wait: { returnReceipt: true } });
350
- const { contract: amm, instance: ammInstance } = await AMMContract.deploy(
350
+ const {
351
+ receipt: { contract: liquidityToken, instance: liquidityTokenInstance },
352
+ } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
353
+ from: this.adminAddress,
354
+ wait: { returnReceipt: true },
355
+ });
356
+ const {
357
+ receipt: { contract: amm, instance: ammInstance },
358
+ } = await AMMContract.deploy(
351
359
  this.adminWallet,
352
360
  this.bananaCoin.address,
353
361
  this.candyBarCoin.address,
@@ -25,7 +25,7 @@ export async function benchmarkSetup(
25
25
  ) {
26
26
  const context = await setup(1, { ...opts, telemetryConfig: { benchmark: true } });
27
27
  const defaultAccountAddress = context.accounts[0];
28
- const contract = await BenchmarkingContract.deploy(context.wallet).send({ from: defaultAccountAddress });
28
+ const { contract } = await BenchmarkingContract.deploy(context.wallet).send({ from: defaultAccountAddress });
29
29
  context.logger.info(`Deployed benchmarking contract at ${contract.address}`);
30
30
  const sequencer = (context.aztecNode as AztecNodeService).getSequencer()!;
31
31
  const telemetry = context.telemetryClient as BenchmarkTelemetryClient;
@@ -149,7 +149,12 @@ export async function sendTxs(
149
149
  context.logger.info(`Creating ${txCount} txs`);
150
150
  const [from] = context.accounts;
151
151
  context.logger.info(`Sending ${txCount} txs`);
152
- return Promise.all(calls.map(call => call.send({ from, wait: NO_WAIT })));
152
+ return Promise.all(
153
+ calls.map(async call => {
154
+ const { txHash } = await call.send({ from, wait: NO_WAIT });
155
+ return txHash;
156
+ }),
157
+ );
153
158
  }
154
159
 
155
160
  export async function waitTxs(txs: TxHash[], context: EndToEndContext, txWaitOpts?: WaitOpts) {