@aztec/end-to-end 3.0.0-canary.a9708bd → 3.0.0-devnet.20251212

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 (165) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +4 -3
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/benchmark.js +2 -2
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +25 -14
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  6. package/dest/bench/client_flows/client_flows_benchmark.js +111 -90
  7. package/dest/bench/client_flows/config.d.ts +1 -1
  8. package/dest/bench/client_flows/data_extractor.d.ts +1 -1
  9. package/dest/bench/client_flows/data_extractor.js +8 -30
  10. package/dest/bench/utils.d.ts +4 -13
  11. package/dest/bench/utils.d.ts.map +1 -1
  12. package/dest/bench/utils.js +10 -34
  13. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +8 -8
  14. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  15. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +42 -42
  16. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +12 -9
  17. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  18. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +35 -35
  19. package/dest/e2e_deploy_contract/deploy_test.d.ts +12 -6
  20. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  21. package/dest/e2e_deploy_contract/deploy_test.js +9 -18
  22. package/dest/e2e_epochs/epochs_test.d.ts +19 -12
  23. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  24. package/dest/e2e_epochs/epochs_test.js +30 -22
  25. package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
  26. package/dest/e2e_fees/bridging_race.notest.js +14 -11
  27. package/dest/e2e_fees/fees_test.d.ts +10 -8
  28. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  29. package/dest/e2e_fees/fees_test.js +35 -38
  30. package/dest/e2e_l1_publisher/write_json.d.ts +4 -2
  31. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  32. package/dest/e2e_l1_publisher/write_json.js +9 -8
  33. package/dest/e2e_multi_validator/utils.d.ts +2 -2
  34. package/dest/e2e_multi_validator/utils.d.ts.map +1 -1
  35. package/dest/e2e_multi_validator/utils.js +4 -10
  36. package/dest/e2e_nested_contract/nested_contract_test.d.ts +7 -4
  37. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  38. package/dest/e2e_nested_contract/nested_contract_test.js +11 -12
  39. package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
  40. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
  41. package/dest/e2e_p2p/inactivity_slash_test.js +139 -0
  42. package/dest/e2e_p2p/p2p_network.d.ts +238 -17
  43. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  44. package/dest/e2e_p2p/p2p_network.js +46 -19
  45. package/dest/e2e_p2p/shared.d.ts +16 -17
  46. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  47. package/dest/e2e_p2p/shared.js +56 -55
  48. package/dest/e2e_token_contract/token_contract_test.d.ts +6 -5
  49. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  50. package/dest/e2e_token_contract/token_contract_test.js +14 -17
  51. package/dest/fixtures/e2e_prover_test.d.ts +12 -8
  52. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  53. package/dest/fixtures/e2e_prover_test.js +53 -58
  54. package/dest/fixtures/fixtures.d.ts +1 -1
  55. package/dest/fixtures/fixtures.d.ts.map +1 -1
  56. package/dest/fixtures/fixtures.js +1 -1
  57. package/dest/fixtures/get_acvm_config.d.ts +2 -2
  58. package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
  59. package/dest/fixtures/get_acvm_config.js +1 -1
  60. package/dest/fixtures/get_bb_config.d.ts +2 -2
  61. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  62. package/dest/fixtures/get_bb_config.js +2 -2
  63. package/dest/fixtures/index.d.ts +1 -1
  64. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  65. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  66. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  67. package/dest/fixtures/logging.d.ts +1 -1
  68. package/dest/fixtures/setup_l1_contracts.d.ts +476 -5
  69. package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
  70. package/dest/fixtures/setup_l1_contracts.js +3 -3
  71. package/dest/fixtures/setup_p2p_test.d.ts +12 -11
  72. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  73. package/dest/fixtures/setup_p2p_test.js +50 -24
  74. package/dest/fixtures/snapshot_manager.d.ts +13 -10
  75. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  76. package/dest/fixtures/snapshot_manager.js +66 -51
  77. package/dest/fixtures/token_utils.d.ts +10 -5
  78. package/dest/fixtures/token_utils.d.ts.map +1 -1
  79. package/dest/fixtures/token_utils.js +17 -18
  80. package/dest/fixtures/utils.d.ts +479 -35
  81. package/dest/fixtures/utils.d.ts.map +1 -1
  82. package/dest/fixtures/utils.js +106 -125
  83. package/dest/fixtures/web3signer.d.ts +5 -0
  84. package/dest/fixtures/web3signer.d.ts.map +1 -0
  85. package/dest/fixtures/web3signer.js +53 -0
  86. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  87. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  88. package/dest/fixtures/with_telemetry_utils.js +2 -2
  89. package/dest/index.d.ts +1 -1
  90. package/dest/quality_of_service/alert_checker.d.ts +2 -2
  91. package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
  92. package/dest/shared/cross_chain_test_harness.d.ts +20 -23
  93. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  94. package/dest/shared/cross_chain_test_harness.js +14 -16
  95. package/dest/shared/gas_portal_test_harness.d.ts +10 -17
  96. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  97. package/dest/shared/gas_portal_test_harness.js +11 -8
  98. package/dest/shared/index.d.ts +1 -1
  99. package/dest/shared/jest_setup.d.ts +1 -1
  100. package/dest/shared/jest_setup.js +1 -1
  101. package/dest/shared/submit-transactions.d.ts +6 -4
  102. package/dest/shared/submit-transactions.d.ts.map +1 -1
  103. package/dest/shared/submit-transactions.js +8 -7
  104. package/dest/shared/uniswap_l1_l2.d.ts +12 -8
  105. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  106. package/dest/shared/uniswap_l1_l2.js +44 -58
  107. package/dest/simulators/index.d.ts +1 -1
  108. package/dest/simulators/lending_simulator.d.ts +4 -7
  109. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  110. package/dest/simulators/lending_simulator.js +8 -5
  111. package/dest/simulators/token_simulator.d.ts +4 -2
  112. package/dest/simulators/token_simulator.d.ts.map +1 -1
  113. package/dest/simulators/token_simulator.js +2 -2
  114. package/dest/spartan/setup_test_wallets.d.ts +22 -14
  115. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  116. package/dest/spartan/setup_test_wallets.js +144 -86
  117. package/dest/spartan/tx_metrics.d.ts +39 -0
  118. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  119. package/dest/spartan/tx_metrics.js +95 -0
  120. package/dest/spartan/utils.d.ts +92 -17
  121. package/dest/spartan/utils.d.ts.map +1 -1
  122. package/dest/spartan/utils.js +386 -63
  123. package/package.json +43 -40
  124. package/src/bench/client_flows/benchmark.ts +8 -8
  125. package/src/bench/client_flows/client_flows_benchmark.ts +141 -114
  126. package/src/bench/client_flows/data_extractor.ts +9 -31
  127. package/src/bench/utils.ts +9 -37
  128. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +46 -63
  129. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +38 -51
  130. package/src/e2e_deploy_contract/deploy_test.ts +18 -36
  131. package/src/e2e_epochs/epochs_test.ts +41 -35
  132. package/src/e2e_fees/bridging_race.notest.ts +16 -11
  133. package/src/e2e_fees/fees_test.ts +42 -47
  134. package/src/e2e_l1_publisher/write_json.ts +12 -9
  135. package/src/e2e_multi_validator/utils.ts +5 -11
  136. package/src/e2e_nested_contract/nested_contract_test.ts +15 -13
  137. package/src/e2e_p2p/inactivity_slash_test.ts +184 -0
  138. package/src/e2e_p2p/p2p_network.ts +124 -82
  139. package/src/e2e_p2p/shared.ts +66 -58
  140. package/src/e2e_token_contract/token_contract_test.ts +17 -17
  141. package/src/fixtures/e2e_prover_test.ts +60 -97
  142. package/src/fixtures/fixtures.ts +1 -2
  143. package/src/fixtures/get_acvm_config.ts +2 -2
  144. package/src/fixtures/get_bb_config.ts +3 -2
  145. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  146. package/src/fixtures/setup_l1_contracts.ts +5 -4
  147. package/src/fixtures/setup_p2p_test.ts +79 -32
  148. package/src/fixtures/snapshot_manager.ts +87 -82
  149. package/src/fixtures/token_utils.ts +16 -24
  150. package/src/fixtures/utils.ts +142 -172
  151. package/src/fixtures/web3signer.ts +63 -0
  152. package/src/fixtures/with_telemetry_utils.ts +2 -2
  153. package/src/guides/up_quick_start.sh +3 -11
  154. package/src/quality_of_service/alert_checker.ts +1 -1
  155. package/src/shared/cross_chain_test_harness.ts +23 -31
  156. package/src/shared/gas_portal_test_harness.ts +14 -21
  157. package/src/shared/jest_setup.ts +1 -1
  158. package/src/shared/submit-transactions.ts +12 -8
  159. package/src/shared/uniswap_l1_l2.ts +77 -86
  160. package/src/simulators/lending_simulator.ts +9 -6
  161. package/src/simulators/token_simulator.ts +5 -2
  162. package/src/spartan/DEVELOP.md +15 -3
  163. package/src/spartan/setup_test_wallets.ts +171 -127
  164. package/src/spartan/tx_metrics.ts +130 -0
  165. package/src/spartan/utils.ts +463 -64
@@ -1,35 +1,44 @@
1
1
  import { SchnorrAccountContractArtifact } from '@aztec/accounts/schnorr';
2
- import { deployFundedSchnorrAccounts, generateSchnorrAccounts, getDeployedTestAccounts, getDeployedTestAccountsWallets } from '@aztec/accounts/testing';
2
+ import { generateSchnorrAccounts, getInitialTestAccountsData } from '@aztec/accounts/testing';
3
3
  import { createArchiver } from '@aztec/archiver';
4
4
  import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
5
- import { BatchCall, createAztecNodeClient, createLogger, createPXEClient, makeFetch, sleep, waitForPXE } from '@aztec/aztec.js';
5
+ import { BatchCall } from '@aztec/aztec.js/contracts';
6
6
  import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
7
+ import { createLogger } from '@aztec/aztec.js/log';
8
+ import { createAztecNodeClient, waitForNode } from '@aztec/aztec.js/node';
7
9
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
8
10
  import { createBlobSinkClient } from '@aztec/blob-sink/client';
9
11
  import { createBlobSinkServer } from '@aztec/blob-sink/server';
10
12
  import { GENESIS_ARCHIVE_ROOT, SPONSORED_FPC_SALT } from '@aztec/constants';
11
- import { FeeAssetArtifact, NULL_KEY, RollupContract, createExtendedL1Client, deployL1Contracts, deployMulticall3, getL1ContractsConfigEnvVars, isAnvilTestChain } from '@aztec/ethereum';
13
+ import { isAnvilTestChain } from '@aztec/ethereum/chain';
14
+ import { createExtendedL1Client } from '@aztec/ethereum/client';
15
+ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
16
+ import { NULL_KEY } from '@aztec/ethereum/constants';
17
+ import { RollupContract, deployMulticall3 } from '@aztec/ethereum/contracts';
18
+ import { deployL1Contracts } from '@aztec/ethereum/deploy-l1-contracts';
19
+ import { FeeAssetArtifact } from '@aztec/ethereum/l1-artifacts';
12
20
  import { DelayedTxUtils, EthCheatCodes, EthCheatCodesWithState, createDelayedL1TxUtilsFromViemWallet, startAnvil } from '@aztec/ethereum/test';
21
+ import { EpochNumber } from '@aztec/foundation/branded-types';
13
22
  import { SecretValue } from '@aztec/foundation/config';
14
- import { randomBytes } from '@aztec/foundation/crypto';
23
+ import { randomBytes } from '@aztec/foundation/crypto/random';
24
+ import { Fr } from '@aztec/foundation/curves/bn254';
15
25
  import { EthAddress } from '@aztec/foundation/eth-address';
16
- import { Fr } from '@aztec/foundation/fields';
17
26
  import { tryRmDir } from '@aztec/foundation/fs';
18
27
  import { withLogNameSuffix } from '@aztec/foundation/log';
19
28
  import { retryUntil } from '@aztec/foundation/retry';
20
- import { TestDateProvider } from '@aztec/foundation/timer';
29
+ import { sleep } from '@aztec/foundation/sleep';
30
+ import { DateProvider, TestDateProvider } from '@aztec/foundation/timer';
21
31
  import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
22
32
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
23
33
  import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
24
- import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
34
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
25
35
  import { createProverNode } from '@aztec/prover-node';
26
- import { createPXEServiceWithSimulator, getPXEServiceConfig } from '@aztec/pxe/server';
27
- import { MemoryCircuitRecorder, SimulatorRecorderWrapper, WASMSimulator } from '@aztec/simulator/client';
28
- import { FileCircuitRecorder } from '@aztec/simulator/testing';
36
+ import { getPXEConfig } from '@aztec/pxe/server';
29
37
  import { getContractClassFromArtifact, getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
30
38
  import { tryStop } from '@aztec/stdlib/interfaces/server';
31
39
  import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
32
40
  import { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
41
+ import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet/server';
33
42
  import { getGenesisValues } from '@aztec/world-state/testing';
34
43
  import fs from 'fs/promises';
35
44
  import getPort from 'get-port';
@@ -44,16 +53,16 @@ import { getBBConfig } from './get_bb_config.js';
44
53
  import { isMetricsLoggingRequested, setupMetricsLogger } from './logging.js';
45
54
  export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
46
55
  export { startAnvil };
47
- const { PXE_URL = '' } = process.env;
48
- const getAztecUrl = ()=>PXE_URL;
56
+ const { AZTEC_NODE_URL = '' } = process.env;
57
+ const getAztecUrl = ()=>AZTEC_NODE_URL;
49
58
  let telemetry = undefined;
50
- function getTelemetryClient(partialConfig = {}) {
59
+ async function getTelemetryClient(partialConfig = {}) {
51
60
  if (!telemetry) {
52
61
  const config = {
53
62
  ...getTelemetryConfig(),
54
63
  ...partialConfig
55
64
  };
56
- telemetry = config.benchmark ? new BenchmarkTelemetryClient() : initTelemetryClient(config);
65
+ telemetry = config.benchmark ? new BenchmarkTelemetryClient() : await initTelemetryClient(config);
57
66
  }
58
67
  return telemetry;
59
68
  }
@@ -72,44 +81,44 @@ export const getPrivateKeyFromIndex = (index)=>{
72
81
  export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, chain = foundry)=>{
73
82
  const l1Data = await deployL1Contracts(l1RpcUrls, account, chain, logger, {
74
83
  vkTreeRoot: getVKTreeRoot(),
75
- protocolContractTreeRoot,
84
+ protocolContractsHash,
76
85
  genesisArchiveRoot: args.genesisArchiveRoot ?? new Fr(GENESIS_ARCHIVE_ROOT),
77
86
  salt: args.salt,
78
87
  initialValidators: args.initialValidators,
79
88
  ...getL1ContractsConfigEnvVars(),
80
89
  realVerifier: false,
81
90
  ...args
91
+ }, {
92
+ priorityFeeBumpPercentage: 0,
93
+ priorityFeeRetryBumpPercentage: 0
82
94
  });
83
95
  return l1Data;
84
96
  };
85
97
  /**
86
- * Sets up Private eXecution Environment (PXE).
98
+ * Sets up Private eXecution Environment (PXE) and returns the corresponding test wallet.
87
99
  * @param aztecNode - An instance of Aztec Node.
88
- * @param opts - Partial configuration for the PXE service.
100
+ * @param opts - Partial configuration for the PXE.
89
101
  * @param logger - The logger to be used.
90
102
  * @param useLogSuffix - Whether to add a randomly generated suffix to the PXE debug logs.
91
- * @returns Private eXecution Environment (PXE), logger and teardown function.
92
- */ export async function setupPXEService(aztecNode, opts = {}, logger = getLogger(), useLogSuffix = false) {
93
- const pxeServiceConfig = {
94
- ...getPXEServiceConfig(),
103
+ * @returns A test wallet, logger and teardown function.
104
+ */ export async function setupPXEAndGetWallet(aztecNode, opts = {}, logger = getLogger(), useLogSuffix = false) {
105
+ const PXEConfig = {
106
+ ...getPXEConfig(),
95
107
  ...opts
96
108
  };
97
109
  // For tests we only want proving enabled if specifically requested
98
- pxeServiceConfig.proverEnabled = !!opts.proverEnabled;
110
+ PXEConfig.proverEnabled = !!opts.proverEnabled;
99
111
  // If no data directory provided, create a temp directory and clean up afterwards
100
- const configuredDataDirectory = pxeServiceConfig.dataDirectory;
112
+ const configuredDataDirectory = PXEConfig.dataDirectory;
101
113
  if (!configuredDataDirectory) {
102
- pxeServiceConfig.dataDirectory = path.join(tmpdir(), randomBytes(8).toString('hex'));
114
+ PXEConfig.dataDirectory = path.join(tmpdir(), randomBytes(8).toString('hex'));
103
115
  }
104
- const simulator = new WASMSimulator();
105
- const recorder = process.env.CIRCUIT_RECORD_DIR ? new FileCircuitRecorder(process.env.CIRCUIT_RECORD_DIR) : new MemoryCircuitRecorder();
106
- const simulatorWithRecorder = new SimulatorRecorderWrapper(simulator, recorder);
107
- const pxe = await createPXEServiceWithSimulator(aztecNode, simulatorWithRecorder, pxeServiceConfig, {
116
+ const teardown = configuredDataDirectory ? ()=>Promise.resolve() : ()=>tryRmDir(PXEConfig.dataDirectory);
117
+ const wallet = await TestWallet.create(aztecNode, PXEConfig, {
108
118
  useLogSuffix
109
119
  });
110
- const teardown = configuredDataDirectory ? ()=>Promise.resolve() : ()=>tryRmDir(pxeServiceConfig.dataDirectory);
111
120
  return {
112
- pxe,
121
+ wallet,
113
122
  logger,
114
123
  teardown
115
124
  };
@@ -127,44 +136,40 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
127
136
  const aztecNodeUrl = getAztecUrl();
128
137
  logger.verbose(`Creating Aztec Node client to remote host ${aztecNodeUrl}`);
129
138
  const aztecNode = createAztecNodeClient(aztecNodeUrl);
130
- logger.verbose(`Creating PXE client to remote host ${PXE_URL}`);
131
- const pxeClient = createPXEClient(PXE_URL, {}, makeFetch([
132
- 1,
133
- 2,
134
- 3
135
- ], true));
136
- await waitForPXE(pxeClient, logger);
137
- logger.verbose('JSON RPC client connected to PXE');
138
- logger.verbose(`Retrieving contract addresses from ${PXE_URL}`);
139
- const { l1ContractAddresses, rollupVersion } = await pxeClient.getNodeInfo();
139
+ await waitForNode(aztecNode, logger);
140
+ logger.verbose('JSON RPC client connected to Aztec Node');
141
+ logger.verbose(`Retrieving contract addresses from ${aztecNodeUrl}`);
142
+ const { l1ContractAddresses, rollupVersion } = await aztecNode.getNodeInfo();
140
143
  const l1Client = createExtendedL1Client(config.l1RpcUrls, account, foundry);
141
144
  const deployL1ContractsValues = {
142
145
  l1ContractAddresses,
143
146
  l1Client,
144
147
  rollupVersion
145
148
  };
146
- const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls);
147
- const cheatCodes = await CheatCodes.create(config.l1RpcUrls, pxeClient);
149
+ const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls, new DateProvider());
150
+ const wallet = await TestWallet.create(aztecNode);
151
+ const cheatCodes = await CheatCodes.create(config.l1RpcUrls, aztecNode, new DateProvider());
148
152
  const teardown = ()=>Promise.resolve();
149
- logger.verbose('Constructing available wallets from already registered accounts...');
150
- const initialFundedAccounts = await getDeployedTestAccounts(pxeClient);
151
- const wallets = await getDeployedTestAccountsWallets(pxeClient);
152
- if (wallets.length < numberOfAccounts) {
153
- throw new Error(`Required ${numberOfAccounts} accounts. Found ${wallets.length}.`);
153
+ logger.verbose('Populating wallet from already registered accounts...');
154
+ const initialFundedAccounts = await getInitialTestAccountsData();
155
+ if (initialFundedAccounts.length < numberOfAccounts) {
156
+ throw new Error(`Required ${numberOfAccounts} accounts. Found ${initialFundedAccounts.length}.`);
154
157
  // Deploy new accounts if there's a test that requires more funded accounts in the remote environment.
155
158
  }
159
+ const testAccounts = await Promise.all(initialFundedAccounts.slice(0, numberOfAccounts).map(async (account)=>{
160
+ const accountManager = await wallet.createSchnorrAccount(account.secret, account.salt, account.signingKey);
161
+ return accountManager.address;
162
+ }));
156
163
  return {
157
164
  aztecNode,
158
165
  aztecNodeAdmin: undefined,
159
166
  sequencer: undefined,
160
167
  proverNode: undefined,
161
- pxe: pxeClient,
162
168
  deployL1ContractsValues,
163
169
  config,
164
170
  initialFundedAccounts,
165
- wallets,
166
- wallet: wallets[0],
167
- accounts: wallets.slice(0, numberOfAccounts).map((w)=>w.getAddress()),
171
+ wallet,
172
+ accounts: testAccounts,
168
173
  logger,
169
174
  cheatCodes,
170
175
  ethCheatCodes,
@@ -182,9 +187,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
182
187
  * @param numberOfAccounts - The number of new accounts to be created once the PXE is initiated.
183
188
  * @param opts - Options to pass to the node initialization and to the setup script.
184
189
  * @param pxeOpts - Options to pass to the PXE initialization.
185
- */ export async function setup(numberOfAccounts = 1, opts = {
186
- customForwarderContractAddress: EthAddress.ZERO
187
- }, pxeOpts = {}, chain = foundry) {
190
+ */ export async function setup(numberOfAccounts = 1, opts = {}, pxeOpts = {}, chain = foundry) {
188
191
  let anvil;
189
192
  try {
190
193
  opts.aztecTargetCommitteeSize ??= 0;
@@ -213,8 +216,8 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
213
216
  if (!isAnvilTestChain(chain.id)) {
214
217
  throw new Error(`No ETHEREUM_HOSTS set but non anvil chain requested`);
215
218
  }
216
- if (PXE_URL) {
217
- throw new Error(`PXE_URL provided but no ETHEREUM_HOSTS set. Refusing to run, please set both variables so tests can deploy L1 contracts to the same Anvil instance`);
219
+ if (AZTEC_NODE_URL) {
220
+ throw new Error(`AZTEC_NODE_URL provided but no ETHEREUM_HOSTS set. Refusing to run, please set both variables so tests can deploy L1 contracts to the same Anvil instance`);
218
221
  }
219
222
  const res = await startAnvil({
220
223
  l1BlockTime: opts.ethereumSlotDuration,
@@ -232,7 +235,8 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
232
235
  logger.info(`Logging metrics to ${filename}`);
233
236
  setupMetricsLogger(filename);
234
237
  }
235
- const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls);
238
+ const dateProvider = new TestDateProvider();
239
+ const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls, dateProvider);
236
240
  if (opts.stateLoad) {
237
241
  await ethCheatCodes.loadChainState(opts.stateLoad);
238
242
  }
@@ -259,8 +263,10 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
259
263
  new SecretValue(`0x${publisherPrivKey.toString('hex')}`)
260
264
  ];
261
265
  }
262
- config.coinbase = EthAddress.fromString(publisherHdAccount.address);
263
- if (PXE_URL) {
266
+ if (config.coinbase === undefined) {
267
+ config.coinbase = EthAddress.fromString(publisherHdAccount.address);
268
+ }
269
+ if (AZTEC_NODE_URL) {
264
270
  // we are setting up against a remote environment, l1 contracts are assumed to already be deployed
265
271
  return await setupWithRemoteEnvironment(publisherHdAccount, config, logger, numberOfAccounts);
266
272
  }
@@ -284,7 +290,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
284
290
  if (opts.fundRewardDistributor) {
285
291
  // Mints block rewards for 10000 blocks to the rewardDistributor contract
286
292
  const rollup = new RollupContract(deployL1ContractsValues.l1Client, deployL1ContractsValues.l1ContractAddresses.rollupAddress);
287
- const blockReward = await rollup.getBlockReward();
293
+ const blockReward = await rollup.getCheckpointReward();
288
294
  const mintAmount = 10_000n * blockReward;
289
295
  const feeJuice = getContract({
290
296
  address: deployL1ContractsValues.l1ContractAddresses.feeJuiceAddress.toString(),
@@ -303,6 +309,7 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
303
309
  if (enableAutomine) {
304
310
  await ethCheatCodes.setAutomine(false);
305
311
  await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
312
+ dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
306
313
  }
307
314
  if (opts.l2StartTime) {
308
315
  // This should only be used in synching test or when you need to have a stable
@@ -311,13 +318,11 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
311
318
  resetBlockInterval: true
312
319
  });
313
320
  }
314
- const dateProvider = new TestDateProvider();
315
- dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
316
- const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
321
+ const watcher = new AnvilTestWatcher(new EthCheatCodesWithState(config.l1RpcUrls, dateProvider), deployL1ContractsValues.l1ContractAddresses.rollupAddress, deployL1ContractsValues.l1Client, dateProvider);
317
322
  if (!opts.disableAnvilTestWatcher) {
318
323
  await watcher.start();
319
324
  }
320
- const telemetry = getTelemetryClient(opts.telemetryConfig);
325
+ const telemetry = await getTelemetryClient(opts.telemetryConfig);
321
326
  // Blob sink service - blobs get posted here and served from here
322
327
  const blobSinkPort = await getPort();
323
328
  const blobSink = await createBlobSinkServer({
@@ -326,11 +331,11 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
326
331
  l1Contracts: config.l1Contracts,
327
332
  port: blobSinkPort,
328
333
  dataDirectory: config.dataDirectory,
329
- dataStoreMapSizeKB: config.dataStoreMapSizeKB
334
+ dataStoreMapSizeKb: config.dataStoreMapSizeKb
330
335
  }, telemetry);
331
336
  await blobSink.start();
332
337
  config.blobSinkUrl = `http://localhost:${blobSinkPort}`;
333
- logger.verbose('Creating and synching an aztec node...');
338
+ logger.verbose('Creating and synching an aztec node', config);
334
339
  const acvmConfig = await getACVMConfig(logger);
335
340
  if (acvmConfig) {
336
341
  config.acvmWorkingDirectory = acvmConfig.acvmWorkingDirectory;
@@ -341,7 +346,6 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
341
346
  config.bbBinaryPath = bbConfig.bbBinaryPath;
342
347
  config.bbWorkingDirectory = bbConfig.bbWorkingDirectory;
343
348
  }
344
- config.l1PublishRetryIntervalMS = 100;
345
349
  const blobSinkClient = createBlobSinkClient(config, {
346
350
  logger: createLogger('node:blob-sink:client')
347
351
  });
@@ -407,33 +411,31 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
407
411
  proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, config, proverNodeConfig, aztecNode, prefilledPublicData);
408
412
  }
409
413
  logger.verbose('Creating a pxe...');
410
- const { pxe, teardown: pxeTeardown } = await setupPXEService(aztecNode, pxeOpts, logger);
411
- const cheatCodes = await CheatCodes.create(config.l1RpcUrls, pxe);
414
+ const { wallet, teardown: pxeTeardown } = await setupPXEAndGetWallet(aztecNode, pxeOpts, logger);
415
+ const cheatCodes = await CheatCodes.create(config.l1RpcUrls, aztecNode, dateProvider);
412
416
  if (opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0 || opts.initialValidators && opts.initialValidators.length > 0) {
413
- // We need to advance to epoch 2 such that the committee is set up.
414
- logger.info(`Advancing to epoch 2`);
415
- await cheatCodes.rollup.advanceToEpoch(2n, {
416
- updateDateProvider: dateProvider
417
- });
417
+ // We need to advance such that the committee is set up.
418
+ await cheatCodes.rollup.advanceToEpoch(EpochNumber.fromBigInt(BigInt(await cheatCodes.rollup.getEpoch()) + BigInt(config.lagInEpochsForValidatorSet + 1)));
418
419
  await cheatCodes.rollup.setupEpoch();
419
420
  await cheatCodes.rollup.debugRollup();
420
421
  }
422
+ let accounts = [];
421
423
  // Below we continue with what we described in the long comment on line 571.
422
- let accountManagers = [];
423
424
  if (numberOfAccounts === 0) {
424
425
  logger.info('No accounts are being deployed, waiting for an empty block 1 to be mined');
425
- while(await pxe.getBlockNumber() === 0){
426
+ while(await aztecNode.getBlockNumber() === 0){
426
427
  await sleep(2000);
427
428
  }
428
429
  } else {
429
430
  logger.info(`${numberOfAccounts} accounts are being deployed. Reliably progressing past genesis by setting minTxsPerBlock to 1 and waiting for the accounts to be deployed`);
430
- accountManagers = await deployFundedSchnorrAccounts(pxe, initialFundedAccounts.slice(0, numberOfAccounts));
431
+ const accountsData = initialFundedAccounts.slice(0, numberOfAccounts);
432
+ const accountManagers = await deployFundedSchnorrAccounts(wallet, aztecNode, accountsData);
433
+ accounts = accountManagers.map((accountManager)=>accountManager.address);
431
434
  }
432
435
  // Now we restore the original minTxsPerBlock setting.
433
436
  sequencerClient.getSequencer().updateConfig({
434
437
  minTxsPerBlock: originalMinTxsPerBlock
435
438
  });
436
- const wallets = await Promise.all(accountManagers.map((account)=>account.getWallet()));
437
439
  if (initialFundedAccounts.length < numberOfAccounts) {
438
440
  // TODO: Create (numberOfAccounts - initialFundedAccounts.length) wallets without funds.
439
441
  throw new Error(`Unable to deploy ${numberOfAccounts} accounts. Only ${initialFundedAccounts.length} accounts were funded.`);
@@ -471,13 +473,11 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
471
473
  mockGossipSubNetwork,
472
474
  prefilledPublicData,
473
475
  proverNode,
474
- pxe,
475
476
  sequencer: sequencerClient,
476
477
  teardown,
477
478
  telemetryClient: telemetry,
478
- wallets,
479
- wallet: wallets[0],
480
- accounts: wallets.map((w)=>w.getAddress()),
479
+ wallet,
480
+ accounts,
481
481
  watcher
482
482
  };
483
483
  } catch (err) {
@@ -491,45 +491,28 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
491
491
  * Use this when you need to make a public call to an account contract, such as for requesting a public authwit.
492
492
  * @param sender - Wallet to send the deployment tx.
493
493
  * @param accountsToDeploy - Which accounts to publicly deploy.
494
- */ // docs:start:public_deploy_accounts
495
- export async function ensureAccountContractsPublished(sender, accountsToDeploy) {
494
+ */ export async function ensureAccountContractsPublished(wallet, accountsToDeploy) {
496
495
  // We have to check whether the accounts are already deployed. This can happen if the test runs against
497
- // the sandbox and the test accounts exist
498
- const accountsAndAddresses = await Promise.all(accountsToDeploy.map(async (account)=>{
499
- const address = account.getAddress();
496
+ // the local network and the test accounts exist
497
+ const accountsAndAddresses = await Promise.all(accountsToDeploy.map(async (address)=>{
500
498
  return {
501
499
  address,
502
- deployed: (await sender.getContractMetadata(address)).isContractPublished
500
+ deployed: (await wallet.getContractMetadata(address)).isContractPublished
503
501
  };
504
502
  }));
505
- const instances = (await Promise.all(accountsAndAddresses.filter(({ deployed })=>!deployed).map(({ address })=>sender.getContractMetadata(address)))).map((contractMetadata)=>contractMetadata.contractInstance);
503
+ const instances = (await Promise.all(accountsAndAddresses.filter(({ deployed })=>!deployed).map(({ address })=>wallet.getContractMetadata(address)))).map((contractMetadata)=>contractMetadata.contractInstance);
506
504
  const contractClass = await getContractClassFromArtifact(SchnorrAccountContractArtifact);
507
- if (!(await sender.getContractClassMetadata(contractClass.id, true)).isContractClassPubliclyRegistered) {
508
- await (await publishContractClass(sender, SchnorrAccountContractArtifact)).send({
509
- from: accountsToDeploy[0].getAddress()
505
+ if (!(await wallet.getContractClassMetadata(contractClass.id, true)).isContractClassPubliclyRegistered) {
506
+ await (await publishContractClass(wallet, SchnorrAccountContractArtifact)).send({
507
+ from: accountsToDeploy[0]
510
508
  }).wait();
511
509
  }
512
- const requests = await Promise.all(instances.map(async (instance)=>await publishInstance(sender, instance)));
513
- const batch = new BatchCall(sender, requests);
510
+ const requests = await Promise.all(instances.map(async (instance)=>await publishInstance(wallet, instance)));
511
+ const batch = new BatchCall(wallet, requests);
514
512
  await batch.send({
515
- from: accountsToDeploy[0].getAddress()
513
+ from: accountsToDeploy[0]
516
514
  }).wait();
517
515
  }
518
- // docs:end:public_deploy_accounts
519
- /**
520
- * Sets the timestamp of the next block.
521
- * @param rpcUrl - rpc url of the blockchain instance to connect to
522
- * @param timestamp - the timestamp for the next block
523
- */ export async function setNextBlockTimestamp(rpcUrl, timestamp) {
524
- const params = `[${timestamp}]`;
525
- await fetch(rpcUrl, {
526
- body: `{"jsonrpc":"2.0", "method": "evm_setNextBlockTimestamp", "params": ${params}, "id": 1}`,
527
- method: 'POST',
528
- headers: {
529
- 'Content-Type': 'application/json'
530
- }
531
- });
532
- }
533
516
  /** Returns the job name for the current test. */ function getJobName() {
534
517
  return process.env.JOB_NAME ?? expect.getState().currentTestName?.split(' ')[0].replaceAll('/', '_') ?? 'unknown';
535
518
  }
@@ -568,7 +551,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
568
551
  expect(diffs).toEqual(expectedDiffs);
569
552
  }
570
553
  /**
571
- * Computes the address of the "canonical" SponosoredFPCContract. This is not a protocol contract
554
+ * Computes the address of the "canonical" SponsoredFPCContract. This is not a protocol contract
572
555
  * but by conventions its address is computed with a salt of 0.
573
556
  * @returns The address of the sponsored FPC contract
574
557
  */ export function getSponsoredFPCInstance() {
@@ -577,7 +560,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
577
560
  }));
578
561
  }
579
562
  /**
580
- * Computes the address of the "canonical" SponosoredFPCContract. This is not a protocol contract
563
+ * Computes the address of the "canonical" SponsoredFPCContract. This is not a protocol contract
581
564
  * but by conventions its address is computed with a salt of 0.
582
565
  * @returns The address of the sponsored FPC contract
583
566
  */ export async function getSponsoredFPCAddress() {
@@ -586,25 +569,19 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
586
569
  }
587
570
  /**
588
571
  * Deploy a sponsored FPC contract to a running instance.
589
- */ export async function setupSponsoredFPC(pxe) {
572
+ */ export async function setupSponsoredFPC(wallet) {
590
573
  const instance = await getContractInstanceFromInstantiationParams(SponsoredFPCContract.artifact, {
591
574
  salt: new Fr(SPONSORED_FPC_SALT)
592
575
  });
593
- await pxe.registerContract({
594
- instance,
595
- artifact: SponsoredFPCContract.artifact
596
- });
576
+ await wallet.registerContract(instance, SponsoredFPCContract.artifact);
597
577
  getLogger().info(`SponsoredFPC: ${instance.address}`);
598
578
  return instance;
599
579
  }
600
580
  /**
601
581
  * Registers the SponsoredFPC in this PXE instance
602
- * @param pxe - The pxe client
603
- */ export async function registerSponsoredFPC(pxe) {
604
- await pxe.registerContract({
605
- instance: await getSponsoredFPCInstance(),
606
- artifact: SponsoredFPCContract.artifact
607
- });
582
+ * @param wallet - The wallet
583
+ */ export async function registerSponsoredFPC(wallet) {
584
+ await wallet.registerContract(await getSponsoredFPCInstance(), SponsoredFPCContract.artifact);
608
585
  }
609
586
  export async function waitForProvenChain(node, targetBlock, timeoutSec = 60, intervalSec = 1) {
610
587
  targetBlock ??= await node.getBlockNumber();
@@ -626,7 +603,8 @@ export function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, p
626
603
  dataDirectory: proverNodeConfig.dataDirectory
627
604
  };
628
605
  const archiver = await createArchiver(archiverConfig, {
629
- blobSinkClient
606
+ blobSinkClient,
607
+ dateProvider: proverNodeDeps.dateProvider
630
608
  }, {
631
609
  blockUntilSync: true
632
610
  });
@@ -648,6 +626,7 @@ export function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, p
648
626
  txGatheringTimeoutMs: 24_000,
649
627
  proverNodeFailedEpochStore: undefined,
650
628
  proverId: EthAddress.fromNumber(1),
629
+ proverNodeEpochProvingDelayMs: undefined,
651
630
  ...proverNodeConfig
652
631
  };
653
632
  const l1TxUtils = createDelayedL1TxUtils(aztecNodeConfig, proverNodePrivateKey, 'prover-node', proverNodeDeps.dateProvider);
@@ -662,7 +641,9 @@ export function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, p
662
641
  getLogger().info(`Created and synced prover node`, {
663
642
  publisherAddress: l1TxUtils.client.account.address
664
643
  });
665
- await proverNode.start();
644
+ if (!proverNodeConfig.dontStart) {
645
+ await proverNode.start();
646
+ }
666
647
  return proverNode;
667
648
  });
668
649
  }
@@ -0,0 +1,5 @@
1
+ export declare function createWeb3SignerKeystore(dir: string, ...privateKeys: string[]): Promise<void>;
2
+ export declare function refreshWeb3Signer(url: string, ...expectedAddresses: string[]): Promise<void>;
3
+ export declare function getWeb3SignerTestKeystoreDir(): string;
4
+ export declare function getWeb3SignerUrl(): string;
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViM3NpZ25lci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL3dlYjNzaWduZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0Esd0JBQXNCLHdCQUF3QixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxXQUFXLEVBQUUsTUFBTSxFQUFFLGlCQWNuRjtBQUVELHdCQUFzQixpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGlCQW9CbEY7QUFFRCx3QkFBZ0IsNEJBQTRCLElBQUksTUFBTSxDQU9yRDtBQUVELHdCQUFnQixnQkFBZ0IsSUFBSSxNQUFNLENBTXpDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web3signer.d.ts","sourceRoot":"","sources":["../../src/fixtures/web3signer.ts"],"names":[],"mappings":"AASA,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,iBAcnF;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,MAAM,EAAE,iBAoBlF;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAOrD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC"}
@@ -0,0 +1,53 @@
1
+ import { randomBytes } from '@aztec/foundation/crypto/random';
2
+ import { retryUntil } from '@aztec/foundation/retry';
3
+ import { sleep } from '@aztec/foundation/sleep';
4
+ import { RemoteSigner } from '@aztec/node-keystore';
5
+ import { mkdirSync } from 'node:fs';
6
+ import { writeFile } from 'node:fs/promises';
7
+ import { join } from 'node:path';
8
+ export async function createWeb3SignerKeystore(dir, ...privateKeys) {
9
+ const yaml = privateKeys.map((pk)=>`\
10
+ type: file-raw
11
+ keyType: SECP256K1
12
+ privateKey: ${pk}`).join('\n---\n');
13
+ // NOTE: nodejs stdlib can only create temp directories, not temp files!
14
+ // this write uses wx (write-exclusive) so it'll throw if the file already exists
15
+ const path = join(dir, `keystore-${randomBytes(4).toString('hex')}.yaml`);
16
+ await writeFile(path, yaml, {
17
+ flag: 'wx'
18
+ });
19
+ }
20
+ export async function refreshWeb3Signer(url, ...expectedAddresses) {
21
+ await fetch(new URL('reload', url), {
22
+ method: 'POST'
23
+ });
24
+ if (expectedAddresses.length > 0) {
25
+ await retryUntil(async ()=>{
26
+ try {
27
+ await RemoteSigner.validateAccess(url, expectedAddresses);
28
+ return true;
29
+ } catch {
30
+ return false;
31
+ }
32
+ }, 'web3signer refresh', 10, 0.5);
33
+ } else {
34
+ await sleep(1000);
35
+ }
36
+ }
37
+ export function getWeb3SignerTestKeystoreDir() {
38
+ if (process.env.WEB3_SIGNER_TEST_KEYSTORE_DIR) {
39
+ mkdirSync(process.env.WEB3_SIGNER_TEST_KEYSTORE_DIR, {
40
+ recursive: true
41
+ });
42
+ return process.env.WEB3_SIGNER_TEST_KEYSTORE_DIR;
43
+ } else {
44
+ throw new Error('Web3signer not running');
45
+ }
46
+ }
47
+ export function getWeb3SignerUrl() {
48
+ if (process.env.WEB3_SIGNER_URL) {
49
+ return process.env.WEB3_SIGNER_URL;
50
+ } else {
51
+ throw new Error('Web3signer not running');
52
+ }
53
+ }
@@ -1,3 +1,3 @@
1
1
  import { type TelemetryClient } from '@aztec/telemetry-client';
2
- export declare function getEndToEndTestTelemetryClient(metricsPort?: number): TelemetryClient;
3
- //# sourceMappingURL=with_telemetry_utils.d.ts.map
2
+ export declare function getEndToEndTestTelemetryClient(metricsPort?: number): Promise<TelemetryClient>;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aF90ZWxlbWV0cnlfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy93aXRoX3RlbGVtZXRyeV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsS0FBSyxlQUFlLEVBSXJCLE1BQU0seUJBQXlCLENBQUM7QUFHakMsd0JBQXNCLDhCQUE4QixDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBTW5HIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"with_telemetry_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/with_telemetry_utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,yBAAyB,CAAC;AAGjC,wBAAgB,8BAA8B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,eAAe,CAMpF"}
1
+ {"version":3,"file":"with_telemetry_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/with_telemetry_utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,yBAAyB,CAAC;AAGjC,wBAAsB,8BAA8B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAMnG"}
@@ -1,14 +1,14 @@
1
1
  import { levels, registerLoggingStream } from '@aztec/foundation/log';
2
2
  import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
3
3
  import { OTelPinoStream } from '@aztec/telemetry-client/otel-pino-stream';
4
- export function getEndToEndTestTelemetryClient(metricsPort) {
4
+ export async function getEndToEndTestTelemetryClient(metricsPort) {
5
5
  if (metricsPort) {
6
6
  const otelStream = new OTelPinoStream({
7
7
  levels
8
8
  });
9
9
  registerLoggingStream(otelStream);
10
10
  }
11
- return initTelemetryClient(getEndToEndTestTelemetryConfig(metricsPort));
11
+ return await initTelemetryClient(getEndToEndTestTelemetryConfig(metricsPort));
12
12
  }
13
13
  /**
14
14
  * Utility functions for setting up end-to-end tests with telemetry.
package/dest/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export * from './shared/index.js';
2
- //# sourceMappingURL=index.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLG1CQUFtQixDQUFDIn0=
@@ -1,4 +1,4 @@
1
- import type { Logger } from '@aztec/aztec.js';
1
+ import type { Logger } from '@aztec/aztec.js/log';
2
2
  export interface AlertConfig {
3
3
  alert: string;
4
4
  expr: string;
@@ -38,4 +38,4 @@ export declare class AlertChecker {
38
38
  export declare class AlertTriggeredError extends Error {
39
39
  name: string;
40
40
  }
41
- //# sourceMappingURL=alert_checker.d.ts.map
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnRfY2hlY2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1YWxpdHlfb2Zfc2VydmljZS9hbGVydF9jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS2xELE1BQU0sV0FBVyxXQUFXO0lBQzFCLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2YsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2IsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2QsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUNaLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0NBQ3JDO0FBRUQsTUFBTSxXQUFXLGtCQUFrQjtJQUNqQyxlQUFlLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztDQUM1QjtBQVFELHFCQUFhLFlBQVk7SUFDdkIsT0FBTyxDQUFDLE1BQU0sQ0FBcUI7SUFDbkMsT0FBTyxDQUFDLE1BQU0sQ0FBUztJQUV2QixZQUFZLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBTSxFQUduRTtJQUVEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxnQkFBZ0I7WUFNVixZQUFZO1lBcUNaLFdBQVc7SUFxQnpCOzs7T0FHRztJQUNVLGFBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVEvRDtJQUVEOzs7T0FHRztJQUNVLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUd0RTtDQUNGO0FBRUQscUJBQWEsbUJBQW9CLFNBQVEsS0FBSztJQUNuQyxJQUFJLFNBQXlCO0NBQ3ZDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"alert_checker.d.ts","sourceRoot":"","sources":["../../src/quality_of_service/alert_checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK9C,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAQD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAKpE;;;OAGG;IACH,OAAO,CAAC,gBAAgB;YAMV,YAAY;YAqCZ,WAAW;IAqBzB;;;OAGG;IACU,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhE;;;OAGG;IACU,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIxE;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IACnC,IAAI,SAAyB;CACvC"}
1
+ {"version":3,"file":"alert_checker.d.ts","sourceRoot":"","sources":["../../src/quality_of_service/alert_checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAQD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAS;IAEvB,YAAY,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM,EAGnE;IAED;;;OAGG;IACH,OAAO,CAAC,gBAAgB;YAMV,YAAY;YAqCZ,WAAW;IAqBzB;;;OAGG;IACU,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ/D;IAED;;;OAGG;IACU,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtE;CACF;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IACnC,IAAI,SAAyB;CACvC"}