@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,66 @@
|
|
|
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.ChainConnection = void 0;
|
|
13
|
+
const debug_1 = require("debug");
|
|
14
|
+
class ChainConnection {
|
|
15
|
+
constructor(dc) {
|
|
16
|
+
var _a, _b, _c, _d;
|
|
17
|
+
this.getConnection = () => { var _a; return (_a = this.signer) !== null && _a !== void 0 ? _a : this.provider; };
|
|
18
|
+
this.getAddress = () => { var _a; return (_a = this.signer) === null || _a === void 0 ? void 0 : _a.getAddress(); };
|
|
19
|
+
this.provider = dc.provider;
|
|
20
|
+
this.signer = dc.signer;
|
|
21
|
+
this.overrides = (_a = dc.overrides) !== null && _a !== void 0 ? _a : {};
|
|
22
|
+
this.confirmations = (_b = dc.confirmations) !== null && _b !== void 0 ? _b : 0;
|
|
23
|
+
this.blockExplorerUrl = (_c = dc.blockExplorerUrl) !== null && _c !== void 0 ? _c : 'UNKNOWN_EXPLORER';
|
|
24
|
+
this.blockExplorerApiUrl = (_d = dc.blockExplorerApiUrl) !== null && _d !== void 0 ? _d : this.blockExplorerUrl;
|
|
25
|
+
this.logger = (0, debug_1.debug)('hyperlane:ChainConnection');
|
|
26
|
+
}
|
|
27
|
+
getTxUrl(response) {
|
|
28
|
+
return `${this.blockExplorerUrl}/tx/${response.hash}`;
|
|
29
|
+
}
|
|
30
|
+
getAddressUrl(address) {
|
|
31
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
return `${this.blockExplorerUrl}/address/${address !== null && address !== void 0 ? address : (yield this.signer.getAddress())}`;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
getApiUrl() {
|
|
36
|
+
return this.blockExplorerApiUrl;
|
|
37
|
+
}
|
|
38
|
+
handleTx(tx) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const response = yield tx;
|
|
41
|
+
this.logger(`Pending ${this.getTxUrl(response)} (waiting ${this.confirmations} blocks for confirmation)`);
|
|
42
|
+
return response.wait(this.confirmations);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
estimateGas(tx, from) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
let txFrom = from;
|
|
48
|
+
if (!txFrom) {
|
|
49
|
+
txFrom = yield this.getAddress();
|
|
50
|
+
}
|
|
51
|
+
return this.provider.estimateGas(Object.assign(Object.assign(Object.assign({}, tx), { from: txFrom }), this.overrides));
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
sendTransaction(tx) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
if (!this.signer)
|
|
57
|
+
throw new Error('no signer found');
|
|
58
|
+
const from = yield this.signer.getAddress();
|
|
59
|
+
const response = yield this.signer.sendTransaction(Object.assign(Object.assign(Object.assign({}, tx), { from }), this.overrides));
|
|
60
|
+
this.logger(`sent tx ${response.hash}`);
|
|
61
|
+
return this.handleTx(response);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.ChainConnection = ChainConnection;
|
|
66
|
+
//# sourceMappingURL=ChainConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChainConnection.js","sourceRoot":"","sources":["../../src/providers/ChainConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAwC;AAKxC,MAAa,eAAe;IAS1B,YAAY,EAAoB;;QAUhC,kBAAa,GAAG,GAA8C,EAAE,WAC9D,OAAA,MAAA,IAAI,CAAC,MAAM,mCAAI,IAAI,CAAC,QAAQ,CAAA,EAAA,CAAC;QAE/B,eAAU,GAAG,GAAgC,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,EAAE,CAAA,EAAA,CAAC;QAZxE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,MAAA,EAAE,CAAC,SAAS,mCAAI,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,MAAA,EAAE,CAAC,aAAa,mCAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,MAAA,EAAE,CAAC,gBAAgB,mCAAI,kBAAkB,CAAC;QAClE,IAAI,CAAC,mBAAmB,GAAG,MAAA,EAAE,CAAC,mBAAmB,mCAAI,IAAI,CAAC,gBAAgB,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAA,aAAK,EAAC,2BAA2B,CAAC,CAAC;IACnD,CAAC;IAOD,QAAQ,CAAC,QAA8C;QACrD,OAAO,GAAG,IAAI,CAAC,gBAAgB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IAEK,aAAa,CAAC,OAAgB;;YAClC,OAAO,GAAG,IAAI,CAAC,gBAAgB,YAC7B,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,MAAM,IAAI,CAAC,MAAO,CAAC,UAAU,EAAE,CAC7C,EAAE,CAAC;QACL,CAAC;KAAA;IAED,SAAS;QACP,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEK,QAAQ,CACZ,EAAoE;;YAEpE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CACT,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAChC,IAAI,CAAC,aACP,2BAA2B,CAC5B,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEK,WAAW,CACf,EAA+B,EAC/B,IAAa;;YAEb,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;aAClC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,+CAC3B,EAAE,KACL,IAAI,EAAE,MAAM,KACT,IAAI,CAAC,SAAS,EACjB,CAAC;QACL,CAAC;KAAA;IAEK,eAAe,CACnB,EAA+B;;YAE/B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,+CAC7C,EAAE,KACL,IAAI,KACD,IAAI,CAAC,SAAS,EACjB,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,WAAW,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;KAAA;CACF;AA9ED,0CA8EC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Signer, ethers } from 'ethers';
|
|
2
|
+
import { ChainMap, ChainName, IChainConnection, Remotes } from '../types';
|
|
3
|
+
import { MultiGeneric } from '../utils/MultiGeneric';
|
|
4
|
+
import { ChainConnection } from './ChainConnection';
|
|
5
|
+
export declare class MultiProvider<Chain extends ChainName = ChainName> extends MultiGeneric<Chain, ChainConnection> {
|
|
6
|
+
constructor(chainConnectionConfigs: ChainMap<Chain, IChainConnection>);
|
|
7
|
+
/**
|
|
8
|
+
* Get chainConnection for a chain
|
|
9
|
+
* @throws if chain is invalid or has not been set
|
|
10
|
+
*/
|
|
11
|
+
getChainConnection(chain: Chain): ChainConnection;
|
|
12
|
+
/**
|
|
13
|
+
* Get chainConnection for a chain
|
|
14
|
+
* @returns value or null if chain value has not been set
|
|
15
|
+
*/
|
|
16
|
+
tryGetChainConnection(chain: Chain): ChainConnection | null;
|
|
17
|
+
/**
|
|
18
|
+
* Set value for a chain
|
|
19
|
+
* @throws if chain is invalid or has not been set
|
|
20
|
+
*/
|
|
21
|
+
setChainConnection(chain: Chain, chainConnectionConfig: IChainConnection): ChainConnection;
|
|
22
|
+
/**
|
|
23
|
+
* Get provider for a chain
|
|
24
|
+
* @throws if chain is invalid or has not been set
|
|
25
|
+
*/
|
|
26
|
+
getChainProvider(chain: Chain): ethers.providers.Provider;
|
|
27
|
+
/**
|
|
28
|
+
* Get provider for a chain
|
|
29
|
+
* @returns value or null if chain value has not been set
|
|
30
|
+
*/
|
|
31
|
+
tryGetChainProvider(chain: Chain): ethers.providers.Provider | null;
|
|
32
|
+
/**
|
|
33
|
+
* Get signer for a chain
|
|
34
|
+
* @throws if chain is invalid or has not been set
|
|
35
|
+
*/
|
|
36
|
+
getChainSigner(chain: Chain): ethers.Signer;
|
|
37
|
+
/**
|
|
38
|
+
* Get signer for a chain
|
|
39
|
+
* @returns value or null if chain value has not been set
|
|
40
|
+
*/
|
|
41
|
+
tryGetChainSigner(chain: Chain): ethers.Signer | null;
|
|
42
|
+
/**
|
|
43
|
+
* Create a new MultiProvider which includes the provided chain connection config
|
|
44
|
+
*/
|
|
45
|
+
extendWithChain<New extends Remotes<ChainName, Chain>>(chain: New, chainConnectionConfig: IChainConnection): MultiProvider<New & Chain>;
|
|
46
|
+
/**
|
|
47
|
+
* Create a new MultiProvider from the intersection
|
|
48
|
+
* of current's chains and the provided chain list
|
|
49
|
+
*/
|
|
50
|
+
intersect<IntersectionChain extends Chain>(chains: ChainName[], throwIfNotSubset?: boolean): {
|
|
51
|
+
intersection: IntersectionChain[];
|
|
52
|
+
multiProvider: MultiProvider<IntersectionChain>;
|
|
53
|
+
};
|
|
54
|
+
rotateSigner(newSigner: Signer): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=MultiProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiProvider.d.ts","sourceRoot":"","sources":["../../src/providers/MultiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,aAAa,CACxB,KAAK,SAAS,SAAS,GAAG,SAAS,CACnC,SAAQ,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC;gBAChC,sBAAsB,EAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IASrE;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAIjD;;;OAGG;IACH,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI;IAI3D;;;OAGG;IACH,kBAAkB,CAChB,KAAK,EAAE,KAAK,EACZ,qBAAqB,EAAE,gBAAgB,GACtC,eAAe;IAKlB;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;IAQzD;;;OAGG;IACH,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI;IAInE;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM;IAQ3C;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;IAIrD;;OAEG;IACH,eAAe,CAAC,GAAG,SAAS,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,EACnD,KAAK,EAAE,GAAG,EACV,qBAAqB,EAAE,gBAAgB,GACtC,aAAa,CAAC,GAAG,GAAG,KAAK,CAAC;IAQ7B;;;OAGG;IACH,SAAS,CAAC,iBAAiB,SAAS,KAAK,EACvC,MAAM,EAAE,SAAS,EAAE,EACnB,gBAAgB,UAAQ,GACvB;QACD,YAAY,EAAE,iBAAiB,EAAE,CAAC;QAClC,aAAa,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;KACjD;IA8BD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAatC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultiProvider = void 0;
|
|
4
|
+
const MultiGeneric_1 = require("../utils/MultiGeneric");
|
|
5
|
+
const objects_1 = require("../utils/objects");
|
|
6
|
+
const ChainConnection_1 = require("./ChainConnection");
|
|
7
|
+
class MultiProvider extends MultiGeneric_1.MultiGeneric {
|
|
8
|
+
constructor(chainConnectionConfigs) {
|
|
9
|
+
super((0, objects_1.objMap)(chainConnectionConfigs, (_, connection) => new ChainConnection_1.ChainConnection(connection)));
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get chainConnection for a chain
|
|
13
|
+
* @throws if chain is invalid or has not been set
|
|
14
|
+
*/
|
|
15
|
+
getChainConnection(chain) {
|
|
16
|
+
return this.get(chain);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get chainConnection for a chain
|
|
20
|
+
* @returns value or null if chain value has not been set
|
|
21
|
+
*/
|
|
22
|
+
tryGetChainConnection(chain) {
|
|
23
|
+
return this.tryGet(chain);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Set value for a chain
|
|
27
|
+
* @throws if chain is invalid or has not been set
|
|
28
|
+
*/
|
|
29
|
+
setChainConnection(chain, chainConnectionConfig) {
|
|
30
|
+
const connection = new ChainConnection_1.ChainConnection(chainConnectionConfig);
|
|
31
|
+
return this.set(chain, connection);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get provider for a chain
|
|
35
|
+
* @throws if chain is invalid or has not been set
|
|
36
|
+
*/
|
|
37
|
+
getChainProvider(chain) {
|
|
38
|
+
const chainConnection = this.get(chain);
|
|
39
|
+
if (!chainConnection.provider) {
|
|
40
|
+
throw new Error(`No provider set for chain ${chain}`);
|
|
41
|
+
}
|
|
42
|
+
return chainConnection.provider;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get provider for a chain
|
|
46
|
+
* @returns value or null if chain value has not been set
|
|
47
|
+
*/
|
|
48
|
+
tryGetChainProvider(chain) {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
return (_b = (_a = this.tryGet(chain)) === null || _a === void 0 ? void 0 : _a.provider) !== null && _b !== void 0 ? _b : null;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get signer for a chain
|
|
54
|
+
* @throws if chain is invalid or has not been set
|
|
55
|
+
*/
|
|
56
|
+
getChainSigner(chain) {
|
|
57
|
+
const chainConnection = this.get(chain);
|
|
58
|
+
if (!chainConnection.signer) {
|
|
59
|
+
throw new Error(`No signer set for chain ${chain}`);
|
|
60
|
+
}
|
|
61
|
+
return chainConnection.signer;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get signer for a chain
|
|
65
|
+
* @returns value or null if chain value has not been set
|
|
66
|
+
*/
|
|
67
|
+
tryGetChainSigner(chain) {
|
|
68
|
+
var _a, _b;
|
|
69
|
+
return (_b = (_a = this.tryGet(chain)) === null || _a === void 0 ? void 0 : _a.signer) !== null && _b !== void 0 ? _b : null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a new MultiProvider which includes the provided chain connection config
|
|
73
|
+
*/
|
|
74
|
+
extendWithChain(chain, chainConnectionConfig) {
|
|
75
|
+
const connection = new ChainConnection_1.ChainConnection(chainConnectionConfig);
|
|
76
|
+
return new MultiProvider(Object.assign(Object.assign({}, this.chainMap), { [chain]: connection }));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create a new MultiProvider from the intersection
|
|
80
|
+
* of current's chains and the provided chain list
|
|
81
|
+
*/
|
|
82
|
+
intersect(chains, throwIfNotSubset = false) {
|
|
83
|
+
const ownChains = this.chains();
|
|
84
|
+
const intersection = [];
|
|
85
|
+
for (const chain of chains) {
|
|
86
|
+
// @ts-ignore
|
|
87
|
+
if (ownChains.includes(chain)) {
|
|
88
|
+
// @ts-ignore
|
|
89
|
+
intersection.push(chain);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
if (throwIfNotSubset) {
|
|
93
|
+
throw new Error(`MultiProvider#intersect: chains specified ${chain}, but ownChains did not include it`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (!intersection.length) {
|
|
98
|
+
throw new Error(`No chains shared between MultiProvider and list`);
|
|
99
|
+
}
|
|
100
|
+
const intersectionChainMap = (0, objects_1.pick)(this.chainMap, intersection);
|
|
101
|
+
const multiProvider = new MultiProvider(Object.assign({}, intersectionChainMap));
|
|
102
|
+
return { intersection, multiProvider };
|
|
103
|
+
}
|
|
104
|
+
rotateSigner(newSigner) {
|
|
105
|
+
this.forEach((chain, dc) => {
|
|
106
|
+
this.setChainConnection(chain, Object.assign(Object.assign({}, dc), { signer: newSigner.connect(dc.provider) }));
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.MultiProvider = MultiProvider;
|
|
111
|
+
//# sourceMappingURL=MultiProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiProvider.js","sourceRoot":"","sources":["../../src/providers/MultiProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
export declare type RetryOptions = {
|
|
3
|
+
maxRequests: number;
|
|
4
|
+
baseRetryMs: number;
|
|
5
|
+
};
|
|
6
|
+
export declare class RetryProvider extends ethers.providers.BaseProvider {
|
|
7
|
+
readonly provider: ethers.providers.BaseProvider;
|
|
8
|
+
readonly retryOptions: RetryOptions;
|
|
9
|
+
constructor(provider: ethers.providers.BaseProvider, retryOptions: RetryOptions);
|
|
10
|
+
perform(method: string, params: any): Promise<any>;
|
|
11
|
+
}
|
|
12
|
+
export declare class RetryJsonRpcProvider extends ethers.providers.JsonRpcProvider {
|
|
13
|
+
readonly provider: ethers.providers.JsonRpcProvider;
|
|
14
|
+
readonly retryOptions: RetryOptions;
|
|
15
|
+
constructor(provider: ethers.providers.JsonRpcProvider, retryOptions: RetryOptions);
|
|
16
|
+
send(method: string, params: Array<any>): Promise<any>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=RetryProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RetryProvider.d.ts","sourceRoot":"","sources":["../../src/providers/RetryProvider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,oBAAY,YAAY,GAAG;IAEzB,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,aAAc,SAAQ,MAAM,CAAC,SAAS,CAAC,YAAY;IAE5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;IAChD,QAAQ,CAAC,YAAY,EAAE,YAAY;gBAD1B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EACvC,YAAY,EAAE,YAAY;IAYrC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAOnD;AAGD,qBAAa,oBAAqB,SAAQ,MAAM,CAAC,SAAS,CAAC,eAAe;IAEtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe;IACnD,QAAQ,CAAC,YAAY,EAAE,YAAY;gBAD1B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,EAC1C,YAAY,EAAE,YAAY;IAS/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAO7D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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.RetryJsonRpcProvider = exports.RetryProvider = void 0;
|
|
13
|
+
// RetryProvider
|
|
14
|
+
//
|
|
15
|
+
// Mostly taken from the removed version that was in ethers.js
|
|
16
|
+
// See: https://github.com/ethers-io/ethers.js/discussions/3006
|
|
17
|
+
const ethers_1 = require("ethers");
|
|
18
|
+
const utils_1 = require("@hyperlane-xyz/utils");
|
|
19
|
+
class RetryProvider extends ethers_1.ethers.providers.BaseProvider {
|
|
20
|
+
constructor(provider, retryOptions) {
|
|
21
|
+
super(provider.getNetwork());
|
|
22
|
+
this.provider = provider;
|
|
23
|
+
this.retryOptions = retryOptions;
|
|
24
|
+
utils_1.utils.assert(retryOptions.maxRequests >= 1, 'RetryOptions.maxRequests must be >= 1');
|
|
25
|
+
ethers_1.ethers.utils.defineReadOnly(this, 'provider', provider);
|
|
26
|
+
ethers_1.ethers.utils.defineReadOnly(this, 'retryOptions', retryOptions);
|
|
27
|
+
}
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
29
|
+
perform(method, params) {
|
|
30
|
+
return utils_1.utils.retryAsync(() => this.provider.perform(method, params), this.retryOptions.maxRequests, this.retryOptions.baseRetryMs);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.RetryProvider = RetryProvider;
|
|
34
|
+
// Need this separate class for JsonRpcProvider to still expose `getSigner`, so will retry at the request level
|
|
35
|
+
class RetryJsonRpcProvider extends ethers_1.ethers.providers.JsonRpcProvider {
|
|
36
|
+
constructor(provider, retryOptions) {
|
|
37
|
+
super(provider.connection, provider.network);
|
|
38
|
+
this.provider = provider;
|
|
39
|
+
this.retryOptions = retryOptions;
|
|
40
|
+
utils_1.utils.assert(retryOptions.maxRequests >= 1, 'RetryOptions.maxRequests must be >= 1');
|
|
41
|
+
}
|
|
42
|
+
send(method, params) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
return utils_1.utils.retryAsync(() => __awaiter(this, void 0, void 0, function* () { return this.provider.send(method, params); }), this.retryOptions.maxRequests, this.retryOptions.baseRetryMs);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.RetryJsonRpcProvider = RetryJsonRpcProvider;
|
|
49
|
+
//# sourceMappingURL=RetryProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RetryProvider.js","sourceRoot":"","sources":["../../src/providers/RetryProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gBAAgB;AAChB,EAAE;AACF,8DAA8D;AAC9D,+DAA+D;AAC/D,mCAAgC;AAEhC,gDAA6C;AAU7C,MAAa,aAAc,SAAQ,eAAM,CAAC,SAAS,CAAC,YAAY;IAC9D,YACW,QAAuC,EACvC,YAA0B;QAEnC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAHpB,aAAQ,GAAR,QAAQ,CAA+B;QACvC,iBAAY,GAAZ,YAAY,CAAc;QAGnC,aAAK,CAAC,MAAM,CACV,YAAY,CAAC,WAAW,IAAI,CAAC,EAC7B,uCAAuC,CACxC,CAAC;QACF,eAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,eAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,6EAA6E;IAC7E,OAAO,CAAC,MAAc,EAAE,MAAW;QACjC,OAAO,aAAK,CAAC,UAAU,CACrB,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3C,IAAI,CAAC,YAAY,CAAC,WAAW,EAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAC9B,CAAC;IACJ,CAAC;CACF;AAtBD,sCAsBC;AAED,+GAA+G;AAC/G,MAAa,oBAAqB,SAAQ,eAAM,CAAC,SAAS,CAAC,eAAe;IACxE,YACW,QAA0C,EAC1C,YAA0B;QAEnC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAHpC,aAAQ,GAAR,QAAQ,CAAkC;QAC1C,iBAAY,GAAZ,YAAY,CAAc;QAGnC,aAAK,CAAC,MAAM,CACV,YAAY,CAAC,WAAW,IAAI,CAAC,EAC7B,uCAAuC,CACxC,CAAC;IACJ,CAAC;IAEK,IAAI,CAAC,MAAc,EAAE,MAAkB;;YAC3C,OAAO,aAAK,CAAC,UAAU,CACrB,GAAS,EAAE,gDAAC,OAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA,GAAA,EAC9C,IAAI,CAAC,YAAY,CAAC,WAAW,EAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAC9B,CAAC;QACJ,CAAC;KAAA;CACF;AAnBD,oDAmBC"}
|
package/dist/proxy.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Contract } from 'ethers';
|
|
2
|
+
import type { types } from '@hyperlane-xyz/utils';
|
|
3
|
+
import { Connection } from './types';
|
|
4
|
+
export declare enum ProxyKind {
|
|
5
|
+
Transparent = "Transparent"
|
|
6
|
+
}
|
|
7
|
+
export interface ProxyAddresses<Kind extends ProxyKind> {
|
|
8
|
+
kind: Kind;
|
|
9
|
+
proxy: types.Address;
|
|
10
|
+
implementation: types.Address;
|
|
11
|
+
}
|
|
12
|
+
export declare function isProxyAddresses(addresses: unknown): addresses is ProxyAddresses<any>;
|
|
13
|
+
export declare type TransparentProxyAddresses = ProxyAddresses<ProxyKind.Transparent>;
|
|
14
|
+
export declare class ProxiedContract<C extends Contract, A extends ProxyAddresses<any>> {
|
|
15
|
+
readonly contract: C;
|
|
16
|
+
readonly addresses: A;
|
|
17
|
+
constructor(contract: C, addresses: A);
|
|
18
|
+
get address(): string;
|
|
19
|
+
connect(connection: Connection): ProxiedContract<C, A>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,oBAAY,SAAS;IACnB,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,cAAc,CAAC,IAAI,SAAS,SAAS;IACpD,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IACrB,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,OAAO,GACjB,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,CASlC;AAED,oBAAY,yBAAyB,GAAG,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAE9E,qBAAa,eAAe,CAC1B,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,cAAc,CAAC,GAAG,CAAC;aAED,QAAQ,EAAE,CAAC;aAAkB,SAAS,EAAE,CAAC;gBAAzC,QAAQ,EAAE,CAAC,EAAkB,SAAS,EAAE,CAAC;IAErE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;CAMvD"}
|
package/dist/proxy.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProxiedContract = exports.isProxyAddresses = exports.ProxyKind = void 0;
|
|
4
|
+
var ProxyKind;
|
|
5
|
+
(function (ProxyKind) {
|
|
6
|
+
ProxyKind["Transparent"] = "Transparent";
|
|
7
|
+
})(ProxyKind = exports.ProxyKind || (exports.ProxyKind = {}));
|
|
8
|
+
function isProxyAddresses(addresses) {
|
|
9
|
+
return (addresses !== null &&
|
|
10
|
+
typeof addresses === 'object' &&
|
|
11
|
+
'proxy' in addresses &&
|
|
12
|
+
'implementation' in addresses &&
|
|
13
|
+
'kind' in addresses &&
|
|
14
|
+
Object.keys(ProxyKind).includes(addresses.kind));
|
|
15
|
+
}
|
|
16
|
+
exports.isProxyAddresses = isProxyAddresses;
|
|
17
|
+
class ProxiedContract {
|
|
18
|
+
constructor(contract, addresses) {
|
|
19
|
+
this.contract = contract;
|
|
20
|
+
this.addresses = addresses;
|
|
21
|
+
}
|
|
22
|
+
get address() {
|
|
23
|
+
return this.contract.address;
|
|
24
|
+
}
|
|
25
|
+
connect(connection) {
|
|
26
|
+
return new ProxiedContract(this.contract.connect(connection), this.addresses);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ProxiedContract = ProxiedContract;
|
|
30
|
+
//# sourceMappingURL=proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":";;;AAMA,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,wCAA2B,CAAA;AAC7B,CAAC,EAFW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAEpB;AAQD,SAAgB,gBAAgB,CAC9B,SAAkB;IAElB,OAAO,CACL,SAAS,KAAK,IAAI;QAClB,OAAO,SAAS,KAAK,QAAQ;QAC7B,OAAO,IAAI,SAAS;QACpB,gBAAgB,IAAI,SAAS;QAC7B,MAAM,IAAI,SAAS;QACnB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAE,SAAiB,CAAC,IAAI,CAAC,CACzD,CAAC;AACJ,CAAC;AAXD,4CAWC;AAID,MAAa,eAAe;IAI1B,YAA4B,QAAW,EAAkB,SAAY;QAAzC,aAAQ,GAAR,QAAQ,CAAG;QAAkB,cAAS,GAAT,SAAS,CAAG;IAAG,CAAC;IAEzE,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,UAAsB;QAC5B,OAAO,IAAI,eAAe,CACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAM,EACtC,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AAhBD,0CAgBC"}
|
package/dist/router.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ethers } from 'ethers';
|
|
2
|
+
import { Router } from '@hyperlane-xyz/core';
|
|
3
|
+
import type { types } from '@hyperlane-xyz/utils';
|
|
4
|
+
import { HyperlaneContracts, HyperlaneFactories } from './contracts';
|
|
5
|
+
export declare type RouterContracts<RouterContract extends Router = Router> = HyperlaneContracts & {
|
|
6
|
+
router: RouterContract;
|
|
7
|
+
};
|
|
8
|
+
declare type RouterFactory<RouterContract extends Router = Router> = ethers.ContractFactory & {
|
|
9
|
+
deploy: (...args: any[]) => Promise<RouterContract>;
|
|
10
|
+
};
|
|
11
|
+
export declare type RouterFactories<RouterContract extends Router = Router> = HyperlaneFactories & {
|
|
12
|
+
router: RouterFactory<RouterContract>;
|
|
13
|
+
};
|
|
14
|
+
export declare type ConnectionClientConfig = {
|
|
15
|
+
mailbox: types.Address;
|
|
16
|
+
interchainGasPaymaster: types.Address;
|
|
17
|
+
interchainSecurityModule: types.Address;
|
|
18
|
+
};
|
|
19
|
+
export { Router } from '@hyperlane-xyz/core';
|
|
20
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErE,oBAAY,eAAe,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAChE,kBAAkB,GAAG;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEJ,aAAK,aAAa,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IACvD,MAAM,CAAC,eAAe,GAAG;IACvB,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACrD,CAAC;AAEJ,oBAAY,eAAe,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAChE,kBAAkB,GAAG;IACnB,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACvC,CAAC;AAEJ,oBAAY,sBAAsB,GAAG;IACnC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;IACvB,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC;IACtC,wBAAwB,EAAE,KAAK,CAAC,OAAO,CAAC;CACzC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/router.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { HyperlaneApp } from '../../HyperlaneApp';
|
|
2
|
+
import { HyperlaneCore } from '../../core/HyperlaneCore';
|
|
3
|
+
import { HyperlaneRouterChecker } from '../../deploy/router/HyperlaneRouterChecker';
|
|
4
|
+
import { HyperlaneRouterDeployer } from '../../deploy/router/HyperlaneRouterDeployer';
|
|
5
|
+
import { RouterConfig } from '../../deploy/router/types';
|
|
6
|
+
import { MultiProvider } from '../../providers/MultiProvider';
|
|
7
|
+
import { RouterContracts, RouterFactories } from '../../router';
|
|
8
|
+
import { ChainMap, ChainName } from '../../types';
|
|
9
|
+
export declare const fullEnvTestConfigs: {
|
|
10
|
+
test1: import("../../types").IChainConnection;
|
|
11
|
+
test2: import("../../types").IChainConnection;
|
|
12
|
+
test3: import("../../types").IChainConnection;
|
|
13
|
+
};
|
|
14
|
+
export declare const subsetTestConfigs: {
|
|
15
|
+
test1: import("../../types").IChainConnection;
|
|
16
|
+
test2: import("../../types").IChainConnection;
|
|
17
|
+
};
|
|
18
|
+
export declare type SubsetChains = keyof typeof subsetTestConfigs;
|
|
19
|
+
export declare const alfajoresChainConfig: {
|
|
20
|
+
alfajores: import("../../types").IChainConnection;
|
|
21
|
+
};
|
|
22
|
+
export declare class EnvSubsetApp<Chain extends ChainName = ChainName> extends HyperlaneApp<RouterContracts, Chain> {
|
|
23
|
+
}
|
|
24
|
+
export declare class EnvSubsetChecker<Chain extends ChainName> extends HyperlaneRouterChecker<Chain, EnvSubsetApp<Chain>, RouterConfig, RouterContracts> {
|
|
25
|
+
}
|
|
26
|
+
export declare const envSubsetFactories: RouterFactories;
|
|
27
|
+
export declare class EnvSubsetDeployer<Chain extends ChainName> extends HyperlaneRouterDeployer<Chain, RouterConfig, RouterContracts, RouterFactories> {
|
|
28
|
+
protected core: HyperlaneCore<Chain>;
|
|
29
|
+
constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, RouterConfig>, core: HyperlaneCore<Chain>);
|
|
30
|
+
initRouter(contractsMap: ChainMap<Chain, RouterContracts>): Promise<void>;
|
|
31
|
+
deploy(): Promise<ChainMap<Chain, RouterContracts>>;
|
|
32
|
+
deployContracts(chain: Chain): Promise<{
|
|
33
|
+
router: import("@hyperlane-xyz/core").Router;
|
|
34
|
+
}>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,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;AAGlD,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AAEF,oBAAY,YAAY,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE1D,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAEF,qBAAa,YAAY,CACvB,KAAK,SAAS,SAAS,GAAG,SAAS,CACnC,SAAQ,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC;CAAG;AAEjD,qBAAa,gBAAgB,CAC3B,KAAK,SAAS,SAAS,CACvB,SAAQ,sBAAsB,CAC9B,KAAK,EACL,YAAY,CAAC,KAAK,CAAC,EACnB,YAAY,EACZ,eAAe,CAChB;CAAG;AAEJ,eAAO,MAAM,kBAAkB,EAAE,eAEhC,CAAC;AAEF,qBAAa,iBAAiB,CAC5B,KAAK,SAAS,SAAS,CACvB,SAAQ,uBAAuB,CAC/B,KAAK,EACL,YAAY,EACZ,eAAe,EACf,eAAe,CAChB;IAIG,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;gBAFpC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,EAC9B,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;IAMhC,UAAU,CACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC;IAcV,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IASnD,eAAe,CAAC,KAAK,EAAE,KAAK;;;CAMnC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
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.EnvSubsetDeployer = exports.envSubsetFactories = exports.EnvSubsetChecker = exports.EnvSubsetApp = exports.alfajoresChainConfig = exports.subsetTestConfigs = exports.fullEnvTestConfigs = void 0;
|
|
13
|
+
const core_1 = require("@hyperlane-xyz/core");
|
|
14
|
+
const HyperlaneApp_1 = require("../../HyperlaneApp");
|
|
15
|
+
const chainConnectionConfigs_1 = require("../../consts/chainConnectionConfigs");
|
|
16
|
+
const HyperlaneDeployer_1 = require("../../deploy/HyperlaneDeployer");
|
|
17
|
+
const HyperlaneRouterChecker_1 = require("../../deploy/router/HyperlaneRouterChecker");
|
|
18
|
+
const HyperlaneRouterDeployer_1 = require("../../deploy/router/HyperlaneRouterDeployer");
|
|
19
|
+
const objects_1 = require("../../utils/objects");
|
|
20
|
+
exports.fullEnvTestConfigs = {
|
|
21
|
+
test1: chainConnectionConfigs_1.chainConnectionConfigs.test1,
|
|
22
|
+
test2: chainConnectionConfigs_1.chainConnectionConfigs.test2,
|
|
23
|
+
test3: chainConnectionConfigs_1.chainConnectionConfigs.test3,
|
|
24
|
+
};
|
|
25
|
+
exports.subsetTestConfigs = {
|
|
26
|
+
test1: chainConnectionConfigs_1.chainConnectionConfigs.test1,
|
|
27
|
+
test2: chainConnectionConfigs_1.chainConnectionConfigs.test2,
|
|
28
|
+
};
|
|
29
|
+
exports.alfajoresChainConfig = {
|
|
30
|
+
alfajores: chainConnectionConfigs_1.chainConnectionConfigs.alfajores,
|
|
31
|
+
};
|
|
32
|
+
class EnvSubsetApp extends HyperlaneApp_1.HyperlaneApp {
|
|
33
|
+
}
|
|
34
|
+
exports.EnvSubsetApp = EnvSubsetApp;
|
|
35
|
+
class EnvSubsetChecker extends HyperlaneRouterChecker_1.HyperlaneRouterChecker {
|
|
36
|
+
}
|
|
37
|
+
exports.EnvSubsetChecker = EnvSubsetChecker;
|
|
38
|
+
exports.envSubsetFactories = {
|
|
39
|
+
router: new core_1.TestRouter__factory(),
|
|
40
|
+
};
|
|
41
|
+
class EnvSubsetDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDeployer {
|
|
42
|
+
constructor(multiProvider, configMap, core) {
|
|
43
|
+
super(multiProvider, configMap, exports.envSubsetFactories, {});
|
|
44
|
+
this.core = core;
|
|
45
|
+
}
|
|
46
|
+
// Consider moving this up to HyperlaneRouterDeployer
|
|
47
|
+
initRouter(contractsMap) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
this.logger(`Calling initialize on routers...`);
|
|
50
|
+
yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(contractsMap, (chain, contracts) => __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
const chainConnection = this.multiProvider.getChainConnection(chain);
|
|
52
|
+
const mailbox = this.configMap[chain].mailbox;
|
|
53
|
+
yield chainConnection.handleTx(
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
contracts.router.initialize(mailbox, chainConnection.overrides));
|
|
56
|
+
})));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
deploy() {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
const contractsMap = (yield HyperlaneDeployer_1.HyperlaneDeployer.prototype.deploy.apply(this));
|
|
62
|
+
yield this.initRouter(contractsMap);
|
|
63
|
+
yield this.enrollRemoteRouters(contractsMap);
|
|
64
|
+
return contractsMap;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
deployContracts(chain) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
const router = yield this.deployContract(chain, 'router', []);
|
|
70
|
+
return {
|
|
71
|
+
router,
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.EnvSubsetDeployer = EnvSubsetDeployer;
|
|
77
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/app.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA0D;AAE1D,qDAAkD;AAClD,gFAA6E;AAE7E,sEAAmE;AACnE,uFAAoF;AACpF,yFAAsF;AAKtF,iDAA4D;AAE/C,QAAA,kBAAkB,GAAG;IAChC,KAAK,EAAE,+CAAsB,CAAC,KAAK;IACnC,KAAK,EAAE,+CAAsB,CAAC,KAAK;IACnC,KAAK,EAAE,+CAAsB,CAAC,KAAK;CACpC,CAAC;AAEW,QAAA,iBAAiB,GAAG;IAC/B,KAAK,EAAE,+CAAsB,CAAC,KAAK;IACnC,KAAK,EAAE,+CAAsB,CAAC,KAAK;CACpC,CAAC;AAIW,QAAA,oBAAoB,GAAG;IAClC,SAAS,EAAE,+CAAsB,CAAC,SAAS;CAC5C,CAAC;AAEF,MAAa,YAEX,SAAQ,2BAAoC;CAAG;AAFjD,oCAEiD;AAEjD,MAAa,gBAEX,SAAQ,+CAKT;CAAG;AAPJ,4CAOI;AAES,QAAA,kBAAkB,GAAoB;IACjD,MAAM,EAAE,IAAI,0BAAmB,EAAE;CAClC,CAAC;AAEF,MAAa,iBAEX,SAAQ,iDAKT;IACC,YACE,aAAmC,EACnC,SAAwC,EAC9B,IAA0B;QAEpC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,0BAAkB,EAAE,EAAE,CAAC,CAAC;QAF9C,SAAI,GAAJ,IAAI,CAAsB;IAGtC,CAAC;IAED,qDAAqD;IAC/C,UAAU,CACd,YAA8C;;YAE9C,IAAI,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;YAChD,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,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBAC9C,MAAM,eAAe,CAAC,QAAQ;gBAC5B,aAAa;gBACb,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAChE,CAAC;YACJ,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAEK,MAAM;;YACV,MAAM,YAAY,GAAG,CAAC,MAAM,qCAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAClE,IAAI,CACL,CAAmC,CAAC;YACrC,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAC7C,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;IAEK,eAAe,CAAC,KAAY;;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9D,OAAO;gBACL,MAAM;aACP,CAAC;QACJ,CAAC;KAAA;CACF;AAhDD,8CAgDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-single-chain.d.ts","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/check-single-chain.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
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
|
+
const contracts_1 = require("../../contracts");
|
|
13
|
+
const HyperlaneCore_1 = require("../../core/HyperlaneCore");
|
|
14
|
+
const utils_1 = require("../../deploy/utils");
|
|
15
|
+
const MultiProvider_1 = require("../../providers/MultiProvider");
|
|
16
|
+
const app_1 = require("./app");
|
|
17
|
+
const utils_2 = require("./utils");
|
|
18
|
+
// Copied from output of deploy-single-chain.ts script
|
|
19
|
+
const deploymentAddresses = {
|
|
20
|
+
alfajores: {
|
|
21
|
+
router: '0x0666AD4F636210B6a418f97790b7BAABAC54b9A4',
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
const ownerAddress = '0x35b74Ed5038bf0488Ff33bD9819b9D12D10A7560';
|
|
25
|
+
function check() {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
const provider = (0, utils_2.getAlfajoresProvider)();
|
|
28
|
+
console.info('Preparing utilities');
|
|
29
|
+
const multiProvider = new MultiProvider_1.MultiProvider({
|
|
30
|
+
alfajores: {
|
|
31
|
+
provider,
|
|
32
|
+
confirmations: app_1.alfajoresChainConfig.alfajores.confirmations,
|
|
33
|
+
overrides: app_1.alfajoresChainConfig.alfajores.overrides,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
const contractsMap = (0, contracts_1.buildContracts)(deploymentAddresses, app_1.envSubsetFactories);
|
|
37
|
+
const app = new app_1.EnvSubsetApp(contractsMap, multiProvider);
|
|
38
|
+
const core = HyperlaneCore_1.HyperlaneCore.fromEnvironment('testnet2', multiProvider);
|
|
39
|
+
const config = core.extendWithConnectionClientConfig((0, utils_1.getChainToOwnerMap)(app_1.alfajoresChainConfig, ownerAddress));
|
|
40
|
+
const envSubsetChecker = new app_1.EnvSubsetChecker(multiProvider, app, config);
|
|
41
|
+
console.info('Starting check');
|
|
42
|
+
yield envSubsetChecker.check();
|
|
43
|
+
envSubsetChecker.expectEmpty();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
check()
|
|
47
|
+
.then(() => console.info('Check complete'))
|
|
48
|
+
.catch(console.error);
|
|
49
|
+
//# sourceMappingURL=check-single-chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-single-chain.js","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/check-single-chain.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+CAAiD;AACjD,4DAAyD;AACzD,8CAAwD;AACxD,iEAA8D;AAI9D,+BAKe;AACf,mCAA+C;AAE/C,sDAAsD;AACtD,MAAM,mBAAmB,GAAG;IAC1B,SAAS,EAAE;QACT,MAAM,EAAE,4CAA4C;KACrD;CACF,CAAC;AAEF,MAAM,YAAY,GAAG,4CAA4C,CAAC;AAElE,SAAe,KAAK;;QAClB,MAAM,QAAQ,GAAG,IAAA,4BAAoB,GAAE,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC;YACtC,SAAS,EAAE;gBACT,QAAQ;gBACR,aAAa,EAAE,0BAAoB,CAAC,SAAS,CAAC,aAAa;gBAC3D,SAAS,EAAE,0BAAoB,CAAC,SAAS,CAAC,SAAS;aACpD;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAA,0BAAc,EACjC,mBAAmB,EACnB,wBAAkB,CACqB,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,kBAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,6BAAa,CAAC,eAAe,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,gCAAgC,CAClD,IAAA,0BAAkB,EAAC,0BAAoB,EAAE,YAAY,CAAC,CACvD,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,sBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAE1E,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;CAAA;AAED,KAAK,EAAE;KACJ,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC1C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-single-chain.d.ts","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/deploy-single-chain.ts"],"names":[],"mappings":""}
|