@hyperlane-xyz/sdk 1.0.0-beta0 → 1.0.0-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 +30 -3
- package/dist/HyperlaneApp.d.ts +13 -0
- package/dist/HyperlaneApp.d.ts.map +1 -0
- package/dist/HyperlaneApp.js +25 -0
- package/dist/HyperlaneApp.js.map +1 -0
- package/dist/consts/chainConnectionConfigs.d.ts +18 -0
- package/dist/consts/chainConnectionConfigs.d.ts.map +1 -0
- package/dist/consts/chainConnectionConfigs.js +33 -0
- package/dist/consts/chainConnectionConfigs.js.map +1 -0
- package/dist/consts/chainMetadata.d.ts +98 -0
- package/dist/consts/chainMetadata.d.ts.map +1 -0
- package/dist/consts/chainMetadata.js +529 -0
- package/dist/consts/chainMetadata.js.map +1 -0
- package/dist/consts/chains.d.ts +40 -0
- package/dist/consts/chains.d.ts.map +1 -0
- package/dist/consts/chains.js +66 -0
- package/dist/consts/chains.js.map +1 -0
- package/dist/consts/environments/index.d.ts +449 -0
- package/dist/consts/environments/index.d.ts.map +1 -0
- package/dist/consts/environments/index.js +22 -0
- package/dist/consts/environments/index.js.map +1 -0
- package/dist/consts/environments/mainnet.json +138 -0
- package/dist/consts/environments/test.json +44 -0
- package/dist/consts/environments/testnet2.json +138 -0
- package/dist/consts/environments/testnet3.json +114 -0
- package/dist/contracts.d.ts +18 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +61 -0
- package/dist/contracts.js.map +1 -0
- package/dist/core/HyperlaneCore.d.ts +473 -0
- package/dist/core/HyperlaneCore.d.ts.map +1 -0
- package/dist/core/HyperlaneCore.js +122 -0
- package/dist/core/HyperlaneCore.js.map +1 -0
- package/dist/core/HyperlaneCore.test.d.ts +2 -0
- package/dist/core/HyperlaneCore.test.d.ts.map +1 -0
- package/dist/core/HyperlaneCore.test.js +27 -0
- package/dist/core/HyperlaneCore.test.js.map +1 -0
- package/dist/core/TestCoreApp.d.ts +21 -0
- package/dist/core/TestCoreApp.d.ts.map +1 -0
- package/dist/core/TestCoreApp.js +61 -0
- package/dist/core/TestCoreApp.js.map +1 -0
- package/dist/core/TestCoreDeployer.d.ts +13 -0
- package/dist/core/TestCoreDeployer.d.ts.map +1 -0
- package/dist/core/TestCoreDeployer.js +53 -0
- package/dist/core/TestCoreDeployer.js.map +1 -0
- package/dist/core/contracts.d.ts +21 -0
- package/dist/core/contracts.d.ts.map +1 -0
- package/dist/core/contracts.js +14 -0
- package/dist/core/contracts.js.map +1 -0
- package/dist/core/events.d.ts +8 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +3 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/message.d.ts +146 -0
- package/dist/core/message.d.ts.map +1 -0
- package/dist/core/message.js +285 -0
- package/dist/core/message.js.map +1 -0
- package/dist/core/testHyperlaneDeploy.hardhat-test.d.ts +3 -0
- package/dist/core/testHyperlaneDeploy.hardhat-test.d.ts.map +1 -0
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +66 -0
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -0
- package/dist/deploy/HyperlaneAppChecker.d.ts +22 -0
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -0
- package/dist/deploy/HyperlaneAppChecker.js +88 -0
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -0
- package/dist/deploy/HyperlaneDeployer.d.ts +40 -0
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -0
- package/dist/deploy/HyperlaneDeployer.js +212 -0
- package/dist/deploy/HyperlaneDeployer.js.map +1 -0
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts +13 -0
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts.map +1 -0
- package/dist/deploy/core/HyperlaneCoreChecker.js +122 -0
- package/dist/deploy/core/HyperlaneCoreChecker.js.map +1 -0
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts +30 -0
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -0
- package/dist/deploy/core/HyperlaneCoreDeployer.js +114 -0
- package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -0
- package/dist/deploy/core/types.d.ts +51 -0
- package/dist/deploy/core/types.d.ts.map +1 -0
- package/dist/deploy/core/types.js +19 -0
- package/dist/deploy/core/types.js.map +1 -0
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts +26 -0
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts.map +1 -0
- package/dist/deploy/middleware/LiquidityLayerApp.js +115 -0
- package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -0
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +33 -0
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -0
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +97 -0
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -0
- package/dist/deploy/middleware/deploy.d.ts +21 -0
- package/dist/deploy/middleware/deploy.d.ts.map +1 -0
- package/dist/deploy/middleware/deploy.js +70 -0
- package/dist/deploy/middleware/deploy.js.map +1 -0
- package/dist/deploy/proxy.d.ts +18 -0
- package/dist/deploy/proxy.d.ts.map +1 -0
- package/dist/deploy/proxy.js +43 -0
- package/dist/deploy/proxy.js.map +1 -0
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts +13 -0
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts.map +1 -0
- package/dist/deploy/router/HyperlaneRouterChecker.js +44 -0
- package/dist/deploy/router/HyperlaneRouterChecker.js.map +1 -0
- package/dist/deploy/router/HyperlaneRouterDeployer.d.ts +13 -0
- package/dist/deploy/router/HyperlaneRouterDeployer.d.ts.map +1 -0
- package/dist/deploy/router/HyperlaneRouterDeployer.js +115 -0
- package/dist/deploy/router/HyperlaneRouterDeployer.js.map +1 -0
- package/dist/deploy/router/types.d.ts +7 -0
- package/dist/deploy/router/types.d.ts.map +1 -0
- package/dist/deploy/router/types.js +3 -0
- package/dist/deploy/router/types.js.map +1 -0
- package/dist/deploy/types.d.ts +23 -0
- package/dist/deploy/types.d.ts.map +1 -0
- package/dist/deploy/types.js +9 -0
- package/dist/deploy/types.js.map +1 -0
- package/dist/deploy/utils.d.ts +10 -0
- package/dist/deploy/utils.d.ts.map +1 -0
- package/dist/deploy/utils.js +38 -0
- package/dist/deploy/utils.js.map +1 -0
- package/dist/deploy/verify/ContractVerifier.d.ts +19 -0
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -0
- package/dist/deploy/verify/ContractVerifier.js +137 -0
- package/dist/deploy/verify/ContractVerifier.js.map +1 -0
- package/dist/deploy/verify/types.d.ts +14 -0
- package/dist/deploy/verify/types.d.ts.map +1 -0
- package/dist/deploy/verify/types.js +3 -0
- package/dist/deploy/verify/types.js.map +1 -0
- package/dist/deploy/verify/utils.d.ts +6 -0
- package/dist/deploy/verify/utils.d.ts.map +1 -0
- package/dist/deploy/verify/utils.js +25 -0
- package/dist/deploy/verify/utils.js.map +1 -0
- package/dist/domains.d.ts +4 -0
- package/dist/domains.d.ts.map +1 -0
- package/dist/domains.js +12 -0
- package/dist/domains.js.map +1 -0
- package/dist/events.d.ts +25 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +161 -0
- package/dist/events.js.map +1 -0
- package/dist/gas/calculator.d.ts +134 -0
- package/dist/gas/calculator.d.ts.map +1 -0
- package/dist/gas/calculator.js +240 -0
- package/dist/gas/calculator.js.map +1 -0
- package/dist/gas/calculator.test.d.ts +2 -0
- package/dist/gas/calculator.test.d.ts.map +1 -0
- package/dist/gas/calculator.test.js +208 -0
- package/dist/gas/calculator.test.js.map +1 -0
- package/dist/gas/token-prices.d.ts +34 -0
- package/dist/gas/token-prices.d.ts.map +1 -0
- package/dist/gas/token-prices.js +105 -0
- package/dist/gas/token-prices.js.map +1 -0
- package/dist/gas/token-prices.test.d.ts +2 -0
- package/dist/gas/token-prices.test.d.ts.map +1 -0
- package/dist/gas/token-prices.test.js +46 -0
- package/dist/gas/token-prices.test.js.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +140 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/accounts.hardhat-test.d.ts +2 -0
- package/dist/middleware/accounts.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/accounts.hardhat-test.js +63 -0
- package/dist/middleware/accounts.hardhat-test.js.map +1 -0
- package/dist/middleware/liquidity-layer.hardhat-test.d.ts +2 -0
- package/dist/middleware/liquidity-layer.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/liquidity-layer.hardhat-test.js +89 -0
- package/dist/middleware/liquidity-layer.hardhat-test.js.map +1 -0
- package/dist/middleware/queries.hardhat-test.d.ts +2 -0
- package/dist/middleware/queries.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/queries.hardhat-test.js +69 -0
- package/dist/middleware/queries.hardhat-test.js.map +1 -0
- package/dist/middleware.d.ts +16 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +15 -0
- package/dist/middleware.js.map +1 -0
- package/dist/providers/ChainConnection.d.ts +22 -0
- package/dist/providers/ChainConnection.d.ts.map +1 -0
- package/dist/providers/ChainConnection.js +66 -0
- package/dist/providers/ChainConnection.js.map +1 -0
- package/dist/providers/MultiProvider.d.ts +56 -0
- package/dist/providers/MultiProvider.d.ts.map +1 -0
- package/dist/providers/MultiProvider.js +111 -0
- package/dist/providers/MultiProvider.js.map +1 -0
- package/dist/providers/RetryProvider.d.ts +18 -0
- package/dist/providers/RetryProvider.d.ts.map +1 -0
- package/dist/providers/RetryProvider.js +49 -0
- package/dist/providers/RetryProvider.js.map +1 -0
- package/dist/proxy.d.ts +21 -0
- package/dist/proxy.d.ts.map +1 -0
- package/dist/proxy.js +30 -0
- package/dist/proxy.js.map +1 -0
- package/dist/router.d.ts +20 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +3 -0
- package/dist/router.js.map +1 -0
- package/dist/test/envSubsetDeployer/app.d.ts +36 -0
- package/dist/test/envSubsetDeployer/app.d.ts.map +1 -0
- package/dist/test/envSubsetDeployer/app.js +77 -0
- package/dist/test/envSubsetDeployer/app.js.map +1 -0
- package/dist/test/envSubsetDeployer/check-single-chain.d.ts +2 -0
- package/dist/test/envSubsetDeployer/check-single-chain.d.ts.map +1 -0
- package/dist/test/envSubsetDeployer/check-single-chain.js +49 -0
- package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -0
- package/dist/test/envSubsetDeployer/deploy-single-chain.d.ts +2 -0
- package/dist/test/envSubsetDeployer/deploy-single-chain.d.ts.map +1 -0
- package/dist/test/envSubsetDeployer/deploy-single-chain.js +42 -0
- package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -0
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.d.ts +2 -0
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.d.ts.map +1 -0
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js +83 -0
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js.map +1 -0
- package/dist/test/envSubsetDeployer/utils.d.ts +7 -0
- package/dist/test/envSubsetDeployer/utils.d.ts.map +1 -0
- package/dist/test/envSubsetDeployer/utils.js +25 -0
- package/dist/test/envSubsetDeployer/utils.js.map +1 -0
- package/dist/test/testUtils.d.ts +31 -0
- package/dist/test/testUtils.d.ts.map +1 -0
- package/dist/test/testUtils.js +106 -0
- package/dist/test/testUtils.js.map +1 -0
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/MultiGeneric.d.ts +27 -0
- package/dist/utils/MultiGeneric.d.ts.map +1 -0
- package/dist/utils/MultiGeneric.js +70 -0
- package/dist/utils/MultiGeneric.js.map +1 -0
- package/dist/utils/ids.d.ts +20 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +47 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/number.d.ts +32 -0
- package/dist/utils/number.d.ts.map +1 -0
- package/dist/utils/number.js +59 -0
- package/dist/utils/number.js.map +1 -0
- package/dist/utils/objects.d.ts +7 -0
- package/dist/utils/objects.d.ts.map +1 -0
- package/dist/utils/objects.js +29 -0
- package/dist/utils/objects.js.map +1 -0
- package/dist/utils/time.d.ts +8 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +15 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/utils.test.d.ts +2 -0
- package/dist/utils/utils.test.d.ts.map +1 -0
- package/dist/utils/utils.test.js +41 -0
- package/dist/utils/utils.test.js.map +1 -0
- package/logos/black/arbitrum.svg +1 -0
- package/logos/black/avalanche.svg +1 -0
- package/logos/black/bsc.svg +1 -0
- package/logos/black/celo.svg +1 -0
- package/logos/black/ethereum.svg +8 -0
- package/logos/black/hyperlane.svg +1 -0
- package/logos/black/moonbeam.svg +3 -0
- package/logos/black/near.svg +1 -0
- package/logos/black/optimism.svg +1 -0
- package/logos/black/polygon.svg +1 -0
- package/logos/color/arbitrum.svg +1 -0
- package/logos/color/avalanche.svg +1 -0
- package/logos/color/bsc.svg +1 -0
- package/logos/color/celo.svg +1 -0
- package/logos/color/ethereum.svg +1 -0
- package/logos/color/hyperlane.svg +1 -0
- package/logos/color/moonbeam.svg +1 -0
- package/logos/color/optimism.svg +1 -0
- package/logos/color/polygon.svg +1 -0
- package/package.json +6 -4
|
@@ -0,0 +1,97 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.LiquidityLayerDeployer = exports.BridgeAdapterType = void 0;
|
|
13
|
+
const ethers_1 = require("ethers");
|
|
14
|
+
const core_1 = require("@hyperlane-xyz/core");
|
|
15
|
+
const middleware_1 = require("../../middleware");
|
|
16
|
+
const objects_1 = require("../../utils/objects");
|
|
17
|
+
const HyperlaneRouterDeployer_1 = require("../router/HyperlaneRouterDeployer");
|
|
18
|
+
var BridgeAdapterType;
|
|
19
|
+
(function (BridgeAdapterType) {
|
|
20
|
+
BridgeAdapterType["Circle"] = "Circle";
|
|
21
|
+
})(BridgeAdapterType = exports.BridgeAdapterType || (exports.BridgeAdapterType = {}));
|
|
22
|
+
class LiquidityLayerDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDeployer {
|
|
23
|
+
constructor(multiProvider, configMap, core, create2salt = 'LiquidityLayerDeployerSalt') {
|
|
24
|
+
super(multiProvider, configMap, middleware_1.liquidityLayerFactories, {});
|
|
25
|
+
this.core = core;
|
|
26
|
+
this.create2salt = create2salt;
|
|
27
|
+
}
|
|
28
|
+
enrollRemoteRouters(contractsMap) {
|
|
29
|
+
const _super = Object.create(null, {
|
|
30
|
+
enrollRemoteRouters: { get: () => super.enrollRemoteRouters }
|
|
31
|
+
});
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
// Enroll the LiquidityLayerRouter with each other
|
|
34
|
+
yield _super.enrollRemoteRouters.call(this, contractsMap);
|
|
35
|
+
// Enroll the circle adapters with each other
|
|
36
|
+
yield _super.enrollRemoteRouters.call(this, (0, objects_1.objMap)(contractsMap, (_chain, contracts) => ({
|
|
37
|
+
router: contracts.circleBridgeAdapter,
|
|
38
|
+
})));
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
// Custom contract deployment logic can go here
|
|
42
|
+
// If no custom logic is needed, call deployContract for the router
|
|
43
|
+
deployContracts(chain, config) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const initCalldata = core_1.LiquidityLayerRouter__factory.createInterface().encodeFunctionData('initialize', [
|
|
46
|
+
config.mailbox,
|
|
47
|
+
config.interchainGasPaymaster,
|
|
48
|
+
config.interchainSecurityModule,
|
|
49
|
+
]);
|
|
50
|
+
const router = yield this.deployContract(chain, 'router', [], {
|
|
51
|
+
create2Salt: this.create2salt,
|
|
52
|
+
initCalldata,
|
|
53
|
+
});
|
|
54
|
+
const bridgeAdapters = {};
|
|
55
|
+
for (const adapterConfig of config.bridgeAdapterConfigs) {
|
|
56
|
+
if (adapterConfig.type === BridgeAdapterType.Circle) {
|
|
57
|
+
bridgeAdapters.circleBridgeAdapter =
|
|
58
|
+
yield this.deployCircleBridgeAdapter(chain, adapterConfig, config.owner, router);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return Object.assign(Object.assign({}, bridgeAdapters), { router });
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
deployCircleBridgeAdapter(chain, adapterConfig, owner, router) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
const cc = this.multiProvider.getChainConnection(chain);
|
|
67
|
+
const initCalldata = core_1.CircleBridgeAdapter__factory.createInterface().encodeFunctionData('initialize', [
|
|
68
|
+
owner,
|
|
69
|
+
adapterConfig.circleBridgeAddress,
|
|
70
|
+
adapterConfig.messageTransmitterAddress,
|
|
71
|
+
router.address,
|
|
72
|
+
]);
|
|
73
|
+
const circleBridgeAdapter = yield this.deployContract(chain, 'circleBridgeAdapter', [], {
|
|
74
|
+
create2Salt: this.create2salt,
|
|
75
|
+
initCalldata,
|
|
76
|
+
});
|
|
77
|
+
if ((yield circleBridgeAdapter.tokenSymbolToAddress('USDC')) ===
|
|
78
|
+
ethers_1.ethers.constants.AddressZero) {
|
|
79
|
+
this.logger(`Set USDC token contract`);
|
|
80
|
+
yield cc.handleTx(circleBridgeAdapter.addToken(adapterConfig.usdcAddress, 'USDC'));
|
|
81
|
+
}
|
|
82
|
+
// Set domain mappings
|
|
83
|
+
for (const { circleDomain, hyperlaneDomain, } of adapterConfig.circleDomainMapping) {
|
|
84
|
+
const expectedCircleDomain = yield circleBridgeAdapter.hyperlaneDomainToCircleDomain(hyperlaneDomain);
|
|
85
|
+
if (expectedCircleDomain === circleDomain)
|
|
86
|
+
continue;
|
|
87
|
+
this.logger(`Set circle domain ${circleDomain} for hyperlane domain ${hyperlaneDomain}`);
|
|
88
|
+
yield cc.handleTx(circleBridgeAdapter.addDomain(hyperlaneDomain, circleDomain));
|
|
89
|
+
}
|
|
90
|
+
this.logger('Set CircleLiquidityLayerAdapter on Router');
|
|
91
|
+
yield cc.handleTx(router.setLiquidityLayerAdapter(adapterConfig.type, circleBridgeAdapter.address));
|
|
92
|
+
return circleBridgeAdapter;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.LiquidityLayerDeployer = LiquidityLayerDeployer;
|
|
97
|
+
//# sourceMappingURL=LiquidityLayerRouterDeployer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiquidityLayerRouterDeployer.js","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerRouterDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { HyperlaneCore } from '../../core/HyperlaneCore';
|
|
2
|
+
import { InterchainAccountContracts, InterchainAccountFactories, InterchainQueryContracts, InterchainQueryFactories } from '../../middleware';
|
|
3
|
+
import { MultiProvider } from '../../providers/MultiProvider';
|
|
4
|
+
import { ChainMap, ChainName } from '../../types';
|
|
5
|
+
import { HyperlaneRouterDeployer } from '../router/HyperlaneRouterDeployer';
|
|
6
|
+
import { RouterConfig } from '../router/types';
|
|
7
|
+
export declare type InterchainAccountConfig = RouterConfig;
|
|
8
|
+
export declare class InterchainAccountDeployer<Chain extends ChainName> extends HyperlaneRouterDeployer<Chain, InterchainAccountConfig, InterchainAccountContracts, InterchainAccountFactories> {
|
|
9
|
+
protected core: HyperlaneCore<Chain>;
|
|
10
|
+
protected create2salt: string;
|
|
11
|
+
constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, InterchainAccountConfig>, core: HyperlaneCore<Chain>, create2salt?: string);
|
|
12
|
+
deployContracts(chain: Chain, config: InterchainAccountConfig): Promise<InterchainAccountContracts>;
|
|
13
|
+
}
|
|
14
|
+
export declare type InterchainQueryConfig = RouterConfig;
|
|
15
|
+
export declare class InterchainQueryDeployer<Chain extends ChainName> extends HyperlaneRouterDeployer<Chain, InterchainQueryConfig, InterchainQueryContracts, InterchainQueryFactories> {
|
|
16
|
+
protected core: HyperlaneCore<Chain>;
|
|
17
|
+
protected create2salt: string;
|
|
18
|
+
constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, InterchainQueryConfig>, core: HyperlaneCore<Chain>, create2salt?: string);
|
|
19
|
+
deployContracts(chain: Chain, config: InterchainQueryConfig): Promise<InterchainQueryContracts>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/deploy/middleware/deploy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,oBAAY,uBAAuB,GAAG,YAAY,CAAC;AAEnD,qBAAa,yBAAyB,CACpC,KAAK,SAAS,SAAS,CACvB,SAAQ,uBAAuB,CAC/B,KAAK,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,CAC3B;IAIG,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;IACpC,SAAS,CAAC,WAAW;gBAHrB,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC,EACzC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAC1B,WAAW,SAAa;IAO9B,eAAe,CACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,0BAA0B,CAAC;CAkBvC;AAED,oBAAY,qBAAqB,GAAG,YAAY,CAAC;AAEjD,qBAAa,uBAAuB,CAClC,KAAK,SAAS,SAAS,CACvB,SAAQ,uBAAuB,CAC/B,KAAK,EACL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,CACzB;IAIG,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;IAEpC,SAAS,CAAC,WAAW;gBAJrB,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,EACvC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAE1B,WAAW,SAAa;IAO9B,eAAe,CACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,wBAAwB,CAAC;CAkBrC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.InterchainQueryDeployer = exports.InterchainAccountDeployer = void 0;
|
|
13
|
+
const core_1 = require("@hyperlane-xyz/core");
|
|
14
|
+
const middleware_1 = require("../../middleware");
|
|
15
|
+
const HyperlaneRouterDeployer_1 = require("../router/HyperlaneRouterDeployer");
|
|
16
|
+
class InterchainAccountDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDeployer {
|
|
17
|
+
constructor(multiProvider, configMap, core, create2salt = 'asdasdsd') {
|
|
18
|
+
super(multiProvider, configMap, middleware_1.interchainAccountFactories, {});
|
|
19
|
+
this.core = core;
|
|
20
|
+
this.create2salt = create2salt;
|
|
21
|
+
}
|
|
22
|
+
// Custom contract deployment logic can go here
|
|
23
|
+
// If no custom logic is needed, call deployContract for the router
|
|
24
|
+
deployContracts(chain, config) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const initCalldata = core_1.InterchainAccountRouter__factory.createInterface().encodeFunctionData('initialize', [
|
|
27
|
+
config.mailbox,
|
|
28
|
+
config.interchainGasPaymaster,
|
|
29
|
+
config.interchainSecurityModule,
|
|
30
|
+
]);
|
|
31
|
+
const router = yield this.deployContract(chain, 'router', [], {
|
|
32
|
+
create2Salt: this.create2salt + 'router',
|
|
33
|
+
initCalldata,
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
router,
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.InterchainAccountDeployer = InterchainAccountDeployer;
|
|
42
|
+
class InterchainQueryDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDeployer {
|
|
43
|
+
constructor(multiProvider, configMap, core,
|
|
44
|
+
// TODO replace salt with 'hyperlane' before next redeploy
|
|
45
|
+
create2salt = 'asdasdsd') {
|
|
46
|
+
super(multiProvider, configMap, middleware_1.interchainQueryFactories, {});
|
|
47
|
+
this.core = core;
|
|
48
|
+
this.create2salt = create2salt;
|
|
49
|
+
}
|
|
50
|
+
// Custom contract deployment logic can go here
|
|
51
|
+
// If no custom logic is needed, call deployContract for the router
|
|
52
|
+
deployContracts(chain, config) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
const initCalldata = core_1.InterchainQueryRouter__factory.createInterface().encodeFunctionData('initialize(address,address,address)', [
|
|
55
|
+
config.mailbox,
|
|
56
|
+
config.interchainGasPaymaster,
|
|
57
|
+
config.interchainSecurityModule,
|
|
58
|
+
]);
|
|
59
|
+
const router = yield this.deployContract(chain, 'router', [], {
|
|
60
|
+
create2Salt: this.create2salt + 'router',
|
|
61
|
+
initCalldata,
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
router,
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.InterchainQueryDeployer = InterchainQueryDeployer;
|
|
70
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/deploy/middleware/deploy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAG6B;AAG7B,iDAO0B;AAG1B,+EAA4E;AAK5E,MAAa,yBAEX,SAAQ,iDAKT;IACC,YACE,aAAmC,EACnC,SAAmD,EACzC,IAA0B,EAC1B,cAAc,UAAU;QAElC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,uCAA0B,EAAE,EAAE,CAAC,CAAC;QAHtD,SAAI,GAAJ,IAAI,CAAsB;QAC1B,gBAAW,GAAX,WAAW,CAAa;IAGpC,CAAC;IAED,+CAA+C;IAC/C,mEAAmE;IAC7D,eAAe,CACnB,KAAY,EACZ,MAA+B;;YAE/B,MAAM,YAAY,GAChB,uCAAgC,CAAC,eAAe,EAAE,CAAC,kBAAkB,CACnE,YAAY,EACZ;gBACE,MAAM,CAAC,OAAO;gBACd,MAAM,CAAC,sBAAsB;gBAC7B,MAAM,CAAC,wBAAwB;aAChC,CACF,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC5D,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,QAAQ;gBACxC,YAAY;aACb,CAAC,CAAC;YACH,OAAO;gBACL,MAAM;aACP,CAAC;QACJ,CAAC;KAAA;CACF;AAxCD,8DAwCC;AAID,MAAa,uBAEX,SAAQ,iDAKT;IACC,YACE,aAAmC,EACnC,SAAiD,EACvC,IAA0B;IACpC,0DAA0D;IAChD,cAAc,UAAU;QAElC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,qCAAwB,EAAE,EAAE,CAAC,CAAC;QAJpD,SAAI,GAAJ,IAAI,CAAsB;QAE1B,gBAAW,GAAX,WAAW,CAAa;IAGpC,CAAC;IAED,+CAA+C;IAC/C,mEAAmE;IAC7D,eAAe,CACnB,KAAY,EACZ,MAA6B;;YAE7B,MAAM,YAAY,GAChB,qCAA8B,CAAC,eAAe,EAAE,CAAC,kBAAkB,CACjE,qCAAqC,EACrC;gBACE,MAAM,CAAC,OAAO;gBACd,MAAM,CAAC,sBAAsB;gBAC7B,MAAM,CAAC,wBAAwB;aAChC,CACF,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC5D,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,QAAQ;gBACxC,YAAY;aACb,CAAC,CAAC;YACH,OAAO;gBACL,MAAM;aACP,CAAC;QACJ,CAAC;KAAA;CACF;AAzCD,0DAyCC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import type { types } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { TransparentProxyAddresses } from '../proxy';
|
|
4
|
+
import { ChainName } from '../types';
|
|
5
|
+
import { CheckerViolation } from './types';
|
|
6
|
+
export interface ProxyViolation extends CheckerViolation {
|
|
7
|
+
type: TransparentProxyAddresses['kind'];
|
|
8
|
+
data: {
|
|
9
|
+
proxyAddresses: TransparentProxyAddresses;
|
|
10
|
+
name: string;
|
|
11
|
+
};
|
|
12
|
+
actual: string;
|
|
13
|
+
expected: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function proxyImplementation(provider: ethers.providers.Provider, proxy: types.Address): Promise<types.Address>;
|
|
16
|
+
export declare function proxyAdmin(provider: ethers.providers.Provider, proxy: types.Address): Promise<types.Address>;
|
|
17
|
+
export declare function proxyViolation<Chain extends ChainName>(chain: Chain, name: string, proxyAddresses: TransparentProxyAddresses, actual: types.Address): ProxyViolation;
|
|
18
|
+
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,EAAE;QACJ,cAAc,EAAE,yBAAyB,CAAC;QAC1C,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,KAAK,EAAE,KAAK,CAAC,OAAO,GACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAOxB;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,KAAK,EAAE,KAAK,CAAC,OAAO,GACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAOxB;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAS,SAAS,EACpD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,yBAAyB,EACzC,MAAM,EAAE,KAAK,CAAC,OAAO,GACpB,cAAc,CAWhB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.proxyViolation = exports.proxyAdmin = exports.proxyImplementation = void 0;
|
|
13
|
+
const ethers_1 = require("ethers");
|
|
14
|
+
function proxyImplementation(provider, proxy) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
// Hardcoded storage slot for implementation per EIP-1967
|
|
17
|
+
const storageValue = yield provider.getStorageAt(proxy, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc');
|
|
18
|
+
return ethers_1.ethers.utils.getAddress(storageValue.slice(26));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
exports.proxyImplementation = proxyImplementation;
|
|
22
|
+
function proxyAdmin(provider, proxy) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
// Hardcoded storage slot for admin per EIP-1967
|
|
25
|
+
const storageValue = yield provider.getStorageAt(proxy, '0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103');
|
|
26
|
+
return ethers_1.ethers.utils.getAddress(storageValue.slice(26));
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
exports.proxyAdmin = proxyAdmin;
|
|
30
|
+
function proxyViolation(chain, name, proxyAddresses, actual) {
|
|
31
|
+
return {
|
|
32
|
+
chain,
|
|
33
|
+
type: proxyAddresses.kind,
|
|
34
|
+
actual,
|
|
35
|
+
expected: proxyAddresses.implementation,
|
|
36
|
+
data: {
|
|
37
|
+
name,
|
|
38
|
+
proxyAddresses,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
exports.proxyViolation = proxyViolation;
|
|
43
|
+
//# sourceMappingURL=proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAmBhC,SAAsB,mBAAmB,CACvC,QAAmC,EACnC,KAAoB;;QAEpB,yDAAyD;QACzD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAC9C,KAAK,EACL,oEAAoE,CACrE,CAAC;QACF,OAAO,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;CAAA;AAVD,kDAUC;AAED,SAAsB,UAAU,CAC9B,QAAmC,EACnC,KAAoB;;QAEpB,gDAAgD;QAChD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAC9C,KAAK,EACL,oEAAoE,CACrE,CAAC;QACF,OAAO,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;CAAA;AAVD,gCAUC;AAED,SAAgB,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,cAAyC,EACzC,MAAqB;IAErB,OAAO;QACL,KAAK;QACL,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,MAAM;QACN,QAAQ,EAAE,cAAc,CAAC,cAAc;QACvC,IAAI,EAAE;YACJ,IAAI;YACJ,cAAc;SACf;KACF,CAAC;AACJ,CAAC;AAhBD,wCAgBC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Ownable } from '@hyperlane-xyz/core';
|
|
2
|
+
import { HyperlaneApp } from '../../HyperlaneApp';
|
|
3
|
+
import { RouterContracts } from '../../router';
|
|
4
|
+
import { ChainName } from '../../types';
|
|
5
|
+
import { HyperlaneAppChecker } from '../HyperlaneAppChecker';
|
|
6
|
+
import { RouterConfig } from './types';
|
|
7
|
+
export declare class HyperlaneRouterChecker<Chain extends ChainName, App extends HyperlaneApp<Contracts, Chain>, Config extends RouterConfig, Contracts extends RouterContracts> extends HyperlaneAppChecker<Chain, App, Config> {
|
|
8
|
+
checkOwnership(chain: Chain): Promise<void>;
|
|
9
|
+
checkChain(chain: Chain): Promise<void>;
|
|
10
|
+
checkEnrolledRouters(chain: Chain): Promise<void>;
|
|
11
|
+
ownables(chain: Chain): Ownable[];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=HyperlaneRouterChecker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlaneRouterChecker.d.ts","sourceRoot":"","sources":["../../../src/deploy/router/HyperlaneRouterChecker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,qBAAa,sBAAsB,CACjC,KAAK,SAAS,SAAS,EACvB,GAAG,SAAS,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,EAC1C,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,eAAe,CACjC,SAAQ,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC;IAC/C,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvC,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAavD,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,EAAE;CAGlC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.HyperlaneRouterChecker = void 0;
|
|
13
|
+
const utils_1 = require("@hyperlane-xyz/utils");
|
|
14
|
+
const chainMetadata_1 = require("../../consts/chainMetadata");
|
|
15
|
+
const HyperlaneAppChecker_1 = require("../HyperlaneAppChecker");
|
|
16
|
+
class HyperlaneRouterChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
17
|
+
checkOwnership(chain) {
|
|
18
|
+
const owner = this.configMap[chain].owner;
|
|
19
|
+
const ownables = this.ownables(chain);
|
|
20
|
+
return super.checkOwnership(chain, owner, ownables);
|
|
21
|
+
}
|
|
22
|
+
checkChain(chain) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
yield this.checkEnrolledRouters(chain);
|
|
25
|
+
yield this.checkOwnership(chain);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
checkEnrolledRouters(chain) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
const router = this.app.getContracts(chain).router;
|
|
31
|
+
yield Promise.all(this.app.remoteChains(chain).map((remoteChain) => __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const remoteRouter = this.app.getContracts(remoteChain).router;
|
|
33
|
+
const remoteChainId = chainMetadata_1.chainMetadata[remoteChain].id;
|
|
34
|
+
const address = yield router.routers(remoteChainId);
|
|
35
|
+
utils_1.utils.assert(address === utils_1.utils.addressToBytes32(remoteRouter.address));
|
|
36
|
+
})));
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
ownables(chain) {
|
|
40
|
+
return [this.app.getContracts(chain).router];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.HyperlaneRouterChecker = HyperlaneRouterChecker;
|
|
44
|
+
//# sourceMappingURL=HyperlaneRouterChecker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlaneRouterChecker.js","sourceRoot":"","sources":["../../../src/deploy/router/HyperlaneRouterChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,gDAA6C;AAG7C,8DAA2D;AAG3D,gEAA6D;AAI7D,MAAa,sBAKX,SAAQ,yCAAuC;IAC/C,cAAc,CAAC,KAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAEK,UAAU,CAAC,KAAY;;YAC3B,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;KAAA;IAEK,oBAAoB,CAAC,KAAY;;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YAEnD,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAO,WAAW,EAAE,EAAE;gBACrD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;gBAC/D,MAAM,aAAa,GAAG,6BAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;gBACpD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACpD,aAAK,CAAC,MAAM,CAAC,OAAO,KAAK,aAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACzE,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAED,QAAQ,CAAC,KAAY;QACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF;AAjCD,wDAiCC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MultiProvider } from '../../providers/MultiProvider';
|
|
2
|
+
import { RouterContracts, RouterFactories } from '../../router';
|
|
3
|
+
import { ChainMap, ChainName } from '../../types';
|
|
4
|
+
import { DeployerOptions, HyperlaneDeployer } from '../HyperlaneDeployer';
|
|
5
|
+
import { RouterConfig } from './types';
|
|
6
|
+
export declare abstract class HyperlaneRouterDeployer<Chain extends ChainName, Config extends RouterConfig, Contracts extends RouterContracts, Factories extends RouterFactories> extends HyperlaneDeployer<Chain, Config, Contracts, Factories> {
|
|
7
|
+
constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, Config>, factories: Factories, options?: DeployerOptions);
|
|
8
|
+
initConnectionClient(contractsMap: ChainMap<Chain, Contracts>): Promise<void>;
|
|
9
|
+
enrollRemoteRouters(contractsMap: ChainMap<Chain, RouterContracts>): Promise<void>;
|
|
10
|
+
transferOwnership(contractsMap: ChainMap<Chain, Contracts>): Promise<void>;
|
|
11
|
+
deploy(partialDeployment?: Partial<Record<Chain, Contracts>>): Promise<ChainMap<Chain, Contracts>>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=HyperlaneRouterDeployer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlaneRouterDeployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/router/HyperlaneRouterDeployer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,8BAAsB,uBAAuB,CAC3C,KAAK,SAAS,SAAS,EACvB,MAAM,SAAS,YAAY,EAC3B,SAAS,SAAS,eAAe,EACjC,SAAS,SAAS,eAAe,CACjC,SAAQ,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;gBAE5D,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAClC,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,eAAe;IAQrB,oBAAoB,CACxB,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC;IAgCV,mBAAmB,CACvB,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC;IAiDV,iBAAiB,CACrB,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC;IAsBV,MAAM,CACV,iBAAiB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,GACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;CASvC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.HyperlaneRouterDeployer = void 0;
|
|
13
|
+
const debug_1 = require("debug");
|
|
14
|
+
const ethers_1 = require("ethers");
|
|
15
|
+
const utils_1 = require("@hyperlane-xyz/utils");
|
|
16
|
+
const chainMetadata_1 = require("../../consts/chainMetadata");
|
|
17
|
+
const domains_1 = require("../../domains");
|
|
18
|
+
const objects_1 = require("../../utils/objects");
|
|
19
|
+
const HyperlaneDeployer_1 = require("../HyperlaneDeployer");
|
|
20
|
+
class HyperlaneRouterDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
21
|
+
constructor(multiProvider, configMap, factories, options) {
|
|
22
|
+
super(multiProvider, configMap, factories, Object.assign({ logger: (0, debug_1.debug)('hyperlane:RouterDeployer') }, options));
|
|
23
|
+
}
|
|
24
|
+
initConnectionClient(contractsMap) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
this.logger(`Initializing connection clients (if not already)...`);
|
|
27
|
+
yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(contractsMap, (local, contracts) => __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const chainConnection = this.multiProvider.getChainConnection(local);
|
|
29
|
+
// set mailbox if not already set (and configured)
|
|
30
|
+
const mailbox = this.configMap[local].mailbox;
|
|
31
|
+
if (mailbox &&
|
|
32
|
+
(yield contracts.router.mailbox()) === ethers_1.ethers.constants.AddressZero) {
|
|
33
|
+
this.logger(`Set mailbox on ${local}`);
|
|
34
|
+
yield chainConnection.handleTx(contracts.router.setMailbox(mailbox));
|
|
35
|
+
}
|
|
36
|
+
// set interchain gas paymaster if not already set (and configured)
|
|
37
|
+
const interchainGasPaymaster = this.configMap[local].interchainGasPaymaster;
|
|
38
|
+
if (interchainGasPaymaster &&
|
|
39
|
+
(yield contracts.router.interchainGasPaymaster()) ===
|
|
40
|
+
ethers_1.ethers.constants.AddressZero) {
|
|
41
|
+
this.logger(`Set interchain gas paymaster on ${local}`);
|
|
42
|
+
yield chainConnection.handleTx(contracts.router.setInterchainGasPaymaster(interchainGasPaymaster));
|
|
43
|
+
}
|
|
44
|
+
})));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
enrollRemoteRouters(contractsMap) {
|
|
48
|
+
const _super = Object.create(null, {
|
|
49
|
+
runIfOwner: { get: () => super.runIfOwner }
|
|
50
|
+
});
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
this.logger(`Enrolling deployed routers with each other (if not already)...`);
|
|
53
|
+
// Make all routers aware of each other.
|
|
54
|
+
const deployedChains = Object.keys(contractsMap);
|
|
55
|
+
for (const [chain, contracts] of Object.entries(contractsMap)) {
|
|
56
|
+
const local = chain;
|
|
57
|
+
this.logger({ local });
|
|
58
|
+
const chainConnection = this.multiProvider.getChainConnection(local);
|
|
59
|
+
// only enroll chains which are deployed
|
|
60
|
+
const deployedRemoteChains = this.multiProvider
|
|
61
|
+
.remoteChains(local)
|
|
62
|
+
.filter((c) => deployedChains.includes(c));
|
|
63
|
+
this.logger({ deployedRemoteChains });
|
|
64
|
+
const enrollEntries = yield Promise.all(deployedRemoteChains.map((remote) => __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
const remoteDomain = chainMetadata_1.chainMetadata[remote].id;
|
|
66
|
+
const current = yield contracts.router.routers(remoteDomain);
|
|
67
|
+
const expected = utils_1.utils.addressToBytes32(contractsMap[remote].router.address);
|
|
68
|
+
return current !== expected ? [remoteDomain, expected] : undefined;
|
|
69
|
+
})));
|
|
70
|
+
const entries = enrollEntries.filter((entry) => entry !== undefined);
|
|
71
|
+
this.logger({ entries });
|
|
72
|
+
const domains = entries.map(([id]) => id);
|
|
73
|
+
const addresses = entries.map(([, address]) => address);
|
|
74
|
+
yield _super.runIfOwner.call(this, local, contracts.router, () => __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
const chains = domains.map((id) => domains_1.DomainIdToChainName[id]);
|
|
76
|
+
this.logger(`Enroll remote (${chains}) routers on ${local}`);
|
|
77
|
+
yield chainConnection.handleTx(contracts.router.enrollRemoteRouters(domains, addresses, chainConnection.overrides));
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
transferOwnership(contractsMap) {
|
|
83
|
+
const _super = Object.create(null, {
|
|
84
|
+
runIfOwner: { get: () => super.runIfOwner }
|
|
85
|
+
});
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
this.logger(`Transferring ownership of routers...`);
|
|
88
|
+
yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(contractsMap, (chain, contracts) => __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
const chainConnection = this.multiProvider.getChainConnection(chain);
|
|
90
|
+
const owner = this.configMap[chain].owner;
|
|
91
|
+
this.logger(`Transfer ownership of ${chain}'s router to ${owner}`);
|
|
92
|
+
const currentOwner = yield contracts.router.owner();
|
|
93
|
+
if (owner != currentOwner) {
|
|
94
|
+
yield _super.runIfOwner.call(this, chain, contracts.router, () => __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
yield chainConnection.handleTx(contracts.router.transferOwnership(owner, chainConnection.overrides));
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
})));
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
deploy(partialDeployment) {
|
|
102
|
+
const _super = Object.create(null, {
|
|
103
|
+
deploy: { get: () => super.deploy }
|
|
104
|
+
});
|
|
105
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
const contractsMap = yield _super.deploy.call(this, partialDeployment);
|
|
107
|
+
yield this.enrollRemoteRouters(contractsMap);
|
|
108
|
+
yield this.initConnectionClient(contractsMap);
|
|
109
|
+
yield this.transferOwnership(contractsMap);
|
|
110
|
+
return contractsMap;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.HyperlaneRouterDeployer = HyperlaneRouterDeployer;
|
|
115
|
+
//# sourceMappingURL=HyperlaneRouterDeployer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HyperlaneRouterDeployer.js","sourceRoot":"","sources":["../../../src/deploy/router/HyperlaneRouterDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAA8B;AAC9B,mCAAgC;AAEhC,gDAA6C;AAE7C,8DAA2D;AAC3D,2CAAoD;AAIpD,iDAA4D;AAC5D,4DAA0E;AAI1E,MAAsB,uBAKpB,SAAQ,qCAAsD;IAC9D,YACE,aAAmC,EACnC,SAAkC,EAClC,SAAoB,EACpB,OAAyB;QAEzB,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,kBACvC,MAAM,EAAE,IAAA,aAAK,EAAC,0BAA0B,CAAC,IACtC,OAAO,EACV,CAAC;IACL,CAAC;IAEK,oBAAoB,CACxB,YAAwC;;YAExC,IAAI,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC;YACnE,MAAM,IAAA,uBAAa,EACjB,IAAA,gBAAM,EAAC,YAAY,EAAE,CAAO,KAAK,EAAE,SAAS,EAAE,EAAE;gBAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACrE,kDAAkD;gBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBAC9C,IACE,OAAO;oBACP,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,eAAM,CAAC,SAAS,CAAC,WAAW,EACnE;oBACA,IAAI,CAAC,MAAM,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;oBACvC,MAAM,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;iBACtE;gBAED,mEAAmE;gBACnE,MAAM,sBAAsB,GAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC;gBAC/C,IACE,sBAAsB;oBACtB,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;wBAC/C,eAAM,CAAC,SAAS,CAAC,WAAW,EAC9B;oBACA,IAAI,CAAC,MAAM,CAAC,mCAAmC,KAAK,EAAE,CAAC,CAAC;oBACxD,MAAM,eAAe,CAAC,QAAQ,CAC5B,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,CACnE,CAAC;iBACH;YACH,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAEK,mBAAmB,CACvB,YAA8C;;;;;YAE9C,IAAI,CAAC,MAAM,CACT,gEAAgE,CACjE,CAAC;YACF,wCAAwC;YACxC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAC7C,YAAY,CACb,EAAE;gBACD,MAAM,KAAK,GAAG,KAAc,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvB,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACrE,wCAAwC;gBACxC,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa;qBAC5C,YAAY,CAAC,KAAK,CAAC;qBACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC;gBAEtC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,oBAAoB,CAAC,GAAG,CAAC,CAAO,MAAM,EAAE,EAAE;oBACxC,MAAM,YAAY,GAAG,6BAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBAC9C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBAC7D,MAAM,QAAQ,GAAG,aAAK,CAAC,gBAAgB,CACrC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CACpC,CAAC;oBACF,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACrE,CAAC,CAAA,CAAC,CACH,CAAC;gBACF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,KAAK,SAAS,CAC1D,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;gBAExD,MAAM,OAAM,UAAU,YAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAS,EAAE;oBACzD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,6BAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5D,IAAI,CAAC,MAAM,CAAC,kBAAkB,MAAM,gBAAgB,KAAK,EAAE,CAAC,CAAC;oBAC7D,MAAM,eAAe,CAAC,QAAQ,CAC5B,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAClC,OAAO,EACP,SAAS,EACT,eAAe,CAAC,SAAS,CAC1B,CACF,CAAC;gBACJ,CAAC,CAAA,CAAC,CAAC;aACJ;QACH,CAAC;KAAA;IAEK,iBAAiB,CACrB,YAAwC;;;;;YAExC,IAAI,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC;YACpD,MAAM,IAAA,uBAAa,EACjB,IAAA,gBAAM,EAAC,YAAY,EAAE,CAAO,KAAK,EAAE,SAAS,EAAE,EAAE;gBAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACrE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,yBAAyB,KAAK,gBAAgB,KAAK,EAAE,CAAC,CAAC;gBACnE,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACpD,IAAI,KAAK,IAAI,YAAY,EAAE;oBACzB,MAAM,OAAM,UAAU,YAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAS,EAAE;wBACzD,MAAM,eAAe,CAAC,QAAQ,CAC5B,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAChC,KAAK,EACL,eAAe,CAAC,SAAS,CAC1B,CACF,CAAC;oBACJ,CAAC,CAAA,CAAC,CAAC;iBACJ;YACH,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAEK,MAAM,CACV,iBAAqD;;;;;YAErD,MAAM,YAAY,GAAG,MAAM,OAAM,MAAM,YAAC,iBAAiB,CAAC,CAAC;YAE3D,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAE3C,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;CACF;AA1ID,0DA0IC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { types } from '@hyperlane-xyz/utils';
|
|
2
|
+
import type { ConnectionClientConfig } from '../../router';
|
|
3
|
+
export declare type OwnableConfig = {
|
|
4
|
+
owner: types.Address;
|
|
5
|
+
};
|
|
6
|
+
export declare type RouterConfig = ConnectionClientConfig & OwnableConfig;
|
|
7
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/deploy/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,oBAAY,aAAa,GAAG;IAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;CACtB,CAAC;AAEF,oBAAY,YAAY,GAAG,sBAAsB,GAAG,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/deploy/router/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Contract } from 'ethers';
|
|
2
|
+
import { Ownable } from '@hyperlane-xyz/core';
|
|
3
|
+
import type { ChainMap, ChainName, IChainConnection } from '../types';
|
|
4
|
+
export interface CheckerViolation {
|
|
5
|
+
chain: ChainName;
|
|
6
|
+
type: string;
|
|
7
|
+
expected: any;
|
|
8
|
+
actual: any;
|
|
9
|
+
contract?: Contract;
|
|
10
|
+
}
|
|
11
|
+
export declare type EnvironmentConfig<Chain extends ChainName> = ChainMap<Chain, IChainConnection>;
|
|
12
|
+
export declare enum ViolationType {
|
|
13
|
+
Owner = "Owner",
|
|
14
|
+
NotDeployed = "NotDeployed"
|
|
15
|
+
}
|
|
16
|
+
export interface OwnerViolation extends CheckerViolation {
|
|
17
|
+
type: ViolationType.Owner;
|
|
18
|
+
contract: Ownable;
|
|
19
|
+
}
|
|
20
|
+
export interface NotDeployedViolation extends CheckerViolation {
|
|
21
|
+
type: ViolationType.NotDeployed;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEtE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE,GAAG,CAAC;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,oBAAY,iBAAiB,CAAC,KAAK,SAAS,SAAS,IAAI,QAAQ,CAC/D,KAAK,EACL,gBAAgB,CACjB,CAAC;AAEF,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC;CACjC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ViolationType = void 0;
|
|
4
|
+
var ViolationType;
|
|
5
|
+
(function (ViolationType) {
|
|
6
|
+
ViolationType["Owner"] = "Owner";
|
|
7
|
+
ViolationType["NotDeployed"] = "NotDeployed";
|
|
8
|
+
})(ViolationType = exports.ViolationType || (exports.ViolationType = {}));
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/deploy/types.ts"],"names":[],"mappings":";;;AAmBA,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,gCAAe,CAAA;IACf,4CAA2B,CAAA;AAC7B,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Signer, providers } from 'ethers';
|
|
2
|
+
import { types } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { MultiProvider } from '../providers/MultiProvider';
|
|
4
|
+
import { ChainMap, ChainName, TestChainNames } from '../types';
|
|
5
|
+
import { EnvironmentConfig } from './types';
|
|
6
|
+
export declare function getTestMultiProvider<Chain extends TestChainNames>(signerOrProvider: Signer | providers.Provider, configs?: EnvironmentConfig<Chain>): MultiProvider<Chain>;
|
|
7
|
+
export declare function getChainToOwnerMap<Chain extends ChainName>(configMap: ChainMap<Chain, any>, owner: types.Address): ChainMap<Chain, {
|
|
8
|
+
owner: string;
|
|
9
|
+
}>;
|
|
10
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/deploy/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,cAAc,EAC/D,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,EAC7C,OAAO,GAAE,iBAAiB,CAAC,KAAK,CAA8B,GAC7D,aAAa,CAAC,KAAK,CAAC,CAmBtB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,SAAS,EACxD,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAC/B,KAAK,EAAE,KAAK,CAAC,OAAO,GACnB,QAAQ,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAMpC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getChainToOwnerMap = exports.getTestMultiProvider = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const chainConnectionConfigs_1 = require("../consts/chainConnectionConfigs");
|
|
6
|
+
const MultiProvider_1 = require("../providers/MultiProvider");
|
|
7
|
+
const objects_1 = require("../utils/objects");
|
|
8
|
+
function getTestMultiProvider(signerOrProvider, configs = chainConnectionConfigs_1.testChainConnectionConfigs) {
|
|
9
|
+
let signer;
|
|
10
|
+
let provider;
|
|
11
|
+
if (ethers_1.Signer.isSigner(signerOrProvider) && signerOrProvider.provider) {
|
|
12
|
+
signer = signerOrProvider;
|
|
13
|
+
provider = signerOrProvider.provider;
|
|
14
|
+
}
|
|
15
|
+
else if (ethers_1.providers.Provider.isProvider(signerOrProvider)) {
|
|
16
|
+
provider = signerOrProvider;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
throw new Error('signerOrProvider is invalid');
|
|
20
|
+
}
|
|
21
|
+
const chainProviders = (0, objects_1.objMap)(configs, (_, config) => ({
|
|
22
|
+
signer,
|
|
23
|
+
provider,
|
|
24
|
+
confirmations: config.confirmations,
|
|
25
|
+
overrides: config.overrides,
|
|
26
|
+
}));
|
|
27
|
+
return new MultiProvider_1.MultiProvider(chainProviders);
|
|
28
|
+
}
|
|
29
|
+
exports.getTestMultiProvider = getTestMultiProvider;
|
|
30
|
+
function getChainToOwnerMap(configMap, owner) {
|
|
31
|
+
return (0, objects_1.objMap)(configMap, () => {
|
|
32
|
+
return {
|
|
33
|
+
owner,
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
exports.getChainToOwnerMap = getChainToOwnerMap;
|
|
38
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/deploy/utils.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAI3C,6EAA8E;AAC9E,8DAA2D;AAE3D,8CAA0C;AAI1C,SAAgB,oBAAoB,CAClC,gBAA6C,EAC7C,UAAoC,mDAA0B;IAE9D,IAAI,MAA0B,CAAC;IAC/B,IAAI,QAA4B,CAAC;IACjC,IAAI,eAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE;QAClE,MAAM,GAAG,gBAAgB,CAAC;QAC1B,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC;KACtC;SAAM,IAAI,kBAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QAC1D,QAAQ,GAAG,gBAAgB,CAAC;KAC7B;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAChD;IAED,MAAM,cAAc,GAAG,IAAA,gBAAM,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM;QACN,QAAQ;QACR,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC,CAAC;IACJ,OAAO,IAAI,6BAAa,CAAC,cAAc,CAAC,CAAC;AAC3C,CAAC;AAtBD,oDAsBC;AAED,SAAgB,kBAAkB,CAChC,SAA+B,EAC/B,KAAoB;IAEpB,OAAO,IAAA,gBAAM,EAAC,SAAS,EAAE,GAAG,EAAE;QAC5B,OAAO;YACL,KAAK;SACN,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AATD,gDASC"}
|