@hyperlane-xyz/sdk 1.0.0-beta4 → 1.0.0-beta5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/consts/chainConnectionConfigs.d.ts +13 -24
- package/dist/consts/chainConnectionConfigs.d.ts.map +1 -1
- package/dist/consts/chainConnectionConfigs.js +26 -139
- package/dist/consts/chainConnectionConfigs.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +80 -26
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +482 -97
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +18 -16
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +30 -16
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +367 -1301
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js +5 -10
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/consts/environments/mainnet.json +56 -600
- package/dist/consts/environments/mainnet2.json +110 -0
- package/dist/consts/environments/test.json +27 -96
- package/dist/consts/environments/testnet2.json +66 -610
- package/dist/consts/environments/testnet3.json +51 -51
- package/dist/contracts.d.ts +2 -1
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/core/HyperlaneCore.d.ts +372 -1312
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +19 -30
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +6 -12
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +7 -9
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.d.ts +7 -5
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +17 -42
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/contracts.d.ts +10 -22
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/contracts.js +8 -8
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/events.d.ts +1 -2
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/message.d.ts +6 -21
- package/dist/core/message.d.ts.map +1 -1
- package/dist/core/message.js +9 -34
- package/dist/core/message.js.map +1 -1
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +6 -6
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts +2 -2
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +7 -3
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +7 -12
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +72 -42
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts +3 -7
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreChecker.js +41 -127
- package/dist/deploy/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts +15 -21
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.js +61 -81
- package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/deploy/core/types.d.ts +16 -29
- package/dist/deploy/core/types.d.ts.map +1 -1
- package/dist/deploy/core/types.js +8 -12
- package/dist/deploy/core/types.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts +4 -12
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerApp.js +14 -87
- package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +8 -19
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +18 -52
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/deploy/middleware/deploy.d.ts +7 -2
- package/dist/deploy/middleware/deploy.d.ts.map +1 -1
- package/dist/deploy/middleware/deploy.js +21 -5
- package/dist/deploy/middleware/deploy.js.map +1 -1
- package/dist/deploy/proxy.d.ts +7 -6
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +18 -10
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts +0 -1
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/deploy/router/HyperlaneRouterChecker.js +0 -9
- package/dist/deploy/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/deploy/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/router/HyperlaneRouterDeployer.js +17 -15
- package/dist/deploy/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/domains.d.ts +1 -1
- package/dist/domains.d.ts.map +1 -1
- package/dist/events.js +16 -16
- package/dist/events.js.map +1 -1
- package/dist/gas/calculator.d.ts.map +1 -1
- package/dist/gas/calculator.js +11 -6
- package/dist/gas/calculator.js.map +1 -1
- package/dist/gas/calculator.test.js +6 -9
- package/dist/gas/calculator.test.js.map +1 -1
- package/dist/index.d.ts +10 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -8
- package/dist/index.js.map +1 -1
- package/dist/middleware/liquidity-layer.hardhat-test.js +20 -47
- package/dist/middleware/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware.d.ts +1 -6
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +1 -5
- package/dist/middleware.js.map +1 -1
- package/dist/providers/ChainConnection.d.ts +1 -1
- package/dist/providers/ChainConnection.d.ts.map +1 -1
- package/dist/providers/ChainConnection.js +2 -3
- package/dist/providers/ChainConnection.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +1 -1
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/proxy.d.ts +2 -4
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +1 -1
- package/dist/proxy.js.map +1 -1
- package/dist/router.d.ts +2 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.js +2 -2
- package/dist/test/envSubsetDeployer/app.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/objects.d.ts +0 -1
- package/dist/utils/objects.d.ts.map +1 -1
- package/dist/utils/objects.js +1 -5
- package/dist/utils/objects.js.map +1 -1
- package/package.json +7 -7
- package/dist/consts/metamask.d.ts +0 -17
- package/dist/consts/metamask.d.ts.map +0 -1
- package/dist/consts/metamask.js +0 -50
- package/dist/consts/metamask.js.map +0 -1
- package/dist/deploy/middleware/TokenBridgeApp.d.ts +0 -26
- package/dist/deploy/middleware/TokenBridgeApp.d.ts.map +0 -1
- package/dist/deploy/middleware/TokenBridgeApp.js +0 -115
- package/dist/deploy/middleware/TokenBridgeApp.js.map +0 -1
- package/dist/deploy/middleware/TokenBridgeRouterDeployer.d.ts +0 -33
- package/dist/deploy/middleware/TokenBridgeRouterDeployer.d.ts.map +0 -1
- package/dist/deploy/middleware/TokenBridgeRouterDeployer.js +0 -93
- package/dist/deploy/middleware/TokenBridgeRouterDeployer.js.map +0 -1
- package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.d.ts +0 -17
- package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.d.ts.map +0 -1
- package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.js +0 -42
- package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.js.map +0 -1
- package/dist/middleware/accounts.test.d.ts +0 -2
- package/dist/middleware/accounts.test.d.ts.map +0 -1
- package/dist/middleware/accounts.test.js +0 -61
- package/dist/middleware/accounts.test.js.map +0 -1
- package/dist/middleware/queries.test.d.ts +0 -2
- package/dist/middleware/queries.test.d.ts.map +0 -1
- package/dist/middleware/queries.test.js +0 -69
- package/dist/middleware/queries.test.js.map +0 -1
- package/dist/middleware/tokenbridge.hardhat-test.d.ts +0 -2
- package/dist/middleware/tokenbridge.hardhat-test.d.ts.map +0 -1
- package/dist/middleware/tokenbridge.hardhat-test.js +0 -89
- package/dist/middleware/tokenbridge.hardhat-test.js.map +0 -1
- package/dist/tokenBridge.d.ts +0 -10
- package/dist/tokenBridge.d.ts.map +0 -1
- package/dist/tokenBridge.js +0 -9
- package/dist/tokenBridge.js.map +0 -1
|
@@ -11,9 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.HyperlaneCoreChecker = void 0;
|
|
13
13
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
14
|
-
const chainMetadata_1 = require("../../consts/chainMetadata");
|
|
15
14
|
const domains_1 = require("../../domains");
|
|
16
|
-
const objects_1 = require("../../utils/objects");
|
|
17
15
|
const HyperlaneAppChecker_1 = require("../HyperlaneAppChecker");
|
|
18
16
|
const types_1 = require("./types");
|
|
19
17
|
class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
@@ -26,11 +24,8 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
26
24
|
}
|
|
27
25
|
yield this.checkDomainOwnership(chain);
|
|
28
26
|
yield this.checkProxiedContracts(chain);
|
|
29
|
-
yield this.
|
|
30
|
-
yield this.
|
|
31
|
-
yield this.checkConnectionManager(chain);
|
|
32
|
-
yield this.checkValidatorManagers(chain);
|
|
33
|
-
yield this.checkInterchainGasPaymaster(chain);
|
|
27
|
+
yield this.checkMailbox(chain);
|
|
28
|
+
yield this.checkMultisigIsm(chain);
|
|
34
29
|
});
|
|
35
30
|
}
|
|
36
31
|
checkDomainOwnership(chain) {
|
|
@@ -39,68 +34,65 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
39
34
|
if (config.owner) {
|
|
40
35
|
const contracts = this.app.getContracts(chain);
|
|
41
36
|
const ownables = [
|
|
42
|
-
contracts.
|
|
43
|
-
contracts.
|
|
44
|
-
contracts.
|
|
45
|
-
contracts.outboxValidatorManager,
|
|
46
|
-
...Object.values(contracts.inboxes)
|
|
47
|
-
.map((inbox) => [
|
|
48
|
-
inbox.inbox.contract,
|
|
49
|
-
inbox.inboxValidatorManager,
|
|
50
|
-
])
|
|
51
|
-
.flat(),
|
|
37
|
+
contracts.proxyAdmin,
|
|
38
|
+
contracts.mailbox.contract,
|
|
39
|
+
contracts.multisigIsm,
|
|
52
40
|
];
|
|
53
41
|
return this.checkOwnership(chain, config.owner, ownables);
|
|
54
42
|
}
|
|
55
43
|
});
|
|
56
44
|
}
|
|
57
|
-
|
|
45
|
+
checkMailbox(chain) {
|
|
58
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
47
|
const contracts = this.app.getContracts(chain);
|
|
60
|
-
const
|
|
61
|
-
const localDomain = yield
|
|
48
|
+
const mailbox = contracts.mailbox.contract;
|
|
49
|
+
const localDomain = yield mailbox.localDomain();
|
|
62
50
|
utils_1.utils.assert(localDomain === domains_1.ChainNameToDomainId[chain]);
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
if (
|
|
51
|
+
const actualIsm = yield mailbox.defaultIsm();
|
|
52
|
+
const expectedIsm = contracts.multisigIsm.address;
|
|
53
|
+
if (actualIsm !== expectedIsm) {
|
|
66
54
|
const violation = {
|
|
67
55
|
type: types_1.CoreViolationType.Mailbox,
|
|
68
|
-
mailboxType: types_1.MailboxViolationType.
|
|
69
|
-
contract:
|
|
56
|
+
mailboxType: types_1.MailboxViolationType.DefaultIsm,
|
|
57
|
+
contract: mailbox,
|
|
70
58
|
chain,
|
|
71
|
-
actual:
|
|
72
|
-
expected:
|
|
59
|
+
actual: actualIsm,
|
|
60
|
+
expected: expectedIsm,
|
|
73
61
|
};
|
|
74
62
|
this.addViolation(violation);
|
|
75
63
|
}
|
|
76
64
|
});
|
|
77
65
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
66
|
+
checkProxiedContracts(chain) {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const contracts = this.app.getContracts(chain);
|
|
69
|
+
yield this.checkProxiedContract(chain, 'Mailbox', contracts.mailbox.addresses, contracts.proxyAdmin.address);
|
|
70
|
+
yield this.checkProxiedContract(chain, 'InterchainGasPaymaster', contracts.mailbox.addresses, contracts.proxyAdmin.address);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
checkMultisigIsm(local) {
|
|
81
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
yield Promise.all(this.app
|
|
76
|
+
.remoteChains(local)
|
|
77
|
+
.map((remote) => this.checkMultisigIsmForRemote(local, remote)));
|
|
85
78
|
});
|
|
86
79
|
}
|
|
87
|
-
|
|
88
|
-
// the validator set for the outboxDomain.
|
|
89
|
-
// If localDomain == outboxDomain, this checks the OutboxValidatorManager, otherwise
|
|
90
|
-
// it checks an InboxValidatorManager.
|
|
91
|
-
checkValidatorManager(local, remote, validatorManager) {
|
|
80
|
+
checkMultisigIsmForRemote(local, remote) {
|
|
92
81
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
const coreContracts = this.app.getContracts(local);
|
|
83
|
+
const multisigIsm = coreContracts.multisigIsm;
|
|
93
84
|
const config = this.configMap[remote];
|
|
94
|
-
const
|
|
95
|
-
const
|
|
96
|
-
const
|
|
85
|
+
const remoteDomain = domains_1.ChainNameToDomainId[remote];
|
|
86
|
+
const multisigIsmConfig = config.multisigIsm;
|
|
87
|
+
const expectedValidators = multisigIsmConfig.validators;
|
|
88
|
+
const actualValidators = yield multisigIsm.validators(remoteDomain);
|
|
97
89
|
const expectedSet = new Set(expectedValidators.map((_) => _.toLowerCase()));
|
|
98
90
|
const actualSet = new Set(actualValidators.map((_) => _.toLowerCase()));
|
|
99
91
|
if (!utils_1.utils.setEquality(expectedSet, actualSet)) {
|
|
100
92
|
const violation = {
|
|
101
|
-
type: types_1.CoreViolationType.
|
|
102
|
-
|
|
103
|
-
contract:
|
|
93
|
+
type: types_1.CoreViolationType.MultisigIsm,
|
|
94
|
+
subType: types_1.MultisigIsmViolationType.EnrolledValidators,
|
|
95
|
+
contract: multisigIsm,
|
|
104
96
|
chain: local,
|
|
105
97
|
remote,
|
|
106
98
|
actual: actualSet,
|
|
@@ -108,14 +100,14 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
108
100
|
};
|
|
109
101
|
this.addViolation(violation);
|
|
110
102
|
}
|
|
111
|
-
const expectedThreshold =
|
|
103
|
+
const expectedThreshold = multisigIsmConfig.threshold;
|
|
112
104
|
utils_1.utils.assert(expectedThreshold !== undefined);
|
|
113
|
-
const actualThreshold =
|
|
105
|
+
const actualThreshold = yield multisigIsm.threshold(remoteDomain);
|
|
114
106
|
if (expectedThreshold !== actualThreshold) {
|
|
115
107
|
const violation = {
|
|
116
|
-
type: types_1.CoreViolationType.
|
|
117
|
-
|
|
118
|
-
contract:
|
|
108
|
+
type: types_1.CoreViolationType.MultisigIsm,
|
|
109
|
+
subType: types_1.MultisigIsmViolationType.Threshold,
|
|
110
|
+
contract: multisigIsm,
|
|
119
111
|
chain: local,
|
|
120
112
|
remote,
|
|
121
113
|
actual: actualThreshold,
|
|
@@ -125,84 +117,6 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
125
117
|
}
|
|
126
118
|
});
|
|
127
119
|
}
|
|
128
|
-
checkInboxes(chain) {
|
|
129
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
const coreContracts = this.app.getContracts(chain);
|
|
131
|
-
// Check that all inboxes on this chain are pointed to the right validator
|
|
132
|
-
// manager.
|
|
133
|
-
yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(coreContracts.inboxes, (_, inbox) => __awaiter(this, void 0, void 0, function* () {
|
|
134
|
-
const expected = inbox.inboxValidatorManager.address;
|
|
135
|
-
const actual = yield inbox.inbox.contract.validatorManager();
|
|
136
|
-
if (expected !== actual) {
|
|
137
|
-
const violation = {
|
|
138
|
-
type: types_1.CoreViolationType.Mailbox,
|
|
139
|
-
mailboxType: types_1.MailboxViolationType.ValidatorManager,
|
|
140
|
-
contract: inbox.inbox.contract,
|
|
141
|
-
chain,
|
|
142
|
-
actual,
|
|
143
|
-
expected,
|
|
144
|
-
};
|
|
145
|
-
this.addViolation(violation);
|
|
146
|
-
}
|
|
147
|
-
})));
|
|
148
|
-
yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(coreContracts.inboxes, (remoteChain, inbox) => __awaiter(this, void 0, void 0, function* () {
|
|
149
|
-
// check that the inbox has the right local domain
|
|
150
|
-
const actualLocalDomain = yield inbox.inbox.contract.localDomain();
|
|
151
|
-
utils_1.utils.assert(actualLocalDomain === domains_1.ChainNameToDomainId[chain]);
|
|
152
|
-
const actualRemoteDomain = yield inbox.inbox.contract.remoteDomain();
|
|
153
|
-
utils_1.utils.assert(actualRemoteDomain === domains_1.ChainNameToDomainId[remoteChain]);
|
|
154
|
-
})));
|
|
155
|
-
// Check that all inboxes on this chain share the same implementation and
|
|
156
|
-
// UpgradeBeacon.
|
|
157
|
-
const coreAddresses = this.app.getAddresses(chain);
|
|
158
|
-
const inboxes = Object.values(coreAddresses.inboxes);
|
|
159
|
-
const implementations = inboxes.map((r) => r.implementation);
|
|
160
|
-
const upgradeBeacons = inboxes.map((r) => r.beacon);
|
|
161
|
-
utils_1.utils.assert(implementations.every((implementation) => implementation === implementations[0]));
|
|
162
|
-
utils_1.utils.assert(upgradeBeacons.every((beacon) => beacon === upgradeBeacons[0]));
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
checkConnectionManager(chain) {
|
|
166
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
167
|
-
const coreContracts = this.app.getContracts(chain);
|
|
168
|
-
yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(coreContracts.inboxes, (remote, inbox) => __awaiter(this, void 0, void 0, function* () {
|
|
169
|
-
// expected configured inboxes for remote on chain
|
|
170
|
-
const remoteConfig = this.configMap[remote];
|
|
171
|
-
const expectedInboxes = new Set(remoteConfig.remove ? [] : [inbox.inbox.address]);
|
|
172
|
-
// actual configured inboxes for remote on chain
|
|
173
|
-
const remoteDomain = chainMetadata_1.chainMetadata[remote].id;
|
|
174
|
-
const enrolledInboxes = new Set(yield coreContracts.connectionManager.getInboxes(remoteDomain));
|
|
175
|
-
if (!utils_1.utils.setEquality(enrolledInboxes, expectedInboxes)) {
|
|
176
|
-
const violation = {
|
|
177
|
-
type: types_1.CoreViolationType.ConnectionManager,
|
|
178
|
-
connectionManagerType: types_1.ConnectionManagerViolationType.EnrolledInboxes,
|
|
179
|
-
remote,
|
|
180
|
-
contract: coreContracts.connectionManager,
|
|
181
|
-
chain: chain,
|
|
182
|
-
actual: enrolledInboxes,
|
|
183
|
-
expected: expectedInboxes,
|
|
184
|
-
};
|
|
185
|
-
this.violations.push(violation);
|
|
186
|
-
}
|
|
187
|
-
})));
|
|
188
|
-
// Outbox is set on connectionManager
|
|
189
|
-
const outbox = yield coreContracts.connectionManager.outbox();
|
|
190
|
-
utils_1.utils.assert(outbox === coreContracts.outbox.address);
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
checkProxiedContracts(chain) {
|
|
194
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
195
|
-
const contracts = this.app.getContracts(chain);
|
|
196
|
-
yield this.checkUpgradeBeacon(chain, 'Outbox', contracts.outbox.addresses);
|
|
197
|
-
yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(contracts.inboxes, (_remoteChain, inbox) => this.checkUpgradeBeacon(chain, 'Inbox', inbox.inbox.addresses)));
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
checkInterchainGasPaymaster(chain) {
|
|
201
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
202
|
-
const contracts = this.app.getContracts(chain);
|
|
203
|
-
yield this.checkUpgradeBeacon(chain, 'InterchainGasPaymaster', contracts.interchainGasPaymaster.addresses);
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
120
|
}
|
|
207
121
|
exports.HyperlaneCoreChecker = HyperlaneCoreChecker;
|
|
208
122
|
//# sourceMappingURL=HyperlaneCoreChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreChecker.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreChecker.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAA6C;AAG7C,2CAAoD;AAEpD,gEAA6D;AAE7D,mCAQiB;AAEjB,MAAa,oBAEX,SAAQ,yCAA4D;IAC9D,UAAU,CAAC,KAAY;;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,gDAAgD;YAChD,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,OAAO;aACR;YAED,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;KAAA;IAEK,oBAAoB,CAAC,KAAY;;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG;oBACf,SAAS,CAAC,UAAU;oBACpB,SAAS,CAAC,OAAO,CAAC,QAAQ;oBAC1B,SAAS,CAAC,WAAW;iBACtB,CAAC;gBACF,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;aAC3D;QACH,CAAC;KAAA;IAEK,YAAY,CAAC,KAAY;;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC3C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAChD,aAAK,CAAC,MAAM,CAAC,WAAW,KAAK,6BAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YAEzD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;YAClD,IAAI,SAAS,KAAK,WAAW,EAAE;gBAC7B,MAAM,SAAS,GAAqB;oBAClC,IAAI,EAAE,yBAAiB,CAAC,OAAO;oBAC/B,WAAW,EAAE,4BAAoB,CAAC,UAAU;oBAC5C,QAAQ,EAAE,OAAO;oBACjB,KAAK;oBACL,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,WAAW;iBACtB,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aAC9B;QACH,CAAC;KAAA;IAEK,qBAAqB,CAAC,KAAY;;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,IAAI,CAAC,oBAAoB,CAC7B,KAAK,EACL,SAAS,EACT,SAAS,CAAC,OAAO,CAAC,SAAS,EAC3B,SAAS,CAAC,UAAU,CAAC,OAAO,CAC7B,CAAC;YACF,MAAM,IAAI,CAAC,oBAAoB,CAC7B,KAAK,EACL,wBAAwB,EACxB,SAAS,CAAC,OAAO,CAAC,SAAS,EAC3B,SAAS,CAAC,UAAU,CAAC,OAAO,CAC7B,CAAC;QACJ,CAAC;KAAA;IAEK,gBAAgB,CAAC,KAAY;;YACjC,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,GAAG;iBACL,YAAY,CAAC,KAAK,CAAC;iBACnB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAClE,CAAC;QACJ,CAAC;KAAA;IAEK,yBAAyB,CAAC,KAAY,EAAE,MAAa;;YACzD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAEtC,MAAM,YAAY,GAAG,6BAAmB,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;YAC7C,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,UAAU,CAAC;YACxD,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAEpE,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAC/C,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAC7C,CAAC;YAEF,IAAI,CAAC,aAAK,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE;gBAC9C,MAAM,SAAS,GAAgC;oBAC7C,IAAI,EAAE,yBAAiB,CAAC,WAAW;oBACnC,OAAO,EAAE,gCAAwB,CAAC,kBAAkB;oBACpD,QAAQ,EAAE,WAAW;oBACrB,KAAK,EAAE,KAAK;oBACZ,MAAM;oBACN,MAAM,EAAE,SAAS;oBACjB,QAAQ,EAAE,WAAW;iBACtB,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aAC9B;YAED,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,SAAS,CAAC;YACtD,aAAK,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC;YAE9C,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAElE,IAAI,iBAAiB,KAAK,eAAe,EAAE;gBACzC,MAAM,SAAS,GAAuB;oBACpC,IAAI,EAAE,yBAAiB,CAAC,WAAW;oBACnC,OAAO,EAAE,gCAAwB,CAAC,SAAS;oBAC3C,QAAQ,EAAE,WAAW;oBACrB,KAAK,EAAE,KAAK;oBACZ,MAAM;oBACN,MAAM,EAAE,eAAe;oBACvB,QAAQ,EAAE,iBAAiB;iBAC5B,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aAC9B;QACH,CAAC;KAAA;CACF;AA1HD,oDA0HC"}
|
|
@@ -1,33 +1,27 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import {
|
|
2
|
+
import { InterchainGasPaymaster, Mailbox, MultisigIsm, Ownable, ProxyAdmin } from '@hyperlane-xyz/core';
|
|
3
3
|
import type { types } from '@hyperlane-xyz/utils';
|
|
4
|
-
import {
|
|
5
|
-
import { CoreContracts, InboxContracts, OutboxContracts, coreFactories } from '../../core/contracts';
|
|
6
|
-
import { ChainConnection } from '../../providers/ChainConnection';
|
|
4
|
+
import { CoreContracts, coreFactories } from '../../core/contracts';
|
|
7
5
|
import { MultiProvider } from '../../providers/MultiProvider';
|
|
8
|
-
import {
|
|
9
|
-
import { ChainMap, ChainName
|
|
10
|
-
import { HyperlaneDeployer } from '../HyperlaneDeployer';
|
|
11
|
-
import { CoreConfig
|
|
12
|
-
export declare class HyperlaneCoreDeployer<Chain extends ChainName> extends HyperlaneDeployer<Chain, CoreConfig, CoreContracts
|
|
6
|
+
import { ProxiedContract, TransparentProxyAddresses } from '../../proxy';
|
|
7
|
+
import { ChainMap, ChainName } from '../../types';
|
|
8
|
+
import { DeployOptions, HyperlaneDeployer } from '../HyperlaneDeployer';
|
|
9
|
+
import { CoreConfig } from './types';
|
|
10
|
+
export declare class HyperlaneCoreDeployer<Chain extends ChainName> extends HyperlaneDeployer<Chain, CoreConfig, CoreContracts, typeof coreFactories> {
|
|
13
11
|
startingBlockNumbers: ChainMap<Chain, number | undefined>;
|
|
14
12
|
constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, CoreConfig>, factoriesOverride?: {
|
|
15
|
-
outbox: import("@hyperlane-xyz/core").Outbox__factory;
|
|
16
|
-
outboxValidatorManager: import("@hyperlane-xyz/core").OutboxValidatorManager__factory;
|
|
17
|
-
inbox: import("@hyperlane-xyz/core").Inbox__factory;
|
|
18
|
-
inboxValidatorManager: import("@hyperlane-xyz/core").InboxValidatorManager__factory;
|
|
19
13
|
interchainAccountRouter: import("@hyperlane-xyz/core").InterchainAccountRouter__factory;
|
|
20
14
|
interchainQueryRouter: import("@hyperlane-xyz/core").InterchainQueryRouter__factory;
|
|
21
15
|
create2Factory: import("@hyperlane-xyz/core").Create2Factory__factory;
|
|
22
|
-
|
|
23
|
-
upgradeBeaconController: import("@hyperlane-xyz/core").UpgradeBeaconController__factory;
|
|
16
|
+
proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
|
|
24
17
|
interchainGasPaymaster: import("@hyperlane-xyz/core").InterchainGasPaymaster__factory;
|
|
18
|
+
multisigIsm: import("@hyperlane-xyz/core").MultisigIsm__factory;
|
|
19
|
+
mailbox: import("@hyperlane-xyz/core").Mailbox__factory;
|
|
25
20
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
deployContracts<LocalChain extends Chain>(chain: LocalChain, config: CoreConfig): Promise<CoreContracts
|
|
30
|
-
|
|
31
|
-
static transferOwnershipOfChain<Chain extends ChainName, Local extends Chain>(coreContracts: CoreContracts<Chain, Local>, owner: types.Address, chainConnection: ChainConnection): Promise<ethers.ContractReceipt[]>;
|
|
21
|
+
deployInterchainGasPaymaster<LocalChain extends Chain>(chain: LocalChain, proxyAdmin: ProxyAdmin, deployOpts?: DeployOptions): Promise<ProxiedContract<InterchainGasPaymaster, TransparentProxyAddresses>>;
|
|
22
|
+
deployMailbox<LocalChain extends Chain>(chain: LocalChain, defaultIsmAddress: types.Address, proxyAdmin: ProxyAdmin, deployOpts?: DeployOptions): Promise<ProxiedContract<Mailbox, TransparentProxyAddresses>>;
|
|
23
|
+
deployMultisigIsm<LocalChain extends Chain>(chain: LocalChain): Promise<MultisigIsm>;
|
|
24
|
+
deployContracts<LocalChain extends Chain>(chain: LocalChain, config: CoreConfig): Promise<CoreContracts>;
|
|
25
|
+
transferOwnershipOfContracts(chain: Chain, ownables: Ownable[]): Promise<ethers.ContractReceipt[]>;
|
|
32
26
|
}
|
|
33
27
|
//# sourceMappingURL=HyperlaneCoreDeployer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreDeployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreDeployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,qBAAqB,CAChC,KAAK,SAAS,SAAS,CACvB,SAAQ,iBAAiB,CACzB,KAAK,EACL,UAAU,EACV,aAAa,EACb,OAAO,aAAa,CACrB;IACC,oBAAoB,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;gBAGxD,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,EACtC,iBAAiB;;;;;;;;KAAgB;IAQnC,4BAA4B,CAAC,UAAU,SAAS,KAAK,EACnD,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CACR,eAAe,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,CACnE;IAWK,aAAa,CAAC,UAAU,SAAS,KAAK,EAC1C,KAAK,EAAE,UAAU,EACjB,iBAAiB,EAAE,KAAK,CAAC,OAAO,EAChC,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IAezD,iBAAiB,CAAC,UAAU,SAAS,KAAK,EAC9C,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,WAAW,CAAC;IAmEjB,eAAe,CAAC,UAAU,SAAS,KAAK,EAC5C,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,aAAa,CAAC;IAkCnB,4BAA4B,CAChC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;CAgBrC"}
|
|
@@ -14,8 +14,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.HyperlaneCoreDeployer = void 0;
|
|
16
16
|
const debug_1 = __importDefault(require("debug"));
|
|
17
|
+
const ethers_1 = require("ethers");
|
|
17
18
|
const chainMetadata_1 = require("../../consts/chainMetadata");
|
|
18
19
|
const contracts_1 = require("../../core/contracts");
|
|
20
|
+
const domains_1 = require("../../domains");
|
|
19
21
|
const objects_1 = require("../../utils/objects");
|
|
20
22
|
const HyperlaneDeployer_1 = require("../HyperlaneDeployer");
|
|
21
23
|
class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
@@ -25,47 +27,51 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
25
27
|
});
|
|
26
28
|
this.startingBlockNumbers = (0, objects_1.objMap)(configMap, () => undefined);
|
|
27
29
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const _super = Object.create(null, {
|
|
31
|
-
deploy: { get: () => super.deploy }
|
|
32
|
-
});
|
|
33
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
return _super.deploy.call(this, partialDeployment);
|
|
35
|
-
});
|
|
30
|
+
deployInterchainGasPaymaster(chain, proxyAdmin, deployOpts) {
|
|
31
|
+
return this.deployProxiedContract(chain, 'interchainGasPaymaster', [], proxyAdmin, [], deployOpts);
|
|
36
32
|
}
|
|
37
|
-
|
|
33
|
+
deployMailbox(chain, defaultIsmAddress, proxyAdmin, deployOpts) {
|
|
38
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
35
|
const domain = chainMetadata_1.chainMetadata[chain].id;
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
return
|
|
36
|
+
const owner = this.configMap[chain].owner;
|
|
37
|
+
const mailbox = yield this.deployProxiedContract(chain, 'mailbox', [domain], proxyAdmin, [owner, defaultIsmAddress], deployOpts);
|
|
38
|
+
return mailbox;
|
|
43
39
|
});
|
|
44
40
|
}
|
|
45
|
-
|
|
41
|
+
deployMultisigIsm(chain) {
|
|
42
|
+
const _super = Object.create(null, {
|
|
43
|
+
runIfOwner: { get: () => super.runIfOwner }
|
|
44
|
+
});
|
|
46
45
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
46
|
+
const multisigIsm = yield this.deployContract(chain, 'multisigIsm', []);
|
|
47
|
+
const configChains = Object.keys(this.configMap);
|
|
48
|
+
const chainConnection = this.multiProvider.getChainConnection(chain);
|
|
49
|
+
const remotes = this.multiProvider
|
|
50
|
+
.intersect(configChains, false)
|
|
51
|
+
.multiProvider.remoteChains(chain);
|
|
52
|
+
yield _super.runIfOwner.call(this, chain, multisigIsm, () => __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
// TODO: Remove extraneous validators
|
|
54
|
+
const remoteDomains = remotes.map((chain) => domains_1.ChainNameToDomainId[chain]);
|
|
55
|
+
const actualValidators = yield Promise.all(remoteDomains.map((id) => multisigIsm.validators(id)));
|
|
56
|
+
const expectedValidators = remotes.map((chain) => this.configMap[chain].multisigIsm.validators);
|
|
57
|
+
const validatorsToEnroll = expectedValidators.map((validators, i) => validators.filter((validator) => !actualValidators[i].includes(ethers_1.ethers.utils.getAddress(validator))));
|
|
58
|
+
const chainsToEnrollValidators = remotes.filter((_, i) => validatorsToEnroll[i].length > 0);
|
|
59
|
+
if (chainsToEnrollValidators.length > 0) {
|
|
60
|
+
this.logger(`Enroll ${chainsToEnrollValidators} validators on ${chain}`);
|
|
61
|
+
yield chainConnection.handleTx(multisigIsm.enrollValidators(chainsToEnrollValidators.map((c) => domains_1.ChainNameToDomainId[c]), validatorsToEnroll.filter((validators) => validators.length > 0), chainConnection.overrides));
|
|
62
|
+
}
|
|
63
|
+
const actualThresholds = yield Promise.all(remoteDomains.map((id) => multisigIsm.threshold(id)));
|
|
64
|
+
const expectedThresholds = remotes.map((chain) => this.configMap[chain].multisigIsm.threshold);
|
|
65
|
+
const chainsToSetThreshold = remotes.filter((_, i) => actualThresholds[i] !== expectedThresholds[i]);
|
|
66
|
+
if (chainsToSetThreshold.length > 0) {
|
|
67
|
+
this.logger(`Set remote (${chainsToSetThreshold}) thresholds on ${chain}`);
|
|
68
|
+
yield chainConnection.handleTx(multisigIsm.setThresholds(chainsToSetThreshold.map((c) => domains_1.ChainNameToDomainId[c]), chainsToSetThreshold.map((c) => this.configMap[c].multisigIsm.threshold), chainConnection.overrides));
|
|
69
|
+
}
|
|
70
|
+
}));
|
|
71
|
+
return multisigIsm;
|
|
62
72
|
});
|
|
63
73
|
}
|
|
64
74
|
deployContracts(chain, config) {
|
|
65
|
-
const _super = Object.create(null, {
|
|
66
|
-
runIfOwner: { get: () => super.runIfOwner }
|
|
67
|
-
});
|
|
68
|
-
var _a, _b, _c;
|
|
69
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
76
|
if (config.remove) {
|
|
71
77
|
// skip deploying to chains configured to be removed
|
|
@@ -75,59 +81,33 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
75
81
|
const provider = dc.provider;
|
|
76
82
|
const startingBlockNumber = yield provider.getBlockNumber();
|
|
77
83
|
this.startingBlockNumbers[chain] = startingBlockNumber;
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
.intersect(configChains, false)
|
|
92
|
-
.multiProvider.remoteChains(chain);
|
|
93
|
-
const inboxes = (_b = (_a = this.deployedContracts[chain]) === null || _a === void 0 ? void 0 : _a.inboxes) !== null && _b !== void 0 ? _b : {};
|
|
94
|
-
let prev;
|
|
95
|
-
for (const remote of remotes) {
|
|
96
|
-
if (!inboxes[remote]) {
|
|
97
|
-
inboxes[remote] = yield this.deployInbox(chain, remote, this.configMap[remote].validatorManager, upgradeBeaconController.address, (_c = inboxes[prev]) === null || _c === void 0 ? void 0 : _c.inbox);
|
|
98
|
-
}
|
|
99
|
-
yield _super.runIfOwner.call(this, chain, connectionManager, () => __awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
const isEnrolled = yield connectionManager.isInbox(inboxes[remote].inbox.address);
|
|
101
|
-
if (!isEnrolled) {
|
|
102
|
-
this.logger(`Enrolling inbox for remote '${remote}'`);
|
|
103
|
-
const enrollTx = yield connectionManager.enrollInbox(chainMetadata_1.chainMetadata[remote].id, inboxes[remote].inbox.address, dc.overrides);
|
|
104
|
-
yield dc.handleTx(enrollTx);
|
|
105
|
-
}
|
|
106
|
-
}));
|
|
107
|
-
prev = remote;
|
|
108
|
-
}
|
|
109
|
-
return Object.assign({ upgradeBeaconController,
|
|
110
|
-
connectionManager,
|
|
111
|
-
interchainGasPaymaster, inboxes: inboxes }, outbox);
|
|
84
|
+
const multisigIsm = yield this.deployMultisigIsm(chain);
|
|
85
|
+
const proxyAdmin = yield this.deployContract(chain, 'proxyAdmin', []);
|
|
86
|
+
const interchainGasPaymaster = yield this.deployInterchainGasPaymaster(chain, proxyAdmin);
|
|
87
|
+
const mailbox = yield this.deployMailbox(chain, multisigIsm.address, proxyAdmin);
|
|
88
|
+
// Mailbox ownership is transferred upon initialization.
|
|
89
|
+
const ownables = [multisigIsm, proxyAdmin];
|
|
90
|
+
yield this.transferOwnershipOfContracts(chain, ownables);
|
|
91
|
+
return {
|
|
92
|
+
proxyAdmin,
|
|
93
|
+
interchainGasPaymaster,
|
|
94
|
+
mailbox,
|
|
95
|
+
multisigIsm,
|
|
96
|
+
};
|
|
112
97
|
});
|
|
113
98
|
}
|
|
114
|
-
|
|
99
|
+
transferOwnershipOfContracts(chain, ownables) {
|
|
115
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
-
|
|
117
|
-
|
|
101
|
+
const owner = this.configMap[chain].owner;
|
|
102
|
+
const chainConnection = this.multiProvider.getChainConnection(chain);
|
|
103
|
+
const receipts = yield Promise.all(ownables.map((ownable) => __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
const currentOwner = yield ownable.owner();
|
|
105
|
+
if (currentOwner.toLowerCase() !== owner.toLowerCase()) {
|
|
106
|
+
return chainConnection.handleTx(ownable.transferOwnership(owner, chainConnection.overrides));
|
|
107
|
+
}
|
|
108
|
+
return undefined;
|
|
118
109
|
})));
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
static transferOwnershipOfChain(coreContracts, owner, chainConnection) {
|
|
122
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
123
|
-
const ownables = [
|
|
124
|
-
coreContracts.outbox.contract,
|
|
125
|
-
coreContracts.outboxValidatorManager,
|
|
126
|
-
coreContracts.connectionManager,
|
|
127
|
-
coreContracts.upgradeBeaconController,
|
|
128
|
-
...Object.values(coreContracts.inboxes).flatMap((inbox) => [inbox.inbox.contract, inbox.inboxValidatorManager]),
|
|
129
|
-
];
|
|
130
|
-
return Promise.all(ownables.map((ownable) => chainConnection.handleTx(ownable.transferOwnership(owner, chainConnection.overrides))));
|
|
110
|
+
return receipts.filter((x) => x !== undefined);
|
|
131
111
|
});
|
|
132
112
|
}
|
|
133
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"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"}
|