@aztec/ethereum 3.0.0-nightly.20251217 → 3.0.0-nightly.20251218

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.
@@ -86,7 +86,7 @@ export interface ForgeL1ContractsDeployResult extends ForgeRollupUpgradeResult {
86
86
  * @param options - Additional deployment options (all optional with sensible defaults)
87
87
  * @returns The deployment result with all contract addresses and an l1Client
88
88
  */
89
- export declare function deployAztecL1Contracts(rpcUrl: string, privateKey: `0x${string}`, chainId: number, args: DeployAztecL1ContractsArgs, verifyContracts?: boolean): Promise<DeployAztecL1ContractsReturnType>;
89
+ export declare function deployAztecL1Contracts(rpcUrl: string, privateKey: `0x${string}`, chainId: number, args: DeployAztecL1ContractsArgs): Promise<DeployAztecL1ContractsReturnType>;
90
90
  export declare const DEPLOYER_ADDRESS: Hex;
91
91
  export type Operator = {
92
92
  attester: EthAddress;
@@ -242,4 +242,4 @@ export declare const deployRollupForUpgrade: (privateKey: `0x${string}`, rpcUrl:
242
242
  rollup: RollupContract;
243
243
  slashFactoryAddress: `0x${string}`;
244
244
  }>;
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2F6dGVjX2wxX2NvbnRyYWN0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcGxveV9henRlY19sMV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU0zQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUEyRTNELE1BQU0sV0FBVyxXQUFXO0lBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7Q0FDWjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxhQUFhO0lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixrRUFBa0U7SUFDbEUsYUFBYSxFQUFFLFdBQVcs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
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2F6dGVjX2wxX2NvbnRyYWN0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcGxveV9henRlY19sMV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUkzQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFnRTNELE1BQU0sV0FBVyxXQUFXO0lBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7Q0FDWjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxhQUFhO0lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixrRUFBa0U7SUFDbEUsYUFBYSxFQUFFLFdBQVcs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
@@ -1 +1 @@
1
- {"version":3,"file":"deploy_aztec_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_aztec_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAwB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAIpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAM3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAKhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA2E3D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,aAAa,EAAE,WAAW,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAoBtE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,CAAC;IACrB,mBAAmB,EAAE,GAAG,CAAC;IACzB,YAAY,EAAE,GAAG,CAAC;IAClB,aAAa,EAAE,GAAG,CAAC;IACnB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,4BAA6B,SAAQ,wBAAwB;IAC5E,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC;IACrB,mBAAmB,EAAE,GAAG,CAAC;IACzB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,wBAAwB,EAAE,GAAG,CAAC;IAC9B,iBAAiB,EAAE,GAAG,CAAC;IACvB,yBAAyB,EAAE,GAAG,CAAC;IAC/B,iBAAiB,EAAE,GAAG,CAAC;IACvB,uBAAuB,CAAC,EAAE,GAAG,CAAC;IAC9B,sBAAsB,CAAC,EAAE,GAAG,CAAC;IAC7B,0BAA0B,CAAC,EAAE,GAAG,CAAC;IACjC,yBAAyB,CAAC,EAAE,GAAG,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,KAAK,MAAM,EAAE,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,0BAA0B,EAChC,eAAe,UAAQ,GACtB,OAAO,CAAC,gCAAgC,CAAC,CA0I3C;AAED,eAAO,MAAM,gBAAgB,EAAE,GAAkD,CAAC;AAElF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAC7C,mCAAmC;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,mDAAmD;IACnD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,CAAC,QAAQ,EAAE,MAAM,GAAG;QAClB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAAC;YACpC,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG;IAC5E;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,gBAAgB,EAAE,GAAG,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,GAAG,CAAC;IACxB,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,eAAe,CAAC;IAChG,wBAAwB;IACxB,UAAU,EAAE,EAAE,CAAC;IACf,0CAA0C;IAC1C,qBAAqB,EAAE,EAAE,CAAC;IAC1B,4CAA4C;IAC5C,kBAAkB,EAAE,EAAE,CAAC;IACvB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC/B,iHAAiH;IACjH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,UAAU,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWhF;AAGD,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,IAAI,CACR,0BAA0B,EACxB,0BAA0B,GAC1B,6BAA6B,GAC7B,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCF;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;EAgElC,CAAC"}
1
+ {"version":3,"file":"deploy_aztec_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_aztec_l1_contracts.ts"],"names":[],"mappings":"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"}
@@ -7,11 +7,9 @@ import { promiseWithResolvers } from '@aztec/foundation/promise';
7
7
  import { fileURLToPath } from '@aztec/foundation/url';
8
8
  import { bn254 } from '@noble/curves/bn254';
9
9
  import { spawn } from 'child_process';
10
- import { cp, mkdtemp, rm } from 'fs/promises';
11
- import { tmpdir } from 'os';
12
- import { dirname, join, resolve } from 'path';
10
+ import { dirname, resolve } from 'path';
13
11
  import readline from 'readline';
14
- import { foundry, mainnet } from 'viem/chains';
12
+ import { foundry, mainnet, sepolia } from 'viem/chains';
15
13
  import { createEthereumChain, isAnvilTestChain } from './chain.js';
16
14
  import { createExtendedL1Client } from './client.js';
17
15
  import { deployMulticall3 } from './contracts/multicall.js';
@@ -64,17 +62,6 @@ const JSON_DEPLOY_RESULT_PREFIX = 'JSON DEPLOY RESULT:';
64
62
  });
65
63
  return promise;
66
64
  }
67
- /**
68
- * Copies the foundry cache folder to a temporary location to avoid conflicts when running forge in parallel.
69
- * The cache folder is small metadata that links to the out folder, so this is a fast operation.
70
- */ async function copyFoundryCacheToTemp(l1ContractsPath) {
71
- const cacheFolder = join(l1ContractsPath, 'cache');
72
- const tempCacheFolder = await mkdtemp(join(tmpdir(), 'foundry-cache-'));
73
- await cp(cacheFolder, tempCacheFolder, {
74
- recursive: true
75
- });
76
- return tempCacheFolder;
77
- }
78
65
  // Covers an edge where where we may have a cached BlobLib that is not meant for production.
79
66
  // Despite the profile apparently sometimes cached code remains (so says Lasse after his ignition-monorepo arc).
80
67
  async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId) {
@@ -133,7 +120,7 @@ async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId)
133
120
  * @param privateKey - The private key for the deployer (with 0x prefix)
134
121
  * @param options - Additional deployment options (all optional with sensible defaults)
135
122
  * @returns The deployment result with all contract addresses and an l1Client
136
- */ export async function deployAztecL1Contracts(rpcUrl, privateKey, chainId, args, verifyContracts = false) {
123
+ */ export async function deployAztecL1Contracts(rpcUrl, privateKey, chainId, args) {
137
124
  logger.info(`Deploying L1 contracts with config: ${jsonStringify(args)}`);
138
125
  if (args.initialValidators && args.initialValidators.length > 0 && args.existingTokenAddress) {
139
126
  throw new Error('Cannot deploy with both initialValidators and existingTokenAddress. ' + 'Initial validator funding requires minting tokens, which is not possible with an external token.');
@@ -172,99 +159,92 @@ async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId)
172
159
  const l1ContractsPath = resolve(currentDir, '..', '..', '..', 'l1-contracts');
173
160
  const FORGE_SCRIPT = 'script/deploy/DeployAztecL1Contracts.s.sol';
174
161
  await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
175
- // Copy cache to temp location to avoid conflicts when running forge in parallel
176
- const tempCachePath = await copyFoundryCacheToTemp(l1ContractsPath);
177
- try {
178
- // From heuristic testing. More caused issues with anvil.
179
- const MAGIC_ANVIL_BATCH_SIZE = 12;
180
- // Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
181
- // On sepolia and mainnet, we verify on etherscan (if etherscan API key is in env)
182
- const forgeArgs = [
183
- 'script',
184
- FORGE_SCRIPT,
185
- '--sig',
186
- 'run()',
187
- '--private-key',
188
- privateKey,
189
- '--rpc-url',
190
- rpcUrl,
191
- '--broadcast',
192
- ...chainId === foundry.id ? [
193
- '--batch-size',
194
- MAGIC_ANVIL_BATCH_SIZE.toString()
195
- ] : [],
196
- ...verifyContracts ? [
197
- '--verify'
198
- ] : []
199
- ];
200
- const forgeEnv = {
201
- // Protect against root leaving deployment files in docker that cannot be used later.
202
- FOUNDRY_BROADCAST: process.getuid?.() === 0 ? 'broadcast-root' : tempCachePath,
203
- // Env vars required by l1-contracts/script/deploy/DeploymentConfiguration.sol.
204
- NETWORK: getActiveNetworkName(),
205
- FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
206
- FOUNDRY_CACHE_PATH: tempCachePath,
207
- ...getDeployAztecL1ContractsEnvVars(args)
208
- };
209
- const result = await runProcess('forge', forgeArgs, forgeEnv, l1ContractsPath);
210
- if (!result) {
211
- throw new Error('Forge script did not output deployment result');
212
- }
213
- logger.info(`Deployed L1 contracts with L1 addresses: ${jsonStringify(result)}`);
214
- const rollup = new RollupContract(l1Client, result.rollupAddress);
215
- if (isAnvilTestChain(chainId)) {
216
- // @note We make a time jump PAST the very first slot to not have to deal with the edge case of the first slot.
217
- // The edge case being that the genesis block is already occupying slot 0, so we cannot have another block.
218
- try {
219
- // Need to get the time
162
+ // Verify contracts on Etherscan when on mainnet/sepolia and ETHERSCAN_API_KEY is available.
163
+ const isVerifiableChain = chainId === mainnet.id || chainId === sepolia.id;
164
+ const shouldVerify = isVerifiableChain && !!process.env.ETHERSCAN_API_KEY;
165
+ if (isVerifiableChain && !process.env.ETHERSCAN_API_KEY) {
166
+ logger.warn(`Deploying to chain ${chainId} (${chainId === mainnet.id ? 'mainnet' : 'sepolia'}) without ETHERSCAN_API_KEY. ` + `Contracts will NOT be verified on Etherscan. Set ETHERSCAN_API_KEY environment variable to enable verification.`);
167
+ }
168
+ // From heuristic testing. More caused issues with anvil.
169
+ const MAGIC_ANVIL_BATCH_SIZE = 12;
170
+ // Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
171
+ const forgeArgs = [
172
+ 'script',
173
+ FORGE_SCRIPT,
174
+ '--sig',
175
+ 'run()',
176
+ '--private-key',
177
+ privateKey,
178
+ '--rpc-url',
179
+ rpcUrl,
180
+ '--broadcast',
181
+ ...chainId === foundry.id ? [
182
+ '--batch-size',
183
+ MAGIC_ANVIL_BATCH_SIZE.toString()
184
+ ] : [],
185
+ ...shouldVerify ? [
186
+ '--verify'
187
+ ] : []
188
+ ];
189
+ const forgeEnv = {
190
+ // Env vars required by l1-contracts/script/deploy/DeploymentConfiguration.sol.
191
+ NETWORK: getActiveNetworkName(),
192
+ FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
193
+ ...getDeployAztecL1ContractsEnvVars(args)
194
+ };
195
+ const result = await runProcess('forge', forgeArgs, forgeEnv, l1ContractsPath);
196
+ if (!result) {
197
+ throw new Error('Forge script did not output deployment result');
198
+ }
199
+ logger.info(`Deployed L1 contracts with L1 addresses: ${jsonStringify(result)}`);
200
+ const rollup = new RollupContract(l1Client, result.rollupAddress);
201
+ if (isAnvilTestChain(chainId)) {
202
+ // @note We make a time jump PAST the very first slot to not have to deal with the edge case of the first slot.
203
+ // The edge case being that the genesis block is already occupying slot 0, so we cannot have another block.
204
+ try {
205
+ // Need to get the time
206
+ const currentSlot = await rollup.getSlotNumber();
207
+ if (currentSlot === 0) {
208
+ const ts = Number(await rollup.getTimestampForSlot(SlotNumber(1)));
209
+ await rpcCall('evm_setNextBlockTimestamp', [
210
+ ts
211
+ ]);
212
+ await rpcCall('hardhat_mine', [
213
+ 1
214
+ ]);
220
215
  const currentSlot = await rollup.getSlotNumber();
221
- if (currentSlot === 0) {
222
- const ts = Number(await rollup.getTimestampForSlot(SlotNumber(1)));
223
- await rpcCall('evm_setNextBlockTimestamp', [
224
- ts
225
- ]);
226
- await rpcCall('hardhat_mine', [
227
- 1
228
- ]);
229
- const currentSlot = await rollup.getSlotNumber();
230
- if (currentSlot !== 1) {
231
- throw new Error(`Error jumping time: current slot is ${currentSlot}`);
232
- }
233
- logger.info(`Jumped to slot 1`);
216
+ if (currentSlot !== 1) {
217
+ throw new Error(`Error jumping time: current slot is ${currentSlot}`);
234
218
  }
235
- } catch (e) {
236
- throw new Error(`Error jumping time: ${e}`);
219
+ logger.info(`Jumped to slot 1`);
237
220
  }
221
+ } catch (e) {
222
+ throw new Error(`Error jumping time: ${e}`);
238
223
  }
239
- return {
240
- l1Client,
241
- rollupVersion: result.rollupVersion,
242
- l1ContractAddresses: {
243
- rollupAddress: EthAddress.fromString(result.rollupAddress),
244
- registryAddress: EthAddress.fromString(result.registryAddress),
245
- inboxAddress: EthAddress.fromString(result.inboxAddress),
246
- outboxAddress: EthAddress.fromString(result.outboxAddress),
247
- feeJuiceAddress: EthAddress.fromString(result.feeAssetAddress),
248
- feeJuicePortalAddress: EthAddress.fromString(result.feeJuicePortalAddress),
249
- coinIssuerAddress: EthAddress.fromString(result.coinIssuerAddress),
250
- rewardDistributorAddress: EthAddress.fromString(result.rewardDistributorAddress),
251
- governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
252
- governanceAddress: EthAddress.fromString(result.governanceAddress),
253
- stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
254
- slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
255
- feeAssetHandlerAddress: result.feeAssetHandlerAddress ? EthAddress.fromString(result.feeAssetHandlerAddress) : undefined,
256
- stakingAssetHandlerAddress: result.stakingAssetHandlerAddress ? EthAddress.fromString(result.stakingAssetHandlerAddress) : undefined,
257
- zkPassportVerifierAddress: result.zkPassportVerifierAddress ? EthAddress.fromString(result.zkPassportVerifierAddress) : undefined,
258
- gseAddress: result.gseAddress ? EthAddress.fromString(result.gseAddress) : undefined,
259
- dateGatedRelayerAddress: result.dateGatedRelayerAddress ? EthAddress.fromString(result.dateGatedRelayerAddress) : undefined
260
- }
261
- };
262
- } finally{
263
- await rm(tempCachePath, {
264
- recursive: true,
265
- force: true
266
- });
267
224
  }
225
+ return {
226
+ l1Client,
227
+ rollupVersion: result.rollupVersion,
228
+ l1ContractAddresses: {
229
+ rollupAddress: EthAddress.fromString(result.rollupAddress),
230
+ registryAddress: EthAddress.fromString(result.registryAddress),
231
+ inboxAddress: EthAddress.fromString(result.inboxAddress),
232
+ outboxAddress: EthAddress.fromString(result.outboxAddress),
233
+ feeJuiceAddress: EthAddress.fromString(result.feeAssetAddress),
234
+ feeJuicePortalAddress: EthAddress.fromString(result.feeJuicePortalAddress),
235
+ coinIssuerAddress: EthAddress.fromString(result.coinIssuerAddress),
236
+ rewardDistributorAddress: EthAddress.fromString(result.rewardDistributorAddress),
237
+ governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
238
+ governanceAddress: EthAddress.fromString(result.governanceAddress),
239
+ stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
240
+ slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
241
+ feeAssetHandlerAddress: result.feeAssetHandlerAddress ? EthAddress.fromString(result.feeAssetHandlerAddress) : undefined,
242
+ stakingAssetHandlerAddress: result.stakingAssetHandlerAddress ? EthAddress.fromString(result.stakingAssetHandlerAddress) : undefined,
243
+ zkPassportVerifierAddress: result.zkPassportVerifierAddress ? EthAddress.fromString(result.zkPassportVerifierAddress) : undefined,
244
+ gseAddress: result.gseAddress ? EthAddress.fromString(result.gseAddress) : undefined,
245
+ dateGatedRelayerAddress: result.dateGatedRelayerAddress ? EthAddress.fromString(result.dateGatedRelayerAddress) : undefined
246
+ }
247
+ };
268
248
  }
269
249
  export const DEPLOYER_ADDRESS = '0x4e59b44847b379578588920cA78FbF26c0B4956C';
270
250
  // picked up by l1-contracts DeploymentConfiguration.sol
@@ -321,46 +301,35 @@ export function getDeployRollupForUpgradeEnvVars(args) {
321
301
  const l1ContractsPath = resolve(currentDir, '..', '..', '..', 'l1-contracts');
322
302
  const FORGE_SCRIPT = 'script/deploy/DeployRollupForUpgrade.s.sol';
323
303
  await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
324
- // Copy cache to temp location to avoid conflicts when running forge in parallel
325
- const tempCachePath = await copyFoundryCacheToTemp(l1ContractsPath);
326
- try {
327
- const forgeArgs = [
328
- 'script',
329
- FORGE_SCRIPT,
330
- '--sig',
331
- 'run()',
332
- '--private-key',
333
- privateKey,
334
- '--rpc-url',
335
- rpcUrl,
336
- '--broadcast'
337
- ];
338
- const forgeEnv = {
339
- FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
340
- // Env vars required by l1-contracts/script/deploy/RollupConfiguration.sol.
341
- REGISTRY_ADDRESS: registryAddress.toString(),
342
- NETWORK: getActiveNetworkName(),
343
- FOUNDRY_CACHE_PATH: tempCachePath,
344
- FOUNDRY_BROADCAST: tempCachePath,
345
- ...getDeployRollupForUpgradeEnvVars(args)
346
- };
347
- const result = await runProcess('forge', forgeArgs, forgeEnv, l1ContractsPath);
348
- if (!result) {
349
- throw new Error('Forge script did not output deployment result');
350
- }
351
- const extendedClient = createExtendedL1Client([
352
- rpcUrl
353
- ], privateKey);
354
- // Create RollupContract wrapper for the deployed rollup
355
- const rollup = new RollupContract(extendedClient, result.rollupAddress);
356
- return {
357
- rollup,
358
- slashFactoryAddress: result.slashFactoryAddress
359
- };
360
- } finally{
361
- await rm(tempCachePath, {
362
- recursive: true,
363
- force: true
364
- });
304
+ const forgeArgs = [
305
+ 'script',
306
+ FORGE_SCRIPT,
307
+ '--sig',
308
+ 'run()',
309
+ '--private-key',
310
+ privateKey,
311
+ '--rpc-url',
312
+ rpcUrl,
313
+ '--broadcast'
314
+ ];
315
+ const forgeEnv = {
316
+ FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
317
+ // Env vars required by l1-contracts/script/deploy/RollupConfiguration.sol.
318
+ REGISTRY_ADDRESS: registryAddress.toString(),
319
+ NETWORK: getActiveNetworkName(),
320
+ ...getDeployRollupForUpgradeEnvVars(args)
321
+ };
322
+ const result = await runProcess('forge', forgeArgs, forgeEnv, l1ContractsPath);
323
+ if (!result) {
324
+ throw new Error('Forge script did not output deployment result');
365
325
  }
326
+ const extendedClient = createExtendedL1Client([
327
+ rpcUrl
328
+ ], privateKey);
329
+ // Create RollupContract wrapper for the deployed rollup
330
+ const rollup = new RollupContract(extendedClient, result.rollupAddress);
331
+ return {
332
+ rollup,
333
+ slashFactoryAddress: result.slashFactoryAddress
334
+ };
366
335
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/ethereum",
3
- "version": "3.0.0-nightly.20251217",
3
+ "version": "3.0.0-nightly.20251218",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./account": "./dest/account.js",
@@ -49,10 +49,10 @@
49
49
  "../package.common.json"
50
50
  ],
51
51
  "dependencies": {
52
- "@aztec/blob-lib": "3.0.0-nightly.20251217",
53
- "@aztec/constants": "3.0.0-nightly.20251217",
54
- "@aztec/foundation": "3.0.0-nightly.20251217",
55
- "@aztec/l1-artifacts": "3.0.0-nightly.20251217",
52
+ "@aztec/blob-lib": "3.0.0-nightly.20251218",
53
+ "@aztec/constants": "3.0.0-nightly.20251218",
54
+ "@aztec/foundation": "3.0.0-nightly.20251218",
55
+ "@aztec/l1-artifacts": "3.0.0-nightly.20251218",
56
56
  "@viem/anvil": "^0.0.10",
57
57
  "dotenv": "^16.0.3",
58
58
  "lodash.chunk": "^4.2.0",
@@ -10,12 +10,10 @@ import { fileURLToPath } from '@aztec/foundation/url';
10
10
  import { bn254 } from '@noble/curves/bn254';
11
11
  import type { Abi, Narrow } from 'abitype';
12
12
  import { spawn } from 'child_process';
13
- import { cp, mkdtemp, rm } from 'fs/promises';
14
- import { tmpdir } from 'os';
15
- import { dirname, join, resolve } from 'path';
13
+ import { dirname, resolve } from 'path';
16
14
  import readline from 'readline';
17
15
  import type { Hex } from 'viem';
18
- import { foundry, mainnet } from 'viem/chains';
16
+ import { foundry, mainnet, sepolia } from 'viem/chains';
19
17
 
20
18
  import { createEthereumChain, isAnvilTestChain } from './chain.js';
21
19
  import { createExtendedL1Client } from './client.js';
@@ -77,17 +75,6 @@ function runProcess<T>(
77
75
  return promise;
78
76
  }
79
77
 
80
- /**
81
- * Copies the foundry cache folder to a temporary location to avoid conflicts when running forge in parallel.
82
- * The cache folder is small metadata that links to the out folder, so this is a fast operation.
83
- */
84
- async function copyFoundryCacheToTemp(l1ContractsPath: string): Promise<string> {
85
- const cacheFolder = join(l1ContractsPath, 'cache');
86
- const tempCacheFolder = await mkdtemp(join(tmpdir(), 'foundry-cache-'));
87
- await cp(cacheFolder, tempCacheFolder, { recursive: true });
88
- return tempCacheFolder;
89
- }
90
-
91
78
  // Covers an edge where where we may have a cached BlobLib that is not meant for production.
92
79
  // Despite the profile apparently sometimes cached code remains (so says Lasse after his ignition-monorepo arc).
93
80
  async function maybeForgeForceProductionBuild(l1ContractsPath: string, script: string, chainId: number) {
@@ -216,7 +203,6 @@ export async function deployAztecL1Contracts(
216
203
  privateKey: `0x${string}`,
217
204
  chainId: number,
218
205
  args: DeployAztecL1ContractsArgs,
219
- verifyContracts = false,
220
206
  ): Promise<DeployAztecL1ContractsReturnType> {
221
207
  logger.info(`Deploying L1 contracts with config: ${jsonStringify(args)}`);
222
208
  if (args.initialValidators && args.initialValidators.length > 0 && args.existingTokenAddress) {
@@ -260,101 +246,101 @@ export async function deployAztecL1Contracts(
260
246
  const FORGE_SCRIPT = 'script/deploy/DeployAztecL1Contracts.s.sol';
261
247
  await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
262
248
 
263
- // Copy cache to temp location to avoid conflicts when running forge in parallel
264
- const tempCachePath = await copyFoundryCacheToTemp(l1ContractsPath);
265
-
266
- try {
267
- // From heuristic testing. More caused issues with anvil.
268
- const MAGIC_ANVIL_BATCH_SIZE = 12;
269
- // Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
270
- // On sepolia and mainnet, we verify on etherscan (if etherscan API key is in env)
271
- const forgeArgs = [
272
- 'script',
273
- FORGE_SCRIPT,
274
- '--sig',
275
- 'run()',
276
- '--private-key',
277
- privateKey,
278
- '--rpc-url',
279
- rpcUrl,
280
- '--broadcast',
281
- ...(chainId === foundry.id ? ['--batch-size', MAGIC_ANVIL_BATCH_SIZE.toString()] : []),
282
- ...(verifyContracts ? ['--verify'] : []),
283
- ];
284
- const forgeEnv = {
285
- // Protect against root leaving deployment files in docker that cannot be used later.
286
- FOUNDRY_BROADCAST: process.getuid?.() === 0 ? 'broadcast-root' : tempCachePath,
287
- // Env vars required by l1-contracts/script/deploy/DeploymentConfiguration.sol.
288
- NETWORK: getActiveNetworkName(),
289
- FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
290
- FOUNDRY_CACHE_PATH: tempCachePath,
291
- ...getDeployAztecL1ContractsEnvVars(args),
292
- };
293
- const result = await runProcess<ForgeL1ContractsDeployResult>('forge', forgeArgs, forgeEnv, l1ContractsPath);
294
- if (!result) {
295
- throw new Error('Forge script did not output deployment result');
296
- }
297
- logger.info(`Deployed L1 contracts with L1 addresses: ${jsonStringify(result)}`);
249
+ // Verify contracts on Etherscan when on mainnet/sepolia and ETHERSCAN_API_KEY is available.
250
+ const isVerifiableChain = chainId === mainnet.id || chainId === sepolia.id;
251
+ const shouldVerify = isVerifiableChain && !!process.env.ETHERSCAN_API_KEY;
252
+
253
+ if (isVerifiableChain && !process.env.ETHERSCAN_API_KEY) {
254
+ logger.warn(
255
+ `Deploying to chain ${chainId} (${chainId === mainnet.id ? 'mainnet' : 'sepolia'}) without ETHERSCAN_API_KEY. ` +
256
+ `Contracts will NOT be verified on Etherscan. Set ETHERSCAN_API_KEY environment variable to enable verification.`,
257
+ );
258
+ }
298
259
 
299
- const rollup = new RollupContract(l1Client, result.rollupAddress);
260
+ // From heuristic testing. More caused issues with anvil.
261
+ const MAGIC_ANVIL_BATCH_SIZE = 12;
262
+ // Anvil seems to stall with unbounded batch size. Otherwise no max batch size is desirable.
263
+ const forgeArgs = [
264
+ 'script',
265
+ FORGE_SCRIPT,
266
+ '--sig',
267
+ 'run()',
268
+ '--private-key',
269
+ privateKey,
270
+ '--rpc-url',
271
+ rpcUrl,
272
+ '--broadcast',
273
+ ...(chainId === foundry.id ? ['--batch-size', MAGIC_ANVIL_BATCH_SIZE.toString()] : []),
274
+ ...(shouldVerify ? ['--verify'] : []),
275
+ ];
276
+ const forgeEnv = {
277
+ // Env vars required by l1-contracts/script/deploy/DeploymentConfiguration.sol.
278
+ NETWORK: getActiveNetworkName(),
279
+ FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
280
+ ...getDeployAztecL1ContractsEnvVars(args),
281
+ };
282
+ const result = await runProcess<ForgeL1ContractsDeployResult>('forge', forgeArgs, forgeEnv, l1ContractsPath);
283
+ if (!result) {
284
+ throw new Error('Forge script did not output deployment result');
285
+ }
286
+ logger.info(`Deployed L1 contracts with L1 addresses: ${jsonStringify(result)}`);
300
287
 
301
- if (isAnvilTestChain(chainId)) {
302
- // @note We make a time jump PAST the very first slot to not have to deal with the edge case of the first slot.
303
- // The edge case being that the genesis block is already occupying slot 0, so we cannot have another block.
304
- try {
305
- // Need to get the time
306
- const currentSlot = await rollup.getSlotNumber();
288
+ const rollup = new RollupContract(l1Client, result.rollupAddress);
289
+
290
+ if (isAnvilTestChain(chainId)) {
291
+ // @note We make a time jump PAST the very first slot to not have to deal with the edge case of the first slot.
292
+ // The edge case being that the genesis block is already occupying slot 0, so we cannot have another block.
293
+ try {
294
+ // Need to get the time
295
+ const currentSlot = await rollup.getSlotNumber();
307
296
 
308
- if (currentSlot === 0) {
309
- const ts = Number(await rollup.getTimestampForSlot(SlotNumber(1)));
310
- await rpcCall('evm_setNextBlockTimestamp', [ts]);
311
- await rpcCall('hardhat_mine', [1]);
312
- const currentSlot = await rollup.getSlotNumber();
297
+ if (currentSlot === 0) {
298
+ const ts = Number(await rollup.getTimestampForSlot(SlotNumber(1)));
299
+ await rpcCall('evm_setNextBlockTimestamp', [ts]);
300
+ await rpcCall('hardhat_mine', [1]);
301
+ const currentSlot = await rollup.getSlotNumber();
313
302
 
314
- if (currentSlot !== 1) {
315
- throw new Error(`Error jumping time: current slot is ${currentSlot}`);
316
- }
317
- logger.info(`Jumped to slot 1`);
303
+ if (currentSlot !== 1) {
304
+ throw new Error(`Error jumping time: current slot is ${currentSlot}`);
318
305
  }
319
- } catch (e) {
320
- throw new Error(`Error jumping time: ${e}`);
306
+ logger.info(`Jumped to slot 1`);
321
307
  }
308
+ } catch (e) {
309
+ throw new Error(`Error jumping time: ${e}`);
322
310
  }
323
-
324
- return {
325
- l1Client,
326
- rollupVersion: result.rollupVersion,
327
- l1ContractAddresses: {
328
- rollupAddress: EthAddress.fromString(result.rollupAddress),
329
- registryAddress: EthAddress.fromString(result.registryAddress),
330
- inboxAddress: EthAddress.fromString(result.inboxAddress),
331
- outboxAddress: EthAddress.fromString(result.outboxAddress),
332
- feeJuiceAddress: EthAddress.fromString(result.feeAssetAddress),
333
- feeJuicePortalAddress: EthAddress.fromString(result.feeJuicePortalAddress),
334
- coinIssuerAddress: EthAddress.fromString(result.coinIssuerAddress),
335
- rewardDistributorAddress: EthAddress.fromString(result.rewardDistributorAddress),
336
- governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
337
- governanceAddress: EthAddress.fromString(result.governanceAddress),
338
- stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
339
- slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
340
- feeAssetHandlerAddress: result.feeAssetHandlerAddress
341
- ? EthAddress.fromString(result.feeAssetHandlerAddress)
342
- : undefined,
343
- stakingAssetHandlerAddress: result.stakingAssetHandlerAddress
344
- ? EthAddress.fromString(result.stakingAssetHandlerAddress)
345
- : undefined,
346
- zkPassportVerifierAddress: result.zkPassportVerifierAddress
347
- ? EthAddress.fromString(result.zkPassportVerifierAddress)
348
- : undefined,
349
- gseAddress: result.gseAddress ? EthAddress.fromString(result.gseAddress) : undefined,
350
- dateGatedRelayerAddress: result.dateGatedRelayerAddress
351
- ? EthAddress.fromString(result.dateGatedRelayerAddress)
352
- : undefined,
353
- },
354
- };
355
- } finally {
356
- await rm(tempCachePath, { recursive: true, force: true });
357
311
  }
312
+
313
+ return {
314
+ l1Client,
315
+ rollupVersion: result.rollupVersion,
316
+ l1ContractAddresses: {
317
+ rollupAddress: EthAddress.fromString(result.rollupAddress),
318
+ registryAddress: EthAddress.fromString(result.registryAddress),
319
+ inboxAddress: EthAddress.fromString(result.inboxAddress),
320
+ outboxAddress: EthAddress.fromString(result.outboxAddress),
321
+ feeJuiceAddress: EthAddress.fromString(result.feeAssetAddress),
322
+ feeJuicePortalAddress: EthAddress.fromString(result.feeJuicePortalAddress),
323
+ coinIssuerAddress: EthAddress.fromString(result.coinIssuerAddress),
324
+ rewardDistributorAddress: EthAddress.fromString(result.rewardDistributorAddress),
325
+ governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
326
+ governanceAddress: EthAddress.fromString(result.governanceAddress),
327
+ stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
328
+ slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
329
+ feeAssetHandlerAddress: result.feeAssetHandlerAddress
330
+ ? EthAddress.fromString(result.feeAssetHandlerAddress)
331
+ : undefined,
332
+ stakingAssetHandlerAddress: result.stakingAssetHandlerAddress
333
+ ? EthAddress.fromString(result.stakingAssetHandlerAddress)
334
+ : undefined,
335
+ zkPassportVerifierAddress: result.zkPassportVerifierAddress
336
+ ? EthAddress.fromString(result.zkPassportVerifierAddress)
337
+ : undefined,
338
+ gseAddress: result.gseAddress ? EthAddress.fromString(result.gseAddress) : undefined,
339
+ dateGatedRelayerAddress: result.dateGatedRelayerAddress
340
+ ? EthAddress.fromString(result.dateGatedRelayerAddress)
341
+ : undefined,
342
+ },
343
+ };
358
344
  }
359
345
 
360
346
  export const DEPLOYER_ADDRESS: Hex = '0x4e59b44847b379578588920cA78FbF26c0B4956C';
@@ -534,46 +520,37 @@ export const deployRollupForUpgrade = async (
534
520
  const FORGE_SCRIPT = 'script/deploy/DeployRollupForUpgrade.s.sol';
535
521
  await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
536
522
 
537
- // Copy cache to temp location to avoid conflicts when running forge in parallel
538
- const tempCachePath = await copyFoundryCacheToTemp(l1ContractsPath);
539
-
540
- try {
541
- const forgeArgs = [
542
- 'script',
543
- FORGE_SCRIPT,
544
- '--sig',
545
- 'run()',
546
- '--private-key',
547
- privateKey,
548
- '--rpc-url',
549
- rpcUrl,
550
- '--broadcast',
551
- ];
552
- const forgeEnv = {
553
- FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
554
- // Env vars required by l1-contracts/script/deploy/RollupConfiguration.sol.
555
- REGISTRY_ADDRESS: registryAddress.toString(),
556
- NETWORK: getActiveNetworkName(),
557
- FOUNDRY_CACHE_PATH: tempCachePath,
558
- FOUNDRY_BROADCAST: tempCachePath,
559
- ...getDeployRollupForUpgradeEnvVars(args),
560
- };
561
-
562
- const result = await runProcess<ForgeRollupUpgradeResult>('forge', forgeArgs, forgeEnv, l1ContractsPath);
563
- if (!result) {
564
- throw new Error('Forge script did not output deployment result');
565
- }
523
+ const forgeArgs = [
524
+ 'script',
525
+ FORGE_SCRIPT,
526
+ '--sig',
527
+ 'run()',
528
+ '--private-key',
529
+ privateKey,
530
+ '--rpc-url',
531
+ rpcUrl,
532
+ '--broadcast',
533
+ ];
534
+ const forgeEnv = {
535
+ FOUNDRY_PROFILE: chainId === mainnet.id ? 'production' : undefined,
536
+ // Env vars required by l1-contracts/script/deploy/RollupConfiguration.sol.
537
+ REGISTRY_ADDRESS: registryAddress.toString(),
538
+ NETWORK: getActiveNetworkName(),
539
+ ...getDeployRollupForUpgradeEnvVars(args),
540
+ };
566
541
 
567
- const extendedClient = createExtendedL1Client([rpcUrl], privateKey);
542
+ const result = await runProcess<ForgeRollupUpgradeResult>('forge', forgeArgs, forgeEnv, l1ContractsPath);
543
+ if (!result) {
544
+ throw new Error('Forge script did not output deployment result');
545
+ }
568
546
 
569
- // Create RollupContract wrapper for the deployed rollup
570
- const rollup = new RollupContract(extendedClient, result.rollupAddress);
547
+ const extendedClient = createExtendedL1Client([rpcUrl], privateKey);
571
548
 
572
- return {
573
- rollup,
574
- slashFactoryAddress: result.slashFactoryAddress,
575
- };
576
- } finally {
577
- await rm(tempCachePath, { recursive: true, force: true });
578
- }
549
+ // Create RollupContract wrapper for the deployed rollup
550
+ const rollup = new RollupContract(extendedClient, result.rollupAddress);
551
+
552
+ return {
553
+ rollup,
554
+ slashFactoryAddress: result.slashFactoryAddress,
555
+ };
579
556
  };