Skip to content

Commit 73604ac

Browse files
authored
Merge pull request #59 from bgd-labs/feat/deploy-x-layer
wip: xlayer deployment
2 parents 1f63897 + f91b90e commit 73604ac

File tree

12 files changed

+99
-25
lines changed

12 files changed

+99
-25
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ BASE_KEY = --private-key ${PRIVATE_KEY}
1717

1818

1919

20-
custom_ethereum := --with-gas-price 500000000 # 0.5 gwei
20+
custom_ethereum := --with-gas-price 900000000 # 0.5 gwei
2121
#custom_polygon := --with-gas-price 190000000000 # 560 gwei
2222
#custom_avalanche := --with-gas-price 27000000000 # 27 gwei
2323
#custom_metis-testnet := --legacy --verifier-url https://goerli.explorer.metisdevops.link/api/
@@ -72,7 +72,7 @@ deploy-initial:
7272

7373
# Deploy Cross Chain Infra on all networks
7474
deploy-cross-chain-infra:
75-
$(call deploy_fn,ccc/Deploy_CCC,xlayer)
75+
$(call deploy_fn,ccc/DeployCCC,xlayer)
7676

7777
## Deploy CCIP bridge adapters on all networks
7878
deploy-ccip-bridge-adapters:

deployments/ethereum.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@
2929
"scrollAdapter": "0xA4dC3F123e1c601A19B3DC8382BB9311F678cafA",
3030
"soneiumAdapter": "0xe66973c4571F733CafEb1BDE1fa58Ff35416d901",
3131
"wormholeAdapter": "0x42206271373675661500F8a4d6A6CE2FDc6b5De5",
32-
"xlayerAdapter": "0x0000000000000000000000000000000000000000",
32+
"xlayerAdapter": "0x9fD570da8fFe3384F1093833D44072ea79ABdEB0",
3333
"zksyncAdapter": "0x6aD9d4147467f08b165e1b6364584C5d28898b84"
3434
}

deployments/pre_prod_ethereum.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@
2929
"scrollAdapter": "0x525EC320AbD05FF316683BA3e38023CEe72f9868",
3030
"soneiumAdapter": "0x4e00fD05aBb32F3eAF8C4D0773284ae10675C225",
3131
"wormholeAdapter": "0x7458fd003C60D6B581D20249386188eA976e0556",
32-
"xlayerAdapter": "0x0000000000000000000000000000000000000000",
32+
"xlayerAdapter": "0x3a7e7bb4bf10588252AB90933689967dd4DebD8a",
3333
"zksyncAdapter": "0x22b56CC7c45ed007eA7E4Ea10D28967d36E314D6"
3434
}

deployments/pre_prod_xlayer.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"arbAdapter": "0x0000000000000000000000000000000000000000",
3+
"baseAdapter": "0x0000000000000000000000000000000000000000",
4+
"bobAdapter": "0x0000000000000000000000000000000000000000",
5+
"ccipAdapter": "0x0000000000000000000000000000000000000000",
6+
"chainId": 196,
7+
"clEmergencyOracle": "0x0000000000000000000000000000000000000000",
8+
"create3Factory": "0x0000000000000000000000000000000000000000",
9+
"crossChainController": "0xEdef1c8A9Fb54c73Dc564dCe37b3641730731e04",
10+
"crossChainControllerImpl": "0x931F1da6E2Bc9Ef1842b3094b908E9E6E24D1198",
11+
"emergencyRegistry": "0x0000000000000000000000000000000000000000",
12+
"executor": "0xE2E8Badc5d50f8a6188577B89f50701cDE2D4e19",
13+
"gnosisAdapter": "0x0000000000000000000000000000000000000000",
14+
"granularCCCGuardian": "0x0000000000000000000000000000000000000000",
15+
"guardian": "0xEAF6183bAb3eFD3bF856Ac5C058431C8592394d6",
16+
"hlAdapter": "0x0000000000000000000000000000000000000000",
17+
"inkAdapter": "0x0000000000000000000000000000000000000000",
18+
"lineaAdapter": "0x0000000000000000000000000000000000000000",
19+
"lzAdapter": "0x0000000000000000000000000000000000000000",
20+
"mantleAdapter": "0x0000000000000000000000000000000000000000",
21+
"metisAdapter": "0x0000000000000000000000000000000000000000",
22+
"mockDestination": "0x81d32B36380e6266e1BDd490eAC56cdB300afBe0",
23+
"opAdapter": "0x0000000000000000000000000000000000000000",
24+
"owner": "0xEAF6183bAb3eFD3bF856Ac5C058431C8592394d6",
25+
"polAdapter": "0x0000000000000000000000000000000000000000",
26+
"proxyAdminCCC": "0x0Cfe52a8b1D860D34581Aae5A14907263027F70C",
27+
"proxyFactory": "0xEB0682d148e874553008730f0686ea89db7DA412",
28+
"sameChainAdapter": "0x0000000000000000000000000000000000000000",
29+
"scrollAdapter": "0x0000000000000000000000000000000000000000",
30+
"soneiumAdapter": "0x0000000000000000000000000000000000000000",
31+
"wormholeAdapter": "0x0000000000000000000000000000000000000000",
32+
"xlayerAdapter": "0xD241f2eDb8BD6d5206CAD7398A75461d1aD84ee5",
33+
"zksyncAdapter": "0x0000000000000000000000000000000000000000"
34+
}

deployments/xlayer.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"arbAdapter": "0x0000000000000000000000000000000000000000",
3+
"baseAdapter": "0x0000000000000000000000000000000000000000",
4+
"bobAdapter": "0x0000000000000000000000000000000000000000",
5+
"ccipAdapter": "0x0000000000000000000000000000000000000000",
6+
"chainId": 196,
7+
"clEmergencyOracle": "0x8a86927E3cf7309D74E504EBDb866903DBD11a1f",
8+
"create3Factory": "0x0000000000000000000000000000000000000000",
9+
"crossChainController": "0xFdd46155fD3DA5B907AD3B9f9395366290f58097",
10+
"crossChainControllerImpl": "0x5B131cA329921c3089f69995D5cA6Dd48e494F9F",
11+
"emergencyRegistry": "0x0000000000000000000000000000000000000000",
12+
"executor": "0xE2E8Badc5d50f8a6188577B89f50701cDE2D4e19",
13+
"gnosisAdapter": "0x0000000000000000000000000000000000000000",
14+
"granularCCCGuardian": "0xD6727ec503A8d0C10a0EAA4e76eAf9A628188b25",
15+
"guardian": "0xEAF6183bAb3eFD3bF856Ac5C058431C8592394d6",
16+
"hlAdapter": "0x0000000000000000000000000000000000000000",
17+
"inkAdapter": "0x0000000000000000000000000000000000000000",
18+
"lineaAdapter": "0x0000000000000000000000000000000000000000",
19+
"lzAdapter": "0x0000000000000000000000000000000000000000",
20+
"mantleAdapter": "0x0000000000000000000000000000000000000000",
21+
"metisAdapter": "0x0000000000000000000000000000000000000000",
22+
"mockDestination": "0x0000000000000000000000000000000000000000",
23+
"opAdapter": "0x0000000000000000000000000000000000000000",
24+
"owner": "0xEAF6183bAb3eFD3bF856Ac5C058431C8592394d6",
25+
"polAdapter": "0x0000000000000000000000000000000000000000",
26+
"proxyAdminCCC": "0x74a75d024033bff99c196B4aE772dF1E28df5b96",
27+
"proxyFactory": "0xEB0682d148e874553008730f0686ea89db7DA412",
28+
"sameChainAdapter": "0x0000000000000000000000000000000000000000",
29+
"scrollAdapter": "0x0000000000000000000000000000000000000000",
30+
"soneiumAdapter": "0x0000000000000000000000000000000000000000",
31+
"wormholeAdapter": "0x0000000000000000000000000000000000000000",
32+
"xlayerAdapter": "0xEbc2c80073E4752e9A1D2e9A9bC98e8F4EeE9Be9",
33+
"zksyncAdapter": "0x0000000000000000000000000000000000000000"
34+
}

foundry.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ ink="${RPC_INK}"
6969
soneium="${RPC_SONEIUM}"
7070
bob="${RPC_BOB}"
7171
plasma="${RPC_PLASMA}"
72+
xlayer="${RPC_XLAYER}"
7273

7374
[etherscan]
7475
ethereum={key="${ETHERSCAN_API_KEY}", chain=1 }
@@ -108,6 +109,7 @@ mantle-testnet={key="${ETHERSCAN_API_KEY}", chain=5003, url='https://explorer.te
108109
ink={key="${ETHERSCAN_API_KEY}", chain=57073, url='https://api.routescan.io/v2/network/mainnet/evm/57073/etherscan'}
109110
soneium={key="${ETHERSCAN_API_KEY}", chain=1868, url='https://soneium.blockscout.com/api/'}
110111
bob={key="${ETHERSCAN_API_KEY}", chain=60808, url='https://explorer.gobob.xyz/api/'}
112+
xlayer={key="any", chain=196, url='https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/xlayer'}
111113

112114
# See more config options https://github.com/gakonst/foundry/tree/master/config
113115
[fuzz]

scripts/BaseDeployerScript.sol

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// SPDX-License-Identifier: BUSL-1.1
22
pragma solidity ^0.8.0;
33

4+
import 'forge-std/Vm.sol';
45
import 'forge-std/Script.sol';
56
import 'adi-scripts/BaseScript.sol';
67
import {ChainHelpers} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
@@ -128,24 +129,20 @@ library DeployerHelpers {
128129
json.serialize('soneiumAdapter', addresses.soneiumAdapter);
129130
json.serialize('wormholeAdapter', addresses.wormholeAdapter);
130131
json.serialize('xlayerAdapter', addresses.xlayerAdapter);
131-
json.serialize('zksyncAdapter', addresses.zksyncAdapter);
132+
json = json.serialize('zksyncAdapter', addresses.zksyncAdapter);
132133
vm.writeJson(json, path);
133134
}
134135
}
135136

136-
abstract contract BaseDeployerScript is BaseScript, Script {
137-
function getAddresses(uint256 networkId) external view returns (Addresses memory) {
137+
contract _AddrReader {
138+
function get(uint256 networkId, Vm vm) external view returns (Addresses memory) {
138139
return DeployerHelpers.decodeJson(DeployerHelpers.getPathByChainId(networkId), vm);
139140
}
141+
}
140142

143+
abstract contract BaseDeployerScript is BaseScript, Script {
141144
function _getAddresses(uint256 networkId) internal view returns (Addresses memory) {
142-
try this.getAddresses(networkId) returns (Addresses memory addresses) {
143-
return addresses;
144-
} catch (bytes memory) {
145-
Addresses memory empty;
146-
empty.chainId = TRANSACTION_NETWORK();
147-
return empty;
148-
}
145+
return DeployerHelpers.decodeJson(DeployerHelpers.getPathByChainId(networkId), vm);
149146
}
150147

151148
function _execute(Addresses memory addresses) internal virtual;
@@ -155,9 +152,17 @@ abstract contract BaseDeployerScript is BaseScript, Script {
155152
}
156153

157154
function run() public virtual {
155+
// helper exists only in the dry-run VM context (pre-broadcast)
156+
_AddrReader reader = new _AddrReader();
157+
158+
Addresses memory addresses;
159+
try reader.get(TRANSACTION_NETWORK(), vm) returns (Addresses memory a) {
160+
addresses = a;
161+
} catch {
162+
// default zeroed struct
163+
}
164+
158165
vm.startBroadcast();
159-
// ----------------- Persist addresses -----------------------------------------------------------------------------
160-
Addresses memory addresses = _getAddresses(TRANSACTION_NETWORK());
161166
// -----------------------------------------------------------------------------------------------------------------
162167
_execute(addresses);
163168
// ----------------- Persist addresses -----------------------------------------------------------------------------

scripts/InitialDeployments.s.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ abstract contract BaseInitialDeployment is BaseDeployerScript {
7070
addresses.executor = EXECUTOR();
7171
addresses.owner = OWNER();
7272
addresses.guardian = GUARDIAN();
73+
addresses.chainId = TRANSACTION_NETWORK();
7374
}
7475
}
7576

@@ -357,6 +358,6 @@ contract Xlayer is BaseInitialDeployment {
357358
}
358359

359360
function EXECUTOR() internal pure override returns (address) {
360-
return address(0); // GovernanceV3Xlayer.EXECUTOR_LVL_1; // TODO: add address when deployed
361+
return 0xE2E8Badc5d50f8a6188577B89f50701cDE2D4e19; // GovernanceV3Xlayer.EXECUTOR_LVL_1;
361362
}
362363
}

scripts/access_control/network_scripts/GranularGuardianNetworkDeploys.s.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ contract Plasma is DeployGranularGuardian {
367367

368368
contract Xlayer is DeployGranularGuardian {
369369
function DEFAULT_ADMIN() internal pure override returns (address) {
370-
return address(0); //GovernanceV3XLayer.EXECUTOR_LVL_1;
370+
return 0xE2E8Badc5d50f8a6188577B89f50701cDE2D4e19; //GovernanceV3XLayer.EXECUTOR_LVL_1;
371371
}
372372

373373
function RETRY_GUARDIAN() internal pure override returns (address) {

scripts/adapters/DeployXLayerAdapter.s.sol

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@ abstract contract DeployXLayerAdapter is BaseDeployerScript, BaseXLayerAdapter {
1010
}
1111
}
1212

13-
// @dev addresses taken from TODO: add link to docs
1413
contract Ethereum is DeployXLayerAdapter {
1514
function OVM() internal pure override returns (address) {
16-
return address(0); // TODO: add address when deployed
15+
return 0xF94B553F3602a03931e5D10CaB343C0968D793e3;
1716
}
1817

1918
function TRANSACTION_NETWORK() internal pure override returns (uint256) {

0 commit comments

Comments
 (0)