@aztec/end-to-end 0.0.1-commit.1bb068fb5 → 0.0.1-commit.1dcfe2301

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 (156) hide show
  1. package/README.md +27 -0
  2. package/dest/bench/client_flows/client_flows_benchmark.d.ts +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  4. package/dest/bench/client_flows/client_flows_benchmark.js +19 -26
  5. package/dest/bench/utils.d.ts +1 -1
  6. package/dest/bench/utils.d.ts.map +1 -1
  7. package/dest/bench/utils.js +6 -3
  8. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -2
  9. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  10. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +15 -15
  11. package/dest/e2e_epochs/epochs_test.d.ts +11 -7
  12. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  13. package/dest/e2e_epochs/epochs_test.js +60 -38
  14. package/dest/e2e_fees/fees_test.d.ts +1 -1
  15. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  16. package/dest/e2e_fees/fees_test.js +14 -7
  17. package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
  18. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  19. package/dest/e2e_nested_contract/nested_contract_test.js +4 -6
  20. package/dest/e2e_p2p/inactivity_slash_test.js +3 -3
  21. package/dest/e2e_p2p/p2p_network.d.ts +8 -9
  22. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  23. package/dest/e2e_p2p/p2p_network.js +38 -20
  24. package/dest/e2e_p2p/reqresp/utils.d.ts +3 -3
  25. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -1
  26. package/dest/e2e_p2p/reqresp/utils.js +46 -9
  27. package/dest/e2e_p2p/shared.d.ts +25 -7
  28. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  29. package/dest/e2e_p2p/shared.js +49 -44
  30. package/dest/e2e_token_contract/token_contract_test.d.ts +1 -1
  31. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  32. package/dest/e2e_token_contract/token_contract_test.js +11 -11
  33. package/dest/fixtures/authwit_proxy.d.ts +3 -3
  34. package/dest/fixtures/authwit_proxy.d.ts.map +1 -1
  35. package/dest/fixtures/authwit_proxy.js +4 -0
  36. package/dest/fixtures/e2e_prover_test.d.ts +6 -5
  37. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  38. package/dest/fixtures/e2e_prover_test.js +37 -49
  39. package/dest/fixtures/elu_monitor.d.ts +21 -0
  40. package/dest/fixtures/elu_monitor.d.ts.map +1 -0
  41. package/dest/fixtures/elu_monitor.js +102 -0
  42. package/dest/fixtures/fixtures.d.ts +5 -1
  43. package/dest/fixtures/fixtures.d.ts.map +1 -1
  44. package/dest/fixtures/fixtures.js +6 -0
  45. package/dest/fixtures/get_bb_config.d.ts +1 -1
  46. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  47. package/dest/fixtures/get_bb_config.js +5 -5
  48. package/dest/fixtures/setup.d.ts +39 -15
  49. package/dest/fixtures/setup.d.ts.map +1 -1
  50. package/dest/fixtures/setup.js +71 -96
  51. package/dest/fixtures/setup_p2p_test.d.ts +10 -7
  52. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  53. package/dest/fixtures/setup_p2p_test.js +18 -15
  54. package/dest/fixtures/token_utils.d.ts +2 -2
  55. package/dest/fixtures/token_utils.d.ts.map +1 -1
  56. package/dest/fixtures/token_utils.js +5 -7
  57. package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
  58. package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
  59. package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
  60. package/dest/forward-compatibility/wallet_service.d.ts +3 -0
  61. package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
  62. package/dest/forward-compatibility/wallet_service.js +109 -0
  63. package/dest/legacy-jest-resolver.d.cts +3 -0
  64. package/dest/legacy-jest-resolver.d.cts.map +1 -0
  65. package/dest/shared/cross_chain_test_harness.d.ts +1 -1
  66. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  67. package/dest/shared/cross_chain_test_harness.js +13 -13
  68. package/dest/shared/gas_portal_test_harness.js +2 -2
  69. package/dest/shared/jest_setup.js +41 -1
  70. package/dest/shared/submit-transactions.js +1 -1
  71. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  72. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  73. package/dest/shared/uniswap_l1_l2.js +14 -17
  74. package/dest/simulators/lending_simulator.d.ts +1 -1
  75. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  76. package/dest/simulators/lending_simulator.js +4 -4
  77. package/dest/simulators/token_simulator.d.ts +1 -1
  78. package/dest/simulators/token_simulator.d.ts.map +1 -1
  79. package/dest/simulators/token_simulator.js +2 -2
  80. package/dest/spartan/setup_test_wallets.d.ts +11 -2
  81. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  82. package/dest/spartan/setup_test_wallets.js +97 -38
  83. package/dest/spartan/tx_metrics.js +1 -1
  84. package/dest/spartan/utils/bot.d.ts +3 -2
  85. package/dest/spartan/utils/bot.d.ts.map +1 -1
  86. package/dest/spartan/utils/bot.js +2 -1
  87. package/dest/spartan/utils/config.d.ts +7 -1
  88. package/dest/spartan/utils/config.d.ts.map +1 -1
  89. package/dest/spartan/utils/config.js +3 -1
  90. package/dest/spartan/utils/index.d.ts +4 -2
  91. package/dest/spartan/utils/index.d.ts.map +1 -1
  92. package/dest/spartan/utils/index.js +5 -1
  93. package/dest/spartan/utils/k8s.d.ts +3 -1
  94. package/dest/spartan/utils/k8s.d.ts.map +1 -1
  95. package/dest/spartan/utils/k8s.js +6 -0
  96. package/dest/spartan/utils/nodes.d.ts +4 -5
  97. package/dest/spartan/utils/nodes.d.ts.map +1 -1
  98. package/dest/spartan/utils/nodes.js +9 -9
  99. package/dest/spartan/utils/pod_logs.d.ts +25 -0
  100. package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
  101. package/dest/spartan/utils/pod_logs.js +74 -0
  102. package/dest/test-wallet/test_wallet.d.ts +24 -23
  103. package/dest/test-wallet/test_wallet.d.ts.map +1 -1
  104. package/dest/test-wallet/test_wallet.js +116 -81
  105. package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
  106. package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
  107. package/dest/test-wallet/wallet_worker_script.js +48 -0
  108. package/dest/test-wallet/worker_wallet.d.ts +52 -0
  109. package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
  110. package/dest/test-wallet/worker_wallet.js +151 -0
  111. package/dest/test-wallet/worker_wallet_schema.d.ts +279 -0
  112. package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
  113. package/dest/test-wallet/worker_wallet_schema.js +10 -0
  114. package/package.json +43 -44
  115. package/src/bench/client_flows/client_flows_benchmark.ts +27 -10
  116. package/src/bench/utils.ts +7 -2
  117. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +21 -20
  118. package/src/e2e_epochs/epochs_test.ts +78 -66
  119. package/src/e2e_fees/fees_test.ts +14 -7
  120. package/src/e2e_nested_contract/nested_contract_test.ts +6 -4
  121. package/src/e2e_p2p/inactivity_slash_test.ts +3 -3
  122. package/src/e2e_p2p/p2p_network.ts +53 -32
  123. package/src/e2e_p2p/reqresp/utils.ts +58 -9
  124. package/src/e2e_p2p/shared.ts +71 -59
  125. package/src/e2e_token_contract/token_contract_test.ts +16 -8
  126. package/src/fixtures/authwit_proxy.ts +4 -0
  127. package/src/fixtures/dumps/epoch_proof_result.json +1 -1
  128. package/src/fixtures/e2e_prover_test.ts +43 -52
  129. package/src/fixtures/elu_monitor.ts +126 -0
  130. package/src/fixtures/fixtures.ts +10 -0
  131. package/src/fixtures/get_bb_config.ts +7 -6
  132. package/src/fixtures/setup.ts +103 -132
  133. package/src/fixtures/setup_p2p_test.ts +17 -25
  134. package/src/fixtures/token_utils.ts +3 -3
  135. package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
  136. package/src/forward-compatibility/wallet_service.ts +104 -0
  137. package/src/legacy-jest-resolver.cjs +135 -0
  138. package/src/shared/cross_chain_test_harness.ts +13 -9
  139. package/src/shared/gas_portal_test_harness.ts +1 -1
  140. package/src/shared/jest_setup.ts +51 -1
  141. package/src/shared/submit-transactions.ts +1 -1
  142. package/src/shared/uniswap_l1_l2.ts +35 -28
  143. package/src/simulators/lending_simulator.ts +8 -4
  144. package/src/simulators/token_simulator.ts +6 -2
  145. package/src/spartan/setup_test_wallets.ts +138 -31
  146. package/src/spartan/tx_metrics.ts +1 -1
  147. package/src/spartan/utils/bot.ts +3 -0
  148. package/src/spartan/utils/config.ts +2 -0
  149. package/src/spartan/utils/index.ts +7 -0
  150. package/src/spartan/utils/k8s.ts +8 -0
  151. package/src/spartan/utils/nodes.ts +15 -10
  152. package/src/spartan/utils/pod_logs.ts +99 -0
  153. package/src/test-wallet/test_wallet.ts +145 -100
  154. package/src/test-wallet/wallet_worker_script.ts +60 -0
  155. package/src/test-wallet/worker_wallet.ts +214 -0
  156. package/src/test-wallet/worker_wallet_schema.ts +13 -0
@@ -1,14 +1,13 @@
1
1
  import { SchnorrAccountContractArtifact } from '@aztec/accounts/schnorr';
2
2
  import { generateSchnorrAccounts } from '@aztec/accounts/testing';
3
- import { createArchiver } from '@aztec/archiver';
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
10
  import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
11
- import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
12
11
  import { SPONSORED_FPC_SALT } from '@aztec/constants';
13
12
  import { isAnvilTestChain } from '@aztec/ethereum/chain';
14
13
  import { createExtendedL1Client } from '@aztec/ethereum/client';
@@ -16,7 +15,7 @@ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
16
15
  import { NULL_KEY } from '@aztec/ethereum/constants';
17
16
  import { deployMulticall3 } from '@aztec/ethereum/contracts';
18
17
  import { deployAztecL1Contracts } from '@aztec/ethereum/deploy-aztec-l1-contracts';
19
- import { DelayedTxUtils, EthCheatCodesWithState, createDelayedL1TxUtilsFromViemWallet, startAnvil } from '@aztec/ethereum/test';
18
+ import { EthCheatCodesWithState, startAnvil } from '@aztec/ethereum/test';
20
19
  import { EpochNumber } from '@aztec/foundation/branded-types';
21
20
  import { SecretValue } from '@aztec/foundation/config';
22
21
  import { randomBytes } from '@aztec/foundation/crypto/random';
@@ -29,7 +28,6 @@ import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
29
28
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
30
29
  import { MockGossipSubNetwork, getMockPubSubP2PServiceFactory } from '@aztec/p2p/test-helpers';
31
30
  import { protocolContractsHash } from '@aztec/protocol-contracts';
32
- import { createProverNode } from '@aztec/prover-node';
33
31
  import { getPXEConfig } from '@aztec/pxe/server';
34
32
  import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
35
33
  import { tryStop } from '@aztec/stdlib/interfaces/server';
@@ -117,7 +115,7 @@ export const getPrivateKeyFromIndex = (index)=>{
117
115
  let anvil;
118
116
  try {
119
117
  opts.aztecTargetCommitteeSize ??= 0;
120
- opts.slasherFlavor ??= 'none';
118
+ opts.slasherEnabled ??= false;
121
119
  const config = {
122
120
  ...getConfigEnvVars(),
123
121
  ...opts
@@ -130,6 +128,8 @@ export const getPrivateKeyFromIndex = (index)=>{
130
128
  config.realProofs = !!opts.realProofs;
131
129
  // Only enforce the time table if requested
132
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;
133
133
  config.listenAddress = '127.0.0.1';
134
134
  config.minTxPoolAgeMs = opts.minTxPoolAgeMs ?? 0;
135
135
  const logger = getLogger();
@@ -141,6 +141,7 @@ export const getPrivateKeyFromIndex = (index)=>{
141
141
  if (!config.dataDirectory) {
142
142
  config.dataDirectory = directoryToCleanup;
143
143
  }
144
+ const dateProvider = new TestDateProvider();
144
145
  if (!config.l1RpcUrls?.length) {
145
146
  if (!isAnvilTestChain(chain.id)) {
146
147
  throw new Error(`No ETHEREUM_HOSTS set but non anvil chain requested`);
@@ -148,7 +149,9 @@ export const getPrivateKeyFromIndex = (index)=>{
148
149
  const res = await startAnvil({
149
150
  l1BlockTime: opts.ethereumSlotDuration,
150
151
  accounts: opts.anvilAccounts,
151
- port: opts.anvilPort ?? (process.env.ANVIL_PORT ? parseInt(process.env.ANVIL_PORT) : undefined)
152
+ port: opts.anvilPort ?? (process.env.ANVIL_PORT ? parseInt(process.env.ANVIL_PORT) : undefined),
153
+ slotsInAnEpoch: opts.anvilSlotsInAnEpoch,
154
+ dateProvider
152
155
  });
153
156
  anvil = res.anvil;
154
157
  config.l1RpcUrls = [
@@ -161,7 +164,6 @@ export const getPrivateKeyFromIndex = (index)=>{
161
164
  logger.info(`Logging metrics to ${filename}`);
162
165
  setupMetricsLogger(filename);
163
166
  }
164
- const dateProvider = new TestDateProvider();
165
167
  const ethCheatCodes = new EthCheatCodesWithState(config.l1RpcUrls, dateProvider);
166
168
  if (opts.stateLoad) {
167
169
  await ethCheatCodes.loadChainState(opts.stateLoad);
@@ -176,8 +178,8 @@ export const getPrivateKeyFromIndex = (index)=>{
176
178
  if (opts.l1PublisherKey && opts.l1PublisherKey.getValue() && opts.l1PublisherKey.getValue() != NULL_KEY) {
177
179
  publisherPrivKeyHex = opts.l1PublisherKey.getValue();
178
180
  publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
179
- } else if (config.publisherPrivateKeys && config.publisherPrivateKeys.length > 0 && config.publisherPrivateKeys[0].getValue() != NULL_KEY) {
180
- 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();
181
183
  publisherHdAccount = privateKeyToAccount(publisherPrivKeyHex);
182
184
  } else if (!MNEMONIC) {
183
185
  throw new Error(`Mnemonic not provided and no publisher private key`);
@@ -188,7 +190,7 @@ export const getPrivateKeyFromIndex = (index)=>{
188
190
  const publisherPrivKeyRaw = publisherHdAccount.getHdKey().privateKey;
189
191
  const publisherPrivKey = publisherPrivKeyRaw === null ? null : Buffer.from(publisherPrivKeyRaw);
190
192
  publisherPrivKeyHex = `0x${publisherPrivKey.toString('hex')}`;
191
- config.publisherPrivateKeys = [
193
+ config.sequencerPublisherPrivateKeys = [
192
194
  new SecretValue(publisherPrivKeyHex)
193
195
  ];
194
196
  }
@@ -203,7 +205,8 @@ export const getPrivateKeyFromIndex = (index)=>{
203
205
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
204
206
  addressesToFund.push(sponsoredFPCAddress);
205
207
  }
206
- 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);
207
210
  const wasAutomining = await ethCheatCodes.isAutoMining();
208
211
  const enableAutomine = opts.automineL1Setup && !wasAutomining && isAnvilTestChain(chain.id);
209
212
  if (enableAutomine) {
@@ -234,11 +237,12 @@ export const getPrivateKeyFromIndex = (index)=>{
234
237
  await ethCheatCodes.setAutomine(false);
235
238
  await ethCheatCodes.setIntervalMining(config.ethereumSlotDuration);
236
239
  }
237
- // Always sync dateProvider to L1 time after deploying L1 contracts, regardless of mining mode.
238
- // In compose mode, L1 time may have drifted ahead of system time due to the local-network watcher
239
- // warping time forward on each filled slot. Without this sync, the sequencer computes the wrong
240
- // slot from its dateProvider and cannot propose blocks.
241
- dateProvider.setTime(await ethCheatCodes.timestamp() * 1000);
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);
245
+ }
242
246
  if (opts.l2StartTime) {
243
247
  await ethCheatCodes.warp(opts.l2StartTime, {
244
248
  resetBlockInterval: true
@@ -265,7 +269,7 @@ export const getPrivateKeyFromIndex = (index)=>{
265
269
  let mockGossipSubNetwork;
266
270
  let p2pClientDeps = undefined;
267
271
  if (opts.mockGossipSubNetwork) {
268
- mockGossipSubNetwork = new MockGossipSubNetwork();
272
+ mockGossipSubNetwork = new MockGossipSubNetwork(opts.mockGossipSubNetworkLatency);
269
273
  p2pClientDeps = {
270
274
  p2pServiceFactory: getMockPubSubP2PServiceFactory(mockGossipSubNetwork)
271
275
  };
@@ -299,30 +303,34 @@ export const getPrivateKeyFromIndex = (index)=>{
299
303
  telemetry: telemetryClient,
300
304
  p2pClientDeps
301
305
  }, {
302
- prefilledPublicData
306
+ genesis
303
307
  }));
304
308
  const sequencerClient = aztecNodeService.getSequencer();
305
- if (sequencerClient) {
306
- const publisher = sequencerClient.sequencer.publisher;
307
- publisher.l1TxUtils = DelayedTxUtils.fromL1TxUtils(publisher.l1TxUtils, config.ethereumSlotDuration, l1Client);
308
- }
309
309
  let proverNode = undefined;
310
310
  if (opts.startProverNode) {
311
311
  logger.verbose('Creating and syncing a simulated prover node...');
312
312
  const proverNodePrivateKey = getPrivateKeyFromIndex(2);
313
313
  const proverNodePrivateKeyHex = `0x${proverNodePrivateKey.toString('hex')}`;
314
314
  const proverNodeDataDirectory = path.join(directoryToCleanup, randomBytes(8).toString('hex'));
315
- const proverNodeConfig = {
316
- ...config.proverNodeConfig,
317
- dataDirectory: proverNodeDataDirectory,
318
- p2pEnabled: !!mockGossipSubNetwork
315
+ const p2pClientDeps = {
316
+ p2pServiceFactory: mockGossipSubNetwork && getMockPubSubP2PServiceFactory(mockGossipSubNetwork),
317
+ rpcTxProviders: [
318
+ aztecNodeService
319
+ ]
319
320
  };
320
- proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, config, proverNodeConfig, aztecNodeService, prefilledPublicData, {
321
- p2pClientDeps: mockGossipSubNetwork ? {
322
- p2pServiceFactory: getMockPubSubP2PServiceFactory(mockGossipSubNetwork)
323
- } : undefined
324
- });
321
+ ({ proverNode } = await createAndSyncProverNode(proverNodePrivateKeyHex, config, {
322
+ ...config.proverNodeConfig,
323
+ dataDirectory: proverNodeDataDirectory
324
+ }, {
325
+ dateProvider,
326
+ p2pClientDeps,
327
+ telemetry: telemetryClient
328
+ }, {
329
+ genesis
330
+ }));
325
331
  }
332
+ const sequencerDelayer = sequencerClient?.getDelayer();
333
+ const proverDelayer = proverNode?.getProverNode()?.getDelayer();
326
334
  logger.verbose('Creating a pxe...');
327
335
  const pxeConfig = {
328
336
  ...getPXEConfig(),
@@ -404,8 +412,10 @@ export const getPrivateKeyFromIndex = (index)=>{
404
412
  initialFundedAccounts,
405
413
  logger,
406
414
  mockGossipSubNetwork,
407
- prefilledPublicData,
415
+ genesis,
408
416
  proverNode,
417
+ sequencerDelayer,
418
+ proverDelayer,
409
419
  sequencer: sequencerClient,
410
420
  teardown,
411
421
  telemetryClient,
@@ -466,77 +476,41 @@ export async function waitForProvenChain(node, targetBlock, timeoutSec = 60, int
466
476
  targetBlock ??= await node.getBlockNumber();
467
477
  await retryUntil(async ()=>await node.getProvenBlockNumber() >= targetBlock, 'proven chain status', timeoutSec, intervalSec);
468
478
  }
469
- export function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, proverNodeConfig, aztecNode, prefilledPublicData = [], proverNodeDeps = {}) {
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) {
470
483
  return withLoggerBindings({
471
484
  actor: 'prover-0'
472
485
  }, async ()=>{
473
- const aztecNodeTxProvider = aztecNode && {
474
- getTxByHash: aztecNode.getTxByHash.bind(aztecNode),
475
- getTxsByHash: aztecNode.getTxsByHash.bind(aztecNode),
476
- stop: ()=>Promise.resolve()
477
- };
478
- const blobClient = await createBlobClientWithFileStores(aztecNodeConfig, createLogger('blob-client:prover-node'));
479
- const archiverConfig = {
480
- ...aztecNodeConfig,
481
- dataDirectory: proverNodeConfig.dataDirectory
482
- };
483
- const archiver = await createArchiver(archiverConfig, {
484
- blobClient,
485
- dateProvider: proverNodeDeps.dateProvider
486
- }, {
487
- blockUntilSync: true
488
- });
489
- const proverConfig = {
490
- ...aztecNodeConfig,
491
- txCollectionNodeRpcUrls: [],
492
- realProofs: false,
493
- proverAgentCount: 2,
494
- publisherPrivateKeys: [
486
+ const proverNode = await AztecNodeService.createAndSync({
487
+ ...baseConfig,
488
+ ...configOverrides,
489
+ p2pPort: 0,
490
+ enableProverNode: true,
491
+ disableValidator: true,
492
+ proverPublisherPrivateKeys: [
495
493
  new SecretValue(proverNodePrivateKey)
496
- ],
497
- proverNodeMaxPendingJobs: 10,
498
- proverNodeMaxParallelBlocksPerEpoch: 32,
499
- proverNodePollingIntervalMs: 200,
500
- txGatheringIntervalMs: 1000,
501
- txGatheringBatchSize: 10,
502
- txGatheringMaxParallelRequestsPerNode: 10,
503
- txGatheringTimeoutMs: 24_000,
504
- proverNodeFailedEpochStore: undefined,
505
- proverId: EthAddress.fromNumber(1),
506
- proverNodeEpochProvingDelayMs: undefined,
507
- ...proverNodeConfig
508
- };
509
- const l1TxUtils = createDelayedL1TxUtils(aztecNodeConfig, proverNodePrivateKey, 'prover-node', proverNodeDeps.dateProvider);
510
- const proverNode = await createProverNode(proverConfig, {
511
- ...proverNodeDeps,
512
- aztecNodeTxProvider,
513
- archiver: archiver,
514
- l1TxUtils
515
- }, {
516
- prefilledPublicData
517
- });
518
- getLogger().info(`Created and synced prover node`, {
519
- publisherAddress: l1TxUtils.client.account.address
494
+ ]
495
+ }, deps, {
496
+ genesis: options.genesis,
497
+ dontStartProverNode: options.dontStart
520
498
  });
521
- if (!proverNodeConfig.dontStart) {
522
- await proverNode.start();
499
+ if (!proverNode.getProverNode()) {
500
+ throw new Error('Prover node subsystem was not created despite enableProverNode being set');
523
501
  }
524
- return proverNode;
502
+ getLogger().info(`Created and synced prover node`);
503
+ return {
504
+ proverNode
505
+ };
525
506
  });
526
507
  }
527
- function createDelayedL1TxUtils(aztecNodeConfig, privateKey, logName, dateProvider) {
528
- const l1Client = createExtendedL1Client(aztecNodeConfig.l1RpcUrls, privateKey, foundry);
529
- const log = createLogger(logName);
530
- const l1TxUtils = createDelayedL1TxUtilsFromViemWallet(l1Client, log, dateProvider, aztecNodeConfig);
531
- l1TxUtils.enableDelayer(aztecNodeConfig.ethereumSlotDuration);
532
- return l1TxUtils;
533
- }
534
508
  export function getBalancesFn(symbol, method, logger) {
535
509
  const balances = async (...addressLikes)=>{
536
510
  const addresses = addressLikes.map((addressLike)=>'address' in addressLike ? addressLike.address : addressLike);
537
- const b = await Promise.all(addresses.map((address)=>method(address).simulate({
511
+ const b = await Promise.all(addresses.map(async (address)=>(await method(address).simulate({
538
512
  from: address
539
- })));
513
+ })).result));
540
514
  const debugString = `${symbol} balances: ${addresses.map((address, i)=>`${address}: ${b[i]}`).join(', ')}`;
541
515
  logger.verbose(debugString);
542
516
  return b;
@@ -580,7 +554,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
580
554
  /**
581
555
  * Helper function to deploy accounts.
582
556
  * Returns deployed account data that can be used by tests.
583
- */ export const deployAccounts = (numberOfAccounts, logger)=>async ({ wallet, initialFundedAccounts })=>{
557
+ */ export const deployAccounts = (numberOfAccounts, logger, deployOptions)=>async ({ wallet, initialFundedAccounts })=>{
584
558
  if (initialFundedAccounts.length < numberOfAccounts) {
585
559
  throw new Error(`Cannot deploy more than ${initialFundedAccounts.length} initial accounts.`);
586
560
  }
@@ -591,8 +565,9 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
591
565
  const accountManager = await wallet.createSchnorrAccount(deployedAccounts[i].secret, deployedAccounts[i].salt, deployedAccounts[i].signingKey);
592
566
  const deployMethod = await accountManager.getDeployMethod();
593
567
  await deployMethod.send({
594
- from: AztecAddress.ZERO,
595
- skipClassPublication: i !== 0
568
+ from: NO_FROM,
569
+ skipClassPublication: i !== 0,
570
+ ...deployOptions
596
571
  });
597
572
  }
598
573
  return {
@@ -613,7 +588,7 @@ export async function expectMappingDelta(initialValues, fn, inputs, expectedDiff
613
588
  ...instances.map((instance)=>publishInstance(wallet, instance))
614
589
  ]);
615
590
  const batch = new BatchCall(wallet, calls);
616
- const txReceipt = await batch.send({
591
+ const { receipt: txReceipt } = await batch.send({
617
592
  from: accountsToDeploy[0]
618
593
  });
619
594
  if (waitUntilProven) {
@@ -3,13 +3,12 @@
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';
6
+ import type { GenesisData } from '@aztec/stdlib/world-state';
8
7
  export declare const ATTESTER_PRIVATE_KEYS_START_INDEX = 3;
9
8
  export declare function generatePrivateKeys(startIndex: number, numberOfKeys: number): `0x${string}`[];
10
9
  export declare function createNodes(config: AztecNodeConfig & {
11
10
  dontStartSequencer?: boolean;
12
- }, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, indexOffset?: number, validatorsPerNode?: number): Promise<AztecNodeService[]>;
11
+ }, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, genesis?: GenesisData, dataDirectory?: string, metricsPort?: number, indexOffset?: number, validatorsPerNode?: number): Promise<AztecNodeService[]>;
13
12
  /** Extended config type for createNode with test-specific overrides. */
14
13
  export type CreateNodeConfig = AztecNodeConfig & {
15
14
  /** Whether to skip starting the sequencer. */
@@ -18,10 +17,14 @@ export type CreateNodeConfig = AztecNodeConfig & {
18
17
  validatorPrivateKey?: `0x${string}`;
19
18
  };
20
19
  /** Creates a P2P enabled instance of Aztec Node Service with a validator. */
21
- export declare function createNode(config: CreateNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number | number[], prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number): Promise<AztecNodeService>;
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>;
22
21
  /** Creates a P2P enabled instance of Aztec Node Service without a validator */
23
- export declare function createNonValidatorNode(baseConfig: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number): Promise<AztecNodeService>;
24
- 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): 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
+ }>;
25
28
  export declare function createP2PConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
26
29
  export declare function createValidatorConfig(config: CreateNodeConfig, bootstrapNodeEnr?: string, port?: number, addressIndex?: number | number[], dataDirectory?: string): Promise<AztecNodeConfig>;
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfcDJwX3Rlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9zZXR1cF9wMnBfdGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSzNFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFvQixjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVzlELGVBQU8sTUFBTSxpQ0FBaUMsSUFBSSxDQUFDO0FBT25ELHdCQUFnQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEdBQUcsS0FBSyxNQUFNLEVBQUUsRUFBRSxDQU83RjtBQUVELHdCQUFzQixXQUFXLENBQy9CLE1BQU0sRUFBRSxlQUFlLEdBQUc7SUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUFFLEVBQzFELFlBQVksRUFBRSxZQUFZLEVBQzFCLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsWUFBWSxFQUFFLE1BQU0sRUFDcEIsbUJBQW1CLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxFQUMxQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQ3RCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFDcEIsV0FBVyxTQUFJLEVBQ2YsaUJBQWlCLFNBQUksR0FDcEIsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FtQzdCO0FBRUQsd0VBQXdFO0FBQ3hFLE1BQU0sTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLEdBQUc7SUFDL0MsOENBQThDO0lBQzlDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQzdCLHdFQUF3RTtJQUN4RSxtQkFBbUIsQ0FBQyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Q0FDckMsQ0FBQztBQUVGLDZFQUE2RTtBQUM3RSx3QkFBc0IsVUFBVSxDQUM5QixNQUFNLEVBQUUsZ0JBQWdCLEVBQ3hCLFlBQVksRUFBRSxZQUFZLEVBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2pDLFlBQVksRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLEVBQy9CLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsRUFDMUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLDZCQVlyQjtBQUVELCtFQUErRTtBQUMvRSx3QkFBc0Isc0JBQXNCLENBQzFDLFVBQVUsRUFBRSxlQUFlLEVBQzNCLFlBQVksRUFBRSxZQUFZLEVBQzFCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsYUFBYSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ2pDLG1CQUFtQixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsRUFDMUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUN0QixXQUFXLENBQUMsRUFBRSxNQUFNLDZCQWNyQjtBQUVELHdCQUFzQixnQkFBZ0IsQ0FDcEMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDakMsWUFBWSxFQUFFLE1BQU0sRUFDcEIsY0FBYyxFQUFFLGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQyxFQUMvRSxtQkFBbUIsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLEVBQzFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFDdEIsV0FBVyxDQUFDLEVBQUUsTUFBTSxvREF3QnJCO0FBRUQsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxFQUFFLGVBQWUsRUFDdkIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQ3pCLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFDYixhQUFhLENBQUMsRUFBRSxNQUFNLDRCQWdCdkI7QUFFRCx3QkFBc0IscUJBQXFCLENBQ3pDLE1BQU0sRUFBRSxnQkFBZ0IsRUFDeEIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQ3pCLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFDYixZQUFZLEdBQUUsTUFBTSxHQUFHLE1BQU0sRUFBTSxFQUNuQyxhQUFhLENBQUMsRUFBRSxNQUFNLDRCQW9CdkIifQ==
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;AAW9D,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,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,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,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,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,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,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,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,oDAwBrB;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"}
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"}
@@ -25,7 +25,7 @@ export function generatePrivateKeys(startIndex, numberOfKeys) {
25
25
  }
26
26
  return privateKeys;
27
27
  }
28
- export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort, prefilledPublicData, dataDirectory, metricsPort, indexOffset = 0, validatorsPerNode = 1) {
28
+ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNodes, bootNodePort, genesis, dataDirectory, metricsPort, indexOffset = 0, validatorsPerNode = 1) {
29
29
  const nodePromises = [];
30
30
  for(let i = 0; i < numNodes; i++){
31
31
  const index = indexOffset + i;
@@ -35,7 +35,7 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
35
35
  const validatorIndices = validatorsPerNode === 1 ? index : range(validatorsPerNode, validatorsPerNode * index);
36
36
  // Assign data directory
37
37
  const dataDir = dataDirectory ? `${dataDirectory}-${index}` : undefined;
38
- const nodePromise = createNode(config, dateProvider, port, bootstrapNodeEnr, validatorIndices, prefilledPublicData, dataDir, metricsPort);
38
+ const nodePromise = createNode(config, dateProvider, port, bootstrapNodeEnr, validatorIndices, genesis, dataDir, metricsPort);
39
39
  nodePromises.push(nodePromise);
40
40
  }
41
41
  const nodes = await Promise.all(nodePromises);
@@ -46,7 +46,7 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
46
46
  }
47
47
  return nodes;
48
48
  }
49
- /** Creates a P2P enabled instance of Aztec Node Service with a validator. */ export async function createNode(config, dateProvider, tcpPort, bootstrapNode, addressIndex, prefilledPublicData, dataDirectory, metricsPort) {
49
+ /** Creates a P2P enabled instance of Aztec Node Service with a validator. */ export async function createNode(config, dateProvider, tcpPort, bootstrapNode, addressIndex, genesis, dataDirectory, metricsPort) {
50
50
  const actorIndex = validatorCounter++;
51
51
  return await withLoggerBindings({
52
52
  actor: `validator-${actorIndex}`
@@ -57,12 +57,12 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
57
57
  telemetry,
58
58
  dateProvider
59
59
  }, {
60
- prefilledPublicData,
60
+ genesis,
61
61
  dontStartSequencer: config.dontStartSequencer
62
62
  });
63
63
  });
64
64
  }
65
- /** Creates a P2P enabled instance of Aztec Node Service without a validator */ export async function createNonValidatorNode(baseConfig, dateProvider, tcpPort, bootstrapNode, prefilledPublicData, dataDirectory, metricsPort) {
65
+ /** Creates a P2P enabled instance of Aztec Node Service without a validator */ export async function createNonValidatorNode(baseConfig, dateProvider, tcpPort, bootstrapNode, genesis, dataDirectory, metricsPort) {
66
66
  const actorIndex = nodeCounter++;
67
67
  return await withLoggerBindings({
68
68
  actor: `node-${actorIndex}`
@@ -72,32 +72,35 @@ export async function createNodes(config, dateProvider, bootstrapNodeEnr, numNod
72
72
  ...p2pConfig,
73
73
  disableValidator: true,
74
74
  validatorPrivateKeys: undefined,
75
- publisherPrivateKeys: []
75
+ sequencerPublisherPrivateKeys: []
76
76
  };
77
77
  const telemetry = await getEndToEndTestTelemetryClient(metricsPort);
78
78
  return await AztecNodeService.createAndSync(config, {
79
79
  telemetry,
80
80
  dateProvider
81
81
  }, {
82
- prefilledPublicData
82
+ genesis
83
83
  });
84
84
  });
85
85
  }
86
- export async function createProverNode(config, tcpPort, bootstrapNode, addressIndex, proverNodeDeps, prefilledPublicData, dataDirectory, metricsPort) {
86
+ export async function createProverNode(config, tcpPort, bootstrapNode, addressIndex, deps, genesis, dataDirectory, metricsPort) {
87
87
  const actorIndex = proverCounter++;
88
88
  return await withLoggerBindings({
89
89
  actor: `prover-${actorIndex}`
90
90
  }, async ()=>{
91
91
  const proverNodePrivateKey = getPrivateKeyFromIndex(ATTESTER_PRIVATE_KEYS_START_INDEX + addressIndex);
92
92
  const telemetry = await getEndToEndTestTelemetryClient(metricsPort);
93
- const proverConfig = await createP2PConfig(config, bootstrapNode, tcpPort, dataDirectory);
94
- const aztecNodeRpcTxProvider = undefined;
95
- return await createAndSyncProverNode(bufferToHex(proverNodePrivateKey), config, {
96
- ...proverConfig,
93
+ const p2pConfig = await createP2PConfig(config, bootstrapNode, tcpPort, dataDirectory);
94
+ return await createAndSyncProverNode(bufferToHex(proverNodePrivateKey), {
95
+ ...config,
96
+ ...p2pConfig
97
+ }, {
97
98
  dataDirectory
98
- }, aztecNodeRpcTxProvider, prefilledPublicData, {
99
- ...proverNodeDeps,
99
+ }, {
100
+ ...deps,
100
101
  telemetry
102
+ }, {
103
+ genesis
101
104
  });
102
105
  });
103
106
  }
@@ -133,7 +136,7 @@ export async function createValidatorConfig(config, bootstrapNodeEnr, port, addr
133
136
  ...config,
134
137
  ...p2pConfig,
135
138
  validatorPrivateKeys: new SecretValue(attesterPrivateKeys),
136
- publisherPrivateKeys: [
139
+ sequencerPublisherPrivateKeys: [
137
140
  new SecretValue(attesterPrivateKeys[0])
138
141
  ]
139
142
  };
@@ -6,7 +6,7 @@ export declare function deployToken(wallet: Wallet, admin: AztecAddress, initial
6
6
  contract: TokenContract;
7
7
  instance: import("@aztec/aztec.js/contracts").ContractInstanceWithAddress;
8
8
  }>;
9
- export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress, recipient: AztecAddress, amount: bigint): Promise<void>;
9
+ export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress, recipient: AztecAddress, amount: bigint, additionalScopes?: AztecAddress[]): Promise<void>;
10
10
  export declare function expectTokenBalance(wallet: Wallet, token: TokenContract, owner: AztecAddress, expectedBalance: bigint, logger: Logger): Promise<void>;
11
11
  export declare function mintNotes(wallet: Wallet, minter: AztecAddress, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy90b2tlbl91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0Qsd0JBQXNCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNOzs7R0Fjakg7QUFFRCx3QkFBc0IsbUJBQW1CLENBQ3ZDLEtBQUssRUFBRSxhQUFhLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQUdmO0FBRUQsd0JBQXNCLGtCQUFrQixDQUN0QyxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxhQUFhLEVBQ3BCLEtBQUssRUFBRSxZQUFZLEVBQ25CLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQU9mO0FBRUQsd0JBQXNCLFNBQVMsQ0FDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsWUFBWSxFQUNwQixTQUFTLEVBQUUsWUFBWSxFQUN2QixLQUFLLEVBQUUsYUFBYSxFQUNwQixXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FXakIifQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy90b2tlbl91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU5RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0Qsd0JBQXNCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNOzs7R0Fhakg7QUFFRCx3QkFBc0IsbUJBQW1CLENBQ3ZDLEtBQUssRUFBRSxhQUFhLEVBQ3BCLE1BQU0sRUFBRSxZQUFZLEVBQ3BCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsZ0JBQWdCLENBQUMsRUFBRSxZQUFZLEVBQUUsaUJBR2xDO0FBRUQsd0JBQXNCLGtCQUFrQixDQUN0QyxNQUFNLEVBQUUsTUFBTSxFQUNkLEtBQUssRUFBRSxhQUFhLEVBQ3BCLEtBQUssRUFBRSxZQUFZLEVBQ25CLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLE1BQU0sRUFBRSxNQUFNLGlCQU9mO0FBRUQsd0JBQXNCLFNBQVMsQ0FDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsWUFBWSxFQUNwQixTQUFTLEVBQUUsWUFBWSxFQUN2QixLQUFLLEVBQUUsYUFBYSxFQUNwQixXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FXakIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;GAcjH;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,iBAGf;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
1
+ {"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;GAajH;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,YAAY,EAAE,iBAGlC;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
@@ -3,10 +3,7 @@ import { TokenContract } from '@aztec/noir-contracts.js/Token';
3
3
  export async function deployToken(wallet, admin, initialAdminBalance, logger) {
4
4
  logger.info(`Deploying Token contract...`);
5
5
  const { contract, instance } = await TokenContract.deploy(wallet, admin, 'TokenName', 'TokenSymbol', 18).send({
6
- from: admin,
7
- wait: {
8
- returnReceipt: true
9
- }
6
+ from: admin
10
7
  });
11
8
  if (initialAdminBalance > 0n) {
12
9
  await mintTokensToPrivate(contract, admin, admin, initialAdminBalance);
@@ -17,15 +14,16 @@ export async function deployToken(wallet, admin, initialAdminBalance, logger) {
17
14
  instance
18
15
  };
19
16
  }
20
- export async function mintTokensToPrivate(token, minter, recipient, amount) {
17
+ export async function mintTokensToPrivate(token, minter, recipient, amount, additionalScopes) {
21
18
  await token.methods.mint_to_private(recipient, amount).send({
22
- from: minter
19
+ from: minter,
20
+ additionalScopes
23
21
  });
24
22
  }
25
23
  export async function expectTokenBalance(wallet, token, owner, expectedBalance, logger) {
26
24
  // Then check the balance
27
25
  const contractWithWallet = TokenContract.at(token.address, wallet);
28
- const balance = await contractWithWallet.methods.balance_of_private(owner).simulate({
26
+ const { result: balance } = await contractWithWallet.methods.balance_of_private(owner).simulate({
29
27
  from: owner
30
28
  });
31
29
  logger.info(`Account ${owner} balance: ${balance}`);
@@ -0,0 +1,7 @@
1
+ import type { Wallet } from '@aztec/aztec.js/wallet';
2
+ /**
3
+ * Creates a JSON-RPC client that connects to a remote wallet service.
4
+ * The returned object implements the {@link Wallet} interface, proxying all calls over HTTP to the specified URL.
5
+ */
6
+ export declare function createWalletClient(url: string): Wallet;
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X3JwY19jbGllbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3J3YXJkLWNvbXBhdGliaWxpdHkvd2FsbGV0X3JwY19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJckQ7OztHQUdHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUt0RCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet_rpc_client.d.ts","sourceRoot":"","sources":["../../src/forward-compatibility/wallet_rpc_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtD"}
@@ -0,0 +1,15 @@
1
+ import { WalletSchema } from '@aztec/aztec.js/wallet';
2
+ import { createSafeJsonRpcClient, makeFetch } from '@aztec/foundation/json-rpc/client';
3
+ /**
4
+ * Creates a JSON-RPC client that connects to a remote wallet service.
5
+ * The returned object implements the {@link Wallet} interface, proxying all calls over HTTP to the specified URL.
6
+ */ export function createWalletClient(url) {
7
+ return createSafeJsonRpcClient(url, WalletSchema, {
8
+ namespaceMethods: 'wallet',
9
+ fetch: makeFetch([
10
+ 1,
11
+ 2,
12
+ 3
13
+ ], false)
14
+ });
15
+ }
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env -S node --no-warnings
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3J3YXJkLWNvbXBhdGliaWxpdHkvd2FsbGV0X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet_service.d.ts","sourceRoot":"","sources":["../../src/forward-compatibility/wallet_service.ts"],"names":[],"mappings":""}