@aztec/cli 3.0.0-nightly.20251005 → 3.0.0-nightly.20251008

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.
@@ -1,7 +1,7 @@
1
1
  import { getInitialTestAccountsData } from '@aztec/accounts/testing';
2
2
  import { BatchCall, Fr, L1FeeJuicePortalManager, createAztecNodeClient, retryUntil, waitForProven } from '@aztec/aztec.js';
3
3
  import { createEthereumChain, createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
4
- import { TestWallet } from '@aztec/test-wallet';
4
+ import { TestWallet } from '@aztec/test-wallet/server';
5
5
  import { getContract } from 'viem';
6
6
  import { mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
7
7
  const waitOpts = {
@@ -2,7 +2,7 @@ import { getInitialTestAccountsData } from '@aztec/accounts/testing';
2
2
  import { createAztecNodeClient } from '@aztec/aztec.js';
3
3
  import { jsonStringify } from '@aztec/foundation/json-rpc';
4
4
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
5
- import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet';
5
+ import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet/server';
6
6
  export async function setupL2Contracts(nodeUrl, testAccounts, json, log) {
7
7
  const waitOpts = {
8
8
  timeout: 180,
@@ -35,7 +35,9 @@ export async function addL1Validator({ rpcUrls, chainId, privateKey, mnemonic, a
35
35
  const gseAddress = await rollup.read.getGSE();
36
36
  const gse = new GSEContract(l1Client, gseAddress);
37
37
  const registrationTuple = await gse.makeRegistrationTuple(blsSecretKey);
38
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, debugLogger);
38
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, {
39
+ logger: debugLogger
40
+ });
39
41
  const proofParamsObj = ZkPassportProofParams.fromBuffer(proofParams);
40
42
  const merkleProofArray = merkleProof.map((proof)=>addLeadingHex(proof));
41
43
  const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
@@ -89,7 +91,9 @@ export async function addL1ValidatorViaRollup({ rpcUrls, chainId, privateKey, mn
89
91
  const gseAddress = await rollup.read.getGSE();
90
92
  const gse = new GSEContract(l1Client, gseAddress);
91
93
  const registrationTuple = await gse.makeRegistrationTuple(blsSecretKey);
92
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, debugLogger);
94
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, {
95
+ logger: debugLogger
96
+ });
93
97
  const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
94
98
  to: rollupAddress.toString(),
95
99
  data: encodeFunctionData({
@@ -129,7 +133,9 @@ export async function removeL1Validator({ rpcUrls, chainId, privateKey, mnemonic
129
133
  const account = getAccount(privateKey, mnemonic);
130
134
  const chain = createEthereumChain(rpcUrls, chainId);
131
135
  const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
132
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, debugLogger);
136
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, {
137
+ logger: debugLogger
138
+ });
133
139
  dualLog(`Removing validator ${validatorAddress.toString()} from rollup ${rollupAddress.toString()}`);
134
140
  const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
135
141
  to: rollupAddress.toString(),
@@ -149,7 +155,9 @@ export async function pruneRollup({ rpcUrls, chainId, privateKey, mnemonic, roll
149
155
  const account = getAccount(privateKey, mnemonic);
150
156
  const chain = createEthereumChain(rpcUrls, chainId);
151
157
  const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
152
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, debugLogger);
158
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, {
159
+ logger: debugLogger
160
+ });
153
161
  dualLog(`Trying prune`);
154
162
  const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
155
163
  to: rollupAddress.toString(),
@@ -27,6 +27,7 @@ export type L2ChainConfig = L1ContractsConfig & Omit<SlasherConfig, 'slashValida
27
27
  };
28
28
  export declare const stagingIgnitionL2ChainConfig: L2ChainConfig;
29
29
  export declare const stagingPublicL2ChainConfig: L2ChainConfig;
30
+ export declare const nextNetL2ChainConfig: L2ChainConfig;
30
31
  export declare const testnetL2ChainConfig: L2ChainConfig;
31
32
  export declare const ignitionL2ChainConfig: L2ChainConfig;
32
33
  export declare function getBootnodes(networkName: NetworkNames, cacheDir?: string): Promise<any>;
@@ -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,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"}
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,aAkDlC,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,CAsBpC;AAMD,wBAAsB,gCAAgC,CAAC,WAAW,EAAE,YAAY,iBA4F/E"}
@@ -6,7 +6,7 @@ import publicIncludeMetrics from '../../public_include_metric_prefixes.json' wit
6
6
  };
7
7
  import { cachedFetch } from './cached_fetch.js';
8
8
  import { enrichEthAddressVar, enrichVar } from './enrich_env.js';
9
- const SNAPSHOT_URL = 'https://pub-f4a8c34d4bb7441ebf8f48d904512180.r2.dev/snapshots';
9
+ const SNAPSHOTS_URL = 'https://aztec-labs-snapshots.com';
10
10
  const defaultDBMapSizeKb = 128 * 1_024 * 1_024; // 128 GB
11
11
  const tbMapSizeKb = 1_024 * 1_024 * 1_024; // 1 TB
12
12
  const DefaultSlashConfig = {
@@ -54,7 +54,7 @@ export const stagingIgnitionL2ChainConfig = {
54
54
  seqMaxTxsPerBlock: 0,
55
55
  realProofs: true,
56
56
  snapshotsUrls: [
57
- `${SNAPSHOT_URL}/staging-ignition/`
57
+ `${SNAPSHOTS_URL}/staging-ignition/`
58
58
  ],
59
59
  autoUpdate: 'config-and-version',
60
60
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/staging-ignition.json',
@@ -119,7 +119,7 @@ export const stagingPublicL2ChainConfig = {
119
119
  seqMaxTxsPerBlock: 20,
120
120
  realProofs: true,
121
121
  snapshotsUrls: [
122
- `${SNAPSHOT_URL}/staging-public/`
122
+ `${SNAPSHOTS_URL}/staging-public/`
123
123
  ],
124
124
  autoUpdate: 'config-and-version',
125
125
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/staging-public.json',
@@ -147,6 +147,42 @@ export const stagingPublicL2ChainConfig = {
147
147
  ...DefaultSlashConfig,
148
148
  ...DefaultNetworkDBMapSizeConfig
149
149
  };
150
+ export const nextNetL2ChainConfig = {
151
+ l1ChainId: 11155111,
152
+ testAccounts: true,
153
+ sponsoredFPC: true,
154
+ p2pEnabled: true,
155
+ p2pBootstrapNodes: [],
156
+ seqMinTxsPerBlock: 0,
157
+ seqMaxTxsPerBlock: 8,
158
+ realProofs: true,
159
+ snapshotsUrls: [],
160
+ autoUpdate: 'config-and-version',
161
+ autoUpdateUrl: '',
162
+ publicIncludeMetrics,
163
+ publicMetricsCollectorUrl: '',
164
+ publicMetricsCollectFrom: [
165
+ ''
166
+ ],
167
+ maxTxPoolSize: 100_000_000,
168
+ // Deployment stuff
169
+ /** How many seconds an L1 slot lasts. */ ethereumSlotDuration: 12,
170
+ /** How many seconds an L2 slots lasts (must be multiple of ethereum slot duration). */ aztecSlotDuration: 36,
171
+ /** How many L2 slots an epoch lasts. */ aztecEpochDuration: 32,
172
+ /** The target validator committee size. */ aztecTargetCommitteeSize: 48,
173
+ /** The number of epochs to lag behind the current epoch for validator selection. */ lagInEpochs: DefaultL1ContractsConfig.lagInEpochs,
174
+ /** The local ejection threshold for a validator. Stricter than ejectionThreshold but local to a specific rollup */ localEjectionThreshold: DefaultL1ContractsConfig.localEjectionThreshold,
175
+ /** The number of epochs after an epoch ends that proofs are still accepted. */ aztecProofSubmissionEpochs: 1,
176
+ /** The deposit amount for a validator */ activationThreshold: DefaultL1ContractsConfig.activationThreshold,
177
+ /** The minimum stake for a validator. */ ejectionThreshold: DefaultL1ContractsConfig.ejectionThreshold,
178
+ /** The slashing round size */ slashingRoundSizeInEpochs: DefaultL1ContractsConfig.slashingRoundSizeInEpochs,
179
+ /** Governance proposing round size */ governanceProposerRoundSize: DefaultL1ContractsConfig.governanceProposerRoundSize,
180
+ /** The mana target for the rollup */ manaTarget: DefaultL1ContractsConfig.manaTarget,
181
+ /** The proving cost per mana */ provingCostPerMana: DefaultL1ContractsConfig.provingCostPerMana,
182
+ /** Exit delay for stakers */ exitDelaySeconds: DefaultL1ContractsConfig.exitDelaySeconds,
183
+ ...DefaultSlashConfig,
184
+ ...DefaultNetworkDBMapSizeConfig
185
+ };
150
186
  export const testnetL2ChainConfig = {
151
187
  l1ChainId: 11155111,
152
188
  testAccounts: false,
@@ -157,7 +193,7 @@ export const testnetL2ChainConfig = {
157
193
  seqMaxTxsPerBlock: 20,
158
194
  realProofs: true,
159
195
  snapshotsUrls: [
160
- `${SNAPSHOT_URL}/testnet/`
196
+ `${SNAPSHOTS_URL}/testnet/`
161
197
  ],
162
198
  autoUpdate: 'config-and-version',
163
199
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/testnet.json',
@@ -197,7 +233,7 @@ export const ignitionL2ChainConfig = {
197
233
  seqMaxTxsPerBlock: 0,
198
234
  realProofs: true,
199
235
  snapshotsUrls: [
200
- 'https://storage.googleapis.com/aztec-testnet/snapshots/ignition/'
236
+ `${SNAPSHOTS_URL}/ignition/`
201
237
  ],
202
238
  autoUpdate: 'notify',
203
239
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/ignition.json',
@@ -279,6 +315,10 @@ export async function getL2ChainConfig(networkName, cacheDir) {
279
315
  config = {
280
316
  ...ignitionL2ChainConfig
281
317
  };
318
+ } else if (networkName === 'next-net') {
319
+ config = {
320
+ ...nextNetL2ChainConfig
321
+ };
282
322
  }
283
323
  if (!config) {
284
324
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"network_config.d.ts","sourceRoot":"","sources":["../../src/config/network_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA0B,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAYzG;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAiDpC;AAED;;;;;;GAMG;AACH,wBAAsB,kCAAkC,CAAC,WAAW,EAAE,YAAY,iBA0BjF"}
1
+ {"version":3,"file":"network_config.d.ts","sourceRoot":"","sources":["../../src/config/network_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA0B,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAYzG;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAiDpC;AAED;;;;;;GAMG;AACH,wBAAsB,kCAAkC,CAAC,WAAW,EAAE,YAAY,iBAoBjF"}
@@ -71,12 +71,7 @@ const NETWORK_CONFIG_CACHE_DURATION_MS = 60 * 60 * 1000; // 1 hour
71
71
  }
72
72
  enrichVar('BOOTSTRAP_NODES', networkConfig.bootnodes.join(','));
73
73
  enrichVar('L1_CHAIN_ID', String(networkConfig.l1ChainId));
74
- // Snapshot synch only supports a single source. Take the first
75
- // See A-101 for more details
76
- const firstSource = networkConfig[0];
77
- if (firstSource) {
78
- enrichVar('SYNC_SNAPSHOTS_URL', networkConfig.snapshots.join(','));
79
- }
74
+ enrichVar('SYNC_SNAPSHOTS_URLS', networkConfig.snapshots.join(','));
80
75
  enrichEthAddressVar('REGISTRY_CONTRACT_ADDRESS', networkConfig.registryAddress.toString());
81
76
  if (networkConfig.feeAssetHandlerAddress) {
82
77
  enrichEthAddressVar('FEE_ASSET_HANDLER_CONTRACT_ADDRESS', networkConfig.feeAssetHandlerAddress.toString());
@@ -2,7 +2,7 @@ import { EthAddress } from '@aztec/aztec.js';
2
2
  import { FunctionType, getAllFunctionAbis, loadContractArtifact } from '@aztec/aztec.js/abi';
3
3
  import { SecretValue } from '@aztec/foundation/config';
4
4
  import { Fr } from '@aztec/foundation/fields';
5
- import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
5
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
6
6
  import TOML from '@iarna/toml';
7
7
  import { readFile } from 'fs/promises';
8
8
  import { encodeArgs } from './encoding.js';
@@ -34,7 +34,7 @@ import { encodeArgs } from './encoding.js';
34
34
  const { getVKTreeRoot } = await import('@aztec/noir-protocol-circuits-types/vk-tree');
35
35
  const result = await deployL1Contracts(chain.rpcUrls, account, chain.chainInfo, debugLogger, {
36
36
  vkTreeRoot: getVKTreeRoot(),
37
- protocolContractTreeRoot,
37
+ protocolContractsHash,
38
38
  genesisArchiveRoot,
39
39
  salt,
40
40
  initialValidators,
@@ -74,7 +74,7 @@ export async function deployNewRollupContracts(registryAddress, rpcUrls, chainId
74
74
  const { rollup, slashFactoryAddress } = await deployRollupForUpgrade(client, {
75
75
  salt,
76
76
  vkTreeRoot: getVKTreeRoot(),
77
- protocolContractTreeRoot,
77
+ protocolContractsHash,
78
78
  genesisArchiveRoot,
79
79
  initialValidators,
80
80
  feeJuicePortalInitialBalance,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/cli",
3
- "version": "3.0.0-nightly.20251005",
3
+ "version": "3.0.0-nightly.20251008",
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.20251005",
74
- "@aztec/archiver": "3.0.0-nightly.20251005",
75
- "@aztec/aztec.js": "3.0.0-nightly.20251005",
76
- "@aztec/constants": "3.0.0-nightly.20251005",
77
- "@aztec/entrypoints": "3.0.0-nightly.20251005",
78
- "@aztec/ethereum": "3.0.0-nightly.20251005",
79
- "@aztec/foundation": "3.0.0-nightly.20251005",
80
- "@aztec/l1-artifacts": "3.0.0-nightly.20251005",
81
- "@aztec/node-lib": "3.0.0-nightly.20251005",
82
- "@aztec/p2p": "3.0.0-nightly.20251005",
83
- "@aztec/protocol-contracts": "3.0.0-nightly.20251005",
84
- "@aztec/stdlib": "3.0.0-nightly.20251005",
85
- "@aztec/test-wallet": "3.0.0-nightly.20251005",
86
- "@aztec/world-state": "3.0.0-nightly.20251005",
73
+ "@aztec/accounts": "3.0.0-nightly.20251008",
74
+ "@aztec/archiver": "3.0.0-nightly.20251008",
75
+ "@aztec/aztec.js": "3.0.0-nightly.20251008",
76
+ "@aztec/constants": "3.0.0-nightly.20251008",
77
+ "@aztec/entrypoints": "3.0.0-nightly.20251008",
78
+ "@aztec/ethereum": "3.0.0-nightly.20251008",
79
+ "@aztec/foundation": "3.0.0-nightly.20251008",
80
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251008",
81
+ "@aztec/node-lib": "3.0.0-nightly.20251008",
82
+ "@aztec/p2p": "3.0.0-nightly.20251008",
83
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251008",
84
+ "@aztec/stdlib": "3.0.0-nightly.20251008",
85
+ "@aztec/test-wallet": "3.0.0-nightly.20251008",
86
+ "@aztec/world-state": "3.0.0-nightly.20251008",
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.20251005",
114
- "@aztec/bb-prover": "3.0.0-nightly.20251005",
115
- "@aztec/ethereum": "3.0.0-nightly.20251005",
116
- "@aztec/l1-artifacts": "3.0.0-nightly.20251005",
117
- "@aztec/noir-contracts.js": "3.0.0-nightly.20251005",
118
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251005",
119
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251005",
120
- "@aztec/protocol-contracts": "3.0.0-nightly.20251005",
121
- "@aztec/stdlib": "3.0.0-nightly.20251005"
113
+ "@aztec/accounts": "3.0.0-nightly.20251008",
114
+ "@aztec/bb-prover": "3.0.0-nightly.20251008",
115
+ "@aztec/ethereum": "3.0.0-nightly.20251008",
116
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251008",
117
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20251008",
118
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251008",
119
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20251008",
120
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251008",
121
+ "@aztec/stdlib": "3.0.0-nightly.20251008"
122
122
  },
123
123
  "files": [
124
124
  "dest",
@@ -21,7 +21,7 @@ import {
21
21
  deployL1Contract,
22
22
  } from '@aztec/ethereum';
23
23
  import type { LogFn, Logger } from '@aztec/foundation/log';
24
- import { TestWallet } from '@aztec/test-wallet';
24
+ import { TestWallet } from '@aztec/test-wallet/server';
25
25
 
26
26
  import { getContract } from 'viem';
27
27
  import { mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
@@ -3,7 +3,7 @@ import { AccountManager, type AztecAddress, type WaitOpts, createAztecNodeClient
3
3
  import { jsonStringify } from '@aztec/foundation/json-rpc';
4
4
  import type { LogFn } from '@aztec/foundation/log';
5
5
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
6
- import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet';
6
+ import { TestWallet, deployFundedSchnorrAccounts } from '@aztec/test-wallet/server';
7
7
 
8
8
  export async function setupL2Contracts(nodeUrl: string, testAccounts: boolean, json: boolean, log: LogFn) {
9
9
  const waitOpts: WaitOpts = {
@@ -97,7 +97,7 @@ export async function addL1Validator({
97
97
 
98
98
  const registrationTuple = await gse.makeRegistrationTuple(blsSecretKey);
99
99
 
100
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, debugLogger);
100
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, { logger: debugLogger });
101
101
  const proofParamsObj = ZkPassportProofParams.fromBuffer(proofParams);
102
102
  const merkleProofArray = merkleProof.map(proof => addLeadingHex(proof));
103
103
 
@@ -173,7 +173,7 @@ export async function addL1ValidatorViaRollup({
173
173
 
174
174
  const registrationTuple = await gse.makeRegistrationTuple(blsSecretKey);
175
175
 
176
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, debugLogger);
176
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, { logger: debugLogger });
177
177
 
178
178
  const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
179
179
  to: rollupAddress.toString(),
@@ -220,7 +220,7 @@ export async function removeL1Validator({
220
220
  const account = getAccount(privateKey, mnemonic);
221
221
  const chain = createEthereumChain(rpcUrls, chainId);
222
222
  const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
223
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, debugLogger);
223
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, { logger: debugLogger });
224
224
 
225
225
  dualLog(`Removing validator ${validatorAddress.toString()} from rollup ${rollupAddress.toString()}`);
226
226
  const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
@@ -247,7 +247,7 @@ export async function pruneRollup({
247
247
  const account = getAccount(privateKey, mnemonic);
248
248
  const chain = createEthereumChain(rpcUrls, chainId);
249
249
  const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
250
- const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, debugLogger);
250
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, { logger: debugLogger });
251
251
 
252
252
  dualLog(`Trying prune`);
253
253
  const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
@@ -10,7 +10,7 @@ import publicIncludeMetrics from '../../public_include_metric_prefixes.json' wit
10
10
  import { cachedFetch } from './cached_fetch.js';
11
11
  import { enrichEthAddressVar, enrichVar } from './enrich_env.js';
12
12
 
13
- const SNAPSHOT_URL = 'https://pub-f4a8c34d4bb7441ebf8f48d904512180.r2.dev/snapshots';
13
+ const SNAPSHOTS_URL = 'https://aztec-labs-snapshots.com';
14
14
 
15
15
  const defaultDBMapSizeKb = 128 * 1_024 * 1_024; // 128 GB
16
16
  const tbMapSizeKb = 1_024 * 1_024 * 1_024; // 1 TB
@@ -99,7 +99,7 @@ export const stagingIgnitionL2ChainConfig: L2ChainConfig = {
99
99
  seqMinTxsPerBlock: 0,
100
100
  seqMaxTxsPerBlock: 0,
101
101
  realProofs: true,
102
- snapshotsUrls: [`${SNAPSHOT_URL}/staging-ignition/`],
102
+ snapshotsUrls: [`${SNAPSHOTS_URL}/staging-ignition/`],
103
103
  autoUpdate: 'config-and-version',
104
104
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/staging-ignition.json',
105
105
  maxTxPoolSize: 100_000_000, // 100MB
@@ -179,7 +179,7 @@ export const stagingPublicL2ChainConfig: L2ChainConfig = {
179
179
  seqMinTxsPerBlock: 0,
180
180
  seqMaxTxsPerBlock: 20,
181
181
  realProofs: true,
182
- snapshotsUrls: [`${SNAPSHOT_URL}/staging-public/`],
182
+ snapshotsUrls: [`${SNAPSHOTS_URL}/staging-public/`],
183
183
  autoUpdate: 'config-and-version',
184
184
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/staging-public.json',
185
185
  publicIncludeMetrics,
@@ -222,6 +222,58 @@ export const stagingPublicL2ChainConfig: L2ChainConfig = {
222
222
  ...DefaultNetworkDBMapSizeConfig,
223
223
  };
224
224
 
225
+ export const nextNetL2ChainConfig: L2ChainConfig = {
226
+ l1ChainId: 11155111,
227
+ testAccounts: true,
228
+ sponsoredFPC: true,
229
+ p2pEnabled: true,
230
+ p2pBootstrapNodes: [],
231
+ seqMinTxsPerBlock: 0,
232
+ seqMaxTxsPerBlock: 8,
233
+ realProofs: true,
234
+ snapshotsUrls: [],
235
+ autoUpdate: 'config-and-version',
236
+ autoUpdateUrl: '',
237
+ publicIncludeMetrics,
238
+ publicMetricsCollectorUrl: '',
239
+ publicMetricsCollectFrom: [''],
240
+ maxTxPoolSize: 100_000_000, // 100MB
241
+
242
+ // Deployment stuff
243
+ /** How many seconds an L1 slot lasts. */
244
+ ethereumSlotDuration: 12,
245
+ /** How many seconds an L2 slots lasts (must be multiple of ethereum slot duration). */
246
+ aztecSlotDuration: 36,
247
+ /** How many L2 slots an epoch lasts. */
248
+ aztecEpochDuration: 32,
249
+ /** The target validator committee size. */
250
+ aztecTargetCommitteeSize: 48,
251
+ /** The number of epochs to lag behind the current epoch for validator selection. */
252
+ lagInEpochs: DefaultL1ContractsConfig.lagInEpochs,
253
+ /** The local ejection threshold for a validator. Stricter than ejectionThreshold but local to a specific rollup */
254
+ localEjectionThreshold: DefaultL1ContractsConfig.localEjectionThreshold,
255
+ /** The number of epochs after an epoch ends that proofs are still accepted. */
256
+ aztecProofSubmissionEpochs: 1,
257
+ /** The deposit amount for a validator */
258
+ activationThreshold: DefaultL1ContractsConfig.activationThreshold,
259
+ /** The minimum stake for a validator. */
260
+ ejectionThreshold: DefaultL1ContractsConfig.ejectionThreshold,
261
+ /** The slashing round size */
262
+ slashingRoundSizeInEpochs: DefaultL1ContractsConfig.slashingRoundSizeInEpochs,
263
+ /** Governance proposing round size */
264
+ governanceProposerRoundSize: DefaultL1ContractsConfig.governanceProposerRoundSize,
265
+ /** The mana target for the rollup */
266
+ manaTarget: DefaultL1ContractsConfig.manaTarget,
267
+ /** The proving cost per mana */
268
+ provingCostPerMana: DefaultL1ContractsConfig.provingCostPerMana,
269
+ /** Exit delay for stakers */
270
+ exitDelaySeconds: DefaultL1ContractsConfig.exitDelaySeconds,
271
+
272
+ ...DefaultSlashConfig,
273
+
274
+ ...DefaultNetworkDBMapSizeConfig,
275
+ };
276
+
225
277
  export const testnetL2ChainConfig: L2ChainConfig = {
226
278
  l1ChainId: 11155111,
227
279
  testAccounts: false,
@@ -231,7 +283,7 @@ export const testnetL2ChainConfig: L2ChainConfig = {
231
283
  seqMinTxsPerBlock: 0,
232
284
  seqMaxTxsPerBlock: 20,
233
285
  realProofs: true,
234
- snapshotsUrls: [`${SNAPSHOT_URL}/testnet/`],
286
+ snapshotsUrls: [`${SNAPSHOTS_URL}/testnet/`],
235
287
  autoUpdate: 'config-and-version',
236
288
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/testnet.json',
237
289
  maxTxPoolSize: 100_000_000, // 100MB
@@ -285,7 +337,7 @@ export const ignitionL2ChainConfig: L2ChainConfig = {
285
337
  seqMinTxsPerBlock: 0,
286
338
  seqMaxTxsPerBlock: 0,
287
339
  realProofs: true,
288
- snapshotsUrls: ['https://storage.googleapis.com/aztec-testnet/snapshots/ignition/'],
340
+ snapshotsUrls: [`${SNAPSHOTS_URL}/ignition/`],
289
341
  autoUpdate: 'notify',
290
342
  autoUpdateUrl: 'https://storage.googleapis.com/aztec-testnet/auto-update/ignition.json',
291
343
  maxTxPoolSize: 100_000_000, // 100MB
@@ -383,6 +435,8 @@ export async function getL2ChainConfig(
383
435
  config = { ...stagingIgnitionL2ChainConfig };
384
436
  } else if (networkName === 'ignition') {
385
437
  config = { ...ignitionL2ChainConfig };
438
+ } else if (networkName === 'next-net') {
439
+ config = { ...nextNetL2ChainConfig };
386
440
  }
387
441
  if (!config) {
388
442
  return undefined;
@@ -93,13 +93,7 @@ export async function enrichEnvironmentWithNetworkConfig(networkName: NetworkNam
93
93
 
94
94
  enrichVar('BOOTSTRAP_NODES', networkConfig.bootnodes.join(','));
95
95
  enrichVar('L1_CHAIN_ID', String(networkConfig.l1ChainId));
96
-
97
- // Snapshot synch only supports a single source. Take the first
98
- // See A-101 for more details
99
- const firstSource = networkConfig[0];
100
- if (firstSource) {
101
- enrichVar('SYNC_SNAPSHOTS_URL', networkConfig.snapshots.join(','));
102
- }
96
+ enrichVar('SYNC_SNAPSHOTS_URLS', networkConfig.snapshots.join(','));
103
97
 
104
98
  enrichEthAddressVar('REGISTRY_CONTRACT_ADDRESS', networkConfig.registryAddress.toString());
105
99
  if (networkConfig.feeAssetHandlerAddress) {
@@ -16,7 +16,7 @@ import { SecretValue } from '@aztec/foundation/config';
16
16
  import { Fr } from '@aztec/foundation/fields';
17
17
  import type { LogFn, Logger } from '@aztec/foundation/log';
18
18
  import type { NoirPackageConfig } from '@aztec/foundation/noir';
19
- import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
19
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
20
20
 
21
21
  import TOML from '@iarna/toml';
22
22
  import { readFile } from 'fs/promises';
@@ -78,7 +78,7 @@ export async function deployAztecContracts(
78
78
  debugLogger,
79
79
  {
80
80
  vkTreeRoot: getVKTreeRoot(),
81
- protocolContractTreeRoot,
81
+ protocolContractsHash,
82
82
  genesisArchiveRoot,
83
83
  salt,
84
84
  initialValidators,
@@ -141,7 +141,7 @@ export async function deployNewRollupContracts(
141
141
  {
142
142
  salt,
143
143
  vkTreeRoot: getVKTreeRoot(),
144
- protocolContractTreeRoot,
144
+ protocolContractsHash,
145
145
  genesisArchiveRoot,
146
146
  initialValidators,
147
147
  feeJuicePortalInitialBalance,