@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.
- package/dest/cmds/devnet/bootstrap_network.js +1 -1
- package/dest/cmds/infrastructure/setup_l2_contract.js +1 -1
- package/dest/cmds/l1/update_l1_validators.js +12 -4
- package/dest/config/chain_l2_config.d.ts +1 -0
- package/dest/config/chain_l2_config.d.ts.map +1 -1
- package/dest/config/chain_l2_config.js +45 -5
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +1 -6
- package/dest/utils/aztec.js +3 -3
- package/package.json +24 -24
- package/src/cmds/devnet/bootstrap_network.ts +1 -1
- package/src/cmds/infrastructure/setup_l2_contract.ts +1 -1
- package/src/cmds/l1/update_l1_validators.ts +4 -4
- package/src/config/chain_l2_config.ts +59 -5
- package/src/config/network_config.ts +1 -7
- package/src/utils/aztec.ts +3 -3
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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
|
-
`${
|
|
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
|
-
`${
|
|
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
|
-
`${
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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());
|
package/dest/utils/aztec.js
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
74
|
-
"@aztec/archiver": "3.0.0-nightly.
|
|
75
|
-
"@aztec/aztec.js": "3.0.0-nightly.
|
|
76
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
77
|
-
"@aztec/entrypoints": "3.0.0-nightly.
|
|
78
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
79
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
80
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
81
|
-
"@aztec/node-lib": "3.0.0-nightly.
|
|
82
|
-
"@aztec/p2p": "3.0.0-nightly.
|
|
83
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
84
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
85
|
-
"@aztec/test-wallet": "3.0.0-nightly.
|
|
86
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
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.
|
|
114
|
-
"@aztec/bb-prover": "3.0.0-nightly.
|
|
115
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
116
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
117
|
-
"@aztec/noir-contracts.js": "3.0.0-nightly.
|
|
118
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
119
|
-
"@aztec/noir-test-contracts.js": "3.0.0-nightly.
|
|
120
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
121
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
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
|
|
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: [`${
|
|
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: [`${
|
|
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: [`${
|
|
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: [
|
|
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) {
|
package/src/utils/aztec.ts
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
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
|
-
|
|
144
|
+
protocolContractsHash,
|
|
145
145
|
genesisArchiveRoot,
|
|
146
146
|
initialValidators,
|
|
147
147
|
feeJuicePortalInitialBalance,
|