@aztec/end-to-end 0.0.1-commit.e6bd8901 → 0.0.1-commit.ec7ac5448

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 (202) hide show
  1. package/README.md +27 -0
  2. package/dest/bench/client_flows/client_flows_benchmark.d.ts +2 -2
  3. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  4. package/dest/bench/client_flows/client_flows_benchmark.js +22 -29
  5. package/dest/bench/client_flows/config.d.ts +2 -2
  6. package/dest/bench/client_flows/config.d.ts.map +1 -1
  7. package/dest/bench/client_flows/config.js +18 -0
  8. package/dest/bench/utils.d.ts +1 -1
  9. package/dest/bench/utils.d.ts.map +1 -1
  10. package/dest/bench/utils.js +6 -3
  11. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +6 -3
  12. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  13. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +23 -13
  14. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +2 -2
  15. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  16. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +3 -2
  17. package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -2
  18. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  19. package/dest/e2e_epochs/epochs_test.d.ts +17 -7
  20. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  21. package/dest/e2e_epochs/epochs_test.js +91 -44
  22. package/dest/e2e_fees/fees_test.d.ts +2 -2
  23. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  24. package/dest/e2e_fees/fees_test.js +19 -12
  25. package/dest/e2e_l1_publisher/write_json.d.ts +3 -2
  26. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  27. package/dest/e2e_l1_publisher/write_json.js +1 -7
  28. package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
  29. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  30. package/dest/e2e_nested_contract/nested_contract_test.js +4 -6
  31. package/dest/e2e_p2p/inactivity_slash_test.js +3 -3
  32. package/dest/e2e_p2p/p2p_network.d.ts +9 -10
  33. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  34. package/dest/e2e_p2p/p2p_network.js +38 -20
  35. package/dest/e2e_p2p/reqresp/utils.d.ts +22 -0
  36. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -0
  37. package/dest/e2e_p2p/reqresp/utils.js +190 -0
  38. package/dest/e2e_p2p/shared.d.ts +26 -8
  39. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  40. package/dest/e2e_p2p/shared.js +56 -47
  41. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts +2 -0
  42. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.d.ts.map +1 -0
  43. package/dest/e2e_storage_proof/fixtures/storage_proof_fetcher.js +184 -0
  44. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts +18 -0
  45. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.d.ts.map +1 -0
  46. package/dest/e2e_storage_proof/fixtures/storage_proof_fixture.js +120 -0
  47. package/dest/e2e_token_contract/token_contract_test.d.ts +4 -2
  48. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  49. package/dest/e2e_token_contract/token_contract_test.js +19 -9
  50. package/dest/fixtures/authwit_proxy.d.ts +15 -0
  51. package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
  52. package/dest/fixtures/authwit_proxy.js +34 -0
  53. package/dest/fixtures/e2e_prover_test.d.ts +7 -6
  54. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  55. package/dest/fixtures/e2e_prover_test.js +38 -50
  56. package/dest/fixtures/elu_monitor.d.ts +21 -0
  57. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  58. package/dest/fixtures/elu_monitor.js +102 -0
  59. package/dest/fixtures/fixtures.d.ts +5 -1
  60. package/dest/fixtures/fixtures.d.ts.map +1 -1
  61. package/dest/fixtures/fixtures.js +6 -0
  62. package/dest/fixtures/get_bb_config.d.ts +1 -1
  63. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  64. package/dest/fixtures/get_bb_config.js +5 -5
  65. package/dest/fixtures/ha_setup.d.ts +71 -0
  66. package/dest/fixtures/ha_setup.d.ts.map +1 -0
  67. package/dest/fixtures/ha_setup.js +116 -0
  68. package/dest/fixtures/index.d.ts +2 -1
  69. package/dest/fixtures/index.d.ts.map +1 -1
  70. package/dest/fixtures/index.js +1 -0
  71. package/dest/fixtures/setup.d.ts +55 -31
  72. package/dest/fixtures/setup.d.ts.map +1 -1
  73. package/dest/fixtures/setup.js +97 -176
  74. package/dest/fixtures/setup_p2p_test.d.ts +18 -11
  75. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  76. package/dest/fixtures/setup_p2p_test.js +43 -32
  77. package/dest/fixtures/token_utils.d.ts +2 -2
  78. package/dest/fixtures/token_utils.d.ts.map +1 -1
  79. package/dest/fixtures/token_utils.js +5 -7
  80. package/dest/legacy-jest-resolver.d.cts +3 -0
  81. package/dest/legacy-jest-resolver.d.cts.map +1 -0
  82. package/dest/shared/cross_chain_test_harness.d.ts +1 -1
  83. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  84. package/dest/shared/cross_chain_test_harness.js +13 -13
  85. package/dest/shared/gas_portal_test_harness.js +2 -2
  86. package/dest/shared/index.d.ts +2 -1
  87. package/dest/shared/index.d.ts.map +1 -1
  88. package/dest/shared/index.js +1 -0
  89. package/dest/shared/jest_setup.js +41 -1
  90. package/dest/shared/mock_state_view.d.ts +86 -0
  91. package/dest/shared/mock_state_view.d.ts.map +1 -0
  92. package/dest/shared/mock_state_view.js +186 -0
  93. package/dest/shared/submit-transactions.d.ts +2 -2
  94. package/dest/shared/submit-transactions.d.ts.map +1 -1
  95. package/dest/shared/submit-transactions.js +1 -1
  96. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  97. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  98. package/dest/shared/uniswap_l1_l2.js +16 -17
  99. package/dest/simulators/lending_simulator.d.ts +1 -1
  100. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  101. package/dest/simulators/lending_simulator.js +4 -4
  102. package/dest/simulators/token_simulator.d.ts +1 -1
  103. package/dest/simulators/token_simulator.d.ts.map +1 -1
  104. package/dest/simulators/token_simulator.js +3 -24
  105. package/dest/spartan/setup_test_wallets.d.ts +12 -3
  106. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  107. package/dest/spartan/setup_test_wallets.js +100 -39
  108. package/dest/spartan/tx_metrics.d.ts +35 -1
  109. package/dest/spartan/tx_metrics.d.ts.map +1 -1
  110. package/dest/spartan/tx_metrics.js +151 -1
  111. package/dest/spartan/utils/bot.d.ts +3 -2
  112. package/dest/spartan/utils/bot.d.ts.map +1 -1
  113. package/dest/spartan/utils/bot.js +2 -1
  114. package/dest/spartan/utils/config.d.ts +10 -1
  115. package/dest/spartan/utils/config.d.ts.map +1 -1
  116. package/dest/spartan/utils/config.js +4 -1
  117. package/dest/spartan/utils/index.d.ts +6 -4
  118. package/dest/spartan/utils/index.d.ts.map +1 -1
  119. package/dest/spartan/utils/index.js +6 -2
  120. package/dest/spartan/utils/k8s.d.ts +31 -1
  121. package/dest/spartan/utils/k8s.d.ts.map +1 -1
  122. package/dest/spartan/utils/k8s.js +124 -0
  123. package/dest/spartan/utils/nodes.d.ts +14 -5
  124. package/dest/spartan/utils/nodes.d.ts.map +1 -1
  125. package/dest/spartan/utils/nodes.js +204 -33
  126. package/dest/spartan/utils/pod_logs.d.ts +25 -0
  127. package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
  128. package/dest/spartan/utils/pod_logs.js +74 -0
  129. package/dest/spartan/utils/scripts.d.ts +18 -4
  130. package/dest/spartan/utils/scripts.d.ts.map +1 -1
  131. package/dest/spartan/utils/scripts.js +19 -4
  132. package/dest/test-wallet/test_wallet.d.ts +84 -0
  133. package/dest/test-wallet/test_wallet.d.ts.map +1 -0
  134. package/dest/test-wallet/test_wallet.js +249 -0
  135. package/dest/test-wallet/utils.d.ts +41 -0
  136. package/dest/test-wallet/utils.d.ts.map +1 -0
  137. package/dest/test-wallet/utils.js +71 -0
  138. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  139. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  140. package/dest/test-wallet/wallet_worker_script.js +48 -0
  141. package/dest/test-wallet/worker_wallet.d.ts +52 -0
  142. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  143. package/dest/test-wallet/worker_wallet.js +151 -0
  144. package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
  145. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  146. package/dest/test-wallet/worker_wallet_schema.js +10 -0
  147. package/package.json +46 -43
  148. package/src/bench/client_flows/client_flows_benchmark.ts +31 -18
  149. package/src/bench/client_flows/config.ts +9 -1
  150. package/src/bench/utils.ts +8 -3
  151. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +31 -21
  152. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +7 -8
  153. package/src/e2e_deploy_contract/deploy_test.ts +3 -3
  154. package/src/e2e_epochs/epochs_test.ts +115 -72
  155. package/src/e2e_fees/bridging_race.notest.ts +1 -1
  156. package/src/e2e_fees/fees_test.ts +21 -29
  157. package/src/e2e_l1_publisher/write_json.ts +1 -6
  158. package/src/e2e_nested_contract/nested_contract_test.ts +7 -5
  159. package/src/e2e_p2p/inactivity_slash_test.ts +7 -7
  160. package/src/e2e_p2p/p2p_network.ts +58 -37
  161. package/src/e2e_p2p/reqresp/utils.ts +256 -0
  162. package/src/e2e_p2p/shared.ts +84 -62
  163. package/src/e2e_storage_proof/fixtures/storage_proof.json +915 -0
  164. package/src/e2e_storage_proof/fixtures/storage_proof_fetcher.ts +190 -0
  165. package/src/e2e_storage_proof/fixtures/storage_proof_fixture.ts +173 -0
  166. package/src/e2e_token_contract/token_contract_test.ts +26 -9
  167. package/src/fixtures/authwit_proxy.ts +54 -0
  168. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  169. package/src/fixtures/e2e_prover_test.ts +47 -56
  170. package/src/fixtures/elu_monitor.ts +126 -0
  171. package/src/fixtures/fixtures.ts +10 -0
  172. package/src/fixtures/get_bb_config.ts +7 -6
  173. package/src/fixtures/ha_setup.ts +186 -0
  174. package/src/fixtures/index.ts +1 -0
  175. package/src/fixtures/setup.ts +132 -239
  176. package/src/fixtures/setup_p2p_test.ts +48 -52
  177. package/src/fixtures/token_utils.ts +3 -3
  178. package/src/guides/up_quick_start.sh +3 -3
  179. package/src/legacy-jest-resolver.cjs +135 -0
  180. package/src/shared/cross_chain_test_harness.ts +13 -9
  181. package/src/shared/gas_portal_test_harness.ts +1 -1
  182. package/src/shared/index.ts +1 -0
  183. package/src/shared/jest_setup.ts +51 -1
  184. package/src/shared/mock_state_view.ts +188 -0
  185. package/src/shared/submit-transactions.ts +3 -2
  186. package/src/shared/uniswap_l1_l2.ts +38 -33
  187. package/src/simulators/lending_simulator.ts +8 -4
  188. package/src/simulators/token_simulator.ts +6 -30
  189. package/src/spartan/setup_test_wallets.ts +141 -32
  190. package/src/spartan/tx_metrics.ts +127 -1
  191. package/src/spartan/utils/bot.ts +4 -1
  192. package/src/spartan/utils/config.ts +3 -0
  193. package/src/spartan/utils/index.ts +10 -1
  194. package/src/spartan/utils/k8s.ts +160 -0
  195. package/src/spartan/utils/nodes.ts +251 -31
  196. package/src/spartan/utils/pod_logs.ts +99 -0
  197. package/src/spartan/utils/scripts.ts +43 -7
  198. package/src/test-wallet/test_wallet.ts +351 -0
  199. package/src/test-wallet/utils.ts +112 -0
  200. package/src/test-wallet/wallet_worker_script.ts +60 -0
  201. package/src/test-wallet/worker_wallet.ts +214 -0
  202. package/src/test-wallet/worker_wallet_schema.ts +13 -0
@@ -1,15 +1,13 @@
1
1
  import { SchnorrAccountContractArtifact } from '@aztec/accounts/schnorr';
2
- import { generateSchnorrAccounts, getInitialTestAccountsData } from '@aztec/accounts/testing';
3
- import { createArchiver } from '@aztec/archiver';
2
+ import { generateSchnorrAccounts } from '@aztec/accounts/testing';
4
3
  import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
5
- import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
4
+ import { NO_FROM } from '@aztec/aztec.js/account';
5
+ import { EthAddress } from '@aztec/aztec.js/addresses';
6
6
  import { BatchCall, getContractClassFromArtifact, waitForProven } from '@aztec/aztec.js/contracts';
7
7
  import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
8
8
  import { Fr } from '@aztec/aztec.js/fields';
9
9
  import { createLogger } from '@aztec/aztec.js/log';
10
- import { createAztecNodeClient, waitForNode } from '@aztec/aztec.js/node';
11
10
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
12
- import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
13
11
  import { SPONSORED_FPC_SALT } from '@aztec/constants';
14
12
  import { isAnvilTestChain } from '@aztec/ethereum/chain';
15
13
  import { createExtendedL1Client } from '@aztec/ethereum/client';
@@ -17,40 +15,38 @@ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
17
15
  import { NULL_KEY } from '@aztec/ethereum/constants';
18
16
  import { deployMulticall3 } from '@aztec/ethereum/contracts';
19
17
  import { deployAztecL1Contracts } from '@aztec/ethereum/deploy-aztec-l1-contracts';
20
- import { DelayedTxUtils, EthCheatCodes, EthCheatCodesWithState, createDelayedL1TxUtilsFromViemWallet, startAnvil } from '@aztec/ethereum/test';
18
+ import { EthCheatCodesWithState, startAnvil } from '@aztec/ethereum/test';
21
19
  import { EpochNumber } from '@aztec/foundation/branded-types';
22
20
  import { SecretValue } from '@aztec/foundation/config';
23
21
  import { randomBytes } from '@aztec/foundation/crypto/random';
24
22
  import { tryRmDir } from '@aztec/foundation/fs';
25
- import { withLogNameSuffix } from '@aztec/foundation/log';
23
+ import { withLoggerBindings } from '@aztec/foundation/log/server';
26
24
  import { retryUntil } from '@aztec/foundation/retry';
27
25
  import { sleep } from '@aztec/foundation/sleep';
28
- import { DateProvider, TestDateProvider } from '@aztec/foundation/timer';
26
+ import { TestDateProvider } from '@aztec/foundation/timer';
29
27
  import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
30
28
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
31
29
  import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
32
30
  import { protocolContractsHash } from '@aztec/protocol-contracts';
33
- import { createProverNode } from '@aztec/prover-node';
34
31
  import { getPXEConfig } from '@aztec/pxe/server';
35
32
  import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
36
33
  import { tryStop } from '@aztec/stdlib/interfaces/server';
37
34
  import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
38
35
  import { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
39
- import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet/server';
36
+ import { deployFundedSchnorrAccounts } from '@aztec/wallets/testing';
40
37
  import { getGenesisValues } from '@aztec/world-state/testing';
41
38
  import fs from 'fs/promises';
42
39
  import { tmpdir } from 'os';
43
40
  import path from 'path';
44
41
  import { generatePrivateKey, mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
45
42
  import { foundry } from 'viem/chains';
43
+ import { TestWallet } from '../test-wallet/test_wallet.js';
46
44
  import { MNEMONIC, TEST_MAX_PENDING_TX_POOL_COUNT, TEST_PEER_CHECK_INTERVAL_MS } from './fixtures.js';
47
45
  import { getACVMConfig } from './get_acvm_config.js';
48
46
  import { getBBConfig } from './get_bb_config.js';
49
47
  import { isMetricsLoggingRequested, setupMetricsLogger } from './logging.js';
50
48
  import { getEndToEndTestTelemetryClient } from './with_telemetry_utils.js';
51
49
  export { startAnvil };
52
- const { AZTEC_NODE_URL = '' } = process.env;
53
- const getAztecUrl = ()=>AZTEC_NODE_URL;
54
50
  let telemetry = undefined;
55
51
  async function getTelemetryClient(partialConfig = {}) {
56
52
  if (!telemetry) {
@@ -86,9 +82,9 @@ export const getPrivateKeyFromIndex = (index)=>{
86
82
  * @param aztecNode - An instance of Aztec Node.
87
83
  * @param opts - Partial configuration for the PXE.
88
84
  * @param logger - The logger to be used.
89
- * @param useLogSuffix - Whether to add a randomly generated suffix to the PXE debug logs.
85
+ * @param actor - Actor label to include in log output (e.g., 'pxe-test').
90
86
  * @returns A test wallet, logger and teardown function.
91
- */ export async function setupPXEAndGetWallet(aztecNode, opts = {}, logger = getLogger(), useLogSuffix = false) {
87
+ */ export async function setupPXEAndGetWallet(aztecNode, opts = {}, logger = getLogger(), actor) {
92
88
  const PXEConfig = {
93
89
  ...getPXEConfig(),
94
90
  ...opts
@@ -102,7 +98,7 @@ export const getPrivateKeyFromIndex = (index)=>{
102
98
  }
103
99
  const teardown = configuredDataDirectory ? ()=>Promise.resolve() : ()=>tryRmDir(PXEConfig.dataDirectory);
104
100
  const wallet = await TestWallet.create(aztecNode, PXEConfig, {
105
- useLogSuffix
101
+ loggerActorLabel: actor
106
102
  });
107
103
  return {
108
104
  wallet,
@@ -110,65 +106,6 @@ export const getPrivateKeyFromIndex = (index)=>{
110
106
  teardown
111
107
  };
112
108
  }
113
- /**
114
- * Function to setup the test against a remote deployment. It is assumed that L1 contract are already deployed
115
- */ async function setupWithRemoteEnvironment(account, config, logger, numberOfAccounts) {
116
- const aztecNodeUrl = getAztecUrl();
117
- logger.verbose(`Creating Aztec Node client to remote host ${aztecNodeUrl}`);
118
- const aztecNode = createAztecNodeClient(aztecNodeUrl);
119
- await waitForNode(aztecNode, logger);
120
- logger.verbose('JSON RPC client connected to Aztec Node');
121
- logger.verbose(`Retrieving contract addresses from ${aztecNodeUrl}`);
122
- const { l1ContractAddresses, rollupVersion } = await aztecNode.getNodeInfo();
123
- const l1Client = createExtendedL1Client(config.l1RpcUrls, account, foundry);
124
- const deployL1ContractsValues = {
125
- l1ContractAddresses,
126
- l1Client,
127
- rollupVersion
128
- };
129
- const ethCheatCodes = new EthCheatCodes(config.l1RpcUrls, new DateProvider());
130
- const wallet = await TestWallet.create(aztecNode);
131
- if (config.walletMinFeePadding !== undefined) {
132
- wallet.setMinFeePadding(config.walletMinFeePadding);
133
- }
134
- const cheatCodes = await CheatCodes.create(config.l1RpcUrls, aztecNode, new DateProvider());
135
- const teardown = ()=>Promise.resolve();
136
- logger.verbose('Populating wallet from already registered accounts...');
137
- const initialFundedAccounts = await getInitialTestAccountsData();
138
- if (initialFundedAccounts.length < numberOfAccounts) {
139
- throw new Error(`Required ${numberOfAccounts} accounts. Found ${initialFundedAccounts.length}.`);
140
- }
141
- const testAccounts = await Promise.all(initialFundedAccounts.slice(0, numberOfAccounts).map(async (account)=>{
142
- const accountManager = await wallet.createSchnorrAccount(account.secret, account.salt, account.signingKey);
143
- return accountManager.address;
144
- }));
145
- return {
146
- anvil: undefined,
147
- aztecNode,
148
- aztecNodeService: undefined,
149
- aztecNodeAdmin: undefined,
150
- sequencer: undefined,
151
- proverNode: undefined,
152
- deployL1ContractsValues,
153
- config,
154
- aztecNodeConfig: config,
155
- initialFundedAccounts,
156
- wallet,
157
- accounts: testAccounts,
158
- logger,
159
- cheatCodes,
160
- ethCheatCodes,
161
- prefilledPublicData: undefined,
162
- mockGossipSubNetwork: undefined,
163
- watcher: undefined,
164
- dateProvider: undefined,
165
- telemetryClient: undefined,
166
- acvmConfig: undefined,
167
- bbConfig: undefined,
168
- directoryToCleanup: undefined,
169
- teardown
170
- };
171
- }
172
109
  /**
173
110
  * Sets up the environment for the end-to-end tests.
174
111
  * @param numberOfAccounts - The number of new accounts to be created once the PXE is initiated.
@@ -178,7 +115,7 @@ export const getPrivateKeyFromIndex = (index)=>{
178
115
  let anvil;
179
116
  try {
180
117
  opts.aztecTargetCommitteeSize ??= 0;
181
- opts.slasherFlavor ??= 'none';
118
+ opts.slasherEnabled ??= false;
182
119
  const config = {
183
120
  ...getConfigEnvVars(),
184
121
  ...opts
@@ -191,7 +128,10 @@ export const getPrivateKeyFromIndex = (index)=>{
191
128
  config.realProofs = !!opts.realProofs;
192
129
  // Only enforce the time table if requested
193
130
  config.enforceTimeTable = !!opts.enforceTimeTable;
131
+ // Enable the tx delayer for tests (default config has it disabled, so we force-enable it here)
132
+ config.enableDelayer = true;
194
133
  config.listenAddress = '127.0.0.1';
134
+ config.minTxPoolAgeMs = opts.minTxPoolAgeMs ?? 0;
195
135
  const logger = getLogger();
196
136
  // Create a temp directory for any services that need it and cleanup later
197
137
  const directoryToCleanup = path.join(tmpdir(), randomBytes(8).toString('hex'));
@@ -201,17 +141,17 @@ export const getPrivateKeyFromIndex = (index)=>{
201
141
  if (!config.dataDirectory) {
202
142
  config.dataDirectory = directoryToCleanup;
203
143
  }
144
+ const dateProvider = new TestDateProvider();
204
145
  if (!config.l1RpcUrls?.length) {
205
146
  if (!isAnvilTestChain(chain.id)) {
206
147
  throw new Error(`No ETHEREUM_HOSTS set but non anvil chain requested`);
207
148
  }
208
- if (AZTEC_NODE_URL) {
209
- 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`);
210
- }
211
149
  const res = await startAnvil({
212
150
  l1BlockTime: opts.ethereumSlotDuration,
213
151
  accounts: opts.anvilAccounts,
214
- port: opts.anvilPort
152
+ port: opts.anvilPort ?? (process.env.ANVIL_PORT ? parseInt(process.env.ANVIL_PORT) : undefined),
153
+ slotsInAnEpoch: opts.anvilSlotsInAnEpoch,
154
+ dateProvider
215
155
  });
216
156
  anvil = res.anvil;
217
157
  config.l1RpcUrls = [
@@ -224,7 +164,6 @@ export const getPrivateKeyFromIndex = (index)=>{
224
164
  logger.info(`Logging metrics to ${filename}`);
225
165
  setupMetricsLogger(filename);
226
166
  }
227
- const dateProvider = new TestDateProvider();
228
167
  const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls, dateProvider);
229
168
  if (opts.stateLoad) {
230
169
  await ethCheatCodes.loadChainState(opts.stateLoad);
@@ -239,8 +178,8 @@ export const getPrivateKeyFromIndex = (index)=>{
239
178
  if (opts.l1PublisherKey && opts.l1PublisherKey.getValue() && opts.l1PublisherKey.getValue() != NULL_KEY) {
240
179
  publisherPrivKeyHex = opts.l1PublisherKey.getValue();
241
180
  publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
242
- } else if (config.publisherPrivateKeys && config.publisherPrivateKeys.length > 0 && config.publisherPrivateKeys[0].getValue() != NULL_KEY) {
243
- publisherPrivKeyHex = config.publisherPrivateKeys[0].getValue();
181
+ } else if (config.sequencerPublisherPrivateKeys && config.sequencerPublisherPrivateKeys.length > 0 && config.sequencerPublisherPrivateKeys[0].getValue() != NULL_KEY) {
182
+ publisherPrivKeyHex = config.sequencerPublisherPrivateKeys[0].getValue();
244
183
  publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
245
184
  } else if (!MNEMONIC) {
246
185
  throw new Error(`Mnemonic not provided and no publisher private key`);
@@ -251,17 +190,13 @@ export const getPrivateKeyFromIndex = (index)=>{
251
190
  const publisherPrivKeyRaw = publisherHdAccount.getHdKey().privateKey;
252
191
  const publisherPrivKey = publisherPrivKeyRaw === null ? null : Buffer.from(publisherPrivKeyRaw);
253
192
  publisherPrivKeyHex = `0x${publisherPrivKey.toString('hex')}`;
254
- config.publisherPrivateKeys = [
193
+ config.sequencerPublisherPrivateKeys = [
255
194
  new SecretValue(publisherPrivKeyHex)
256
195
  ];
257
196
  }
258
197
  if (config.coinbase === undefined) {
259
198
  config.coinbase = EthAddress.fromString(publisherHdAccount.address);
260
199
  }
261
- if (AZTEC_NODE_URL) {
262
- // we are setting up against a remote environment, l1 contracts are assumed to already be deployed
263
- return await setupWithRemoteEnvironment(publisherHdAccount, config, logger, numberOfAccounts);
264
- }
265
200
  // Determine which addresses to fund in genesis
266
201
  const initialFundedAccounts = opts.initialFundedAccounts ?? await generateSchnorrAccounts(opts.numberOfInitialFundedAccounts ?? Math.max(numberOfAccounts, 10));
267
202
  const addressesToFund = initialFundedAccounts.map((a)=>a.address);
@@ -270,7 +205,8 @@ export const getPrivateKeyFromIndex = (index)=>{
270
205
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
271
206
  addressesToFund.push(sponsoredFPCAddress);
272
207
  }
273
- const { genesisArchiveRoot, prefilledPublicData, fundingNeeded } = await getGenesisValues(addressesToFund, opts.initialAccountFeeJuice, opts.genesisPublicData);
208
+ const genesisTimestamp = BigInt(Math.floor(Date.now() / 1000));
209
+ const { genesisArchiveRoot, genesis, fundingNeeded } = await getGenesisValues(addressesToFund, opts.initialAccountFeeJuice, opts.genesisPublicData, genesisTimestamp);
274
210
  const wasAutomining = await ethCheatCodes.isAutoMining();
275
211
  const enableAutomine = opts.automineL1Setup && !wasAutomining && isAnvilTestChain(chain.id);
276
212
  if (enableAutomine) {
@@ -300,7 +236,12 @@ export const getPrivateKeyFromIndex = (index)=>{
300
236
  if (enableAutomine) {
301
237
  await ethCheatCodes.setAutomine(false);
302
238
  await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
303
- dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
239
+ }
240
+ // In compose mode (no local anvil), sync dateProvider to L1 time since it may have drifted
241
+ // ahead of system time due to the local-network watcher warping time forward on each filled slot.
242
+ // When running with a local anvil, the dateProvider is kept in sync via the stdout listener.
243
+ if (!anvil) {
244
+ dateProvider.setTime(await ethCheatCodes.lastBlockTimestamp() * 1000);
304
245
  }
305
246
  if (opts.l2StartTime) {
306
247
  await ethCheatCodes.warp(opts.l2StartTime, {
@@ -328,7 +269,7 @@ export const getPrivateKeyFromIndex = (index)=>{
328
269
  let mockGossipSubNetwork;
329
270
  let p2pClientDeps = undefined;
330
271
  if (opts.mockGossipSubNetwork) {
331
- mockGossipSubNetwork = new MockGossipSubNetwork();
272
+ mockGossipSubNetwork = new MockGossipSubNetwork(opts.mockGossipSubNetworkLatency);
332
273
  p2pClientDeps = {
333
274
  p2pServiceFactory: getMockPubSubP2PServiceFactory(mockGossipSubNetwork)
334
275
  };
@@ -355,32 +296,41 @@ export const getPrivateKeyFromIndex = (index)=>{
355
296
  ]);
356
297
  }
357
298
  }
358
- const aztecNodeService = await AztecNodeService.createAndSync(config, {
359
- dateProvider,
360
- telemetry: telemetryClient,
361
- p2pClientDeps,
362
- logger: createLogger('node:MAIN-aztec-node')
363
- }, {
364
- prefilledPublicData
365
- });
299
+ const aztecNodeService = await withLoggerBindings({
300
+ actor: 'node-0'
301
+ }, ()=>AztecNodeService.createAndSync(config, {
302
+ dateProvider,
303
+ telemetry: telemetryClient,
304
+ p2pClientDeps
305
+ }, {
306
+ genesis
307
+ }));
366
308
  const sequencerClient = aztecNodeService.getSequencer();
367
- if (sequencerClient) {
368
- const publisher = sequencerClient.sequencer.publisher;
369
- publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, config.ethereumSlotDuration, l1Client);
370
- }
371
309
  let proverNode = undefined;
372
310
  if (opts.startProverNode) {
373
311
  logger.verbose('Creating and syncing a simulated prover node...');
374
312
  const proverNodePrivateKey = getPrivateKeyFromIndex(2);
375
313
  const proverNodePrivateKeyHex = `0x${proverNodePrivateKey.toString('hex')}`;
376
314
  const proverNodeDataDirectory = path.join(directoryToCleanup, randomBytes(8).toString('hex'));
377
- const proverNodeConfig = {
378
- ...config.proverNodeConfig,
379
- dataDirectory: proverNodeDataDirectory,
380
- p2pEnabled: false
315
+ const p2pClientDeps = {
316
+ p2pServiceFactory: mockGossipSubNetwork && getMockPubSubP2PServiceFactory(mockGossipSubNetwork),
317
+ rpcTxProviders: [
318
+ aztecNodeService
319
+ ]
381
320
  };
382
- proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, config, proverNodeConfig, aztecNodeService, prefilledPublicData);
321
+ ({ proverNode } = await createAndSyncProverNode(proverNodePrivateKeyHex, config, {
322
+ ...config.proverNodeConfig,
323
+ dataDirectory: proverNodeDataDirectory
324
+ }, {
325
+ dateProvider,
326
+ p2pClientDeps,
327
+ telemetry: telemetryClient
328
+ }, {
329
+ genesis
330
+ }));
383
331
  }
332
+ const sequencerDelayer = sequencerClient?.getDelayer();
333
+ const proverDelayer = proverNode?.getProverNode()?.getDelayer();
384
334
  logger.verbose('Creating a pxe...');
385
335
  const pxeConfig = {
386
336
  ...getPXEConfig(),
@@ -389,7 +339,9 @@ export const getPrivateKeyFromIndex = (index)=>{
389
339
  pxeConfig.dataDirectory = path.join(directoryToCleanup, randomBytes(8).toString('hex'));
390
340
  // For tests we only want proving enabled if specifically requested
391
341
  pxeConfig.proverEnabled = !!pxeOpts.proverEnabled;
392
- const wallet = await TestWallet.create(aztecNodeService, pxeConfig);
342
+ const wallet = await TestWallet.create(aztecNodeService, pxeConfig, {
343
+ loggerActorLabel: 'pxe-0'
344
+ });
393
345
  if (opts.walletMinFeePadding !== undefined) {
394
346
  wallet.setMinFeePadding(opts.walletMinFeePadding);
395
347
  }
@@ -440,7 +392,7 @@ export const getPrivateKeyFromIndex = (index)=>{
440
392
  logger.error(`Error during e2e test teardown`, err);
441
393
  } finally{
442
394
  try {
443
- await telemetryClient?.stop();
395
+ await telemetryClient.stop();
444
396
  } catch (err) {
445
397
  logger.error(`Error during telemetry client stop`, err);
446
398
  }
@@ -460,8 +412,10 @@ export const getPrivateKeyFromIndex = (index)=>{
460
412
  initialFundedAccounts,
461
413
  logger,
462
414
  mockGossipSubNetwork,
463
- prefilledPublicData,
415
+ genesis,
464
416
  proverNode,
417
+ sequencerDelayer,
418
+ proverDelayer,
465
419
  sequencer: sequencerClient,
466
420
  teardown,
467
421
  telemetryClient,
@@ -522,75 +476,41 @@ export async function waitForProvenChain(node, targetBlock, timeoutSec = 60, int
522
476
  targetBlock ??= await node.getBlockNumber();
523
477
  await retryUntil(async ()=>await node.getProvenBlockNumber() >= targetBlock, 'proven chain status', timeoutSec, intervalSec);
524
478
  }
525
- export function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, proverNodeConfig, aztecNode, prefilledPublicData = [], proverNodeDeps = {}) {
526
- return withLogNameSuffix('prover-node', async ()=>{
527
- const aztecNodeTxProvider = aztecNode && {
528
- getTxByHash: aztecNode.getTxByHash.bind(aztecNode),
529
- getTxsByHash: aztecNode.getTxsByHash.bind(aztecNode),
530
- stop: ()=>Promise.resolve()
531
- };
532
- const blobClient = await createBlobClientWithFileStores(aztecNodeConfig, createLogger('blob-client:prover-node'));
533
- const archiverConfig = {
534
- ...aztecNodeConfig,
535
- dataDirectory: proverNodeConfig.dataDirectory
536
- };
537
- const archiver = await createArchiver(archiverConfig, {
538
- blobClient,
539
- dateProvider: proverNodeDeps.dateProvider
540
- }, {
541
- blockUntilSync: true
542
- });
543
- const proverConfig = {
544
- ...aztecNodeConfig,
545
- txCollectionNodeRpcUrls: [],
546
- realProofs: false,
547
- proverAgentCount: 2,
548
- publisherPrivateKeys: [
479
+ /**
480
+ * Creates an AztecNodeService with the prover node enabled as a subsystem.
481
+ * Returns both the aztec node service (for lifecycle management) and the prover node (for test internals access).
482
+ */ export function createAndSyncProverNode(proverNodePrivateKey, baseConfig, configOverrides, deps, options) {
483
+ return withLoggerBindings({
484
+ actor: 'prover-0'
485
+ }, async ()=>{
486
+ const proverNode = await AztecNodeService.createAndSync({
487
+ ...baseConfig,
488
+ ...configOverrides,
489
+ p2pPort: 0,
490
+ enableProverNode: true,
491
+ disableValidator: true,
492
+ proverPublisherPrivateKeys: [
549
493
  new SecretValue(proverNodePrivateKey)
550
- ],
551
- proverNodeMaxPendingJobs: 10,
552
- proverNodeMaxParallelBlocksPerEpoch: 32,
553
- proverNodePollingIntervalMs: 200,
554
- txGatheringIntervalMs: 1000,
555
- txGatheringBatchSize: 10,
556
- txGatheringMaxParallelRequestsPerNode: 10,
557
- txGatheringTimeoutMs: 24_000,
558
- proverNodeFailedEpochStore: undefined,
559
- proverId: EthAddress.fromNumber(1),
560
- proverNodeEpochProvingDelayMs: undefined,
561
- ...proverNodeConfig
562
- };
563
- const l1TxUtils = createDelayedL1TxUtils(aztecNodeConfig, proverNodePrivateKey, 'prover-node', proverNodeDeps.dateProvider);
564
- const proverNode = await createProverNode(proverConfig, {
565
- ...proverNodeDeps,
566
- aztecNodeTxProvider,
567
- archiver: archiver,
568
- l1TxUtils
569
- }, {
570
- prefilledPublicData
571
- });
572
- getLogger().info(`Created and synced prover node`, {
573
- publisherAddress: l1TxUtils.client.account.address
494
+ ]
495
+ }, deps, {
496
+ genesis: options.genesis,
497
+ dontStartProverNode: options.dontStart
574
498
  });
575
- if (!proverNodeConfig.dontStart) {
576
- await proverNode.start();
499
+ if (!proverNode.getProverNode()) {
500
+ throw new Error('Prover node subsystem was not created despite enableProverNode being set');
577
501
  }
578
- return proverNode;
502
+ getLogger().info(`Created and synced prover node`);
503
+ return {
504
+ proverNode
505
+ };
579
506
  });
580
507
  }
581
- function createDelayedL1TxUtils(aztecNodeConfig, privateKey, logName, dateProvider) {
582
- const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, privateKey, foundry);
583
- const log = createLogger(logName);
584
- const l1TxUtils = createDelayedL1TxUtilsFromViemWallet(l1Client, log, dateProvider, aztecNodeConfig);
585
- l1TxUtils.enableDelayer(aztecNodeConfig.ethereumSlotDuration);
586
- return l1TxUtils;
587
- }
588
- export function getBalancesFn(symbol, method, from, logger) {
508
+ export function getBalancesFn(symbol, method, logger) {
589
509
  const balances = async (...addressLikes)=>{
590
510
  const addresses = addressLikes.map((addressLike)=>'address' in addressLike ? addressLike.address : addressLike);
591
- const b = await Promise.all(addresses.map((address)=>method(address).simulate({
592
- from
593
- })));
511
+ const b = await Promise.all(addresses.map(async (address)=>(await method(address).simulate({
512
+ from: address
513
+ })).result));
594
514
  const debugString = `${symbol} balances: ${addresses.map((address, i)=>`${address}: ${b[i]}`).join(', ')}`;
595
515
  logger.verbose(debugString);
596
516
  return b;
@@ -634,7 +554,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
634
554
  /**
635
555
  * Helper function to deploy accounts.
636
556
  * Returns deployed account data that can be used by tests.
637
- */ export const deployAccounts = (numberOfAccounts, logger)=>async ({ wallet, initialFundedAccounts })=>{
557
+ */ export const deployAccounts = (numberOfAccounts, logger, deployOptions)=>async ({ wallet, initialFundedAccounts })=>{
638
558
  if (initialFundedAccounts.length < numberOfAccounts) {
639
559
  throw new Error(`Cannot deploy more than ${initialFundedAccounts.length} initial accounts.`);
640
560
  }
@@ -645,8 +565,9 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
645
565
  const accountManager = await wallet.createSchnorrAccount(deployedAccounts[i].secret, deployedAccounts[i].salt, deployedAccounts[i].signingKey);
646
566
  const deployMethod = await accountManager.getDeployMethod();
647
567
  await deployMethod.send({
648
- from: AztecAddress.ZERO,
649
- skipClassPublication: i !== 0
568
+ from: NO_FROM,
569
+ skipClassPublication: i !== 0,
570
+ ...deployOptions
650
571
  });
651
572
  }
652
573
  return {
@@ -667,7 +588,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
667
588
  ...instances.map((instance)=>publishInstance(wallet, instance))
668
589
  ]);
669
590
  const batch = new BatchCall(wallet, calls);
670
- const txReceipt = await batch.send({
591
+ const { receipt: txReceipt } = await batch.send({
671
592
  from: accountsToDeploy[0]
672
593
  });
673
594
  if (waitUntilProven) {
@@ -3,21 +3,28 @@
3
3
  */
4
4
  import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
5
5
  import type { DateProvider } from '@aztec/foundation/timer';
6
- import type { ProverNodeDeps } from '@aztec/prover-node';
7
- import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
8
- import { AsyncLocalStorage } from 'node:async_hooks';
6
+ import type { GenesisData } from '@aztec/stdlib/world-state';
9
7
  export declare const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
10
8
  export declare function generatePrivateKeys(startIndex: number, numberOfKeys: number): `0x${string}`[];
11
9
  export declare function createNodes(config: AztecNodeConfig & {
12
10
  dontStartSequencer?: boolean;
13
- }, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, indexOffset?: number, validatorsPerNode?: number): Promise<AztecNodeService[]>;
14
- /** Creates a P2P enabled instance of Aztec Node Service with a validator */
15
- export declare function createNode(config: AztecNodeConfig & {
11
+ }, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number, indexOffset?: number, validatorsPerNode?: number): Promise<AztecNodeService[]>;
12
+ /** Extended config type for createNode with test-specific overrides. */
13
+ export type CreateNodeConfig = AztecNodeConfig & {
14
+ /** Whether to skip starting the sequencer. */
16
15
  dontStartSequencer?: boolean;
17
- }, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number | number[], prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
16
+ /** Override the private key (instead of deriving from addressIndex). */
17
+ validatorPrivateKey?: `0x${string}`;
18
+ };
19
+ /** Creates a P2P enabled instance of Aztec Node Service with a validator. */
20
+ export declare function createNode(config: CreateNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number | number[], genesis?: GenesisData, dataDirectory?: string, metricsPort?: number): Promise<AztecNodeService>;
18
21
  /** Creates a P2P enabled instance of Aztec Node Service without a validator */
19
- export declare function createNonValidatorNode(baseConfig: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
20
- export declare function createProverNode(config: AztecNodeConfig, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, proverNodeDeps: ProverNodeDeps & Required<Pick<ProverNodeDeps, 'dateProvider'>>, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<import("@aztec/prover-node").ProverNode>;
22
+ export declare function createNonValidatorNode(baseConfig: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number): Promise<AztecNodeService>;
23
+ export declare function createProverNode(config: AztecNodeConfig, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, deps: {
24
+ dateProvider: DateProvider;
25
+ }, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number): Promise<{
26
+ proverNode: AztecNodeService;
27
+ }>;
21
28
  export declare function createP2PConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
22
- export declare function createValidatorConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, addressIndex?: number | number[], dataDirectory?: string): Promise<AztecNodeConfig>;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfcDJwX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9zZXR1cF9wMnBfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSzNFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFvQixjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBU3JELGVBQU8sTUFBTSxpQ0FBaUMsSUFBSSxDQUFDO0FBRW5ELHdCQUFnQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEdBQUcsS0FBSyxNQUFNLEVBQUUsRUFBRSxDQU83RjtBQUVELHdCQUFzQixXQUFXLENBQy9CLE1BQU0sRUFBRSxlQUFlLEdBQUc7SUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFFLEVBQzFELFlBQVksRUFBRSxZQUFZLEVBQzFCLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsbUJBQW1CLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxFQUMxQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFDcEIsV0FBVyxTQUFJLEVBQ2YsaUJBQWlCLFNBQUksR0FDcEIsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0F5QzdCO0FBRUQsNEVBQTRFO0FBQzVFLHdCQUFzQixVQUFVLENBQzlCLE1BQU0sRUFBRSxlQUFlLEdBQUc7SUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFFLEVBQzFELFlBQVksRUFBRSxZQUFZLEVBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2pDLFlBQVksRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLEVBQy9CLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsRUFDMUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLEVBQ3BCLGVBQWUsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyw2QkFZNUM7QUFFRCwrRUFBK0U7QUFDL0Usd0JBQXNCLHNCQUFzQixDQUMxQyxVQUFVLEVBQUUsZUFBZSxFQUMzQixZQUFZLEVBQUUsWUFBWSxFQUMxQixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNqQyxtQkFBbUIsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLEVBQzFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFDdEIsV0FBVyxDQUFDLEVBQUUsTUFBTSxFQUNwQixlQUFlLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsNkJBYzVDO0FBRUQsd0JBQXNCLGdCQUFnQixDQUNwQyxNQUFNLEVBQUUsZUFBZSxFQUN2QixPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUNqQyxZQUFZLEVBQUUsTUFBTSxFQUNwQixjQUFjLEVBQUUsY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEVBQy9FLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsRUFDMUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLEVBQ3BCLGVBQWUsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxvREF3QjVDO0FBRUQsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQ3pCLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFDYixhQUFhLENBQUMsRUFBRSxNQUFNLDRCQWdCdkI7QUFFRCx3QkFBc0IscUJBQXFCLENBQ3pDLE1BQU0sRUFBRSxlQUFlLEVBQ3ZCLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxFQUN6QixJQUFJLENBQUMsRUFBRSxNQUFNLEVBQ2IsWUFBWSxHQUFFLE1BQU0sR0FBRyxNQUFNLEVBQU0sRUFDbkMsYUFBYSxDQUFDLEVBQUUsTUFBTSw0QkFtQnZCIn0=
29
+ export declare function createValidatorConfig(config: CreateNodeConfig, bootstrapNodeEnr?: string, port?: number, addressIndex?: number | number[], dataDirectory?: string): Promise<AztecNodeConfig>;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfcDJwX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9zZXR1cF9wMnBfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSzNFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBVzdELGVBQU8sTUFBTSxpQ0FBaUMsSUFBSSxDQUFDO0FBT25ELHdCQUFnQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEdBQUcsS0FBSyxNQUFNLEVBQUUsRUFBRSxDQU83RjtBQUVELHdCQUFzQixXQUFXLENBQy9CLE1BQU0sRUFBRSxlQUFlLEdBQUc7SUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFFLEVBQzFELFlBQVksRUFBRSxZQUFZLEVBQzFCLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsT0FBTyxDQUFDLEVBQUUsV0FBVyxFQUNyQixhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFDcEIsV0FBVyxTQUFJLEVBQ2YsaUJBQWlCLFNBQUksR0FDcEIsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FtQzdCO0FBRUQsd0VBQXdFO0FBQ3hFLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLEdBQUc7SUFDL0MsOENBQThDO0lBQzlDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQzdCLHdFQUF3RTtJQUN4RSxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Q0FDckMsQ0FBQztBQUVGLDZFQUE2RTtBQUM3RSx3QkFBc0IsVUFBVSxDQUM5QixNQUFNLEVBQUUsZ0JBQWdCLEVBQ3hCLFlBQVksRUFBRSxZQUFZLEVBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2pDLFlBQVksRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLEVBQy9CLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFDckIsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLDZCQVlyQjtBQUVELCtFQUErRTtBQUMvRSx3QkFBc0Isc0JBQXNCLENBQzFDLFVBQVUsRUFBRSxlQUFlLEVBQzNCLFlBQVksRUFBRSxZQUFZLEVBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2pDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFDckIsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLDZCQWNyQjtBQUVELHdCQUFzQixnQkFBZ0IsQ0FDcEMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDakMsWUFBWSxFQUFFLE1BQU0sRUFDcEIsSUFBSSxFQUFFO0lBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQTtDQUFFLEVBQ3BDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsRUFDckIsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLEdBQ25CLE9BQU8sQ0FBQztJQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQTtDQUFFLENBQUMsQ0FnQjNDO0FBRUQsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQ3pCLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFDYixhQUFhLENBQUMsRUFBRSxNQUFNLDRCQWdCdkI7QUFFRCx3QkFBc0IscUJBQXFCLENBQ3pDLE1BQU0sRUFBRSxnQkFBZ0IsRUFDeEIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQ3pCLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFDYixZQUFZLEdBQUUsTUFBTSxHQUFHLE1BQU0sRUFBTSxFQUNuQyxhQUFhLENBQUMsRUFBRSxNQUFNLDRCQW9CdkIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,EAAE,CAO7F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,EACf,iBAAiB,SAAI,GACpB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyC7B;AAED,4EAA4E;AAC5E,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,EAC/B,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAY5C;AAED,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAc5C;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,EAC/E,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,oDAwB5C;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,4BAgBvB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAM,GAAG,MAAM,EAAM,EACnC,aAAa,CAAC,EAAE,MAAM,4BAmBvB"}
1
+ {"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAK3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAW7D,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAOnD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,EAAE,CAO7F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,EACf,iBAAiB,SAAI,GACpB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAmC7B;AAED,wEAAwE;AACxE,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,6EAA6E;AAC7E,wBAAsB,UAAU,CAC9B,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,EAC/B,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,6BAYrB;AAED,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,eAAe,EAC3B,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,6BAcrB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;IAAE,YAAY,EAAE,YAAY,CAAA;CAAE,EACpC,OAAO,CAAC,EAAE,WAAW,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAgB3C;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,4BAgBvB;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAM,GAAG,MAAM,EAAM,EACnC,aAAa,CAAC,EAAE,MAAM,4BAoBvB"}