@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
|
@@ -2,12 +2,14 @@ import { HyperlaneCore } from '../../core/HyperlaneCore';
|
|
|
2
2
|
import { ChainName } from '../../types';
|
|
3
3
|
import { HyperlaneAppChecker } from '../HyperlaneAppChecker';
|
|
4
4
|
import { CoreConfig } from './types';
|
|
5
|
-
export declare class HyperlaneCoreChecker
|
|
6
|
-
checkChain(chain:
|
|
7
|
-
checkDomainOwnership(chain:
|
|
8
|
-
checkMailbox(chain:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
export declare class HyperlaneCoreChecker extends HyperlaneAppChecker<HyperlaneCore, CoreConfig> {
|
|
6
|
+
checkChain(chain: ChainName): Promise<void>;
|
|
7
|
+
checkDomainOwnership(chain: ChainName): Promise<void>;
|
|
8
|
+
checkMailbox(chain: ChainName): Promise<void>;
|
|
9
|
+
checkBytecodes(chain: ChainName): Promise<void>;
|
|
10
|
+
checkProxiedContracts(chain: ChainName): Promise<void>;
|
|
11
|
+
checkValidatorAnnounce(chain: ChainName): Promise<void>;
|
|
12
|
+
checkMultisigIsm(local: ChainName): Promise<void>;
|
|
13
|
+
checkMultisigIsmForRemote(local: ChainName, remote: ChainName): Promise<void>;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=HyperlaneCoreChecker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreChecker.d.ts","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreChecker.d.ts","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EACL,UAAU,EAQX,MAAM,SAAS,CAAC;AAejB,qBAAa,oBAAqB,SAAQ,mBAAmB,CAC3D,aAAa,EACb,UAAU,CACX;IACO,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3C,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAarD,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7C,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA0E/C,qBAAqB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtD,sBAAsB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjD,yBAAyB,CAC7B,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,IAAI,CAAC;CAgDjB"}
|
|
@@ -10,10 +10,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.HyperlaneCoreChecker = void 0;
|
|
13
|
+
const ethers_1 = require("ethers");
|
|
13
14
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
14
|
-
const domains_1 = require("../../domains");
|
|
15
15
|
const HyperlaneAppChecker_1 = require("../HyperlaneAppChecker");
|
|
16
16
|
const types_1 = require("./types");
|
|
17
|
+
const MAILBOX_WITHOUT_LOCAL_DOMAIN_BYTE_CODE_HASH = '0x29b7294ab3ad2e8587e5cce0e2289ce65e12a2ea2f1e7ab34a05e7737616f457';
|
|
18
|
+
const TRANSPARENT_PROXY_BYTECODE_HASH = '0x4dde3d0906b6492bf1d4947f667afe8d53c8899f1d8788cabafd082938dceb2d';
|
|
19
|
+
const MULTISIG_ISM_BYTECODE_HASH = '0x5565704ffa5b10fdf37d57abfddcf137101d5fb418ded21fa6c5f90262c57dc2';
|
|
20
|
+
const PROXY_ADMIN_BYTECODE_HASH = '0x7c378e9d49408861ca754fe684b9f7d1ea525bddf095ee0463902df701453ba0';
|
|
21
|
+
const INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH = '0xcee48ab556ae2ff12b6458fa92e5e31f4a07f7852a0ed06e43a7f06f3c4c6d76';
|
|
22
|
+
const OVERHEAD_IGP_BYTECODE_HASH = '0x3cfed1f24f1e9b28a76d5a8c61696a04f7bc474404b823a2fcc210ea52346252';
|
|
17
23
|
class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
18
24
|
checkChain(chain) {
|
|
19
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -26,6 +32,8 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
26
32
|
yield this.checkProxiedContracts(chain);
|
|
27
33
|
yield this.checkMailbox(chain);
|
|
28
34
|
yield this.checkMultisigIsm(chain);
|
|
35
|
+
yield this.checkBytecodes(chain);
|
|
36
|
+
yield this.checkValidatorAnnounce(chain);
|
|
29
37
|
});
|
|
30
38
|
}
|
|
31
39
|
checkDomainOwnership(chain) {
|
|
@@ -47,7 +55,7 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
47
55
|
const contracts = this.app.getContracts(chain);
|
|
48
56
|
const mailbox = contracts.mailbox.contract;
|
|
49
57
|
const localDomain = yield mailbox.localDomain();
|
|
50
|
-
utils_1.utils.assert(localDomain ===
|
|
58
|
+
utils_1.utils.assert(localDomain === this.multiProvider.getDomainId(chain));
|
|
51
59
|
const actualIsm = yield mailbox.defaultIsm();
|
|
52
60
|
const expectedIsm = contracts.multisigIsm.address;
|
|
53
61
|
if (actualIsm !== expectedIsm) {
|
|
@@ -63,6 +71,32 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
63
71
|
}
|
|
64
72
|
});
|
|
65
73
|
}
|
|
74
|
+
checkBytecodes(chain) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
const contracts = this.app.getContracts(chain);
|
|
77
|
+
const mailbox = contracts.mailbox.contract;
|
|
78
|
+
const localDomain = yield mailbox.localDomain();
|
|
79
|
+
yield this.checkBytecode(chain, 'Mailbox implementation', contracts.mailbox.addresses.implementation, MAILBOX_WITHOUT_LOCAL_DOMAIN_BYTE_CODE_HASH, (_) =>
|
|
80
|
+
// This is obviously super janky but basically we are searching
|
|
81
|
+
// for the ocurrences of localDomain in the bytecode and remove
|
|
82
|
+
// that to compare, but some coincidental ocurrences of
|
|
83
|
+
// localDomain in the bytecode should be not be removed which
|
|
84
|
+
// are just done via an offset guard
|
|
85
|
+
_.replaceAll(ethers_1.utils.defaultAbiCoder
|
|
86
|
+
.encode(['uint32'], [localDomain])
|
|
87
|
+
.slice(2), (match, offset) => (offset > 8000 ? match : '')));
|
|
88
|
+
yield this.checkBytecode(chain, 'Mailbox proxy', contracts.mailbox.address, TRANSPARENT_PROXY_BYTECODE_HASH);
|
|
89
|
+
yield this.checkBytecode(chain, 'InterchainGasPaymaster proxy', contracts.interchainGasPaymaster.address, TRANSPARENT_PROXY_BYTECODE_HASH);
|
|
90
|
+
yield this.checkBytecode(chain, 'ProxyAdmin', contracts.proxyAdmin.address, PROXY_ADMIN_BYTECODE_HASH);
|
|
91
|
+
yield this.checkBytecode(chain, 'MultisigIsm implementation', contracts.multisigIsm.address, MULTISIG_ISM_BYTECODE_HASH);
|
|
92
|
+
yield this.checkBytecode(chain, 'InterchainGasPaymaster implementation', contracts.interchainGasPaymaster.addresses.implementation, INTERCHAIN_GAS_PAYMASTER_BYTECODE_HASH);
|
|
93
|
+
yield this.checkBytecode(chain, 'OverheadIGP', contracts.defaultIsmInterchainGasPaymaster.address, OVERHEAD_IGP_BYTECODE_HASH, (_) =>
|
|
94
|
+
// Remove the address of the wrapped ISM from the bytecode
|
|
95
|
+
_.replaceAll(ethers_1.utils.defaultAbiCoder
|
|
96
|
+
.encode(['address'], [contracts.interchainGasPaymaster.addresses.proxy])
|
|
97
|
+
.slice(2), ''));
|
|
98
|
+
});
|
|
99
|
+
}
|
|
66
100
|
checkProxiedContracts(chain) {
|
|
67
101
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
102
|
const contracts = this.app.getContracts(chain);
|
|
@@ -71,6 +105,26 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
71
105
|
yield this.checkProxiedContract(chain, 'DefaultIsmInterchainGasPaymaster', contracts.interchainGasPaymaster.addresses, contracts.proxyAdmin.address);
|
|
72
106
|
});
|
|
73
107
|
}
|
|
108
|
+
checkValidatorAnnounce(chain) {
|
|
109
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
const expectedValidators = this.configMap[chain].multisigIsm.validators;
|
|
111
|
+
const validatorAnnounce = this.app.getContracts(chain).validatorAnnounce;
|
|
112
|
+
const announcedValidators = yield validatorAnnounce.getAnnouncedValidators();
|
|
113
|
+
expectedValidators.map((validator) => {
|
|
114
|
+
const matches = announcedValidators.filter((x) => utils_1.utils.eqAddress(x, validator));
|
|
115
|
+
if (matches.length == 0) {
|
|
116
|
+
const violation = {
|
|
117
|
+
type: types_1.CoreViolationType.ValidatorAnnounce,
|
|
118
|
+
chain,
|
|
119
|
+
validator,
|
|
120
|
+
actual: false,
|
|
121
|
+
expected: true,
|
|
122
|
+
};
|
|
123
|
+
this.addViolation(violation);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
74
128
|
checkMultisigIsm(local) {
|
|
75
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
130
|
yield Promise.all(this.app
|
|
@@ -83,7 +137,7 @@ class HyperlaneCoreChecker extends HyperlaneAppChecker_1.HyperlaneAppChecker {
|
|
|
83
137
|
const coreContracts = this.app.getContracts(local);
|
|
84
138
|
const multisigIsm = coreContracts.multisigIsm;
|
|
85
139
|
const config = this.configMap[remote];
|
|
86
|
-
const remoteDomain =
|
|
140
|
+
const remoteDomain = this.multiProvider.getDomainId(remote);
|
|
87
141
|
const multisigIsmConfig = config.multisigIsm;
|
|
88
142
|
const expectedValidators = multisigIsmConfig.validators;
|
|
89
143
|
const actualValidators = yield multisigIsm.validators(remoteDomain);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreChecker.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreChecker.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@ import { ProxiedContract, TransparentProxyAddresses } from '../../proxy';
|
|
|
7
7
|
import { ChainMap, ChainName } from '../../types';
|
|
8
8
|
import { DeployOptions, HyperlaneDeployer } from '../HyperlaneDeployer';
|
|
9
9
|
import { CoreConfig } from './types';
|
|
10
|
-
export declare class HyperlaneCoreDeployer
|
|
11
|
-
startingBlockNumbers: ChainMap<
|
|
12
|
-
gasOverhead: ChainMap<
|
|
13
|
-
constructor(multiProvider: MultiProvider
|
|
10
|
+
export declare class HyperlaneCoreDeployer extends HyperlaneDeployer<CoreConfig, CoreContracts, typeof coreFactories> {
|
|
11
|
+
startingBlockNumbers: ChainMap<number | undefined>;
|
|
12
|
+
gasOverhead: ChainMap<OverheadIgp.DomainConfigStruct>;
|
|
13
|
+
constructor(multiProvider: MultiProvider, configMap: ChainMap<CoreConfig>, factoriesOverride?: {
|
|
14
14
|
interchainAccountRouter: import("@hyperlane-xyz/core").InterchainAccountRouter__factory;
|
|
15
15
|
interchainQueryRouter: import("@hyperlane-xyz/core").InterchainQueryRouter__factory;
|
|
16
16
|
validatorAnnounce: import("@hyperlane-xyz/core").ValidatorAnnounce__factory;
|
|
@@ -21,12 +21,12 @@ export declare class HyperlaneCoreDeployer<Chain extends ChainName> extends Hype
|
|
|
21
21
|
multisigIsm: import("@hyperlane-xyz/core").MultisigIsm__factory;
|
|
22
22
|
mailbox: import("@hyperlane-xyz/core").Mailbox__factory;
|
|
23
23
|
});
|
|
24
|
-
deployInterchainGasPaymaster
|
|
25
|
-
deployDefaultIsmInterchainGasPaymaster
|
|
26
|
-
deployMailbox
|
|
27
|
-
deployValidatorAnnounce
|
|
28
|
-
deployMultisigIsm
|
|
29
|
-
deployContracts
|
|
30
|
-
transferOwnershipOfContracts(chain:
|
|
24
|
+
deployInterchainGasPaymaster(chain: ChainName, proxyAdmin: ProxyAdmin, deployOpts?: DeployOptions): Promise<ProxiedContract<InterchainGasPaymaster, TransparentProxyAddresses>>;
|
|
25
|
+
deployDefaultIsmInterchainGasPaymaster(chain: ChainName, interchainGasPaymasterAddress: types.Address, deployOpts?: DeployOptions): Promise<OverheadIgp>;
|
|
26
|
+
deployMailbox(chain: ChainName, defaultIsmAddress: types.Address, proxyAdmin: ProxyAdmin, deployOpts?: DeployOptions): Promise<ProxiedContract<Mailbox, TransparentProxyAddresses>>;
|
|
27
|
+
deployValidatorAnnounce(chain: ChainName, mailboxAddress: string, deployOpts?: DeployOptions): Promise<ValidatorAnnounce>;
|
|
28
|
+
deployMultisigIsm(chain: ChainName): Promise<MultisigIsm>;
|
|
29
|
+
deployContracts(chain: ChainName, config: CoreConfig): Promise<CoreContracts>;
|
|
30
|
+
transferOwnershipOfContracts(chain: ChainName, ownables: Ownable[]): Promise<ethers.ContractReceipt[]>;
|
|
31
31
|
}
|
|
32
32
|
//# sourceMappingURL=HyperlaneCoreDeployer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreDeployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,OAAO,EACP,WAAW,EACX,WAAW,EACX,OAAO,EAEP,UAAU,EACV,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreDeployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,OAAO,EACP,WAAW,EACX,WAAW,EACX,OAAO,EAEP,UAAU,EACV,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,qBAAa,qBAAsB,SAAQ,iBAAiB,CAC1D,UAAU,EACV,aAAa,EACb,OAAO,aAAa,CACrB;IACC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnD,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;gBAGpD,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC/B,iBAAiB;;;;;;;;;;KAAgB;IAsB7B,4BAA4B,CAChC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CACR,eAAe,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,CACnE;IAWK,sCAAsC,CAC1C,KAAK,EAAE,SAAS,EAChB,6BAA6B,EAAE,KAAK,CAAC,OAAO,EAC5C,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,WAAW,CAAC;IAkDjB,aAAa,CACjB,KAAK,EAAE,SAAS,EAChB,iBAAiB,EAAE,KAAK,CAAC,OAAO,EAChC,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IAezD,uBAAuB,CAC3B,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAAC,iBAAiB,CAAC;IAUvB,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAyEzD,eAAe,CACnB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,aAAa,CAAC;IAgDnB,4BAA4B,CAChC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;CAqBrC"}
|
|
@@ -16,10 +16,8 @@ exports.HyperlaneCoreDeployer = void 0;
|
|
|
16
16
|
const debug_1 = __importDefault(require("debug"));
|
|
17
17
|
const ethers_1 = require("ethers");
|
|
18
18
|
const core_1 = require("@hyperlane-xyz/core");
|
|
19
|
-
const chainMetadata_1 = require("../../consts/chainMetadata");
|
|
20
19
|
const multisigIsmVerifyCosts_json_1 = __importDefault(require("../../consts/multisigIsmVerifyCosts.json"));
|
|
21
20
|
const contracts_1 = require("../../core/contracts");
|
|
22
|
-
const domains_1 = require("../../domains");
|
|
23
21
|
const objects_1 = require("../../utils/objects");
|
|
24
22
|
const HyperlaneDeployer_1 = require("../HyperlaneDeployer");
|
|
25
23
|
class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
@@ -35,7 +33,7 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
35
33
|
if (!verifyCost)
|
|
36
34
|
throw new Error(`Unknown verification cost for ${threshold} of ${validators.length}`);
|
|
37
35
|
return {
|
|
38
|
-
domain:
|
|
36
|
+
domain: multiProvider.getDomainId(chain),
|
|
39
37
|
gasOverhead: verifyCost,
|
|
40
38
|
};
|
|
41
39
|
});
|
|
@@ -48,16 +46,14 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
48
46
|
}
|
|
49
47
|
deployDefaultIsmInterchainGasPaymaster(chain, interchainGasPaymasterAddress, deployOpts) {
|
|
50
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
const
|
|
52
|
-
const deployer = yield chainSigner.getAddress();
|
|
49
|
+
const deployer = yield this.multiProvider.getSignerAddress(chain);
|
|
53
50
|
// Transfer ownership to the deployer so the destination gas overheads can be set
|
|
54
51
|
const initCalldata = core_1.Ownable__factory.createInterface().encodeFunctionData('transferOwnership', [deployer]);
|
|
55
52
|
const defaultIsmInterchainGasPaymaster = yield this.deployContract(chain, 'defaultIsmInterchainGasPaymaster', [interchainGasPaymasterAddress], Object.assign(Object.assign({}, deployOpts), { initCalldata }));
|
|
56
53
|
const configChains = Object.keys(this.configMap);
|
|
57
|
-
const chainConnection = this.multiProvider.getChainConnection(chain);
|
|
58
54
|
const remotes = this.multiProvider
|
|
59
55
|
.intersect(configChains, false)
|
|
60
|
-
.multiProvider.
|
|
56
|
+
.multiProvider.getRemoteChains(chain);
|
|
61
57
|
// Only set gas overhead configs if they differ from what's on chain
|
|
62
58
|
const configs = [];
|
|
63
59
|
for (const remote of remotes) {
|
|
@@ -68,16 +64,14 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
68
64
|
}
|
|
69
65
|
}
|
|
70
66
|
if (configs.length > 0) {
|
|
71
|
-
yield this.runIfOwner(chain, defaultIsmInterchainGasPaymaster, () =>
|
|
72
|
-
return chainConnection.handleTx(defaultIsmInterchainGasPaymaster.setDestinationGasOverheads(configs, chainConnection.overrides));
|
|
73
|
-
}));
|
|
67
|
+
yield this.runIfOwner(chain, defaultIsmInterchainGasPaymaster, () => this.multiProvider.handleTx(chain, defaultIsmInterchainGasPaymaster.setDestinationGasOverheads(configs, this.multiProvider.getTransactionOverrides(chain))));
|
|
74
68
|
}
|
|
75
69
|
return defaultIsmInterchainGasPaymaster;
|
|
76
70
|
});
|
|
77
71
|
}
|
|
78
72
|
deployMailbox(chain, defaultIsmAddress, proxyAdmin, deployOpts) {
|
|
79
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
const domain =
|
|
74
|
+
const domain = this.multiProvider.getDomainId(chain);
|
|
81
75
|
const owner = this.configMap[chain].owner;
|
|
82
76
|
const mailbox = yield this.deployProxiedContract(chain, 'mailbox', [domain], proxyAdmin, [owner, defaultIsmAddress], deployOpts);
|
|
83
77
|
return mailbox;
|
|
@@ -96,27 +90,27 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
96
90
|
return __awaiter(this, void 0, void 0, function* () {
|
|
97
91
|
const multisigIsm = yield this.deployContract(chain, 'multisigIsm', []);
|
|
98
92
|
const configChains = Object.keys(this.configMap);
|
|
99
|
-
const chainConnection = this.multiProvider.getChainConnection(chain);
|
|
100
93
|
const remotes = this.multiProvider
|
|
101
94
|
.intersect(configChains, false)
|
|
102
|
-
.multiProvider.
|
|
95
|
+
.multiProvider.getRemoteChains(chain);
|
|
96
|
+
const overrides = this.multiProvider.getTransactionOverrides(chain);
|
|
103
97
|
yield _super.runIfOwner.call(this, chain, multisigIsm, () => __awaiter(this, void 0, void 0, function* () {
|
|
104
98
|
// TODO: Remove extraneous validators
|
|
105
|
-
const remoteDomains =
|
|
99
|
+
const remoteDomains = this.multiProvider.getDomainIds(remotes);
|
|
106
100
|
const actualValidators = yield Promise.all(remoteDomains.map((id) => multisigIsm.validators(id)));
|
|
107
101
|
const expectedValidators = remotes.map((chain) => this.configMap[chain].multisigIsm.validators);
|
|
108
102
|
const validatorsToEnroll = expectedValidators.map((validators, i) => validators.filter((validator) => !actualValidators[i].includes(ethers_1.ethers.utils.getAddress(validator))));
|
|
109
103
|
const chainsToEnrollValidators = remotes.filter((_, i) => validatorsToEnroll[i].length > 0);
|
|
110
104
|
if (chainsToEnrollValidators.length > 0) {
|
|
111
105
|
this.logger(`Enroll ${chainsToEnrollValidators} validators on ${chain}`);
|
|
112
|
-
yield
|
|
106
|
+
yield this.multiProvider.handleTx(chain, multisigIsm.enrollValidators(chainsToEnrollValidators.map((c) => this.multiProvider.getDomainId(c)), validatorsToEnroll.filter((validators) => validators.length > 0), overrides));
|
|
113
107
|
}
|
|
114
108
|
const actualThresholds = yield Promise.all(remoteDomains.map((id) => multisigIsm.threshold(id)));
|
|
115
109
|
const expectedThresholds = remotes.map((chain) => this.configMap[chain].multisigIsm.threshold);
|
|
116
110
|
const chainsToSetThreshold = remotes.filter((_, i) => actualThresholds[i] !== expectedThresholds[i]);
|
|
117
111
|
if (chainsToSetThreshold.length > 0) {
|
|
118
112
|
this.logger(`Set remote (${chainsToSetThreshold}) thresholds on ${chain}`);
|
|
119
|
-
yield
|
|
113
|
+
yield this.multiProvider.handleTx(chain, multisigIsm.setThresholds(chainsToSetThreshold.map((c) => this.multiProvider.getDomainId(c)), chainsToSetThreshold.map((c) => this.configMap[c].multisigIsm.threshold), overrides));
|
|
120
114
|
}
|
|
121
115
|
}));
|
|
122
116
|
return multisigIsm;
|
|
@@ -128,8 +122,7 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
128
122
|
// skip deploying to chains configured to be removed
|
|
129
123
|
return undefined;
|
|
130
124
|
}
|
|
131
|
-
const
|
|
132
|
-
const provider = dc.provider;
|
|
125
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
133
126
|
const startingBlockNumber = yield provider.getBlockNumber();
|
|
134
127
|
this.startingBlockNumbers[chain] = startingBlockNumber;
|
|
135
128
|
const multisigIsm = yield this.deployMultisigIsm(chain);
|
|
@@ -161,12 +154,11 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
|
|
|
161
154
|
});
|
|
162
155
|
return __awaiter(this, void 0, void 0, function* () {
|
|
163
156
|
const owner = this.configMap[chain].owner;
|
|
164
|
-
const chainConnection = this.multiProvider.getChainConnection(chain);
|
|
165
157
|
const receipts = [];
|
|
166
158
|
for (const ownable of ownables) {
|
|
167
159
|
const currentOwner = yield ownable.owner();
|
|
168
160
|
if (currentOwner.toLowerCase() !== owner.toLowerCase()) {
|
|
169
|
-
const receipt = yield _super.runIfOwner.call(this, chain, ownable, () =>
|
|
161
|
+
const receipt = yield _super.runIfOwner.call(this, chain, ownable, () => this.multiProvider.handleTx(chain, ownable.transferOwnership(owner, this.multiProvider.getTransactionOverrides(chain))));
|
|
170
162
|
if (receipt)
|
|
171
163
|
receipts.push(receipt);
|
|
172
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mCAAgC;AAEhC,8CAS6B;AAG7B,
|
|
1
|
+
{"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,8 @@ export declare type CoreConfig = {
|
|
|
14
14
|
export declare enum CoreViolationType {
|
|
15
15
|
MultisigIsm = "MultisigIsm",
|
|
16
16
|
Mailbox = "Mailbox",
|
|
17
|
-
ConnectionManager = "ConnectionManager"
|
|
17
|
+
ConnectionManager = "ConnectionManager",
|
|
18
|
+
ValidatorAnnounce = "ValidatorAnnounce"
|
|
18
19
|
}
|
|
19
20
|
export declare enum MultisigIsmViolationType {
|
|
20
21
|
EnrolledValidators = "EnrolledValidators",
|
|
@@ -48,4 +49,11 @@ export interface ThresholdViolation extends MultisigIsmViolation {
|
|
|
48
49
|
actual: number;
|
|
49
50
|
expected: number;
|
|
50
51
|
}
|
|
52
|
+
export interface ValidatorAnnounceViolation extends CheckerViolation {
|
|
53
|
+
type: CoreViolationType.ValidatorAnnounce;
|
|
54
|
+
chain: ChainName;
|
|
55
|
+
validator: types.Address;
|
|
56
|
+
actual: boolean;
|
|
57
|
+
expected: boolean;
|
|
58
|
+
}
|
|
51
59
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/deploy/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,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,iBAAiB,CAAC;IAC/B,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;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,WAAW,CAAC;IACtB,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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/deploy/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,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,iBAAiB,CAAC;IAC/B,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,WAAW,CAAC;IACtB,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"}
|
|
@@ -6,6 +6,7 @@ var CoreViolationType;
|
|
|
6
6
|
CoreViolationType["MultisigIsm"] = "MultisigIsm";
|
|
7
7
|
CoreViolationType["Mailbox"] = "Mailbox";
|
|
8
8
|
CoreViolationType["ConnectionManager"] = "ConnectionManager";
|
|
9
|
+
CoreViolationType["ValidatorAnnounce"] = "ValidatorAnnounce";
|
|
9
10
|
})(CoreViolationType = exports.CoreViolationType || (exports.CoreViolationType = {}));
|
|
10
11
|
var MultisigIsmViolationType;
|
|
11
12
|
(function (MultisigIsmViolationType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/deploy/core/types.ts"],"names":[],"mappings":";;;AAiBA,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/deploy/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"}
|
|
@@ -3,32 +3,32 @@ import { LiquidityLayerContracts } from '../../middleware';
|
|
|
3
3
|
import { MultiProvider } from '../../providers/MultiProvider';
|
|
4
4
|
import { ChainMap, ChainName } from '../../types';
|
|
5
5
|
import { BridgeAdapterConfig } from './LiquidityLayerRouterDeployer';
|
|
6
|
-
interface CircleBridgeMessage
|
|
7
|
-
chain:
|
|
8
|
-
remoteChain:
|
|
6
|
+
interface CircleBridgeMessage {
|
|
7
|
+
chain: ChainName;
|
|
8
|
+
remoteChain: ChainName;
|
|
9
9
|
txHash: string;
|
|
10
10
|
message: string;
|
|
11
11
|
nonce: number;
|
|
12
12
|
domain: number;
|
|
13
13
|
nonceHash: string;
|
|
14
14
|
}
|
|
15
|
-
interface PortalBridgeMessage
|
|
16
|
-
origin:
|
|
15
|
+
interface PortalBridgeMessage {
|
|
16
|
+
origin: ChainName;
|
|
17
17
|
nonce: number;
|
|
18
18
|
portalSequence: number;
|
|
19
|
-
destination:
|
|
19
|
+
destination: ChainName;
|
|
20
20
|
}
|
|
21
|
-
export declare class LiquidityLayerApp
|
|
22
|
-
readonly contractsMap: ChainMap<
|
|
23
|
-
readonly multiProvider: MultiProvider
|
|
24
|
-
readonly config: ChainMap<
|
|
25
|
-
constructor(contractsMap: ChainMap<
|
|
26
|
-
fetchCircleMessageTransactions(chain:
|
|
27
|
-
fetchPortalBridgeTransactions(chain:
|
|
28
|
-
parsePortalMessages(chain:
|
|
29
|
-
parseCircleMessages(chain:
|
|
30
|
-
attemptPortalTransferCompletion(message: PortalBridgeMessage
|
|
31
|
-
attemptCircleAttestationSubmission(message: CircleBridgeMessage
|
|
21
|
+
export declare class LiquidityLayerApp extends HyperlaneApp<LiquidityLayerContracts> {
|
|
22
|
+
readonly contractsMap: ChainMap<LiquidityLayerContracts>;
|
|
23
|
+
readonly multiProvider: MultiProvider;
|
|
24
|
+
readonly config: ChainMap<BridgeAdapterConfig>;
|
|
25
|
+
constructor(contractsMap: ChainMap<LiquidityLayerContracts>, multiProvider: MultiProvider, config: ChainMap<BridgeAdapterConfig>);
|
|
26
|
+
fetchCircleMessageTransactions(chain: ChainName): Promise<string[]>;
|
|
27
|
+
fetchPortalBridgeTransactions(chain: ChainName): Promise<string[]>;
|
|
28
|
+
parsePortalMessages(chain: ChainName, txHash: string): Promise<PortalBridgeMessage[]>;
|
|
29
|
+
parseCircleMessages(chain: ChainName, txHash: string): Promise<CircleBridgeMessage[]>;
|
|
30
|
+
attemptPortalTransferCompletion(message: PortalBridgeMessage): Promise<void>;
|
|
31
|
+
attemptCircleAttestationSubmission(message: CircleBridgeMessage): Promise<void>;
|
|
32
32
|
}
|
|
33
33
|
export {};
|
|
34
34
|
//# sourceMappingURL=LiquidityLayerApp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiquidityLayerApp.d.ts","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerApp.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"LiquidityLayerApp.d.ts","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerApp.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAsBrE,UAAU,mBAAmB;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,SAAS,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,CAAC;CACxB;AAED,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,uBAAuB,CAAC;aAExD,YAAY,EAAE,QAAQ,CAAC,uBAAuB,CAAC;aAC/C,aAAa,EAAE,aAAa;aAC5B,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC;gBAFrC,YAAY,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAC/C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC;IAKjD,8BAA8B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAcnE,6BAA6B,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAclE,mBAAmB,CACvB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAsB3B,mBAAmB,CACvB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA0C3B,+BAA+B,CACnC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAmDV,kCAAkC,CACtC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC;CAyCjB"}
|
|
@@ -19,7 +19,6 @@ const core_1 = require("@hyperlane-xyz/core");
|
|
|
19
19
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
20
20
|
const HyperlaneApp_1 = require("../../HyperlaneApp");
|
|
21
21
|
const chains_1 = require("../../consts/chains");
|
|
22
|
-
const domains_1 = require("../../domains");
|
|
23
22
|
const PORTAL_VAA_SERVICE_TESTNET_BASE_URL = 'https://wormhole-v2-testnet-api.certus.one/v1/signed_vaa/';
|
|
24
23
|
const CIRCLE_ATTESTATIONS_BASE_URL = 'https://iris-api-sandbox.circle.com/attestations/';
|
|
25
24
|
const PORTAL_VAA_SERVICE_SUCCESS_CODE = 5;
|
|
@@ -37,36 +36,36 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
37
36
|
}
|
|
38
37
|
fetchCircleMessageTransactions(chain) {
|
|
39
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
-
const cc = this.multiProvider.getChainConnection(chain);
|
|
41
39
|
const params = new URLSearchParams({
|
|
42
40
|
module: 'logs',
|
|
43
41
|
action: 'getLogs',
|
|
44
42
|
address: this.getContracts(chain).circleBridgeAdapter.address,
|
|
45
43
|
topic0: BridgedTokenTopic,
|
|
46
44
|
});
|
|
47
|
-
const
|
|
45
|
+
const url = `${this.multiProvider.getExplorerApiUrl(chain)}?${params}`;
|
|
46
|
+
const req = yield (0, cross_fetch_1.default)(url);
|
|
48
47
|
const response = yield req.json();
|
|
49
48
|
return response.result.map((_) => _.transactionHash).flat();
|
|
50
49
|
});
|
|
51
50
|
}
|
|
52
51
|
fetchPortalBridgeTransactions(chain) {
|
|
53
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
const cc = this.multiProvider.getChainConnection(chain);
|
|
55
53
|
const params = new URLSearchParams({
|
|
56
54
|
module: 'logs',
|
|
57
55
|
action: 'getLogs',
|
|
58
56
|
address: this.getContracts(chain).portalAdapter.address,
|
|
59
57
|
topic0: PortalBridgedTokenTopic,
|
|
60
58
|
});
|
|
61
|
-
const
|
|
59
|
+
const url = `${this.multiProvider.getExplorerApiUrl(chain)}?${params}`;
|
|
60
|
+
const req = yield (0, cross_fetch_1.default)(url);
|
|
62
61
|
const response = yield req.json();
|
|
63
62
|
return response.result.map((_) => _.transactionHash).flat();
|
|
64
63
|
});
|
|
65
64
|
}
|
|
66
65
|
parsePortalMessages(chain, txHash) {
|
|
67
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
-
const
|
|
69
|
-
const receipt = yield
|
|
67
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
68
|
+
const receipt = yield provider.getTransactionReceipt(txHash);
|
|
70
69
|
const matchingLogs = receipt.logs
|
|
71
70
|
.map((_) => {
|
|
72
71
|
try {
|
|
@@ -82,16 +81,14 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
82
81
|
const event = matchingLogs.find((_) => _.name === 'BridgedToken');
|
|
83
82
|
const portalSequence = event.args.portalSequence.toNumber();
|
|
84
83
|
const nonce = event.args.nonce.toNumber();
|
|
85
|
-
const destination =
|
|
86
|
-
return [
|
|
87
|
-
{ origin: chain, nonce, portalSequence, destination },
|
|
88
|
-
];
|
|
84
|
+
const destination = this.multiProvider.getChainName(event.args.destination);
|
|
85
|
+
return [{ origin: chain, nonce, portalSequence, destination }];
|
|
89
86
|
});
|
|
90
87
|
}
|
|
91
88
|
parseCircleMessages(chain, txHash) {
|
|
92
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
-
const
|
|
94
|
-
const receipt = yield
|
|
90
|
+
const provider = this.multiProvider.getProvider(chain);
|
|
91
|
+
const receipt = yield provider.getTransactionReceipt(txHash);
|
|
95
92
|
const matchingLogs = receipt.logs
|
|
96
93
|
.map((_) => {
|
|
97
94
|
try {
|
|
@@ -114,11 +111,10 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
114
111
|
const nonce = matchingLogs.find((_) => _.name === 'BridgedToken').args
|
|
115
112
|
.nonce;
|
|
116
113
|
const remoteChain = chain === chains_1.Chains.fuji ? chains_1.Chains.goerli : chains_1.Chains.fuji;
|
|
117
|
-
const domain = this.config[chain].circle.circleDomainMapping.find((_) => _.hyperlaneDomain ===
|
|
114
|
+
const domain = this.config[chain].circle.circleDomainMapping.find((_) => _.hyperlaneDomain === this.multiProvider.getDomainId(chain)).circleDomain;
|
|
118
115
|
return [
|
|
119
116
|
{
|
|
120
117
|
chain,
|
|
121
|
-
// @ts-ignore
|
|
122
118
|
remoteChain,
|
|
123
119
|
txHash,
|
|
124
120
|
message,
|
|
@@ -134,28 +130,27 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
134
130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
131
|
const destinationPortalAdapter = this.getContracts(message.destination)
|
|
136
132
|
.portalAdapter;
|
|
137
|
-
const transferId = yield destinationPortalAdapter.transferId(
|
|
133
|
+
const transferId = yield destinationPortalAdapter.transferId(this.multiProvider.getDomainId(message.origin), message.nonce);
|
|
138
134
|
const transferTokenAddress = yield destinationPortalAdapter.portalTransfersProcessed(transferId);
|
|
139
135
|
if (!utils_1.utils.eqAddress(transferTokenAddress, ethers_1.ethers.constants.AddressZero)) {
|
|
140
136
|
console.log(`Transfer with nonce ${message.nonce} from ${message.origin} to ${message.destination} already processed`);
|
|
141
137
|
return;
|
|
142
138
|
}
|
|
143
|
-
const wormholeOriginDomain = (_a = this.config[message.destination].portal.wormholeDomainMapping.find((_) => _.hyperlaneDomain ===
|
|
139
|
+
const wormholeOriginDomain = (_a = this.config[message.destination].portal.wormholeDomainMapping.find((_) => _.hyperlaneDomain === this.multiProvider.getDomainId(message.origin))) === null || _a === void 0 ? void 0 : _a.wormholeDomain;
|
|
144
140
|
const emitter = utils_1.utils.strip0x(utils_1.utils.addressToBytes32(this.config[message.origin].portal.portalBridgeAddress));
|
|
145
141
|
const vaa = yield (0, cross_fetch_1.default)(`${PORTAL_VAA_SERVICE_TESTNET_BASE_URL}${wormholeOriginDomain}/${emitter}/${message.portalSequence}`).then((_) => _.json());
|
|
146
142
|
if (vaa.code && vaa.code === PORTAL_VAA_SERVICE_SUCCESS_CODE) {
|
|
147
143
|
console.log(`VAA not yet found for nonce ${message.nonce}`);
|
|
148
144
|
return;
|
|
149
145
|
}
|
|
150
|
-
const connection = this.multiProvider.getChainConnection(message.destination);
|
|
151
146
|
console.debug(`Complete portal transfer for nonce ${message.nonce} on ${message.destination}`);
|
|
152
|
-
yield
|
|
147
|
+
yield this.multiProvider.handleTx(message.destination, destinationPortalAdapter.completeTransfer(utils_1.utils.ensure0x(Buffer.from(vaa.vaaBytes, 'base64').toString('hex'))));
|
|
153
148
|
});
|
|
154
149
|
}
|
|
155
150
|
attemptCircleAttestationSubmission(message) {
|
|
156
151
|
return __awaiter(this, void 0, void 0, function* () {
|
|
157
|
-
const
|
|
158
|
-
const transmitter = core_1.ICircleMessageTransmitter__factory.connect(this.config[message.remoteChain].circle.messageTransmitterAddress,
|
|
152
|
+
const signer = this.multiProvider.getSigner(message.remoteChain);
|
|
153
|
+
const transmitter = core_1.ICircleMessageTransmitter__factory.connect(this.config[message.remoteChain].circle.messageTransmitterAddress, signer);
|
|
159
154
|
const alreadyProcessed = yield transmitter.usedNonces(message.nonceHash);
|
|
160
155
|
if (alreadyProcessed) {
|
|
161
156
|
console.log(`Message sent on ${message.txHash} was already processed`);
|
|
@@ -170,8 +165,8 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
170
165
|
}
|
|
171
166
|
console.log(`Ready to submit attestations for message ${message.nonce}`);
|
|
172
167
|
const tx = yield transmitter.receiveMessage(message.message, attestations.attestation);
|
|
173
|
-
console.log(`Submitted attestations in ${
|
|
174
|
-
yield
|
|
168
|
+
console.log(`Submitted attestations in ${this.multiProvider.getExplorerTxUrl(message.remoteChain, tx)}`);
|
|
169
|
+
yield this.multiProvider.handleTx(message.remoteChain, tx);
|
|
175
170
|
});
|
|
176
171
|
}
|
|
177
172
|
}
|