@hyperlane-xyz/sdk 0.5.5 → 1.0.0-beta1
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 +0 -2
- package/dist/consts/chainConnectionConfigs.d.ts.map +1 -1
- package/dist/consts/chainConnectionConfigs.js +4 -16
- package/dist/consts/chainConnectionConfigs.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +1 -2
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +13 -18
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +2 -4
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +0 -2
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +177 -1221
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js +4 -10
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/consts/environments/mainnet.json +56 -600
- package/dist/consts/environments/test.json +27 -96
- package/dist/consts/environments/testnet2.json +66 -610
- package/dist/consts/environments/testnet3.json +114 -0
- 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 +182 -1232
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +20 -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 +5 -5
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +12 -44
- 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 +65 -40
- 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 +16 -19
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.js +50 -71
- package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/deploy/core/types.d.ts +15 -28
- 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 +13 -78
- package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +5 -16
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +19 -49
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/deploy/middleware/deploy.d.ts.map +1 -1
- package/dist/deploy/middleware/deploy.js +10 -2
- 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 +25 -18
- 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/gas/calculator.d.ts.map +1 -1
- package/dist/gas/calculator.js +10 -5
- 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 +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- 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 -3
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +0 -1
- package/dist/middleware.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/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 +3 -3
- 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/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":"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"}
|
|
@@ -1,33 +1,30 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import {
|
|
2
|
+
import { InterchainGasPaymaster, Mailbox, MultisigIsm, ProxyAdmin } from '@hyperlane-xyz/core';
|
|
3
3
|
import type { types } from '@hyperlane-xyz/utils';
|
|
4
|
-
import {
|
|
5
|
-
import { CoreContracts,
|
|
4
|
+
import { HyperlaneCore } from '../../core/HyperlaneCore';
|
|
5
|
+
import { CoreContracts, coreFactories } from '../../core/contracts';
|
|
6
6
|
import { ChainConnection } from '../../providers/ChainConnection';
|
|
7
7
|
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
|
|
8
|
+
import { ProxiedContract, TransparentProxyAddresses } from '../../proxy';
|
|
9
|
+
import { ChainMap, ChainName } from '../../types';
|
|
10
|
+
import { DeployOptions, HyperlaneDeployer } from '../HyperlaneDeployer';
|
|
11
|
+
import { CoreConfig } from './types';
|
|
12
|
+
export declare class HyperlaneCoreDeployer<Chain extends ChainName> extends HyperlaneDeployer<Chain, CoreConfig, CoreContracts, typeof coreFactories> {
|
|
13
13
|
startingBlockNumbers: ChainMap<Chain, number | undefined>;
|
|
14
14
|
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
15
|
interchainAccountRouter: import("@hyperlane-xyz/core").InterchainAccountRouter__factory;
|
|
20
16
|
interchainQueryRouter: import("@hyperlane-xyz/core").InterchainQueryRouter__factory;
|
|
21
17
|
create2Factory: import("@hyperlane-xyz/core").Create2Factory__factory;
|
|
22
|
-
|
|
23
|
-
upgradeBeaconController: import("@hyperlane-xyz/core").UpgradeBeaconController__factory;
|
|
18
|
+
proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
|
|
24
19
|
interchainGasPaymaster: import("@hyperlane-xyz/core").InterchainGasPaymaster__factory;
|
|
20
|
+
multisigIsm: import("@hyperlane-xyz/core").MultisigIsm__factory;
|
|
21
|
+
mailbox: import("@hyperlane-xyz/core").Mailbox__factory;
|
|
25
22
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
deployContracts<LocalChain extends Chain>(chain: LocalChain, config: CoreConfig): Promise<CoreContracts
|
|
23
|
+
deployInterchainGasPaymaster<LocalChain extends Chain>(chain: LocalChain, proxyAdmin: ProxyAdmin, deployOpts?: DeployOptions): Promise<ProxiedContract<InterchainGasPaymaster, TransparentProxyAddresses>>;
|
|
24
|
+
deployMailbox<LocalChain extends Chain>(chain: LocalChain, defaultIsmAddress: types.Address, proxyAdmin: ProxyAdmin, deployOpts?: DeployOptions): Promise<ProxiedContract<Mailbox, TransparentProxyAddresses>>;
|
|
25
|
+
deployMultisigIsm<LocalChain extends Chain>(chain: LocalChain): Promise<MultisigIsm>;
|
|
26
|
+
deployContracts<LocalChain extends Chain>(chain: LocalChain, config: CoreConfig): Promise<CoreContracts>;
|
|
30
27
|
static transferOwnership<CoreChains extends ChainName>(core: HyperlaneCore<CoreChains>, owners: ChainMap<CoreChains, types.Address>, multiProvider: MultiProvider<CoreChains>): Promise<ChainMap<CoreChains, ethers.ContractReceipt[]>>;
|
|
31
|
-
static transferOwnershipOfChain
|
|
28
|
+
static transferOwnershipOfChain(coreContracts: CoreContracts, owner: types.Address, chainConnection: ChainConnection): Promise<ethers.ContractReceipt[]>;
|
|
32
29
|
}
|
|
33
30
|
//# 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,EAEX,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,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;IAczD,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;WA+BZ,iBAAiB,CAAC,UAAU,SAAS,SAAS,EACzD,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,EAC/B,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAC3C,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,GACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;WAY7C,wBAAwB,CACnC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;CAcrC"}
|
|
@@ -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,50 @@ 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
|
-
|
|
42
|
-
return { outbox, outboxValidatorManager };
|
|
36
|
+
const mailbox = yield this.deployProxiedContract(chain, 'mailbox', [domain], proxyAdmin, [defaultIsmAddress], deployOpts);
|
|
37
|
+
return mailbox;
|
|
43
38
|
});
|
|
44
39
|
}
|
|
45
|
-
|
|
40
|
+
deployMultisigIsm(chain) {
|
|
41
|
+
const _super = Object.create(null, {
|
|
42
|
+
runIfOwner: { get: () => super.runIfOwner }
|
|
43
|
+
});
|
|
46
44
|
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
|
-
|
|
45
|
+
const multisigIsm = yield this.deployContract(chain, 'multisigIsm', []);
|
|
46
|
+
const configChains = Object.keys(this.configMap);
|
|
47
|
+
const chainConnection = this.multiProvider.getChainConnection(chain);
|
|
48
|
+
const remotes = this.multiProvider
|
|
49
|
+
.intersect(configChains, false)
|
|
50
|
+
.multiProvider.remoteChains(chain);
|
|
51
|
+
yield _super.runIfOwner.call(this, chain, multisigIsm, () => __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
// TODO: Remove extraneous validators
|
|
53
|
+
const remoteDomains = remotes.map((chain) => domains_1.ChainNameToDomainId[chain]);
|
|
54
|
+
const actualValidators = yield Promise.all(remoteDomains.map((id) => multisigIsm.validators(id)));
|
|
55
|
+
const expectedValidators = remotes.map((chain) => this.configMap[chain].multisigIsm.validators);
|
|
56
|
+
const validatorsToEnroll = expectedValidators.map((validators, i) => validators.filter((validator) => !actualValidators[i].includes(ethers_1.ethers.utils.getAddress(validator))));
|
|
57
|
+
const chainsToEnrollValidators = remotes.filter((_, i) => validatorsToEnroll[i].length > 0);
|
|
58
|
+
if (chainsToEnrollValidators.length > 0) {
|
|
59
|
+
this.logger(`Enroll ${chainsToEnrollValidators} validators on ${chain}`);
|
|
60
|
+
yield chainConnection.handleTx(multisigIsm.enrollValidators(chainsToEnrollValidators.map((c) => domains_1.ChainNameToDomainId[c]), validatorsToEnroll.filter((validators) => validators.length > 0), chainConnection.overrides));
|
|
61
|
+
}
|
|
62
|
+
const actualThresholds = yield Promise.all(remoteDomains.map((id) => multisigIsm.threshold(id)));
|
|
63
|
+
const expectedThresholds = remotes.map((chain) => this.configMap[chain].multisigIsm.threshold);
|
|
64
|
+
const chainsToSetThreshold = remotes.filter((_, i) => actualThresholds[i] !== expectedThresholds[i]);
|
|
65
|
+
if (chainsToSetThreshold.length > 0) {
|
|
66
|
+
this.logger(`Set remote (${chainsToSetThreshold}) thresholds on ${chain}`);
|
|
67
|
+
yield chainConnection.handleTx(multisigIsm.setThresholds(chainsToSetThreshold.map((c) => domains_1.ChainNameToDomainId[c]), chainsToSetThreshold.map((c) => this.configMap[c].multisigIsm.threshold), chainConnection.overrides));
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
return multisigIsm;
|
|
62
71
|
});
|
|
63
72
|
}
|
|
64
73
|
deployContracts(chain, config) {
|
|
65
|
-
const _super = Object.create(null, {
|
|
66
|
-
runIfOwner: { get: () => super.runIfOwner }
|
|
67
|
-
});
|
|
68
|
-
var _a, _b, _c;
|
|
69
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
70
75
|
if (config.remove) {
|
|
71
76
|
// skip deploying to chains configured to be removed
|
|
@@ -75,40 +80,16 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
75
80
|
const provider = dc.provider;
|
|
76
81
|
const startingBlockNumber = yield provider.getBlockNumber();
|
|
77
82
|
this.startingBlockNumbers[chain] = startingBlockNumber;
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}));
|
|
89
|
-
const configChains = Object.keys(this.configMap);
|
|
90
|
-
const remotes = this.multiProvider
|
|
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);
|
|
83
|
+
const multisigIsm = yield this.deployMultisigIsm(chain);
|
|
84
|
+
const proxyAdmin = yield this.deployContract(chain, 'proxyAdmin', []);
|
|
85
|
+
const interchainGasPaymaster = yield this.deployInterchainGasPaymaster(chain, proxyAdmin);
|
|
86
|
+
const mailbox = yield this.deployMailbox(chain, multisigIsm.address, proxyAdmin);
|
|
87
|
+
return {
|
|
88
|
+
proxyAdmin,
|
|
89
|
+
interchainGasPaymaster,
|
|
90
|
+
mailbox,
|
|
91
|
+
multisigIsm,
|
|
92
|
+
};
|
|
112
93
|
});
|
|
113
94
|
}
|
|
114
95
|
static transferOwnership(core, owners, multiProvider) {
|
|
@@ -121,11 +102,9 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
121
102
|
static transferOwnershipOfChain(coreContracts, owner, chainConnection) {
|
|
122
103
|
return __awaiter(this, void 0, void 0, function* () {
|
|
123
104
|
const ownables = [
|
|
124
|
-
coreContracts.
|
|
125
|
-
coreContracts.
|
|
126
|
-
coreContracts.
|
|
127
|
-
coreContracts.upgradeBeaconController,
|
|
128
|
-
...Object.values(coreContracts.inboxes).flatMap((inbox) => [inbox.inbox.contract, inbox.inboxValidatorManager]),
|
|
105
|
+
coreContracts.mailbox.contract,
|
|
106
|
+
coreContracts.multisigIsm,
|
|
107
|
+
coreContracts.proxyAdmin,
|
|
129
108
|
];
|
|
130
109
|
return Promise.all(ownables.map((ownable) => chainConnection.handleTx(ownable.transferOwnership(owner, chainConnection.overrides))));
|
|
131
110
|
});
|
|
@@ -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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"}
|
|
@@ -1,64 +1,51 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Mailbox, MultisigIsm } from '@hyperlane-xyz/core';
|
|
2
2
|
import type { types } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { ChainName } from '../../types';
|
|
4
4
|
import type { CheckerViolation } from '../types';
|
|
5
|
-
export declare type
|
|
5
|
+
export declare type MultisigIsmConfig = {
|
|
6
6
|
validators: Array<types.Address>;
|
|
7
7
|
threshold: number;
|
|
8
8
|
};
|
|
9
9
|
export declare type CoreConfig = {
|
|
10
|
-
|
|
10
|
+
multisigIsm: MultisigIsmConfig;
|
|
11
11
|
owner?: types.Address;
|
|
12
12
|
remove?: boolean;
|
|
13
13
|
};
|
|
14
14
|
export declare enum CoreViolationType {
|
|
15
|
-
|
|
15
|
+
MultisigIsm = "MultisigIsm",
|
|
16
16
|
Mailbox = "Mailbox",
|
|
17
17
|
ConnectionManager = "ConnectionManager"
|
|
18
18
|
}
|
|
19
|
-
export declare enum
|
|
19
|
+
export declare enum MultisigIsmViolationType {
|
|
20
20
|
EnrolledValidators = "EnrolledValidators",
|
|
21
21
|
Threshold = "Threshold"
|
|
22
22
|
}
|
|
23
|
-
export declare enum ConnectionManagerViolationType {
|
|
24
|
-
EnrolledInboxes = "EnrolledInboxes"
|
|
25
|
-
}
|
|
26
23
|
export declare enum MailboxViolationType {
|
|
27
|
-
|
|
24
|
+
DefaultIsm = "DefaultIsm"
|
|
28
25
|
}
|
|
29
26
|
export interface MailboxViolation extends CheckerViolation {
|
|
30
27
|
type: CoreViolationType.Mailbox;
|
|
31
28
|
contract: Mailbox;
|
|
32
29
|
mailboxType: MailboxViolationType;
|
|
33
30
|
}
|
|
34
|
-
export interface
|
|
31
|
+
export interface MailboxMultisigIsmViolation extends MailboxViolation {
|
|
35
32
|
actual: types.Address;
|
|
36
33
|
expected: types.Address;
|
|
37
34
|
}
|
|
38
|
-
export interface
|
|
39
|
-
type: CoreViolationType.
|
|
40
|
-
contract:
|
|
41
|
-
|
|
35
|
+
export interface MultisigIsmViolation extends CheckerViolation {
|
|
36
|
+
type: CoreViolationType.MultisigIsm;
|
|
37
|
+
contract: MultisigIsm;
|
|
38
|
+
subType: MultisigIsmViolationType;
|
|
42
39
|
remote: ChainName;
|
|
43
40
|
}
|
|
44
|
-
export interface EnrolledValidatorsViolation extends
|
|
45
|
-
|
|
41
|
+
export interface EnrolledValidatorsViolation extends MultisigIsmViolation {
|
|
42
|
+
subType: MultisigIsmViolationType.EnrolledValidators;
|
|
46
43
|
actual: Set<types.Address>;
|
|
47
44
|
expected: Set<types.Address>;
|
|
48
45
|
}
|
|
49
|
-
export interface ThresholdViolation extends
|
|
50
|
-
|
|
46
|
+
export interface ThresholdViolation extends MultisigIsmViolation {
|
|
47
|
+
subType: MultisigIsmViolationType.Threshold;
|
|
51
48
|
actual: number;
|
|
52
49
|
expected: number;
|
|
53
50
|
}
|
|
54
|
-
export interface ConnectionManagerViolation extends CheckerViolation {
|
|
55
|
-
type: CoreViolationType.ConnectionManager;
|
|
56
|
-
contract: AbacusConnectionManager;
|
|
57
|
-
connectionManagerType: ConnectionManagerViolationType;
|
|
58
|
-
}
|
|
59
|
-
export interface EnrolledInboxesViolation extends ConnectionManagerViolation {
|
|
60
|
-
remote: ChainName;
|
|
61
|
-
actual: Set<types.Address>;
|
|
62
|
-
expected: Set<types.Address>;
|
|
63
|
-
}
|
|
64
51
|
//# sourceMappingURL=types.d.ts.map
|