@hyperlane-xyz/sdk 1.2.2 → 1.3.0
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/HyperlaneApp.d.ts +11 -7
- package/dist/HyperlaneApp.d.ts.map +1 -1
- package/dist/HyperlaneApp.js +14 -0
- package/dist/HyperlaneApp.js.map +1 -1
- package/dist/agents/types.d.ts +56 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +43 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/consts/bytecode.d.ts +11 -0
- package/dist/consts/bytecode.d.ts.map +1 -0
- package/dist/consts/bytecode.js +15 -0
- package/dist/consts/bytecode.js.map +1 -0
- package/dist/consts/chainMetadata.d.ts +2 -0
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +6 -3
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/environments/index.d.ts +64 -231
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js +2 -12
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/consts/environments/mainnet.json +28 -99
- package/dist/consts/environments/test.json +20 -44
- package/dist/consts/environments/testnet.json +27 -90
- package/dist/consts/multisigIsm.d.ts +4 -0
- package/dist/consts/multisigIsm.d.ts.map +1 -0
- package/dist/consts/multisigIsm.js +174 -0
- package/dist/consts/multisigIsm.js.map +1 -0
- package/dist/contracts.d.ts +16 -10
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +32 -43
- package/dist/contracts.js.map +1 -1
- package/dist/core/HyperlaneCore.d.ts +5 -16
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +7 -35
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCoreChecker.d.ts +0 -6
- package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreChecker.js +20 -155
- package/dist/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts +8 -22
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +14 -141
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +8 -12
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +6 -3
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.d.ts +2 -2
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +4 -25
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/contracts.d.ts +3 -22
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/contracts.js +1 -7
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +2 -2
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/core/types.d.ts +4 -47
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -16
- package/dist/core/types.js.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts +2 -4
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +47 -21
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +20 -18
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +120 -94
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/proxy.d.ts +1 -13
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +8 -13
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/types.d.ts +7 -1
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/types.js +1 -0
- package/dist/deploy/types.js.map +1 -1
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +2 -1
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/deploy/verify/utils.d.ts +1 -0
- package/dist/deploy/verify/utils.d.ts.map +1 -1
- package/dist/deploy/verify/utils.js +9 -4
- package/dist/deploy/verify/utils.js.map +1 -1
- package/dist/gas/HyperlaneIgp.d.ts +53 -0
- package/dist/gas/HyperlaneIgp.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgp.js +72 -0
- package/dist/gas/HyperlaneIgp.js.map +1 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts +14 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpChecker.js +148 -0
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts +22 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.js +113 -0
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -0
- package/dist/gas/contracts.d.ts +9 -0
- package/dist/gas/contracts.d.ts.map +1 -0
- package/dist/gas/contracts.js +11 -0
- package/dist/gas/contracts.js.map +1 -0
- package/dist/gas/types.d.ts +35 -50
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gas/types.js +11 -17
- package/dist/gas/types.js.map +1 -1
- package/dist/index.d.ts +34 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -43
- package/dist/index.js.map +1 -1
- package/dist/middleware/MiddlewareRouterChecker.d.ts +8 -0
- package/dist/middleware/MiddlewareRouterChecker.d.ts.map +1 -0
- package/dist/middleware/MiddlewareRouterChecker.js +26 -0
- package/dist/middleware/MiddlewareRouterChecker.js.map +1 -0
- package/dist/middleware/MiddlewareRouterDeployer.d.ts +17 -0
- package/dist/middleware/MiddlewareRouterDeployer.d.ts.map +1 -0
- package/dist/middleware/MiddlewareRouterDeployer.js +62 -0
- package/dist/middleware/MiddlewareRouterDeployer.js.map +1 -0
- package/dist/middleware/account/InterchainAccount.d.ts +11 -0
- package/dist/middleware/account/InterchainAccount.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccount.js +21 -0
- package/dist/middleware/account/InterchainAccount.js.map +1 -0
- package/dist/middleware/account/InterchainAccountChecker.d.ts +7 -0
- package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccountChecker.js +8 -0
- package/dist/middleware/account/InterchainAccountChecker.js.map +1 -0
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +14 -0
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccountDeployer.js +64 -0
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -0
- package/dist/middleware/account/accounts.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/{accounts.hardhat-test.js → account/accounts.hardhat-test.js} +21 -24
- package/dist/middleware/account/accounts.hardhat-test.js.map +1 -0
- package/dist/middleware/account/contracts.d.ts +7 -0
- package/dist/middleware/account/contracts.d.ts.map +1 -0
- package/dist/middleware/account/contracts.js +9 -0
- package/dist/middleware/account/contracts.js.map +1 -0
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts +5 -4
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +12 -2
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +8 -6
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +13 -10
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/middleware/liquidity-layer/contracts.d.ts +5 -8
- package/dist/middleware/liquidity-layer/contracts.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/contracts.js +2 -1
- package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +33 -30
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/query/InterchainQuery.d.ts +11 -0
- package/dist/middleware/query/InterchainQuery.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQuery.js +21 -0
- package/dist/middleware/query/InterchainQuery.js.map +1 -0
- package/dist/middleware/query/InterchainQueryChecker.d.ts +7 -0
- package/dist/middleware/query/InterchainQueryChecker.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQueryChecker.js +8 -0
- package/dist/middleware/query/InterchainQueryChecker.js.map +1 -0
- package/dist/middleware/query/InterchainQueryDeployer.d.ts +12 -0
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQueryDeployer.js +13 -0
- package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -0
- package/dist/middleware/query/contracts.d.ts +7 -0
- package/dist/middleware/query/contracts.d.ts.map +1 -0
- package/dist/middleware/query/contracts.js +9 -0
- package/dist/middleware/query/contracts.js.map +1 -0
- package/dist/middleware/query/queries.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/{queries.hardhat-test.js → query/queries.hardhat-test.js} +21 -12
- package/dist/middleware/query/queries.hardhat-test.js.map +1 -0
- package/dist/providers/MultiProvider.d.ts +13 -2
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +60 -33
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/router/GasRouterDeployer.d.ts +4 -4
- package/dist/router/GasRouterDeployer.d.ts.map +1 -1
- package/dist/router/GasRouterDeployer.js +1 -1
- package/dist/router/GasRouterDeployer.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts +3 -5
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +4 -8
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts +9 -6
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +13 -28
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/router/RouterApps.d.ts +6 -4
- package/dist/router/RouterApps.d.ts.map +1 -1
- package/dist/router/RouterApps.js +2 -2
- package/dist/router/RouterApps.js.map +1 -1
- package/dist/router/types.d.ts +4 -16
- package/dist/router/types.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.d.ts +18 -11
- package/dist/test/envSubsetDeployer/app.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.js +14 -15
- package/dist/test/envSubsetDeployer/app.js.map +1 -1
- package/dist/test/envSubsetDeployer/check-single-chain.js +6 -4
- package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy-single-chain.js +7 -5
- package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js +12 -13
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js.map +1 -1
- package/dist/test/testUtils.d.ts +10 -23
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +45 -60
- package/dist/test/testUtils.js.map +1 -1
- package/dist/utils/ism.d.ts +2 -0
- package/dist/utils/ism.d.ts.map +1 -0
- package/dist/utils/ism.js +18 -0
- package/dist/utils/ism.js.map +1 -0
- package/dist/utils/objects.d.ts +3 -1
- package/dist/utils/objects.d.ts.map +1 -1
- package/dist/utils/objects.js +35 -2
- package/dist/utils/objects.js.map +1 -1
- package/package.json +4 -4
- package/dist/deploy/utils.d.ts +0 -6
- package/dist/deploy/utils.d.ts.map +0 -1
- package/dist/deploy/utils.js +0 -13
- package/dist/deploy/utils.js.map +0 -1
- package/dist/gas/calculator.d.ts +0 -186
- package/dist/gas/calculator.d.ts.map +0 -1
- package/dist/gas/calculator.hardhat-test.d.ts +0 -2
- package/dist/gas/calculator.hardhat-test.d.ts.map +0 -1
- package/dist/gas/calculator.hardhat-test.js +0 -59
- package/dist/gas/calculator.hardhat-test.js.map +0 -1
- package/dist/gas/calculator.js +0 -301
- package/dist/gas/calculator.js.map +0 -1
- package/dist/gas/calculator.test.d.ts +0 -2
- package/dist/gas/calculator.test.d.ts.map +0 -1
- package/dist/gas/calculator.test.js +0 -197
- package/dist/gas/calculator.test.js.map +0 -1
- package/dist/middleware/accounts.hardhat-test.d.ts.map +0 -1
- package/dist/middleware/accounts.hardhat-test.js.map +0 -1
- package/dist/middleware/deploy.d.ts +0 -28
- package/dist/middleware/deploy.d.ts.map +0 -1
- package/dist/middleware/deploy.js +0 -68
- package/dist/middleware/deploy.js.map +0 -1
- package/dist/middleware/queries.hardhat-test.d.ts.map +0 -1
- package/dist/middleware/queries.hardhat-test.js.map +0 -1
- package/dist/proxy.d.ts +0 -21
- package/dist/proxy.d.ts.map +0 -1
- package/dist/proxy.js +0 -32
- package/dist/proxy.js.map +0 -1
- /package/dist/middleware/{accounts.hardhat-test.d.ts → account/accounts.hardhat-test.d.ts} +0 -0
- /package/dist/middleware/{queries.hardhat-test.d.ts → query/queries.hardhat-test.d.ts} +0 -0
|
@@ -8,24 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.HyperlaneCoreChecker = void 0;
|
|
16
13
|
const ethers_1 = require("ethers");
|
|
17
14
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
18
|
-
const
|
|
15
|
+
const bytecode_1 = require("../consts/bytecode");
|
|
19
16
|
const HyperlaneAppChecker_1 = require("../deploy/HyperlaneAppChecker");
|
|
17
|
+
const proxy_1 = require("../deploy/proxy");
|
|
20
18
|
const types_1 = require("./types");
|
|
21
|
-
const MAILBOX_WITHOUT_LOCAL_DOMAIN_BYTE_CODE_HASH = '0x29b7294ab3ad2e8587e5cce0e2289ce65e12a2ea2f1e7ab34a05e7737616f457';
|
|
22
|
-
const MAILBOX_WITHOUT_LOCAL_DOMAIN_NONZERO_PAUSE_BYTE_CODE_HASH = '0x4e73e34c0982b93eebb4ac4889e9e4e1611f7c24feacf016c3a13e389f146d9c';
|
|
23
|
-
const TRANSPARENT_PROXY_BYTECODE_HASH = '0x4dde3d0906b6492bf1d4947f667afe8d53c8899f1d8788cabafd082938dceb2d';
|
|
24
|
-
const MULTISIG_ISM_BYTECODE_HASH = '0x5565704ffa5b10fdf37d57abfddcf137101d5fb418ded21fa6c5f90262c57dc2';
|
|
25
|
-
const PROXY_ADMIN_BYTECODE_HASH = '0x7c378e9d49408861ca754fe684b9f7d1ea525bddf095ee0463902df701453ba0';
|
|
26
|
-
const INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH = '0xe995bcd732f4861606036357edb2a4d4c3e9b8d7e599fe548790ac1cf26888f8';
|
|
27
|
-
const OWNER_INITIALIZABLE_INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH = '0xd2c5b00ac2d058117491d581d63c3c4fcf6aeb2667c6cc0c7caed359c9eebea1';
|
|
28
|
-
const OVERHEAD_IGP_BYTECODE_HASH = '0x3cfed1f24f1e9b28a76d5a8c61696a04f7bc474404b823a2fcc210ea52346252';
|
|
29
19
|
class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
30
20
|
checkChain(chain) {
|
|
31
21
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -40,30 +30,20 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
40
30
|
yield this.checkMultisigIsm(chain);
|
|
41
31
|
yield this.checkBytecodes(chain);
|
|
42
32
|
yield this.checkValidatorAnnounce(chain);
|
|
43
|
-
yield this.checkDefaultIsmInterchainGasPaymaster(chain);
|
|
44
|
-
yield this.checkInterchainGasPaymaster(chain);
|
|
45
33
|
});
|
|
46
34
|
}
|
|
47
35
|
checkDomainOwnership(chain) {
|
|
48
36
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
37
|
const config = this.configMap[chain];
|
|
50
38
|
if (config.owner) {
|
|
51
|
-
|
|
52
|
-
const ownables = [
|
|
53
|
-
contracts.proxyAdmin,
|
|
54
|
-
contracts.mailbox.contract,
|
|
55
|
-
contracts.multisigIsm,
|
|
56
|
-
contracts.interchainGasPaymaster.contract,
|
|
57
|
-
contracts.defaultIsmInterchainGasPaymaster,
|
|
58
|
-
];
|
|
59
|
-
return this.checkOwnership(chain, config.owner, ownables);
|
|
39
|
+
return this.checkOwnership(chain, config.owner);
|
|
60
40
|
}
|
|
61
41
|
});
|
|
62
42
|
}
|
|
63
43
|
checkMailbox(chain) {
|
|
64
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
45
|
const contracts = this.app.getContracts(chain);
|
|
66
|
-
const mailbox = contracts.mailbox
|
|
46
|
+
const mailbox = contracts.mailbox;
|
|
67
47
|
const localDomain = yield mailbox.localDomain();
|
|
68
48
|
utils_1.utils.assert(localDomain === this.multiProvider.getDomainId(chain));
|
|
69
49
|
const actualIsm = yield mailbox.defaultIsm();
|
|
@@ -84,48 +64,34 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
84
64
|
checkBytecodes(chain) {
|
|
85
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86
66
|
const contracts = this.app.getContracts(chain);
|
|
87
|
-
const mailbox = contracts.mailbox
|
|
67
|
+
const mailbox = contracts.mailbox;
|
|
88
68
|
const localDomain = yield mailbox.localDomain();
|
|
89
|
-
yield this.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
69
|
+
const implementation = yield (0, proxy_1.proxyImplementation)(this.multiProvider.getProvider(chain), mailbox.address);
|
|
70
|
+
yield this.checkBytecode(chain, 'Mailbox implementation', implementation, [
|
|
71
|
+
bytecode_1.BytecodeHash.MAILBOX_WITHOUT_LOCAL_DOMAIN_BYTE_CODE_HASH,
|
|
72
|
+
bytecode_1.BytecodeHash.MAILBOX_WITHOUT_LOCAL_DOMAIN_NONZERO_PAUSE_BYTE_CODE_HASH,
|
|
73
|
+
], (bytecode) =>
|
|
93
74
|
// This is obviously super janky but basically we are searching
|
|
94
75
|
// for the ocurrences of localDomain in the bytecode and remove
|
|
95
76
|
// that to compare, but some coincidental ocurrences of
|
|
96
77
|
// localDomain in the bytecode should be not be removed which
|
|
97
78
|
// are just done via an offset guard
|
|
98
|
-
|
|
79
|
+
bytecode.replaceAll(ethers_1.utils.defaultAbiCoder
|
|
99
80
|
.encode(['uint32'], [localDomain])
|
|
100
81
|
.slice(2), (match, offset) => (offset > 8000 ? match : '')));
|
|
101
|
-
yield this.checkBytecode(chain, 'Mailbox proxy', contracts.mailbox.address, [TRANSPARENT_PROXY_BYTECODE_HASH]);
|
|
102
|
-
yield this.checkBytecode(chain, '
|
|
103
|
-
yield this.checkBytecode(chain, '
|
|
104
|
-
yield this.checkBytecode(chain, 'MultisigIsm implementation', contracts.multisigIsm.address, [MULTISIG_ISM_BYTECODE_HASH]);
|
|
105
|
-
yield this.checkBytecode(chain, 'InterchainGasPaymaster implementation', contracts.interchainGasPaymaster.addresses.implementation, [
|
|
106
|
-
INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH,
|
|
107
|
-
OWNER_INITIALIZABLE_INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH,
|
|
108
|
-
]);
|
|
109
|
-
yield this.checkBytecode(chain, 'OverheadIGP', contracts.defaultIsmInterchainGasPaymaster.address, [OVERHEAD_IGP_BYTECODE_HASH], (_) =>
|
|
110
|
-
// Remove the address of the wrapped ISM from the bytecode
|
|
111
|
-
_.replaceAll(ethers_1.utils.defaultAbiCoder
|
|
112
|
-
.encode(['address'], [contracts.interchainGasPaymaster.addresses.proxy])
|
|
113
|
-
.slice(2), ''));
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
checkProxiedContracts(chain) {
|
|
117
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
118
|
-
const contracts = this.app.getContracts(chain);
|
|
119
|
-
yield this.checkProxiedContract(chain, 'Mailbox', contracts.mailbox.addresses, contracts.proxyAdmin.address);
|
|
120
|
-
yield this.checkProxiedContract(chain, 'InterchainGasPaymaster', contracts.interchainGasPaymaster.addresses, contracts.proxyAdmin.address);
|
|
82
|
+
yield this.checkBytecode(chain, 'Mailbox proxy', contracts.mailbox.address, [bytecode_1.BytecodeHash.TRANSPARENT_PROXY_BYTECODE_HASH]);
|
|
83
|
+
yield this.checkBytecode(chain, 'ProxyAdmin', contracts.proxyAdmin.address, [bytecode_1.BytecodeHash.PROXY_ADMIN_BYTECODE_HASH]);
|
|
84
|
+
yield this.checkBytecode(chain, 'MultisigIsm implementation', contracts.multisigIsm.address, [bytecode_1.BytecodeHash.MULTISIG_ISM_BYTECODE_HASH]);
|
|
121
85
|
});
|
|
122
86
|
}
|
|
123
87
|
checkValidatorAnnounce(chain) {
|
|
124
88
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
|
-
const expectedValidators =
|
|
89
|
+
const expectedValidators = new Set();
|
|
90
|
+
const remotes = Object.keys(this.configMap).filter((c) => c !== chain);
|
|
91
|
+
remotes.forEach((remote) => this.configMap[remote].multisigIsm[chain].validators.forEach(expectedValidators.add, expectedValidators));
|
|
126
92
|
const validatorAnnounce = this.app.getContracts(chain).validatorAnnounce;
|
|
127
93
|
const announcedValidators = yield validatorAnnounce.getAnnouncedValidators();
|
|
128
|
-
expectedValidators.
|
|
94
|
+
[...expectedValidators].forEach((validator) => {
|
|
129
95
|
const matches = announcedValidators.filter((x) => utils_1.utils.eqAddress(x, validator));
|
|
130
96
|
if (matches.length == 0) {
|
|
131
97
|
const violation = {
|
|
@@ -151,9 +117,9 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
151
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
152
118
|
const coreContracts = this.app.getContracts(local);
|
|
153
119
|
const multisigIsm = coreContracts.multisigIsm;
|
|
154
|
-
const config = this.configMap[
|
|
120
|
+
const config = this.configMap[local];
|
|
155
121
|
const remoteDomain = this.multiProvider.getDomainId(remote);
|
|
156
|
-
const multisigIsmConfig = config.multisigIsm;
|
|
122
|
+
const multisigIsmConfig = config.multisigIsm[remote];
|
|
157
123
|
const expectedValidators = multisigIsmConfig.validators;
|
|
158
124
|
const actualValidators = yield multisigIsm.validators(remoteDomain);
|
|
159
125
|
const expectedSet = new Set(expectedValidators.map((_) => _.toLowerCase()));
|
|
@@ -187,107 +153,6 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
187
153
|
}
|
|
188
154
|
});
|
|
189
155
|
}
|
|
190
|
-
checkDefaultIsmInterchainGasPaymaster(local) {
|
|
191
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
192
|
-
const coreContracts = this.app.getContracts(local);
|
|
193
|
-
const defaultIsmIgp = coreContracts.defaultIsmInterchainGasPaymaster;
|
|
194
|
-
// Construct the violation, updating the actual & expected
|
|
195
|
-
// objects as violations are found.
|
|
196
|
-
// A single violation is used so that only a single `setDestinationGasOverheads`
|
|
197
|
-
// call is generated to set multiple gas overheads.
|
|
198
|
-
const gasOverheadViolation = {
|
|
199
|
-
type: types_1.CoreViolationType.DefaultIsmInterchainGasPaymaster,
|
|
200
|
-
subType: types_1.DefaultIsmIgpViolationType.DestinationGasOverheads,
|
|
201
|
-
contract: defaultIsmIgp,
|
|
202
|
-
chain: local,
|
|
203
|
-
actual: {},
|
|
204
|
-
expected: {},
|
|
205
|
-
};
|
|
206
|
-
const remotes = this.app.remoteChains(local);
|
|
207
|
-
for (const remote of remotes) {
|
|
208
|
-
const { validators, threshold } = this.configMap[remote].multisigIsm;
|
|
209
|
-
const expectedOverhead = this.getExpectedOverheadGas(threshold, validators.length);
|
|
210
|
-
const remoteId = this.multiProvider.getDomainId(remote);
|
|
211
|
-
const existingOverhead = yield defaultIsmIgp.destinationGasOverhead(remoteId);
|
|
212
|
-
if (!expectedOverhead.eq(existingOverhead)) {
|
|
213
|
-
const remoteChain = remote;
|
|
214
|
-
gasOverheadViolation.actual[remoteChain] = existingOverhead;
|
|
215
|
-
gasOverheadViolation.expected[remoteChain] = expectedOverhead;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (Object.keys(gasOverheadViolation.actual).length > 0) {
|
|
219
|
-
this.addViolation(gasOverheadViolation);
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
checkInterchainGasPaymaster(local) {
|
|
224
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
225
|
-
const coreContracts = this.app.getContracts(local);
|
|
226
|
-
const igp = coreContracts.interchainGasPaymaster.contract;
|
|
227
|
-
// Construct the violation, updating the actual & expected
|
|
228
|
-
// objects as violations are found.
|
|
229
|
-
// A single violation is used so that only a single `setGasOracles`
|
|
230
|
-
// call is generated to set multiple gas oracles.
|
|
231
|
-
const gasOraclesViolation = {
|
|
232
|
-
type: types_1.CoreViolationType.InterchainGasPaymaster,
|
|
233
|
-
subType: types_1.IgpViolationType.GasOracles,
|
|
234
|
-
contract: igp,
|
|
235
|
-
chain: local,
|
|
236
|
-
actual: {},
|
|
237
|
-
expected: {},
|
|
238
|
-
};
|
|
239
|
-
const remotes = this.app.remoteChains(local);
|
|
240
|
-
for (const remote of remotes) {
|
|
241
|
-
const remoteId = this.multiProvider.getDomainId(remote);
|
|
242
|
-
const actualGasOracle = yield igp.gasOracles(remoteId);
|
|
243
|
-
const expectedGasOracle = this.getGasOracleAddress(local, remote);
|
|
244
|
-
if (!utils_1.utils.eqAddress(actualGasOracle, expectedGasOracle)) {
|
|
245
|
-
const remoteChain = remote;
|
|
246
|
-
gasOraclesViolation.actual[remoteChain] = actualGasOracle;
|
|
247
|
-
gasOraclesViolation.expected[remoteChain] = expectedGasOracle;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
// Add the violation only if it's been populated with gas oracle inconsistencies
|
|
251
|
-
if (Object.keys(gasOraclesViolation.actual).length > 0) {
|
|
252
|
-
this.addViolation(gasOraclesViolation);
|
|
253
|
-
}
|
|
254
|
-
const actualBeneficiary = yield igp.beneficiary();
|
|
255
|
-
const expectedBeneficiary = this.configMap[local].igp.beneficiary;
|
|
256
|
-
if (!utils_1.utils.eqAddress(actualBeneficiary, expectedBeneficiary)) {
|
|
257
|
-
const violation = {
|
|
258
|
-
type: types_1.CoreViolationType.InterchainGasPaymaster,
|
|
259
|
-
subType: types_1.IgpViolationType.Beneficiary,
|
|
260
|
-
contract: igp,
|
|
261
|
-
chain: local,
|
|
262
|
-
actual: actualBeneficiary,
|
|
263
|
-
expected: expectedBeneficiary,
|
|
264
|
-
};
|
|
265
|
-
this.addViolation(violation);
|
|
266
|
-
}
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
getGasOracleAddress(local, remote) {
|
|
270
|
-
const config = this.configMap[local];
|
|
271
|
-
const gasOracleType = config.igp.gasOracles[remote];
|
|
272
|
-
if (!gasOracleType) {
|
|
273
|
-
throw Error(`Expected gas oracle type for local ${local} and remote ${remote}`);
|
|
274
|
-
}
|
|
275
|
-
const coreContracts = this.app.getContracts(local);
|
|
276
|
-
switch (gasOracleType) {
|
|
277
|
-
case types_1.GasOracleContractType.StorageGasOracle:
|
|
278
|
-
return coreContracts.storageGasOracle.address;
|
|
279
|
-
default:
|
|
280
|
-
throw Error(`Unsupported gas oracle type ${gasOracleType}`);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
getExpectedOverheadGas(threshold, validatorSetCount) {
|
|
284
|
-
const expectedOverhead =
|
|
285
|
-
// @ts-ignore
|
|
286
|
-
multisigIsmVerifyCosts_json_1.default[`${validatorSetCount}`][`${threshold}`];
|
|
287
|
-
if (!expectedOverhead)
|
|
288
|
-
throw new Error(`Unknown verification cost for ${threshold} of ${validatorSetCount}`);
|
|
289
|
-
return ethers_1.BigNumber.from(expectedOverhead);
|
|
290
|
-
}
|
|
291
156
|
}
|
|
292
157
|
exports.HyperlaneCoreChecker = HyperlaneCoreChecker;
|
|
293
158
|
//# sourceMappingURL=HyperlaneCoreChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreChecker.js","sourceRoot":"","sources":["../../src/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreChecker.js","sourceRoot":"","sources":["../../src/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { InterchainGasPaymaster, Mailbox, MultisigIsm, OverheadIgp, Ownable, ProxyAdmin, StorageGasOracle, ValidatorAnnounce } from '@hyperlane-xyz/core';
|
|
1
|
+
import { LegacyMultisigIsm, Mailbox, ValidatorAnnounce } from '@hyperlane-xyz/core';
|
|
3
2
|
import { types } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { HyperlaneContracts } from '../contracts';
|
|
4
4
|
import { DeployOptions, HyperlaneDeployer } from '../deploy/HyperlaneDeployer';
|
|
5
5
|
import { MultiProvider } from '../providers/MultiProvider';
|
|
6
|
-
import { ProxiedContract, TransparentProxyAddresses } from '../proxy';
|
|
7
6
|
import { ChainMap, ChainName } from '../types';
|
|
8
|
-
import {
|
|
7
|
+
import { CoreFactories } from './contracts';
|
|
9
8
|
import { CoreConfig } from './types';
|
|
10
|
-
export declare class HyperlaneCoreDeployer extends HyperlaneDeployer<CoreConfig,
|
|
9
|
+
export declare class HyperlaneCoreDeployer extends HyperlaneDeployer<CoreConfig, CoreFactories> {
|
|
11
10
|
startingBlockNumbers: ChainMap<number | undefined>;
|
|
12
|
-
gasOverhead: ChainMap<OverheadIgp.DomainConfigStruct>;
|
|
13
11
|
constructor(multiProvider: MultiProvider, configMap: ChainMap<CoreConfig>, factoriesOverride?: {
|
|
14
|
-
interchainAccountRouter: import("@hyperlane-xyz/core").InterchainAccountRouter__factory;
|
|
15
|
-
interchainQueryRouter: import("@hyperlane-xyz/core").InterchainQueryRouter__factory;
|
|
16
12
|
validatorAnnounce: import("@hyperlane-xyz/core").ValidatorAnnounce__factory;
|
|
17
|
-
create2Factory: import("@hyperlane-xyz/core").Create2Factory__factory;
|
|
18
13
|
proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
|
|
19
|
-
|
|
20
|
-
defaultIsmInterchainGasPaymaster: import("@hyperlane-xyz/core").OverheadIgp__factory;
|
|
21
|
-
storageGasOracle: import("@hyperlane-xyz/core").StorageGasOracle__factory;
|
|
22
|
-
multisigIsm: import("@hyperlane-xyz/core").MultisigIsm__factory;
|
|
14
|
+
multisigIsm: import("@hyperlane-xyz/core").LegacyMultisigIsm__factory;
|
|
23
15
|
mailbox: import("@hyperlane-xyz/core").Mailbox__factory;
|
|
24
16
|
});
|
|
25
|
-
|
|
26
|
-
deployDefaultIsmInterchainGasPaymaster(chain: ChainName, interchainGasPaymasterAddress: types.Address, deployOpts?: DeployOptions): Promise<OverheadIgp>;
|
|
27
|
-
deployGasOracleContracts(chain: ChainName, deployOpts?: DeployOptions): Promise<GasOracleContracts>;
|
|
28
|
-
deployStorageGasOracle(chain: ChainName, deployOpts?: DeployOptions): Promise<StorageGasOracle>;
|
|
29
|
-
deployMailbox(chain: ChainName, defaultIsmAddress: types.Address, proxyAdmin: ProxyAdmin, deployOpts?: DeployOptions): Promise<ProxiedContract<Mailbox, TransparentProxyAddresses>>;
|
|
17
|
+
deployMailbox(chain: ChainName, defaultIsmAddress: types.Address, proxyAdmin: types.Address, deployOpts?: DeployOptions): Promise<Mailbox>;
|
|
30
18
|
deployValidatorAnnounce(chain: ChainName, mailboxAddress: string, deployOpts?: DeployOptions): Promise<ValidatorAnnounce>;
|
|
31
|
-
|
|
32
|
-
deployContracts(chain: ChainName, config: CoreConfig): Promise<
|
|
33
|
-
transferOwnershipOfContracts(chain: ChainName, ownables: Ownable[]): Promise<ethers.ContractReceipt[]>;
|
|
34
|
-
private getGasOracleAddress;
|
|
19
|
+
deployLegacyMultisigIsm(chain: ChainName): Promise<LegacyMultisigIsm>;
|
|
20
|
+
deployContracts(chain: ChainName, config: CoreConfig): Promise<HyperlaneContracts<CoreFactories>>;
|
|
35
21
|
}
|
|
36
22
|
//# sourceMappingURL=HyperlaneCoreDeployer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreDeployer.d.ts","sourceRoot":"","sources":["../../src/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreDeployer.d.ts","sourceRoot":"","sources":["../../src/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,OAAO,EAEP,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,qBAAsB,SAAQ,iBAAiB,CAC1D,UAAU,EACV,aAAa,CACd;IACC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;gBAGjD,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC/B,iBAAiB;;;;;KAAgB;IAQ7B,aAAa,CACjB,KAAK,EAAE,SAAS,EAChB,iBAAiB,EAAE,KAAK,CAAC,OAAO,EAChC,UAAU,EAAE,KAAK,CAAC,OAAO,EACzB,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,OAAO,CAAC;IAeb,uBAAuB,CAC3B,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,iBAAiB,CAAC;IAUvB,uBAAuB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkErE,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;CAiC9C"}
|
|
@@ -15,105 +15,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.HyperlaneCoreDeployer = void 0;
|
|
16
16
|
const debug_1 = __importDefault(require("debug"));
|
|
17
17
|
const ethers_1 = require("ethers");
|
|
18
|
-
const core_1 = require("@hyperlane-xyz/core");
|
|
19
|
-
const utils_1 = require("@hyperlane-xyz/utils");
|
|
20
|
-
const multisigIsmVerifyCosts_json_1 = __importDefault(require("../consts/multisigIsmVerifyCosts.json"));
|
|
21
18
|
const HyperlaneDeployer_1 = require("../deploy/HyperlaneDeployer");
|
|
22
19
|
const objects_1 = require("../utils/objects");
|
|
23
20
|
const contracts_1 = require("./contracts");
|
|
24
|
-
const types_1 = require("./types");
|
|
25
21
|
class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
26
22
|
constructor(multiProvider, configMap, factoriesOverride = contracts_1.coreFactories) {
|
|
27
23
|
super(multiProvider, configMap, factoriesOverride, {
|
|
28
24
|
logger: (0, debug_1.default)('hyperlane:CoreDeployer'),
|
|
29
25
|
});
|
|
30
|
-
this.gasOverhead = (0, objects_1.objMap)(configMap, (chain, config) => {
|
|
31
|
-
const { validators, threshold } = config.multisigIsm;
|
|
32
|
-
const verifyCost =
|
|
33
|
-
// @ts-ignore
|
|
34
|
-
multisigIsmVerifyCosts_json_1.default[`${validators.length}`][`${threshold}`];
|
|
35
|
-
if (!verifyCost)
|
|
36
|
-
throw new Error(`Unknown verification cost for ${threshold} of ${validators.length}`);
|
|
37
|
-
return {
|
|
38
|
-
domain: multiProvider.getDomainId(chain),
|
|
39
|
-
gasOverhead: verifyCost,
|
|
40
|
-
};
|
|
41
|
-
});
|
|
42
26
|
this.startingBlockNumbers = (0, objects_1.objMap)(configMap, () => undefined);
|
|
43
27
|
}
|
|
44
|
-
deployInterchainGasPaymaster(chain, proxyAdmin, gasOracleContracts, deployOpts) {
|
|
45
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
const owner = this.configMap[chain].owner;
|
|
47
|
-
const beneficiary = this.configMap[chain].igp.beneficiary;
|
|
48
|
-
const igp = yield this.deployProxiedContract(chain, 'interchainGasPaymaster', [beneficiary], proxyAdmin, [owner, beneficiary], deployOpts);
|
|
49
|
-
// Set the gas oracles
|
|
50
|
-
const configChains = Object.keys(this.configMap);
|
|
51
|
-
const remotes = this.multiProvider
|
|
52
|
-
.intersect(configChains, false)
|
|
53
|
-
.multiProvider.getRemoteChains(chain);
|
|
54
|
-
const gasOracleConfigsToSet = [];
|
|
55
|
-
for (const remote of remotes) {
|
|
56
|
-
const remoteId = this.multiProvider.getDomainId(remote);
|
|
57
|
-
const currentGasOracle = yield igp.contract.gasOracles(remoteId);
|
|
58
|
-
const desiredGasOracle = this.getGasOracleAddress(chain, remote, gasOracleContracts);
|
|
59
|
-
if (!utils_1.utils.eqAddress(currentGasOracle, desiredGasOracle)) {
|
|
60
|
-
gasOracleConfigsToSet.push({
|
|
61
|
-
remoteDomain: remoteId,
|
|
62
|
-
gasOracle: desiredGasOracle,
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (gasOracleConfigsToSet.length > 0) {
|
|
67
|
-
yield this.runIfOwner(chain, igp.contract, () => __awaiter(this, void 0, void 0, function* () {
|
|
68
|
-
return this.multiProvider.handleTx(chain, igp.contract.setGasOracles(gasOracleConfigsToSet));
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
return igp;
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
deployDefaultIsmInterchainGasPaymaster(chain, interchainGasPaymasterAddress, deployOpts) {
|
|
75
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
const deployer = yield this.multiProvider.getSignerAddress(chain);
|
|
77
|
-
// Transfer ownership to the deployer so the destination gas overheads can be set
|
|
78
|
-
const initCalldata = core_1.Ownable__factory.createInterface().encodeFunctionData('transferOwnership', [deployer]);
|
|
79
|
-
const defaultIsmInterchainGasPaymaster = yield this.deployContract(chain, 'defaultIsmInterchainGasPaymaster', [interchainGasPaymasterAddress], Object.assign(Object.assign({}, deployOpts), { initCalldata }));
|
|
80
|
-
const configChains = Object.keys(this.configMap);
|
|
81
|
-
const remotes = this.multiProvider
|
|
82
|
-
.intersect(configChains, false)
|
|
83
|
-
.multiProvider.getRemoteChains(chain);
|
|
84
|
-
// Only set gas overhead configs if they differ from what's on chain
|
|
85
|
-
const configs = [];
|
|
86
|
-
for (const remote of remotes) {
|
|
87
|
-
const gasOverhead = this.gasOverhead[remote];
|
|
88
|
-
const existingOverhead = yield defaultIsmInterchainGasPaymaster.destinationGasOverhead(gasOverhead.domain);
|
|
89
|
-
if (!existingOverhead.eq(gasOverhead.gasOverhead)) {
|
|
90
|
-
configs.push(gasOverhead);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if (configs.length > 0) {
|
|
94
|
-
yield this.runIfOwner(chain, defaultIsmInterchainGasPaymaster, () => this.multiProvider.handleTx(chain, defaultIsmInterchainGasPaymaster.setDestinationGasOverheads(configs, this.multiProvider.getTransactionOverrides(chain))));
|
|
95
|
-
}
|
|
96
|
-
return defaultIsmInterchainGasPaymaster;
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
deployGasOracleContracts(chain, deployOpts) {
|
|
100
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
const storageGasOracle = yield this.deployStorageGasOracle(chain, deployOpts);
|
|
102
|
-
return {
|
|
103
|
-
storageGasOracle,
|
|
104
|
-
};
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
deployStorageGasOracle(chain, deployOpts) {
|
|
108
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
-
return this.deployContract(chain, 'storageGasOracle', [], deployOpts);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
28
|
deployMailbox(chain, defaultIsmAddress, proxyAdmin, deployOpts) {
|
|
113
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
114
30
|
const domain = this.multiProvider.getDomainId(chain);
|
|
115
31
|
const owner = this.configMap[chain].owner;
|
|
116
|
-
const mailbox = yield this.deployProxiedContract(chain, 'mailbox', [domain],
|
|
32
|
+
const mailbox = yield this.deployProxiedContract(chain, 'mailbox', [domain], [owner, defaultIsmAddress], proxyAdmin, deployOpts);
|
|
117
33
|
return mailbox;
|
|
118
34
|
});
|
|
119
35
|
}
|
|
@@ -123,22 +39,19 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
123
39
|
return validatorAnnounce;
|
|
124
40
|
});
|
|
125
41
|
}
|
|
126
|
-
|
|
42
|
+
deployLegacyMultisigIsm(chain) {
|
|
127
43
|
const _super = Object.create(null, {
|
|
128
44
|
runIfOwner: { get: () => super.runIfOwner }
|
|
129
45
|
});
|
|
130
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
131
47
|
const multisigIsm = yield this.deployContract(chain, 'multisigIsm', []);
|
|
132
|
-
const
|
|
133
|
-
const remotes = this.multiProvider
|
|
134
|
-
.intersect(configChains, false)
|
|
135
|
-
.multiProvider.getRemoteChains(chain);
|
|
48
|
+
const remotes = Object.keys(this.configMap[chain].multisigIsm);
|
|
136
49
|
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
137
50
|
yield _super.runIfOwner.call(this, chain, multisigIsm, () => __awaiter(this, void 0, void 0, function* () {
|
|
138
51
|
// TODO: Remove extraneous validators
|
|
139
52
|
const remoteDomains = this.multiProvider.getDomainIds(remotes);
|
|
140
53
|
const actualValidators = yield Promise.all(remoteDomains.map((id) => multisigIsm.validators(id)));
|
|
141
|
-
const expectedValidators = remotes.map((
|
|
54
|
+
const expectedValidators = remotes.map((remote) => this.configMap[chain].multisigIsm[remote].validators);
|
|
142
55
|
const validatorsToEnroll = expectedValidators.map((validators, i) => validators.filter((validator) => !actualValidators[i].includes(ethers_1.ethers.utils.getAddress(validator))));
|
|
143
56
|
const chainsToEnrollValidators = remotes.filter((_, i) => validatorsToEnroll[i].length > 0);
|
|
144
57
|
if (chainsToEnrollValidators.length > 0) {
|
|
@@ -146,11 +59,11 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
146
59
|
yield this.multiProvider.handleTx(chain, multisigIsm.enrollValidators(chainsToEnrollValidators.map((c) => this.multiProvider.getDomainId(c)), validatorsToEnroll.filter((validators) => validators.length > 0), overrides));
|
|
147
60
|
}
|
|
148
61
|
const actualThresholds = yield Promise.all(remoteDomains.map((id) => multisigIsm.threshold(id)));
|
|
149
|
-
const expectedThresholds = remotes.map((
|
|
62
|
+
const expectedThresholds = remotes.map((remote) => this.configMap[chain].multisigIsm[remote].threshold);
|
|
150
63
|
const chainsToSetThreshold = remotes.filter((_, i) => actualThresholds[i] !== expectedThresholds[i]);
|
|
151
64
|
if (chainsToSetThreshold.length > 0) {
|
|
152
65
|
this.logger(`Set remote (${chainsToSetThreshold}) thresholds on ${chain}`);
|
|
153
|
-
yield this.multiProvider.handleTx(chain, multisigIsm.setThresholds(chainsToSetThreshold.map((c) => this.multiProvider.getDomainId(c)), chainsToSetThreshold.map((
|
|
66
|
+
yield this.multiProvider.handleTx(chain, multisigIsm.setThresholds(chainsToSetThreshold.map((c) => this.multiProvider.getDomainId(c)), chainsToSetThreshold.map((remote) => this.configMap[chain].multisigIsm[remote].threshold), overrides));
|
|
154
67
|
}
|
|
155
68
|
}));
|
|
156
69
|
return multisigIsm;
|
|
@@ -165,61 +78,21 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
165
78
|
const provider = this.multiProvider.getProvider(chain);
|
|
166
79
|
const startingBlockNumber = yield provider.getBlockNumber();
|
|
167
80
|
this.startingBlockNumbers[chain] = startingBlockNumber;
|
|
168
|
-
const multisigIsm = yield this.
|
|
81
|
+
const multisigIsm = yield this.deployLegacyMultisigIsm(chain);
|
|
169
82
|
const proxyAdmin = yield this.deployContract(chain, 'proxyAdmin', []);
|
|
170
|
-
const
|
|
171
|
-
const interchainGasPaymaster = yield this.deployInterchainGasPaymaster(chain, proxyAdmin, gasOracleContracts);
|
|
172
|
-
const defaultIsmInterchainGasPaymaster = yield this.deployDefaultIsmInterchainGasPaymaster(chain, interchainGasPaymaster.address);
|
|
173
|
-
const mailbox = yield this.deployMailbox(chain, multisigIsm.address, proxyAdmin);
|
|
83
|
+
const mailbox = yield this.deployMailbox(chain, multisigIsm.address, proxyAdmin.address);
|
|
174
84
|
const validatorAnnounce = yield this.deployValidatorAnnounce(chain, mailbox.address);
|
|
175
85
|
// Ownership of the Mailbox and the interchainGasPaymaster is transferred upon initialization.
|
|
176
|
-
const ownables = [
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
];
|
|
181
|
-
yield this.transferOwnershipOfContracts(chain, ownables);
|
|
182
|
-
return Object.assign(Object.assign({}, gasOracleContracts), { validatorAnnounce,
|
|
86
|
+
const ownables = [multisigIsm, proxyAdmin];
|
|
87
|
+
yield this.transferOwnershipOfContracts(chain, config.owner, ownables);
|
|
88
|
+
return {
|
|
89
|
+
validatorAnnounce,
|
|
183
90
|
proxyAdmin,
|
|
184
91
|
mailbox,
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
multisigIsm });
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
transferOwnershipOfContracts(chain, ownables) {
|
|
191
|
-
const _super = Object.create(null, {
|
|
192
|
-
runIfOwner: { get: () => super.runIfOwner }
|
|
193
|
-
});
|
|
194
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
195
|
-
const owner = this.configMap[chain].owner;
|
|
196
|
-
const receipts = [];
|
|
197
|
-
for (const ownable of ownables) {
|
|
198
|
-
const currentOwner = yield ownable.owner();
|
|
199
|
-
if (currentOwner.toLowerCase() !== owner.toLowerCase()) {
|
|
200
|
-
const receipt = yield _super.runIfOwner.call(this, chain, ownable, () => this.multiProvider.handleTx(chain, ownable.transferOwnership(owner, this.multiProvider.getTransactionOverrides(chain))));
|
|
201
|
-
if (receipt)
|
|
202
|
-
receipts.push(receipt);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
return receipts.filter((x) => x !== undefined);
|
|
92
|
+
multisigIsm,
|
|
93
|
+
};
|
|
206
94
|
});
|
|
207
95
|
}
|
|
208
|
-
getGasOracleAddress(local, remote, gasOracleContracts) {
|
|
209
|
-
const localConfig = this.configMap[local];
|
|
210
|
-
const gasOracleType = localConfig.igp.gasOracles[remote];
|
|
211
|
-
if (!gasOracleType) {
|
|
212
|
-
throw Error(`Expected gas oracle type for local ${local} and remote ${remote}`);
|
|
213
|
-
}
|
|
214
|
-
switch (gasOracleType) {
|
|
215
|
-
case types_1.GasOracleContractType.StorageGasOracle: {
|
|
216
|
-
return gasOracleContracts.storageGasOracle.address;
|
|
217
|
-
}
|
|
218
|
-
default: {
|
|
219
|
-
throw Error(`Unsupported gas oracle type ${gasOracleType}`);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
96
|
}
|
|
224
97
|
exports.HyperlaneCoreDeployer = HyperlaneCoreDeployer;
|
|
225
98
|
//# sourceMappingURL=HyperlaneCoreDeployer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../src/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mCAAgC;
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../src/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { TestMailbox__factory } from '@hyperlane-xyz/core';
|
|
3
|
+
import { HyperlaneContracts } from '../contracts';
|
|
4
4
|
import { ChainName } from '../types';
|
|
5
5
|
import { HyperlaneCore } from './HyperlaneCore';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
12
|
-
export declare type TestCoreContracts = CoreContracts & {
|
|
13
|
-
mailbox: ProxiedContract<TestMailbox, MockProxyAddresses>;
|
|
6
|
+
export declare const testCoreFactories: {
|
|
7
|
+
mailbox: TestMailbox__factory;
|
|
8
|
+
validatorAnnounce: import("@hyperlane-xyz/core").ValidatorAnnounce__factory;
|
|
9
|
+
proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
|
|
10
|
+
multisigIsm: import("@hyperlane-xyz/core").LegacyMultisigIsm__factory;
|
|
14
11
|
};
|
|
15
12
|
export declare class TestCoreApp extends HyperlaneCore {
|
|
16
|
-
getContracts(chain: ChainName):
|
|
13
|
+
getContracts(chain: ChainName): HyperlaneContracts<typeof testCoreFactories>;
|
|
17
14
|
processMessages(): Promise<Map<ChainName, Map<ChainName, ethers.providers.TransactionResponse[]>>>;
|
|
18
15
|
processOutboundMessages(origin: ChainName): Promise<Map<ChainName, ethers.providers.TransactionResponse[]>>;
|
|
19
16
|
}
|
|
20
|
-
export {};
|
|
21
17
|
//# sourceMappingURL=TestCoreApp.d.ts.map
|