@aztec/cli 3.0.0-nightly.20251001 → 3.0.0-nightly.20251002

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.
@@ -19,7 +19,7 @@ export async function bootstrapNetwork(nodeUrl, l1Urls, l1ChainId, l1PrivateKey,
19
19
  // so all we need to do is register them to our pxe.
20
20
  const [accountData] = await getInitialTestAccountsData();
21
21
  const accountManager = await wallet.createSchnorrAccount(accountData.secret, accountData.salt, accountData.signingKey);
22
- const defaultAccountAddress = accountManager.getAddress();
22
+ const defaultAccountAddress = accountManager.address;
23
23
  const l1Client = createExtendedL1Client(l1Urls, l1PrivateKey ? privateKeyToAccount(l1PrivateKey) : // Note that this account needs to be funded on L1 !
24
24
  mnemonicToAccount(l1Mnemonic, {
25
25
  addressIndex
@@ -16,14 +16,14 @@ export async function setupL2Contracts(nodeUrl, testAccounts, json, log) {
16
16
  if (testAccounts) {
17
17
  log('setupL2Contracts: Deploying test accounts...');
18
18
  const initialAccountsData = await getInitialTestAccountsData();
19
- deployedAccountManagers = await deployFundedSchnorrAccounts(wallet, initialAccountsData, waitOpts);
19
+ deployedAccountManagers = await deployFundedSchnorrAccounts(wallet, node, initialAccountsData, waitOpts);
20
20
  }
21
21
  if (json) {
22
22
  const toPrint = {
23
23
  ...ProtocolContractAddress
24
24
  };
25
25
  deployedAccountManagers.forEach((a, i)=>{
26
- toPrint[`testAccount${i}`] = a.getAddress();
26
+ toPrint[`testAccount${i}`] = a.address;
27
27
  });
28
28
  log(JSON.stringify(toPrint, null, 2));
29
29
  }
@@ -1,4 +1,4 @@
1
1
  import { type EthAddress } from '@aztec/aztec.js';
2
2
  import type { LogFn, Logger } from '@aztec/foundation/log';
3
- export declare function deployL1Contracts(rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, testAccounts: boolean, sponsoredFPC: boolean, acceleratedTestDeployments: boolean, json: boolean, createVerificationJson: string | false, initialValidators: EthAddress[], realVerifier: boolean, log: LogFn, debugLogger: Logger): Promise<void>;
3
+ export declare function deployL1Contracts(rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, testAccounts: boolean, sponsoredFPC: boolean, acceleratedTestDeployments: boolean, json: boolean, createVerificationJson: string | false, initialValidators: EthAddress[], realVerifier: boolean, existingToken: EthAddress | undefined, log: LogFn, debugLogger: Logger): Promise<void>;
4
4
  //# sourceMappingURL=deploy_l1_contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/deploy_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAM,MAAM,iBAAiB,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAM3D,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,OAAO,EACrB,0BAA0B,EAAE,OAAO,EACnC,IAAI,EAAE,OAAO,EACb,sBAAsB,EAAE,MAAM,GAAG,KAAK,EACtC,iBAAiB,EAAE,UAAU,EAAE,EAC/B,YAAY,EAAE,OAAO,EACrB,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,iBA6DpB"}
1
+ {"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/deploy_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAM,MAAM,iBAAiB,CAAC;AAGtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAM3D,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,OAAO,EACrB,0BAA0B,EAAE,OAAO,EACnC,IAAI,EAAE,OAAO,EACb,sBAAsB,EAAE,MAAM,GAAG,KAAK,EACtC,iBAAiB,EAAE,UAAU,EAAE,EAC/B,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,UAAU,GAAG,SAAS,EACrC,GAAG,EAAE,KAAK,EACV,WAAW,EAAE,MAAM,iBA8DpB"}
@@ -5,7 +5,7 @@ import { SecretValue } from '@aztec/foundation/config';
5
5
  import { getGenesisValues } from '@aztec/world-state/testing';
6
6
  import { deployAztecContracts } from '../../utils/aztec.js';
7
7
  import { getSponsoredFPCAddress } from '../../utils/setup_contracts.js';
8
- export async function deployL1Contracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, testAccounts, sponsoredFPC, acceleratedTestDeployments, json, createVerificationJson, initialValidators, realVerifier, log, debugLogger) {
8
+ export async function deployL1Contracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, testAccounts, sponsoredFPC, acceleratedTestDeployments, json, createVerificationJson, initialValidators, realVerifier, existingToken, log, debugLogger) {
9
9
  const config = getL1ContractsConfigEnvVars();
10
10
  const initialAccounts = testAccounts ? await getInitialTestAccountsData() : [];
11
11
  const sponsoredFPCAddress = sponsoredFPC ? await getSponsoredFPCAddress() : [];
@@ -16,7 +16,7 @@ export async function deployL1Contracts(rpcUrls, chainId, privateKey, mnemonic,
16
16
  withdrawer: a,
17
17
  bn254SecretKey: new SecretValue(Fr.random().toBigInt())
18
18
  }));
19
- const { l1ContractAddresses } = await deployAztecContracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidatorOperators, genesisArchiveRoot, fundingNeeded, acceleratedTestDeployments, config, realVerifier, createVerificationJson, debugLogger);
19
+ const { l1ContractAddresses } = await deployAztecContracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidatorOperators, genesisArchiveRoot, fundingNeeded, acceleratedTestDeployments, config, existingToken, realVerifier, createVerificationJson, debugLogger);
20
20
  if (json) {
21
21
  log(JSON.stringify(Object.fromEntries(Object.entries(l1ContractAddresses).map(([k, v])=>[
22
22
  k,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,WAAW,CAAC;AAcjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAa3D,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAghB/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,KAAK,OAAO,EAAU,MAAM,WAAW,CAAC;AAcjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAa3D,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAkhB/E"}
@@ -8,10 +8,10 @@ const l1RpcUrlsOption = new Option('--l1-rpc-urls <string>', 'List of Ethereum h
8
8
  ]).makeOptionMandatory(true).argParser((arg)=>arg.split(',').map((url)=>url.trim()));
9
9
  const networkOption = new Option('--network <string>', 'Network to execute against').env('NETWORK');
10
10
  export function injectCommands(program, log, debugLogger) {
11
- program.command('deploy-l1-contracts').description('Deploys all necessary Ethereum contracts for Aztec.').addOption(l1RpcUrlsOption).option('-pk, --private-key <string>', 'The private key to use for deployment', PRIVATE_KEY).option('--validators <string>', 'Comma separated list of validators').option('-m, --mnemonic <string>', 'The mnemonic to use in deployment', 'test test test test test test test test test test test junk').option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use in deployment', (arg)=>parseInt(arg), 0).addOption(l1ChainIdOption).option('--salt <number>', 'The optional salt to use in deployment', (arg)=>parseInt(arg)).option('--json', 'Output the contract addresses in JSON format').option('--test-accounts', 'Populate genesis state with initial fee juice for test accounts').option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract').option('--accelerated-test-deployments', 'Fire and forget deployment transactions, use in testing only', false).option('--real-verifier', 'Deploy the real verifier', false).option('--create-verification-json [path]', 'Create JSON file for etherscan contract verification', false).action(async (options)=>{
11
+ program.command('deploy-l1-contracts').description('Deploys all necessary Ethereum contracts for Aztec.').addOption(l1RpcUrlsOption).option('-pk, --private-key <string>', 'The private key to use for deployment', PRIVATE_KEY).option('--validators <string>', 'Comma separated list of validators').option('-m, --mnemonic <string>', 'The mnemonic to use in deployment', 'test test test test test test test test test test test junk').option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use in deployment', (arg)=>parseInt(arg), 0).addOption(l1ChainIdOption).option('--salt <number>', 'The optional salt to use in deployment', (arg)=>parseInt(arg)).option('--json', 'Output the contract addresses in JSON format').option('--test-accounts', 'Populate genesis state with initial fee juice for test accounts').option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract').option('--accelerated-test-deployments', 'Fire and forget deployment transactions, use in testing only', false).option('--real-verifier', 'Deploy the real verifier', false).option('--existing-token <address>', 'Use an existing ERC20 for both fee and staking', parseEthereumAddress).option('--create-verification-json [path]', 'Create JSON file for etherscan contract verification', false).action(async (options)=>{
12
12
  const { deployL1Contracts } = await import('./deploy_l1_contracts.js');
13
13
  const initialValidators = options.validators?.split(',').map((validator)=>EthAddress.fromString(validator)) || [];
14
- await deployL1Contracts(options.l1RpcUrls, options.l1ChainId, options.privateKey, options.mnemonic, options.mnemonicIndex, options.salt, options.testAccounts, options.sponsoredFpc, options.acceleratedTestDeployments, options.json, options.createVerificationJson, initialValidators, options.realVerifier, log, debugLogger);
14
+ await deployL1Contracts(options.l1RpcUrls, options.l1ChainId, options.privateKey, options.mnemonic, options.mnemonicIndex, options.salt, options.testAccounts, options.sponsoredFpc, options.acceleratedTestDeployments, options.json, options.createVerificationJson, initialValidators, options.realVerifier, options.existingToken, log, debugLogger);
15
15
  });
16
16
  program.command('deploy-new-rollup').description('Deploys a new rollup contract and adds it to the registry (if you are the owner).').requiredOption('-r, --registry-address <string>', 'The address of the registry contract', parseEthereumAddress).addOption(l1RpcUrlsOption).option('-pk, --private-key <string>', 'The private key to use for deployment', PRIVATE_KEY).option('--validators <string>', 'Comma separated list of validators').option('-m, --mnemonic <string>', 'The mnemonic to use in deployment', MNEMONIC ?? 'test test test test test test test test test test test junk').option('-i, --mnemonic-index <number>', 'The index of the mnemonic to use in deployment', (arg)=>parseInt(arg), 0).addOption(l1ChainIdOption).option('--salt <number>', 'The optional salt to use in deployment', (arg)=>parseInt(arg)).option('--json', 'Output the contract addresses in JSON format').option('--test-accounts', 'Populate genesis state with initial fee juice for test accounts').option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract').option('--real-verifier', 'Deploy the real verifier', false).action(async (options)=>{
17
17
  const { deployNewRollup } = await import('./deploy_new_rollup.js');
@@ -8,13 +8,10 @@ export type L2ChainConfig = L1ContractsConfig & Omit<SlasherConfig, 'slashValida
8
8
  sponsoredFPC: boolean;
9
9
  p2pEnabled: boolean;
10
10
  p2pBootstrapNodes: string[];
11
- registryAddress: string;
12
- slashFactoryAddress: string;
13
- feeAssetHandlerAddress: string;
14
11
  seqMinTxsPerBlock: number;
15
12
  seqMaxTxsPerBlock: number;
16
13
  realProofs: boolean;
17
- snapshotsUrl: string;
14
+ snapshotsUrls: string[];
18
15
  autoUpdate: SharedNodeConfig['autoUpdate'];
19
16
  autoUpdateUrl?: string;
20
17
  maxTxPoolSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"chain_l2_config.d.ts","sourceRoot":"","sources":["../../src/config/chain_l2_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAarE,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,IAAI,CAAC,aAAa,EAAE,sBAAsB,GAAG,uBAAuB,CAAC,GAAG;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IAIpC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAGhC,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AA+CJ,eAAO,MAAM,4BAA4B,EAAE,aAiF1C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,aAqDxC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,aAuDlC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAmFnC,CAAC;AAIF,wBAAsB,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,gBAQ9E;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAoBpC;AAMD,wBAAsB,gCAAgC,CAAC,WAAW,EAAE,YAAY,iBAgG/E"}
1
+ {"version":3,"file":"chain_l2_config.d.ts","sourceRoot":"","sources":["../../src/config/chain_l2_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAarE,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,IAAI,CAAC,aAAa,EAAE,sBAAsB,GAAG,uBAAuB,CAAC,GAAG;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IAIpC,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAGhC,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AA+CJ,eAAO,MAAM,4BAA4B,EAAE,aA8E1C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,aAkDxC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,aAoDlC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAgFnC,CAAC;AAIF,wBAAsB,YAAY,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,gBAQ9E;AAED,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAoBpC;AAMD,wBAAsB,gCAAgC,CAAC,WAAW,EAAE,YAAY,iBA4F/E"}
@@ -50,13 +50,12 @@ export const stagingIgnitionL2ChainConfig = {
50
50
  sponsoredFPC: false,
51
51
  p2pEnabled: true,
52
52
  p2pBootstrapNodes: [],
53
- registryAddress: '0x53e2c2148da04fd0e8dd282f016f627a187c292c',
54
- slashFactoryAddress: '0x56448efb139ef440438dfa445333734ea5ed60a0',
55
- feeAssetHandlerAddress: '0x3613b834544030c166a4d47eca14b910f4816f57',
56
53
  seqMinTxsPerBlock: 0,
57
54
  seqMaxTxsPerBlock: 0,
58
55
  realProofs: true,
59
- snapshotsUrl: `${SNAPSHOT_URL}/staging-ignition/`,
56
+ snapshotsUrls: [
57
+ `${SNAPSHOT_URL}/staging-ignition/`
58
+ ],
60
59
  autoUpdate: 'config-and-version',
61
60
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/staging-ignition.json',
62
61
  maxTxPoolSize: 100_000_000,
@@ -116,13 +115,12 @@ export const stagingPublicL2ChainConfig = {
116
115
  sponsoredFPC: true,
117
116
  p2pEnabled: true,
118
117
  p2pBootstrapNodes: [],
119
- registryAddress: '0xe83067689f3cf837ccbf8a3966f0e0fe985dcb3e',
120
- slashFactoryAddress: '0x8b87a1812162d4890f01bb40f410047f37d3ceb8',
121
- feeAssetHandlerAddress: '0xa8159159a9e2a57c6e8c59fd5b3dd94c6dbddfe3',
122
118
  seqMinTxsPerBlock: 0,
123
119
  seqMaxTxsPerBlock: 20,
124
120
  realProofs: true,
125
- snapshotsUrl: `${SNAPSHOT_URL}/staging-public/`,
121
+ snapshotsUrls: [
122
+ `${SNAPSHOT_URL}/staging-public/`
123
+ ],
126
124
  autoUpdate: 'config-and-version',
127
125
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/staging-public.json',
128
126
  publicIncludeMetrics,
@@ -155,13 +153,12 @@ export const testnetL2ChainConfig = {
155
153
  sponsoredFPC: true,
156
154
  p2pEnabled: true,
157
155
  p2pBootstrapNodes: [],
158
- registryAddress: '0xcfe61b2574984326679cd15c6566fbd4a724f3b4',
159
- slashFactoryAddress: '0x58dc5b14f9d3085c9106f5b8208a1026f94614f0',
160
- feeAssetHandlerAddress: '0x7abdec6e68ae27c37feb6a77371382a109ec4763',
161
156
  seqMinTxsPerBlock: 0,
162
157
  seqMaxTxsPerBlock: 20,
163
158
  realProofs: true,
164
- snapshotsUrl: `${SNAPSHOT_URL}/testnet/`,
159
+ snapshotsUrls: [
160
+ `${SNAPSHOT_URL}/testnet/`
161
+ ],
165
162
  autoUpdate: 'config-and-version',
166
163
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/testnet.json',
167
164
  maxTxPoolSize: 100_000_000,
@@ -196,13 +193,12 @@ export const ignitionL2ChainConfig = {
196
193
  sponsoredFPC: false,
197
194
  p2pEnabled: true,
198
195
  p2pBootstrapNodes: [],
199
- registryAddress: '',
200
- slashFactoryAddress: '',
201
- feeAssetHandlerAddress: '',
202
196
  seqMinTxsPerBlock: 0,
203
197
  seqMaxTxsPerBlock: 0,
204
198
  realProofs: true,
205
- snapshotsUrl: 'https://storage.googleapis.com/aztec-testnet/snapshots/ignition/',
199
+ snapshotsUrls: [
200
+ 'https://storage.googleapis.com/aztec-testnet/snapshots/ignition/'
201
+ ],
206
202
  autoUpdate: 'notify',
207
203
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/ignition.json',
208
204
  maxTxPoolSize: 100_000_000,
@@ -316,7 +312,7 @@ export async function enrichEnvironmentWithChainConfig(networkName) {
316
312
  enrichVar('SEQ_MAX_TX_PER_BLOCK', config.seqMaxTxsPerBlock.toString());
317
313
  enrichVar('PROVER_REAL_PROOFS', config.realProofs.toString());
318
314
  enrichVar('PXE_PROVER_ENABLED', config.realProofs.toString());
319
- enrichVar('SYNC_SNAPSHOTS_URL', config.snapshotsUrl);
315
+ enrichVar('SYNC_SNAPSHOTS_URLS', config.snapshotsUrls.join(','));
320
316
  enrichVar('P2P_MAX_TX_POOL_SIZE', config.maxTxPoolSize.toString());
321
317
  enrichVar('DATA_STORE_MAP_SIZE_KB', config.dbMapSizeKb.toString());
322
318
  enrichVar('ARCHIVER_STORE_MAP_SIZE_KB', config.archiverStoreMapSizeKb.toString());
@@ -338,9 +334,6 @@ export async function enrichEnvironmentWithChainConfig(networkName) {
338
334
  if (config.publicMetricsCollectFrom) {
339
335
  enrichVar('PUBLIC_OTEL_COLLECT_FROM', config.publicMetricsCollectFrom.join(','));
340
336
  }
341
- enrichEthAddressVar('REGISTRY_CONTRACT_ADDRESS', config.registryAddress);
342
- enrichEthAddressVar('SLASH_FACTORY_CONTRACT_ADDRESS', config.slashFactoryAddress);
343
- enrichEthAddressVar('FEE_ASSET_HANDLER_CONTRACT_ADDRESS', config.feeAssetHandlerAddress);
344
337
  // Deployment stuff
345
338
  enrichVar('ETHEREUM_SLOT_DURATION', config.ethereumSlotDuration.toString());
346
339
  enrichVar('AZTEC_SLOT_DURATION', config.aztecSlotDuration.toString());
@@ -18,7 +18,7 @@ export declare function getFunctionAbi(artifact: ContractArtifact, fnName: strin
18
18
  * @param privateKey - The private key to be used in contract deployment.
19
19
  * @param mnemonic - The mnemonic to be used in contract deployment.
20
20
  */
21
- export declare function deployAztecContracts(rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, initialValidators: Operator[], genesisArchiveRoot: Fr, feeJuicePortalInitialBalance: bigint, acceleratedTestDeployments: boolean, config: L1ContractsConfig, realVerifier: boolean, createVerificationJson: string | false, debugLogger: Logger): Promise<DeployL1ContractsReturnType>;
21
+ export declare function deployAztecContracts(rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, initialValidators: Operator[], genesisArchiveRoot: Fr, feeJuicePortalInitialBalance: bigint, acceleratedTestDeployments: boolean, config: L1ContractsConfig, existingToken: EthAddress | undefined, realVerifier: boolean, createVerificationJson: string | false, debugLogger: Logger): Promise<DeployL1ContractsReturnType>;
22
22
  export declare function deployNewRollupContracts(registryAddress: EthAddress, rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, initialValidators: Operator[], genesisArchiveRoot: Fr, feeJuicePortalInitialBalance: bigint, config: L1ContractsConfig, realVerifier: boolean, logger: Logger): Promise<{
23
23
  rollup: RollupContract;
24
24
  slashFactoryAddress: EthAddress;
@@ -1 +1 @@
1
- {"version":3,"file":"aztec.d.ts","sourceRoot":"","sources":["../../src/utils/aztec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAIjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAQhE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAMtF;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,kBAAkB,EAAE,EAAE,EACtB,4BAA4B,EAAE,MAAM,EACpC,0BAA0B,EAAE,OAAO,EACnC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,OAAO,EACrB,sBAAsB,EAAE,MAAM,GAAG,KAAK,EACtC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,CAAC,CAgCtC;AAED,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,UAAU,EAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,kBAAkB,EAAE,EAAE,EACtB,4BAA4B,EAAE,MAAM,EACpC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,OAAO,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,mBAAmB,EAAE,UAAU,CAAA;CAAE,CAAC,CA6CtE;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAKjE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,6BA4BpE;AAED;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK;;;;GAO3G;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,KAAG,MAK7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,KAAK,MAAM,EAKtD,CAAC;AAOF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAUtE"}
1
+ {"version":3,"file":"aztec.d.ts","sourceRoot":"","sources":["../../src/utils/aztec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAIjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAQhE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAMtF;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,kBAAkB,EAAE,EAAE,EACtB,4BAA4B,EAAE,MAAM,EACpC,0BAA0B,EAAE,OAAO,EACnC,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,EAAE,OAAO,EACrB,sBAAsB,EAAE,MAAM,GAAG,KAAK,EACtC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,CAAC,CAiCtC;AAED,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,UAAU,EAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,kBAAkB,EAAE,EAAE,EACtB,4BAA4B,EAAE,MAAM,EACpC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,OAAO,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,mBAAmB,EAAE,UAAU,CAAA;CAAE,CAAC,CA6CtE;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAKjE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,6BA4BpE;AAED;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK;;;;GAO3G;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,KAAG,MAK7C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,KAAK,MAAM,EAKtD,CAAC;AAOF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAUtE"}
@@ -24,7 +24,7 @@ import { encodeArgs } from './encoding.js';
24
24
  * @param chainId - The chain ID of the L1 host.
25
25
  * @param privateKey - The private key to be used in contract deployment.
26
26
  * @param mnemonic - The mnemonic to be used in contract deployment.
27
- */ export async function deployAztecContracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, feeJuicePortalInitialBalance, acceleratedTestDeployments, config, realVerifier, createVerificationJson, debugLogger) {
27
+ */ export async function deployAztecContracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, feeJuicePortalInitialBalance, acceleratedTestDeployments, config, existingToken, realVerifier, createVerificationJson, debugLogger) {
28
28
  const { createEthereumChain, deployL1Contracts } = await import('@aztec/ethereum');
29
29
  const { mnemonicToAccount, privateKeyToAccount } = await import('viem/accounts');
30
30
  const account = !privateKey ? mnemonicToAccount(mnemonic, {
@@ -41,6 +41,7 @@ import { encodeArgs } from './encoding.js';
41
41
  acceleratedTestDeployments,
42
42
  feeJuicePortalInitialBalance,
43
43
  realVerifier,
44
+ existingTokenAddress: existingToken,
44
45
  ...config
45
46
  }, config, createVerificationJson);
46
47
  return result;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/cli",
3
- "version": "3.0.0-nightly.20251001",
3
+ "version": "3.0.0-nightly.20251002",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./contracts": "./dest/cmds/contracts/index.js",
@@ -70,20 +70,20 @@
70
70
  ]
71
71
  },
72
72
  "dependencies": {
73
- "@aztec/accounts": "3.0.0-nightly.20251001",
74
- "@aztec/archiver": "3.0.0-nightly.20251001",
75
- "@aztec/aztec.js": "3.0.0-nightly.20251001",
76
- "@aztec/constants": "3.0.0-nightly.20251001",
77
- "@aztec/entrypoints": "3.0.0-nightly.20251001",
78
- "@aztec/ethereum": "3.0.0-nightly.20251001",
79
- "@aztec/foundation": "3.0.0-nightly.20251001",
80
- "@aztec/l1-artifacts": "3.0.0-nightly.20251001",
81
- "@aztec/node-lib": "3.0.0-nightly.20251001",
82
- "@aztec/p2p": "3.0.0-nightly.20251001",
83
- "@aztec/protocol-contracts": "3.0.0-nightly.20251001",
84
- "@aztec/stdlib": "3.0.0-nightly.20251001",
85
- "@aztec/test-wallet": "3.0.0-nightly.20251001",
86
- "@aztec/world-state": "3.0.0-nightly.20251001",
73
+ "@aztec/accounts": "3.0.0-nightly.20251002",
74
+ "@aztec/archiver": "3.0.0-nightly.20251002",
75
+ "@aztec/aztec.js": "3.0.0-nightly.20251002",
76
+ "@aztec/constants": "3.0.0-nightly.20251002",
77
+ "@aztec/entrypoints": "3.0.0-nightly.20251002",
78
+ "@aztec/ethereum": "3.0.0-nightly.20251002",
79
+ "@aztec/foundation": "3.0.0-nightly.20251002",
80
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251002",
81
+ "@aztec/node-lib": "3.0.0-nightly.20251002",
82
+ "@aztec/p2p": "3.0.0-nightly.20251002",
83
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251002",
84
+ "@aztec/stdlib": "3.0.0-nightly.20251002",
85
+ "@aztec/test-wallet": "3.0.0-nightly.20251002",
86
+ "@aztec/world-state": "3.0.0-nightly.20251002",
87
87
  "@iarna/toml": "^2.2.5",
88
88
  "@libp2p/peer-id-factory": "^3.0.4",
89
89
  "commander": "^12.1.0",
@@ -110,15 +110,15 @@
110
110
  "typescript": "^5.3.3"
111
111
  },
112
112
  "peerDependencies": {
113
- "@aztec/accounts": "3.0.0-nightly.20251001",
114
- "@aztec/bb-prover": "3.0.0-nightly.20251001",
115
- "@aztec/ethereum": "3.0.0-nightly.20251001",
116
- "@aztec/l1-artifacts": "3.0.0-nightly.20251001",
117
- "@aztec/noir-contracts.js": "3.0.0-nightly.20251001",
118
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251001",
119
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251001",
120
- "@aztec/protocol-contracts": "3.0.0-nightly.20251001",
121
- "@aztec/stdlib": "3.0.0-nightly.20251001"
113
+ "@aztec/accounts": "3.0.0-nightly.20251002",
114
+ "@aztec/bb-prover": "3.0.0-nightly.20251002",
115
+ "@aztec/ethereum": "3.0.0-nightly.20251002",
116
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251002",
117
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20251002",
118
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251002",
119
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251002",
120
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251002",
121
+ "@aztec/stdlib": "3.0.0-nightly.20251002"
122
122
  },
123
123
  "files": [
124
124
  "dest",
@@ -65,7 +65,7 @@ export async function bootstrapNetwork(
65
65
  accountData.signingKey,
66
66
  );
67
67
 
68
- const defaultAccountAddress = accountManager.getAddress();
68
+ const defaultAccountAddress = accountManager.address;
69
69
 
70
70
  const l1Client = createExtendedL1Client(
71
71
  l1Urls,
@@ -19,13 +19,13 @@ export async function setupL2Contracts(nodeUrl: string, testAccounts: boolean, j
19
19
  if (testAccounts) {
20
20
  log('setupL2Contracts: Deploying test accounts...');
21
21
  const initialAccountsData = await getInitialTestAccountsData();
22
- deployedAccountManagers = await deployFundedSchnorrAccounts(wallet, initialAccountsData, waitOpts);
22
+ deployedAccountManagers = await deployFundedSchnorrAccounts(wallet, node, initialAccountsData, waitOpts);
23
23
  }
24
24
 
25
25
  if (json) {
26
26
  const toPrint: Record<string, AztecAddress> = { ...ProtocolContractAddress };
27
27
  deployedAccountManagers.forEach((a, i) => {
28
- toPrint[`testAccount${i}`] = a.getAddress();
28
+ toPrint[`testAccount${i}`] = a.address;
29
29
  });
30
30
  log(JSON.stringify(toPrint, null, 2));
31
31
  }
@@ -22,6 +22,7 @@ export async function deployL1Contracts(
22
22
  createVerificationJson: string | false,
23
23
  initialValidators: EthAddress[],
24
24
  realVerifier: boolean,
25
+ existingToken: EthAddress | undefined,
25
26
  log: LogFn,
26
27
  debugLogger: Logger,
27
28
  ) {
@@ -50,6 +51,7 @@ export async function deployL1Contracts(
50
51
  fundingNeeded,
51
52
  acceleratedTestDeployments,
52
53
  config,
54
+ existingToken,
53
55
  realVerifier,
54
56
  createVerificationJson,
55
57
  debugLogger,
@@ -48,6 +48,7 @@ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger
48
48
  .option('--sponsored-fpc', 'Populate genesis state with a testing sponsored FPC contract')
49
49
  .option('--accelerated-test-deployments', 'Fire and forget deployment transactions, use in testing only', false)
50
50
  .option('--real-verifier', 'Deploy the real verifier', false)
51
+ .option('--existing-token <address>', 'Use an existing ERC20 for both fee and staking', parseEthereumAddress)
51
52
  .option('--create-verification-json [path]', 'Create JSON file for etherscan contract verification', false)
52
53
  .action(async options => {
53
54
  const { deployL1Contracts } = await import('./deploy_l1_contracts.js');
@@ -68,6 +69,7 @@ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger
68
69
  options.createVerificationJson,
69
70
  initialValidators,
70
71
  options.realVerifier,
72
+ options.existingToken,
71
73
  log,
72
74
  debugLogger,
73
75
  );
@@ -22,13 +22,10 @@ export type L2ChainConfig = L1ContractsConfig &
22
22
  sponsoredFPC: boolean;
23
23
  p2pEnabled: boolean;
24
24
  p2pBootstrapNodes: string[];
25
- registryAddress: string;
26
- slashFactoryAddress: string;
27
- feeAssetHandlerAddress: string;
28
25
  seqMinTxsPerBlock: number;
29
26
  seqMaxTxsPerBlock: number;
30
27
  realProofs: boolean;
31
- snapshotsUrl: string;
28
+ snapshotsUrls: string[];
32
29
  autoUpdate: SharedNodeConfig['autoUpdate'];
33
30
  autoUpdateUrl?: string;
34
31
  maxTxPoolSize: number;
@@ -99,13 +96,10 @@ export const stagingIgnitionL2ChainConfig: L2ChainConfig = {
99
96
  sponsoredFPC: false,
100
97
  p2pEnabled: true,
101
98
  p2pBootstrapNodes: [],
102
- registryAddress: '0x53e2c2148da04fd0e8dd282f016f627a187c292c',
103
- slashFactoryAddress: '0x56448efb139ef440438dfa445333734ea5ed60a0',
104
- feeAssetHandlerAddress: '0x3613b834544030c166a4d47eca14b910f4816f57',
105
99
  seqMinTxsPerBlock: 0,
106
100
  seqMaxTxsPerBlock: 0,
107
101
  realProofs: true,
108
- snapshotsUrl: `${SNAPSHOT_URL}/staging-ignition/`,
102
+ snapshotsUrls: [`${SNAPSHOT_URL}/staging-ignition/`],
109
103
  autoUpdate: 'config-and-version',
110
104
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/staging-ignition.json',
111
105
  maxTxPoolSize: 100_000_000, // 100MB
@@ -182,13 +176,10 @@ export const stagingPublicL2ChainConfig: L2ChainConfig = {
182
176
  sponsoredFPC: true,
183
177
  p2pEnabled: true,
184
178
  p2pBootstrapNodes: [],
185
- registryAddress: '0xe83067689f3cf837ccbf8a3966f0e0fe985dcb3e',
186
- slashFactoryAddress: '0x8b87a1812162d4890f01bb40f410047f37d3ceb8',
187
- feeAssetHandlerAddress: '0xa8159159a9e2a57c6e8c59fd5b3dd94c6dbddfe3',
188
179
  seqMinTxsPerBlock: 0,
189
180
  seqMaxTxsPerBlock: 20,
190
181
  realProofs: true,
191
- snapshotsUrl: `${SNAPSHOT_URL}/staging-public/`,
182
+ snapshotsUrls: [`${SNAPSHOT_URL}/staging-public/`],
192
183
  autoUpdate: 'config-and-version',
193
184
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/staging-public.json',
194
185
  publicIncludeMetrics,
@@ -237,13 +228,10 @@ export const testnetL2ChainConfig: L2ChainConfig = {
237
228
  sponsoredFPC: true,
238
229
  p2pEnabled: true,
239
230
  p2pBootstrapNodes: [],
240
- registryAddress: '0xcfe61b2574984326679cd15c6566fbd4a724f3b4',
241
- slashFactoryAddress: '0x58dc5b14f9d3085c9106f5b8208a1026f94614f0',
242
- feeAssetHandlerAddress: '0x7abdec6e68ae27c37feb6a77371382a109ec4763',
243
231
  seqMinTxsPerBlock: 0,
244
232
  seqMaxTxsPerBlock: 20,
245
233
  realProofs: true,
246
- snapshotsUrl: `${SNAPSHOT_URL}/testnet/`,
234
+ snapshotsUrls: [`${SNAPSHOT_URL}/testnet/`],
247
235
  autoUpdate: 'config-and-version',
248
236
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/testnet.json',
249
237
  maxTxPoolSize: 100_000_000, // 100MB
@@ -294,13 +282,10 @@ export const ignitionL2ChainConfig: L2ChainConfig = {
294
282
  sponsoredFPC: false,
295
283
  p2pEnabled: true,
296
284
  p2pBootstrapNodes: [],
297
- registryAddress: '',
298
- slashFactoryAddress: '',
299
- feeAssetHandlerAddress: '',
300
285
  seqMinTxsPerBlock: 0,
301
286
  seqMaxTxsPerBlock: 0,
302
287
  realProofs: true,
303
- snapshotsUrl: 'https://storage.googleapis.com/aztec-testnet/snapshots/ignition/',
288
+ snapshotsUrls: ['https://storage.googleapis.com/aztec-testnet/snapshots/ignition/'],
304
289
  autoUpdate: 'notify',
305
290
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/ignition.json',
306
291
  maxTxPoolSize: 100_000_000, // 100MB
@@ -436,7 +421,7 @@ export async function enrichEnvironmentWithChainConfig(networkName: NetworkNames
436
421
  enrichVar('SEQ_MAX_TX_PER_BLOCK', config.seqMaxTxsPerBlock.toString());
437
422
  enrichVar('PROVER_REAL_PROOFS', config.realProofs.toString());
438
423
  enrichVar('PXE_PROVER_ENABLED', config.realProofs.toString());
439
- enrichVar('SYNC_SNAPSHOTS_URL', config.snapshotsUrl);
424
+ enrichVar('SYNC_SNAPSHOTS_URLS', config.snapshotsUrls.join(','));
440
425
  enrichVar('P2P_MAX_TX_POOL_SIZE', config.maxTxPoolSize.toString());
441
426
 
442
427
  enrichVar('DATA_STORE_MAP_SIZE_KB', config.dbMapSizeKb.toString());
@@ -465,10 +450,6 @@ export async function enrichEnvironmentWithChainConfig(networkName: NetworkNames
465
450
  enrichVar('PUBLIC_OTEL_COLLECT_FROM', config.publicMetricsCollectFrom.join(','));
466
451
  }
467
452
 
468
- enrichEthAddressVar('REGISTRY_CONTRACT_ADDRESS', config.registryAddress);
469
- enrichEthAddressVar('SLASH_FACTORY_CONTRACT_ADDRESS', config.slashFactoryAddress);
470
- enrichEthAddressVar('FEE_ASSET_HANDLER_CONTRACT_ADDRESS', config.feeAssetHandlerAddress);
471
-
472
453
  // Deployment stuff
473
454
  enrichVar('ETHEREUM_SLOT_DURATION', config.ethereumSlotDuration.toString());
474
455
  enrichVar('AZTEC_SLOT_DURATION', config.aztecSlotDuration.toString());
@@ -56,6 +56,7 @@ export async function deployAztecContracts(
56
56
  feeJuicePortalInitialBalance: bigint,
57
57
  acceleratedTestDeployments: boolean,
58
58
  config: L1ContractsConfig,
59
+ existingToken: EthAddress | undefined,
59
60
  realVerifier: boolean,
60
61
  createVerificationJson: string | false,
61
62
  debugLogger: Logger,
@@ -84,6 +85,7 @@ export async function deployAztecContracts(
84
85
  acceleratedTestDeployments,
85
86
  feeJuicePortalInitialBalance,
86
87
  realVerifier,
88
+ existingTokenAddress: existingToken,
87
89
  ...config,
88
90
  },
89
91
  config,