From d90b5acbf6f957b271603b18c949590820e54053 Mon Sep 17 00:00:00 2001 From: Sneh Koul Date: Mon, 22 Jul 2024 19:14:06 -0400 Subject: [PATCH 1/5] Deploy RollupCreator and document the process --- .env.sample.goerli | 2 ++ README.md | 63 +++++++++++++++++++++++++++++++------- scripts/createEthRollup.ts | 6 +++- scripts/deployment.ts | 8 ++--- 4 files changed, 62 insertions(+), 17 deletions(-) diff --git a/.env.sample.goerli b/.env.sample.goerli index 52bf51b5..6a124c8b 100644 --- a/.env.sample.goerli +++ b/.env.sample.goerli @@ -1,7 +1,9 @@ ROLLUP_CREATOR_ADDRESS="" ARBISCAN_API_KEY="" +ETHERSCAN_API_KEY="" ## deployer key DEVNET_PRIVKEY="" +INFURA_KEY="" ## optional - address of already deployed ERC20 token which shall be used as rollup's fee token FEE_TOKEN_ADDRESS="" diff --git a/README.md b/README.md index da919af1..a320baa6 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,11 @@ # Arbitrum Nitro Rollup Contracts -This is the package with the smart contract code that powers Arbitrum Nitro. +This is the package with the smart contract code that powers Arbitrum Nitro and Espresso integration. It includes the rollup and fraud proof smart contracts, as well as interfaces for interacting with precompiles. -For more information see https://developer.arbitrum.io/intro +## Deploy contracts to Sepolia -For the deployed addresses of these contracts for Arbitrum chains see https://developer.arbitrum.io/useful-addresses - -For the token bridge contracts see https://github.com/OffchainLabs/token-bridge-contracts +### 1. Compile contracts Compile these contracts locally by running @@ -16,8 +14,57 @@ git clone https://github.com/offchainlabs/nitro-contracts cd nitro-contracts yarn install yarn build +yarn build:forge ``` +### 2. Setup environment variables and config files + +Copy `.env.sample.goerli` to `.env` and fill in the values. Add an [Etherscan api key](https://docs.etherscan.io/getting-started/viewing-api-usage-statistics), [Infura api key](https://docs.infura.io/dashboard/create-api) and a private key which has some funds on sepolia. This private key will be used to deploy the rollup. We have already deployed a `ROLLUP_CREATOR_ADDRESS` which has all the associated espresso contracts initialized on `0x93c735d1D36b4fDfcD1aebe7B54c7fd0DE553898`. If you want to deploy your own rollup creator, you can leave the `ROLLUP_CREATOR_ADDRESS` empty and follow the steps on step 3. If you want to use the already deployed `RollupCreator`, you can update the `ROLLUP_CREATOR_ADDRESS` with the address of the already deployed rollup creator (0x93c735d1D36b4fDfcD1aebe7B54c7fd0DE553898) and follow the steps on step 4 to create the rollup. + +### 3. Deploy Rollup Creator and initialize the espresso contracts + +Change the `config.ts.example` to `config.ts` and run the following command to deploy the rollup creator and initialize the espresso contracts. + +`npx hardhat run scripts/deployment.ts --network sepolia` + +This will deploy the rollup creator and initialize the espresso contracts. + +### 4. Create the rollup + +Change the `config.ts.example` to `config.ts` and run the following command to create the rollup if you haven't already done so. + +`npx hardhat run scripts/createEthRollup.ts --network sepolia` + +This will create the rollup. + +## Contract addresses on Sepolia with Espresso integration + +| Contract | Address | +| ------------------------------------------ | ------------------------------------------ | +| Bridge | 0xDf8D8f6be21Eda8c64c91aB5025b84B31B080110 | +| SequencerInbox ( with ETH As Fee Token ) | 0xBf79789F11972d928013dCD0882C1C62bbb0aED0 | +| SequencerInbox ( with ERC20 As Fee Token ) | 0x173500d112890FC7154742f9B4A1FC6E7f7C6f7b | +| Inbox | 0x6B676781375f9e857F1ee8729CfEE80B4775C62b | +| RollupEventInbox | 0xA1A00d2E9C2297c085A30294b59f751906764C0e | +| Outbox | 0x7069c6D1df347b66c4f6814E20A8bcD9A527e90C | +| ERC20Bridge | 0x7aD4cF0bce329B7486640f299eaB8128c73Bf32b | +| ERC20Inbox | 0xecdB9fFCFD69E1dB46F4Ba967a91b4aC9b6c90e7 | +| ERC20RollupEventInbox | 0xA99FD38FC1C303FC239Aae14fC11d6425396dD96 | +| ERC20Outbox | 0x3bb2c779AeDF0AC7C96449205cdaD97D89981B1d | +| BridgeCreator | 0x977523CDBd21CA804bAE1BA6FAC62d7dd9f8ee41 | +| OneStepProver0 | 0x2925Cc6811A73E7887126a17caaEcE17f6392a31 | +| OneStepProverMemory | 0xD133aFE9a327e9945FA92Fec31A42A20A27c5Aac | +| OneStepProverMath | 0xd8a98a887906C29404D06Bedf15C9e4Ec2083aA9 | +| OneStepProverHostIo | 0xa00b23d0E31CFf1Baeb7aB262c232c99AD6a34Af | +| OneStepProofEntry | 0xB7289B5F2E4a72020C0d69A065f9c14373eb6932 | +| ChallengeManager | 0x1d8a4A99eac0392176395a602CEA6BA1111773Ff | +| RollupAdminLogic | 0x768DFd911967D8377aa1D5EBeD44D773e4157D56 | +| RollupUserLogic | 0x019c46d437810Df680E8042093fae503FEA13983 | +| ValidatorUtils | 0x6A71F50fb675115e2311283145F0d0304646D346 | +| ValidatorWalletCreator | 0xf06a0bb1ce389980D3Cf43a94de9c7c60a9beC93 | +| RollupCreator | 0x93c735d1D36b4fDfcD1aebe7B54c7fd0DE553898 | +| DeployHelper | 0x64Ff95c6F17FdFF32C7E634D45F5143Ee372f887 | + ## License Nitro is currently licensed under a [Business Source License](./LICENSE.md), similar to our friends at Uniswap and Aave, with an "Additional Use Grant" to ensure that everyone can have full comfort using and running nodes on all public Arbitrum chains. @@ -25,9 +72,3 @@ Nitro is currently licensed under a [Business Source License](./LICENSE.md), sim The Additional Use Grant also permits the deployment of the Nitro software, in a permissionless fashion and without cost, as a new blockchain provided that the chain settles to either Arbitrum One or Arbitrum Nova. For those that prefer to deploy the Nitro software either directly on Ethereum (i.e. an L2) or have it settle to another Layer-2 on top of Ethereum, the [Arbitrum Expansion Program (the "AEP")](https://docs.arbitrum.foundation/assets/files/Arbitrum%20Expansion%20Program%20Jan182024-4f08b0c2cb476a55dc153380fa3e64b0.pdf) was recently established. The AEP allows for the permissionless deployment in the aforementioned fashion provided that 10% of net revenue is contributed back to the Arbitrum community in accordance with the requirements of the AEP. - -## Contact - -Discord - [Arbitrum](https://discord.com/invite/5KE54JwyTs) - -Twitter: [Arbitrum](https://twitter.com/arbitrum) diff --git a/scripts/createEthRollup.ts b/scripts/createEthRollup.ts index 4248ac21..d5f89f98 100644 --- a/scripts/createEthRollup.ts +++ b/scripts/createEthRollup.ts @@ -3,12 +3,16 @@ import '@nomiclabs/hardhat-ethers' import { createRollup } from './rollupCreation' async function main() { - const feeToken = undefined const rollupCreatorAddress = process.env.ROLLUP_CREATOR_ADDRESS if (!rollupCreatorAddress) { throw new Error('ROLLUP_CREATOR_ADDRESS not set') } + let feeToken = process.env.FEE_TOKEN_ADDRESS as string + // if fee token is not set, then use address(0) to have ETH as fee token + if (!feeToken) { + feeToken = ethers.constants.AddressZero + } const [signer] = await ethers.getSigners() await createRollup(signer, false, rollupCreatorAddress, feeToken) diff --git a/scripts/deployment.ts b/scripts/deployment.ts index 8da3acc2..b9788027 100644 --- a/scripts/deployment.ts +++ b/scripts/deployment.ts @@ -1,19 +1,17 @@ import { ethers } from 'hardhat' import '@nomiclabs/hardhat-ethers' import { deployAllContracts } from './deploymentUtils' -import { maxDataSize } from './config' +import { maxDataSize, ESPRESSO_LIGHT_CLIENT_ADDRESS } from './config' async function main() { const [signer] = await ethers.getSigners() - try { - // Deploying all contracts const contracts = await deployAllContracts( signer, ethers.BigNumber.from(maxDataSize), - true + true, + ESPRESSO_LIGHT_CLIENT_ADDRESS ) - // Call setTemplates with the deployed contract addresses console.log('Waiting for the Template to be set on the Rollup Creator') await contracts.rollupCreator.setTemplates( From 0e9b8ad1a4732c1c9758f7736f6491eb342b84a2 Mon Sep 17 00:00:00 2001 From: Sneh Koul Date: Tue, 23 Jul 2024 16:24:44 -0400 Subject: [PATCH 2/5] address comments --- .env.sample.goerli | 1 + espresso-deployments/sepolia.json | 26 +++++++++++++++ scripts/deployment.ts | 53 +++++++++++++++++++++++++++++-- scripts/deploymentUtils.ts | 10 ++++++ 4 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 espresso-deployments/sepolia.json diff --git a/.env.sample.goerli b/.env.sample.goerli index 6a124c8b..e105b779 100644 --- a/.env.sample.goerli +++ b/.env.sample.goerli @@ -7,3 +7,4 @@ INFURA_KEY="" ## optional - address of already deployed ERC20 token which shall be used as rollup's fee token FEE_TOKEN_ADDRESS="" +ESPRESSO_LIGHT_CLIENT_ADDRESS="" diff --git a/espresso-deployments/sepolia.json b/espresso-deployments/sepolia.json new file mode 100644 index 00000000..03ddba7e --- /dev/null +++ b/espresso-deployments/sepolia.json @@ -0,0 +1,26 @@ +{ + "EthBridge": "0x3D65C887c92450f4FCd222F38813A3204269716e", + "EthSequencerInbox": "0xC2adA1144BB5BE16931F124656E0900566131e8E", + "EthInbox": "0x681Cc38E2C70Ca6b023a54e0dA41274796b4a87b", + "EthRollupEventInbox": "0xFE4d1d116bD0Dd6AD2e2A5f420C0D8eF91F0706f", + "EthOutbox": "0x81E0ca0C2c82f9a677b033eF410933eb11B3f6F7", + "ERC20Bridge": "0xf2e74929074d7c9b1947e232e0FA0D71DA733240", + "ERC20SequencerInbox": "0x2415292b8f15eD570E9925fFCB7C5E808926b0E2", + "ERC20Inbox": "0x0b6c993E93c371FbfC619FCA65dE5cBa99813644", + "ERC20RollupEventInbox": "0x3C4079c7FB37d27305A45106d3972705eddfc238", + "ERC20Outbox": "0xd01030a5dD5BD17757CcCA156e48b2Bc62d02B6e", + "BridgeCreator": "0x3D65C887c92450f4FCd222F38813A3204269716e", + "OneStepProver0": "0x685c80B73A7e47456b3b35A69625dFBB1B4546E3", + "OneStepProverMemory": "0xb08dD09B3f2C5Dd3630e88E22984F374BA8406c3", + "OneStepProverMath": "0x97f584bB16624dE35af1bbd96Eb9563EA65fC9D5", + "OneStepProverHostIo": "0xd685fe703891747626599039B6754665222a8A41", + "OneStepProofEntry": "0x34B5A7ea1d77D811710aA04F33a4465d8DDEc99c", + "ChallengeManager": "0x5EC02903570640E1f46d5053F3953BF5a61B5aD2", + "RollupAdminLogic": "0x7a78217012D7d9dCF3f80470688939779185bf8F", + "RollupUserLogic": "0x67C288C6D5633C32F060E90bFdc26e25ceB92913", + "UpgradeExecutor": "0xD6193d507Fa3a754CD7b3Fee78df5f2946A32C73", + "ValidatorUtils": "0x95B246395C4276Acc135194a6057e6260Dc9D651", + "ValidatorWalletCreator": "0xE23a9eBDbc3F34FaaFBb4B18F8fE5727620982eC", + "RollupCreator": "0xb89a5fE9C7AdF69E809dE385225e985eE7D8DDB2", + "DeployHelper": "0xc9E13351594F838AA31671060a425442805bf150" +} \ No newline at end of file diff --git a/scripts/deployment.ts b/scripts/deployment.ts index b9788027..59a5d5c3 100644 --- a/scripts/deployment.ts +++ b/scripts/deployment.ts @@ -1,19 +1,66 @@ -import { ethers } from 'hardhat' +import { ethers, network } from 'hardhat' import '@nomiclabs/hardhat-ethers' import { deployAllContracts } from './deploymentUtils' -import { maxDataSize, ESPRESSO_LIGHT_CLIENT_ADDRESS } from './config' +import { maxDataSize } from './config' +import fs from 'fs' async function main() { const [signer] = await ethers.getSigners() try { + const espressoLisghtClientAddress = + process.env.ESPRESSO_LIGHT_CLIENT_ADDRESS + + if (!espressoLisghtClientAddress) { + console.warn( + 'env var ESPRESSO_LIGHT_CLIENT_ADDRESS not set, it needs to be set to deploy the RollupCreator for the espresso integration' + ) + } + const contracts = await deployAllContracts( signer, ethers.BigNumber.from(maxDataSize), true, - ESPRESSO_LIGHT_CLIENT_ADDRESS + espressoLisghtClientAddress + ) + + const contractAddresses = { + EthBridge: contracts.bridgeCreator.address, + EthSequencerInbox: contracts.ethSequencerInbox.address, + EthInbox: contracts.ethInbox.address, + EthRollupEventInbox: contracts.ethRollupEventInbox.address, + EthOutbox: contracts.ethOutbox.address, + ERC20Bridge: contracts.erc20Bridge.address, + ERC20SequencerInbox: contracts.erc20SequencerInbox.address, + ERC20Inbox: contracts.erc20Inbox.address, + ERC20RollupEventInbox: contracts.erc20RollupEventInbox.address, + ERC20Outbox: contracts.erc20Outbox.address, + BridgeCreator: contracts.bridgeCreator.address, + OneStepProver0: contracts.prover0.address, + OneStepProverMemory: contracts.proverMem.address, + OneStepProverMath: contracts.proverMath.address, + OneStepProverHostIo: contracts.proverHostIo.address, + OneStepProofEntry: contracts.osp.address, + ChallengeManager: contracts.challengeManager.address, + RollupAdminLogic: contracts.rollupAdmin.address, + RollupUserLogic: contracts.rollupUser.address, + UpgradeExecutor: contracts.upgradeExecutor.address, + ValidatorUtils: contracts.validatorUtils.address, + ValidatorWalletCreator: contracts.validatorWalletCreator.address, + RollupCreator: contracts.rollupCreator.address, + DeployHelper: contracts.deployHelper.address, + } + + // save the contract name to address mapping in a json file + fs.writeFileSync( + `./espresso-deployments/${network.name}.json`, + JSON.stringify(contractAddresses, null, 2) ) + + console.info('Contract addresses are saved in the deployments folder') + // Call setTemplates with the deployed contract addresses console.log('Waiting for the Template to be set on the Rollup Creator') + await contracts.rollupCreator.setTemplates( contracts.bridgeCreator.address, contracts.osp.address, diff --git a/scripts/deploymentUtils.ts b/scripts/deploymentUtils.ts index b98027e9..ac36b296 100644 --- a/scripts/deploymentUtils.ts +++ b/scripts/deploymentUtils.ts @@ -229,6 +229,16 @@ export async function deployAllContracts( ) const deployHelper = await deployContract('DeployHelper', signer, [], verify) return { + ethBridge, + ethSequencerInbox, + ethInbox, + ethRollupEventInbox, + ethOutbox, + erc20Bridge, + erc20SequencerInbox, + erc20Inbox, + erc20RollupEventInbox, + erc20Outbox, bridgeCreator, prover0, proverMem, From 1ed13f6bb5ed4314cdff77fc933c28482308fb4f Mon Sep 17 00:00:00 2001 From: Sneh Koul Date: Tue, 23 Jul 2024 16:31:37 -0400 Subject: [PATCH 3/5] update readme --- README.md | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index a320baa6..2c05b3c3 100644 --- a/README.md +++ b/README.md @@ -37,33 +37,9 @@ Change the `config.ts.example` to `config.ts` and run the following command to c This will create the rollup. -## Contract addresses on Sepolia with Espresso integration - -| Contract | Address | -| ------------------------------------------ | ------------------------------------------ | -| Bridge | 0xDf8D8f6be21Eda8c64c91aB5025b84B31B080110 | -| SequencerInbox ( with ETH As Fee Token ) | 0xBf79789F11972d928013dCD0882C1C62bbb0aED0 | -| SequencerInbox ( with ERC20 As Fee Token ) | 0x173500d112890FC7154742f9B4A1FC6E7f7C6f7b | -| Inbox | 0x6B676781375f9e857F1ee8729CfEE80B4775C62b | -| RollupEventInbox | 0xA1A00d2E9C2297c085A30294b59f751906764C0e | -| Outbox | 0x7069c6D1df347b66c4f6814E20A8bcD9A527e90C | -| ERC20Bridge | 0x7aD4cF0bce329B7486640f299eaB8128c73Bf32b | -| ERC20Inbox | 0xecdB9fFCFD69E1dB46F4Ba967a91b4aC9b6c90e7 | -| ERC20RollupEventInbox | 0xA99FD38FC1C303FC239Aae14fC11d6425396dD96 | -| ERC20Outbox | 0x3bb2c779AeDF0AC7C96449205cdaD97D89981B1d | -| BridgeCreator | 0x977523CDBd21CA804bAE1BA6FAC62d7dd9f8ee41 | -| OneStepProver0 | 0x2925Cc6811A73E7887126a17caaEcE17f6392a31 | -| OneStepProverMemory | 0xD133aFE9a327e9945FA92Fec31A42A20A27c5Aac | -| OneStepProverMath | 0xd8a98a887906C29404D06Bedf15C9e4Ec2083aA9 | -| OneStepProverHostIo | 0xa00b23d0E31CFf1Baeb7aB262c232c99AD6a34Af | -| OneStepProofEntry | 0xB7289B5F2E4a72020C0d69A065f9c14373eb6932 | -| ChallengeManager | 0x1d8a4A99eac0392176395a602CEA6BA1111773Ff | -| RollupAdminLogic | 0x768DFd911967D8377aa1D5EBeD44D773e4157D56 | -| RollupUserLogic | 0x019c46d437810Df680E8042093fae503FEA13983 | -| ValidatorUtils | 0x6A71F50fb675115e2311283145F0d0304646D346 | -| ValidatorWalletCreator | 0xf06a0bb1ce389980D3Cf43a94de9c7c60a9beC93 | -| RollupCreator | 0x93c735d1D36b4fDfcD1aebe7B54c7fd0DE553898 | -| DeployHelper | 0x64Ff95c6F17FdFF32C7E634D45F5143Ee372f887 | +## Deployed contract addresses + +Deployed contract addresses can be found in the [espress-deployments folder](./espresso-deployments/). ## License From 44c78acdd589ca36e6cc6528fb260a49acdd8ea2 Mon Sep 17 00:00:00 2001 From: Sneh Koul Date: Tue, 23 Jul 2024 16:47:34 -0400 Subject: [PATCH 4/5] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c05b3c3..37cc3c20 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ yarn build:forge ### 2. Setup environment variables and config files -Copy `.env.sample.goerli` to `.env` and fill in the values. Add an [Etherscan api key](https://docs.etherscan.io/getting-started/viewing-api-usage-statistics), [Infura api key](https://docs.infura.io/dashboard/create-api) and a private key which has some funds on sepolia. This private key will be used to deploy the rollup. We have already deployed a `ROLLUP_CREATOR_ADDRESS` which has all the associated espresso contracts initialized on `0x93c735d1D36b4fDfcD1aebe7B54c7fd0DE553898`. If you want to deploy your own rollup creator, you can leave the `ROLLUP_CREATOR_ADDRESS` empty and follow the steps on step 3. If you want to use the already deployed `RollupCreator`, you can update the `ROLLUP_CREATOR_ADDRESS` with the address of the already deployed rollup creator (0x93c735d1D36b4fDfcD1aebe7B54c7fd0DE553898) and follow the steps on step 4 to create the rollup. +Copy `.env.sample.goerli` to `.env` and fill in the values. Add an [Etherscan api key](https://docs.etherscan.io/getting-started/viewing-api-usage-statistics), [Infura api key](https://docs.infura.io/dashboard/create-api) and a private key which has some funds on sepolia. This private key will be used to deploy the rollup. We have already deployed a `ROLLUP_CREATOR_ADDRESS` which has all the associated espresso contracts initialized on `0xb89a5fE9C7AdF69E809dE385225e985eE7D8DDB2`. If you want to deploy your own rollup creator, you can leave the `ROLLUP_CREATOR_ADDRESS` empty and follow the steps on step 3. If you want to use the already deployed `RollupCreator`, you can update the `ROLLUP_CREATOR_ADDRESS` with the address of the already deployed rollup creator (0x93c735d1D36b4fDfcD1aebe7B54c7fd0DE553898) and follow the steps on step 4 to create the rollup. ### 3. Deploy Rollup Creator and initialize the espresso contracts From 2d50fba5e745a371fb80672b5eff31235e496205 Mon Sep 17 00:00:00 2001 From: Sneh Koul Date: Wed, 24 Jul 2024 13:20:17 -0400 Subject: [PATCH 5/5] address comments --- README.md | 9 ++++++--- scripts/deployment.ts | 7 +++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 37cc3c20..70df800d 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,12 @@ yarn build:forge ### 2. Setup environment variables and config files -Copy `.env.sample.goerli` to `.env` and fill in the values. Add an [Etherscan api key](https://docs.etherscan.io/getting-started/viewing-api-usage-statistics), [Infura api key](https://docs.infura.io/dashboard/create-api) and a private key which has some funds on sepolia. This private key will be used to deploy the rollup. We have already deployed a `ROLLUP_CREATOR_ADDRESS` which has all the associated espresso contracts initialized on `0xb89a5fE9C7AdF69E809dE385225e985eE7D8DDB2`. If you want to deploy your own rollup creator, you can leave the `ROLLUP_CREATOR_ADDRESS` empty and follow the steps on step 3. If you want to use the already deployed `RollupCreator`, you can update the `ROLLUP_CREATOR_ADDRESS` with the address of the already deployed rollup creator (0x93c735d1D36b4fDfcD1aebe7B54c7fd0DE553898) and follow the steps on step 4 to create the rollup. +Copy `.env.sample.goerli` to `.env` and fill in the values. Add an [Etherscan api key](https://docs.etherscan.io/getting-started/viewing-api-usage-statistics), [Infura api key](https://docs.infura.io/dashboard/create-api) and a private key which has some funds on sepolia. +This private key will be used to deploy the rollup. We have already deployed a `ROLLUP_CREATOR_ADDRESS` which has all the associated espresso contracts initialized. + +If you want to deploy your own rollup creator, you can leave the `ROLLUP_CREATOR_ADDRESS` empty and follow the steps on step 3. + +If you want to use the already deployed `RollupCreator`, you can update the `ROLLUP_CREATOR_ADDRESS` with the address of the deployed rollup creator [here](espresso-deployments/sepolia.json) and follow the steps on step 4 to create the rollup. ### 3. Deploy Rollup Creator and initialize the espresso contracts @@ -35,8 +40,6 @@ Change the `config.ts.example` to `config.ts` and run the following command to c `npx hardhat run scripts/createEthRollup.ts --network sepolia` -This will create the rollup. - ## Deployed contract addresses Deployed contract addresses can be found in the [espress-deployments folder](./espresso-deployments/). diff --git a/scripts/deployment.ts b/scripts/deployment.ts index 59a5d5c3..ea7c2c7d 100644 --- a/scripts/deployment.ts +++ b/scripts/deployment.ts @@ -7,10 +7,9 @@ import fs from 'fs' async function main() { const [signer] = await ethers.getSigners() try { - const espressoLisghtClientAddress = - process.env.ESPRESSO_LIGHT_CLIENT_ADDRESS + const espressoLightClientAddress = process.env.ESPRESSO_LIGHT_CLIENT_ADDRESS - if (!espressoLisghtClientAddress) { + if (!espressoLightClientAddress) { console.warn( 'env var ESPRESSO_LIGHT_CLIENT_ADDRESS not set, it needs to be set to deploy the RollupCreator for the espresso integration' ) @@ -20,7 +19,7 @@ async function main() { signer, ethers.BigNumber.from(maxDataSize), true, - espressoLisghtClientAddress + espressoLightClientAddress ) const contractAddresses = {