@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,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.appFromAddressesMapHelper = exports.filterOwnableContracts = exports.connectContractsMap = exports.connectContracts = exports.attachContractsMap = exports.attachContracts = exports.filterAddressesMap = exports.serializeContracts = exports.serializeContractsMap = void 0;
|
|
13
4
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
@@ -57,20 +48,18 @@ function connectContractsMap(contractsMap, multiProvider) {
|
|
|
57
48
|
return (0, utils_1.objMap)(contractsMap, (chain, contracts) => connectContracts(contracts, multiProvider.getSignerOrProvider(chain)));
|
|
58
49
|
}
|
|
59
50
|
exports.connectContractsMap = connectContractsMap;
|
|
60
|
-
function filterOwnableContracts(contracts) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return (0, utils_1.objFilter)(contracts, (name, contract) => isOwnableContracts[name]);
|
|
73
|
-
});
|
|
51
|
+
async function filterOwnableContracts(contracts) {
|
|
52
|
+
const isOwnable = async (_, contract) => {
|
|
53
|
+
try {
|
|
54
|
+
await contract.owner();
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
catch (_) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const isOwnableContracts = await (0, utils_1.promiseObjAll)((0, utils_1.objMap)(contracts, isOwnable));
|
|
62
|
+
return (0, utils_1.objFilter)(contracts, (name, contract) => isOwnableContracts[name]);
|
|
74
63
|
}
|
|
75
64
|
exports.filterOwnableContracts = filterOwnableContracts;
|
|
76
65
|
function appFromAddressesMapHelper(addressesMap, factories, multiProvider) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/contracts/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ethers } from 'ethers';
|
|
2
|
+
import type { Address } from '@hyperlane-xyz/utils';
|
|
3
|
+
import type { ChainMap } from '../types';
|
|
4
|
+
export type AddressesMap = {
|
|
5
|
+
[key: string]: Address;
|
|
6
|
+
};
|
|
7
|
+
export type HyperlaneFactories = {
|
|
8
|
+
[key: string]: ethers.ContractFactory;
|
|
9
|
+
};
|
|
10
|
+
export type HyperlaneContracts<F extends HyperlaneFactories> = {
|
|
11
|
+
[P in keyof F]: Awaited<ReturnType<F[P]['deploy']>>;
|
|
12
|
+
};
|
|
13
|
+
export type HyperlaneContractsMap<F extends HyperlaneFactories> = ChainMap<HyperlaneContracts<F>>;
|
|
14
|
+
export type HyperlaneAddresses<F extends HyperlaneFactories> = {
|
|
15
|
+
[P in keyof F]: Address;
|
|
16
|
+
};
|
|
17
|
+
export type HyperlaneAddressesMap<F extends HyperlaneFactories> = ChainMap<HyperlaneAddresses<F>>;
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,kBAAkB,IAAI;KAC5D,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,IAAI,QAAQ,CACxE,kBAAkB,CAAC,CAAC,CAAC,CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,kBAAkB,IAAI;KAC5D,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,IAAI,QAAQ,CACxE,kBAAkB,CAAC,CAAC,CAAC,CACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/contracts/types.ts"],"names":[],"mappings":""}
|
|
@@ -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
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -24,81 +15,81 @@ const testUtils_1 = require("../test/testUtils");
|
|
|
24
15
|
const HyperlaneCore_1 = require("./HyperlaneCore");
|
|
25
16
|
const HyperlaneCoreChecker_1 = require("./HyperlaneCoreChecker");
|
|
26
17
|
const HyperlaneCoreDeployer_1 = require("./HyperlaneCoreDeployer");
|
|
27
|
-
describe('core', () =>
|
|
18
|
+
describe('core', async () => {
|
|
28
19
|
let multiProvider;
|
|
29
20
|
let deployer;
|
|
30
21
|
let core;
|
|
31
22
|
let contracts;
|
|
32
23
|
let coreConfig;
|
|
33
24
|
let ismFactory;
|
|
34
|
-
before(() =>
|
|
35
|
-
const [signer] =
|
|
25
|
+
before(async () => {
|
|
26
|
+
const [signer] = await hardhat_1.ethers.getSigners();
|
|
36
27
|
multiProvider = MultiProvider_1.MultiProvider.createTestMultiProvider({ signer });
|
|
37
28
|
const ismFactoryDeployer = new HyperlaneIsmFactoryDeployer_1.HyperlaneIsmFactoryDeployer(multiProvider);
|
|
38
|
-
const ismFactories =
|
|
29
|
+
const ismFactories = await ismFactoryDeployer.deploy(chains_1.TestChains);
|
|
39
30
|
ismFactory = new HyperlaneIsmFactory_1.HyperlaneIsmFactory(ismFactories, multiProvider);
|
|
40
|
-
})
|
|
41
|
-
beforeEach(() =>
|
|
42
|
-
const [signer] =
|
|
31
|
+
});
|
|
32
|
+
beforeEach(async () => {
|
|
33
|
+
const [signer] = await hardhat_1.ethers.getSigners();
|
|
43
34
|
// This is kind of awkward and really these tests shouldn't live here
|
|
44
35
|
multiProvider = MultiProvider_1.MultiProvider.createTestMultiProvider({ signer });
|
|
45
36
|
coreConfig = (0, testUtils_1.testCoreConfig)(chains_1.TestChains);
|
|
46
|
-
})
|
|
47
|
-
it('deploys', () =>
|
|
37
|
+
});
|
|
38
|
+
it('deploys', async () => {
|
|
48
39
|
deployer = new HyperlaneCoreDeployer_1.HyperlaneCoreDeployer(multiProvider, ismFactory);
|
|
49
|
-
contracts =
|
|
40
|
+
contracts = await deployer.deploy(coreConfig);
|
|
50
41
|
core = new HyperlaneCore_1.HyperlaneCore(contracts, multiProvider);
|
|
51
|
-
})
|
|
52
|
-
describe('failure modes', () =>
|
|
53
|
-
beforeEach(() =>
|
|
42
|
+
});
|
|
43
|
+
describe('failure modes', async () => {
|
|
44
|
+
beforeEach(async () => {
|
|
54
45
|
deployer = new HyperlaneCoreDeployer_1.HyperlaneCoreDeployer(multiProvider, ismFactory);
|
|
55
46
|
const stub = sinon_1.default.stub(deployer, 'deployContracts');
|
|
56
47
|
stub.withArgs('test3', sinon_1.default.match.any).rejects();
|
|
57
48
|
// @ts-ignore
|
|
58
49
|
deployer.deployContracts.callThrough();
|
|
59
50
|
try {
|
|
60
|
-
|
|
51
|
+
await deployer.deploy(coreConfig);
|
|
61
52
|
// eslint-disable-next-line no-empty
|
|
62
53
|
}
|
|
63
54
|
catch (e) { }
|
|
64
|
-
})
|
|
65
|
-
afterEach(() =>
|
|
55
|
+
});
|
|
56
|
+
afterEach(async () => {
|
|
66
57
|
sinon_1.default.restore();
|
|
67
|
-
})
|
|
68
|
-
it('persists partial failure', () =>
|
|
58
|
+
});
|
|
59
|
+
it('persists partial failure', async () => {
|
|
69
60
|
(0, chai_1.expect)(deployer.deployedContracts).to.have.keys(['test1', 'test2']);
|
|
70
|
-
})
|
|
71
|
-
it('can be resumed from partial (chain) failure', () =>
|
|
61
|
+
});
|
|
62
|
+
it('can be resumed from partial (chain) failure', async () => {
|
|
72
63
|
sinon_1.default.restore(); // restore normal deployer behavior and test3 will be deployed
|
|
73
|
-
const result =
|
|
64
|
+
const result = await deployer.deploy(coreConfig);
|
|
74
65
|
(0, chai_1.expect)(result).to.have.keys(['test1', 'test2', 'test3']);
|
|
75
66
|
(0, chai_1.expect)(result.test3).to.have.keys(Object.keys(result.test2));
|
|
76
|
-
})
|
|
77
|
-
it('can be resumed from partial contracts', () =>
|
|
67
|
+
});
|
|
68
|
+
it('can be resumed from partial contracts', async () => {
|
|
78
69
|
sinon_1.default.restore(); // restore normal deployer behavior
|
|
79
70
|
//@ts-ignore operand not optional, ignore for this test
|
|
80
71
|
delete deployer.deployedContracts.test2.multisigIsm;
|
|
81
72
|
//@ts-ignore operand not optional, ignore for this test
|
|
82
73
|
delete deployer.deployedContracts.test2.mailbox;
|
|
83
|
-
const result =
|
|
74
|
+
const result = await deployer.deploy(coreConfig);
|
|
84
75
|
(0, chai_1.expect)(result.test2).to.have.keys(Object.keys(result.test1));
|
|
85
76
|
(0, chai_1.expect)(result.test3).to.have.keys(Object.keys(result.test1));
|
|
86
|
-
})
|
|
87
|
-
it('times out ', () =>
|
|
77
|
+
});
|
|
78
|
+
it('times out ', async () => {
|
|
88
79
|
// @ts-ignore
|
|
89
80
|
deployer.chainTimeoutMs = 1;
|
|
90
81
|
try {
|
|
91
|
-
|
|
82
|
+
await deployer.deploy(coreConfig);
|
|
92
83
|
}
|
|
93
84
|
catch (e) {
|
|
94
85
|
// TODO: figure out how to test specific error case
|
|
95
86
|
// expect(e.message).to.include('Timed out in 1ms');
|
|
96
87
|
}
|
|
97
|
-
})
|
|
98
|
-
})
|
|
99
|
-
it('checks', () =>
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
it('checks', async () => {
|
|
100
91
|
const checker = new HyperlaneCoreChecker_1.HyperlaneCoreChecker(multiProvider, core, coreConfig, ismFactory);
|
|
101
|
-
|
|
102
|
-
})
|
|
103
|
-
})
|
|
92
|
+
await checker.check();
|
|
93
|
+
});
|
|
94
|
+
});
|
|
104
95
|
//# sourceMappingURL=CoreDeployer.hardhat-test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreDeployer.hardhat-test.js","sourceRoot":"","sources":["../../src/core/CoreDeployer.hardhat-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CoreDeployer.hardhat-test.js","sourceRoot":"","sources":["../../src/core/CoreDeployer.hardhat-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
2
|
import { Mailbox } from '@hyperlane-xyz/core';
|
|
3
3
|
import { ParsedMessage } from '@hyperlane-xyz/utils';
|
|
4
|
-
import { HyperlaneApp } from '../HyperlaneApp';
|
|
4
|
+
import { HyperlaneApp } from '../app/HyperlaneApp';
|
|
5
5
|
import { HyperlaneEnvironment } from '../consts/environments';
|
|
6
|
-
import { HyperlaneAddressesMap } from '../contracts';
|
|
6
|
+
import { HyperlaneAddressesMap } from '../contracts/types';
|
|
7
7
|
import { MultiProvider } from '../providers/MultiProvider';
|
|
8
8
|
import { ChainName } from '../types';
|
|
9
9
|
import { CoreFactories } from './contracts';
|
|
10
|
-
export
|
|
10
|
+
export type DispatchedMessage = {
|
|
11
11
|
id: string;
|
|
12
12
|
message: string;
|
|
13
13
|
parsed: ParsedMessage;
|
|
@@ -20,9 +20,9 @@ export declare class HyperlaneCore extends HyperlaneApp<CoreFactories> {
|
|
|
20
20
|
mailbox: Mailbox;
|
|
21
21
|
};
|
|
22
22
|
protected waitForProcessReceipt(message: DispatchedMessage): Promise<ethers.ContractReceipt>;
|
|
23
|
-
protected waitForMessageWasProcessed(message: DispatchedMessage): Promise<void>;
|
|
23
|
+
protected waitForMessageWasProcessed(message: DispatchedMessage, delay?: number, maxAttempts?: number): Promise<void>;
|
|
24
24
|
waitForMessageProcessing(sourceTx: ethers.ContractReceipt): Promise<ethers.ContractReceipt[]>;
|
|
25
|
-
waitForMessageProcessed(sourceTx: ethers.ContractReceipt): Promise<void>;
|
|
25
|
+
waitForMessageProcessed(sourceTx: ethers.ContractReceipt, delay?: number, maxAttempts?: number): Promise<void>;
|
|
26
26
|
getDispatchedMessages(sourceTx: ethers.ContractReceipt): DispatchedMessage[];
|
|
27
27
|
static getDispatchedMessages(sourceTx: ethers.ContractReceipt): DispatchedMessage[];
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCore.d.ts","sourceRoot":"","sources":["../../src/core/HyperlaneCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAoB,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,aAAa,EAId,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"HyperlaneCore.d.ts","sourceRoot":"","sources":["../../src/core/HyperlaneCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAoB,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,aAAa,EAId,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,oBAAoB,EAErB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,qBAAa,aAAc,SAAQ,YAAY,CAAC,aAAa,CAAC;IAC5D,MAAM,CAAC,eAAe,CAAC,GAAG,SAAS,oBAAoB,EACrD,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,aAAa,GAC3B,aAAa;IAQhB,MAAM,CAAC,gBAAgB,CACrB,YAAY,EAAE,qBAAqB,CAAC,GAAG,CAAC,EACxC,aAAa,EAAE,aAAa,GAC3B,aAAa;IAShB,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG;QACpD,gBAAgB,EAAE,SAAS,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC;KAClB;IAQD,SAAS,CAAC,qBAAqB,CAC7B,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;cAiBlB,0BAA0B,CACxC,OAAO,EAAE,iBAAiB,EAC1B,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAgBhB,wBAAwB,CACtB,QAAQ,EAAE,MAAM,CAAC,eAAe,GAC/B,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;IAK9B,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,CAAC,eAAe,EAChC,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAUhB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,GAAG,iBAAiB,EAAE;IAI5E,MAAM,CAAC,qBAAqB,CAC1B,QAAQ,EAAE,MAAM,CAAC,eAAe,GAC/B,iBAAiB,EAAE;CAqBvB"}
|
|
@@ -1,20 +1,11 @@
|
|
|
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.HyperlaneCore = void 0;
|
|
13
4
|
const core_1 = require("@hyperlane-xyz/core");
|
|
14
5
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
15
|
-
const HyperlaneApp_1 = require("../HyperlaneApp");
|
|
6
|
+
const HyperlaneApp_1 = require("../app/HyperlaneApp");
|
|
16
7
|
const environments_1 = require("../consts/environments");
|
|
17
|
-
const contracts_1 = require("../contracts");
|
|
8
|
+
const contracts_1 = require("../contracts/contracts");
|
|
18
9
|
const contracts_2 = require("./contracts");
|
|
19
10
|
class HyperlaneCore extends HyperlaneApp_1.HyperlaneApp {
|
|
20
11
|
static fromEnvironment(env, multiProvider) {
|
|
@@ -46,28 +37,24 @@ class HyperlaneCore extends HyperlaneApp_1.HyperlaneApp {
|
|
|
46
37
|
});
|
|
47
38
|
});
|
|
48
39
|
}
|
|
49
|
-
waitForMessageWasProcessed(message) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return;
|
|
60
|
-
});
|
|
40
|
+
async waitForMessageWasProcessed(message, delay, maxAttempts) {
|
|
41
|
+
const id = (0, utils_1.messageId)(message.message);
|
|
42
|
+
const { mailbox } = this.getDestination(message);
|
|
43
|
+
await (0, utils_1.pollAsync)(async () => {
|
|
44
|
+
const delivered = await mailbox.delivered(id);
|
|
45
|
+
if (!delivered) {
|
|
46
|
+
throw new Error(`Message ${id} not yet processed`);
|
|
47
|
+
}
|
|
48
|
+
}, delay, maxAttempts);
|
|
49
|
+
return;
|
|
61
50
|
}
|
|
62
51
|
waitForMessageProcessing(sourceTx) {
|
|
63
52
|
const messages = HyperlaneCore.getDispatchedMessages(sourceTx);
|
|
64
53
|
return Promise.all(messages.map((msg) => this.waitForProcessReceipt(msg)));
|
|
65
54
|
}
|
|
66
|
-
waitForMessageProcessed(sourceTx) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
yield Promise.all(messages.map((msg) => this.waitForMessageWasProcessed(msg)));
|
|
70
|
-
});
|
|
55
|
+
async waitForMessageProcessed(sourceTx, delay, maxAttempts) {
|
|
56
|
+
const messages = HyperlaneCore.getDispatchedMessages(sourceTx);
|
|
57
|
+
await Promise.all(messages.map((msg) => this.waitForMessageWasProcessed(msg, delay, maxAttempts)));
|
|
71
58
|
}
|
|
72
59
|
// Redundant with static method but keeping for backwards compatibility
|
|
73
60
|
getDispatchedMessages(sourceTx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCore.js","sourceRoot":"","sources":["../../src/core/HyperlaneCore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneCore.js","sourceRoot":"","sources":["../../src/core/HyperlaneCore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,17 @@
|
|
|
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
|
const MultiProvider_1 = require("../providers/MultiProvider");
|
|
13
4
|
const HyperlaneCore_1 = require("./HyperlaneCore");
|
|
14
5
|
describe('HyperlaneCore', () => {
|
|
15
6
|
describe('fromEnvironment', () => {
|
|
16
|
-
it('creates an object for mainnet', () =>
|
|
7
|
+
it('creates an object for mainnet', async () => {
|
|
17
8
|
const multiProvider = new MultiProvider_1.MultiProvider();
|
|
18
9
|
HyperlaneCore_1.HyperlaneCore.fromEnvironment('mainnet', multiProvider);
|
|
19
|
-
})
|
|
20
|
-
it('creates an object for testnet', () =>
|
|
10
|
+
});
|
|
11
|
+
it('creates an object for testnet', async () => {
|
|
21
12
|
const multiProvider = new MultiProvider_1.MultiProvider();
|
|
22
13
|
HyperlaneCore_1.HyperlaneCore.fromEnvironment('testnet', multiProvider);
|
|
23
|
-
})
|
|
14
|
+
});
|
|
24
15
|
});
|
|
25
16
|
});
|
|
26
17
|
//# sourceMappingURL=HyperlaneCore.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCore.test.js","sourceRoot":"","sources":["../../src/core/HyperlaneCore.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneCore.test.js","sourceRoot":"","sources":["../../src/core/HyperlaneCore.test.ts"],"names":[],"mappings":";;AAAA,8DAA2D;AAE3D,mDAAgD;AAEhD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;YAC1C,6BAAa,CAAC,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;YAC1C,6BAAa,CAAC,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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.HyperlaneCoreChecker = void 0;
|
|
13
4
|
const ethers_1 = require("ethers");
|
|
@@ -22,105 +13,95 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
22
13
|
super(multiProvider, app, configMap);
|
|
23
14
|
this.ismFactory = ismFactory;
|
|
24
15
|
}
|
|
25
|
-
checkChain(chain) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
});
|
|
16
|
+
async checkChain(chain) {
|
|
17
|
+
const config = this.configMap[chain];
|
|
18
|
+
// skip chains that are configured to be removed
|
|
19
|
+
if (config.remove) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
await this.checkDomainOwnership(chain);
|
|
23
|
+
await this.checkProxiedContracts(chain);
|
|
24
|
+
await this.checkMailbox(chain);
|
|
25
|
+
await this.checkBytecodes(chain);
|
|
26
|
+
await this.checkValidatorAnnounce(chain);
|
|
27
|
+
if (config.upgrade) {
|
|
28
|
+
await this.checkUpgrade(chain, config.upgrade);
|
|
29
|
+
}
|
|
41
30
|
}
|
|
42
|
-
checkDomainOwnership(chain) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
31
|
+
async checkDomainOwnership(chain) {
|
|
32
|
+
const config = this.configMap[chain];
|
|
33
|
+
let ownableOverrides = {};
|
|
34
|
+
if (config.upgrade) {
|
|
35
|
+
const timelockController = this.app.getAddresses(chain).timelockController;
|
|
36
|
+
ownableOverrides = {
|
|
37
|
+
proxyAdmin: timelockController,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return this.checkOwnership(chain, config.owner, ownableOverrides);
|
|
41
|
+
}
|
|
42
|
+
async checkMailbox(chain) {
|
|
43
|
+
const contracts = this.app.getContracts(chain);
|
|
44
|
+
const mailbox = contracts.mailbox;
|
|
45
|
+
const localDomain = await mailbox.localDomain();
|
|
46
|
+
(0, utils_1.assert)(localDomain === this.multiProvider.getDomainId(chain));
|
|
47
|
+
const actualIsm = await mailbox.defaultIsm();
|
|
48
|
+
const config = this.configMap[chain];
|
|
49
|
+
const matches = await (0, HyperlaneIsmFactory_1.moduleMatchesConfig)(chain, actualIsm, config.defaultIsm, this.ismFactory.multiProvider, this.ismFactory.getContracts(chain));
|
|
50
|
+
if (!matches) {
|
|
51
|
+
const violation = {
|
|
52
|
+
type: types_1.CoreViolationType.Mailbox,
|
|
53
|
+
mailboxType: types_1.MailboxViolationType.DefaultIsm,
|
|
54
|
+
contract: mailbox,
|
|
55
|
+
chain,
|
|
56
|
+
actual: actualIsm,
|
|
57
|
+
expected: config.defaultIsm,
|
|
58
|
+
};
|
|
59
|
+
this.addViolation(violation);
|
|
60
|
+
}
|
|
54
61
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
async checkBytecodes(chain) {
|
|
63
|
+
const contracts = this.app.getContracts(chain);
|
|
64
|
+
const mailbox = contracts.mailbox;
|
|
65
|
+
const localDomain = await mailbox.localDomain();
|
|
66
|
+
const implementation = await (0, proxy_1.proxyImplementation)(this.multiProvider.getProvider(chain), mailbox.address);
|
|
67
|
+
await this.checkBytecode(chain, 'Mailbox implementation', implementation, [
|
|
68
|
+
bytecode_1.BytecodeHash.MAILBOX_WITHOUT_LOCAL_DOMAIN_BYTE_CODE_HASH,
|
|
69
|
+
bytecode_1.BytecodeHash.MAILBOX_WITHOUT_LOCAL_DOMAIN_NONZERO_PAUSE_BYTE_CODE_HASH,
|
|
70
|
+
], (bytecode) =>
|
|
71
|
+
// This is obviously super janky but basically we are searching
|
|
72
|
+
// for the ocurrences of localDomain in the bytecode and remove
|
|
73
|
+
// that to compare, but some coincidental ocurrences of
|
|
74
|
+
// localDomain in the bytecode should be not be removed which
|
|
75
|
+
// are just done via an offset guard
|
|
76
|
+
bytecode.replaceAll(ethers_1.utils.defaultAbiCoder
|
|
77
|
+
.encode(['uint32'], [localDomain])
|
|
78
|
+
.slice(2), (match, offset) => (offset > 8000 ? match : '')));
|
|
79
|
+
await this.checkBytecode(chain, 'Mailbox proxy', contracts.mailbox.address, [bytecode_1.BytecodeHash.TRANSPARENT_PROXY_BYTECODE_HASH]);
|
|
80
|
+
await this.checkBytecode(chain, 'ProxyAdmin', contracts.proxyAdmin.address, [bytecode_1.BytecodeHash.PROXY_ADMIN_BYTECODE_HASH]);
|
|
81
|
+
}
|
|
82
|
+
async checkValidatorAnnounce(chain) {
|
|
83
|
+
const validators = new Set();
|
|
84
|
+
const remotes = Object.keys(this.configMap).filter((c) => c !== chain);
|
|
85
|
+
const remoteOriginValidators = remotes.map((remote) => (0, HyperlaneIsmFactory_1.collectValidators)(chain, this.configMap[remote].defaultIsm));
|
|
86
|
+
remoteOriginValidators.map((set) => {
|
|
87
|
+
[...set].map((v) => validators.add(v));
|
|
88
|
+
});
|
|
89
|
+
const validatorAnnounce = this.app.getContracts(chain).validatorAnnounce;
|
|
90
|
+
const announcedValidators = await validatorAnnounce.getAnnouncedValidators();
|
|
91
|
+
[...validators].forEach((validator) => {
|
|
92
|
+
const matches = announcedValidators.filter((x) => (0, utils_1.eqAddress)(x, validator));
|
|
93
|
+
if (matches.length == 0) {
|
|
65
94
|
const violation = {
|
|
66
|
-
type: types_1.CoreViolationType.
|
|
67
|
-
mailboxType: types_1.MailboxViolationType.DefaultIsm,
|
|
68
|
-
contract: mailbox,
|
|
95
|
+
type: types_1.CoreViolationType.ValidatorAnnounce,
|
|
69
96
|
chain,
|
|
70
|
-
|
|
71
|
-
|
|
97
|
+
validator,
|
|
98
|
+
actual: false,
|
|
99
|
+
expected: true,
|
|
72
100
|
};
|
|
73
101
|
this.addViolation(violation);
|
|
74
102
|
}
|
|
75
103
|
});
|
|
76
104
|
}
|
|
77
|
-
checkBytecodes(chain) {
|
|
78
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
const contracts = this.app.getContracts(chain);
|
|
80
|
-
const mailbox = contracts.mailbox;
|
|
81
|
-
const localDomain = yield mailbox.localDomain();
|
|
82
|
-
const implementation = yield (0, proxy_1.proxyImplementation)(this.multiProvider.getProvider(chain), mailbox.address);
|
|
83
|
-
yield this.checkBytecode(chain, 'Mailbox implementation', implementation, [
|
|
84
|
-
bytecode_1.BytecodeHash.MAILBOX_WITHOUT_LOCAL_DOMAIN_BYTE_CODE_HASH,
|
|
85
|
-
bytecode_1.BytecodeHash.MAILBOX_WITHOUT_LOCAL_DOMAIN_NONZERO_PAUSE_BYTE_CODE_HASH,
|
|
86
|
-
], (bytecode) =>
|
|
87
|
-
// This is obviously super janky but basically we are searching
|
|
88
|
-
// for the ocurrences of localDomain in the bytecode and remove
|
|
89
|
-
// that to compare, but some coincidental ocurrences of
|
|
90
|
-
// localDomain in the bytecode should be not be removed which
|
|
91
|
-
// are just done via an offset guard
|
|
92
|
-
bytecode.replaceAll(ethers_1.utils.defaultAbiCoder
|
|
93
|
-
.encode(['uint32'], [localDomain])
|
|
94
|
-
.slice(2), (match, offset) => (offset > 8000 ? match : '')));
|
|
95
|
-
yield this.checkBytecode(chain, 'Mailbox proxy', contracts.mailbox.address, [bytecode_1.BytecodeHash.TRANSPARENT_PROXY_BYTECODE_HASH]);
|
|
96
|
-
yield this.checkBytecode(chain, 'ProxyAdmin', contracts.proxyAdmin.address, [bytecode_1.BytecodeHash.PROXY_ADMIN_BYTECODE_HASH]);
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
checkValidatorAnnounce(chain) {
|
|
100
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
const validators = new Set();
|
|
102
|
-
const remotes = Object.keys(this.configMap).filter((c) => c !== chain);
|
|
103
|
-
const remoteOriginValidators = remotes.map((remote) => (0, HyperlaneIsmFactory_1.collectValidators)(chain, this.configMap[remote].defaultIsm));
|
|
104
|
-
remoteOriginValidators.map((set) => {
|
|
105
|
-
[...set].map((v) => validators.add(v));
|
|
106
|
-
});
|
|
107
|
-
const validatorAnnounce = this.app.getContracts(chain).validatorAnnounce;
|
|
108
|
-
const announcedValidators = yield validatorAnnounce.getAnnouncedValidators();
|
|
109
|
-
[...validators].forEach((validator) => {
|
|
110
|
-
const matches = announcedValidators.filter((x) => (0, utils_1.eqAddress)(x, validator));
|
|
111
|
-
if (matches.length == 0) {
|
|
112
|
-
const violation = {
|
|
113
|
-
type: types_1.CoreViolationType.ValidatorAnnounce,
|
|
114
|
-
chain,
|
|
115
|
-
validator,
|
|
116
|
-
actual: false,
|
|
117
|
-
expected: true,
|
|
118
|
-
};
|
|
119
|
-
this.addViolation(violation);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
105
|
}
|
|
125
106
|
exports.HyperlaneCoreChecker = HyperlaneCoreChecker;
|
|
126
107
|
//# sourceMappingURL=HyperlaneCoreChecker.js.map
|