@hyperlane-xyz/sdk 1.2.3 → 1.3.1
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/dist/HyperlaneApp.d.ts +11 -7
- package/dist/HyperlaneApp.d.ts.map +1 -1
- package/dist/HyperlaneApp.js +14 -0
- package/dist/HyperlaneApp.js.map +1 -1
- package/dist/agents/types.d.ts +56 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +43 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/consts/bytecode.d.ts +11 -0
- package/dist/consts/bytecode.d.ts.map +1 -0
- package/dist/consts/bytecode.js +15 -0
- package/dist/consts/bytecode.js.map +1 -0
- package/dist/consts/environments/index.d.ts +64 -249
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js +2 -12
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/consts/environments/mainnet.json +27 -107
- package/dist/consts/environments/test.json +20 -44
- package/dist/consts/environments/testnet.json +27 -99
- package/dist/consts/multisigIsm.d.ts +4 -0
- package/dist/consts/multisigIsm.d.ts.map +1 -0
- package/dist/consts/multisigIsm.js +174 -0
- package/dist/consts/multisigIsm.js.map +1 -0
- package/dist/contracts.d.ts +13 -10
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +21 -45
- package/dist/contracts.js.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.d.ts +2 -0
- package/dist/core/CoreDeployer.hardhat-test.d.ts.map +1 -0
- package/dist/core/CoreDeployer.hardhat-test.js +93 -0
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -0
- package/dist/core/HyperlaneCore.d.ts +7 -17
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +21 -45
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCoreChecker.d.ts +0 -6
- package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreChecker.js +20 -155
- package/dist/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts +11 -30
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +24 -152
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +8 -12
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +6 -3
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.d.ts +14 -6
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +14 -29
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/contracts.d.ts +3 -22
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/contracts.js +1 -7
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +2 -2
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/core/types.d.ts +4 -47
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -16
- package/dist/core/types.js.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts +5 -3
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +43 -20
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +25 -25
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +143 -160
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/proxy.d.ts +1 -13
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +8 -13
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/types.d.ts +1 -0
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/verify/utils.d.ts +1 -0
- package/dist/deploy/verify/utils.d.ts.map +1 -1
- package/dist/deploy/verify/utils.js +9 -4
- package/dist/deploy/verify/utils.js.map +1 -1
- package/dist/gas/HyperlaneIgp.d.ts +53 -0
- package/dist/gas/HyperlaneIgp.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgp.js +72 -0
- package/dist/gas/HyperlaneIgp.js.map +1 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts +18 -0
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpChecker.js +158 -0
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts +16 -0
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -0
- package/dist/gas/HyperlaneIgpDeployer.js +97 -0
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -0
- package/dist/gas/contracts.d.ts +9 -0
- package/dist/gas/contracts.d.ts.map +1 -0
- package/dist/gas/contracts.js +11 -0
- package/dist/gas/contracts.js.map +1 -0
- package/dist/gas/types.d.ts +35 -50
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gas/types.js +11 -17
- package/dist/gas/types.js.map +1 -1
- package/dist/index.d.ts +33 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +65 -43
- package/dist/index.js.map +1 -1
- package/dist/middleware/MiddlewareRouterChecker.d.ts +8 -0
- package/dist/middleware/MiddlewareRouterChecker.d.ts.map +1 -0
- package/dist/middleware/MiddlewareRouterChecker.js +26 -0
- package/dist/middleware/MiddlewareRouterChecker.js.map +1 -0
- package/dist/middleware/MiddlewareRouterDeployer.d.ts +17 -0
- package/dist/middleware/MiddlewareRouterDeployer.d.ts.map +1 -0
- package/dist/middleware/MiddlewareRouterDeployer.js +62 -0
- package/dist/middleware/MiddlewareRouterDeployer.js.map +1 -0
- package/dist/middleware/account/InterchainAccount.d.ts +11 -0
- package/dist/middleware/account/InterchainAccount.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccount.js +21 -0
- package/dist/middleware/account/InterchainAccount.js.map +1 -0
- package/dist/middleware/account/InterchainAccountChecker.d.ts +7 -0
- package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccountChecker.js +8 -0
- package/dist/middleware/account/InterchainAccountChecker.js.map +1 -0
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +14 -0
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -0
- package/dist/middleware/account/InterchainAccountDeployer.js +70 -0
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -0
- package/dist/middleware/account/accounts.hardhat-test.d.ts +2 -0
- package/dist/middleware/account/accounts.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/account/accounts.hardhat-test.js +65 -0
- package/dist/middleware/account/accounts.hardhat-test.js.map +1 -0
- package/dist/middleware/account/contracts.d.ts +7 -0
- package/dist/middleware/account/contracts.d.ts.map +1 -0
- package/dist/middleware/account/contracts.js +9 -0
- package/dist/middleware/account/contracts.js.map +1 -0
- package/dist/middleware/accounts.hardhat-test.js +6 -12
- package/dist/middleware/accounts.hardhat-test.js.map +1 -1
- package/dist/middleware/deploy.d.ts +7 -7
- package/dist/middleware/deploy.d.ts.map +1 -1
- package/dist/middleware/deploy.js +76 -20
- package/dist/middleware/deploy.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts +5 -4
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +15 -2
- package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +15 -6
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +37 -25
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/middleware/liquidity-layer/contracts.d.ts +5 -8
- package/dist/middleware/liquidity-layer/contracts.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/contracts.js +2 -1
- package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +35 -32
- package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware/queries.hardhat-test.js +1 -1
- package/dist/middleware/queries.hardhat-test.js.map +1 -1
- package/dist/middleware/query/InterchainQuery.d.ts +11 -0
- package/dist/middleware/query/InterchainQuery.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQuery.js +21 -0
- package/dist/middleware/query/InterchainQuery.js.map +1 -0
- package/dist/middleware/query/InterchainQueryChecker.d.ts +7 -0
- package/dist/middleware/query/InterchainQueryChecker.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQueryChecker.js +8 -0
- package/dist/middleware/query/InterchainQueryChecker.js.map +1 -0
- package/dist/middleware/query/InterchainQueryDeployer.d.ts +17 -0
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -0
- package/dist/middleware/query/InterchainQueryDeployer.js +40 -0
- package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -0
- package/dist/middleware/query/contracts.d.ts +7 -0
- package/dist/middleware/query/contracts.d.ts.map +1 -0
- package/dist/middleware/query/contracts.js +9 -0
- package/dist/middleware/query/contracts.js.map +1 -0
- package/dist/middleware/query/queries.hardhat-test.d.ts +2 -0
- package/dist/middleware/query/queries.hardhat-test.d.ts.map +1 -0
- package/dist/middleware/query/queries.hardhat-test.js +82 -0
- package/dist/middleware/query/queries.hardhat-test.js.map +1 -0
- package/dist/providers/MultiProvider.d.ts +6 -1
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +32 -26
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/proxy.d.ts +4 -1
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +8 -1
- package/dist/proxy.js.map +1 -1
- package/dist/router/GasRouterDeployer.d.ts +5 -6
- package/dist/router/GasRouterDeployer.d.ts.map +1 -1
- package/dist/router/GasRouterDeployer.js +6 -10
- package/dist/router/GasRouterDeployer.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts +3 -5
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +6 -11
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts +10 -9
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +20 -39
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/router/ProxiedRouterChecker.d.ts +8 -0
- package/dist/router/ProxiedRouterChecker.d.ts.map +1 -0
- package/dist/router/ProxiedRouterChecker.js +26 -0
- package/dist/router/ProxiedRouterChecker.js.map +1 -0
- package/dist/router/ProxiedRouterDeployer.d.ts +13 -0
- package/dist/router/ProxiedRouterDeployer.d.ts.map +1 -0
- package/dist/router/ProxiedRouterDeployer.js +35 -0
- package/dist/router/ProxiedRouterDeployer.js.map +1 -0
- package/dist/router/RouterApps.d.ts +6 -4
- package/dist/router/RouterApps.d.ts.map +1 -1
- package/dist/router/RouterApps.js +2 -2
- package/dist/router/RouterApps.js.map +1 -1
- package/dist/router/app.d.ts +14 -0
- package/dist/router/app.d.ts.map +1 -0
- package/dist/router/app.js +31 -0
- package/dist/router/app.js.map +1 -0
- package/dist/router/types.d.ts +5 -18
- package/dist/router/types.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.d.ts +18 -11
- package/dist/test/envSubsetDeployer/app.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.js +14 -15
- package/dist/test/envSubsetDeployer/app.js.map +1 -1
- package/dist/test/envSubsetDeployer/check-single-chain.js +6 -4
- package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy-single-chain.js +7 -5
- package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js +12 -13
- package/dist/test/envSubsetDeployer/deploy.hardhat-test.js.map +1 -1
- package/dist/test/testUtils.d.ts +10 -23
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +45 -60
- package/dist/test/testUtils.js.map +1 -1
- package/dist/utils/ism.d.ts +2 -0
- package/dist/utils/ism.d.ts.map +1 -0
- package/dist/utils/ism.js +18 -0
- package/dist/utils/ism.js.map +1 -0
- package/dist/utils/objects.d.ts +3 -1
- package/dist/utils/objects.d.ts.map +1 -1
- package/dist/utils/objects.js +39 -3
- package/dist/utils/objects.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { TestMailbox__factory } from '@hyperlane-xyz/core';
|
|
3
|
+
import { HyperlaneContracts } from '../contracts';
|
|
4
4
|
import { ChainName } from '../types';
|
|
5
5
|
import { HyperlaneCore } from './HyperlaneCore';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
12
|
-
export declare type TestCoreContracts = CoreContracts & {
|
|
13
|
-
mailbox: ProxiedContract<TestMailbox, MockProxyAddresses>;
|
|
6
|
+
export declare const testCoreFactories: {
|
|
7
|
+
mailbox: TestMailbox__factory;
|
|
8
|
+
validatorAnnounce: import("@hyperlane-xyz/core").ValidatorAnnounce__factory;
|
|
9
|
+
proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
|
|
10
|
+
multisigIsm: import("@hyperlane-xyz/core").LegacyMultisigIsm__factory;
|
|
14
11
|
};
|
|
15
12
|
export declare class TestCoreApp extends HyperlaneCore {
|
|
16
|
-
getContracts(chain: ChainName):
|
|
13
|
+
getContracts(chain: ChainName): HyperlaneContracts<typeof testCoreFactories>;
|
|
17
14
|
processMessages(): Promise<Map<ChainName, Map<ChainName, ethers.providers.TransactionResponse[]>>>;
|
|
18
15
|
processOutboundMessages(origin: ChainName): Promise<Map<ChainName, ethers.providers.TransactionResponse[]>>;
|
|
19
16
|
}
|
|
20
|
-
export {};
|
|
21
17
|
//# 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,
|
|
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,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,eAAO,MAAM,iBAAiB;;;;;CAG7B,CAAC;AAEF,qBAAa,WAAY,SAAQ,aAAa;IAC5C,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB,CAAC,OAAO,iBAAiB,CAAC;IAMtE,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
|
@@ -9,9 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.TestCoreApp = void 0;
|
|
12
|
+
exports.TestCoreApp = exports.testCoreFactories = void 0;
|
|
13
|
+
const core_1 = require("@hyperlane-xyz/core");
|
|
13
14
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
14
15
|
const HyperlaneCore_1 = require("./HyperlaneCore");
|
|
16
|
+
const contracts_1 = require("./contracts");
|
|
17
|
+
exports.testCoreFactories = Object.assign(Object.assign({}, contracts_1.coreFactories), { mailbox: new core_1.TestMailbox__factory() });
|
|
15
18
|
class TestCoreApp extends HyperlaneCore_1.HyperlaneCore {
|
|
16
19
|
getContracts(chain) {
|
|
17
20
|
return super.getContracts(chain);
|
|
@@ -32,7 +35,7 @@ class TestCoreApp extends HyperlaneCore_1.HyperlaneCore {
|
|
|
32
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
33
36
|
const responses = new Map();
|
|
34
37
|
const contracts = this.getContracts(origin);
|
|
35
|
-
const outbox = contracts.mailbox
|
|
38
|
+
const outbox = contracts.mailbox;
|
|
36
39
|
const dispatchFilter = outbox.filters.Dispatch();
|
|
37
40
|
const dispatches = yield outbox.queryFilter(dispatchFilter);
|
|
38
41
|
for (const dispatch of dispatches) {
|
|
@@ -41,7 +44,7 @@ class TestCoreApp extends HyperlaneCore_1.HyperlaneCore {
|
|
|
41
44
|
throw new Error('Dispatched message to local domain');
|
|
42
45
|
}
|
|
43
46
|
const destinationChain = this.multiProvider.getChainName(destination);
|
|
44
|
-
const inbox = this.getContracts(destinationChain).mailbox
|
|
47
|
+
const inbox = this.getContracts(destinationChain).mailbox;
|
|
45
48
|
const id = utils_1.utils.messageId(dispatch.args.message);
|
|
46
49
|
const delivered = yield inbox.delivered(id);
|
|
47
50
|
if (!delivered) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestCoreApp.js","sourceRoot":"","sources":["../../src/core/TestCoreApp.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"TestCoreApp.js","sourceRoot":"","sources":["../../src/core/TestCoreApp.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,8CAAwE;AACxE,gDAA6C;AAK7C,mDAAgD;AAChD,2CAA4C;AAE/B,QAAA,iBAAiB,mCACzB,yBAAa,KAChB,OAAO,EAAE,IAAI,2BAAoB,EAAE,IACnC;AAEF,MAAa,WAAY,SAAQ,6BAAa;IAC5C,YAAY,CAAC,KAAgB;QAC3B,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAE9B,CAAC;IACJ,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,GAAG,SAAS,CAAC,OAAsB,CAAC;YAEhD,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;gBAC1D,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;AAjDD,kCAiDC"}
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { LegacyMultisigIsm, TestInterchainGasPaymaster__factory, TestIsm__factory, TestMailbox__factory } from '@hyperlane-xyz/core';
|
|
3
|
+
import { HyperlaneContracts } from '../contracts';
|
|
4
4
|
import { ChainMap, ChainName } from '../types';
|
|
5
5
|
import { HyperlaneCoreDeployer } from './HyperlaneCoreDeployer';
|
|
6
6
|
import { TestCoreApp } from './TestCoreApp';
|
|
7
|
-
import {
|
|
7
|
+
import { CoreFactories } from './contracts';
|
|
8
|
+
import { MultisigIsmConfig } from './types';
|
|
8
9
|
export declare class TestCoreDeployer extends HyperlaneCoreDeployer {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
factories: {
|
|
11
|
+
mailbox: TestMailbox__factory;
|
|
12
|
+
testIsm: TestIsm__factory;
|
|
13
|
+
interchainGasPaymaster: TestInterchainGasPaymaster__factory;
|
|
14
|
+
validatorAnnounce: import("@hyperlane-xyz/core").ValidatorAnnounce__factory;
|
|
15
|
+
proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
|
|
16
|
+
multisigIsm: import("@hyperlane-xyz/core").LegacyMultisigIsm__factory;
|
|
17
|
+
};
|
|
18
|
+
deployLegacyMultisigIsm(chain: ChainName, _: ChainMap<MultisigIsmConfig>): Promise<LegacyMultisigIsm>;
|
|
12
19
|
transferOwnershipOfContracts(): Promise<ethers.ContractReceipt[]>;
|
|
20
|
+
deploy(): Promise<ChainMap<HyperlaneContracts<CoreFactories>>>;
|
|
13
21
|
deployApp(): Promise<TestCoreApp>;
|
|
14
22
|
}
|
|
15
23
|
//# 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,
|
|
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,iBAAiB,EACjB,mCAAmC,EACnC,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAS5C,qBAAa,gBAAiB,SAAQ,qBAAqB;IACzD,SAAS;;;;;;;MAAqB;IAGxB,uBAAuB,CAC3B,KAAK,EAAE,SAAS,EAChB,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAYvB,4BAA4B,IAAI,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;IAIjE,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;IAI9D,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;CAGxC"}
|
|
@@ -10,43 +10,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TestCoreDeployer = void 0;
|
|
13
|
-
const ethers_1 = require("ethers");
|
|
14
13
|
const core_1 = require("@hyperlane-xyz/core");
|
|
14
|
+
const chains_1 = require("../consts/chains");
|
|
15
|
+
const testUtils_1 = require("../test/testUtils");
|
|
15
16
|
const HyperlaneCoreDeployer_1 = require("./HyperlaneCoreDeployer");
|
|
16
17
|
const TestCoreApp_1 = require("./TestCoreApp");
|
|
17
18
|
const contracts_1 = require("./contracts");
|
|
18
|
-
const types_1 = require("./types");
|
|
19
|
-
const nonZeroAddress = ethers_1.ethers.constants.AddressZero.replace('00', '01');
|
|
20
|
-
// dummy config as TestInbox and TestOutbox do not use deployed ISM
|
|
21
|
-
const testConfig = {
|
|
22
|
-
owner: nonZeroAddress,
|
|
23
|
-
multisigIsm: {
|
|
24
|
-
validators: [nonZeroAddress],
|
|
25
|
-
threshold: 1,
|
|
26
|
-
},
|
|
27
|
-
igp: {
|
|
28
|
-
beneficiary: nonZeroAddress,
|
|
29
|
-
gasOracles: {
|
|
30
|
-
test1: types_1.GasOracleContractType.StorageGasOracle,
|
|
31
|
-
test2: types_1.GasOracleContractType.StorageGasOracle,
|
|
32
|
-
test3: types_1.GasOracleContractType.StorageGasOracle,
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
19
|
const testCoreFactories = Object.assign(Object.assign({}, contracts_1.coreFactories), { mailbox: new core_1.TestMailbox__factory(), testIsm: new core_1.TestIsm__factory(), interchainGasPaymaster: new core_1.TestInterchainGasPaymaster__factory() });
|
|
37
20
|
class TestCoreDeployer extends HyperlaneCoreDeployer_1.HyperlaneCoreDeployer {
|
|
38
|
-
constructor(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
test1: testConfig,
|
|
42
|
-
test2: testConfig,
|
|
43
|
-
test3: testConfig,
|
|
44
|
-
};
|
|
45
|
-
super(multiProvider, configs, testCoreFactories);
|
|
46
|
-
this.multiProvider = multiProvider;
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.factories = testCoreFactories;
|
|
47
24
|
}
|
|
48
25
|
// deploy a test ISM in place of a multisig ISM
|
|
49
|
-
|
|
26
|
+
deployLegacyMultisigIsm(chain, _) {
|
|
50
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
28
|
const testIsm = yield this.deployContractFromFactory(chain, testCoreFactories.testIsm, 'testIsm', []);
|
|
52
29
|
yield testIsm.setAccept(true);
|
|
@@ -59,6 +36,14 @@ class TestCoreDeployer extends HyperlaneCoreDeployer_1.HyperlaneCoreDeployer {
|
|
|
59
36
|
return [];
|
|
60
37
|
});
|
|
61
38
|
}
|
|
39
|
+
deploy() {
|
|
40
|
+
const _super = Object.create(null, {
|
|
41
|
+
deploy: { get: () => super.deploy }
|
|
42
|
+
});
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
return _super.deploy.call(this, (0, testUtils_1.testCoreConfig)(chains_1.TestChains));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
62
47
|
deployApp() {
|
|
63
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
64
49
|
return new TestCoreApp_1.TestCoreApp(yield this.deploy(), this.multiProvider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestCoreDeployer.js","sourceRoot":"","sources":["../../src/core/TestCoreDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"TestCoreDeployer.js","sourceRoot":"","sources":["../../src/core/TestCoreDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,8CAK6B;AAE7B,6CAA8C;AAE9C,iDAAmD;AAGnD,mEAAgE;AAChE,+CAA4C;AAC5C,2CAA2D;AAG3D,MAAM,iBAAiB,mCAClB,yBAAa,KAChB,OAAO,EAAE,IAAI,2BAAoB,EAAE,EACnC,OAAO,EAAE,IAAI,uBAAgB,EAAE,EAC/B,sBAAsB,EAAE,IAAI,0CAAmC,EAAE,GAClE,CAAC;AAEF,MAAa,gBAAiB,SAAQ,6CAAqB;IAA3D;;QACE,cAAS,GAAG,iBAAiB,CAAC;IA6BhC,CAAC;IA3BC,+CAA+C;IACzC,uBAAuB,CAC3B,KAAgB,EAChB,CAA8B;;YAE9B,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,OAAuC,CAAC;QACjD,CAAC;KAAA;IAED,wDAAwD;IAClD,4BAA4B;;YAChC,OAAO,EAAE,CAAC;QACZ,CAAC;KAAA;IAEK,MAAM;;;;;YACV,OAAO,OAAM,MAAM,YAAC,IAAA,0BAAc,EAAC,mBAAU,CAAC,EAAE;QAClD,CAAC;KAAA;IAEK,SAAS;;YACb,OAAO,IAAI,yBAAW,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAClE,CAAC;KAAA;CACF;AA9BD,4CA8BC"}
|
package/dist/core/contracts.d.ts
CHANGED
|
@@ -1,28 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ProxiedContract, TransparentProxyAddresses } from '../proxy';
|
|
3
|
-
export declare type GasOracleContracts = {
|
|
4
|
-
storageGasOracle: StorageGasOracle;
|
|
5
|
-
};
|
|
6
|
-
export declare type ConnectionClientContracts = {
|
|
7
|
-
interchainGasPaymaster: ProxiedContract<InterchainGasPaymaster, TransparentProxyAddresses>;
|
|
8
|
-
defaultIsmInterchainGasPaymaster: OverheadIgp;
|
|
9
|
-
};
|
|
10
|
-
export declare type CoreContracts = GasOracleContracts & ConnectionClientContracts & {
|
|
11
|
-
mailbox: ProxiedContract<Mailbox, TransparentProxyAddresses>;
|
|
12
|
-
multisigIsm: MultisigIsm;
|
|
13
|
-
proxyAdmin: ProxyAdmin;
|
|
14
|
-
validatorAnnounce: ValidatorAnnounce;
|
|
15
|
-
};
|
|
1
|
+
import { LegacyMultisigIsm__factory, Mailbox__factory, ProxyAdmin__factory, ValidatorAnnounce__factory } from '@hyperlane-xyz/core';
|
|
16
2
|
export declare const coreFactories: {
|
|
17
|
-
interchainAccountRouter: InterchainAccountRouter__factory;
|
|
18
|
-
interchainQueryRouter: InterchainQueryRouter__factory;
|
|
19
3
|
validatorAnnounce: ValidatorAnnounce__factory;
|
|
20
|
-
create2Factory: Create2Factory__factory;
|
|
21
4
|
proxyAdmin: ProxyAdmin__factory;
|
|
22
|
-
|
|
23
|
-
defaultIsmInterchainGasPaymaster: OverheadIgp__factory;
|
|
24
|
-
storageGasOracle: StorageGasOracle__factory;
|
|
25
|
-
multisigIsm: MultisigIsm__factory;
|
|
5
|
+
multisigIsm: LegacyMultisigIsm__factory;
|
|
26
6
|
mailbox: Mailbox__factory;
|
|
27
7
|
};
|
|
8
|
+
export declare type CoreFactories = typeof coreFactories;
|
|
28
9
|
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC;AAEF,oBAAY,aAAa,GAAG,OAAO,aAAa,CAAC"}
|
package/dist/core/contracts.js
CHANGED
|
@@ -3,15 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.coreFactories = void 0;
|
|
4
4
|
const core_1 = require("@hyperlane-xyz/core");
|
|
5
5
|
exports.coreFactories = {
|
|
6
|
-
interchainAccountRouter: new core_1.InterchainAccountRouter__factory(),
|
|
7
|
-
interchainQueryRouter: new core_1.InterchainQueryRouter__factory(),
|
|
8
6
|
validatorAnnounce: new core_1.ValidatorAnnounce__factory(),
|
|
9
|
-
create2Factory: new core_1.Create2Factory__factory(),
|
|
10
7
|
proxyAdmin: new core_1.ProxyAdmin__factory(),
|
|
11
|
-
|
|
12
|
-
defaultIsmInterchainGasPaymaster: new core_1.OverheadIgp__factory(),
|
|
13
|
-
storageGasOracle: new core_1.StorageGasOracle__factory(),
|
|
14
|
-
multisigIsm: new core_1.MultisigIsm__factory(),
|
|
8
|
+
multisigIsm: new core_1.LegacyMultisigIsm__factory(),
|
|
15
9
|
mailbox: new core_1.Mailbox__factory(),
|
|
16
10
|
};
|
|
17
11
|
//# sourceMappingURL=contracts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":";;;AAAA,8CAK6B;AAEhB,QAAA,aAAa,GAAG;IAC3B,iBAAiB,EAAE,IAAI,iCAA0B,EAAE;IACnD,UAAU,EAAE,IAAI,0BAAmB,EAAE;IACrC,WAAW,EAAE,IAAI,iCAA0B,EAAE;IAC7C,OAAO,EAAE,IAAI,uBAAgB,EAAE;CAChC,CAAC"}
|
|
@@ -29,11 +29,11 @@ describe('TestCoreDeployer', () => __awaiter(void 0, void 0, void 0, function* (
|
|
|
29
29
|
const deployer = new TestCoreDeployer_1.TestCoreDeployer(multiProvider);
|
|
30
30
|
testCoreApp = yield deployer.deployApp();
|
|
31
31
|
const recipient = yield new core_1.TestRecipient__factory(signer).deploy();
|
|
32
|
-
localMailbox = testCoreApp.getContracts(localChain).mailbox
|
|
32
|
+
localMailbox = testCoreApp.getContracts(localChain).mailbox;
|
|
33
33
|
const dispatchResponse = localMailbox.dispatch(multiProvider.getDomainId(remoteChain), utils_1.utils.addressToBytes32(recipient.address), message);
|
|
34
34
|
yield (0, chai_1.expect)(dispatchResponse).to.emit(localMailbox, 'Dispatch');
|
|
35
35
|
dispatchReceipt = yield testCoreApp.multiProvider.handleTx(localChain, dispatchResponse);
|
|
36
|
-
remoteMailbox = testCoreApp.getContracts(remoteChain).mailbox
|
|
36
|
+
remoteMailbox = testCoreApp.getContracts(remoteChain).mailbox;
|
|
37
37
|
yield (0, chai_1.expect)(remoteMailbox.dispatch(multiProvider.getDomainId(localChain), utils_1.utils.addressToBytes32(recipient.address), message)).to.emit(remoteMailbox, 'Dispatch');
|
|
38
38
|
}));
|
|
39
39
|
it('processes outbound messages for a single domain', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -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,6CAA0C;AAC1C,8DAA2D;AAG3D,yDAAsD;AAEtD,MAAM,UAAU,GAAG,eAAM,CAAC,KAAK,CAAC;AAChC,MAAM,WAAW,GAAG,eAAM,CAAC,KAAK,CAAC;AACjC,MAAM,OAAO,GAAG,YAAY,CAAC;AAE7B,QAAQ,CAAC,kBAAkB,EAAE,GAAS,EAAE;IACtC,IAAI,WAAwB,EAC1B,YAAyB,EACzB,aAA0B,EAC1B,eAAgC,CAAC;IAEnC,UAAU,CAAC,GAAS,EAAE;QACpB,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,gBAAM,CAAC,UAAU,EAAE,CAAC;QAE3C,MAAM,aAAa,GAAG,6BAAa,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,mCAAgB,CAAC,aAAa,CAAC,CAAC;QACrD,WAAW,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEzC,MAAM,SAAS,GAAG,MAAM,IAAI,6BAAsB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QACpE,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"testHyperlaneDeploy.hardhat-test.js","sourceRoot":"","sources":["../../src/core/testHyperlaneDeploy.hardhat-test.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -1,32 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { InterchainGasPaymaster, Mailbox, MultisigIsm, OverheadIgp } from '@hyperlane-xyz/core';
|
|
1
|
+
import { LegacyMultisigIsm, Mailbox } from '@hyperlane-xyz/core';
|
|
3
2
|
import type { types } from '@hyperlane-xyz/utils';
|
|
4
3
|
import type { CheckerViolation } from '../deploy/types';
|
|
5
4
|
import { ChainMap, ChainName } from '../types';
|
|
6
|
-
export declare enum GasOracleContractType {
|
|
7
|
-
StorageGasOracle = "StorageGasOracle"
|
|
8
|
-
}
|
|
9
|
-
export declare type InterchainGasPaymasterConfig = {
|
|
10
|
-
beneficiary: types.Address;
|
|
11
|
-
gasOracles: ChainMap<GasOracleContractType>;
|
|
12
|
-
};
|
|
13
5
|
export declare type MultisigIsmConfig = {
|
|
14
6
|
validators: Array<types.Address>;
|
|
15
7
|
threshold: number;
|
|
16
8
|
};
|
|
17
9
|
export declare type CoreConfig = {
|
|
18
|
-
multisigIsm: MultisigIsmConfig
|
|
10
|
+
multisigIsm: ChainMap<MultisigIsmConfig>;
|
|
19
11
|
owner: types.Address;
|
|
20
|
-
igp: InterchainGasPaymasterConfig;
|
|
21
12
|
remove?: boolean;
|
|
22
13
|
};
|
|
23
14
|
export declare enum CoreViolationType {
|
|
24
15
|
MultisigIsm = "MultisigIsm",
|
|
25
16
|
Mailbox = "Mailbox",
|
|
26
17
|
ConnectionManager = "ConnectionManager",
|
|
27
|
-
ValidatorAnnounce = "ValidatorAnnounce"
|
|
28
|
-
InterchainGasPaymaster = "InterchainGasPaymaster",
|
|
29
|
-
DefaultIsmInterchainGasPaymaster = "DefaultIsmInterchainGasPaymaster"
|
|
18
|
+
ValidatorAnnounce = "ValidatorAnnounce"
|
|
30
19
|
}
|
|
31
20
|
export declare enum MultisigIsmViolationType {
|
|
32
21
|
EnrolledValidators = "EnrolledValidators",
|
|
@@ -35,13 +24,6 @@ export declare enum MultisigIsmViolationType {
|
|
|
35
24
|
export declare enum MailboxViolationType {
|
|
36
25
|
DefaultIsm = "DefaultIsm"
|
|
37
26
|
}
|
|
38
|
-
export declare enum DefaultIsmIgpViolationType {
|
|
39
|
-
DestinationGasOverheads = "DestinationGasOverheads"
|
|
40
|
-
}
|
|
41
|
-
export declare enum IgpViolationType {
|
|
42
|
-
Beneficiary = "Beneficiary",
|
|
43
|
-
GasOracles = "GasOracles"
|
|
44
|
-
}
|
|
45
27
|
export interface MailboxViolation extends CheckerViolation {
|
|
46
28
|
type: CoreViolationType.Mailbox;
|
|
47
29
|
contract: Mailbox;
|
|
@@ -53,7 +35,7 @@ export interface MailboxMultisigIsmViolation extends MailboxViolation {
|
|
|
53
35
|
}
|
|
54
36
|
export interface MultisigIsmViolation extends CheckerViolation {
|
|
55
37
|
type: CoreViolationType.MultisigIsm;
|
|
56
|
-
contract:
|
|
38
|
+
contract: LegacyMultisigIsm;
|
|
57
39
|
subType: MultisigIsmViolationType;
|
|
58
40
|
remote: ChainName;
|
|
59
41
|
}
|
|
@@ -74,29 +56,4 @@ export interface ValidatorAnnounceViolation extends CheckerViolation {
|
|
|
74
56
|
actual: boolean;
|
|
75
57
|
expected: boolean;
|
|
76
58
|
}
|
|
77
|
-
export interface IgpViolation extends CheckerViolation {
|
|
78
|
-
type: CoreViolationType.InterchainGasPaymaster;
|
|
79
|
-
contract: InterchainGasPaymaster;
|
|
80
|
-
subType: IgpViolationType;
|
|
81
|
-
}
|
|
82
|
-
export interface IgpBeneficiaryViolation extends IgpViolation {
|
|
83
|
-
subType: IgpViolationType.Beneficiary;
|
|
84
|
-
actual: types.Address;
|
|
85
|
-
expected: types.Address;
|
|
86
|
-
}
|
|
87
|
-
export interface IgpGasOraclesViolation extends IgpViolation {
|
|
88
|
-
subType: IgpViolationType.GasOracles;
|
|
89
|
-
actual: ChainMap<types.Address>;
|
|
90
|
-
expected: ChainMap<types.Address>;
|
|
91
|
-
}
|
|
92
|
-
export interface DefaultIsmIgpViolation extends CheckerViolation {
|
|
93
|
-
type: CoreViolationType.DefaultIsmInterchainGasPaymaster;
|
|
94
|
-
contract: OverheadIgp;
|
|
95
|
-
subType: DefaultIsmIgpViolationType;
|
|
96
|
-
}
|
|
97
|
-
export interface DefaultIsmIgpDestinationGasOverheadsViolation extends DefaultIsmIgpViolation {
|
|
98
|
-
subType: DefaultIsmIgpViolationType.DestinationGasOverheads;
|
|
99
|
-
actual: ChainMap<BigNumber>;
|
|
100
|
-
expected: ChainMap<BigNumber>;
|
|
101
|
-
}
|
|
102
59
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,oBAAY,iBAAiB,GAAG;IAC9B,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,WAAW,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACzC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,iBAAiB,sBAAsB;IACvC,iBAAiB,sBAAsB;CACxC;AAED,oBAAY,wBAAwB;IAClC,kBAAkB,uBAAuB;IACzC,SAAS,cAAc;CACxB;AAED,oBAAY,oBAAoB;IAC9B,UAAU,eAAe;CAC1B;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,oBAAoB,CAAC;CACnC;AAED,MAAM,WAAW,2BAA4B,SAAQ,gBAAgB;IACnE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,IAAI,EAAE,iBAAiB,CAAC,WAAW,CAAC;IACpC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,wBAAwB,CAAC;IAClC,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,OAAO,EAAE,wBAAwB,CAAC,kBAAkB,CAAC;IACrD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IAC1C,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
|
package/dist/core/types.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var GasOracleContractType;
|
|
5
|
-
(function (GasOracleContractType) {
|
|
6
|
-
GasOracleContractType["StorageGasOracle"] = "StorageGasOracle";
|
|
7
|
-
})(GasOracleContractType = exports.GasOracleContractType || (exports.GasOracleContractType = {}));
|
|
3
|
+
exports.MailboxViolationType = exports.MultisigIsmViolationType = exports.CoreViolationType = void 0;
|
|
8
4
|
var CoreViolationType;
|
|
9
5
|
(function (CoreViolationType) {
|
|
10
6
|
CoreViolationType["MultisigIsm"] = "MultisigIsm";
|
|
11
7
|
CoreViolationType["Mailbox"] = "Mailbox";
|
|
12
8
|
CoreViolationType["ConnectionManager"] = "ConnectionManager";
|
|
13
9
|
CoreViolationType["ValidatorAnnounce"] = "ValidatorAnnounce";
|
|
14
|
-
CoreViolationType["InterchainGasPaymaster"] = "InterchainGasPaymaster";
|
|
15
|
-
CoreViolationType["DefaultIsmInterchainGasPaymaster"] = "DefaultIsmInterchainGasPaymaster";
|
|
16
10
|
})(CoreViolationType = exports.CoreViolationType || (exports.CoreViolationType = {}));
|
|
17
11
|
var MultisigIsmViolationType;
|
|
18
12
|
(function (MultisigIsmViolationType) {
|
|
@@ -23,13 +17,4 @@ var MailboxViolationType;
|
|
|
23
17
|
(function (MailboxViolationType) {
|
|
24
18
|
MailboxViolationType["DefaultIsm"] = "DefaultIsm";
|
|
25
19
|
})(MailboxViolationType = exports.MailboxViolationType || (exports.MailboxViolationType = {}));
|
|
26
|
-
var DefaultIsmIgpViolationType;
|
|
27
|
-
(function (DefaultIsmIgpViolationType) {
|
|
28
|
-
DefaultIsmIgpViolationType["DestinationGasOverheads"] = "DestinationGasOverheads";
|
|
29
|
-
})(DefaultIsmIgpViolationType = exports.DefaultIsmIgpViolationType || (exports.DefaultIsmIgpViolationType = {}));
|
|
30
|
-
var IgpViolationType;
|
|
31
|
-
(function (IgpViolationType) {
|
|
32
|
-
IgpViolationType["Beneficiary"] = "Beneficiary";
|
|
33
|
-
IgpViolationType["GasOracles"] = "GasOracles";
|
|
34
|
-
})(IgpViolationType = exports.IgpViolationType || (exports.IgpViolationType = {}));
|
|
35
20
|
//# sourceMappingURL=types.js.map
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";;;AAiBA,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,gDAA2B,CAAA;IAC3B,wCAAmB,CAAA;IACnB,4DAAuC,CAAA;IACvC,4DAAuC,CAAA;AACzC,CAAC,EALW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAK5B;AAED,IAAY,wBAGX;AAHD,WAAY,wBAAwB;IAClC,qEAAyC,CAAA;IACzC,mDAAuB,CAAA;AACzB,CAAC,EAHW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAGnC;AAED,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,iDAAyB,CAAA;AAC3B,CAAC,EAFW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAE/B"}
|
|
@@ -2,7 +2,6 @@ import { Ownable } from '@hyperlane-xyz/core';
|
|
|
2
2
|
import type { types } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { HyperlaneApp } from '../HyperlaneApp';
|
|
4
4
|
import { MultiProvider } from '../providers/MultiProvider';
|
|
5
|
-
import { TransparentProxyAddresses } from '../proxy';
|
|
6
5
|
import { ChainMap, ChainName } from '../types';
|
|
7
6
|
import { CheckerViolation } from './types';
|
|
8
7
|
export declare abstract class HyperlaneAppChecker<App extends HyperlaneApp<any>, Config> {
|
|
@@ -14,10 +13,13 @@ export declare abstract class HyperlaneAppChecker<App extends HyperlaneApp<any>,
|
|
|
14
13
|
abstract checkChain(chain: ChainName): Promise<void>;
|
|
15
14
|
check(): Promise<void[]>;
|
|
16
15
|
addViolation(violation: CheckerViolation): void;
|
|
17
|
-
|
|
16
|
+
checkProxiedContracts(chain: ChainName): Promise<void>;
|
|
18
17
|
private removeBytecodeMetadata;
|
|
19
18
|
checkBytecode(chain: ChainName, name: string, address: string, expectedBytecodeHashes: string[], modifyBytecodePriorToHash?: (bytecode: string) => string): Promise<void>;
|
|
20
|
-
|
|
19
|
+
ownables(chain: ChainName): Promise<{
|
|
20
|
+
[key: string]: Ownable;
|
|
21
|
+
}>;
|
|
22
|
+
checkOwnership(chain: ChainName, owner: types.Address): Promise<void>;
|
|
21
23
|
expectViolations(violationCounts: Record<string, number>): void;
|
|
22
24
|
expectEmpty(): void;
|
|
23
25
|
}
|
|
@@ -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":"AAGA,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,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAI/C,OAAO,EAEL,gBAAgB,EAIjB,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,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B5D,OAAO,CAAC,sBAAsB;IAOxB,aAAa,CACjB,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,sBAAsB,EAAE,MAAM,EAAE,EAChC,yBAAyB,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAiB,GACjE,OAAO,CAAC,IAAI,CAAC;IAiBV,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAuB/D,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3E,gBAAgB,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAgB/D,WAAW,IAAI,IAAI;CAIpB"}
|
|
@@ -38,25 +38,29 @@ class HyperlaneAppChecker {
|
|
|
38
38
|
addViolation(violation) {
|
|
39
39
|
this.violations.push(violation);
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
checkProxiedContracts(chain) {
|
|
42
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
this.addViolation((0, proxy_1.proxyViolation)(chain, name, proxiedAddress, implementation));
|
|
43
|
+
const expectedAdmin = this.app.getContracts(chain).proxyAdmin.address;
|
|
44
|
+
if (!expectedAdmin) {
|
|
45
|
+
throw new Error(`Checking proxied contracts for ${chain} with no admin provided`);
|
|
47
46
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
48
|
+
const contracts = this.app.getContracts(chain);
|
|
49
|
+
yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(contracts, (name, contract) => __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
if (yield (0, proxy_1.isProxy)(provider, contract.address)) {
|
|
51
|
+
// Check the ProxiedContract's admin matches expectation
|
|
52
|
+
const actualAdmin = yield (0, proxy_1.proxyAdmin)(provider, contract.address);
|
|
53
|
+
if (!utils_2.utils.eqAddress(actualAdmin, expectedAdmin)) {
|
|
54
|
+
this.addViolation({
|
|
55
|
+
type: types_1.ViolationType.ProxyAdmin,
|
|
56
|
+
chain,
|
|
57
|
+
name,
|
|
58
|
+
expected: expectedAdmin,
|
|
59
|
+
actual: actualAdmin,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
|
-
}
|
|
63
|
+
})));
|
|
60
64
|
});
|
|
61
65
|
}
|
|
62
66
|
removeBytecodeMetadata(bytecode) {
|
|
@@ -81,13 +85,32 @@ class HyperlaneAppChecker {
|
|
|
81
85
|
}
|
|
82
86
|
});
|
|
83
87
|
}
|
|
84
|
-
|
|
88
|
+
ownables(chain) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const isOwnable = (_, contract) => __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
try {
|
|
92
|
+
yield contract.owner();
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
catch (_) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
const contracts = this.app.getContracts(chain);
|
|
100
|
+
const isOwnableContracts = yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(contracts, isOwnable));
|
|
101
|
+
return (0, objects_1.objFilter)(contracts, (name, contract) => isOwnableContracts[name]);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// TODO: Require owner in config if ownables is non-empty
|
|
105
|
+
checkOwnership(chain, owner) {
|
|
85
106
|
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
yield
|
|
107
|
+
const ownableContracts = yield this.ownables(chain);
|
|
108
|
+
for (const [name, contract] of Object.entries(ownableContracts)) {
|
|
87
109
|
const actual = yield contract.owner();
|
|
88
|
-
if (
|
|
110
|
+
if (!utils_2.utils.eqAddress(actual, owner)) {
|
|
89
111
|
const violation = {
|
|
90
112
|
chain,
|
|
113
|
+
name,
|
|
91
114
|
type: types_1.ViolationType.Owner,
|
|
92
115
|
actual,
|
|
93
116
|
expected: owner,
|
|
@@ -95,7 +118,7 @@ class HyperlaneAppChecker {
|
|
|
95
118
|
};
|
|
96
119
|
this.addViolation(violation);
|
|
97
120
|
}
|
|
98
|
-
}
|
|
121
|
+
}
|
|
99
122
|
});
|
|
100
123
|
}
|
|
101
124
|
expectViolations(violationCounts) {
|
|
@@ -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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"}
|