@aztec/aztec 0.82.2 → 0.82.3-nightly.20250330

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 +1 @@
1
- {"version":3,"file":"aztec_start_options.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_options.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EAIZ,MAAM,0BAA0B,CAAC;AAelC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,cAAe,MAAM,kBAAkB,OAAO,MAAM,EAAE,aAAa,CAAC,uBAiB1F,CAAC;AAGF,eAAO,MAAM,gBAAgB,UAU5B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CA4VlE,CAAC"}
1
+ {"version":3,"file":"aztec_start_options.d.ts","sourceRoot":"","sources":["../../src/cli/aztec_start_options.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,MAAM,EAIZ,MAAM,0BAA0B,CAAC;AAelC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,GAAG,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IACpC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;CACjC;AAED,eAAO,MAAM,UAAU,cAAe,MAAM,kBAAkB,OAAO,MAAM,EAAE,aAAa,CAAC,uBAiB1F,CAAC;AAGF,eAAO,MAAM,gBAAgB,UAU5B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CAyWlE,CAAC"}
@@ -58,13 +58,13 @@ export const aztecStartOptions = {
58
58
  envVar: undefined
59
59
  },
60
60
  {
61
- flag: '--sandbox.testAccounts',
61
+ flag: '--sandbox.testAccounts [value]',
62
62
  description: 'Deploy test accounts on sandbox start',
63
63
  envVar: 'TEST_ACCOUNTS',
64
- ...booleanConfigHelper(true)
64
+ ...booleanConfigHelper()
65
65
  },
66
66
  {
67
- flag: '--sandbox.noPXE',
67
+ flag: '--sandbox.noPXE [value]',
68
68
  description: 'Do not expose PXE service on sandbox start',
69
69
  envVar: 'NO_PXE',
70
70
  ...booleanConfigHelper()
@@ -241,15 +241,27 @@ export const aztecStartOptions = {
241
241
  parseVal: (val)=>parseInt(val, 10)
242
242
  },
243
243
  {
244
- flag: '--node.testAccounts',
244
+ flag: '--node.testAccounts [value]',
245
245
  description: 'Populate genesis state with initial fee juice for test accounts',
246
246
  envVar: 'TEST_ACCOUNTS',
247
247
  ...booleanConfigHelper()
248
+ },
249
+ {
250
+ flag: '--node.syncMode <value>',
251
+ description: 'Set sync mode to `full` to always sync via L1, `snapshot` to download a snapshot if there is no local data, `force-snapshot` to download even if there is local data.',
252
+ defaultValue: 'snapshot',
253
+ envVar: 'SYNC_MODE'
254
+ },
255
+ {
256
+ flag: '--node.snapshotsUrl <value>',
257
+ description: 'Base URL for downloading snapshots for snapshot sync.',
258
+ defaultValue: undefined,
259
+ envVar: 'SYNC_SNAPSHOTS_URL'
248
260
  }
249
261
  ],
250
262
  'P2P SUBSYSTEM': [
251
263
  {
252
- flag: '--p2p-enabled',
264
+ flag: '--p2p-enabled [value]',
253
265
  description: 'Enable P2P subsystem',
254
266
  envVar: 'P2P_ENABLED',
255
267
  ...booleanConfigHelper()
@@ -6,12 +6,16 @@ export type L2ChainConfig = {
6
6
  aztecEpochDuration: number;
7
7
  aztecProofSubmissionWindow: number;
8
8
  testAccounts: boolean;
9
+ sponsoredFPC: boolean;
9
10
  p2pEnabled: boolean;
10
11
  p2pBootstrapNodes: string[];
11
12
  registryAddress: string;
13
+ slashFactoryAddress: string;
14
+ feeAssetHandlerAddress: string;
12
15
  seqMinTxsPerBlock: number;
13
16
  seqMaxTxsPerBlock: number;
14
17
  realProofs: boolean;
18
+ snapshotsUrl: string;
15
19
  };
16
20
  export declare const testnetIgnitionL2ChainConfig: L2ChainConfig;
17
21
  export declare const alphaTestnetL2ChainConfig: L2ChainConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"chain_l2_config.d.ts","sourceRoot":"","sources":["../../src/cli/chain_l2_config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,aAa1C,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,aAavC,CAAC;AAEF,wBAAsB,YAAY,CAAC,WAAW,EAAE,YAAY,gBAW3D;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAWpG;AAUD,wBAAsB,gCAAgC,CAAC,WAAW,EAAE,YAAY,iBAmB/E"}
1
+ {"version":3,"file":"chain_l2_config.d.ts","sourceRoot":"","sources":["../../src/cli/chain_l2_config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,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;CACtB,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,aAiB1C,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,aAiBvC,CAAC;AAEF,wBAAsB,YAAY,CAAC,WAAW,EAAE,YAAY,gBAW3D;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAWpG;AAUD,wBAAsB,gCAAgC,CAAC,WAAW,EAAE,YAAY,iBAuB/E"}
@@ -6,12 +6,16 @@ export const testnetIgnitionL2ChainConfig = {
6
6
  aztecEpochDuration: 32,
7
7
  aztecProofSubmissionWindow: 64,
8
8
  testAccounts: true,
9
+ sponsoredFPC: false,
9
10
  p2pEnabled: true,
10
11
  p2pBootstrapNodes: [],
11
12
  registryAddress: '0x12b3ebc176a1646b911391eab3760764f2e05fe3',
13
+ slashFactoryAddress: '',
14
+ feeAssetHandlerAddress: '',
12
15
  seqMinTxsPerBlock: 0,
13
16
  seqMaxTxsPerBlock: 0,
14
- realProofs: true
17
+ realProofs: true,
18
+ snapshotsUrl: 'https://storage.googleapis.com/aztec-testnet/snapshots/'
15
19
  };
16
20
  export const alphaTestnetL2ChainConfig = {
17
21
  l1ChainId: 11155111,
@@ -19,13 +23,17 @@ export const alphaTestnetL2ChainConfig = {
19
23
  aztecSlotDuration: 36,
20
24
  aztecEpochDuration: 32,
21
25
  aztecProofSubmissionWindow: 64,
22
- testAccounts: false,
26
+ testAccounts: true,
27
+ sponsoredFPC: true,
23
28
  p2pEnabled: true,
24
29
  p2pBootstrapNodes: [],
25
- registryAddress: '',
30
+ registryAddress: '0xad85d55a4bbef35e95396191c22903aa717edf1c',
31
+ slashFactoryAddress: '0xf667f50fd68b30c38b12d29fee537fa5ea158eb8',
32
+ feeAssetHandlerAddress: '0xf0664fec6ac15313e18d5ad8225e46b7c6463338',
26
33
  seqMinTxsPerBlock: 0,
27
34
  seqMaxTxsPerBlock: 4,
28
- realProofs: true
35
+ realProofs: true,
36
+ snapshotsUrl: 'https://storage.googleapis.com/aztec-testnet/snapshots/'
29
37
  };
30
38
  export async function getBootnodes(networkName) {
31
39
  const url = `http://static.aztec.network/${networkName}/bootnodes.json`;
@@ -70,12 +78,16 @@ export async function enrichEnvironmentWithChainConfig(networkName) {
70
78
  enrichVar('AZTEC_PROOF_SUBMISSION_WINDOW', config.aztecProofSubmissionWindow.toString());
71
79
  enrichVar('BOOTSTRAP_NODES', config.p2pBootstrapNodes.join(','));
72
80
  enrichVar('TEST_ACCOUNTS', config.testAccounts.toString());
81
+ enrichVar('SPONSORED_FPC', config.sponsoredFPC.toString());
73
82
  enrichVar('P2P_ENABLED', config.p2pEnabled.toString());
74
83
  enrichVar('L1_CHAIN_ID', config.l1ChainId.toString());
75
84
  enrichVar('REGISTRY_CONTRACT_ADDRESS', config.registryAddress);
85
+ enrichVar('SLASH_FACTORY_CONTRACT_ADDRESS', config.slashFactoryAddress);
86
+ enrichVar('FEE_ASSET_HANDLER_CONTRACT_ADDRESS', config.feeAssetHandlerAddress);
76
87
  enrichVar('SEQ_MIN_TX_PER_BLOCK', config.seqMinTxsPerBlock.toString());
77
88
  enrichVar('SEQ_MAX_TX_PER_BLOCK', config.seqMaxTxsPerBlock.toString());
78
89
  enrichVar('DATA_DIRECTORY', path.join(process.env.HOME || '~', '.aztec', networkName, 'data'));
79
90
  enrichVar('PROVER_REAL_PROOFS', config.realProofs.toString());
80
91
  enrichVar('PXE_PROVER_ENABLED', config.realProofs.toString());
92
+ enrichVar('SYNC_SNAPSHOTS_URL', config.snapshotsUrl);
81
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAA6C,MAAM,mBAAmB,CAAC;AAEpG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAgBnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CA2ItC"}
1
+ {"version":3,"file":"start_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAA6C,MAAM,mBAAmB,CAAC;AAGpG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAgBnD,wBAAsB,SAAS,CAC7B,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CAiJtC"}
@@ -1,5 +1,6 @@
1
1
  import { getInitialTestAccounts } from '@aztec/accounts/testing';
2
2
  import { aztecNodeConfigMappings, getConfigEnvVars } from '@aztec/aztec-node';
3
+ import { getSponsoredFPCAddress } from '@aztec/cli/cli-utils';
3
4
  import { NULL_KEY } from '@aztec/ethereum';
4
5
  import { AztecNodeAdminApiSchema, AztecNodeApiSchema } from '@aztec/stdlib/interfaces/client';
5
6
  import { P2PApiSchema } from '@aztec/stdlib/interfaces/server';
@@ -26,8 +27,15 @@ export async function startNode(options, signalHandlers, services, adminServices
26
27
  process.exit(1);
27
28
  }
28
29
  await preloadCrsDataForVerifying(nodeConfig, userLog);
29
- const initialFundedAccounts = nodeConfig.testAccounts ? await getInitialTestAccounts() : [];
30
- const { genesisBlockHash, genesisArchiveRoot, prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address));
30
+ const testAccounts = nodeConfig.testAccounts ? (await getInitialTestAccounts()).map((a)=>a.address) : [];
31
+ const sponsoredFPCAccounts = nodeConfig.sponsoredFPC ? [
32
+ await getSponsoredFPCAddress()
33
+ ] : [];
34
+ const initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts);
35
+ userLog(`Initial funded accounts: ${initialFundedAccounts.map((a)=>a.toString()).join(', ')}`);
36
+ const { genesisBlockHash, genesisArchiveRoot, prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
37
+ userLog(`Genesis block hash: ${genesisBlockHash.toString()}`);
38
+ userLog(`Genesis archive root: ${genesisArchiveRoot.toString()}`);
31
39
  // Deploy contracts if needed
32
40
  if (nodeSpecificOptions.deployAztecContracts || nodeSpecificOptions.deployAztecContractsSalt) {
33
41
  let account;
@@ -1 +1 @@
1
- {"version":3,"file":"start_p2p_bootstrap.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_p2p_bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AASjE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK;;GAaf"}
1
+ {"version":3,"file":"start_p2p_bootstrap.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_p2p_bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AASjE,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK;;GAcf"}
@@ -9,7 +9,11 @@ import { extractRelevantOptions } from '../util.js';
9
9
  export async function startP2PBootstrap(options, signalHandlers, services, userLog) {
10
10
  // Start a P2P bootstrap node.
11
11
  const config = extractRelevantOptions(options, bootnodeConfigMappings, 'p2p');
12
- userLog(`Starting P2P bootstrap node with config: ${jsonStringify(config)}`);
12
+ const safeConfig = {
13
+ ...config,
14
+ peerIdPrivateKey: '<redacted>'
15
+ };
16
+ userLog(`Starting P2P bootstrap node with config: ${jsonStringify(safeConfig)}`);
13
17
  const telemetryClient = initTelemetryClient(getTelemetryClientConfig());
14
18
  const store = await createStore('p2p-bootstrap', 1, config, createLogger('p2p:bootstrap:store'));
15
19
  const node = new BootstrapNode(store, telemetryClient);
@@ -1 +1 @@
1
- {"version":3,"file":"start_prover_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_node.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,oBAAoB,CAAC;AAa5B,wBAAsB,eAAe,CACnC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA6FvC"}
1
+ {"version":3,"file":"start_prover_node.d.ts","sourceRoot":"","sources":["../../../src/cli/cmds/start_prover_node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,oBAAoB,CAAC;AAa5B,wBAAsB,eAAe,CACnC,OAAO,EAAE,GAAG,EACZ,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EACvC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,KAAK,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAoGvC"}
@@ -1,4 +1,5 @@
1
1
  import { getInitialTestAccounts } from '@aztec/accounts/testing';
2
+ import { getSponsoredFPCAddress } from '@aztec/cli/cli-utils';
2
3
  import { NULL_KEY } from '@aztec/ethereum';
3
4
  import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
4
5
  import { ProvingJobConsumerSchema, createProvingJobBrokerClient } from '@aztec/prover-client/broker';
@@ -78,8 +79,15 @@ export async function startProverNode(options, signalHandlers, services, userLog
78
79
  userLog(`Running prover node without local prover agent. Connect one or more prover agents to this node or pass --proverAgent.proverAgentCount`);
79
80
  }
80
81
  await preloadCrsDataForVerifying(proverConfig, userLog);
81
- const initialFundedAccounts = proverConfig.testAccounts ? await getInitialTestAccounts() : [];
82
- const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map((a)=>a.address));
82
+ const testAccounts = proverConfig.testAccounts ? (await getInitialTestAccounts()).map((a)=>a.address) : [];
83
+ const sponsoredFPCAccounts = proverConfig.sponsoredFPC ? [
84
+ await getSponsoredFPCAddress()
85
+ ] : [];
86
+ const initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts);
87
+ userLog(`Initial funded accounts: ${initialFundedAccounts.map((a)=>a.toString()).join(', ')}`);
88
+ const { genesisArchiveRoot, genesisBlockHash, prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
89
+ userLog(`Genesis block hash: ${genesisBlockHash.toString()}`);
90
+ userLog(`Genesis archive root: ${genesisArchiveRoot.toString()}`);
83
91
  const proverNode = await createProverNode(proverConfig, {
84
92
  telemetry,
85
93
  broker
package/dest/cli/util.js CHANGED
@@ -173,7 +173,7 @@ export const printAztecStartHelpText = ()=>{
173
173
  if (realProofs) {
174
174
  const { Crs, GrumpkinCrs } = await import('@aztec/bb.js');
175
175
  await Promise.all([
176
- Crs.new(2 ** 25 - 1, undefined, log),
176
+ Crs.new(2 ** 25 + 1, undefined, log),
177
177
  GrumpkinCrs.new(2 ** 18 + 1, undefined, log)
178
178
  ]);
179
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAE7F,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAU7F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AAGjE,OAAO,EAAE,KAAK,gBAAgB,EAAyC,MAAM,mBAAmB,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAA2D,MAAM,MAAM,CAAC;AAavH;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,GAAG,iBAAiB,EACxC,oBAAoB,yCAAS,EAC7B,IAAI,GAAE;IAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC;IAAC,gBAAgB,CAAC,EAAE,EAAE,CAAA;CAAO;;;;;;;;;;;;;;;;;;;GA6BtH;AAED,wBAAwB;AACxB,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAC5C,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,uDAAuD;IACvD,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,MAAM,oCAA6B,EAAE,OAAO,EAAE,KAAK;;;;GA8FtF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,eAAe,CAAC;IAAC,cAAc,CAAC,EAAE,uBAAuB,CAAA;CAAO,EACpF,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAO,6BAW7D;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM,mDAI3F"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/sandbox.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAE7F,OAAO,EAAE,KAAK,uBAAuB,EAAwB,MAAM,yBAAyB,CAAC;AAU7F,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,uBAAuB,CAAC;AAGjE,OAAO,EAAE,KAAK,gBAAgB,EAAyC,MAAM,mBAAmB,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAA2D,MAAM,MAAM,CAAC;AAavH;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,GAAG,iBAAiB,EACxC,oBAAoB,yCAAS,EAC7B,IAAI,GAAE;IAAE,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC;IAAC,gBAAgB,CAAC,EAAE,EAAE,CAAA;CAAO;;;;;;;;;;;;;;;;;;;GA6BtH;AAED,wBAAwB;AACxB,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAC5C,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,uDAAuD;IACvD,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,MAAM,oCAA6B,EAAE,OAAO,EAAE,KAAK;;;;GA6FtF;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,EACrC,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,eAAe,CAAC;IAAC,cAAc,CAAC,EAAE,uBAAuB,CAAA;CAAO,EACpF,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAAO,6BAW7D;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,GAAE,OAAO,CAAC,gBAAgB,CAAM,mDAI3F"}
@@ -72,12 +72,11 @@ const localAnvil = foundry;
72
72
  aztecNodeConfig.validatorPrivateKey = `0x${Buffer.from(privKey).toString('hex')}`;
73
73
  }
74
74
  const initialAccounts = await (async ()=>{
75
- if (config.testAccounts) {
75
+ if (config.testAccounts === true || config.testAccounts === undefined) {
76
76
  if (aztecNodeConfig.p2pEnabled) {
77
77
  userLog(`Not setting up test accounts as we are connecting to a network`);
78
- } else if (config.noPXE) {
79
- userLog(`Not setting up test accounts as we are not exposing a PXE`);
80
78
  } else {
79
+ userLog(`Setting up test accounts`);
81
80
  return await getInitialTestAccounts();
82
81
  }
83
82
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/aztec",
3
- "version": "0.82.2",
3
+ "version": "0.82.3-nightly.20250330",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js"
@@ -29,35 +29,35 @@
29
29
  "../package.common.json"
30
30
  ],
31
31
  "dependencies": {
32
- "@aztec/accounts": "0.82.2",
33
- "@aztec/archiver": "0.82.2",
34
- "@aztec/aztec-faucet": "0.82.2",
35
- "@aztec/aztec-node": "0.82.2",
36
- "@aztec/aztec.js": "0.82.2",
37
- "@aztec/bb-prover": "0.82.2",
38
- "@aztec/bb.js": "0.82.2",
39
- "@aztec/blob-sink": "0.82.2",
40
- "@aztec/bot": "0.82.2",
41
- "@aztec/builder": "0.82.2",
42
- "@aztec/cli": "0.82.2",
43
- "@aztec/cli-wallet": "0.82.2",
44
- "@aztec/constants": "0.82.2",
45
- "@aztec/entrypoints": "0.82.2",
46
- "@aztec/ethereum": "0.82.2",
47
- "@aztec/foundation": "0.82.2",
48
- "@aztec/kv-store": "0.82.2",
49
- "@aztec/noir-contracts.js": "0.82.2",
50
- "@aztec/noir-protocol-circuits-types": "0.82.2",
51
- "@aztec/p2p": "0.82.2",
52
- "@aztec/p2p-bootstrap": "0.82.2",
53
- "@aztec/protocol-contracts": "0.82.2",
54
- "@aztec/prover-client": "0.82.2",
55
- "@aztec/prover-node": "0.82.2",
56
- "@aztec/pxe": "0.82.2",
57
- "@aztec/stdlib": "0.82.2",
58
- "@aztec/telemetry-client": "0.82.2",
59
- "@aztec/txe": "0.82.2",
60
- "@aztec/world-state": "0.82.2",
32
+ "@aztec/accounts": "0.82.3-nightly.20250330",
33
+ "@aztec/archiver": "0.82.3-nightly.20250330",
34
+ "@aztec/aztec-faucet": "0.82.3-nightly.20250330",
35
+ "@aztec/aztec-node": "0.82.3-nightly.20250330",
36
+ "@aztec/aztec.js": "0.82.3-nightly.20250330",
37
+ "@aztec/bb-prover": "0.82.3-nightly.20250330",
38
+ "@aztec/bb.js": "0.82.3-nightly.20250330",
39
+ "@aztec/blob-sink": "0.82.3-nightly.20250330",
40
+ "@aztec/bot": "0.82.3-nightly.20250330",
41
+ "@aztec/builder": "0.82.3-nightly.20250330",
42
+ "@aztec/cli": "0.82.3-nightly.20250330",
43
+ "@aztec/cli-wallet": "0.82.3-nightly.20250330",
44
+ "@aztec/constants": "0.82.3-nightly.20250330",
45
+ "@aztec/entrypoints": "0.82.3-nightly.20250330",
46
+ "@aztec/ethereum": "0.82.3-nightly.20250330",
47
+ "@aztec/foundation": "0.82.3-nightly.20250330",
48
+ "@aztec/kv-store": "0.82.3-nightly.20250330",
49
+ "@aztec/noir-contracts.js": "0.82.3-nightly.20250330",
50
+ "@aztec/noir-protocol-circuits-types": "0.82.3-nightly.20250330",
51
+ "@aztec/p2p": "0.82.3-nightly.20250330",
52
+ "@aztec/p2p-bootstrap": "0.82.3-nightly.20250330",
53
+ "@aztec/protocol-contracts": "0.82.3-nightly.20250330",
54
+ "@aztec/prover-client": "0.82.3-nightly.20250330",
55
+ "@aztec/prover-node": "0.82.3-nightly.20250330",
56
+ "@aztec/pxe": "0.82.3-nightly.20250330",
57
+ "@aztec/stdlib": "0.82.3-nightly.20250330",
58
+ "@aztec/telemetry-client": "0.82.3-nightly.20250330",
59
+ "@aztec/txe": "0.82.3-nightly.20250330",
60
+ "@aztec/world-state": "0.82.3-nightly.20250330",
61
61
  "@types/chalk": "^2.2.0",
62
62
  "abitype": "^0.8.11",
63
63
  "chalk": "^5.3.0",
@@ -83,13 +83,13 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
83
83
  envVar: undefined,
84
84
  },
85
85
  {
86
- flag: '--sandbox.testAccounts',
86
+ flag: '--sandbox.testAccounts [value]',
87
87
  description: 'Deploy test accounts on sandbox start',
88
88
  envVar: 'TEST_ACCOUNTS',
89
- ...booleanConfigHelper(true),
89
+ ...booleanConfigHelper(),
90
90
  },
91
91
  {
92
- flag: '--sandbox.noPXE',
92
+ flag: '--sandbox.noPXE [value]',
93
93
  description: 'Do not expose PXE service on sandbox start',
94
94
  envVar: 'NO_PXE',
95
95
  ...booleanConfigHelper(),
@@ -268,15 +268,28 @@ export const aztecStartOptions: { [key: string]: AztecStartOption[] } = {
268
268
  parseVal: val => parseInt(val, 10),
269
269
  },
270
270
  {
271
- flag: '--node.testAccounts',
271
+ flag: '--node.testAccounts [value]',
272
272
  description: 'Populate genesis state with initial fee juice for test accounts',
273
273
  envVar: 'TEST_ACCOUNTS',
274
274
  ...booleanConfigHelper(),
275
275
  },
276
+ {
277
+ flag: '--node.syncMode <value>',
278
+ description:
279
+ 'Set sync mode to `full` to always sync via L1, `snapshot` to download a snapshot if there is no local data, `force-snapshot` to download even if there is local data.',
280
+ defaultValue: 'snapshot',
281
+ envVar: 'SYNC_MODE',
282
+ },
283
+ {
284
+ flag: '--node.snapshotsUrl <value>',
285
+ description: 'Base URL for downloading snapshots for snapshot sync.',
286
+ defaultValue: undefined,
287
+ envVar: 'SYNC_SNAPSHOTS_URL',
288
+ },
276
289
  ],
277
290
  'P2P SUBSYSTEM': [
278
291
  {
279
- flag: '--p2p-enabled',
292
+ flag: '--p2p-enabled [value]',
280
293
  description: 'Enable P2P subsystem',
281
294
  envVar: 'P2P_ENABLED',
282
295
  ...booleanConfigHelper(),
@@ -11,12 +11,16 @@ export type L2ChainConfig = {
11
11
  aztecEpochDuration: number;
12
12
  aztecProofSubmissionWindow: number;
13
13
  testAccounts: boolean;
14
+ sponsoredFPC: boolean;
14
15
  p2pEnabled: boolean;
15
16
  p2pBootstrapNodes: string[];
16
17
  registryAddress: string;
18
+ slashFactoryAddress: string;
19
+ feeAssetHandlerAddress: string;
17
20
  seqMinTxsPerBlock: number;
18
21
  seqMaxTxsPerBlock: number;
19
22
  realProofs: boolean;
23
+ snapshotsUrl: string;
20
24
  };
21
25
 
22
26
  export const testnetIgnitionL2ChainConfig: L2ChainConfig = {
@@ -26,12 +30,16 @@ export const testnetIgnitionL2ChainConfig: L2ChainConfig = {
26
30
  aztecEpochDuration: 32,
27
31
  aztecProofSubmissionWindow: 64,
28
32
  testAccounts: true,
33
+ sponsoredFPC: false,
29
34
  p2pEnabled: true,
30
35
  p2pBootstrapNodes: [],
31
36
  registryAddress: '0x12b3ebc176a1646b911391eab3760764f2e05fe3',
37
+ slashFactoryAddress: '',
38
+ feeAssetHandlerAddress: '',
32
39
  seqMinTxsPerBlock: 0,
33
40
  seqMaxTxsPerBlock: 0,
34
41
  realProofs: true,
42
+ snapshotsUrl: 'https://storage.googleapis.com/aztec-testnet/snapshots/',
35
43
  };
36
44
 
37
45
  export const alphaTestnetL2ChainConfig: L2ChainConfig = {
@@ -40,13 +48,17 @@ export const alphaTestnetL2ChainConfig: L2ChainConfig = {
40
48
  aztecSlotDuration: 36,
41
49
  aztecEpochDuration: 32,
42
50
  aztecProofSubmissionWindow: 64,
43
- testAccounts: false,
51
+ testAccounts: true,
52
+ sponsoredFPC: true,
44
53
  p2pEnabled: true,
45
54
  p2pBootstrapNodes: [],
46
- registryAddress: '', // To be updated
55
+ registryAddress: '0xad85d55a4bbef35e95396191c22903aa717edf1c',
56
+ slashFactoryAddress: '0xf667f50fd68b30c38b12d29fee537fa5ea158eb8',
57
+ feeAssetHandlerAddress: '0xf0664fec6ac15313e18d5ad8225e46b7c6463338',
47
58
  seqMinTxsPerBlock: 0,
48
59
  seqMaxTxsPerBlock: 4,
49
60
  realProofs: true,
61
+ snapshotsUrl: 'https://storage.googleapis.com/aztec-testnet/snapshots/',
50
62
  };
51
63
 
52
64
  export async function getBootnodes(networkName: NetworkNames) {
@@ -94,12 +106,16 @@ export async function enrichEnvironmentWithChainConfig(networkName: NetworkNames
94
106
  enrichVar('AZTEC_PROOF_SUBMISSION_WINDOW', config.aztecProofSubmissionWindow.toString());
95
107
  enrichVar('BOOTSTRAP_NODES', config.p2pBootstrapNodes.join(','));
96
108
  enrichVar('TEST_ACCOUNTS', config.testAccounts.toString());
109
+ enrichVar('SPONSORED_FPC', config.sponsoredFPC.toString());
97
110
  enrichVar('P2P_ENABLED', config.p2pEnabled.toString());
98
111
  enrichVar('L1_CHAIN_ID', config.l1ChainId.toString());
99
112
  enrichVar('REGISTRY_CONTRACT_ADDRESS', config.registryAddress);
113
+ enrichVar('SLASH_FACTORY_CONTRACT_ADDRESS', config.slashFactoryAddress);
114
+ enrichVar('FEE_ASSET_HANDLER_CONTRACT_ADDRESS', config.feeAssetHandlerAddress);
100
115
  enrichVar('SEQ_MIN_TX_PER_BLOCK', config.seqMinTxsPerBlock.toString());
101
116
  enrichVar('SEQ_MAX_TX_PER_BLOCK', config.seqMaxTxsPerBlock.toString());
102
117
  enrichVar('DATA_DIRECTORY', path.join(process.env.HOME || '~', '.aztec', networkName, 'data'));
103
118
  enrichVar('PROVER_REAL_PROOFS', config.realProofs.toString());
104
119
  enrichVar('PXE_PROVER_ENABLED', config.realProofs.toString());
120
+ enrichVar('SYNC_SNAPSHOTS_URL', config.snapshotsUrl);
105
121
  }
@@ -1,5 +1,6 @@
1
1
  import { getInitialTestAccounts } from '@aztec/accounts/testing';
2
2
  import { type AztecNodeConfig, aztecNodeConfigMappings, getConfigEnvVars } from '@aztec/aztec-node';
3
+ import { getSponsoredFPCAddress } from '@aztec/cli/cli-utils';
3
4
  import { NULL_KEY } from '@aztec/ethereum';
4
5
  import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
5
6
  import type { LogFn } from '@aztec/foundation/log';
@@ -47,10 +48,16 @@ export async function startNode(
47
48
 
48
49
  await preloadCrsDataForVerifying(nodeConfig, userLog);
49
50
 
50
- const initialFundedAccounts = nodeConfig.testAccounts ? await getInitialTestAccounts() : [];
51
- const { genesisBlockHash, genesisArchiveRoot, prefilledPublicData } = await getGenesisValues(
52
- initialFundedAccounts.map(a => a.address),
53
- );
51
+ const testAccounts = nodeConfig.testAccounts ? (await getInitialTestAccounts()).map(a => a.address) : [];
52
+ const sponsoredFPCAccounts = nodeConfig.sponsoredFPC ? [await getSponsoredFPCAddress()] : [];
53
+ const initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts);
54
+
55
+ userLog(`Initial funded accounts: ${initialFundedAccounts.map(a => a.toString()).join(', ')}`);
56
+
57
+ const { genesisBlockHash, genesisArchiveRoot, prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
58
+
59
+ userLog(`Genesis block hash: ${genesisBlockHash.toString()}`);
60
+ userLog(`Genesis archive root: ${genesisArchiveRoot.toString()}`);
54
61
 
55
62
  // Deploy contracts if needed
56
63
  if (nodeSpecificOptions.deployAztecContracts || nodeSpecificOptions.deployAztecContractsSalt) {
@@ -17,7 +17,8 @@ export async function startP2PBootstrap(
17
17
  ) {
18
18
  // Start a P2P bootstrap node.
19
19
  const config = extractRelevantOptions<BootnodeConfig>(options, bootnodeConfigMappings, 'p2p');
20
- userLog(`Starting P2P bootstrap node with config: ${jsonStringify(config)}`);
20
+ const safeConfig = { ...config, peerIdPrivateKey: '<redacted>' };
21
+ userLog(`Starting P2P bootstrap node with config: ${jsonStringify(safeConfig)}`);
21
22
  const telemetryClient = initTelemetryClient(getTelemetryClientConfig());
22
23
  const store = await createStore('p2p-bootstrap', 1, config, createLogger('p2p:bootstrap:store'));
23
24
  const node = new BootstrapNode(store, telemetryClient);
@@ -1,4 +1,5 @@
1
1
  import { getInitialTestAccounts } from '@aztec/accounts/testing';
2
+ import { getSponsoredFPCAddress } from '@aztec/cli/cli-utils';
2
3
  import { NULL_KEY } from '@aztec/ethereum';
3
4
  import type { NamespacedApiHandlers } from '@aztec/foundation/json-rpc/server';
4
5
  import { Agent, makeUndiciFetch } from '@aztec/foundation/json-rpc/undici';
@@ -101,8 +102,15 @@ export async function startProverNode(
101
102
 
102
103
  await preloadCrsDataForVerifying(proverConfig, userLog);
103
104
 
104
- const initialFundedAccounts = proverConfig.testAccounts ? await getInitialTestAccounts() : [];
105
- const { prefilledPublicData } = await getGenesisValues(initialFundedAccounts.map(a => a.address));
105
+ const testAccounts = proverConfig.testAccounts ? (await getInitialTestAccounts()).map(a => a.address) : [];
106
+ const sponsoredFPCAccounts = proverConfig.sponsoredFPC ? [await getSponsoredFPCAddress()] : [];
107
+ const initialFundedAccounts = testAccounts.concat(sponsoredFPCAccounts);
108
+
109
+ userLog(`Initial funded accounts: ${initialFundedAccounts.map(a => a.toString()).join(', ')}`);
110
+ const { genesisArchiveRoot, genesisBlockHash, prefilledPublicData } = await getGenesisValues(initialFundedAccounts);
111
+
112
+ userLog(`Genesis block hash: ${genesisBlockHash.toString()}`);
113
+ userLog(`Genesis archive root: ${genesisArchiveRoot.toString()}`);
106
114
 
107
115
  const proverNode = await createProverNode(proverConfig, { telemetry, broker }, { prefilledPublicData });
108
116
  services.proverNode = [proverNode, ProverNodeApiSchema];
package/src/cli/util.ts CHANGED
@@ -243,6 +243,6 @@ export async function preloadCrsDataForServerSideProving(
243
243
  ): Promise<void> {
244
244
  if (realProofs) {
245
245
  const { Crs, GrumpkinCrs } = await import('@aztec/bb.js');
246
- await Promise.all([Crs.new(2 ** 25 - 1, undefined, log), GrumpkinCrs.new(2 ** 18 + 1, undefined, log)]);
246
+ await Promise.all([Crs.new(2 ** 25 + 1, undefined, log), GrumpkinCrs.new(2 ** 18 + 1, undefined, log)]);
247
247
  }
248
248
  }
@@ -118,12 +118,11 @@ export async function createSandbox(config: Partial<SandboxConfig> = {}, userLog
118
118
  }
119
119
 
120
120
  const initialAccounts = await (async () => {
121
- if (config.testAccounts) {
121
+ if (config.testAccounts === true || config.testAccounts === undefined) {
122
122
  if (aztecNodeConfig.p2pEnabled) {
123
123
  userLog(`Not setting up test accounts as we are connecting to a network`);
124
- } else if (config.noPXE) {
125
- userLog(`Not setting up test accounts as we are not exposing a PXE`);
126
124
  } else {
125
+ userLog(`Setting up test accounts`);
127
126
  return await getInitialTestAccounts();
128
127
  }
129
128
  }