@hyperlane-xyz/sdk 1.1.3 → 1.2.0
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 +2 -2
- package/dist/HyperlaneApp.d.ts +7 -8
- package/dist/HyperlaneApp.d.ts.map +1 -1
- package/dist/HyperlaneApp.js +1 -4
- package/dist/HyperlaneApp.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +54 -25
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +65 -81
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +5 -5
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +5 -1
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +4 -2
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/mainnet.json +3 -1
- package/dist/core/HyperlaneCore.d.ts +10 -385
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +6 -11
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCore.test.js +2 -3
- package/dist/core/HyperlaneCore.test.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +5 -5
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +2 -4
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.d.ts +6 -6
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +1 -1
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +8 -12
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts +9 -7
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +32 -9
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +15 -15
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +28 -35
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts +9 -7
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreChecker.js +57 -3
- package/dist/deploy/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts +11 -11
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.js +12 -20
- package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/deploy/core/types.d.ts +9 -1
- package/dist/deploy/core/types.d.ts.map +1 -1
- package/dist/deploy/core/types.js +1 -0
- package/dist/deploy/core/types.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts +17 -17
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerApp.js +18 -23
- package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +7 -7
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +6 -9
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/deploy/middleware/deploy.d.ts +9 -9
- package/dist/deploy/middleware/deploy.d.ts.map +1 -1
- package/dist/deploy/middleware/deploy.js.map +1 -1
- package/dist/deploy/router/GasRouterDeployer.d.ts +12 -0
- package/dist/deploy/router/GasRouterDeployer.d.ts.map +1 -0
- package/dist/deploy/router/GasRouterDeployer.js +46 -0
- package/dist/deploy/router/GasRouterDeployer.js.map +1 -0
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts +6 -6
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/deploy/router/HyperlaneRouterChecker.js +2 -2
- package/dist/deploy/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/deploy/router/HyperlaneRouterDeployer.d.ts +7 -7
- package/dist/deploy/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/router/HyperlaneRouterDeployer.js +19 -22
- package/dist/deploy/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/deploy/router/types.d.ts +5 -0
- package/dist/deploy/router/types.d.ts.map +1 -1
- package/dist/deploy/types.d.ts +9 -5
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/types.js +1 -0
- package/dist/deploy/types.js.map +1 -1
- package/dist/deploy/utils.d.ts +2 -6
- package/dist/deploy/utils.d.ts.map +1 -1
- package/dist/deploy/utils.js +1 -27
- package/dist/deploy/utils.js.map +1 -1
- package/dist/deploy/verify/ContractVerifier.d.ts +7 -7
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +2 -5
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/events.d.ts +4 -4
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +12 -9
- package/dist/events.js.map +1 -1
- package/dist/gas/calculator.d.ts +20 -20
- package/dist/gas/calculator.d.ts.map +1 -1
- package/dist/gas/calculator.hardhat-test.js +5 -4
- package/dist/gas/calculator.hardhat-test.js.map +1 -1
- package/dist/gas/calculator.js +9 -11
- package/dist/gas/calculator.js.map +1 -1
- package/dist/gas/calculator.test.js +2 -14
- package/dist/gas/calculator.test.js.map +1 -1
- package/dist/gas/token-prices.d.ts +4 -2
- package/dist/gas/token-prices.d.ts.map +1 -1
- package/dist/gas/token-prices.js +4 -2
- package/dist/gas/token-prices.js.map +1 -1
- package/dist/index.d.ts +30 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +59 -66
- package/dist/index.js.map +1 -1
- package/dist/middleware/accounts.hardhat-test.js +23 -13
- package/dist/middleware/accounts.hardhat-test.js.map +1 -1
- package/dist/middleware/liquidity-layer.hardhat-test.js +10 -9
- package/dist/middleware/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/queries.hardhat-test.js +17 -13
- package/dist/middleware/queries.hardhat-test.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +186 -37
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +408 -63
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/router.d.ts +11 -2
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +28 -0
- package/dist/router.js.map +1 -1
- package/dist/test/envSubsetDeployer/app.d.ts +12 -21
- package/dist/test/envSubsetDeployer/app.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.js +13 -18
- package/dist/test/envSubsetDeployer/app.js.map +1 -1
- package/dist/test/envSubsetDeployer/check-single-chain.js +1 -11
- package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy-single-chain.js +3 -9
- package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js +4 -3
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js.map +1 -1
- package/dist/test/envSubsetDeployer/utils.d.ts +0 -3
- package/dist/test/envSubsetDeployer/utils.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/utils.js +2 -10
- package/dist/test/envSubsetDeployer/utils.js.map +1 -1
- package/dist/test/testUtils.d.ts +5 -1
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +8 -1
- package/dist/test/testUtils.js.map +1 -1
- package/dist/types.d.ts +2 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/MultiGeneric.d.ts +11 -12
- package/dist/utils/MultiGeneric.d.ts.map +1 -1
- package/dist/utils/MultiGeneric.js +3 -6
- package/dist/utils/MultiGeneric.js.map +1 -1
- package/dist/utils/wagmi.d.ts +4 -0
- package/dist/utils/wagmi.d.ts.map +1 -0
- package/dist/utils/wagmi.js +28 -0
- package/dist/utils/wagmi.js.map +1 -0
- package/logos/black/gnosis.svg +1 -0
- package/logos/color/gnosis.svg +1 -0
- package/package.json +5 -6
- package/dist/consts/chainConnectionConfigs.d.ts +0 -21
- package/dist/consts/chainConnectionConfigs.d.ts.map +0 -1
- package/dist/consts/chainConnectionConfigs.js +0 -35
- package/dist/consts/chainConnectionConfigs.js.map +0 -1
- package/dist/core/message.d.ts +0 -146
- package/dist/core/message.d.ts.map +0 -1
- package/dist/core/message.js +0 -285
- package/dist/core/message.js.map +0 -1
- package/dist/domains.d.ts +0 -4
- package/dist/domains.d.ts.map +0 -1
- package/dist/domains.js +0 -12
- package/dist/domains.js.map +0 -1
- package/dist/providers/ChainConnection.d.ts +0 -23
- package/dist/providers/ChainConnection.d.ts.map +0 -1
- package/dist/providers/ChainConnection.js +0 -67
- package/dist/providers/ChainConnection.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
2
|
import { TestMailbox } from '@hyperlane-xyz/core';
|
|
3
3
|
import { ProxiedContract } from '../proxy';
|
|
4
|
-
import { ChainName
|
|
4
|
+
import { ChainName } from '../types';
|
|
5
5
|
import { HyperlaneCore } from './HyperlaneCore';
|
|
6
6
|
import { CoreContracts } from './contracts';
|
|
7
7
|
declare type MockProxyAddresses = {
|
|
@@ -12,10 +12,10 @@ declare type MockProxyAddresses = {
|
|
|
12
12
|
export declare type TestCoreContracts = CoreContracts & {
|
|
13
13
|
mailbox: ProxiedContract<TestMailbox, MockProxyAddresses>;
|
|
14
14
|
};
|
|
15
|
-
export declare class TestCoreApp
|
|
16
|
-
getContracts
|
|
17
|
-
processMessages(): Promise<Map<
|
|
18
|
-
processOutboundMessages
|
|
15
|
+
export declare class TestCoreApp extends HyperlaneCore {
|
|
16
|
+
getContracts(chain: ChainName): TestCoreContracts;
|
|
17
|
+
processMessages(): Promise<Map<ChainName, Map<ChainName, ethers.providers.TransactionResponse[]>>>;
|
|
18
|
+
processOutboundMessages(origin: ChainName): Promise<Map<ChainName, ethers.providers.TransactionResponse[]>>;
|
|
19
19
|
}
|
|
20
20
|
export {};
|
|
21
21
|
//# sourceMappingURL=TestCoreApp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestCoreApp.d.ts","sourceRoot":"","sources":["../../src/core/TestCoreApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"TestCoreApp.d.ts","sourceRoot":"","sources":["../../src/core/TestCoreApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,aAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,oBAAY,iBAAiB,GAAG,aAAa,GAAG;IAC9C,OAAO,EAAE,eAAe,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;CAC3D,CAAC;AAEF,qBAAa,WAAY,SAAQ,aAAa;IAC5C,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,iBAAiB;IAI3C,eAAe,IAAI,OAAO,CAC9B,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC,CACvE;IAaK,uBAAuB,CAC3B,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC;CAyBnE"}
|
package/dist/core/TestCoreApp.js
CHANGED
|
@@ -11,8 +11,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TestCoreApp = void 0;
|
|
13
13
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
14
|
-
const chainMetadata_1 = require("../consts/chainMetadata");
|
|
15
|
-
const domains_1 = require("../domains");
|
|
16
14
|
const HyperlaneCore_1 = require("./HyperlaneCore");
|
|
17
15
|
class TestCoreApp extends HyperlaneCore_1.HyperlaneCore {
|
|
18
16
|
getContracts(chain) {
|
|
@@ -39,10 +37,10 @@ class TestCoreApp extends HyperlaneCore_1.HyperlaneCore {
|
|
|
39
37
|
const dispatches = yield outbox.queryFilter(dispatchFilter);
|
|
40
38
|
for (const dispatch of dispatches) {
|
|
41
39
|
const destination = dispatch.args.destination;
|
|
42
|
-
if (destination ===
|
|
40
|
+
if (destination === this.multiProvider.getDomainId(origin)) {
|
|
43
41
|
throw new Error('Dispatched message to local domain');
|
|
44
42
|
}
|
|
45
|
-
const destinationChain =
|
|
43
|
+
const destinationChain = this.multiProvider.getChainName(destination);
|
|
46
44
|
const inbox = this.getContracts(destinationChain).mailbox.contract;
|
|
47
45
|
const id = utils_1.utils.messageId(dispatch.args.message);
|
|
48
46
|
const delivered = yield inbox.delivered(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestCoreApp.js","sourceRoot":"","sources":["../../src/core/TestCoreApp.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,gDAA6C;
|
|
1
|
+
{"version":3,"file":"TestCoreApp.js","sourceRoot":"","sources":["../../src/core/TestCoreApp.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,gDAA6C;AAK7C,mDAAgD;AAahD,MAAa,WAAY,SAAQ,6BAAa;IAC5C,YAAY,CAAC,KAAgB;QAC3B,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAsB,CAAC;IACxD,CAAC;IAEK,eAAe;;YAGnB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;gBAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAC5D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;gBAClC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAChD,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAC5D,CAAC;gBACF,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;aACxC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAEK,uBAAuB,CAC3B,MAAiB;;YAEjB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAgB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;YAEvD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YAC5D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;gBACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC9C,IAAI,WAAW,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;oBAC1D,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;iBACvD;gBACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;gBACtE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACnE,MAAM,EAAE,GAAG,aAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,SAAS,EAAE;oBACd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAClE,MAAM,oBAAoB,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;oBACnE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACpC,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;iBACvD;aACF;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;CACF;AA/CD,kCA+CC"}
|
|
@@ -3,13 +3,13 @@ import { MultisigIsm } from '@hyperlane-xyz/core';
|
|
|
3
3
|
import { HyperlaneCoreDeployer } from '../deploy/core/HyperlaneCoreDeployer';
|
|
4
4
|
import { CoreConfig } from '../deploy/core/types';
|
|
5
5
|
import { MultiProvider } from '../providers/MultiProvider';
|
|
6
|
-
import { ChainMap,
|
|
6
|
+
import { ChainMap, ChainName } from '../types';
|
|
7
7
|
import { TestCoreApp } from './TestCoreApp';
|
|
8
|
-
export declare class TestCoreDeployer
|
|
9
|
-
readonly multiProvider: MultiProvider
|
|
10
|
-
constructor(multiProvider: MultiProvider
|
|
11
|
-
deployMultisigIsm
|
|
8
|
+
export declare class TestCoreDeployer extends HyperlaneCoreDeployer {
|
|
9
|
+
readonly multiProvider: MultiProvider;
|
|
10
|
+
constructor(multiProvider: MultiProvider, configMap?: ChainMap<CoreConfig>);
|
|
11
|
+
deployMultisigIsm(chain: ChainName): Promise<MultisigIsm>;
|
|
12
12
|
transferOwnershipOfContracts(): Promise<ethers.ContractReceipt[]>;
|
|
13
|
-
deployApp(): Promise<TestCoreApp
|
|
13
|
+
deployApp(): Promise<TestCoreApp>;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=TestCoreDeployer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestCoreDeployer.d.ts","sourceRoot":"","sources":["../../src/core/TestCoreDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,WAAW,EAGZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"TestCoreDeployer.d.ts","sourceRoot":"","sources":["../../src/core/TestCoreDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,WAAW,EAGZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAoB5C,qBAAa,gBAAiB,SAAQ,qBAAqB;aAEvC,aAAa,EAAE,aAAa;gBAA5B,aAAa,EAAE,aAAa,EAC5C,SAAS,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC;IAa5B,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAYzD,4BAA4B,IAAI,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;IAIjE,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;CAGxC"}
|
|
@@ -32,7 +32,7 @@ class TestCoreDeployer extends HyperlaneCoreDeployer_1.HyperlaneCoreDeployer {
|
|
|
32
32
|
test1: testMultisigIsmConfig,
|
|
33
33
|
test2: testMultisigIsmConfig,
|
|
34
34
|
test3: testMultisigIsmConfig,
|
|
35
|
-
};
|
|
35
|
+
};
|
|
36
36
|
super(multiProvider, configs, testCoreFactories);
|
|
37
37
|
this.multiProvider = multiProvider;
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestCoreDeployer.js","sourceRoot":"","sources":["../../src/core/TestCoreDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAEhC,8CAI6B;AAE7B,gFAA6E;AAK7E,+CAA4C;AAC5C,2CAA4C;AAE5C,MAAM,cAAc,GAAG,eAAM,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAExE,mEAAmE;AACnE,MAAM,qBAAqB,GAAe;IACxC,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE;QACX,UAAU,EAAE,CAAC,cAAc,CAAC;QAC5B,SAAS,EAAE,CAAC;KACb;CACF,CAAC;AAEF,MAAM,iBAAiB,mCAClB,yBAAa,KAChB,OAAO,EAAE,IAAI,2BAAoB,EAAE,EACnC,OAAO,EAAE,IAAI,uBAAgB,EAAE,GAChC,CAAC;AAEF,MAAa,
|
|
1
|
+
{"version":3,"file":"TestCoreDeployer.js","sourceRoot":"","sources":["../../src/core/TestCoreDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAEhC,8CAI6B;AAE7B,gFAA6E;AAK7E,+CAA4C;AAC5C,2CAA4C;AAE5C,MAAM,cAAc,GAAG,eAAM,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAExE,mEAAmE;AACnE,MAAM,qBAAqB,GAAe;IACxC,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE;QACX,UAAU,EAAE,CAAC,cAAc,CAAC;QAC5B,SAAS,EAAE,CAAC;KACb;CACF,CAAC;AAEF,MAAM,iBAAiB,mCAClB,yBAAa,KAChB,OAAO,EAAE,IAAI,2BAAoB,EAAE,EACnC,OAAO,EAAE,IAAI,uBAAgB,EAAE,GAChC,CAAC;AAEF,MAAa,gBAAiB,SAAQ,6CAAqB;IACzD,YACkB,aAA4B,EAC5C,SAAgC;QAEhC,oDAAoD;QACpD,MAAM,OAAO,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI;YAC3B,KAAK,EAAE,qBAAqB;YAC5B,KAAK,EAAE,qBAAqB;YAC5B,KAAK,EAAE,qBAAqB;SAC7B,CAAC;QAEF,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAVjC,kBAAa,GAAb,aAAa,CAAe;IAW9C,CAAC;IAED,+CAA+C;IACzC,iBAAiB,CAAC,KAAgB;;YACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAClD,KAAK,EACL,iBAAiB,CAAC,OAAO,EACzB,SAAS,EACT,EAAE,CACH,CAAC;YACF,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,OAAiC,CAAC;QAC3C,CAAC;KAAA;IAED,wDAAwD;IAClD,4BAA4B;;YAChC,OAAO,EAAE,CAAC;QACZ,CAAC;KAAA;IAEK,SAAS;;YACb,OAAO,IAAI,yBAAW,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,CAAC;KAAA;CACF;AAnCD,4CAmCC"}
|
|
@@ -15,30 +15,26 @@ const chai_1 = require("chai");
|
|
|
15
15
|
const hardhat_1 = require("hardhat");
|
|
16
16
|
const core_1 = require("@hyperlane-xyz/core");
|
|
17
17
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
18
|
-
const
|
|
19
|
-
const
|
|
18
|
+
const chains_1 = require("../consts/chains");
|
|
19
|
+
const MultiProvider_1 = require("../providers/MultiProvider");
|
|
20
20
|
const TestCoreDeployer_1 = require("./TestCoreDeployer");
|
|
21
|
-
const localChain =
|
|
22
|
-
const
|
|
23
|
-
const remoteChain = 'test2';
|
|
24
|
-
const remoteDomain = chainMetadata_1.chainMetadata[remoteChain].id;
|
|
21
|
+
const localChain = chains_1.Chains.test1;
|
|
22
|
+
const remoteChain = chains_1.Chains.test2;
|
|
25
23
|
const message = '0xdeadbeef';
|
|
26
24
|
describe('TestCoreDeployer', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
25
|
let testCoreApp, localMailbox, remoteMailbox, dispatchReceipt;
|
|
28
26
|
beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
29
27
|
const [signer] = yield hardhat_1.ethers.getSigners();
|
|
30
|
-
const multiProvider = (
|
|
28
|
+
const multiProvider = MultiProvider_1.MultiProvider.createTestMultiProvider({ signer });
|
|
31
29
|
const deployer = new TestCoreDeployer_1.TestCoreDeployer(multiProvider);
|
|
32
30
|
testCoreApp = yield deployer.deployApp();
|
|
33
31
|
const recipient = yield new core_1.TestRecipient__factory(signer).deploy();
|
|
34
32
|
localMailbox = testCoreApp.getContracts(localChain).mailbox.contract;
|
|
35
|
-
const dispatchResponse = localMailbox.dispatch(
|
|
33
|
+
const dispatchResponse = localMailbox.dispatch(multiProvider.getDomainId(remoteChain), utils_1.utils.addressToBytes32(recipient.address), message);
|
|
36
34
|
yield (0, chai_1.expect)(dispatchResponse).to.emit(localMailbox, 'Dispatch');
|
|
37
|
-
dispatchReceipt = yield testCoreApp.multiProvider
|
|
38
|
-
.getChainConnection(localChain)
|
|
39
|
-
.handleTx(dispatchResponse);
|
|
35
|
+
dispatchReceipt = yield testCoreApp.multiProvider.handleTx(localChain, dispatchResponse);
|
|
40
36
|
remoteMailbox = testCoreApp.getContracts(remoteChain).mailbox.contract;
|
|
41
|
-
yield (0, chai_1.expect)(remoteMailbox.dispatch(
|
|
37
|
+
yield (0, chai_1.expect)(remoteMailbox.dispatch(multiProvider.getDomainId(localChain), utils_1.utils.addressToBytes32(recipient.address), message)).to.emit(remoteMailbox, 'Dispatch');
|
|
42
38
|
}));
|
|
43
39
|
it('processes outbound messages for a single domain', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
40
|
const responses = yield testCoreApp.processOutboundMessages(localChain);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testHyperlaneDeploy.hardhat-test.js","sourceRoot":"","sources":["../../src/core/testHyperlaneDeploy.hardhat-test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,qCAAmC;AACnC,qCAAmC;AACnC,+BAA8B;AAE9B,qCAAiC;AAEjC,8CAA0E;AAC1E,gDAA6C;AAE7C,
|
|
1
|
+
{"version":3,"file":"testHyperlaneDeploy.hardhat-test.js","sourceRoot":"","sources":["../../src/core/testHyperlaneDeploy.hardhat-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,17 +5,19 @@ import { MultiProvider } from '../providers/MultiProvider';
|
|
|
5
5
|
import { TransparentProxyAddresses } from '../proxy';
|
|
6
6
|
import { ChainMap, ChainName } from '../types';
|
|
7
7
|
import { CheckerViolation } from './types';
|
|
8
|
-
export declare abstract class HyperlaneAppChecker<
|
|
9
|
-
readonly multiProvider: MultiProvider
|
|
8
|
+
export declare abstract class HyperlaneAppChecker<App extends HyperlaneApp<any>, Config> {
|
|
9
|
+
readonly multiProvider: MultiProvider;
|
|
10
10
|
readonly app: App;
|
|
11
|
-
readonly configMap: ChainMap<
|
|
11
|
+
readonly configMap: ChainMap<Config>;
|
|
12
12
|
readonly violations: CheckerViolation[];
|
|
13
|
-
constructor(multiProvider: MultiProvider
|
|
14
|
-
abstract checkChain(chain:
|
|
13
|
+
constructor(multiProvider: MultiProvider, app: App, configMap: ChainMap<Config>);
|
|
14
|
+
abstract checkChain(chain: ChainName): Promise<void>;
|
|
15
15
|
check(): Promise<void[]>;
|
|
16
16
|
addViolation(violation: CheckerViolation): void;
|
|
17
|
-
checkProxiedContract(chain:
|
|
18
|
-
|
|
17
|
+
checkProxiedContract(chain: ChainName, name: string, proxiedAddress: TransparentProxyAddresses, proxyAdminAddress?: types.Address): Promise<void>;
|
|
18
|
+
private removeBytecodeMetadata;
|
|
19
|
+
checkBytecode(chain: ChainName, name: string, address: string, expectedBytecodeHash: string, modifyBytecodePriorToHash?: (bytecode: string) => string): Promise<void>;
|
|
20
|
+
checkOwnership(chain: ChainName, owner: types.Address, ownables: Ownable[]): Promise<void>;
|
|
19
21
|
expectViolations(violationCounts: Record<string, number>): void;
|
|
20
22
|
expectEmpty(): void;
|
|
21
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneAppChecker.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneAppChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneAppChecker.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneAppChecker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI/C,OAAO,EAEL,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AAEjB,8BAAsB,mBAAmB,CACvC,GAAG,SAAS,YAAY,CAAC,GAAG,CAAC,EAC7B,MAAM;IAEN,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAClB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;gBAGtC,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC;IAQ7B,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9C,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAiB9B,YAAY,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAIzC,oBAAoB,CACxB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,yBAAyB,EACzC,iBAAiB,CAAC,EAAE,KAAK,CAAC,OAAO,GAChC,OAAO,CAAC,IAAI,CAAC;IAiBhB,OAAO,CAAC,sBAAsB;IAOxB,aAAa,CACjB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,MAAM,EAC5B,yBAAyB,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAiB,GACjE,OAAO,CAAC,IAAI,CAAC;IAiBV,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC;IAkBhB,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAgB/D,WAAW,IAAI,IAAI;CAIpB"}
|
|
@@ -10,7 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.HyperlaneAppChecker = void 0;
|
|
13
|
-
const utils_1 = require("
|
|
13
|
+
const utils_1 = require("ethers/lib/utils");
|
|
14
|
+
const utils_2 = require("@hyperlane-xyz/utils");
|
|
14
15
|
const objects_1 = require("../utils/objects");
|
|
15
16
|
const proxy_1 = require("./proxy");
|
|
16
17
|
const types_1 = require("./types");
|
|
@@ -27,7 +28,7 @@ class HyperlaneAppChecker {
|
|
|
27
28
|
.filter((_) => !this.app.chains().includes(_))
|
|
28
29
|
.forEach((chain) => this.addViolation({
|
|
29
30
|
type: types_1.ViolationType.NotDeployed,
|
|
30
|
-
chain
|
|
31
|
+
chain,
|
|
31
32
|
expected: '',
|
|
32
33
|
actual: '',
|
|
33
34
|
}));
|
|
@@ -39,14 +40,36 @@ class HyperlaneAppChecker {
|
|
|
39
40
|
}
|
|
40
41
|
checkProxiedContract(chain, name, proxiedAddress, proxyAdminAddress) {
|
|
41
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
const
|
|
43
|
-
const implementation = yield (0, proxy_1.proxyImplementation)(
|
|
43
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
44
|
+
const implementation = yield (0, proxy_1.proxyImplementation)(provider, proxiedAddress.proxy);
|
|
44
45
|
if (implementation !== proxiedAddress.implementation) {
|
|
45
46
|
this.addViolation((0, proxy_1.proxyViolation)(chain, name, proxiedAddress, implementation));
|
|
46
47
|
}
|
|
47
48
|
if (proxyAdminAddress) {
|
|
48
|
-
const admin = yield (0, proxy_1.proxyAdmin)(
|
|
49
|
-
|
|
49
|
+
const admin = yield (0, proxy_1.proxyAdmin)(provider, proxiedAddress.proxy);
|
|
50
|
+
utils_2.utils.assert(admin === proxyAdminAddress, 'Proxy admin mismatch');
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
removeBytecodeMetadata(bytecode) {
|
|
55
|
+
// https://docs.soliditylang.org/en/v0.8.17/metadata.html#encoding-of-the-metadata-hash-in-the-bytecode
|
|
56
|
+
// Remove solc metadata from bytecode
|
|
57
|
+
return bytecode.substring(0, bytecode.length - 90);
|
|
58
|
+
}
|
|
59
|
+
// This method checks whether the bytecode of a contract matches the expected bytecode. It forces the deployer to explicitly acknowledge a change in bytecode. The violations can be remediated by updating the expected bytecode hash.
|
|
60
|
+
checkBytecode(chain, name, address, expectedBytecodeHash, modifyBytecodePriorToHash = (_) => _) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
63
|
+
const bytecode = yield provider.getCode(address);
|
|
64
|
+
const bytecodeHash = (0, utils_1.keccak256)(modifyBytecodePriorToHash(this.removeBytecodeMetadata(bytecode)));
|
|
65
|
+
if (bytecodeHash !== expectedBytecodeHash) {
|
|
66
|
+
this.addViolation({
|
|
67
|
+
type: types_1.ViolationType.BytecodeMismatch,
|
|
68
|
+
chain,
|
|
69
|
+
expected: expectedBytecodeHash,
|
|
70
|
+
actual: bytecodeHash,
|
|
71
|
+
name,
|
|
72
|
+
});
|
|
50
73
|
}
|
|
51
74
|
});
|
|
52
75
|
}
|
|
@@ -71,17 +94,17 @@ class HyperlaneAppChecker {
|
|
|
71
94
|
// Every type should have exactly the number of expected matches.
|
|
72
95
|
(0, objects_1.objMap)(violationCounts, (type, count) => {
|
|
73
96
|
const actual = this.violations.filter((v) => v.type === type).length;
|
|
74
|
-
|
|
97
|
+
utils_2.utils.assert(actual == count, `Expected ${count} ${type} violations, got ${actual}`);
|
|
75
98
|
});
|
|
76
99
|
this.violations
|
|
77
100
|
.filter((v) => !(v.type in violationCounts))
|
|
78
101
|
.map((v) => {
|
|
79
|
-
|
|
102
|
+
utils_2.utils.assert(false, `Unexpected violation: ${JSON.stringify(v)}`);
|
|
80
103
|
});
|
|
81
104
|
}
|
|
82
105
|
expectEmpty() {
|
|
83
106
|
const count = this.violations.length;
|
|
84
|
-
|
|
107
|
+
utils_2.utils.assert(count === 0, `Found ${count} violations`);
|
|
85
108
|
}
|
|
86
109
|
}
|
|
87
110
|
exports.HyperlaneAppChecker = HyperlaneAppChecker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneAppChecker.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneAppChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"HyperlaneAppChecker.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneAppChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,32 +15,32 @@ export interface DeployOptions {
|
|
|
15
15
|
initCalldata?: string;
|
|
16
16
|
}
|
|
17
17
|
export declare const CREATE2FACTORY_ADDRESS = "0xc97D8e6f57b0d64971453dDc6EB8483fec9d163a";
|
|
18
|
-
export declare abstract class HyperlaneDeployer<
|
|
19
|
-
protected readonly multiProvider: MultiProvider
|
|
20
|
-
protected readonly configMap: ChainMap<
|
|
18
|
+
export declare abstract class HyperlaneDeployer<Config, Contracts extends HyperlaneContracts, Factories extends HyperlaneFactories> {
|
|
19
|
+
protected readonly multiProvider: MultiProvider;
|
|
20
|
+
protected readonly configMap: ChainMap<Config>;
|
|
21
21
|
protected readonly factories: Factories;
|
|
22
22
|
protected readonly options?: DeployerOptions | undefined;
|
|
23
|
-
deployedContracts:
|
|
24
|
-
verificationInputs: ChainMap<
|
|
23
|
+
deployedContracts: ChainMap<Contracts>;
|
|
24
|
+
verificationInputs: ChainMap<ContractVerificationInput[]>;
|
|
25
25
|
protected logger: Debugger;
|
|
26
|
-
constructor(multiProvider: MultiProvider
|
|
27
|
-
abstract deployContracts(chain:
|
|
28
|
-
deploy(partialDeployment?:
|
|
29
|
-
protected runIfOwner<T>(chain:
|
|
30
|
-
protected deployContractFromFactory<F extends ethers.ContractFactory>(chain:
|
|
31
|
-
deployContract<K extends keyof Factories>(chain:
|
|
32
|
-
protected deployProxy<C extends ethers.Contract>(chain:
|
|
26
|
+
constructor(multiProvider: MultiProvider, configMap: ChainMap<Config>, factories: Factories, options?: DeployerOptions | undefined);
|
|
27
|
+
abstract deployContracts(chain: ChainName, config: Config): Promise<Contracts>;
|
|
28
|
+
deploy(partialDeployment?: ChainMap<Contracts>): Promise<ChainMap<Contracts>>;
|
|
29
|
+
protected runIfOwner<T>(chain: ChainName, ownable: Ownable, fn: () => Promise<T>): Promise<T | undefined>;
|
|
30
|
+
protected deployContractFromFactory<F extends ethers.ContractFactory>(chain: ChainName, factory: F, contractName: string, constructorArgs: Parameters<F['deploy']>, deployOpts?: DeployOptions): Promise<ReturnType<F['deploy']>>;
|
|
31
|
+
deployContract<K extends keyof Factories>(chain: ChainName, contractName: K, args: Parameters<Factories[K]['deploy']>, deployOpts?: DeployOptions): Promise<ReturnType<Factories[K]['deploy']>>;
|
|
32
|
+
protected deployProxy<C extends ethers.Contract>(chain: ChainName, implementation: C, proxyAdmin: ProxyAdmin, initArgs: Parameters<C['initialize']>, deployOpts?: DeployOptions): Promise<ProxiedContract<C, TransparentProxyAddresses>>;
|
|
33
33
|
private cacheContract;
|
|
34
34
|
/**
|
|
35
35
|
* Deploys the Implementation and Proxy for a given contract
|
|
36
36
|
*
|
|
37
37
|
*/
|
|
38
|
-
deployProxiedContract<K extends keyof Factories, C extends Awaited<ReturnType<Factories[K]['deploy']>>>(chain:
|
|
38
|
+
deployProxiedContract<K extends keyof Factories, C extends Awaited<ReturnType<Factories[K]['deploy']>>>(chain: ChainName, contractName: K, constructorArgs: Parameters<Factories[K]['deploy']>, proxyAdmin: ProxyAdmin, initArgs: Parameters<C['initialize']>, deployOpts?: DeployOptions): Promise<ProxiedContract<C, TransparentProxyAddresses>>;
|
|
39
39
|
/**
|
|
40
40
|
* Changes the proxyAdmin of `proxyAddress` from `currentProxyAdmin` to `desiredProxyAdmin`
|
|
41
41
|
* if the admin is not already the `desiredProxyAdmin`.
|
|
42
42
|
*/
|
|
43
|
-
changeProxyAdmin(chain:
|
|
44
|
-
mergeWithExistingVerificationInputs(existingInputsMap: ChainMap<
|
|
43
|
+
changeProxyAdmin(chain: ChainName, proxyAddress: types.Address, currentProxyAdmin: ProxyAdmin, desiredProxyAdmin: ProxyAdmin): Promise<void>;
|
|
44
|
+
mergeWithExistingVerificationInputs(existingInputsMap: ChainMap<ContractVerificationInput[]>): ChainMap<ContractVerificationInput[]>;
|
|
45
45
|
}
|
|
46
46
|
//# sourceMappingURL=HyperlaneDeployer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneDeployer.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAS,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAEL,OAAO,EACP,UAAU,EAIX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EAGnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,eAAe,EAEf,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,sBAAsB,+CACW,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperlaneDeployer.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,21 +28,19 @@ class HyperlaneDeployer {
|
|
|
28
28
|
this.verificationInputs = (0, objects_1.objMap)(configMap, () => []);
|
|
29
29
|
this.logger = (options === null || options === void 0 ? void 0 : options.logger) || (0, debug_1.debug)('hyperlane:AppDeployer');
|
|
30
30
|
}
|
|
31
|
-
deploy(partialDeployment = this
|
|
32
|
-
.deployedContracts) {
|
|
31
|
+
deploy(partialDeployment = this.deployedContracts) {
|
|
33
32
|
var _a;
|
|
34
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
34
|
(0, objects_1.objMap)(partialDeployment, (chain, contracts) => {
|
|
36
35
|
this.logger(`Recovering contracts for ${chain} from partial deployment`);
|
|
37
|
-
const
|
|
38
|
-
this.deployedContracts[chain] = (0, contracts_1.connectContracts)(contracts,
|
|
36
|
+
const signer = this.multiProvider.getSigner(chain);
|
|
37
|
+
this.deployedContracts[chain] = (0, contracts_1.connectContracts)(contracts, signer);
|
|
39
38
|
});
|
|
40
39
|
const configChains = Object.keys(this.configMap);
|
|
41
|
-
const targetChains = this.multiProvider.intersect(configChains,
|
|
40
|
+
const targetChains = this.multiProvider.intersect(configChains, true).intersection;
|
|
42
41
|
this.logger(`Start deploy to ${targetChains}`);
|
|
43
42
|
for (const chain of targetChains) {
|
|
44
|
-
const
|
|
45
|
-
const signerUrl = yield chainConnection.getAddressUrl();
|
|
43
|
+
const signerUrl = yield this.multiProvider.getExplorerAddressUrl(chain);
|
|
46
44
|
this.logger(`Deploying to ${chain} from ${signerUrl} ...`);
|
|
47
45
|
this.deployedContracts[chain] = yield this.deployContracts(chain, this.configMap[chain]);
|
|
48
46
|
// TODO: remove these logs once we have better timeouts
|
|
@@ -53,8 +51,7 @@ class HyperlaneDeployer {
|
|
|
53
51
|
}
|
|
54
52
|
runIfOwner(chain, ownable, fn) {
|
|
55
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
-
const
|
|
57
|
-
const address = yield dc.signer.getAddress();
|
|
54
|
+
const address = yield this.multiProvider.getSignerAddress(chain);
|
|
58
55
|
const owner = yield ownable.owner();
|
|
59
56
|
const logObj = { owner, signer: address };
|
|
60
57
|
if (address === owner) {
|
|
@@ -75,15 +72,12 @@ class HyperlaneDeployer {
|
|
|
75
72
|
this.logger(`Recovered contract ${contractName} on ${chain}`);
|
|
76
73
|
return cachedContract;
|
|
77
74
|
}
|
|
78
|
-
const
|
|
79
|
-
const signer =
|
|
80
|
-
|
|
81
|
-
throw new Error(`No signer for ${chain}`);
|
|
82
|
-
}
|
|
75
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
76
|
+
const signer = this.multiProvider.getSigner(chain);
|
|
77
|
+
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
83
78
|
this.logger(`Deploy ${contractName} on ${chain}`);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
(yield chainConnection.provider.getCode(exports.CREATE2FACTORY_ADDRESS)) != '0x') {
|
|
79
|
+
const factoryCode = yield provider.getCode(exports.CREATE2FACTORY_ADDRESS);
|
|
80
|
+
if (deployOpts && deployOpts.create2Salt && factoryCode != '0x') {
|
|
87
81
|
this.logger(`Deploying with CREATE2 factory`);
|
|
88
82
|
const create2Factory = core_1.Create2Factory__factory.connect(exports.CREATE2FACTORY_ADDRESS, signer);
|
|
89
83
|
const salt = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.hexlify(ethers_1.ethers.utils.toUtf8Bytes(deployOpts.create2Salt)));
|
|
@@ -91,11 +85,12 @@ class HyperlaneDeployer {
|
|
|
91
85
|
const bytecode = ethers_1.ethers.utils.hexlify(ethers_1.ethers.utils.concat([factory.bytecode, encodedConstructorArgs]));
|
|
92
86
|
// TODO: Maybe recover deployed contracts?
|
|
93
87
|
const contractAddr = yield create2Factory.deployedAddress(bytecode, yield signer.getAddress(), salt);
|
|
94
|
-
|
|
88
|
+
const contractCode = yield provider.getCode(contractAddr);
|
|
89
|
+
if (contractCode === '0x') {
|
|
95
90
|
const deployTx = deployOpts.initCalldata
|
|
96
|
-
? yield create2Factory.deployAndInit(bytecode, salt, deployOpts.initCalldata,
|
|
97
|
-
: yield create2Factory.deploy(bytecode, salt,
|
|
98
|
-
yield
|
|
91
|
+
? yield create2Factory.deployAndInit(bytecode, salt, deployOpts.initCalldata, overrides)
|
|
92
|
+
: yield create2Factory.deploy(bytecode, salt, overrides);
|
|
93
|
+
yield this.multiProvider.handleTx(chain, deployTx);
|
|
99
94
|
}
|
|
100
95
|
else {
|
|
101
96
|
this.logger(`Found contract deployed at CREATE2 address, skipping contract deploy`);
|
|
@@ -111,15 +106,15 @@ class HyperlaneDeployer {
|
|
|
111
106
|
else {
|
|
112
107
|
const contract = yield factory
|
|
113
108
|
.connect(signer)
|
|
114
|
-
.deploy(...constructorArgs,
|
|
115
|
-
yield
|
|
109
|
+
.deploy(...constructorArgs, overrides);
|
|
110
|
+
yield this.multiProvider.handleTx(chain, contract.deployTransaction);
|
|
116
111
|
if (deployOpts === null || deployOpts === void 0 ? void 0 : deployOpts.initCalldata) {
|
|
117
112
|
this.logger(`Initialize ${contractName} on ${chain}`);
|
|
118
113
|
const initTx = yield signer.sendTransaction({
|
|
119
114
|
to: contract.address,
|
|
120
115
|
data: deployOpts.initCalldata,
|
|
121
116
|
});
|
|
122
|
-
yield
|
|
117
|
+
yield this.multiProvider.handleTx(chain, initTx);
|
|
123
118
|
}
|
|
124
119
|
const verificationInput = (0, utils_1.getContractVerificationInput)(contractName, contract, factory.bytecode);
|
|
125
120
|
this.verificationInputs[chain].push(verificationInput);
|
|
@@ -138,11 +133,12 @@ class HyperlaneDeployer {
|
|
|
138
133
|
return __awaiter(this, void 0, void 0, function* () {
|
|
139
134
|
const initData = implementation.interface.encodeFunctionData('initialize', initArgs);
|
|
140
135
|
let proxy;
|
|
141
|
-
const
|
|
136
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
137
|
+
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
142
138
|
this.logger(`Deploying transparent upgradable proxy`);
|
|
143
139
|
if (deployOpts &&
|
|
144
140
|
deployOpts.create2Salt &&
|
|
145
|
-
(yield
|
|
141
|
+
(yield provider.getCode(exports.CREATE2FACTORY_ADDRESS)) != '0x') {
|
|
146
142
|
// To get consistent addresses with Create2, we need to use
|
|
147
143
|
// consistent constructor arguments.
|
|
148
144
|
// The three constructor arguments we need to configure are:
|
|
@@ -161,9 +157,7 @@ class HyperlaneDeployer {
|
|
|
161
157
|
// Note this requires the proxy contracts to ensure admin power has been
|
|
162
158
|
// transferred to the canonical proxy admin at some point in the future.
|
|
163
159
|
const proxyAdminOwner = yield proxyAdmin.owner();
|
|
164
|
-
const deployer = yield this.multiProvider
|
|
165
|
-
.getChainSigner(chain)
|
|
166
|
-
.getAddress();
|
|
160
|
+
const deployer = yield this.multiProvider.getSignerAddress(chain);
|
|
167
161
|
let deployerOwnedProxyAdmin = proxyAdmin;
|
|
168
162
|
if (proxyAdminOwner.toLowerCase() !== deployer.toLowerCase()) {
|
|
169
163
|
deployerOwnedProxyAdmin = yield this.deployContractFromFactory(chain, new core_1.ProxyAdmin__factory(), 'DeployerOwnedProxyAdmin', []);
|
|
@@ -175,8 +169,8 @@ class HyperlaneDeployer {
|
|
|
175
169
|
this.logger(`Upgrading and initializing transparent upgradable proxy`);
|
|
176
170
|
// We now have a deployed proxy admin'd by deployerOwnedProxyAdmin.
|
|
177
171
|
// Upgrade its implementation and initialize it
|
|
178
|
-
const upgradeAndCallTx = yield deployerOwnedProxyAdmin.upgradeAndCall(proxy.address, implementation.address, initData,
|
|
179
|
-
yield
|
|
172
|
+
const upgradeAndCallTx = yield deployerOwnedProxyAdmin.upgradeAndCall(proxy.address, implementation.address, initData, overrides);
|
|
173
|
+
yield this.multiProvider.handleTx(chain, upgradeAndCallTx);
|
|
180
174
|
// Change the proxy admin from deployerOwnedProxyAdmin to proxyAdmin if necessary.
|
|
181
175
|
yield this.changeProxyAdmin(chain, proxy.address, deployerOwnedProxyAdmin, proxyAdmin);
|
|
182
176
|
}
|
|
@@ -228,16 +222,15 @@ class HyperlaneDeployer {
|
|
|
228
222
|
return;
|
|
229
223
|
}
|
|
230
224
|
this.logger(`Transferring proxy admin from ${currentProxyAdmin} to ${desiredProxyAdmin}`);
|
|
231
|
-
const
|
|
232
|
-
const changeAdminTx = yield currentProxyAdmin.changeProxyAdmin(proxyAddress, desiredProxyAdmin.address,
|
|
233
|
-
yield
|
|
225
|
+
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
226
|
+
const changeAdminTx = yield currentProxyAdmin.changeProxyAdmin(proxyAddress, desiredProxyAdmin.address, overrides);
|
|
227
|
+
yield this.multiProvider.handleTx(chain, changeAdminTx);
|
|
234
228
|
});
|
|
235
229
|
}
|
|
236
230
|
mergeWithExistingVerificationInputs(existingInputsMap) {
|
|
237
231
|
const allChains = new Set();
|
|
238
232
|
Object.keys(existingInputsMap).forEach((_) => allChains.add(_));
|
|
239
233
|
Object.keys(this.verificationInputs).forEach((_) => allChains.add(_));
|
|
240
|
-
// @ts-ignore
|
|
241
234
|
const ret = {};
|
|
242
235
|
for (const chain of allChains) {
|
|
243
236
|
const existingInputs = existingInputsMap[chain] || [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneDeployer.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAwC;AACxC,mCAAgC;AAEhC,8CAO6B;AAG7B,4CAMsB;AAEtB,oCAIkB;AAElB,8CAA0C;AAG1C,0CAA8D;AAWjD,QAAA,sBAAsB,GACjC,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperlaneDeployer.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"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"}
|