Skip to content

Commit 91e5deb

Browse files
committed
feat: added x layer adapter deployment script
1 parent 5cfc40c commit 91e5deb

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

scripts/Adapters/DeployXLayer.sol

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// SPDX-License-Identifier: BUSL-1.1
2+
pragma solidity ^0.8.0;
3+
4+
import {XLayerAdapter, IBaseAdapter, XLayerAdapterArgs as XLayerAdapterArgsType} from '../../src/contracts/adapters/xLayer/xLayerAdapter.sol';
5+
import './BaseAdapterScript.sol';
6+
7+
library XLayerAdapterDeploymentHelper {
8+
struct XLayerAdapterArgs {
9+
BaseAdapterArgs baseArgs;
10+
address ovm;
11+
}
12+
13+
function getAdapterCode(
14+
XLayerAdapterArgs memory xLayerArgs
15+
) internal pure returns (bytes memory) {
16+
bytes memory creationCode = type(XLayerAdapter).creationCode;
17+
18+
return
19+
abi.encodePacked(
20+
creationCode,
21+
abi.encode(
22+
XLayerAdapterArgsType({
23+
crossChainController: xLayerArgs.baseArgs.crossChainController,
24+
ovmCrossDomainMessenger: xLayerArgs.ovm,
25+
providerGasLimit: xLayerArgs.baseArgs.providerGasLimit,
26+
trustedRemotes: xLayerArgs.baseArgs.trustedRemotes
27+
})
28+
)
29+
);
30+
}
31+
}
32+
33+
abstract contract BaseXLayerAdapter is BaseAdapterScript {
34+
function OVM() internal view virtual returns (address);
35+
36+
function _getAdapterByteCode(
37+
BaseAdapterArgs memory baseArgs
38+
) internal view override returns (bytes memory) {
39+
require(OVM() != address(0), 'Invalid OVM address');
40+
41+
return
42+
XLayerAdapterDeploymentHelper.getAdapterCode(
43+
XLayerAdapterDeploymentHelper.XLayerAdapterArgs({baseArgs: baseArgs, ovm: OVM()})
44+
);
45+
}
46+
}

0 commit comments

Comments
 (0)