@hyperlane-xyz/sdk 1.0.0-beta2 → 1.0.0-beta4

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.
Files changed (161) hide show
  1. package/dist/consts/chainConnectionConfigs.d.ts +24 -13
  2. package/dist/consts/chainConnectionConfigs.d.ts.map +1 -1
  3. package/dist/consts/chainConnectionConfigs.js +139 -26
  4. package/dist/consts/chainConnectionConfigs.js.map +1 -1
  5. package/dist/consts/chainMetadata.d.ts +26 -80
  6. package/dist/consts/chainMetadata.d.ts.map +1 -1
  7. package/dist/consts/chainMetadata.js +97 -481
  8. package/dist/consts/chainMetadata.js.map +1 -1
  9. package/dist/consts/chains.d.ts +16 -18
  10. package/dist/consts/chains.d.ts.map +1 -1
  11. package/dist/consts/chains.js +15 -29
  12. package/dist/consts/chains.js.map +1 -1
  13. package/dist/consts/environments/index.d.ts +1221 -177
  14. package/dist/consts/environments/index.d.ts.map +1 -1
  15. package/dist/consts/environments/index.js +10 -4
  16. package/dist/consts/environments/index.js.map +1 -1
  17. package/dist/consts/environments/mainnet.json +600 -56
  18. package/dist/consts/environments/test.json +96 -27
  19. package/dist/consts/environments/testnet2.json +610 -66
  20. package/dist/consts/metamask.d.ts +17 -0
  21. package/dist/consts/metamask.d.ts.map +1 -0
  22. package/dist/consts/metamask.js +50 -0
  23. package/dist/consts/metamask.js.map +1 -0
  24. package/dist/contracts.d.ts +1 -2
  25. package/dist/contracts.d.ts.map +1 -1
  26. package/dist/contracts.js.map +1 -1
  27. package/dist/core/HyperlaneCore.d.ts +1232 -182
  28. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  29. package/dist/core/HyperlaneCore.js +30 -20
  30. package/dist/core/HyperlaneCore.js.map +1 -1
  31. package/dist/core/TestCoreApp.d.ts +12 -6
  32. package/dist/core/TestCoreApp.d.ts.map +1 -1
  33. package/dist/core/TestCoreApp.js +9 -7
  34. package/dist/core/TestCoreApp.js.map +1 -1
  35. package/dist/core/TestCoreDeployer.d.ts +5 -5
  36. package/dist/core/TestCoreDeployer.d.ts.map +1 -1
  37. package/dist/core/TestCoreDeployer.js +44 -12
  38. package/dist/core/TestCoreDeployer.js.map +1 -1
  39. package/dist/core/contracts.d.ts +22 -10
  40. package/dist/core/contracts.d.ts.map +1 -1
  41. package/dist/core/contracts.js +8 -8
  42. package/dist/core/contracts.js.map +1 -1
  43. package/dist/core/events.d.ts +2 -1
  44. package/dist/core/events.d.ts.map +1 -1
  45. package/dist/core/message.d.ts +21 -6
  46. package/dist/core/message.d.ts.map +1 -1
  47. package/dist/core/message.js +34 -9
  48. package/dist/core/message.js.map +1 -1
  49. package/dist/core/testHyperlaneDeploy.hardhat-test.js +6 -6
  50. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
  51. package/dist/deploy/HyperlaneAppChecker.d.ts +2 -2
  52. package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
  53. package/dist/deploy/HyperlaneAppChecker.js +3 -7
  54. package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
  55. package/dist/deploy/HyperlaneDeployer.d.ts +12 -7
  56. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  57. package/dist/deploy/HyperlaneDeployer.js +40 -65
  58. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  59. package/dist/deploy/core/HyperlaneCoreChecker.d.ts +7 -3
  60. package/dist/deploy/core/HyperlaneCoreChecker.d.ts.map +1 -1
  61. package/dist/deploy/core/HyperlaneCoreChecker.js +127 -41
  62. package/dist/deploy/core/HyperlaneCoreChecker.js.map +1 -1
  63. package/dist/deploy/core/HyperlaneCoreDeployer.d.ts +19 -16
  64. package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  65. package/dist/deploy/core/HyperlaneCoreDeployer.js +71 -50
  66. package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -1
  67. package/dist/deploy/core/types.d.ts +28 -15
  68. package/dist/deploy/core/types.d.ts.map +1 -1
  69. package/dist/deploy/core/types.js +12 -8
  70. package/dist/deploy/core/types.js.map +1 -1
  71. package/dist/deploy/middleware/LiquidityLayerApp.d.ts +12 -4
  72. package/dist/deploy/middleware/LiquidityLayerApp.d.ts.map +1 -1
  73. package/dist/deploy/middleware/LiquidityLayerApp.js +87 -14
  74. package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -1
  75. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +17 -6
  76. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -1
  77. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +50 -20
  78. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -1
  79. package/dist/deploy/middleware/TokenBridgeApp.d.ts +26 -0
  80. package/dist/deploy/middleware/TokenBridgeApp.d.ts.map +1 -0
  81. package/dist/deploy/middleware/TokenBridgeApp.js +115 -0
  82. package/dist/deploy/middleware/TokenBridgeApp.js.map +1 -0
  83. package/dist/deploy/middleware/TokenBridgeRouterDeployer.d.ts +33 -0
  84. package/dist/deploy/middleware/TokenBridgeRouterDeployer.d.ts.map +1 -0
  85. package/dist/deploy/middleware/TokenBridgeRouterDeployer.js +93 -0
  86. package/dist/deploy/middleware/TokenBridgeRouterDeployer.js.map +1 -0
  87. package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.d.ts +17 -0
  88. package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.d.ts.map +1 -0
  89. package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.js +42 -0
  90. package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.js.map +1 -0
  91. package/dist/deploy/middleware/deploy.d.ts.map +1 -1
  92. package/dist/deploy/middleware/deploy.js +2 -10
  93. package/dist/deploy/middleware/deploy.js.map +1 -1
  94. package/dist/deploy/proxy.d.ts +6 -7
  95. package/dist/deploy/proxy.d.ts.map +1 -1
  96. package/dist/deploy/proxy.js +10 -18
  97. package/dist/deploy/proxy.js.map +1 -1
  98. package/dist/deploy/router/HyperlaneRouterChecker.d.ts +1 -0
  99. package/dist/deploy/router/HyperlaneRouterChecker.d.ts.map +1 -1
  100. package/dist/deploy/router/HyperlaneRouterChecker.js +9 -0
  101. package/dist/deploy/router/HyperlaneRouterChecker.js.map +1 -1
  102. package/dist/deploy/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  103. package/dist/deploy/router/HyperlaneRouterDeployer.js +15 -17
  104. package/dist/deploy/router/HyperlaneRouterDeployer.js.map +1 -1
  105. package/dist/domains.d.ts +1 -1
  106. package/dist/domains.d.ts.map +1 -1
  107. package/dist/events.js +16 -16
  108. package/dist/events.js.map +1 -1
  109. package/dist/gas/calculator.d.ts.map +1 -1
  110. package/dist/gas/calculator.js +6 -11
  111. package/dist/gas/calculator.js.map +1 -1
  112. package/dist/gas/calculator.test.js +9 -6
  113. package/dist/gas/calculator.test.js.map +1 -1
  114. package/dist/index.d.ts +11 -10
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +8 -11
  117. package/dist/index.js.map +1 -1
  118. package/dist/middleware/accounts.test.d.ts +2 -0
  119. package/dist/middleware/accounts.test.d.ts.map +1 -0
  120. package/dist/middleware/accounts.test.js +61 -0
  121. package/dist/middleware/accounts.test.js.map +1 -0
  122. package/dist/middleware/liquidity-layer.hardhat-test.js +47 -20
  123. package/dist/middleware/liquidity-layer.hardhat-test.js.map +1 -1
  124. package/dist/middleware/queries.test.d.ts +2 -0
  125. package/dist/middleware/queries.test.d.ts.map +1 -0
  126. package/dist/middleware/queries.test.js +69 -0
  127. package/dist/middleware/queries.test.js.map +1 -0
  128. package/dist/middleware/tokenbridge.hardhat-test.d.ts +2 -0
  129. package/dist/middleware/tokenbridge.hardhat-test.d.ts.map +1 -0
  130. package/dist/middleware/tokenbridge.hardhat-test.js +89 -0
  131. package/dist/middleware/tokenbridge.hardhat-test.js.map +1 -0
  132. package/dist/middleware.d.ts +6 -1
  133. package/dist/middleware.d.ts.map +1 -1
  134. package/dist/middleware.js +5 -1
  135. package/dist/middleware.js.map +1 -1
  136. package/dist/providers/ChainConnection.d.ts +1 -1
  137. package/dist/providers/ChainConnection.d.ts.map +1 -1
  138. package/dist/providers/ChainConnection.js +3 -2
  139. package/dist/providers/ChainConnection.js.map +1 -1
  140. package/dist/providers/MultiProvider.d.ts.map +1 -1
  141. package/dist/providers/MultiProvider.js +1 -1
  142. package/dist/providers/MultiProvider.js.map +1 -1
  143. package/dist/proxy.d.ts +4 -2
  144. package/dist/proxy.d.ts.map +1 -1
  145. package/dist/proxy.js +1 -1
  146. package/dist/proxy.js.map +1 -1
  147. package/dist/router.d.ts +1 -2
  148. package/dist/router.d.ts.map +1 -1
  149. package/dist/test/envSubsetDeployer/app.js +2 -2
  150. package/dist/test/envSubsetDeployer/app.js.map +1 -1
  151. package/dist/tokenBridge.d.ts +10 -0
  152. package/dist/tokenBridge.d.ts.map +1 -0
  153. package/dist/tokenBridge.js +9 -0
  154. package/dist/tokenBridge.js.map +1 -0
  155. package/dist/types.d.ts +3 -3
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/utils/objects.d.ts +1 -0
  158. package/dist/utils/objects.d.ts.map +1 -1
  159. package/dist/utils/objects.js +5 -1
  160. package/dist/utils/objects.js.map +1 -1
  161. package/package.json +7 -6
@@ -11,7 +11,9 @@ 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");
14
15
  const domains_1 = require("../../domains");
16
+ const objects_1 = require("../../utils/objects");
15
17
  const HyperlaneAppChecker_1 = require("../HyperlaneAppChecker");
16
18
  const types_1 = require("./types");
17
19
  class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
@@ -24,8 +26,11 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
24
26
  }
25
27
  yield this.checkDomainOwnership(chain);
26
28
  yield this.checkProxiedContracts(chain);
27
- yield this.checkMailbox(chain);
28
- yield this.checkMultisigIsm(chain);
29
+ yield this.checkOutbox(chain);
30
+ yield this.checkInboxes(chain);
31
+ yield this.checkConnectionManager(chain);
32
+ yield this.checkValidatorManagers(chain);
33
+ yield this.checkInterchainGasPaymaster(chain);
29
34
  });
30
35
  }
31
36
  checkDomainOwnership(chain) {
@@ -34,65 +39,68 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
34
39
  if (config.owner) {
35
40
  const contracts = this.app.getContracts(chain);
36
41
  const ownables = [
37
- contracts.proxyAdmin,
38
- contracts.mailbox.contract,
39
- contracts.multisigIsm,
42
+ contracts.connectionManager,
43
+ contracts.upgradeBeaconController,
44
+ contracts.outbox.contract,
45
+ contracts.outboxValidatorManager,
46
+ ...Object.values(contracts.inboxes)
47
+ .map((inbox) => [
48
+ inbox.inbox.contract,
49
+ inbox.inboxValidatorManager,
50
+ ])
51
+ .flat(),
40
52
  ];
41
53
  return this.checkOwnership(chain, config.owner, ownables);
42
54
  }
43
55
  });
44
56
  }
45
- checkMailbox(chain) {
57
+ checkOutbox(chain) {
46
58
  return __awaiter(this, void 0, void 0, function* () {
47
59
  const contracts = this.app.getContracts(chain);
48
- const mailbox = contracts.mailbox.contract;
49
- const localDomain = yield mailbox.localDomain();
60
+ const outbox = contracts.outbox.contract;
61
+ const localDomain = yield outbox.localDomain();
50
62
  utils_1.utils.assert(localDomain === domains_1.ChainNameToDomainId[chain]);
51
- const actualIsm = yield mailbox.defaultIsm();
52
- const expectedIsm = contracts.multisigIsm.address;
53
- if (actualIsm !== expectedIsm) {
63
+ const actualManager = yield contracts.outbox.contract.validatorManager();
64
+ const expectedManager = contracts.outboxValidatorManager.address;
65
+ if (actualManager !== expectedManager) {
54
66
  const violation = {
55
67
  type: types_1.CoreViolationType.Mailbox,
56
- mailboxType: types_1.MailboxViolationType.DefaultIsm,
57
- contract: mailbox,
68
+ mailboxType: types_1.MailboxViolationType.ValidatorManager,
69
+ contract: outbox,
58
70
  chain,
59
- actual: actualIsm,
60
- expected: expectedIsm,
71
+ actual: actualManager,
72
+ expected: expectedManager,
61
73
  };
62
74
  this.addViolation(violation);
63
75
  }
64
76
  });
65
77
  }
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) {
78
+ // Checks validator sets of the OutboxValidatorManager and all
79
+ // InboxValidatorManagers on the chain.
80
+ checkValidatorManagers(chain) {
74
81
  return __awaiter(this, void 0, void 0, function* () {
75
- yield Promise.all(this.app
76
- .remoteChains(local)
77
- .map((remote) => this.checkMultisigIsmForRemote(local, remote)));
82
+ const coreContracts = this.app.getContracts(chain);
83
+ yield this.checkValidatorManager(chain, chain, coreContracts.outboxValidatorManager);
84
+ yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(coreContracts.inboxes, (remote, inbox) => this.checkValidatorManager(chain, remote, inbox.inboxValidatorManager)));
78
85
  });
79
86
  }
80
- checkMultisigIsmForRemote(local, remote) {
87
+ // Checks the validator set for a MultisigValidatorManager on the localDomain that tracks
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) {
81
92
  return __awaiter(this, void 0, void 0, function* () {
82
- const coreContracts = this.app.getContracts(local);
83
- const multisigIsm = coreContracts.multisigIsm;
84
93
  const config = this.configMap[remote];
85
- const remoteDomain = domains_1.ChainNameToDomainId[remote];
86
- const multisigIsmConfig = config.multisigIsm;
87
- const expectedValidators = multisigIsmConfig.validators;
88
- const actualValidators = yield multisigIsm.validators(remoteDomain);
94
+ const validatorManagerConfig = config.validatorManager;
95
+ const expectedValidators = validatorManagerConfig.validators;
96
+ const actualValidators = yield validatorManager.validators();
89
97
  const expectedSet = new Set(expectedValidators.map((_) => _.toLowerCase()));
90
98
  const actualSet = new Set(actualValidators.map((_) => _.toLowerCase()));
91
99
  if (!utils_1.utils.setEquality(expectedSet, actualSet)) {
92
100
  const violation = {
93
- type: types_1.CoreViolationType.MultisigIsm,
94
- subType: types_1.MultisigIsmViolationType.EnrolledValidators,
95
- contract: multisigIsm,
101
+ type: types_1.CoreViolationType.ValidatorManager,
102
+ validatorManagerType: types_1.ValidatorManagerViolationType.EnrolledValidators,
103
+ contract: validatorManager,
96
104
  chain: local,
97
105
  remote,
98
106
  actual: actualSet,
@@ -100,14 +108,14 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
100
108
  };
101
109
  this.addViolation(violation);
102
110
  }
103
- const expectedThreshold = multisigIsmConfig.threshold;
111
+ const expectedThreshold = validatorManagerConfig.threshold;
104
112
  utils_1.utils.assert(expectedThreshold !== undefined);
105
- const actualThreshold = yield multisigIsm.threshold(remoteDomain);
113
+ const actualThreshold = (yield validatorManager.threshold()).toNumber();
106
114
  if (expectedThreshold !== actualThreshold) {
107
115
  const violation = {
108
- type: types_1.CoreViolationType.MultisigIsm,
109
- subType: types_1.MultisigIsmViolationType.Threshold,
110
- contract: multisigIsm,
116
+ type: types_1.CoreViolationType.ValidatorManager,
117
+ validatorManagerType: types_1.ValidatorManagerViolationType.Threshold,
118
+ contract: validatorManager,
111
119
  chain: local,
112
120
  remote,
113
121
  actual: actualThreshold,
@@ -117,6 +125,84 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
117
125
  }
118
126
  });
119
127
  }
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
+ }
120
206
  }
121
207
  exports.HyperlaneCoreChecker = HyperlaneCoreChecker;
122
208
  //# sourceMappingURL=HyperlaneCoreChecker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HyperlaneCoreChecker.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperlaneCoreChecker.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,33 @@
1
1
  import { ethers } from 'ethers';
2
- import { InterchainGasPaymaster, Mailbox, MultisigIsm, ProxyAdmin } from '@hyperlane-xyz/core';
2
+ import { Inbox } from '@hyperlane-xyz/core';
3
3
  import type { types } from '@hyperlane-xyz/utils';
4
- import { HyperlaneCore } from '../../core/HyperlaneCore';
5
- import { CoreContracts, coreFactories } from '../../core/contracts';
4
+ import { CoreContractsMap, HyperlaneCore } from '../../core/HyperlaneCore';
5
+ import { CoreContracts, InboxContracts, OutboxContracts, coreFactories } from '../../core/contracts';
6
6
  import { ChainConnection } from '../../providers/ChainConnection';
7
7
  import { MultiProvider } from '../../providers/MultiProvider';
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> {
8
+ import { BeaconProxyAddresses, ProxiedContract } from '../../proxy';
9
+ import { ChainMap, ChainName, Remotes } from '../../types';
10
+ import { HyperlaneDeployer } from '../HyperlaneDeployer';
11
+ import { CoreConfig, ValidatorManagerConfig } from './types';
12
+ export declare class HyperlaneCoreDeployer<Chain extends ChainName> extends HyperlaneDeployer<Chain, CoreConfig, CoreContracts<Chain, Chain>, 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;
15
19
  interchainAccountRouter: import("@hyperlane-xyz/core").InterchainAccountRouter__factory;
16
20
  interchainQueryRouter: import("@hyperlane-xyz/core").InterchainQueryRouter__factory;
17
21
  create2Factory: import("@hyperlane-xyz/core").Create2Factory__factory;
18
- proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
22
+ connectionManager: import("@hyperlane-xyz/core").AbacusConnectionManager__factory;
23
+ upgradeBeaconController: import("@hyperlane-xyz/core").UpgradeBeaconController__factory;
19
24
  interchainGasPaymaster: import("@hyperlane-xyz/core").InterchainGasPaymaster__factory;
20
- multisigIsm: import("@hyperlane-xyz/core").MultisigIsm__factory;
21
- mailbox: import("@hyperlane-xyz/core").Mailbox__factory;
22
25
  });
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>;
26
+ deploy(partialDeployment?: Partial<CoreContractsMap<Chain>>): Promise<CoreContractsMap<Chain>>;
27
+ deployOutbox<LocalChain extends Chain>(chain: LocalChain, config: ValidatorManagerConfig, ubcAddress: types.Address): Promise<OutboxContracts>;
28
+ deployInbox<Local extends Chain>(localChain: Local, remoteChain: Remotes<Chain, Local>, config: ValidatorManagerConfig, ubcAddress: types.Address, duplicate?: ProxiedContract<Inbox, BeaconProxyAddresses>): Promise<InboxContracts>;
29
+ deployContracts<LocalChain extends Chain>(chain: LocalChain, config: CoreConfig): Promise<CoreContracts<Chain, LocalChain>>;
27
30
  static transferOwnership<CoreChains extends ChainName>(core: HyperlaneCore<CoreChains>, owners: ChainMap<CoreChains, types.Address>, multiProvider: MultiProvider<CoreChains>): Promise<ChainMap<CoreChains, ethers.ContractReceipt[]>>;
28
- static transferOwnershipOfChain(coreContracts: CoreContracts, owner: types.Address, chainConnection: ChainConnection): Promise<ethers.ContractReceipt[]>;
31
+ static transferOwnershipOfChain<Chain extends ChainName, Local extends Chain>(coreContracts: CoreContracts<Chain, Local>, owner: types.Address, chainConnection: ChainConnection): Promise<ethers.ContractReceipt[]>;
29
32
  }
30
33
  //# 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,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"}
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,EAAE,KAAK,EAAW,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,aAAa,EACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAkB,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE7D,qBAAa,qBAAqB,CAChC,KAAK,SAAS,SAAS,CACvB,SAAQ,iBAAiB,CACzB,KAAK,EACL,UAAU,EACV,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAC3B,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;IAS7B,MAAM,CACV,iBAAiB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACnD,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAI7B,YAAY,CAAC,UAAU,SAAS,KAAK,EACzC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,sBAAsB,EAC9B,UAAU,EAAE,KAAK,CAAC,OAAO,GACxB,OAAO,CAAC,eAAe,CAAC;IAkBrB,WAAW,CAAC,KAAK,SAAS,KAAK,EACnC,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAClC,MAAM,EAAE,sBAAsB,EAC9B,UAAU,EAAE,KAAK,CAAC,OAAO,EACzB,SAAS,CAAC,EAAE,eAAe,CAAC,KAAK,EAAE,oBAAoB,CAAC,GACvD,OAAO,CAAC,cAAc,CAAC;IAgCpB,eAAe,CAAC,UAAU,SAAS,KAAK,EAC5C,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;WA8F/B,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,KAAK,SAAS,SAAS,EACvB,KAAK,SAAS,KAAK,EAEnB,aAAa,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAC1C,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;CAkBrC"}
@@ -14,10 +14,8 @@ 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");
18
17
  const chainMetadata_1 = require("../../consts/chainMetadata");
19
18
  const contracts_1 = require("../../core/contracts");
20
- const domains_1 = require("../../domains");
21
19
  const objects_1 = require("../../utils/objects");
22
20
  const HyperlaneDeployer_1 = require("../HyperlaneDeployer");
23
21
  class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
@@ -27,50 +25,47 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
27
25
  });
28
26
  this.startingBlockNumbers = (0, objects_1.objMap)(configMap, () => undefined);
29
27
  }
30
- deployInterchainGasPaymaster(chain, proxyAdmin, deployOpts) {
31
- return this.deployProxiedContract(chain, 'interchainGasPaymaster', [], proxyAdmin, [], deployOpts);
28
+ // override return type for inboxes shape derived from chain
29
+ deploy(partialDeployment) {
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
+ });
32
36
  }
33
- deployMailbox(chain, defaultIsmAddress, proxyAdmin, deployOpts) {
37
+ deployOutbox(chain, config, ubcAddress) {
34
38
  return __awaiter(this, void 0, void 0, function* () {
35
39
  const domain = chainMetadata_1.chainMetadata[chain].id;
36
- const mailbox = yield this.deployProxiedContract(chain, 'mailbox', [domain], proxyAdmin, [defaultIsmAddress], deployOpts);
37
- return mailbox;
40
+ const outboxValidatorManager = yield this.deployContract(chain, 'outboxValidatorManager', [domain, config.validators, config.threshold]);
41
+ const outbox = yield this.deployProxiedContract(chain, 'outbox', [domain], ubcAddress, [outboxValidatorManager.address]);
42
+ return { outbox, outboxValidatorManager };
38
43
  });
39
44
  }
40
- deployMultisigIsm(chain) {
41
- const _super = Object.create(null, {
42
- runIfOwner: { get: () => super.runIfOwner }
43
- });
45
+ deployInbox(localChain, remoteChain, config, ubcAddress, duplicate) {
44
46
  return __awaiter(this, void 0, void 0, function* () {
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;
47
+ const localDomain = chainMetadata_1.chainMetadata[localChain].id;
48
+ const remoteDomain = chainMetadata_1.chainMetadata[remoteChain].id;
49
+ const inboxValidatorManager = yield this.deployContract(localChain, 'inboxValidatorManager', [remoteDomain, config.validators, config.threshold]);
50
+ const initArgs = [
51
+ remoteDomain,
52
+ inboxValidatorManager.address,
53
+ ];
54
+ let inbox;
55
+ if (duplicate) {
56
+ inbox = yield this.duplicateProxiedContract(localChain, duplicate, initArgs);
57
+ }
58
+ else {
59
+ inbox = yield this.deployProxiedContract(localChain, 'inbox', [localDomain], ubcAddress, initArgs);
60
+ }
61
+ return { inbox, inboxValidatorManager };
71
62
  });
72
63
  }
73
64
  deployContracts(chain, config) {
65
+ const _super = Object.create(null, {
66
+ runIfOwner: { get: () => super.runIfOwner }
67
+ });
68
+ var _a, _b, _c;
74
69
  return __awaiter(this, void 0, void 0, function* () {
75
70
  if (config.remove) {
76
71
  // skip deploying to chains configured to be removed
@@ -80,16 +75,40 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
80
75
  const provider = dc.provider;
81
76
  const startingBlockNumber = yield provider.getBlockNumber();
82
77
  this.startingBlockNumbers[chain] = startingBlockNumber;
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
- };
78
+ const upgradeBeaconController = yield this.deployContract(chain, 'upgradeBeaconController', []);
79
+ const interchainGasPaymaster = yield this.deployProxiedContract(chain, 'interchainGasPaymaster', [], upgradeBeaconController.address, []);
80
+ const connectionManager = yield this.deployContract(chain, 'connectionManager', []);
81
+ const outbox = yield this.deployOutbox(chain, config.validatorManager, upgradeBeaconController.address);
82
+ yield _super.runIfOwner.call(this, chain, connectionManager, () => __awaiter(this, void 0, void 0, function* () {
83
+ const current = yield connectionManager.outbox();
84
+ if (current !== outbox.outbox.address) {
85
+ const outboxTx = yield connectionManager.setOutbox(outbox.outbox.address, dc.overrides);
86
+ yield dc.handleTx(outboxTx);
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);
93
112
  });
94
113
  }
95
114
  static transferOwnership(core, owners, multiProvider) {
@@ -102,9 +121,11 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
102
121
  static transferOwnershipOfChain(coreContracts, owner, chainConnection) {
103
122
  return __awaiter(this, void 0, void 0, function* () {
104
123
  const ownables = [
105
- coreContracts.mailbox.contract,
106
- coreContracts.multisigIsm,
107
- coreContracts.proxyAdmin,
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]),
108
129
  ];
109
130
  return Promise.all(ownables.map((ownable) => chainConnection.handleTx(ownable.transferOwnership(owner, chainConnection.overrides))));
110
131
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"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"}
@@ -1,51 +1,64 @@
1
- import { Mailbox, MultisigIsm } from '@hyperlane-xyz/core';
1
+ import { AbacusConnectionManager, Mailbox, MultisigValidatorManager } 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 MultisigIsmConfig = {
5
+ export declare type ValidatorManagerConfig = {
6
6
  validators: Array<types.Address>;
7
7
  threshold: number;
8
8
  };
9
9
  export declare type CoreConfig = {
10
- multisigIsm: MultisigIsmConfig;
10
+ validatorManager: ValidatorManagerConfig;
11
11
  owner?: types.Address;
12
12
  remove?: boolean;
13
13
  };
14
14
  export declare enum CoreViolationType {
15
- MultisigIsm = "MultisigIsm",
15
+ ValidatorManager = "ValidatorManager",
16
16
  Mailbox = "Mailbox",
17
17
  ConnectionManager = "ConnectionManager"
18
18
  }
19
- export declare enum MultisigIsmViolationType {
19
+ export declare enum ValidatorManagerViolationType {
20
20
  EnrolledValidators = "EnrolledValidators",
21
21
  Threshold = "Threshold"
22
22
  }
23
+ export declare enum ConnectionManagerViolationType {
24
+ EnrolledInboxes = "EnrolledInboxes"
25
+ }
23
26
  export declare enum MailboxViolationType {
24
- DefaultIsm = "DefaultIsm"
27
+ ValidatorManager = "ValidatorManager"
25
28
  }
26
29
  export interface MailboxViolation extends CheckerViolation {
27
30
  type: CoreViolationType.Mailbox;
28
31
  contract: Mailbox;
29
32
  mailboxType: MailboxViolationType;
30
33
  }
31
- export interface MailboxMultisigIsmViolation extends MailboxViolation {
34
+ export interface MailboxValidatorManagerViolation extends MailboxViolation {
32
35
  actual: types.Address;
33
36
  expected: types.Address;
34
37
  }
35
- export interface MultisigIsmViolation extends CheckerViolation {
36
- type: CoreViolationType.MultisigIsm;
37
- contract: MultisigIsm;
38
- subType: MultisigIsmViolationType;
38
+ export interface ValidatorManagerViolation extends CheckerViolation {
39
+ type: CoreViolationType.ValidatorManager;
40
+ contract: MultisigValidatorManager;
41
+ validatorManagerType: ValidatorManagerViolationType;
39
42
  remote: ChainName;
40
43
  }
41
- export interface EnrolledValidatorsViolation extends MultisigIsmViolation {
42
- subType: MultisigIsmViolationType.EnrolledValidators;
44
+ export interface EnrolledValidatorsViolation extends ValidatorManagerViolation {
45
+ validatorManagerType: ValidatorManagerViolationType.EnrolledValidators;
43
46
  actual: Set<types.Address>;
44
47
  expected: Set<types.Address>;
45
48
  }
46
- export interface ThresholdViolation extends MultisigIsmViolation {
47
- subType: MultisigIsmViolationType.Threshold;
49
+ export interface ThresholdViolation extends ValidatorManagerViolation {
50
+ validatorManagerType: ValidatorManagerViolationType.Threshold;
48
51
  actual: number;
49
52
  expected: number;
50
53
  }
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
+ }
51
64
  //# sourceMappingURL=types.d.ts.map