Skip to content

Commit 0b2de83

Browse files
committed
feat: update scripts for xlayer deployment
1 parent 96394ac commit 0b2de83

12 files changed

+205
-27
lines changed

Makefile

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,11 @@ deploy-emergency-registry:
6868

6969
# Deploy Proxy Factories on all networks
7070
deploy-initial:
71-
$(call deploy_fn,InitialDeployments,ethereum avalanche polygon optimism arbitrum metis base binance gnosis zkevm)
71+
$(call deploy_fn,InitialDeployments,xlayer)
7272

7373
# Deploy Cross Chain Infra on all networks
7474
deploy-cross-chain-infra:
75-
$(call deploy_fn,ccc/Deploy_CCC,ethereum avalanche polygon optimism arbitrum metis base binance gnosis zkevm)
75+
$(call deploy_fn,ccc/Deploy_CCC,xlayer)
7676

7777
## Deploy CCIP bridge adapters on all networks
7878
deploy-ccip-bridge-adapters:
@@ -135,24 +135,27 @@ deploy-soneium-adapters:
135135
deploy-bob-adapters:
136136
$(call deploy_fn,adapters/DeployBobAdapter,ethereum bob)
137137

138+
deploy-xlayer-adapters:
139+
$(call deploy_fn,adapters/DeployXLayerAdapter,ethereum xlayer)
140+
138141
## Set sender bridge dapters. Only eth pol avax are needed as other networks will only receive
139142
set-ccf-sender-adapters:
140143
$(call deploy_fn,ccc/Set_CCF_Sender_Adapters,ethereum)
141144

142145
# Set the bridge adapters allowed to receive messages
143146
set-ccr-receiver-adapters:
144-
$(call deploy_fn,ccc/Set_CCR_Receivers_Adapters,ethereum polygon avalanche binance arbitrum optimism base metis gnosis zkevm)
147+
$(call deploy_fn,ccc/Set_CCR_Receivers_Adapters,xlayer)
145148

146149
# Sets the required confirmations
147150
set-ccr-confirmations:
148-
$(call deploy_fn,CCC/Set_CCR_Confirmations,ethereum polygon avalanche optimism arbitrum metis base binance gnosis zkevm)
151+
$(call deploy_fn,CCC/Set_CCR_Confirmations,xlayer)
149152

150153

151154
# ------------------------------------------------------------------------------------------------------------------
152155
# ----------------------------------------- ACCESS CONTROL SCRIPTS ---------------------------------------------------------
153156

154157
deploy_ccc_granular_guardian:
155-
$(call deploy_fn,access_control/network_scripts/GranularGuardianNetworkDeploys,plasma)
158+
$(call deploy_fn,access_control/network_scripts/GranularGuardianNetworkDeploys,xlayer)
156159

157160
# ------------------------------------------------------------------------------------------------------------------
158161
# ----------------------------------------- HELPER SCRIPTS ---------------------------------------------------------
@@ -163,7 +166,7 @@ send-direct-message:
163166
$(call deploy_fn,helpers/Send_Direct_CCMessage,ethereum)
164167

165168
deploy_mock_destination:
166-
$(call deploy_fn,helpers/Deploy_Mock_destination,plasma)
169+
$(call deploy_fn,helpers/Deploy_Mock_destination,xlayer)
167170

168171
set-approved-ccf-senders:
169172
$(call deploy_fn,helpers/Set_Approved_Senders,ethereum)
@@ -181,4 +184,4 @@ update-owners-and-guardians:
181184
$(call deploy_fn,helpers/Update_Ownership,zksync)
182185

183186
update-ccc-permissions:
184-
$(call deploy_fn,helpers/UpdateCCCPermissions,plasma)
187+
$(call deploy_fn,helpers/UpdateCCCPermissions,xlayer)

scripts/BaseDeployerScript.sol

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ struct Addresses {
3636
address scrollAdapter;
3737
address soneiumAdapter;
3838
address wormholeAdapter;
39+
address xlayerAdapter;
3940
address zksyncAdapter;
4041
}
4142

@@ -87,7 +88,8 @@ library DeployerHelpers {
8788
zksyncAdapter: abi.decode(persistedJson.parseRaw('.zksyncAdapter'), (address)),
8889
mantleAdapter: abi.decode(persistedJson.parseRaw('.mantleAdapter'), (address)),
8990
bobAdapter: abi.decode(persistedJson.parseRaw('.bobAdapter'), (address)),
90-
granularCCCGuardian: abi.decode(persistedJson.parseRaw('.granularCCCGuardian'), (address))
91+
granularCCCGuardian: abi.decode(persistedJson.parseRaw('.granularCCCGuardian'), (address)),
92+
xlayerAdapter: abi.decode(persistedJson.parseRaw('.xlayerAdapter'), (address))
9193
});
9294

9395
return addresses;
@@ -125,7 +127,8 @@ library DeployerHelpers {
125127
json.serialize('scrollAdapter', addresses.scrollAdapter);
126128
json.serialize('soneiumAdapter', addresses.soneiumAdapter);
127129
json.serialize('wormholeAdapter', addresses.wormholeAdapter);
128-
json = json.serialize('zksyncAdapter', addresses.zksyncAdapter);
130+
json.serialize('xlayerAdapter', addresses.xlayerAdapter);
131+
json.serialize('zksyncAdapter', addresses.zksyncAdapter);
129132
vm.writeJson(json, path);
130133
}
131134
}

scripts/InitialDeployments.s.sol

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {MiscLinea} from 'aave-address-book/MiscLinea.sol';
2121
import {MiscInk} from 'aave-address-book/MiscInk.sol';
2222
import {MiscSoneium} from 'aave-address-book/MiscSoneium.sol';
2323
import {MiscPlasma} from 'aave-address-book/MiscPlasma.sol';
24+
import {MiscBob} from 'aave-address-book/MiscBob.sol';
2425
import {GovernanceV3Arbitrum} from 'aave-address-book/GovernanceV3Arbitrum.sol';
2526
import {GovernanceV3Avalanche} from 'aave-address-book/GovernanceV3Avalanche.sol';
2627
import {GovernanceV3Base} from 'aave-address-book/GovernanceV3Base.sol';
@@ -39,6 +40,7 @@ import {GovernanceV3Linea} from 'aave-address-book/GovernanceV3Linea.sol';
3940
import {GovernanceV3Ink} from 'aave-address-book/GovernanceV3Ink.sol';
4041
import {GovernanceV3Soneium} from 'aave-address-book/GovernanceV3Soneium.sol';
4142
import {GovernanceV3Plasma} from 'aave-address-book/GovernanceV3Plasma.sol';
43+
import {GovernanceV3Bob} from 'aave-address-book/GovernanceV3Bob.sol';
4244

4345
abstract contract BaseInitialDeployment is BaseDeployerScript {
4446
function OWNER() internal virtual returns (address) {
@@ -323,11 +325,11 @@ contract Bob is BaseInitialDeployment {
323325
}
324326

325327
function TRANSPARENT_PROXY_FACTORY() internal pure override returns (address) {
326-
return 0xEB0682d148e874553008730f0686ea89db7DA412;
328+
return MiscBob.TRANSPARENT_PROXY_FACTORY;
327329
}
328330

329331
function EXECUTOR() internal pure override returns (address) {
330-
return 0x90800d1F54384523723eD3962c7Cd59d7866c83d;
332+
return GovernanceV3Bob.EXECUTOR_LVL_1;
331333
}
332334
}
333335

@@ -344,3 +346,17 @@ contract Plasma is BaseInitialDeployment {
344346
return GovernanceV3Plasma.EXECUTOR_LVL_1;
345347
}
346348
}
349+
350+
contract Xlayer is BaseInitialDeployment {
351+
function TRANSACTION_NETWORK() internal pure override returns (uint256) {
352+
return ChainIds.XLAYER;
353+
}
354+
355+
function TRANSPARENT_PROXY_FACTORY() internal pure override returns (address) {
356+
return 0xEB0682d148e874553008730f0686ea89db7DA412; //MiscXlayer.TRANSPARENT_PROXY_FACTORY;
357+
}
358+
359+
function EXECUTOR() internal pure override returns (address) {
360+
return address(0); // GovernanceV3Xlayer.EXECUTOR_LVL_1; // TODO: add address when deployed
361+
}
362+
}

scripts/access_control/network_scripts/GranularGuardianNetworkDeploys.s.sol

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,3 +364,21 @@ contract Plasma is DeployGranularGuardian {
364364
return ChainIds.PLASMA;
365365
}
366366
}
367+
368+
contract Xlayer is DeployGranularGuardian {
369+
function DEFAULT_ADMIN() internal pure override returns (address) {
370+
return address(0); //GovernanceV3XLayer.EXECUTOR_LVL_1;
371+
}
372+
373+
function RETRY_GUARDIAN() internal pure override returns (address) {
374+
return 0x734c3fF8DE95c3745770df69053A31FDC92F2526; // bgd guardian
375+
}
376+
377+
function SOLVE_EMERGENCY_GUARDIAN() internal pure override returns (address) {
378+
return 0xeB55A63bf9993d80c86D47f819B5eC958c7C127B; // dao governance guardian
379+
}
380+
381+
function TRANSACTION_NETWORK() internal pure override returns (uint256) {
382+
return ChainIds.XLAYER;
383+
}
384+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// SPDX-License-Identifier: BUSL-1.1
2+
pragma solidity ^0.8.0;
3+
4+
import 'adi-scripts/Adapters/DeployXLayer.sol';
5+
import '../BaseDeployerScript.sol';
6+
7+
abstract contract DeployXLayerAdapter is BaseDeployerScript, BaseXLayerAdapter {
8+
function _execute(Addresses memory addresses) internal override {
9+
addresses.xlayerAdapter = _deployAdapter(addresses.crossChainController);
10+
}
11+
}
12+
13+
// @dev addresses taken from TODO: add link to docs
14+
contract Ethereum is DeployXLayerAdapter {
15+
function OVM() internal pure override returns (address) {
16+
return address(0); // TODO: add address when deployed
17+
}
18+
19+
function TRANSACTION_NETWORK() internal pure override returns (uint256) {
20+
return ChainIds.ETHEREUM;
21+
}
22+
23+
function REMOTE_CCC_BY_NETWORK() internal pure override returns (RemoteCCC[] memory) {
24+
return new RemoteCCC[](0);
25+
}
26+
}
27+
28+
contract Xlayer is DeployXLayerAdapter {
29+
function OVM() internal pure override returns (address) {
30+
return 0x4200000000000000000000000000000000000007;
31+
}
32+
33+
function TRANSACTION_NETWORK() internal pure override returns (uint256) {
34+
return ChainIds.INK;
35+
}
36+
37+
function REMOTE_CCC_BY_NETWORK() internal view override returns (RemoteCCC[] memory) {
38+
RemoteCCC[] memory remoteCCCByNetwork = new RemoteCCC[](1);
39+
remoteCCCByNetwork[0].chainId = ChainIds.ETHEREUM;
40+
remoteCCCByNetwork[0].crossChainController = _getAddresses(ChainIds.ETHEREUM)
41+
.crossChainController;
42+
43+
return remoteCCCByNetwork;
44+
}
45+
}

scripts/ccc/DeployCCC.s.sol

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,3 +195,13 @@ contract Plasma is BaseCCCNetworkDeployment {
195195
return ChainIds.PLASMA;
196196
}
197197
}
198+
199+
contract Xlayer is BaseCCCNetworkDeployment {
200+
function CL_EMERGENCY_ORACLE() internal pure override returns (address) {
201+
return address(0); // TODO: add address when deployed
202+
}
203+
204+
function TRANSACTION_NETWORK() internal pure override returns (uint256) {
205+
return ChainIds.XLAYER;
206+
}
207+
}

scripts/ccc/Set_CCF_Sender_Adapters.s.sol

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ struct NetworkAddresses {
2323
Addresses soneium;
2424
Addresses bob;
2525
Addresses plasma;
26+
Addresses xlayer;
2627
}
2728

2829
abstract contract BaseCCFSenderAdapters is BaseDeployerScript {
@@ -47,7 +48,7 @@ contract Ethereum is BaseCCFSenderAdapters {
4748
) public view override returns (ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[] memory) {
4849
ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[]
4950
memory bridgeAdaptersToEnable = new ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[](
50-
3
51+
1
5152
);
5253

5354
NetworkAddresses memory networkAddresses = NetworkAddresses({
@@ -68,7 +69,8 @@ contract Ethereum is BaseCCFSenderAdapters {
6869
ink: _getAddresses(ChainIds.INK),
6970
soneium: _getAddresses(ChainIds.SONEIUM),
7071
bob: _getAddresses(ChainIds.BOB),
71-
plasma: _getAddresses(ChainIds.PLASMA)
72+
plasma: _getAddresses(ChainIds.PLASMA),
73+
xlayer: _getAddresses(ChainIds.XLAYER)
7274
});
7375

7476
// polygon path
@@ -260,21 +262,29 @@ contract Ethereum is BaseCCFSenderAdapters {
260262
// });
261263

262264
// Plasma
265+
// bridgeAdaptersToEnable[0] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
266+
// currentChainBridgeAdapter: addresses.ccipAdapter,
267+
// destinationBridgeAdapter: networkAddresses.plasma.ccipAdapter,
268+
// destinationChainId: networkAddresses.plasma.chainId
269+
// });
270+
// bridgeAdaptersToEnable[1] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
271+
// currentChainBridgeAdapter: addresses.lzAdapter,
272+
// destinationBridgeAdapter: networkAddresses.plasma.lzAdapter,
273+
// destinationChainId: networkAddresses.plasma.chainId
274+
// });
275+
// bridgeAdaptersToEnable[2] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
276+
// currentChainBridgeAdapter: addresses.hlAdapter,
277+
// destinationBridgeAdapter: networkAddresses.plasma.hlAdapter,
278+
// destinationChainId: networkAddresses.plasma.chainId
279+
// });
280+
281+
// XLayer
263282
bridgeAdaptersToEnable[0] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
264-
currentChainBridgeAdapter: addresses.ccipAdapter,
265-
destinationBridgeAdapter: networkAddresses.plasma.ccipAdapter,
266-
destinationChainId: networkAddresses.plasma.chainId
267-
});
268-
bridgeAdaptersToEnable[1] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
269-
currentChainBridgeAdapter: addresses.lzAdapter,
270-
destinationBridgeAdapter: networkAddresses.plasma.lzAdapter,
271-
destinationChainId: networkAddresses.plasma.chainId
272-
});
273-
bridgeAdaptersToEnable[2] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
274-
currentChainBridgeAdapter: addresses.hlAdapter,
275-
destinationBridgeAdapter: networkAddresses.plasma.hlAdapter,
276-
destinationChainId: networkAddresses.plasma.chainId
283+
currentChainBridgeAdapter: addresses.xlayerAdapter,
284+
destinationBridgeAdapter: networkAddresses.xlayer.xlayerAdapter,
285+
destinationChainId: networkAddresses.xlayer.chainId
277286
});
287+
278288
return bridgeAdaptersToEnable;
279289
}
280290
}

scripts/ccc/Set_CCR_Confirmations.s.sol

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,3 +373,21 @@ contract Plasma is BaseSetCCRConfirmations {
373373
return chainIds;
374374
}
375375
}
376+
377+
contract Xlayer is BaseSetCCRConfirmations {
378+
function TRANSACTION_NETWORK() internal pure virtual override returns (uint256) {
379+
return ChainIds.XLAYER;
380+
}
381+
382+
function getConfirmationsByChainIds()
383+
public
384+
virtual
385+
override
386+
returns (ConfirmationsByChain[] memory)
387+
{
388+
ConfirmationsByChain[] memory chainIds = new ConfirmationsByChain[](1);
389+
chainIds[0] = ConfirmationsByChain({chainId: ChainIds.ETHEREUM, confirmations: 1});
390+
391+
return chainIds;
392+
}
393+
}

scripts/ccc/Set_CCR_Receivers_Adapters.s.sol

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,3 +469,25 @@ contract Plasma is BaseSetCCRAdapters {
469469
return receiverBridgeAdaptersToAllow;
470470
}
471471
}
472+
473+
contract Xlayer is BaseSetCCRAdapters {
474+
function TRANSACTION_NETWORK() internal pure virtual override returns (uint256) {
475+
return ChainIds.XLAYER;
476+
}
477+
478+
function getChainIds() public pure virtual override returns (uint256[] memory) {
479+
uint256[] memory chainIds = new uint256[](1);
480+
chainIds[0] = ChainIds.ETHEREUM;
481+
482+
return chainIds;
483+
}
484+
485+
function getReceiverBridgeAdaptersToAllow(
486+
Addresses memory addresses
487+
) public pure override returns (address[] memory) {
488+
address[] memory receiverBridgeAdaptersToAllow = new address[](1);
489+
receiverBridgeAdaptersToAllow[0] = addresses.xlayerAdapter;
490+
491+
return receiverBridgeAdaptersToAllow;
492+
}
493+
}

scripts/helpers/Deploy_Mock_destination.s.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,9 @@ contract Plasma is BaseMockDestination {
117117
return ChainIds.PLASMA;
118118
}
119119
}
120+
121+
contract Xlayer is BaseMockDestination {
122+
function TRANSACTION_NETWORK() internal pure virtual override returns (uint256) {
123+
return ChainIds.XLAYER;
124+
}
125+
}

0 commit comments

Comments
 (0)