@hyperlane-xyz/sdk 1.4.3-beta0 → 1.4.3-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/HyperlaneApp.d.ts.map +1 -1
- package/dist/HyperlaneApp.js +2 -2
- package/dist/HyperlaneApp.js.map +1 -1
- package/dist/consts/bytecode.js +1 -1
- package/dist/consts/bytecode.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +2 -1
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +26 -25
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +1 -1
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +2 -2
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +2 -2
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js +2 -2
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/contracts.d.ts +7 -7
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +33 -22
- package/dist/contracts.js.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.js +42 -33
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/HyperlaneCore.d.ts +3 -3
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +28 -15
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCore.test.js +13 -4
- package/dist/core/HyperlaneCore.test.js.map +1 -1
- package/dist/core/HyperlaneCoreChecker.js +99 -80
- package/dist/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts +3 -3
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +62 -45
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/TestCoreApp.js +45 -35
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.js +27 -14
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/contracts.d.ts +1 -1
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/events.d.ts +1 -1
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +33 -24
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/core/types.d.ts +5 -5
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +2 -2
- package/dist/core/types.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 +126 -103
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +3 -3
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +216 -176
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/proxy.d.ts +7 -7
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +27 -12
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/types.js +1 -1
- package/dist/deploy/types.js.map +1 -1
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +131 -123
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/deploy/verify/types.d.ts +3 -3
- package/dist/deploy/verify/types.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgp.d.ts +2 -2
- package/dist/gas/HyperlaneIgp.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgp.js.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.d.ts +2 -2
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.js +123 -101
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.d.ts +2 -2
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.js +89 -70
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
- package/dist/gas/contracts.d.ts +1 -1
- package/dist/gas/contracts.d.ts.map +1 -1
- package/dist/gas/contracts.js +1 -6
- package/dist/gas/contracts.js.map +1 -1
- package/dist/gas/token-prices.d.ts +6 -6
- package/dist/gas/token-prices.d.ts.map +1 -1
- package/dist/gas/token-prices.js +54 -37
- package/dist/gas/token-prices.js.map +1 -1
- package/dist/gas/token-prices.test.js +20 -11
- package/dist/gas/token-prices.test.js.map +1 -1
- package/dist/gas/types.d.ts +10 -10
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gas/types.js +2 -2
- package/dist/gas/types.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts +4 -4
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +89 -70
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/hook/contracts.d.ts +4 -4
- package/dist/hook/contracts.d.ts.map +1 -1
- package/dist/hook/contracts.js +1 -5
- package/dist/hook/contracts.js.map +1 -1
- package/dist/hook/types.d.ts +7 -7
- package/dist/hook/types.d.ts.map +1 -1
- package/dist/hook/types.js +1 -1
- package/dist/hook/types.js.map +1 -1
- package/dist/index.d.ts +4 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -25
- package/dist/index.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +3 -3
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +23 -14
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +254 -232
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactoryDeployer.js +35 -19
- package/dist/ism/HyperlaneIsmFactoryDeployer.js.map +1 -1
- package/dist/ism/contracts.d.ts +1 -1
- package/dist/ism/contracts.d.ts.map +1 -1
- package/dist/ism/types.d.ts +8 -8
- package/dist/ism/types.d.ts.map +1 -1
- package/dist/ism/types.js +1 -1
- package/dist/ism/types.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +5 -5
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/agentConfig.js +6 -15
- package/dist/metadata/agentConfig.js.map +1 -1
- package/dist/metadata/chainMetadata.test.js +11 -28
- package/dist/metadata/chainMetadata.test.js.map +1 -1
- package/dist/metadata/chainMetadataTypes.d.ts +3 -12
- package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
- package/dist/metadata/chainMetadataTypes.js +6 -14
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/metadata/deploymentArtifacts.d.ts +5 -5
- package/dist/metadata/deploymentArtifacts.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountChecker.js +3 -6
- package/dist/middleware/account/InterchainAccountChecker.js.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.js +41 -28
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
- package/dist/middleware/account/accounts.hardhat-test.js +30 -21
- package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
- package/dist/middleware/account/contracts.d.ts +1 -1
- package/dist/middleware/account/contracts.d.ts.map +1 -1
- package/dist/middleware/account/contracts.js +1 -5
- package/dist/middleware/account/contracts.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +151 -129
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +4 -4
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +110 -86
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/middleware/liquidity-layer/contracts.d.ts +1 -1
- package/dist/middleware/liquidity-layer/contracts.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/contracts.js +1 -6
- package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +47 -43
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.d.ts +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.js +27 -13
- package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
- package/dist/middleware/query/contracts.d.ts +1 -1
- package/dist/middleware/query/contracts.d.ts.map +1 -1
- package/dist/middleware/query/contracts.js +1 -4
- package/dist/middleware/query/contracts.js.map +1 -1
- package/dist/middleware/query/queries.hardhat-test.js +33 -24
- package/dist/middleware/query/queries.hardhat-test.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +4 -4
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +88 -68
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/RetryProvider.d.ts +1 -1
- package/dist/providers/RetryProvider.d.ts.map +1 -1
- package/dist/providers/RetryProvider.js +18 -4
- package/dist/providers/RetryProvider.js.map +1 -1
- package/dist/router/GasRouterDeployer.d.ts +2 -2
- package/dist/router/GasRouterDeployer.d.ts.map +1 -1
- package/dist/router/GasRouterDeployer.js +32 -18
- package/dist/router/GasRouterDeployer.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +55 -37
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts +2 -2
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +114 -87
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/router/ProxiedRouterChecker.js +34 -14
- package/dist/router/ProxiedRouterChecker.js.map +1 -1
- package/dist/router/ProxiedRouterDeployer.js +39 -25
- package/dist/router/ProxiedRouterDeployer.js.map +1 -1
- package/dist/router/RouterApps.d.ts +3 -3
- package/dist/router/RouterApps.d.ts.map +1 -1
- package/dist/router/RouterApps.js +16 -5
- package/dist/router/RouterApps.js.map +1 -1
- package/dist/router/types.d.ts +14 -14
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js +1 -1
- package/dist/router/types.js.map +1 -1
- package/dist/test/testUtils.d.ts +4 -4
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +25 -14
- package/dist/test/testUtils.js.map +1 -1
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/MultiGeneric.js +4 -2
- package/dist/utils/MultiGeneric.js.map +1 -1
- package/dist/utils/fetch.js +16 -8
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/filter.d.ts +3 -0
- package/dist/utils/filter.d.ts.map +1 -0
- package/dist/utils/filter.js +13 -0
- package/dist/utils/filter.js.map +1 -0
- package/dist/utils/wagmi.d.ts.map +1 -1
- package/dist/utils/wagmi.js +4 -3
- package/dist/utils/wagmi.js.map +1 -1
- package/package.json +7 -7
- package/dist/consts/agentStartBlocks.d.ts +0 -3
- package/dist/consts/agentStartBlocks.d.ts.map +0 -1
- package/dist/consts/agentStartBlocks.js +0 -28
- package/dist/consts/agentStartBlocks.js.map +0 -1
- package/dist/utils/ids.d.ts +0 -20
- package/dist/utils/ids.d.ts.map +0 -1
- package/dist/utils/ids.js +0 -47
- package/dist/utils/ids.js.map +0 -1
- package/dist/utils/number.d.ts +0 -32
- package/dist/utils/number.d.ts.map +0 -1
- package/dist/utils/number.js +0 -59
- package/dist/utils/number.js.map +0 -1
- package/dist/utils/objects.d.ts +0 -17
- package/dist/utils/objects.d.ts.map +0 -1
- package/dist/utils/objects.js +0 -77
- package/dist/utils/objects.js.map +0 -1
- package/dist/utils/time.d.ts +0 -8
- package/dist/utils/time.d.ts.map +0 -1
- package/dist/utils/time.js +0 -15
- package/dist/utils/time.js.map +0 -1
- package/dist/utils/utils.test.d.ts +0 -2
- package/dist/utils/utils.test.d.ts.map +0 -1
- package/dist/utils/utils.test.js +0 -41
- package/dist/utils/utils.test.js.map +0 -1
|
@@ -1,27 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.GasRouterDeployer = void 0;
|
|
4
13
|
const HyperlaneRouterDeployer_1 = require("./HyperlaneRouterDeployer");
|
|
5
14
|
class GasRouterDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDeployer {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
.
|
|
15
|
-
domain
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
enrollRemoteRouters(contractsMap, configMap, foreignRouters = {}) {
|
|
16
|
+
const _super = Object.create(null, {
|
|
17
|
+
enrollRemoteRouters: { get: () => super.enrollRemoteRouters }
|
|
18
|
+
});
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
yield _super.enrollRemoteRouters.call(this, contractsMap, configMap, foreignRouters);
|
|
21
|
+
this.logger(`Setting enrolled router destination gas...`);
|
|
22
|
+
for (const [chain, contracts] of Object.entries(contractsMap)) {
|
|
23
|
+
const remoteDomains = yield this.router(contracts).domains();
|
|
24
|
+
const remoteChains = remoteDomains.map((domain) => this.multiProvider.getChainName(domain));
|
|
25
|
+
const currentConfigs = yield Promise.all(remoteDomains.map((domain) => this.router(contracts).destinationGas(domain)));
|
|
26
|
+
const remoteConfigs = remoteDomains
|
|
27
|
+
.map((domain, i) => ({
|
|
28
|
+
domain,
|
|
29
|
+
gas: configMap[remoteChains[i]].gas,
|
|
30
|
+
}))
|
|
31
|
+
.filter(({ gas }, index) => !currentConfigs[index].eq(gas));
|
|
32
|
+
if (remoteConfigs.length == 0) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
this.logger(`Set destination gas on ${chain} for ${remoteChains}`);
|
|
36
|
+
yield this.multiProvider.handleTx(chain, this.router(contracts).setDestinationGas(remoteConfigs));
|
|
21
37
|
}
|
|
22
|
-
|
|
23
|
-
await this.multiProvider.handleTx(chain, this.router(contracts).setDestinationGas(remoteConfigs));
|
|
24
|
-
}
|
|
38
|
+
});
|
|
25
39
|
}
|
|
26
40
|
}
|
|
27
41
|
exports.GasRouterDeployer = GasRouterDeployer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GasRouterDeployer.js","sourceRoot":"","sources":["../../src/router/GasRouterDeployer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GasRouterDeployer.js","sourceRoot":"","sources":["../../src/router/GasRouterDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAUA,uEAAoE;AAGpE,MAAsB,iBAGpB,SAAQ,iDAA0C;IAG5C,mBAAmB,CACvB,YAA8C,EAC9C,SAA2B,EAC3B,iBAAoC,EAAE;;;;;YAEtC,MAAM,OAAM,mBAAmB,YAAC,YAAY,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAEzE,IAAI,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBAC7D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7D,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CACxC,CAAC;gBACF,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACtC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAC9C,CACF,CAAC;gBACF,MAAM,aAAa,GAAG,aAAa;qBAChC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnB,MAAM;oBACN,GAAG,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;iBACpC,CAAC,CAAC;qBACF,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9D,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC7B,SAAS;iBACV;gBAED,IAAI,CAAC,MAAM,CAAC,0BAA0B,KAAK,QAAQ,YAAY,EAAE,CAAC,CAAC;gBACnE,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAC/B,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,aAAa,CAAC,CACxD,CAAC;aACH;QACH,CAAC;KAAA;CACF;AAzCD,8CAyCC"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.HyperlaneRouterChecker = void 0;
|
|
4
13
|
const ethers_1 = require("ethers");
|
|
@@ -6,45 +15,54 @@ const utils_1 = require("@hyperlane-xyz/utils");
|
|
|
6
15
|
const HyperlaneAppChecker_1 = require("../deploy/HyperlaneAppChecker");
|
|
7
16
|
const types_1 = require("./types");
|
|
8
17
|
class HyperlaneRouterChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
18
|
+
checkChain(chain) {
|
|
19
|
+
const _super = Object.create(null, {
|
|
20
|
+
checkOwnership: { get: () => super.checkOwnership }
|
|
21
|
+
});
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
yield this.checkHyperlaneConnectionClient(chain);
|
|
24
|
+
yield this.checkEnrolledRouters(chain);
|
|
25
|
+
yield _super.checkOwnership.call(this, chain, this.configMap[chain].owner);
|
|
26
|
+
});
|
|
13
27
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
checkHyperlaneConnectionClient(chain) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const router = this.app.router(this.app.getContracts(chain));
|
|
31
|
+
const checkConnectionClientProperty = (property, violationType) => __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const actual = yield router[property]();
|
|
33
|
+
// TODO: check for IsmConfig
|
|
34
|
+
const value = this.configMap[chain][property];
|
|
35
|
+
if (value && typeof value === 'object')
|
|
36
|
+
throw new Error('ISM as object unimplemented');
|
|
37
|
+
const expected = value && typeof value === 'string'
|
|
38
|
+
? value
|
|
39
|
+
: ethers_1.ethers.constants.AddressZero;
|
|
40
|
+
if (!(0, utils_1.eqAddress)(actual, expected)) {
|
|
41
|
+
const violation = {
|
|
42
|
+
chain,
|
|
43
|
+
type: violationType,
|
|
44
|
+
contract: router,
|
|
45
|
+
actual,
|
|
46
|
+
expected,
|
|
47
|
+
};
|
|
48
|
+
this.addViolation(violation);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
yield checkConnectionClientProperty('mailbox', types_1.ConnectionClientViolationType.Mailbox);
|
|
52
|
+
yield checkConnectionClientProperty('interchainGasPaymaster', types_1.ConnectionClientViolationType.InterchainGasPaymaster);
|
|
53
|
+
yield checkConnectionClientProperty('interchainSecurityModule', types_1.ConnectionClientViolationType.InterchainSecurityModule);
|
|
54
|
+
});
|
|
39
55
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
checkEnrolledRouters(chain) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
const router = this.app.router(this.app.getContracts(chain));
|
|
59
|
+
yield Promise.all(this.app.remoteChains(chain).map((remoteChain) => __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const remoteRouter = this.app.router(this.app.getContracts(remoteChain));
|
|
61
|
+
const remoteDomainId = this.multiProvider.getDomainId(remoteChain);
|
|
62
|
+
const address = yield router.routers(remoteDomainId);
|
|
63
|
+
(0, utils_1.assert)(address === (0, utils_1.addressToBytes32)(remoteRouter.address));
|
|
64
|
+
})));
|
|
65
|
+
});
|
|
48
66
|
}
|
|
49
67
|
}
|
|
50
68
|
exports.HyperlaneRouterChecker = HyperlaneRouterChecker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneRouterChecker.js","sourceRoot":"","sources":["../../src/router/HyperlaneRouterChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneRouterChecker.js","sourceRoot":"","sources":["../../src/router/HyperlaneRouterChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAEhC,gDAA2E;AAG3E,uEAAoE;AAIpE,mCAMiB;AAEjB,MAAa,sBAIX,SAAQ,yCAAgC;IAClC,UAAU,CAAC,KAAgB;;;;;YAC/B,MAAM,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,OAAM,cAAc,YAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;KAAA;IAEK,8BAA8B,CAAC,KAAgB;;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAE7D,MAAM,6BAA6B,GAAG,CACpC,QAAwD,EACxD,aAA4C,EAC5C,EAAE;gBACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,4BAA4B;gBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;oBACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACjD,MAAM,QAAQ,GACZ,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;oBAChC,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,eAAM,CAAC,SAAS,CAAC,WAAW,CAAC;gBACnC,IAAI,CAAC,IAAA,iBAAS,EAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;oBAChC,MAAM,SAAS,GAA8B;wBAC3C,KAAK;wBACL,IAAI,EAAE,aAAa;wBACnB,QAAQ,EAAE,MAAM;wBAChB,MAAM;wBACN,QAAQ;qBACT,CAAC;oBACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;iBAC9B;YACH,CAAC,CAAA,CAAC;YAEF,MAAM,6BAA6B,CACjC,SAAS,EACT,qCAA6B,CAAC,OAAO,CACtC,CAAC;YACF,MAAM,6BAA6B,CACjC,wBAAwB,EACxB,qCAA6B,CAAC,sBAAsB,CACrD,CAAC;YACF,MAAM,6BAA6B,CACjC,0BAA0B,EAC1B,qCAA6B,CAAC,wBAAwB,CACvD,CAAC;QACJ,CAAC;KAAA;IAEK,oBAAoB,CAAC,KAAgB;;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAE7D,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAO,WAAW,EAAE,EAAE;gBACrD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAClC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CACnC,CAAC;gBACF,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBACnE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACrD,IAAA,cAAM,EAAC,OAAO,KAAK,IAAA,wBAAgB,EAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;CACF;AAnED,wDAmEC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Router } from '@hyperlane-xyz/core';
|
|
2
|
-
import {
|
|
2
|
+
import { Address } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { HyperlaneContracts, HyperlaneContractsMap, HyperlaneFactories } from '../contracts';
|
|
4
4
|
import { HyperlaneDeployer } from '../deploy/HyperlaneDeployer';
|
|
5
5
|
import { RouterConfig } from '../router/types';
|
|
@@ -8,7 +8,7 @@ export declare abstract class HyperlaneRouterDeployer<Config extends RouterConfi
|
|
|
8
8
|
abstract router(contracts: HyperlaneContracts<Factories>): Router;
|
|
9
9
|
checkConfig(configMap: ChainMap<Config>): Promise<void>;
|
|
10
10
|
initConnectionClients(contractsMap: HyperlaneContractsMap<Factories>, configMap: ChainMap<Config>): Promise<void>;
|
|
11
|
-
enrollRemoteRouters(deployedContractsMap: HyperlaneContractsMap<Factories>, _: ChainMap<Config>, foreignRouters?: ChainMap<
|
|
11
|
+
enrollRemoteRouters(deployedContractsMap: HyperlaneContractsMap<Factories>, _: ChainMap<Config>, foreignRouters?: ChainMap<Address>): Promise<void>;
|
|
12
12
|
transferOwnership(contractsMap: HyperlaneContractsMap<Factories>, configMap: ChainMap<Config>): Promise<void>;
|
|
13
13
|
deploy(configMap: ChainMap<Config>): Promise<HyperlaneContractsMap<Factories>>;
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneRouterDeployer.d.ts","sourceRoot":"","sources":["../../src/router/HyperlaneRouterDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,MAAM,EACP,MAAM,qBAAqB,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"HyperlaneRouterDeployer.d.ts","sourceRoot":"","sources":["../../src/router/HyperlaneRouterDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,MAAM,EACP,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,8BAAsB,uBAAuB,CAC3C,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,kBAAkB,CACpC,SAAQ,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM;IAK3D,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDvD,qBAAqB,CACzB,YAAY,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAC9C,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC;IAQV,mBAAmB,CACvB,oBAAoB,EAAE,qBAAqB,CAAC,SAAS,CAAC,EACtD,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,EACnB,cAAc,GAAE,QAAQ,CAAC,OAAO,CAAM,GACrC,OAAO,CAAC,IAAI,CAAC;IAyDV,iBAAiB,CACrB,YAAY,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAC9C,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC;IAUV,MAAM,CACV,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;CA2B7C"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.HyperlaneRouterDeployer = void 0;
|
|
4
13
|
const ethers_1 = require("ethers");
|
|
@@ -7,106 +16,124 @@ const utils_1 = require("@hyperlane-xyz/utils");
|
|
|
7
16
|
const contracts_1 = require("../contracts");
|
|
8
17
|
const HyperlaneDeployer_1 = require("../deploy/HyperlaneDeployer");
|
|
9
18
|
const HyperlaneIsmFactory_1 = require("../ism/HyperlaneIsmFactory");
|
|
10
|
-
const objects_1 = require("../utils/objects");
|
|
11
19
|
class HyperlaneRouterDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
12
20
|
// The ISM check does not appropriately handle ISMs that have sender,
|
|
13
21
|
// recipient, or body-specific logic. Folks that wish to deploy using
|
|
14
22
|
// such ISMs *may* need to override checkConfig to disable this check.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
config.interchainSecurityModule
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
else {
|
|
27
|
-
localIsm = config.interchainSecurityModule;
|
|
28
|
-
}
|
|
29
|
-
const remotes = Object.keys(configMap).filter((c) => c !== local);
|
|
30
|
-
for (const remote of remotes) {
|
|
31
|
-
this.logger(`Checking origin ${remote}...`);
|
|
32
|
-
// Try to confirm that the IGP supports delivery to all remotes
|
|
33
|
-
try {
|
|
34
|
-
await localIgp.quoteGasPayment(this.multiProvider.getDomainId(remote), 1);
|
|
23
|
+
checkConfig(configMap) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
for (const [local, config] of Object.entries(configMap)) {
|
|
26
|
+
this.logger(`Checking config for ${local}...`);
|
|
27
|
+
const signerOrProvider = this.multiProvider.getSignerOrProvider(local);
|
|
28
|
+
const localIgp = core_1.IInterchainGasPaymaster__factory.connect(config.interchainGasPaymaster, signerOrProvider);
|
|
29
|
+
const localMailbox = core_1.Mailbox__factory.connect(config.mailbox, signerOrProvider);
|
|
30
|
+
let localIsm;
|
|
31
|
+
if (!config.interchainSecurityModule ||
|
|
32
|
+
config.interchainSecurityModule === ethers_1.ethers.constants.AddressZero) {
|
|
33
|
+
localIsm = yield localMailbox.defaultIsm();
|
|
35
34
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
`${local} is not configured to deliver messages to ${remote}, ` +
|
|
39
|
-
`did you mean to specify a different one?`);
|
|
35
|
+
else {
|
|
36
|
+
localIsm = config.interchainSecurityModule;
|
|
40
37
|
}
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
38
|
+
const remotes = Object.keys(configMap).filter((c) => c !== local);
|
|
39
|
+
for (const remote of remotes) {
|
|
40
|
+
this.logger(`Checking origin ${remote}...`);
|
|
41
|
+
// Try to confirm that the IGP supports delivery to all remotes
|
|
42
|
+
try {
|
|
43
|
+
yield localIgp.quoteGasPayment(this.multiProvider.getDomainId(remote), 1);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
throw new Error(`The specified or default IGP with address ${localIgp.address} on ` +
|
|
47
|
+
`${local} is not configured to deliver messages to ${remote}, ` +
|
|
48
|
+
`did you mean to specify a different one?`);
|
|
49
|
+
}
|
|
50
|
+
// Try to confirm that the specified or default ISM can verify messages to all remotes
|
|
51
|
+
const canVerify = yield (0, HyperlaneIsmFactory_1.moduleCanCertainlyVerify)(localIsm, this.multiProvider, remote, local);
|
|
52
|
+
if (!canVerify) {
|
|
53
|
+
throw new Error(`The specified or default ISM with address ${localIsm} on ${local} ` +
|
|
54
|
+
`cannot verify messages from ${remote}, did you forget to ` +
|
|
55
|
+
`specify an ISM, or mean to specify a different one?`);
|
|
56
|
+
}
|
|
47
57
|
}
|
|
48
58
|
}
|
|
49
|
-
}
|
|
59
|
+
});
|
|
50
60
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
61
|
+
initConnectionClients(contractsMap, configMap) {
|
|
62
|
+
const _super = Object.create(null, {
|
|
63
|
+
initConnectionClient: { get: () => super.initConnectionClient }
|
|
64
|
+
});
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
for (const chain of Object.keys(contractsMap)) {
|
|
67
|
+
const contracts = contractsMap[chain];
|
|
68
|
+
const config = configMap[chain];
|
|
69
|
+
yield _super.initConnectionClient.call(this, chain, this.router(contracts), config);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
57
72
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
73
|
+
enrollRemoteRouters(deployedContractsMap, _, foreignRouters = {}) {
|
|
74
|
+
const _super = Object.create(null, {
|
|
75
|
+
runIfOwner: { get: () => super.runIfOwner }
|
|
76
|
+
});
|
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
+
this.logger(`Enrolling deployed routers with each other (if not already)...`);
|
|
79
|
+
// Make all routers aware of each other.
|
|
80
|
+
// Routers that were deployed.
|
|
81
|
+
const deployedRouters = (0, utils_1.objMap)(deployedContractsMap, (_, contracts) => this.router(contracts).address);
|
|
82
|
+
// All routers, including those that were deployed and those with existing deployments.
|
|
83
|
+
const allRouters = (0, utils_1.objMerge)(deployedRouters, foreignRouters);
|
|
84
|
+
const allChains = Object.keys(allRouters);
|
|
85
|
+
for (const [chain, contracts] of Object.entries(deployedContractsMap)) {
|
|
86
|
+
const allRemoteChains = this.multiProvider
|
|
87
|
+
.getRemoteChains(chain)
|
|
88
|
+
.filter((c) => allChains.includes(c));
|
|
89
|
+
const enrollEntries = yield Promise.all(allRemoteChains.map((remote) => __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const remoteDomain = this.multiProvider.getDomainId(remote);
|
|
91
|
+
const current = yield this.router(contracts).routers(remoteDomain);
|
|
92
|
+
const expected = (0, utils_1.addressToBytes32)(allRouters[remote]);
|
|
93
|
+
return current !== expected ? [remoteDomain, expected] : undefined;
|
|
94
|
+
})));
|
|
95
|
+
const entries = enrollEntries.filter((entry) => entry !== undefined);
|
|
96
|
+
const domains = entries.map(([id]) => id);
|
|
97
|
+
const addresses = entries.map(([, address]) => address);
|
|
98
|
+
// skip if no enrollments are needed
|
|
99
|
+
if (domains.length === 0) {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
yield _super.runIfOwner.call(this, chain, this.router(contracts), () => __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
const chains = domains.map((id) => this.multiProvider.getChainName(id));
|
|
104
|
+
this.logger(`Enrolling remote routers (${chains.join(', ')}) on ${chain}`);
|
|
105
|
+
yield this.multiProvider.handleTx(chain, this.router(contracts).enrollRemoteRouters(domains, addresses, this.multiProvider.getTransactionOverrides(chain)));
|
|
106
|
+
}));
|
|
82
107
|
}
|
|
83
|
-
|
|
84
|
-
const chains = domains.map((id) => this.multiProvider.getChainName(id));
|
|
85
|
-
this.logger(`Enrolling remote routers (${chains.join(', ')}) on ${chain}`);
|
|
86
|
-
await this.multiProvider.handleTx(chain, this.router(contracts).enrollRemoteRouters(domains, addresses, this.multiProvider.getTransactionOverrides(chain)));
|
|
87
|
-
});
|
|
88
|
-
}
|
|
108
|
+
});
|
|
89
109
|
}
|
|
90
|
-
|
|
91
|
-
this
|
|
92
|
-
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
110
|
+
transferOwnership(contractsMap, configMap) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
this.logger(`Transferring ownership of ownables...`);
|
|
113
|
+
for (const chain of Object.keys(contractsMap)) {
|
|
114
|
+
const contracts = contractsMap[chain];
|
|
115
|
+
const owner = configMap[chain].owner;
|
|
116
|
+
const ownables = yield (0, contracts_1.filterOwnableContracts)(contracts);
|
|
117
|
+
yield this.transferOwnershipOfContracts(chain, owner, ownables);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
98
120
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
121
|
+
deploy(configMap) {
|
|
122
|
+
const _super = Object.create(null, {
|
|
123
|
+
deploy: { get: () => super.deploy }
|
|
124
|
+
});
|
|
125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
+
// Only deploy on chains that don't have foreign deployments.
|
|
127
|
+
const configMapToDeploy = (0, utils_1.objFilter)(configMap, (_chainName, config) => !config.foreignDeployment);
|
|
128
|
+
// Create a map of chains that have foreign deployments.
|
|
129
|
+
const foreignDeployments = (0, utils_1.objFilter)((0, utils_1.objMap)(configMap, (_, config) => config.foreignDeployment), (_chainName, foreignDeployment) => foreignDeployment !== undefined);
|
|
130
|
+
const deployedContractsMap = yield _super.deploy.call(this, configMapToDeploy);
|
|
131
|
+
yield this.enrollRemoteRouters(deployedContractsMap, configMap, foreignDeployments);
|
|
132
|
+
yield this.initConnectionClients(deployedContractsMap, configMap);
|
|
133
|
+
yield this.transferOwnership(deployedContractsMap, configMap);
|
|
134
|
+
this.logger(`Finished deploying router contracts for all chains.`);
|
|
135
|
+
return deployedContractsMap;
|
|
136
|
+
});
|
|
110
137
|
}
|
|
111
138
|
}
|
|
112
139
|
exports.HyperlaneRouterDeployer = HyperlaneRouterDeployer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneRouterDeployer.js","sourceRoot":"","sources":["../../src/router/HyperlaneRouterDeployer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneRouterDeployer.js","sourceRoot":"","sources":["../../src/router/HyperlaneRouterDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.ProxiedRouterChecker = void 0;
|
|
4
13
|
const HyperlaneRouterChecker_1 = require("./HyperlaneRouterChecker");
|
|
5
14
|
class ProxiedRouterChecker extends HyperlaneRouterChecker_1.HyperlaneRouterChecker {
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
checkOwnership(chain) {
|
|
16
|
+
const _super = Object.create(null, {
|
|
17
|
+
checkOwnership: { get: () => super.checkOwnership }
|
|
18
|
+
});
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
const config = this.configMap[chain];
|
|
21
|
+
let ownableOverrides = {};
|
|
22
|
+
if (config.timelock) {
|
|
23
|
+
ownableOverrides = {
|
|
24
|
+
proxyAdmin: this.app.getAddresses(chain).timelockController,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return _super.checkOwnership.call(this, chain, config.owner, ownableOverrides);
|
|
28
|
+
});
|
|
15
29
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
30
|
+
checkChain(chain) {
|
|
31
|
+
const _super = Object.create(null, {
|
|
32
|
+
checkHyperlaneConnectionClient: { get: () => super.checkHyperlaneConnectionClient },
|
|
33
|
+
checkEnrolledRouters: { get: () => super.checkEnrolledRouters }
|
|
34
|
+
});
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
yield _super.checkHyperlaneConnectionClient.call(this, chain);
|
|
37
|
+
yield _super.checkEnrolledRouters.call(this, chain);
|
|
38
|
+
yield this.checkProxiedContracts(chain);
|
|
39
|
+
yield this.checkOwnership(chain);
|
|
40
|
+
});
|
|
21
41
|
}
|
|
22
42
|
}
|
|
23
43
|
exports.ProxiedRouterChecker = ProxiedRouterChecker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxiedRouterChecker.js","sourceRoot":"","sources":["../../src/router/ProxiedRouterChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProxiedRouterChecker.js","sourceRoot":"","sources":["../../src/router/ProxiedRouterChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qEAAkE;AAIlE,MAAsB,oBAIpB,SAAQ,+CAA8C;IAChD,cAAc,CAAC,KAAgB;;;;;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,gBAAgB,GAAG,EAAE,CAAC;YAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,gBAAgB,GAAG;oBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,kBAAkB;iBAC5D,CAAC;aACH;YAED,OAAO,OAAM,cAAc,YAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE;QACrE,CAAC;KAAA;IAEK,UAAU,CAAC,KAAgB;;;;;;YAC/B,MAAM,OAAM,8BAA8B,YAAC,KAAK,CAAC,CAAC;YAClD,MAAM,OAAM,oBAAoB,YAAC,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;KAAA;CACF;AAvBD,oDAuBC"}
|