@hyperlane-xyz/sdk 1.4.3-beta1 → 1.4.3-beta2
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/README.md +7 -1
- package/dist/{HyperlaneApp.d.ts → app/HyperlaneApp.d.ts} +4 -4
- package/dist/app/HyperlaneApp.d.ts.map +1 -0
- package/dist/{HyperlaneApp.js → app/HyperlaneApp.js} +2 -2
- package/dist/app/HyperlaneApp.js.map +1 -0
- package/dist/app/MultiProtocolApp.d.ts +51 -0
- package/dist/app/MultiProtocolApp.d.ts.map +1 -0
- package/dist/app/MultiProtocolApp.js +80 -0
- package/dist/app/MultiProtocolApp.js.map +1 -0
- package/dist/app/MultiProtocolApp.test.d.ts +2 -0
- package/dist/app/MultiProtocolApp.test.d.ts.map +1 -0
- package/dist/app/MultiProtocolApp.test.js +19 -0
- package/dist/app/MultiProtocolApp.test.js.map +1 -0
- package/dist/consts/agentStartBlocks.d.ts +3 -0
- package/dist/consts/agentStartBlocks.d.ts.map +1 -0
- package/dist/consts/agentStartBlocks.js +28 -0
- package/dist/consts/agentStartBlocks.js.map +1 -0
- package/dist/consts/bytecode.js +1 -1
- package/dist/consts/bytecode.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +2 -58
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +1 -19
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +2 -3
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +2 -3
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +3 -3
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/{contracts.d.ts → contracts/contracts.d.ts} +3 -15
- package/dist/contracts/contracts.d.ts.map +1 -0
- package/dist/{contracts.js → contracts/contracts.js} +12 -23
- package/dist/contracts/contracts.js.map +1 -0
- package/dist/contracts/types.d.ts +18 -0
- package/dist/contracts/types.d.ts.map +1 -0
- package/dist/contracts/types.js +3 -0
- package/dist/contracts/types.js.map +1 -0
- package/dist/core/CoreDeployer.hardhat-test.js +33 -42
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/HyperlaneCore.d.ts +5 -5
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +15 -28
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCore.test.js +4 -13
- package/dist/core/HyperlaneCore.test.js.map +1 -1
- package/dist/core/HyperlaneCoreChecker.js +80 -99
- package/dist/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +45 -62
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +1 -1
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +35 -45
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.d.ts +1 -1
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +14 -27
- 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 +23 -32
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/core/types.d.ts +1 -1
- 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 +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +99 -123
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +176 -216
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/proxy.d.ts +1 -1
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +11 -26
- 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.js +122 -131
- 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 +2 -2
- package/dist/gas/HyperlaneIgp.js.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.js +101 -123
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.d.ts +1 -1
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.js +70 -89
- 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 +6 -1
- package/dist/gas/contracts.js.map +1 -1
- package/dist/gas/token-prices.d.ts +6 -60
- package/dist/gas/token-prices.d.ts.map +1 -1
- package/dist/gas/token-prices.js +37 -54
- package/dist/gas/token-prices.js.map +1 -1
- package/dist/gas/token-prices.test.js +11 -20
- package/dist/gas/token-prices.test.js.map +1 -1
- package/dist/gas/types.d.ts +2 -2
- 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 +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +69 -88
- 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 +5 -1
- package/dist/hook/contracts.js.map +1 -1
- package/dist/hook/types.d.ts +3 -3
- 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 +13 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -5
- package/dist/index.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +2 -2
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +14 -23
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +234 -256
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts +1 -1
- package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactoryDeployer.js +18 -34
- 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 +5 -5
- 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/ChainMetadataManager.d.ts +130 -0
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -0
- package/dist/metadata/ChainMetadataManager.js +240 -0
- package/dist/metadata/ChainMetadataManager.js.map +1 -0
- package/dist/metadata/agentConfig.d.ts +4 -4
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/agentConfig.js +15 -6
- package/dist/metadata/agentConfig.js.map +1 -1
- package/dist/metadata/chainMetadata.test.js +27 -9
- package/dist/metadata/chainMetadata.test.js.map +1 -1
- package/dist/metadata/chainMetadataTypes.d.ts +2 -2
- package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
- package/dist/metadata/chainMetadataTypes.js +2 -3
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/metadata/deploymentArtifacts.d.ts +2 -2
- package/dist/metadata/deploymentArtifacts.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccount.d.ts +1 -1
- package/dist/middleware/account/InterchainAccount.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccount.js +1 -1
- package/dist/middleware/account/InterchainAccount.js.map +1 -1
- package/dist/middleware/account/InterchainAccountChecker.js +4 -1
- package/dist/middleware/account/InterchainAccountChecker.js.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +2 -2
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.js +28 -41
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
- package/dist/middleware/account/accounts.hardhat-test.js +21 -30
- 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 +5 -1
- package/dist/middleware/account/contracts.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts +2 -2
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +130 -152
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +3 -3
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +85 -110
- 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 +6 -1
- package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +41 -46
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/query/InterchainQuery.d.ts +1 -1
- package/dist/middleware/query/InterchainQuery.d.ts.map +1 -1
- package/dist/middleware/query/InterchainQuery.js +1 -1
- package/dist/middleware/query/InterchainQuery.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 +13 -27
- 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 +4 -1
- package/dist/middleware/query/contracts.js.map +1 -1
- package/dist/middleware/query/queries.hardhat-test.js +23 -32
- package/dist/middleware/query/queries.hardhat-test.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.d.ts +39 -0
- package/dist/providers/MultiProtocolProvider.d.ts.map +1 -0
- package/dist/providers/MultiProtocolProvider.js +105 -0
- package/dist/providers/MultiProtocolProvider.js.map +1 -0
- package/dist/providers/MultiProtocolProvider.test.d.ts +2 -0
- package/dist/providers/MultiProtocolProvider.test.d.ts.map +1 -0
- package/dist/providers/MultiProtocolProvider.test.js +24 -0
- package/dist/providers/MultiProtocolProvider.test.js.map +1 -0
- package/dist/providers/MultiProvider.d.ts +20 -118
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +69 -300
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/ProviderType.d.ts +71 -0
- package/dist/providers/ProviderType.d.ts.map +1 -0
- package/dist/providers/ProviderType.js +11 -0
- package/dist/providers/ProviderType.js.map +1 -0
- package/dist/providers/RetryProvider.d.ts +1 -1
- package/dist/providers/RetryProvider.d.ts.map +1 -1
- package/dist/providers/RetryProvider.js +2 -16
- package/dist/providers/RetryProvider.js.map +1 -1
- package/dist/providers/providerBuilders.d.ts +17 -0
- package/dist/providers/providerBuilders.d.ts.map +1 -0
- package/dist/providers/providerBuilders.js +97 -0
- package/dist/providers/providerBuilders.js.map +1 -0
- package/dist/router/GasRouterDeployer.d.ts +1 -1
- package/dist/router/GasRouterDeployer.d.ts.map +1 -1
- package/dist/router/GasRouterDeployer.js +18 -32
- package/dist/router/GasRouterDeployer.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +37 -55
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +87 -115
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/router/MultiProtocolRouterApps.d.ts +29 -0
- package/dist/router/MultiProtocolRouterApps.d.ts.map +1 -0
- package/dist/router/MultiProtocolRouterApps.js +43 -0
- package/dist/router/MultiProtocolRouterApps.js.map +1 -0
- package/dist/router/MultiProtocolRouterApps.test.d.ts +2 -0
- package/dist/router/MultiProtocolRouterApps.test.d.ts.map +1 -0
- package/dist/router/MultiProtocolRouterApps.test.js +20 -0
- package/dist/router/MultiProtocolRouterApps.test.js.map +1 -0
- package/dist/router/ProxiedRouterChecker.js +14 -34
- package/dist/router/ProxiedRouterChecker.js.map +1 -1
- package/dist/router/ProxiedRouterDeployer.d.ts +1 -1
- package/dist/router/ProxiedRouterDeployer.d.ts.map +1 -1
- package/dist/router/ProxiedRouterDeployer.js +24 -38
- package/dist/router/ProxiedRouterDeployer.js.map +1 -1
- package/dist/router/RouterApps.d.ts +4 -4
- package/dist/router/RouterApps.d.ts.map +1 -1
- package/dist/router/RouterApps.js +8 -18
- package/dist/router/RouterApps.js.map +1 -1
- package/dist/router/adapters/EvmRouterAdapter.d.ts +25 -0
- package/dist/router/adapters/EvmRouterAdapter.d.ts.map +1 -0
- package/dist/router/adapters/EvmRouterAdapter.js +50 -0
- package/dist/router/adapters/EvmRouterAdapter.js.map +1 -0
- package/dist/router/adapters/SealevelRouterAdapter.d.ts +50 -0
- package/dist/router/adapters/SealevelRouterAdapter.d.ts.map +1 -0
- package/dist/router/adapters/SealevelRouterAdapter.js +132 -0
- package/dist/router/adapters/SealevelRouterAdapter.js.map +1 -0
- package/dist/router/adapters/SealevelRouterAdapter.test.d.ts +2 -0
- package/dist/router/adapters/SealevelRouterAdapter.test.d.ts.map +1 -0
- package/dist/router/adapters/SealevelRouterAdapter.test.js +21 -0
- package/dist/router/adapters/SealevelRouterAdapter.test.js.map +1 -0
- package/dist/router/adapters/types.d.ts +18 -0
- package/dist/router/adapters/types.d.ts.map +1 -0
- package/dist/router/adapters/types.js +3 -0
- package/dist/router/adapters/types.js.map +1 -0
- package/dist/router/types.d.ts +12 -9
- 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 +1 -1
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +12 -23
- 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.d.ts +1 -1
- package/dist/utils/MultiGeneric.d.ts.map +1 -1
- package/dist/utils/MultiGeneric.js +2 -4
- package/dist/utils/MultiGeneric.js.map +1 -1
- package/dist/utils/fetch.js +8 -16
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/wagmi.js +1 -2
- package/dist/utils/wagmi.js.map +1 -1
- package/package.json +10 -7
- package/dist/HyperlaneApp.d.ts.map +0 -1
- package/dist/HyperlaneApp.js.map +0 -1
- package/dist/contracts.d.ts.map +0 -1
- package/dist/contracts.js.map +0 -1
|
@@ -1,139 +1,111 @@
|
|
|
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
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.HyperlaneRouterDeployer = void 0;
|
|
13
4
|
const ethers_1 = require("ethers");
|
|
14
5
|
const core_1 = require("@hyperlane-xyz/core");
|
|
15
6
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
16
|
-
const contracts_1 = require("../contracts");
|
|
7
|
+
const contracts_1 = require("../contracts/contracts");
|
|
17
8
|
const HyperlaneDeployer_1 = require("../deploy/HyperlaneDeployer");
|
|
18
9
|
const HyperlaneIsmFactory_1 = require("../ism/HyperlaneIsmFactory");
|
|
19
10
|
class HyperlaneRouterDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
20
11
|
// The ISM check does not appropriately handle ISMs that have sender,
|
|
21
12
|
// recipient, or body-specific logic. Folks that wish to deploy using
|
|
22
13
|
// such ISMs *may* need to override checkConfig to disable this check.
|
|
23
|
-
checkConfig(configMap) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
14
|
+
async checkConfig(configMap) {
|
|
15
|
+
for (const [local, config] of Object.entries(configMap)) {
|
|
16
|
+
this.logger(`Checking config for ${local}...`);
|
|
17
|
+
const signerOrProvider = this.multiProvider.getSignerOrProvider(local);
|
|
18
|
+
const localIgp = core_1.IInterchainGasPaymaster__factory.connect(config.interchainGasPaymaster, signerOrProvider);
|
|
19
|
+
const localMailbox = core_1.Mailbox__factory.connect(config.mailbox, signerOrProvider);
|
|
20
|
+
let localIsm;
|
|
21
|
+
if (!config.interchainSecurityModule ||
|
|
22
|
+
config.interchainSecurityModule === ethers_1.ethers.constants.AddressZero) {
|
|
23
|
+
localIsm = await localMailbox.defaultIsm();
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
localIsm = config.interchainSecurityModule;
|
|
27
|
+
}
|
|
28
|
+
const remotes = Object.keys(configMap).filter((c) => c !== local);
|
|
29
|
+
for (const remote of remotes) {
|
|
30
|
+
this.logger(`Checking origin ${remote}...`);
|
|
31
|
+
// Try to confirm that the IGP supports delivery to all remotes
|
|
32
|
+
try {
|
|
33
|
+
await localIgp.quoteGasPayment(this.multiProvider.getDomainId(remote), 1);
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
catch (e) {
|
|
36
|
+
throw new Error(`The specified or default IGP with address ${localIgp.address} on ` +
|
|
37
|
+
`${local} is not configured to deliver messages to ${remote}, ` +
|
|
38
|
+
`did you mean to specify a different one?`);
|
|
37
39
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
}
|
|
40
|
+
// Try to confirm that the specified or default ISM can verify messages to all remotes
|
|
41
|
+
const canVerify = await (0, HyperlaneIsmFactory_1.moduleCanCertainlyVerify)(localIsm, this.multiProvider, remote, local);
|
|
42
|
+
if (!canVerify) {
|
|
43
|
+
throw new Error(`The specified or default ISM with address ${localIsm} on ${local} ` +
|
|
44
|
+
`cannot verify messages from ${remote}, did you forget to ` +
|
|
45
|
+
`specify an ISM, or mean to specify a different one?`);
|
|
57
46
|
}
|
|
58
47
|
}
|
|
59
|
-
}
|
|
48
|
+
}
|
|
60
49
|
}
|
|
61
|
-
initConnectionClients(contractsMap, configMap) {
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const contracts = contractsMap[chain];
|
|
68
|
-
const config = configMap[chain];
|
|
69
|
-
yield _super.initConnectionClient.call(this, chain, this.router(contracts), config);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
50
|
+
async initConnectionClients(contractsMap, configMap) {
|
|
51
|
+
for (const chain of Object.keys(contractsMap)) {
|
|
52
|
+
const contracts = contractsMap[chain];
|
|
53
|
+
const config = configMap[chain];
|
|
54
|
+
await super.initConnectionClient(chain, this.router(contracts), config);
|
|
55
|
+
}
|
|
72
56
|
}
|
|
73
|
-
enrollRemoteRouters(deployedContractsMap, _, foreignRouters = {}) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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
|
-
}));
|
|
57
|
+
async enrollRemoteRouters(deployedContractsMap, _, foreignRouters = {}) {
|
|
58
|
+
this.logger(`Enrolling deployed routers with each other (if not already)...`);
|
|
59
|
+
// Make all routers aware of each other.
|
|
60
|
+
// Routers that were deployed.
|
|
61
|
+
const deployedRouters = (0, utils_1.objMap)(deployedContractsMap, (_, contracts) => this.router(contracts).address);
|
|
62
|
+
// All routers, including those that were deployed and those with existing deployments.
|
|
63
|
+
const allRouters = (0, utils_1.objMerge)(deployedRouters, foreignRouters);
|
|
64
|
+
const allChains = Object.keys(allRouters);
|
|
65
|
+
for (const [chain, contracts] of Object.entries(deployedContractsMap)) {
|
|
66
|
+
const allRemoteChains = this.multiProvider
|
|
67
|
+
.getRemoteChains(chain)
|
|
68
|
+
.filter((c) => allChains.includes(c));
|
|
69
|
+
const enrollEntries = await Promise.all(allRemoteChains.map(async (remote) => {
|
|
70
|
+
const remoteDomain = this.multiProvider.getDomainId(remote);
|
|
71
|
+
const current = await this.router(contracts).routers(remoteDomain);
|
|
72
|
+
const expected = (0, utils_1.addressToBytes32)(allRouters[remote]);
|
|
73
|
+
return current !== expected ? [remoteDomain, expected] : undefined;
|
|
74
|
+
}));
|
|
75
|
+
const entries = enrollEntries.filter((entry) => entry !== undefined);
|
|
76
|
+
const domains = entries.map(([id]) => id);
|
|
77
|
+
const addresses = entries.map(([, address]) => address);
|
|
78
|
+
// skip if no enrollments are needed
|
|
79
|
+
if (domains.length === 0) {
|
|
80
|
+
continue;
|
|
107
81
|
}
|
|
108
|
-
|
|
82
|
+
await super.runIfOwner(chain, this.router(contracts), async () => {
|
|
83
|
+
const chains = domains.map((id) => this.multiProvider.getChainName(id));
|
|
84
|
+
this.logger(`Enrolling remote routers (${chains.join(', ')}) on ${chain}`);
|
|
85
|
+
await this.multiProvider.handleTx(chain, this.router(contracts).enrollRemoteRouters(domains, addresses, this.multiProvider.getTransactionOverrides(chain)));
|
|
86
|
+
});
|
|
87
|
+
}
|
|
109
88
|
}
|
|
110
|
-
transferOwnership(contractsMap, configMap) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
});
|
|
89
|
+
async transferOwnership(contractsMap, configMap) {
|
|
90
|
+
this.logger(`Transferring ownership of ownables...`);
|
|
91
|
+
for (const chain of Object.keys(contractsMap)) {
|
|
92
|
+
const contracts = contractsMap[chain];
|
|
93
|
+
const owner = configMap[chain].owner;
|
|
94
|
+
const ownables = await (0, contracts_1.filterOwnableContracts)(contracts);
|
|
95
|
+
await this.transferOwnershipOfContracts(chain, owner, ownables);
|
|
96
|
+
}
|
|
120
97
|
}
|
|
121
|
-
deploy(configMap) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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
|
-
});
|
|
98
|
+
async deploy(configMap) {
|
|
99
|
+
// Only deploy on chains that don't have foreign deployments.
|
|
100
|
+
const configMapToDeploy = (0, utils_1.objFilter)(configMap, (_chainName, config) => !config.foreignDeployment);
|
|
101
|
+
// Create a map of chains that have foreign deployments.
|
|
102
|
+
const foreignDeployments = (0, utils_1.objFilter)((0, utils_1.objMap)(configMap, (_, config) => config.foreignDeployment), (_chainName, foreignDeployment) => foreignDeployment !== undefined);
|
|
103
|
+
const deployedContractsMap = await super.deploy(configMapToDeploy);
|
|
104
|
+
await this.enrollRemoteRouters(deployedContractsMap, configMap, foreignDeployments);
|
|
105
|
+
await this.initConnectionClients(deployedContractsMap, configMap);
|
|
106
|
+
await this.transferOwnership(deployedContractsMap, configMap);
|
|
107
|
+
this.logger(`Finished deploying router contracts for all chains.`);
|
|
108
|
+
return deployedContractsMap;
|
|
137
109
|
}
|
|
138
110
|
}
|
|
139
111
|
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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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Address, Domain } from '@hyperlane-xyz/utils';
|
|
2
|
+
import { MultiProtocolApp } from '../app/MultiProtocolApp';
|
|
3
|
+
import { ChainMap, ChainName } from '../types';
|
|
4
|
+
import { EvmGasRouterAdapter, EvmRouterAdapter } from './adapters/EvmRouterAdapter';
|
|
5
|
+
import { SealevelGasRouterAdapter, SealevelRouterAdapter } from './adapters/SealevelRouterAdapter';
|
|
6
|
+
import { IGasRouterAdapter, IRouterAdapter } from './adapters/types';
|
|
7
|
+
import { RouterAddress } from './types';
|
|
8
|
+
export { Router } from '@hyperlane-xyz/core';
|
|
9
|
+
export declare class MultiProtocolRouterApp<ContractAddrs extends RouterAddress = RouterAddress, IAdapterApi extends IRouterAdapter = IRouterAdapter> extends MultiProtocolApp<ContractAddrs, IAdapterApi> {
|
|
10
|
+
readonly protocolToAdapter: {
|
|
11
|
+
ethereum: typeof EvmRouterAdapter;
|
|
12
|
+
sealevel: typeof SealevelRouterAdapter;
|
|
13
|
+
};
|
|
14
|
+
router(chain: ChainName): Address;
|
|
15
|
+
interchainSecurityModules(): Promise<ChainMap<Address>>;
|
|
16
|
+
owners(): Promise<ChainMap<Address>>;
|
|
17
|
+
remoteRouters(origin: ChainName): Promise<Array<{
|
|
18
|
+
domain: Domain;
|
|
19
|
+
address: Address;
|
|
20
|
+
}>>;
|
|
21
|
+
}
|
|
22
|
+
export declare class MultiProtocolGasRouterApp<ContractAddrs extends RouterAddress = RouterAddress, IAdapterApi extends IGasRouterAdapter = IGasRouterAdapter> extends MultiProtocolRouterApp<ContractAddrs, IAdapterApi> {
|
|
23
|
+
readonly protocolToAdapter: {
|
|
24
|
+
ethereum: typeof EvmGasRouterAdapter;
|
|
25
|
+
sealevel: typeof SealevelGasRouterAdapter;
|
|
26
|
+
};
|
|
27
|
+
quoteGasPayment(origin: ChainName, destination: ChainName): Promise<string>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=MultiProtocolRouterApps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiProtocolRouterApps.d.ts","sourceRoot":"","sources":["../../src/router/MultiProtocolRouterApps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,qBAAa,sBAAsB,CACjC,aAAa,SAAS,aAAa,GAAG,aAAa,EACnD,WAAW,SAAS,cAAc,GAAG,cAAc,CACnD,SAAQ,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC;IACpD,SAAyB,iBAAiB;;;MAGxC;IAEF,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIjC,yBAAyB,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAMvD,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAIpC,aAAa,CACX,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAGxD;AAED,qBAAa,yBAAyB,CACpC,aAAa,SAAS,aAAa,GAAG,aAAa,EACnD,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,CACzD,SAAQ,sBAAsB,CAAC,aAAa,EAAE,WAAW,CAAC;IAC1D,SAAyB,iBAAiB;;;MAGxC;IAEI,eAAe,CACnB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,MAAM,CAAC;CAGnB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultiProtocolGasRouterApp = exports.MultiProtocolRouterApp = void 0;
|
|
4
|
+
const utils_1 = require("@hyperlane-xyz/utils");
|
|
5
|
+
const MultiProtocolApp_1 = require("../app/MultiProtocolApp");
|
|
6
|
+
const EvmRouterAdapter_1 = require("./adapters/EvmRouterAdapter");
|
|
7
|
+
const SealevelRouterAdapter_1 = require("./adapters/SealevelRouterAdapter");
|
|
8
|
+
class MultiProtocolRouterApp extends MultiProtocolApp_1.MultiProtocolApp {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.protocolToAdapter = {
|
|
12
|
+
[utils_1.ProtocolType.Ethereum]: EvmRouterAdapter_1.EvmRouterAdapter,
|
|
13
|
+
[utils_1.ProtocolType.Sealevel]: SealevelRouterAdapter_1.SealevelRouterAdapter,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
router(chain) {
|
|
17
|
+
return this.metadata(chain).router;
|
|
18
|
+
}
|
|
19
|
+
interchainSecurityModules() {
|
|
20
|
+
return this.adapterMap((chain, adapter) => adapter.interchainSecurityModule(chain));
|
|
21
|
+
}
|
|
22
|
+
owners() {
|
|
23
|
+
return this.adapterMap((chain, adapter) => adapter.owner(chain));
|
|
24
|
+
}
|
|
25
|
+
remoteRouters(origin) {
|
|
26
|
+
return this.adapter(origin).remoteRouters(origin);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.MultiProtocolRouterApp = MultiProtocolRouterApp;
|
|
30
|
+
class MultiProtocolGasRouterApp extends MultiProtocolRouterApp {
|
|
31
|
+
constructor() {
|
|
32
|
+
super(...arguments);
|
|
33
|
+
this.protocolToAdapter = {
|
|
34
|
+
[utils_1.ProtocolType.Ethereum]: EvmRouterAdapter_1.EvmGasRouterAdapter,
|
|
35
|
+
[utils_1.ProtocolType.Sealevel]: SealevelRouterAdapter_1.SealevelGasRouterAdapter,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async quoteGasPayment(origin, destination) {
|
|
39
|
+
return this.adapter(origin).quoteGasPayment(origin, destination);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.MultiProtocolGasRouterApp = MultiProtocolGasRouterApp;
|
|
43
|
+
//# sourceMappingURL=MultiProtocolRouterApps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiProtocolRouterApps.js","sourceRoot":"","sources":["../../src/router/MultiProtocolRouterApps.ts"],"names":[],"mappings":";;;AAAA,gDAAqE;AAErE,8DAA2D;AAG3D,kEAGqC;AACrC,4EAG0C;AAM1C,MAAa,sBAGX,SAAQ,mCAA4C;IAHtD;;QAI2B,sBAAiB,GAAG;YAC3C,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAE,mCAAgB;YACzC,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAE,6CAAqB;SAC/C,CAAC;IAqBJ,CAAC;IAnBC,MAAM,CAAC,KAAgB;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CACxC,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CACxC,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,aAAa,CACX,MAAiB;QAEjB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACpD,CAAC;CACF;AA5BD,wDA4BC;AAED,MAAa,yBAGX,SAAQ,sBAAkD;IAH5D;;QAI2B,sBAAiB,GAAG;YAC3C,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAE,sCAAmB;YAC5C,CAAC,oBAAY,CAAC,QAAQ,CAAC,EAAE,gDAAwB;SAClD,CAAC;IAQJ,CAAC;IANC,KAAK,CAAC,eAAe,CACnB,MAAiB,EACjB,WAAsB;QAEtB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;CACF;AAfD,8DAeC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiProtocolRouterApps.test.d.ts","sourceRoot":"","sources":["../../src/router/MultiProtocolRouterApps.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chai_1 = require("chai");
|
|
4
|
+
const chains_1 = require("../consts/chains");
|
|
5
|
+
const MultiProtocolProvider_1 = require("../providers/MultiProtocolProvider");
|
|
6
|
+
const MultiProtocolRouterApps_1 = require("./MultiProtocolRouterApps");
|
|
7
|
+
const EvmRouterAdapter_1 = require("./adapters/EvmRouterAdapter");
|
|
8
|
+
describe('MultiProtocolRouterApp', () => {
|
|
9
|
+
describe('constructs', () => {
|
|
10
|
+
const multiProvider = new MultiProtocolProvider_1.MultiProtocolProvider();
|
|
11
|
+
it('creates an app class', async () => {
|
|
12
|
+
const app = new MultiProtocolRouterApps_1.MultiProtocolRouterApp(multiProvider);
|
|
13
|
+
(0, chai_1.expect)(app).to.be.instanceOf(MultiProtocolRouterApps_1.MultiProtocolRouterApp);
|
|
14
|
+
const ethAdapter = app.adapter(chains_1.Chains.ethereum);
|
|
15
|
+
(0, chai_1.expect)(ethAdapter).to.be.instanceOf(EvmRouterAdapter_1.EvmRouterAdapter);
|
|
16
|
+
(0, chai_1.expect)(!!ethAdapter.remoteRouter).to.be.true;
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=MultiProtocolRouterApps.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiProtocolRouterApps.test.js","sourceRoot":"","sources":["../../src/router/MultiProtocolRouterApps.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAI9B,6CAA0C;AAC1C,8EAA2E;AAE3E,uEAAmE;AACnE,kEAA+D;AAE/D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,MAAM,aAAa,GAAG,IAAI,6CAAqB,EAAuB,CAAC;QACvE,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,gDAAsB,CAAC,aAAa,CAAC,CAAC;YACtD,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,gDAAsB,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,mCAAgB,CAAC,CAAC;YACtD,IAAA,aAAM,EAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,43 +1,23 @@
|
|
|
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
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ProxiedRouterChecker = void 0;
|
|
13
4
|
const HyperlaneRouterChecker_1 = require("./HyperlaneRouterChecker");
|
|
14
5
|
class ProxiedRouterChecker extends HyperlaneRouterChecker_1.HyperlaneRouterChecker {
|
|
15
|
-
checkOwnership(chain) {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
proxyAdmin: this.app.getAddresses(chain).timelockController,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
return _super.checkOwnership.call(this, chain, config.owner, ownableOverrides);
|
|
28
|
-
});
|
|
6
|
+
async checkOwnership(chain) {
|
|
7
|
+
const config = this.configMap[chain];
|
|
8
|
+
let ownableOverrides = {};
|
|
9
|
+
if (config.timelock) {
|
|
10
|
+
ownableOverrides = {
|
|
11
|
+
proxyAdmin: this.app.getAddresses(chain).timelockController,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
return super.checkOwnership(chain, config.owner, ownableOverrides);
|
|
29
15
|
}
|
|
30
|
-
checkChain(chain) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
});
|
|
16
|
+
async checkChain(chain) {
|
|
17
|
+
await super.checkHyperlaneConnectionClient(chain);
|
|
18
|
+
await super.checkEnrolledRouters(chain);
|
|
19
|
+
await this.checkProxiedContracts(chain);
|
|
20
|
+
await this.checkOwnership(chain);
|
|
41
21
|
}
|
|
42
22
|
}
|
|
43
23
|
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;IACtD,KAAK,CAAC,cAAc,CAAC,KAAgB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,gBAAgB,GAAG;gBACjB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,kBAAkB;aAC5D,CAAC;SACH;QAED,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAgB;QAC/B,MAAM,KAAK,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF;AAvBD,oDAuBC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Router } from '@hyperlane-xyz/core';
|
|
2
|
-
import { HyperlaneContracts } from '../contracts';
|
|
2
|
+
import { HyperlaneContracts } from '../contracts/types';
|
|
3
3
|
import { ChainName } from '../types';
|
|
4
4
|
import { HyperlaneRouterDeployer } from './HyperlaneRouterDeployer';
|
|
5
5
|
import { ProxiedFactories, ProxiedRouterConfig } from './types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxiedRouterDeployer.d.ts","sourceRoot":"","sources":["../../src/router/ProxiedRouterDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,MAAM,EAGP,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ProxiedRouterDeployer.d.ts","sourceRoot":"","sources":["../../src/router/ProxiedRouterDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,MAAM,EAGP,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEhE,8BAAsB,qBAAqB,CACzC,MAAM,SAAS,mBAAmB,EAClC,SAAS,SAAS,gBAAgB,EAClC,SAAS,SAAS,MAAM,SAAS,CACjC,SAAQ,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,CAAC;IAEvC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM;IAIxD,QAAQ,CAAC,eAAe,CACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtD,QAAQ,CAAC,cAAc,CACrB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CACR,UAAU,CACR,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAClE,CACF;IAEK,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;CAgD1C"}
|
|
@@ -1,13 +1,4 @@
|
|
|
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
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ProxiedRouterDeployer = void 0;
|
|
13
4
|
const ethers_1 = require("ethers");
|
|
@@ -18,37 +9,32 @@ class ProxiedRouterDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDep
|
|
|
18
9
|
router(contracts) {
|
|
19
10
|
return contracts[this.routerContractName];
|
|
20
11
|
}
|
|
21
|
-
deployContracts(chain, config) {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
12
|
+
async deployContracts(chain, config) {
|
|
13
|
+
const proxyAdmin = await this.deployContractFromFactory(chain, this.factories.proxyAdmin, 'proxyAdmin', []);
|
|
14
|
+
let timelockController;
|
|
15
|
+
let adminOwner;
|
|
16
|
+
if (config.timelock) {
|
|
17
|
+
timelockController = await this.deployTimelock(chain, config.timelock);
|
|
18
|
+
adminOwner = timelockController.address;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
timelockController = core_1.TimelockController__factory.connect(ethers_1.constants.AddressZero, this.multiProvider.getProvider(chain));
|
|
22
|
+
adminOwner = config.owner;
|
|
23
|
+
}
|
|
24
|
+
await super.runIfOwner(chain, proxyAdmin, async () => {
|
|
25
|
+
this.logger(`Checking ownership of proxy admin to ${adminOwner}`);
|
|
26
|
+
if (!(0, utils_1.eqAddress)(await proxyAdmin.owner(), adminOwner)) {
|
|
27
|
+
this.logger(`Transferring ownership of proxy admin to ${adminOwner}`);
|
|
28
|
+
return this.multiProvider.handleTx(chain, proxyAdmin.transferOwnership(adminOwner));
|
|
36
29
|
}
|
|
37
|
-
|
|
38
|
-
this.logger(`Checking ownership of proxy admin to ${adminOwner}`);
|
|
39
|
-
if (!(0, utils_1.eqAddress)(yield proxyAdmin.owner(), adminOwner)) {
|
|
40
|
-
this.logger(`Transferring ownership of proxy admin to ${adminOwner}`);
|
|
41
|
-
return this.multiProvider.handleTx(chain, proxyAdmin.transferOwnership(adminOwner));
|
|
42
|
-
}
|
|
43
|
-
return;
|
|
44
|
-
}));
|
|
45
|
-
const proxiedRouter = yield this.deployProxiedContract(chain, this.routerContractName, proxyAdmin.address, yield this.constructorArgs(chain, config), yield this.initializeArgs(chain, config));
|
|
46
|
-
return {
|
|
47
|
-
[this.routerContractName]: proxiedRouter,
|
|
48
|
-
proxyAdmin,
|
|
49
|
-
timelockController,
|
|
50
|
-
};
|
|
30
|
+
return;
|
|
51
31
|
});
|
|
32
|
+
const proxiedRouter = await this.deployProxiedContract(chain, this.routerContractName, proxyAdmin.address, await this.constructorArgs(chain, config), await this.initializeArgs(chain, config));
|
|
33
|
+
return {
|
|
34
|
+
[this.routerContractName]: proxiedRouter,
|
|
35
|
+
proxyAdmin,
|
|
36
|
+
timelockController,
|
|
37
|
+
};
|
|
52
38
|
}
|
|
53
39
|
}
|
|
54
40
|
exports.ProxiedRouterDeployer = ProxiedRouterDeployer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxiedRouterDeployer.js","sourceRoot":"","sources":["../../src/router/ProxiedRouterDeployer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProxiedRouterDeployer.js","sourceRoot":"","sources":["../../src/router/ProxiedRouterDeployer.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAEnC,8CAI6B;AAC7B,gDAAiD;AAKjD,uEAAoE;AAGpE,MAAsB,qBAIpB,SAAQ,iDAA0C;IAGlD,MAAM,CAAC,SAAwC;QAC7C,OAAO,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAW,CAAC;IACtD,CAAC;IAgBD,KAAK,CAAC,eAAe,CACnB,KAAgB,EAChB,MAAc;QAEd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,CACrD,KAAK,EACL,IAAI,CAAC,SAAS,CAAC,UAAU,EACzB,YAAY,EACZ,EAAE,CACH,CAAC;QAEF,IAAI,kBAAsC,CAAC;QAC3C,IAAI,UAAkB,CAAC;QACvB,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,kBAAkB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvE,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC;SACzC;aAAM;YACL,kBAAkB,GAAG,kCAA2B,CAAC,OAAO,CACtD,kBAAS,CAAC,WAAW,EACrB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CACtC,CAAC;YACF,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;SAC3B;QAED,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;YAElE,IAAI,CAAC,IAAA,iBAAS,EAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,EAAE;gBACpD,IAAI,CAAC,MAAM,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;gBACtE,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAChC,KAAK,EACL,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,CACzC,CAAC;aACH;YACD,OAAO;QACT,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACpD,KAAK,EACL,IAAI,CAAC,kBAAkB,EACvB,UAAU,CAAC,OAAO,EAClB,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EACzC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CACzC,CAAC;QAEF,OAAO;YACL,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,aAAa;YACxC,UAAU;YACV,kBAAkB;SACc,CAAC;IACrC,CAAC;CACF;AA5ED,sDA4EC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { BigNumber } from 'ethers';
|
|
2
2
|
import { GasRouter, Router } from '@hyperlane-xyz/core';
|
|
3
3
|
import { Address } from '@hyperlane-xyz/utils';
|
|
4
|
-
import { HyperlaneApp } from '../HyperlaneApp';
|
|
5
|
-
import { HyperlaneContracts, HyperlaneFactories } from '../contracts';
|
|
4
|
+
import { HyperlaneApp } from '../app/HyperlaneApp';
|
|
5
|
+
import { HyperlaneContracts, HyperlaneFactories } from '../contracts/types';
|
|
6
6
|
import { ChainMap, ChainName } from '../types';
|
|
7
7
|
export { Router } from '@hyperlane-xyz/core';
|
|
8
8
|
export declare abstract class RouterApp<Factories extends HyperlaneFactories> extends HyperlaneApp<Factories> {
|
|
9
9
|
abstract router(contracts: HyperlaneContracts<Factories>): Router;
|
|
10
|
-
getSecurityModules
|
|
11
|
-
getOwners
|
|
10
|
+
getSecurityModules(): Promise<ChainMap<Address>>;
|
|
11
|
+
getOwners(): Promise<ChainMap<Address>>;
|
|
12
12
|
}
|
|
13
13
|
export declare abstract class GasRouterApp<Factories extends HyperlaneFactories, R extends GasRouter> extends RouterApp<Factories> {
|
|
14
14
|
abstract router(contracts: HyperlaneContracts<Factories>): R;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterApps.d.ts","sourceRoot":"","sources":["../../src/router/RouterApps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAyB,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RouterApps.d.ts","sourceRoot":"","sources":["../../src/router/RouterApps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAyB,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,8BAAsB,SAAS,CAC7B,SAAS,SAAS,kBAAkB,CACpC,SAAQ,YAAY,CAAC,SAAS,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM;IAEjE,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAQhD,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;CAKxC;AAED,8BAAsB,YAAY,CAChC,SAAS,SAAS,kBAAkB,EACpC,CAAC,SAAS,SAAS,CACnB,SAAQ,SAAS,CAAC,SAAS,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC;IAEtD,eAAe,CACnB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,SAAS,CAAC;CAKtB"}
|