Skip to content

Commit 06c155c

Browse files
committed
Update post L1 devnet deploy
1 parent 123beae commit 06c155c

File tree

14 files changed

+72
-23
lines changed

14 files changed

+72
-23
lines changed

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v18.17.0

hardhat.config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ const config: HardhatUserConfig = {
4141
url: 'https://rpc.dev.immutable.com',
4242
accounts: []
4343
},
44+
l1devnet: {
45+
url: 'https://rpc.ankr.com/eth_holesky',
46+
accounts: []
47+
},
4448
testnet: {
4549
url: 'https://rpc.testnet.immutable.com',
4650
accounts: []

scripts/README.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ in the `contract.ts` file.
4141

4242
## Step 5
4343

44-
Create a `.env` file. Use the `env.example` as a template.
44+
Create a `.env` file. Use the `env.example` as a template. Set the following values in the `.env`
45+
46+
* Set the DEPLOYER_CONTRACT_ADDRESS to match the address of the OwnableCreate2Deployer factory.
47+
* Set the MULTICALL_ADMIN_PUB_KEY and FACTORY_ADMIN_PUB_KEY to match the address of the address of the privileged transaction multisig. This address for reference should be `0x0E2D55943f4EF07c336C12A85d083c20FF189182`.
4548

4649
## Execution steps
4750

@@ -52,53 +55,57 @@ in this step because we want the `Factory` contract to have the same address acr
5255
this address is used to produce a deterministic counter factual address for the smart contract wallets across
5356
all the chains.
5457

55-
* Set the `accountIndex` to 10.
58+
* Set the value of RELAYER_SUBMITTER_EOA_PUB_KEY to match the EOA of the primary Relayer submitter.
59+
* Set the `accountIndex` to 10 in `wallet-options.ts`.
5660
* Execute the command `npx hardhat run scripts/step1.ts --network <ENV>`
5761

5862
### `step2.ts`
5963

6064
In this step we deploy the contract that tracks the location of the latest wallet implementation. As this step
61-
just uses the CREATE2 contract factory we use the standard deployment key.
65+
just uses the CREATE2 contract factory we use the standard deployment key (Orange Key!!!).
6266

67+
* Set the value of WALLET_IMPL_LOCATOR_ADMIN, and WALLET_IMPL_CHANGER_ADMIN environment variables to the public key of the Priveleged key.
6368
* Set the `accountIndex` to 0.
6469
* Execute the command `npx hardhat run scripts/step2.ts --network <ENV>`
6570

6671
### `step3.ts`
6772

68-
In this step we deploy the startup wallet. This wallet address is used to generate the CFA, and hence like the Factory
69-
uses a Passport nonce reserver key.
73+
In this step we deploy the startup wallet. This wallet address is used to generate the CFA, and hence like the Factory uses a Passport nonce reserver key.
7074

7175
* Set the `accountIndex` to 10.
76+
* WARNING: COPY the `LatestWalletImplLocator` address into the `step3.ts` script from step2.
7277
* Execute the command `npx hardhat run scripts/step3.ts --network <ENV>`
73-
* WARNING: COPY the `LatestWalletImplLocator` address into the `step3.ts` script from step2.
7478

7579
### `step4.ts`
7680

77-
In this step we deploy the `MainModuleDynamicAuth` module, and it can simply use the standard deployment key.
81+
In this step we deploy the `MainModuleDynamicAuth` module, and it should use the standard deployment key (Orange Key!!!)
7882

7983
* Set the `accountIndex` to 0.
84+
* WARNING: COPY the `FactoryAddress` address into the `step4.ts` script from step1.
85+
* WARNING: COPY the `StartupWalletImpl` address into the `step4.ts` script from step3.
8086
* Execute the command `npx hardhat run scripts/step4.ts --network <ENV>`
81-
* WARNING: COPY the `FactoryAddress` address into the `step4.ts` script from step1.
82-
* WARNING: COPY the `StartupWalletImpl` address into the `step4.ts` script from step3.
8387

8488
### `step5.ts`
8589

8690
In this step we deploy the Signer contract, which is also used to generate the CFA, and hence like the Factory, and
87-
Startup wallet implementation, we use the Passport nonce reserver key in this step.
91+
Startup wallet implementation, we use the Passport nonce reserver key (Black Key!!!) in this step.
8892

8993
* Set the `accountIndex` to 10.
94+
* Set the SIGNER_ROOT_ADMIN_PUB_KEY to the Privileged public key.
95+
* Set the SIGNER_ADMIN_PUB_KEY to the relevant Breakglass public key.
96+
* Set the IMMUTABLE_SIGNER_PUB_KEY
9097
* Execute the command `npx hardhat run scripts/step5.ts --network <ENV>`
9198

9299
### `step6.ts`
93100

94101
In this step we point the `LatestWalletImplLocator` to the `MainModuleDynamicAuth` module address. In this step
95-
we use the privileged deployment key, as we gave this key authority to alter the implementation address in `step2.ts`
102+
we use the privileged deployment key (Purple Key!!!), as we gave this key authority to alter the implementation address in `step2.ts`.
96103
above.
97104

98105
* Set the `accountIndex` to 10.
106+
* WARNING: COPY the `MainModuleDynamicAuth` address into the `step6.ts` script from step4.
107+
* WARNING: COPY the `LatestWalletImplLocator` address into the `step6.ts` script from step2.
99108
* Execute the command `npx hardhat run scripts/step6.ts --network <ENV>`
100-
* WARNING: COPY the `MainModuleDynamicAuth` address into the `step6.ts` script from step4.
101-
* WARNING: COPY the `LatestWalletImplLocator` address into the `step6.ts` script from step2.
102109

103110
## Update Relayer and Passport Environment
104111

scripts/contract.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const getSaltFromKey = (): string => {
1717
};
1818

1919
/**
20-
* Load the OwnableCreate2Deployer
20+
* Load the OwnableCreate2Deployer
2121
*/
2222
const loadDeployerContract = async (env: EnvironmentInfo, walletOptions: WalletOptions): Promise<Contract> => {
2323
return new Contract(env.deployerContractAddress, ContractDeployerInterface.abi, walletOptions.getWallet());
@@ -39,8 +39,8 @@ export async function deployContractViaCREATE2(
3939

4040
// Deploy the contract
4141
let tx = await deployer.deploy(bytecode, salt, {
42-
gasLimit: 30000000,
43-
maxFeePerGas: 10000000000,
42+
gasLimit: 10_000_000,
43+
maxFeePerGas: 40000000000,
4444
maxPriorityFeePerGas: 10000000000,
4545
});
4646
await tx.wait();
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"multiCallAdminPubKey": "0x0E2D55943f4EF07c336C12A85d083c20FF189182",
3+
"factoryAdminPubKey": "0x0E2D55943f4EF07c336C12A85d083c20FF189182",
4+
"multiCallDeploy": "0x307d214799D3B1625D1eC70F83d170d5fd0ee5A1",
5+
"factory": "0x8Fa5088dF65855E0DaF87FA6591659893b24871d"
6+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"walletImplLocatorAdmin": "0x0E2D55943f4EF07c336C12A85d083c20FF189182",
3+
"walletImplChangerAdmin": "0x0E2D55943f4EF07c336C12A85d083c20FF189182",
4+
"latestWalletImplLocator": "0x889b5e1B25351AB543bf6D81bFD0777EA02EC879"
5+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"walletImplLocatorAddress": "0x889b5e1B25351AB543bf6D81bFD0777EA02EC879",
3+
"startupWalletImpl": "0x8FD900677aabcbB368e0a27566cCd0C7435F1926"
4+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"factoryAddress": "0x8Fa5088dF65855E0DaF87FA6591659893b24871d",
3+
"startupWalletImplAddress": "0x8FD900677aabcbB368e0a27566cCd0C7435F1926",
4+
"mainModuleDynamicAuth": "0x9e9Ee944fEB02F4D05B02950ca118027D2Db3cF2"
5+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"signerRootAdminPubKey": "0x0E2D55943f4EF07c336C12A85d083c20FF189182",
3+
"signerAdminPubKey": "0xB3533118Ff0f823fAF916AC499bB2a3E9054A698",
4+
"signerAddress": "0x1cE50560686b1297B6311F36B47dbe5d6E04D0f8",
5+
"immutableSigner": "0xcff469E561D9dCe5B1185CD2AC1Fa961F8fbDe61"
6+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"mainModuleDynamicAuth": "0x9e9Ee944fEB02F4D05B02950ca118027D2Db3cF2",
3+
"walletImplLocatorContractAddress": "0x889b5e1B25351AB543bf6D81bFD0777EA02EC879",
4+
"signerAddress": "0x1cE50560686b1297B6311F36B47dbe5d6E04D0f8"
5+
}

0 commit comments

Comments
 (0)