@aztec/ethereum 3.0.0-nightly.20251214 → 3.0.0-nightly.20251217
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/deploy_aztec_l1_contracts.d.ts +2 -2
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_aztec_l1_contracts.js +144 -107
- package/dest/l1_artifacts.d.ts +61 -41
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_contract_addresses.d.ts +1 -1
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +3 -3
- package/dest/l1_tx_utils/constants.d.ts +7 -1
- package/dest/l1_tx_utils/constants.d.ts.map +1 -1
- package/dest/l1_tx_utils/constants.js +25 -0
- package/dest/l1_tx_utils/fee-strategies/index.d.ts +9 -0
- package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/index.js +11 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +18 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +111 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +32 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +173 -0
- package/dest/l1_tx_utils/fee-strategies/types.d.ts +64 -0
- package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/types.js +24 -0
- package/dest/l1_tx_utils/index.d.ts +3 -1
- package/dest/l1_tx_utils/index.d.ts.map +1 -1
- package/dest/l1_tx_utils/index.js +2 -0
- package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +232 -0
- package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -0
- package/dest/l1_tx_utils/l1_fee_analyzer.js +506 -0
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +1 -10
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +43 -121
- package/dest/utils.d.ts +14 -2
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +18 -0
- package/package.json +6 -5
- package/src/deploy_aztec_l1_contracts.ts +141 -107
- package/src/l1_contract_addresses.ts +22 -20
- package/src/l1_tx_utils/constants.ts +11 -0
- package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
- package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +159 -0
- package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +241 -0
- package/src/l1_tx_utils/fee-strategies/types.ts +88 -0
- package/src/l1_tx_utils/index.ts +2 -0
- package/src/l1_tx_utils/l1_fee_analyzer.ts +803 -0
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +47 -158
- package/src/utils.ts +29 -0
|
@@ -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): Promise<DeployAztecL1ContractsReturnType>;
|
|
89
|
+
export declare function deployAztecL1Contracts(rpcUrl: string, privateKey: `0x${string}`, chainId: number, args: DeployAztecL1ContractsArgs, verifyContracts?: boolean): 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,
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2F6dGVjX2wxX2NvbnRyYWN0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RlcGxveV9henRlY19sMV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBd0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU0zQyxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLaEMsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUEyRTNELE1BQU0sV0FBVyxXQUFXO0lBQzFCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQztJQUNYLEVBQUUsRUFBRSxNQUFNLENBQUM7Q0FDWjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxhQUFhO0lBQzVCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixxQ0FBcUM7SUFDckMsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixrRUFBa0U7SUFDbEUsYUFBYSxFQUFFLFdBQVcs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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;
|
|
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,7 +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 {
|
|
10
|
+
import { cp, mkdtemp, rm } from 'fs/promises';
|
|
11
|
+
import { tmpdir } from 'os';
|
|
12
|
+
import { dirname, join, resolve } from 'path';
|
|
11
13
|
import readline from 'readline';
|
|
12
14
|
import { foundry, mainnet } from 'viem/chains';
|
|
13
15
|
import { createEthereumChain, isAnvilTestChain } from './chain.js';
|
|
@@ -62,6 +64,17 @@ const JSON_DEPLOY_RESULT_PREFIX = 'JSON DEPLOY RESULT:';
|
|
|
62
64
|
});
|
|
63
65
|
return promise;
|
|
64
66
|
}
|
|
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
|
+
}
|
|
65
78
|
// Covers an edge where where we may have a cached BlobLib that is not meant for production.
|
|
66
79
|
// Despite the profile apparently sometimes cached code remains (so says Lasse after his ignition-monorepo arc).
|
|
67
80
|
async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId) {
|
|
@@ -120,7 +133,7 @@ async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId)
|
|
|
120
133
|
* @param privateKey - The private key for the deployer (with 0x prefix)
|
|
121
134
|
* @param options - Additional deployment options (all optional with sensible defaults)
|
|
122
135
|
* @returns The deployment result with all contract addresses and an l1Client
|
|
123
|
-
*/ export async function deployAztecL1Contracts(rpcUrl, privateKey, chainId, args) {
|
|
136
|
+
*/ export async function deployAztecL1Contracts(rpcUrl, privateKey, chainId, args, verifyContracts = false) {
|
|
124
137
|
logger.info(`Deploying L1 contracts with config: ${jsonStringify(args)}`);
|
|
125
138
|
if (args.initialValidators && args.initialValidators.length > 0 && args.existingTokenAddress) {
|
|
126
139
|
throw new Error('Cannot deploy with both initialValidators and existingTokenAddress. ' + 'Initial validator funding requires minting tokens, which is not possible with an external token.');
|
|
@@ -159,86 +172,99 @@ async function maybeForgeForceProductionBuild(l1ContractsPath, script, chainId)
|
|
|
159
172
|
const l1ContractsPath = resolve(currentDir, '..', '..', '..', 'l1-contracts');
|
|
160
173
|
const FORGE_SCRIPT = 'script/deploy/DeployAztecL1Contracts.s.sol';
|
|
161
174
|
await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
|
|
162
|
-
//
|
|
163
|
-
const
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
1
|
|
208
|
-
]);
|
|
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
|
|
209
220
|
const currentSlot = await rollup.getSlotNumber();
|
|
210
|
-
if (currentSlot
|
|
211
|
-
|
|
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`);
|
|
212
234
|
}
|
|
213
|
-
|
|
235
|
+
} catch (e) {
|
|
236
|
+
throw new Error(`Error jumping time: ${e}`);
|
|
214
237
|
}
|
|
215
|
-
} catch (e) {
|
|
216
|
-
throw new Error(`Error jumping time: ${e}`);
|
|
217
238
|
}
|
|
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
|
+
});
|
|
218
267
|
}
|
|
219
|
-
return {
|
|
220
|
-
l1Client,
|
|
221
|
-
rollupVersion: result.rollupVersion,
|
|
222
|
-
l1ContractAddresses: {
|
|
223
|
-
rollupAddress: EthAddress.fromString(result.rollupAddress),
|
|
224
|
-
registryAddress: EthAddress.fromString(result.registryAddress),
|
|
225
|
-
inboxAddress: EthAddress.fromString(result.inboxAddress),
|
|
226
|
-
outboxAddress: EthAddress.fromString(result.outboxAddress),
|
|
227
|
-
feeJuiceAddress: EthAddress.fromString(result.feeAssetAddress),
|
|
228
|
-
feeJuicePortalAddress: EthAddress.fromString(result.feeJuicePortalAddress),
|
|
229
|
-
coinIssuerAddress: EthAddress.fromString(result.coinIssuerAddress),
|
|
230
|
-
rewardDistributorAddress: EthAddress.fromString(result.rewardDistributorAddress),
|
|
231
|
-
governanceProposerAddress: EthAddress.fromString(result.governanceProposerAddress),
|
|
232
|
-
governanceAddress: EthAddress.fromString(result.governanceAddress),
|
|
233
|
-
stakingAssetAddress: EthAddress.fromString(result.stakingAssetAddress),
|
|
234
|
-
slashFactoryAddress: result.slashFactoryAddress ? EthAddress.fromString(result.slashFactoryAddress) : undefined,
|
|
235
|
-
feeAssetHandlerAddress: result.feeAssetHandlerAddress ? EthAddress.fromString(result.feeAssetHandlerAddress) : undefined,
|
|
236
|
-
stakingAssetHandlerAddress: result.stakingAssetHandlerAddress ? EthAddress.fromString(result.stakingAssetHandlerAddress) : undefined,
|
|
237
|
-
zkPassportVerifierAddress: result.zkPassportVerifierAddress ? EthAddress.fromString(result.zkPassportVerifierAddress) : undefined,
|
|
238
|
-
gseAddress: result.gseAddress ? EthAddress.fromString(result.gseAddress) : undefined,
|
|
239
|
-
dateGatedRelayerAddress: result.dateGatedRelayerAddress ? EthAddress.fromString(result.dateGatedRelayerAddress) : undefined
|
|
240
|
-
}
|
|
241
|
-
};
|
|
242
268
|
}
|
|
243
269
|
export const DEPLOYER_ADDRESS = '0x4e59b44847b379578588920cA78FbF26c0B4956C';
|
|
244
270
|
// picked up by l1-contracts DeploymentConfiguration.sol
|
|
@@ -295,35 +321,46 @@ export function getDeployRollupForUpgradeEnvVars(args) {
|
|
|
295
321
|
const l1ContractsPath = resolve(currentDir, '..', '..', '..', 'l1-contracts');
|
|
296
322
|
const FORGE_SCRIPT = 'script/deploy/DeployRollupForUpgrade.s.sol';
|
|
297
323
|
await maybeForgeForceProductionBuild(l1ContractsPath, FORGE_SCRIPT, chainId);
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
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
|
+
});
|
|
319
365
|
}
|
|
320
|
-
const extendedClient = createExtendedL1Client([
|
|
321
|
-
rpcUrl
|
|
322
|
-
], privateKey);
|
|
323
|
-
// Create RollupContract wrapper for the deployed rollup
|
|
324
|
-
const rollup = new RollupContract(extendedClient, result.rollupAddress);
|
|
325
|
-
return {
|
|
326
|
-
rollup,
|
|
327
|
-
slashFactoryAddress: result.slashFactoryAddress
|
|
328
|
-
};
|
|
329
366
|
};
|