-
Notifications
You must be signed in to change notification settings - Fork 35
/
DeployNewRootContractSet.s.sol
68 lines (54 loc) · 2.33 KB
/
DeployNewRootContractSet.s.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
import "forge-std/Script.sol";
import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
import "script/deployment/root/DeployStateSender.s.sol";
import "script/deployment/root/DeployCheckpointManager.s.sol";
import "script/deployment/root/DeployExitHelper.s.sol";
import "script/deployment/root/staking/DeployCustomSupernetManager.s.sol";
contract DeployNewRootContractSet is
StateSenderDeployer,
CheckpointManagerDeployer,
ExitHelperDeployer,
CustomSupernetManagerDeployer
{
using stdJson for string;
function run()
external
returns (
address proxyAdmin,
address stateSender,
address checkpointManagerLogic,
address checkpointManagerProxy,
address exitHelperLogic,
address exitHelperProxy,
address customSupernetManagerLogic,
address customSupernetManagerProxy
)
{
string memory config = vm.readFile("script/deployment/rootContractSetConfig.json");
vm.startBroadcast();
ProxyAdmin _proxyAdmin = new ProxyAdmin();
_proxyAdmin.transferOwnership(config.readAddress('["ProxyAdmin"].proxyAdminOwner'));
vm.stopBroadcast();
proxyAdmin = address(_proxyAdmin);
stateSender = deployStateSender();
// To be initialized manually later.
(checkpointManagerLogic, checkpointManagerProxy) = deployCheckpointManager(
proxyAdmin,
config.readAddress('["CheckpointManager"].INITIALIZER')
);
(exitHelperLogic, exitHelperProxy) = deployExitHelper(proxyAdmin, ICheckpointManager(checkpointManagerProxy));
(customSupernetManagerLogic, customSupernetManagerProxy) = deployCustomSupernetManager(
proxyAdmin,
config.readAddress('["CustomSupernetManager"].newStakeManager'),
config.readAddress('["CustomSupernetManager"].newBls'),
stateSender,
config.readAddress('["CustomSupernetManager"].newMatic'),
config.readAddress('["CustomSupernetManager"].newChildValidatorSet'),
exitHelperProxy,
config.readAddress('["CustomSupernetManager"].newRootERC20Predicate'),
config.readString('["CustomSupernetManager"].newDomain')
);
}
}