@hyperlane-xyz/sdk 1.0.0-beta4 → 1.0.0-beta6
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/consts/chainConnectionConfigs.d.ts +13 -24
- package/dist/consts/chainConnectionConfigs.d.ts.map +1 -1
- package/dist/consts/chainConnectionConfigs.js +26 -139
- package/dist/consts/chainConnectionConfigs.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +80 -26
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +482 -97
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +18 -16
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +30 -16
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +69 -1259
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js +7 -14
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/consts/environments/mainnet.json +79 -639
- package/dist/consts/environments/test.json +27 -96
- package/dist/consts/environments/testnet.json +122 -0
- package/dist/contracts.d.ts +2 -1
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/core/HyperlaneCore.d.ts +72 -1268
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +19 -30
- package/dist/core/HyperlaneCore.js.map +1 -1
- package/dist/core/HyperlaneCore.test.js +2 -2
- package/dist/core/HyperlaneCore.test.js.map +1 -1
- package/dist/core/TestCoreApp.d.ts +6 -12
- package/dist/core/TestCoreApp.d.ts.map +1 -1
- package/dist/core/TestCoreApp.js +7 -9
- package/dist/core/TestCoreApp.js.map +1 -1
- package/dist/core/TestCoreDeployer.d.ts +7 -5
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +17 -42
- package/dist/core/TestCoreDeployer.js.map +1 -1
- package/dist/core/contracts.d.ts +10 -22
- package/dist/core/contracts.d.ts.map +1 -1
- package/dist/core/contracts.js +8 -8
- package/dist/core/contracts.js.map +1 -1
- package/dist/core/events.d.ts +1 -2
- package/dist/core/events.d.ts.map +1 -1
- package/dist/core/message.d.ts +6 -21
- package/dist/core/message.d.ts.map +1 -1
- package/dist/core/message.js +9 -34
- package/dist/core/message.js.map +1 -1
- package/dist/core/testHyperlaneDeploy.hardhat-test.js +6 -6
- package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.d.ts +2 -2
- package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
- package/dist/deploy/HyperlaneAppChecker.js +7 -3
- package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +7 -12
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +72 -42
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts +3 -7
- package/dist/deploy/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreChecker.js +41 -127
- package/dist/deploy/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts +15 -21
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.js +61 -81
- package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/deploy/core/types.d.ts +16 -29
- package/dist/deploy/core/types.d.ts.map +1 -1
- package/dist/deploy/core/types.js +8 -12
- package/dist/deploy/core/types.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts +4 -12
- package/dist/deploy/middleware/LiquidityLayerApp.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerApp.js +14 -87
- package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +8 -19
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +18 -52
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/deploy/middleware/deploy.d.ts +7 -2
- package/dist/deploy/middleware/deploy.d.ts.map +1 -1
- package/dist/deploy/middleware/deploy.js +21 -5
- package/dist/deploy/middleware/deploy.js.map +1 -1
- package/dist/deploy/proxy.d.ts +7 -6
- package/dist/deploy/proxy.d.ts.map +1 -1
- package/dist/deploy/proxy.js +18 -10
- package/dist/deploy/proxy.js.map +1 -1
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts +1 -1
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/deploy/router/HyperlaneRouterChecker.js +14 -9
- package/dist/deploy/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/deploy/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/router/HyperlaneRouterDeployer.js +17 -15
- package/dist/deploy/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/domains.d.ts +1 -1
- package/dist/domains.d.ts.map +1 -1
- package/dist/events.js +16 -16
- package/dist/events.js.map +1 -1
- package/dist/gas/calculator.d.ts.map +1 -1
- package/dist/gas/calculator.js +11 -6
- package/dist/gas/calculator.js.map +1 -1
- package/dist/gas/calculator.test.js +6 -9
- package/dist/gas/calculator.test.js.map +1 -1
- package/dist/index.d.ts +10 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -8
- package/dist/index.js.map +1 -1
- package/dist/middleware/liquidity-layer.hardhat-test.js +20 -47
- package/dist/middleware/liquidity-layer.hardhat-test.js.map +1 -1
- package/dist/middleware.d.ts +1 -6
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +1 -5
- package/dist/middleware.js.map +1 -1
- package/dist/providers/ChainConnection.d.ts +1 -1
- package/dist/providers/ChainConnection.d.ts.map +1 -1
- package/dist/providers/ChainConnection.js +2 -3
- package/dist/providers/ChainConnection.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +1 -1
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/proxy.d.ts +2 -4
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +1 -1
- package/dist/proxy.js.map +1 -1
- package/dist/router.d.ts +2 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/test/envSubsetDeployer/app.js +2 -2
- package/dist/test/envSubsetDeployer/app.js.map +1 -1
- package/dist/test/envSubsetDeployer/check-single-chain.js +1 -1
- package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -1
- package/dist/test/envSubsetDeployer/deploy-single-chain.js +1 -1
- package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/objects.d.ts +0 -1
- package/dist/utils/objects.d.ts.map +1 -1
- package/dist/utils/objects.js +1 -5
- package/dist/utils/objects.js.map +1 -1
- package/package.json +7 -7
- package/dist/consts/environments/testnet2.json +0 -682
- package/dist/consts/environments/testnet3.json +0 -114
- package/dist/consts/metamask.d.ts +0 -17
- package/dist/consts/metamask.d.ts.map +0 -1
- package/dist/consts/metamask.js +0 -50
- package/dist/consts/metamask.js.map +0 -1
- package/dist/deploy/middleware/TokenBridgeApp.d.ts +0 -26
- package/dist/deploy/middleware/TokenBridgeApp.d.ts.map +0 -1
- package/dist/deploy/middleware/TokenBridgeApp.js +0 -115
- package/dist/deploy/middleware/TokenBridgeApp.js.map +0 -1
- package/dist/deploy/middleware/TokenBridgeRouterDeployer.d.ts +0 -33
- package/dist/deploy/middleware/TokenBridgeRouterDeployer.d.ts.map +0 -1
- package/dist/deploy/middleware/TokenBridgeRouterDeployer.js +0 -93
- package/dist/deploy/middleware/TokenBridgeRouterDeployer.js.map +0 -1
- package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.d.ts +0 -17
- package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.d.ts.map +0 -1
- package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.js +0 -42
- package/dist/deploy/middleware/V2CompatibilityMiddlewareDeployer.js.map +0 -1
- package/dist/middleware/accounts.test.d.ts +0 -2
- package/dist/middleware/accounts.test.d.ts.map +0 -1
- package/dist/middleware/accounts.test.js +0 -61
- package/dist/middleware/accounts.test.js.map +0 -1
- package/dist/middleware/queries.test.d.ts +0 -2
- package/dist/middleware/queries.test.d.ts.map +0 -1
- package/dist/middleware/queries.test.js +0 -69
- package/dist/middleware/queries.test.js.map +0 -1
- package/dist/middleware/tokenbridge.hardhat-test.d.ts +0 -2
- package/dist/middleware/tokenbridge.hardhat-test.d.ts.map +0 -1
- package/dist/middleware/tokenbridge.hardhat-test.js +0 -89
- package/dist/middleware/tokenbridge.hardhat-test.js.map +0 -1
- package/dist/tokenBridge.d.ts +0 -10
- package/dist/tokenBridge.d.ts.map +0 -1
- package/dist/tokenBridge.js +0 -9
- package/dist/tokenBridge.js.map +0 -1
|
@@ -1,64 +1,51 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Mailbox, MultisigIsm } from '@hyperlane-xyz/core';
|
|
2
2
|
import type { types } from '@hyperlane-xyz/utils';
|
|
3
3
|
import { ChainName } from '../../types';
|
|
4
4
|
import type { CheckerViolation } from '../types';
|
|
5
|
-
export declare type
|
|
5
|
+
export declare type MultisigIsmConfig = {
|
|
6
6
|
validators: Array<types.Address>;
|
|
7
7
|
threshold: number;
|
|
8
8
|
};
|
|
9
9
|
export declare type CoreConfig = {
|
|
10
|
-
|
|
11
|
-
owner
|
|
10
|
+
multisigIsm: MultisigIsmConfig;
|
|
11
|
+
owner: types.Address;
|
|
12
12
|
remove?: boolean;
|
|
13
13
|
};
|
|
14
14
|
export declare enum CoreViolationType {
|
|
15
|
-
|
|
15
|
+
MultisigIsm = "MultisigIsm",
|
|
16
16
|
Mailbox = "Mailbox",
|
|
17
17
|
ConnectionManager = "ConnectionManager"
|
|
18
18
|
}
|
|
19
|
-
export declare enum
|
|
19
|
+
export declare enum MultisigIsmViolationType {
|
|
20
20
|
EnrolledValidators = "EnrolledValidators",
|
|
21
21
|
Threshold = "Threshold"
|
|
22
22
|
}
|
|
23
|
-
export declare enum ConnectionManagerViolationType {
|
|
24
|
-
EnrolledInboxes = "EnrolledInboxes"
|
|
25
|
-
}
|
|
26
23
|
export declare enum MailboxViolationType {
|
|
27
|
-
|
|
24
|
+
DefaultIsm = "DefaultIsm"
|
|
28
25
|
}
|
|
29
26
|
export interface MailboxViolation extends CheckerViolation {
|
|
30
27
|
type: CoreViolationType.Mailbox;
|
|
31
28
|
contract: Mailbox;
|
|
32
29
|
mailboxType: MailboxViolationType;
|
|
33
30
|
}
|
|
34
|
-
export interface
|
|
31
|
+
export interface MailboxMultisigIsmViolation extends MailboxViolation {
|
|
35
32
|
actual: types.Address;
|
|
36
33
|
expected: types.Address;
|
|
37
34
|
}
|
|
38
|
-
export interface
|
|
39
|
-
type: CoreViolationType.
|
|
40
|
-
contract:
|
|
41
|
-
|
|
35
|
+
export interface MultisigIsmViolation extends CheckerViolation {
|
|
36
|
+
type: CoreViolationType.MultisigIsm;
|
|
37
|
+
contract: MultisigIsm;
|
|
38
|
+
subType: MultisigIsmViolationType;
|
|
42
39
|
remote: ChainName;
|
|
43
40
|
}
|
|
44
|
-
export interface EnrolledValidatorsViolation extends
|
|
45
|
-
|
|
41
|
+
export interface EnrolledValidatorsViolation extends MultisigIsmViolation {
|
|
42
|
+
subType: MultisigIsmViolationType.EnrolledValidators;
|
|
46
43
|
actual: Set<types.Address>;
|
|
47
44
|
expected: Set<types.Address>;
|
|
48
45
|
}
|
|
49
|
-
export interface ThresholdViolation extends
|
|
50
|
-
|
|
46
|
+
export interface ThresholdViolation extends MultisigIsmViolation {
|
|
47
|
+
subType: MultisigIsmViolationType.Threshold;
|
|
51
48
|
actual: number;
|
|
52
49
|
expected: number;
|
|
53
50
|
}
|
|
54
|
-
export interface ConnectionManagerViolation extends CheckerViolation {
|
|
55
|
-
type: CoreViolationType.ConnectionManager;
|
|
56
|
-
contract: AbacusConnectionManager;
|
|
57
|
-
connectionManagerType: ConnectionManagerViolationType;
|
|
58
|
-
}
|
|
59
|
-
export interface EnrolledInboxesViolation extends ConnectionManagerViolation {
|
|
60
|
-
remote: ChainName;
|
|
61
|
-
actual: Set<types.Address>;
|
|
62
|
-
expected: Set<types.Address>;
|
|
63
|
-
}
|
|
64
51
|
//# 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,
|
|
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,23 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MailboxViolationType = exports.
|
|
3
|
+
exports.MailboxViolationType = exports.MultisigIsmViolationType = exports.CoreViolationType = void 0;
|
|
4
4
|
var CoreViolationType;
|
|
5
5
|
(function (CoreViolationType) {
|
|
6
|
-
CoreViolationType["
|
|
6
|
+
CoreViolationType["MultisigIsm"] = "MultisigIsm";
|
|
7
7
|
CoreViolationType["Mailbox"] = "Mailbox";
|
|
8
8
|
CoreViolationType["ConnectionManager"] = "ConnectionManager";
|
|
9
9
|
})(CoreViolationType = exports.CoreViolationType || (exports.CoreViolationType = {}));
|
|
10
|
-
var
|
|
11
|
-
(function (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
})(
|
|
15
|
-
var ConnectionManagerViolationType;
|
|
16
|
-
(function (ConnectionManagerViolationType) {
|
|
17
|
-
ConnectionManagerViolationType["EnrolledInboxes"] = "EnrolledInboxes";
|
|
18
|
-
})(ConnectionManagerViolationType = exports.ConnectionManagerViolationType || (exports.ConnectionManagerViolationType = {}));
|
|
10
|
+
var MultisigIsmViolationType;
|
|
11
|
+
(function (MultisigIsmViolationType) {
|
|
12
|
+
MultisigIsmViolationType["EnrolledValidators"] = "EnrolledValidators";
|
|
13
|
+
MultisigIsmViolationType["Threshold"] = "Threshold";
|
|
14
|
+
})(MultisigIsmViolationType = exports.MultisigIsmViolationType || (exports.MultisigIsmViolationType = {}));
|
|
19
15
|
var MailboxViolationType;
|
|
20
16
|
(function (MailboxViolationType) {
|
|
21
|
-
MailboxViolationType["
|
|
17
|
+
MailboxViolationType["DefaultIsm"] = "DefaultIsm";
|
|
22
18
|
})(MailboxViolationType = exports.MailboxViolationType || (exports.MailboxViolationType = {}));
|
|
23
19
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/deploy/core/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/deploy/core/types.ts"],"names":[],"mappings":";;;AAiBA,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,gDAA2B,CAAA;IAC3B,wCAAmB,CAAA;IACnB,4DAAuC,CAAA;AACzC,CAAC,EAJW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAI5B;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,7 @@ import { HyperlaneApp } from '../../HyperlaneApp';
|
|
|
2
2
|
import { LiquidityLayerContracts } from '../../middleware';
|
|
3
3
|
import { MultiProvider } from '../../providers/MultiProvider';
|
|
4
4
|
import { ChainMap, ChainName } from '../../types';
|
|
5
|
-
import { BridgeAdapterConfig } from './LiquidityLayerRouterDeployer';
|
|
5
|
+
import { BridgeAdapterConfig, CircleBridgeAdapterConfig } from './LiquidityLayerRouterDeployer';
|
|
6
6
|
interface CircleBridgeMessage<Chain> {
|
|
7
7
|
chain: Chain;
|
|
8
8
|
remoteChain: Chain;
|
|
@@ -12,22 +12,14 @@ interface CircleBridgeMessage<Chain> {
|
|
|
12
12
|
domain: number;
|
|
13
13
|
nonceHash: string;
|
|
14
14
|
}
|
|
15
|
-
interface PortalBridgeMessage<Chain> {
|
|
16
|
-
origin: Chain;
|
|
17
|
-
nonce: number;
|
|
18
|
-
portalSequence: number;
|
|
19
|
-
destination: Chain;
|
|
20
|
-
}
|
|
21
15
|
export declare class LiquidityLayerApp<Chain extends ChainName = ChainName> extends HyperlaneApp<LiquidityLayerContracts, Chain> {
|
|
22
16
|
readonly contractsMap: ChainMap<Chain, LiquidityLayerContracts>;
|
|
23
17
|
readonly multiProvider: MultiProvider<Chain>;
|
|
24
|
-
readonly
|
|
25
|
-
constructor(contractsMap: ChainMap<Chain, LiquidityLayerContracts>, multiProvider: MultiProvider<Chain>,
|
|
18
|
+
readonly bridgeAdapterConfigs: ChainMap<Chain, BridgeAdapterConfig[]>;
|
|
19
|
+
constructor(contractsMap: ChainMap<Chain, LiquidityLayerContracts>, multiProvider: MultiProvider<Chain>, bridgeAdapterConfigs: ChainMap<Chain, BridgeAdapterConfig[]>);
|
|
20
|
+
circleBridgeAdapterConfig(): ChainMap<Chain, CircleBridgeAdapterConfig>;
|
|
26
21
|
fetchCircleMessageTransactions(chain: Chain): Promise<string[]>;
|
|
27
|
-
fetchPortalBridgeTransactions(chain: Chain): Promise<string[]>;
|
|
28
|
-
parsePortalMessages(chain: Chain, txHash: string): Promise<PortalBridgeMessage<Chain>[]>;
|
|
29
22
|
parseCircleMessages(chain: Chain, txHash: string): Promise<CircleBridgeMessage<Chain>[]>;
|
|
30
|
-
attemptPortalTransferCompletion(message: PortalBridgeMessage<Chain>): Promise<void>;
|
|
31
23
|
attemptCircleAttestationSubmission(message: CircleBridgeMessage<Chain>): Promise<void>;
|
|
32
24
|
}
|
|
33
25
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiquidityLayerApp.d.ts","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerApp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiquidityLayerApp.d.ts","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerApp.ts"],"names":[],"mappings":"AASA,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;AAGlD,OAAO,EACL,mBAAmB,EAEnB,yBAAyB,EAC1B,MAAM,gCAAgC,CAAC;AAUxC,UAAU,mBAAmB,CAAC,KAAK;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,KAAK,CAAC;IACnB,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;AACD,qBAAa,iBAAiB,CAC5B,KAAK,SAAS,SAAS,GAAG,SAAS,CACnC,SAAQ,YAAY,CAAC,uBAAuB,EAAE,KAAK,CAAC;aAElC,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;aACtD,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC;aACnC,oBAAoB,EAAE,QAAQ,CAC5C,KAAK,EACL,mBAAmB,EAAE,CACtB;gBALe,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC,EACtD,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,oBAAoB,EAAE,QAAQ,CAC5C,KAAK,EACL,mBAAmB,EAAE,CACtB;IAKH,yBAAyB,IAAI,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAUjE,8BAA8B,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAc/D,mBAAmB,CACvB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;IAyClC,kCAAkC,CACtC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC;CAuCjB"}
|
|
@@ -16,25 +16,22 @@ exports.LiquidityLayerApp = void 0;
|
|
|
16
16
|
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
17
17
|
const ethers_1 = require("ethers");
|
|
18
18
|
const core_1 = require("@hyperlane-xyz/core");
|
|
19
|
-
const utils_1 = require("@hyperlane-xyz/utils");
|
|
20
19
|
const HyperlaneApp_1 = require("../../HyperlaneApp");
|
|
21
20
|
const chains_1 = require("../../consts/chains");
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
const CIRCLE_REDEPLOYMENT_DATE = new Date(2022, 12, 22);
|
|
26
|
-
const PORTAL_VAA_SERVICE_SUCCESS_CODE = 5;
|
|
27
|
-
const CircleBridgeInterface = core_1.ITokenMessenger__factory.createInterface();
|
|
21
|
+
const objects_1 = require("../../utils/objects");
|
|
22
|
+
const LiquidityLayerRouterDeployer_1 = require("./LiquidityLayerRouterDeployer");
|
|
23
|
+
const CircleBridgeInterface = core_1.ICircleBridge__factory.createInterface();
|
|
28
24
|
const CircleBridgeAdapterInterface = core_1.CircleBridgeAdapter__factory.createInterface();
|
|
29
|
-
const PortalAdapterInterface = core_1.PortalAdapter__factory.createInterface();
|
|
30
25
|
const BridgedTokenTopic = CircleBridgeAdapterInterface.getEventTopic(CircleBridgeAdapterInterface.getEvent('BridgedToken'));
|
|
31
|
-
const PortalBridgedTokenTopic = PortalAdapterInterface.getEventTopic(PortalAdapterInterface.getEvent('BridgedToken'));
|
|
32
26
|
class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
33
|
-
constructor(contractsMap, multiProvider,
|
|
27
|
+
constructor(contractsMap, multiProvider, bridgeAdapterConfigs) {
|
|
34
28
|
super(contractsMap, multiProvider);
|
|
35
29
|
this.contractsMap = contractsMap;
|
|
36
30
|
this.multiProvider = multiProvider;
|
|
37
|
-
this.
|
|
31
|
+
this.bridgeAdapterConfigs = bridgeAdapterConfigs;
|
|
32
|
+
}
|
|
33
|
+
circleBridgeAdapterConfig() {
|
|
34
|
+
return (0, objects_1.objMap)(this.bridgeAdapterConfigs, (_chain, config) => config.find((_) => _.type === LiquidityLayerRouterDeployer_1.BridgeAdapterType.Circle));
|
|
38
35
|
}
|
|
39
36
|
fetchCircleMessageTransactions(chain) {
|
|
40
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -50,56 +47,10 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
50
47
|
return response.result.map((_) => _.transactionHash).flat();
|
|
51
48
|
});
|
|
52
49
|
}
|
|
53
|
-
fetchPortalBridgeTransactions(chain) {
|
|
54
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
const cc = this.multiProvider.getChainConnection(chain);
|
|
56
|
-
const params = new URLSearchParams({
|
|
57
|
-
module: 'logs',
|
|
58
|
-
action: 'getLogs',
|
|
59
|
-
address: this.getContracts(chain).portalAdapter.address,
|
|
60
|
-
topic0: PortalBridgedTokenTopic,
|
|
61
|
-
});
|
|
62
|
-
const req = yield (0, cross_fetch_1.default)(`${cc.getApiUrl()}?${params}`);
|
|
63
|
-
const response = yield req.json();
|
|
64
|
-
return response.result.map((_) => _.transactionHash).flat();
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
parsePortalMessages(chain, txHash) {
|
|
68
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
const connection = this.multiProvider.getChainConnection(chain);
|
|
70
|
-
const receipt = yield connection.provider.getTransactionReceipt(txHash);
|
|
71
|
-
const matchingLogs = receipt.logs
|
|
72
|
-
.map((_) => {
|
|
73
|
-
try {
|
|
74
|
-
return [PortalAdapterInterface.parseLog(_)];
|
|
75
|
-
}
|
|
76
|
-
catch (_a) {
|
|
77
|
-
return [];
|
|
78
|
-
}
|
|
79
|
-
})
|
|
80
|
-
.flat();
|
|
81
|
-
if (matchingLogs.length == 0)
|
|
82
|
-
return [];
|
|
83
|
-
const event = matchingLogs.find((_) => _.name === 'BridgedToken');
|
|
84
|
-
const portalSequence = event.args.portalSequence.toNumber();
|
|
85
|
-
const nonce = event.args.nonce.toNumber();
|
|
86
|
-
const destination = domains_1.DomainIdToChainName[event.args.destination];
|
|
87
|
-
return [
|
|
88
|
-
{ origin: chain, nonce, portalSequence, destination },
|
|
89
|
-
];
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
50
|
parseCircleMessages(chain, txHash) {
|
|
93
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
52
|
const connection = this.multiProvider.getChainConnection(chain);
|
|
95
53
|
const receipt = yield connection.provider.getTransactionReceipt(txHash);
|
|
96
|
-
const block = yield connection.provider.getBlock(receipt.blockHash);
|
|
97
|
-
if (new Date(block.timestamp * 1000) < CIRCLE_REDEPLOYMENT_DATE) {
|
|
98
|
-
// Nonces are not persisted across
|
|
99
|
-
// return []
|
|
100
|
-
console.log('');
|
|
101
|
-
}
|
|
102
|
-
console.log(new Date(block.timestamp * 1000));
|
|
103
54
|
const matchingLogs = receipt.logs
|
|
104
55
|
.map((_) => {
|
|
105
56
|
try {
|
|
@@ -121,8 +72,7 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
121
72
|
.message;
|
|
122
73
|
const nonce = matchingLogs.find((_) => _.name === 'BridgedToken').args
|
|
123
74
|
.nonce;
|
|
124
|
-
const remoteChain = chain === chains_1.Chains.fuji ? chains_1.Chains.goerli : chains_1.Chains.fuji;
|
|
125
|
-
const domain = this.config[chain].circle.circleDomainMapping.find((_) => _.hyperlaneDomain === domains_1.ChainNameToDomainId[chain]).circleDomain;
|
|
75
|
+
const remoteChain = message.chain === chains_1.Chains.fuji ? chains_1.Chains.goerli : chains_1.Chains.fuji;
|
|
126
76
|
return [
|
|
127
77
|
{
|
|
128
78
|
chain,
|
|
@@ -131,52 +81,29 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
131
81
|
txHash,
|
|
132
82
|
message,
|
|
133
83
|
nonce,
|
|
134
|
-
domain,
|
|
135
|
-
nonceHash: ethers_1.ethers.utils.solidityKeccak256(['uint32', 'uint256'], [
|
|
84
|
+
domain: 0,
|
|
85
|
+
nonceHash: ethers_1.ethers.utils.solidityKeccak256(['uint32', 'uint256'], [0, nonce]),
|
|
136
86
|
},
|
|
137
87
|
];
|
|
138
88
|
});
|
|
139
89
|
}
|
|
140
|
-
attemptPortalTransferCompletion(message) {
|
|
141
|
-
var _a;
|
|
142
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
143
|
-
const destinationPortalAdapter = this.getContracts(message.destination)
|
|
144
|
-
.portalAdapter;
|
|
145
|
-
const transferId = yield destinationPortalAdapter.transferId(domains_1.ChainNameToDomainId[message.origin], message.nonce);
|
|
146
|
-
const transferTokenAddress = yield destinationPortalAdapter.portalTransfersProcessed(transferId);
|
|
147
|
-
if (!utils_1.utils.eqAddress(transferTokenAddress, ethers_1.ethers.constants.AddressZero)) {
|
|
148
|
-
console.log(`Transfer with nonce ${message.nonce} from ${message.origin} to ${message.destination} already processed`);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
const wormholeOriginDomain = (_a = this.config[message.destination].portal.wormholeDomainMapping.find((_) => _.hyperlaneDomain === domains_1.ChainNameToDomainId[message.origin])) === null || _a === void 0 ? void 0 : _a.wormholeDomain;
|
|
152
|
-
const emitter = utils_1.utils.strip0x(utils_1.utils.addressToBytes32(this.config[message.origin].portal.portalBridgeAddress));
|
|
153
|
-
const vaa = yield (0, cross_fetch_1.default)(`${PORTAL_VAA_SERVICE_TESTNET_BASE_URL}${wormholeOriginDomain}/${emitter}/${message.portalSequence}`).then((_) => _.json());
|
|
154
|
-
if (vaa.code && vaa.code === PORTAL_VAA_SERVICE_SUCCESS_CODE) {
|
|
155
|
-
console.log(`VAA not yet found for nonce ${message.nonce}`);
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
const connection = this.multiProvider.getChainConnection(message.destination);
|
|
159
|
-
console.debug(`Complete portal transfer for nonce ${message.nonce} on ${message.destination}`);
|
|
160
|
-
yield connection.handleTx(destinationPortalAdapter.completeTransfer(utils_1.utils.ensure0x(Buffer.from(vaa.vaaBytes, 'base64').toString('hex'))));
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
90
|
attemptCircleAttestationSubmission(message) {
|
|
164
91
|
return __awaiter(this, void 0, void 0, function* () {
|
|
165
92
|
const connection = this.multiProvider.getChainConnection(message.remoteChain);
|
|
166
|
-
const transmitter = core_1.ICircleMessageTransmitter__factory.connect(this.
|
|
93
|
+
const transmitter = core_1.ICircleMessageTransmitter__factory.connect(this.circleBridgeAdapterConfig()[message.remoteChain]
|
|
94
|
+
.messageTransmitterAddress, connection.signer);
|
|
167
95
|
const alreadyProcessed = yield transmitter.usedNonces(message.nonceHash);
|
|
168
96
|
if (alreadyProcessed) {
|
|
169
97
|
console.log(`Message sent on ${message.txHash} was already processed`);
|
|
170
98
|
return;
|
|
171
99
|
}
|
|
172
100
|
const messageHash = ethers_1.ethers.utils.keccak256(message.message);
|
|
173
|
-
const attestationsB = yield (0, cross_fetch_1.default)(
|
|
101
|
+
const attestationsB = yield (0, cross_fetch_1.default)(`https://iris-api-sandbox.circle.com/attestations/${messageHash}`);
|
|
174
102
|
const attestations = yield attestationsB.json();
|
|
175
103
|
if (attestations.status !== 'complete') {
|
|
176
104
|
console.log(`Attestations not available for message nonce ${message.nonce} on ${message.txHash}`);
|
|
177
105
|
return;
|
|
178
106
|
}
|
|
179
|
-
console.log(message, attestations, this.config[message.remoteChain].circle.messageTransmitterAddress);
|
|
180
107
|
console.log(`Ready to submit attestations for message ${message.nonce}`);
|
|
181
108
|
const tx = yield transmitter.receiveMessage(message.message, attestations.attestation);
|
|
182
109
|
console.log(`Submitted attestations in ${yield connection.getTxUrl(tx)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiquidityLayerApp.js","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerApp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8DAAgC;AAChC,mCAAgC;AAEhC,
|
|
1
|
+
{"version":3,"file":"LiquidityLayerApp.js","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerApp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { CircleBridgeAdapter, LiquidityLayerRouter
|
|
1
|
+
import { CircleBridgeAdapter, LiquidityLayerRouter } from '@hyperlane-xyz/core';
|
|
2
2
|
import { HyperlaneCore } from '../../core/HyperlaneCore';
|
|
3
3
|
import { LiquidityLayerContracts, LiquidityLayerFactories } from '../../middleware';
|
|
4
4
|
import { MultiProvider } from '../../providers/MultiProvider';
|
|
5
5
|
import { ChainMap, ChainName } from '../../types';
|
|
6
|
-
import { HyperlaneRouterDeployer } from '../router/HyperlaneRouterDeployer';
|
|
7
6
|
import { RouterConfig } from '../router/types';
|
|
7
|
+
import { MiddlewareRouterDeployer } from './deploy';
|
|
8
8
|
export declare enum BridgeAdapterType {
|
|
9
|
-
Circle = "Circle"
|
|
10
|
-
Portal = "Portal"
|
|
9
|
+
Circle = "Circle"
|
|
11
10
|
}
|
|
12
11
|
export interface CircleBridgeAdapterConfig {
|
|
13
12
|
type: BridgeAdapterType.Circle;
|
|
14
|
-
|
|
13
|
+
circleBridgeAddress: string;
|
|
15
14
|
messageTransmitterAddress: string;
|
|
16
15
|
usdcAddress: string;
|
|
17
16
|
circleDomainMapping: {
|
|
@@ -19,26 +18,16 @@ export interface CircleBridgeAdapterConfig {
|
|
|
19
18
|
circleDomain: number;
|
|
20
19
|
}[];
|
|
21
20
|
}
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
wormholeDomainMapping: {
|
|
26
|
-
hyperlaneDomain: number;
|
|
27
|
-
wormholeDomain: number;
|
|
28
|
-
}[];
|
|
29
|
-
}
|
|
30
|
-
export declare type BridgeAdapterConfig = {
|
|
31
|
-
circle?: CircleBridgeAdapterConfig;
|
|
32
|
-
portal?: PortalAdapterConfig;
|
|
21
|
+
export declare type BridgeAdapterConfig = CircleBridgeAdapterConfig;
|
|
22
|
+
export declare type LiquidityLayerConfig = RouterConfig & {
|
|
23
|
+
bridgeAdapterConfigs: BridgeAdapterConfig[];
|
|
33
24
|
};
|
|
34
|
-
export declare
|
|
35
|
-
export declare class LiquidityLayerDeployer<Chain extends ChainName> extends HyperlaneRouterDeployer<Chain, LiquidityLayerConfig, LiquidityLayerContracts, LiquidityLayerFactories> {
|
|
25
|
+
export declare class LiquidityLayerDeployer<Chain extends ChainName> extends MiddlewareRouterDeployer<Chain, LiquidityLayerConfig, LiquidityLayerContracts, LiquidityLayerFactories> {
|
|
36
26
|
protected core: HyperlaneCore<Chain>;
|
|
37
27
|
protected create2salt: string;
|
|
38
28
|
constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, LiquidityLayerConfig>, core: HyperlaneCore<Chain>, create2salt?: string);
|
|
39
29
|
enrollRemoteRouters(contractsMap: ChainMap<Chain, LiquidityLayerContracts>): Promise<void>;
|
|
40
30
|
deployContracts(chain: Chain, config: LiquidityLayerConfig): Promise<LiquidityLayerContracts>;
|
|
41
|
-
deployPortalAdapter(chain: Chain, adapterConfig: PortalAdapterConfig, owner: string, router: LiquidityLayerRouter): Promise<PortalAdapter>;
|
|
42
31
|
deployCircleBridgeAdapter(chain: Chain, adapterConfig: CircleBridgeAdapterConfig, owner: string, router: LiquidityLayerRouter): Promise<CircleBridgeAdapter>;
|
|
43
32
|
}
|
|
44
33
|
//# sourceMappingURL=LiquidityLayerRouterDeployer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiquidityLayerRouterDeployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerRouterDeployer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiquidityLayerRouterDeployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerRouterDeployer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,EAEnB,oBAAoB,EAErB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,oBAAY,iBAAiB;IAC3B,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yBAAyB,EAAE,MAAM,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,EAAE,CAAC;CACL;AAED,oBAAY,mBAAmB,GAAG,yBAAyB,CAAC;AAE5D,oBAAY,oBAAoB,GAAG,YAAY,GAAG;IAChD,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;CAC7C,CAAC;AAEF,qBAAa,sBAAsB,CACjC,KAAK,SAAS,SAAS,CACvB,SAAQ,wBAAwB,CAChC,KAAK,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,CACxB;IAIG,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;IACpC,SAAS,CAAC,WAAW;gBAHrB,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC,EACtC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAC1B,WAAW,SAA+B;IAKhD,mBAAmB,CACvB,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC,GACrD,OAAO,CAAC,IAAI,CAAC;IAcV,eAAe,CACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,uBAAuB,CAAC;IA8B7B,yBAAyB,CAC7B,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,yBAAyB,EACxC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,mBAAmB,CAAC;CA2DhC"}
|
|
@@ -10,18 +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.LiquidityLayerDeployer = exports.BridgeAdapterType = void 0;
|
|
13
|
+
const ethers_1 = require("ethers");
|
|
13
14
|
const core_1 = require("@hyperlane-xyz/core");
|
|
14
|
-
const utils_1 = require("@hyperlane-xyz/utils");
|
|
15
|
-
const domains_1 = require("../../domains");
|
|
16
15
|
const middleware_1 = require("../../middleware");
|
|
17
16
|
const objects_1 = require("../../utils/objects");
|
|
18
|
-
const
|
|
17
|
+
const deploy_1 = require("./deploy");
|
|
19
18
|
var BridgeAdapterType;
|
|
20
19
|
(function (BridgeAdapterType) {
|
|
21
20
|
BridgeAdapterType["Circle"] = "Circle";
|
|
22
|
-
BridgeAdapterType["Portal"] = "Portal";
|
|
23
21
|
})(BridgeAdapterType = exports.BridgeAdapterType || (exports.BridgeAdapterType = {}));
|
|
24
|
-
class LiquidityLayerDeployer extends
|
|
22
|
+
class LiquidityLayerDeployer extends deploy_1.MiddlewareRouterDeployer {
|
|
25
23
|
constructor(multiProvider, configMap, core, create2salt = 'LiquidityLayerDeployerSalt') {
|
|
26
24
|
super(multiProvider, configMap, middleware_1.liquidityLayerFactories, {});
|
|
27
25
|
this.core = core;
|
|
@@ -32,70 +30,39 @@ class LiquidityLayerDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDe
|
|
|
32
30
|
enrollRemoteRouters: { get: () => super.enrollRemoteRouters }
|
|
33
31
|
});
|
|
34
32
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
|
|
33
|
+
// Enroll the LiquidityLayerRouter with each other
|
|
36
34
|
yield _super.enrollRemoteRouters.call(this, contractsMap);
|
|
37
|
-
|
|
38
|
-
yield _super.enrollRemoteRouters.call(this, (0, objects_1.
|
|
35
|
+
// Enroll the circle adapters with each other
|
|
36
|
+
yield _super.enrollRemoteRouters.call(this, (0, objects_1.objMap)(contractsMap, (_chain, contracts) => ({
|
|
39
37
|
router: contracts.circleBridgeAdapter,
|
|
40
|
-
}))
|
|
41
|
-
this.logger(`Enroll PortalAdapters with each other`);
|
|
42
|
-
yield _super.enrollRemoteRouters.call(this, (0, objects_1.objFilter)((0, objects_1.objMap)(contractsMap, (_chain, contracts) => ({
|
|
43
|
-
router: contracts.portalAdapter,
|
|
44
|
-
})), (_) => !!_.router));
|
|
38
|
+
})));
|
|
45
39
|
});
|
|
46
40
|
}
|
|
47
41
|
// Custom contract deployment logic can go here
|
|
48
42
|
// If no custom logic is needed, call deployContract for the router
|
|
49
43
|
deployContracts(chain, config) {
|
|
50
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
const initCalldata =
|
|
45
|
+
const initCalldata = this.getInitArgs(config, core_1.LiquidityLayerRouter__factory.createInterface());
|
|
52
46
|
const router = yield this.deployContract(chain, 'router', [], {
|
|
53
47
|
create2Salt: this.create2salt,
|
|
54
48
|
initCalldata,
|
|
55
49
|
});
|
|
56
50
|
const bridgeAdapters = {};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
for (const adapterConfig of config.bridgeAdapterConfigs) {
|
|
52
|
+
if (adapterConfig.type === BridgeAdapterType.Circle) {
|
|
53
|
+
bridgeAdapters.circleBridgeAdapter =
|
|
54
|
+
yield this.deployCircleBridgeAdapter(chain, adapterConfig, config.owner, router);
|
|
55
|
+
}
|
|
62
56
|
}
|
|
63
57
|
return Object.assign(Object.assign({}, bridgeAdapters), { router });
|
|
64
58
|
});
|
|
65
59
|
}
|
|
66
|
-
deployPortalAdapter(chain, adapterConfig, owner, router) {
|
|
67
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
-
const cc = this.multiProvider.getChainConnection(chain);
|
|
69
|
-
const initCalldata = core_1.PortalAdapter__factory.createInterface().encodeFunctionData('initialize', [
|
|
70
|
-
domains_1.ChainNameToDomainId[chain],
|
|
71
|
-
owner,
|
|
72
|
-
adapterConfig.portalBridgeAddress,
|
|
73
|
-
router.address,
|
|
74
|
-
]);
|
|
75
|
-
const portalAdapter = yield this.deployContract(chain, 'portalAdapter', [], {
|
|
76
|
-
create2Salt: this.create2salt,
|
|
77
|
-
initCalldata,
|
|
78
|
-
});
|
|
79
|
-
for (const { wormholeDomain, hyperlaneDomain, } of adapterConfig.wormholeDomainMapping) {
|
|
80
|
-
const expectedCircleDomain = yield portalAdapter.hyperlaneDomainToWormholeDomain(hyperlaneDomain);
|
|
81
|
-
if (expectedCircleDomain === wormholeDomain)
|
|
82
|
-
continue;
|
|
83
|
-
this.logger(`Set wormhole domain ${wormholeDomain} for hyperlane domain ${hyperlaneDomain}`);
|
|
84
|
-
yield cc.handleTx(portalAdapter.addDomain(hyperlaneDomain, wormholeDomain));
|
|
85
|
-
}
|
|
86
|
-
if (!utils_1.utils.eqAddress(yield router.liquidityLayerAdapters('Portal'), portalAdapter.address)) {
|
|
87
|
-
this.logger('Set Portal as LiquidityLayerAdapter on Router');
|
|
88
|
-
yield cc.handleTx(router.setLiquidityLayerAdapter(adapterConfig.type, portalAdapter.address));
|
|
89
|
-
}
|
|
90
|
-
return portalAdapter;
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
60
|
deployCircleBridgeAdapter(chain, adapterConfig, owner, router) {
|
|
94
61
|
return __awaiter(this, void 0, void 0, function* () {
|
|
95
62
|
const cc = this.multiProvider.getChainConnection(chain);
|
|
96
63
|
const initCalldata = core_1.CircleBridgeAdapter__factory.createInterface().encodeFunctionData('initialize', [
|
|
97
64
|
owner,
|
|
98
|
-
adapterConfig.
|
|
65
|
+
adapterConfig.circleBridgeAddress,
|
|
99
66
|
adapterConfig.messageTransmitterAddress,
|
|
100
67
|
router.address,
|
|
101
68
|
]);
|
|
@@ -103,7 +70,8 @@ class LiquidityLayerDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDe
|
|
|
103
70
|
create2Salt: this.create2salt,
|
|
104
71
|
initCalldata,
|
|
105
72
|
});
|
|
106
|
-
if (
|
|
73
|
+
if ((yield circleBridgeAdapter.tokenSymbolToAddress('USDC')) ===
|
|
74
|
+
ethers_1.ethers.constants.AddressZero) {
|
|
107
75
|
this.logger(`Set USDC token contract`);
|
|
108
76
|
yield cc.handleTx(circleBridgeAdapter.addToken(adapterConfig.usdcAddress, 'USDC'));
|
|
109
77
|
}
|
|
@@ -115,10 +83,8 @@ class LiquidityLayerDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDe
|
|
|
115
83
|
this.logger(`Set circle domain ${circleDomain} for hyperlane domain ${hyperlaneDomain}`);
|
|
116
84
|
yield cc.handleTx(circleBridgeAdapter.addDomain(hyperlaneDomain, circleDomain));
|
|
117
85
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
yield cc.handleTx(router.setLiquidityLayerAdapter(adapterConfig.type, circleBridgeAdapter.address));
|
|
121
|
-
}
|
|
86
|
+
this.logger('Set CircleLiquidityLayerAdapter on Router');
|
|
87
|
+
yield cc.handleTx(router.setLiquidityLayerAdapter(adapterConfig.type, circleBridgeAdapter.address));
|
|
122
88
|
return circleBridgeAdapter;
|
|
123
89
|
});
|
|
124
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiquidityLayerRouterDeployer.js","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerRouterDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"LiquidityLayerRouterDeployer.js","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerRouterDeployer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAEhC,8CAK6B;AAG7B,iDAI0B;AAG1B,iDAA6C;AAG7C,qCAAoD;AAEpD,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;AACnB,CAAC,EAFW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAE5B;AAmBD,MAAa,sBAEX,SAAQ,iCAKT;IACC,YACE,aAAmC,EACnC,SAAgD,EACtC,IAA0B,EAC1B,cAAc,4BAA4B;QAEpD,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,oCAAuB,EAAE,EAAE,CAAC,CAAC;QAHnD,SAAI,GAAJ,IAAI,CAAsB;QAC1B,gBAAW,GAAX,WAAW,CAA+B;IAGtD,CAAC;IAEK,mBAAmB,CACvB,YAAsD;;;;;YAEtD,kDAAkD;YAClD,MAAM,OAAM,mBAAmB,YAAC,YAAY,CAAC,CAAC;YAE9C,6CAA6C;YAC7C,MAAM,OAAM,mBAAmB,YAC7B,IAAA,gBAAM,EAAC,YAAY,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;gBAC3C,MAAM,EAAE,SAAS,CAAC,mBAAoB;aACvC,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;KAAA;IAED,+CAA+C;IAC/C,mEAAmE;IAC7D,eAAe,CACnB,KAAY,EACZ,MAA4B;;YAE5B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CACnC,MAAM,EACN,oCAA6B,CAAC,eAAe,EAAE,CAChD,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC5D,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY;aACb,CAAC,CAAC;YAEH,MAAM,cAAc,GAAqC,EAAE,CAAC;YAE5D,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,oBAAoB,EAAE;gBACvD,IAAI,aAAa,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,EAAE;oBACnD,cAAc,CAAC,mBAAmB;wBAChC,MAAM,IAAI,CAAC,yBAAyB,CAClC,KAAK,EACL,aAAa,EACb,MAAM,CAAC,KAAK,EACZ,MAAM,CACP,CAAC;iBACL;aACF;YAED,uCACK,cAAc,KACjB,MAAM,IACN;QACJ,CAAC;KAAA;IAEK,yBAAyB,CAC7B,KAAY,EACZ,aAAwC,EACxC,KAAa,EACb,MAA4B;;YAE5B,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACxD,MAAM,YAAY,GAChB,mCAA4B,CAAC,eAAe,EAAE,CAAC,kBAAkB,CAC/D,YAAY,EACZ;gBACE,KAAK;gBACL,aAAa,CAAC,mBAAmB;gBACjC,aAAa,CAAC,yBAAyB;gBACvC,MAAM,CAAC,OAAO;aACf,CACF,CAAC;YACJ,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,cAAc,CACnD,KAAK,EACL,qBAAqB,EACrB,EAAE,EACF;gBACE,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY;aACb,CACF,CAAC;YAEF,IACE,CAAC,MAAM,mBAAmB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACxD,eAAM,CAAC,SAAS,CAAC,WAAW,EAC5B;gBACA,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBACvC,MAAM,EAAE,CAAC,QAAQ,CACf,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAChE,CAAC;aACH;YACD,sBAAsB;YACtB,KAAK,MAAM,EACT,YAAY,EACZ,eAAe,GAChB,IAAI,aAAa,CAAC,mBAAmB,EAAE;gBACtC,MAAM,oBAAoB,GACxB,MAAM,mBAAmB,CAAC,6BAA6B,CACrD,eAAe,CAChB,CAAC;gBACJ,IAAI,oBAAoB,KAAK,YAAY;oBAAE,SAAS;gBAEpD,IAAI,CAAC,MAAM,CACT,qBAAqB,YAAY,yBAAyB,eAAe,EAAE,CAC5E,CAAC;gBACF,MAAM,EAAE,CAAC,QAAQ,CACf,mBAAmB,CAAC,SAAS,CAAC,eAAe,EAAE,YAAY,CAAC,CAC7D,CAAC;aACH;YAED,IAAI,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC;YACzD,MAAM,EAAE,CAAC,QAAQ,CACf,MAAM,CAAC,wBAAwB,CAC7B,aAAa,CAAC,IAAI,EAClB,mBAAmB,CAAC,OAAO,CAC5B,CACF,CAAC;YACF,OAAO,mBAAmB,CAAC;QAC7B,CAAC;KAAA;CACF;AAlID,wDAkIC"}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
+
import { RouterInterface } from '@hyperlane-xyz/core/dist/contracts/Router';
|
|
1
2
|
import { HyperlaneCore } from '../../core/HyperlaneCore';
|
|
2
3
|
import { InterchainAccountContracts, InterchainAccountFactories, InterchainQueryContracts, InterchainQueryFactories } from '../../middleware';
|
|
3
4
|
import { MultiProvider } from '../../providers/MultiProvider';
|
|
5
|
+
import { RouterContracts, RouterFactories } from '../../router';
|
|
4
6
|
import { ChainMap, ChainName } from '../../types';
|
|
5
7
|
import { HyperlaneRouterDeployer } from '../router/HyperlaneRouterDeployer';
|
|
6
8
|
import { RouterConfig } from '../router/types';
|
|
7
9
|
export declare type InterchainAccountConfig = RouterConfig;
|
|
8
|
-
export declare class
|
|
10
|
+
export declare abstract class MiddlewareRouterDeployer<Chain extends ChainName, MiddlewareRouterConfig extends RouterConfig, MiddlewareRouterContracts extends RouterContracts, MiddlewareFactories extends RouterFactories> extends HyperlaneRouterDeployer<Chain, MiddlewareRouterConfig, MiddlewareRouterContracts, MiddlewareFactories> {
|
|
11
|
+
getInitArgs(config: MiddlewareRouterConfig, routerInterface: RouterInterface): string;
|
|
12
|
+
}
|
|
13
|
+
export declare class InterchainAccountDeployer<Chain extends ChainName> extends MiddlewareRouterDeployer<Chain, InterchainAccountConfig, InterchainAccountContracts, InterchainAccountFactories> {
|
|
9
14
|
protected core: HyperlaneCore<Chain>;
|
|
10
15
|
protected create2salt: string;
|
|
11
16
|
constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, InterchainAccountConfig>, core: HyperlaneCore<Chain>, create2salt?: string);
|
|
12
17
|
deployContracts(chain: Chain, config: InterchainAccountConfig): Promise<InterchainAccountContracts>;
|
|
13
18
|
}
|
|
14
19
|
export declare type InterchainQueryConfig = RouterConfig;
|
|
15
|
-
export declare class InterchainQueryDeployer<Chain extends ChainName> extends
|
|
20
|
+
export declare class InterchainQueryDeployer<Chain extends ChainName> extends MiddlewareRouterDeployer<Chain, InterchainQueryConfig, InterchainQueryContracts, InterchainQueryFactories> {
|
|
16
21
|
protected core: HyperlaneCore<Chain>;
|
|
17
22
|
protected create2salt: string;
|
|
18
23
|
constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, InterchainQueryConfig>, core: HyperlaneCore<Chain>, create2salt?: string);
|