@hyperlane-xyz/sdk 0.5.5 → 1.0.0-beta1
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 +0 -2
- package/dist/consts/chainConnectionConfigs.d.ts.map +1 -1
- package/dist/consts/chainConnectionConfigs.js +4 -16
- package/dist/consts/chainConnectionConfigs.js.map +1 -1
- package/dist/consts/chainMetadata.d.ts +1 -2
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +13 -18
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +2 -4
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +0 -2
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +177 -1221
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/index.js +4 -10
- package/dist/consts/environments/index.js.map +1 -1
- package/dist/consts/environments/mainnet.json +56 -600
- package/dist/consts/environments/test.json +27 -96
- package/dist/consts/environments/testnet2.json +66 -610
- package/dist/consts/environments/testnet3.json +114 -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 +182 -1232
- package/dist/core/HyperlaneCore.d.ts.map +1 -1
- package/dist/core/HyperlaneCore.js +20 -30
- package/dist/core/HyperlaneCore.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 +5 -5
- package/dist/core/TestCoreDeployer.d.ts.map +1 -1
- package/dist/core/TestCoreDeployer.js +12 -44
- 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 +65 -40
- 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 +16 -19
- package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/deploy/core/HyperlaneCoreDeployer.js +50 -71
- package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/deploy/core/types.d.ts +15 -28
- 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 +13 -78
- package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +5 -16
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +19 -49
- package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/deploy/middleware/deploy.d.ts.map +1 -1
- package/dist/deploy/middleware/deploy.js +10 -2
- 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 +0 -1
- package/dist/deploy/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/deploy/router/HyperlaneRouterChecker.js +0 -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 +25 -18
- 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/gas/calculator.d.ts.map +1 -1
- package/dist/gas/calculator.js +10 -5
- 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 +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- 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 -3
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +0 -1
- package/dist/middleware.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/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 +3 -3
- 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/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 +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,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,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,24 +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 CIRCLE_ATTESTATIONS_BASE_URL = 'https://iris-api-sandbox.circle.com/attestations/';
|
|
25
|
-
const PORTAL_VAA_SERVICE_SUCCESS_CODE = 5;
|
|
21
|
+
const objects_1 = require("../../utils/objects");
|
|
22
|
+
const LiquidityLayerRouterDeployer_1 = require("./LiquidityLayerRouterDeployer");
|
|
26
23
|
const CircleBridgeInterface = core_1.ICircleBridge__factory.createInterface();
|
|
27
24
|
const CircleBridgeAdapterInterface = core_1.CircleBridgeAdapter__factory.createInterface();
|
|
28
|
-
const PortalAdapterInterface = core_1.PortalAdapter__factory.createInterface();
|
|
29
25
|
const BridgedTokenTopic = CircleBridgeAdapterInterface.getEventTopic(CircleBridgeAdapterInterface.getEvent('BridgedToken'));
|
|
30
|
-
const PortalBridgedTokenTopic = PortalAdapterInterface.getEventTopic(PortalAdapterInterface.getEvent('BridgedToken'));
|
|
31
26
|
class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
32
|
-
constructor(contractsMap, multiProvider,
|
|
27
|
+
constructor(contractsMap, multiProvider, bridgeAdapterConfigs) {
|
|
33
28
|
super(contractsMap, multiProvider);
|
|
34
29
|
this.contractsMap = contractsMap;
|
|
35
30
|
this.multiProvider = multiProvider;
|
|
36
|
-
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));
|
|
37
35
|
}
|
|
38
36
|
fetchCircleMessageTransactions(chain) {
|
|
39
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -46,49 +44,9 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
46
44
|
});
|
|
47
45
|
const req = yield (0, cross_fetch_1.default)(`${cc.getApiUrl()}?${params}`);
|
|
48
46
|
const response = yield req.json();
|
|
49
|
-
console.log(response);
|
|
50
|
-
return response.result.map((_) => _.transactionHash).flat();
|
|
51
|
-
});
|
|
52
|
-
}
|
|
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
47
|
return response.result.map((_) => _.transactionHash).flat();
|
|
65
48
|
});
|
|
66
49
|
}
|
|
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);
|
|
@@ -114,8 +72,7 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
114
72
|
.message;
|
|
115
73
|
const nonce = matchingLogs.find((_) => _.name === 'BridgedToken').args
|
|
116
74
|
.nonce;
|
|
117
|
-
const remoteChain = chain === chains_1.Chains.fuji ? chains_1.Chains.goerli : chains_1.Chains.fuji;
|
|
118
|
-
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;
|
|
119
76
|
return [
|
|
120
77
|
{
|
|
121
78
|
chain,
|
|
@@ -124,46 +81,24 @@ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
|
|
|
124
81
|
txHash,
|
|
125
82
|
message,
|
|
126
83
|
nonce,
|
|
127
|
-
domain,
|
|
128
|
-
nonceHash: ethers_1.ethers.utils.solidityKeccak256(['uint32', 'uint256'], [
|
|
84
|
+
domain: 0,
|
|
85
|
+
nonceHash: ethers_1.ethers.utils.solidityKeccak256(['uint32', 'uint256'], [0, nonce]),
|
|
129
86
|
},
|
|
130
87
|
];
|
|
131
88
|
});
|
|
132
89
|
}
|
|
133
|
-
attemptPortalTransferCompletion(message) {
|
|
134
|
-
var _a;
|
|
135
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
136
|
-
const destinationPortalAdapter = this.getContracts(message.destination)
|
|
137
|
-
.portalAdapter;
|
|
138
|
-
const transferId = yield destinationPortalAdapter.transferId(domains_1.ChainNameToDomainId[message.origin], message.nonce);
|
|
139
|
-
const transferTokenAddress = yield destinationPortalAdapter.portalTransfersProcessed(transferId);
|
|
140
|
-
if (!utils_1.utils.eqAddress(transferTokenAddress, ethers_1.ethers.constants.AddressZero)) {
|
|
141
|
-
console.log(`Transfer with nonce ${message.nonce} from ${message.origin} to ${message.destination} already processed`);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
const wormholeOriginDomain = (_a = this.config[message.destination].portal.wormholeDomainMapping.find((_) => _.hyperlaneDomain === domains_1.ChainNameToDomainId[message.origin])) === null || _a === void 0 ? void 0 : _a.wormholeDomain;
|
|
145
|
-
const emitter = utils_1.utils.strip0x(utils_1.utils.addressToBytes32(this.config[message.origin].portal.portalBridgeAddress));
|
|
146
|
-
const vaa = yield (0, cross_fetch_1.default)(`${PORTAL_VAA_SERVICE_TESTNET_BASE_URL}${wormholeOriginDomain}/${emitter}/${message.portalSequence}`).then((_) => _.json());
|
|
147
|
-
if (vaa.code && vaa.code === PORTAL_VAA_SERVICE_SUCCESS_CODE) {
|
|
148
|
-
console.log(`VAA not yet found for nonce ${message.nonce}`);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
const connection = this.multiProvider.getChainConnection(message.destination);
|
|
152
|
-
console.debug(`Complete portal transfer for nonce ${message.nonce} on ${message.destination}`);
|
|
153
|
-
yield connection.handleTx(destinationPortalAdapter.completeTransfer(utils_1.utils.ensure0x(Buffer.from(vaa.vaaBytes, 'base64').toString('hex'))));
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
90
|
attemptCircleAttestationSubmission(message) {
|
|
157
91
|
return __awaiter(this, void 0, void 0, function* () {
|
|
158
92
|
const connection = this.multiProvider.getChainConnection(message.remoteChain);
|
|
159
|
-
const transmitter = core_1.ICircleMessageTransmitter__factory.connect(this.
|
|
93
|
+
const transmitter = core_1.ICircleMessageTransmitter__factory.connect(this.circleBridgeAdapterConfig()[message.remoteChain]
|
|
94
|
+
.messageTransmitterAddress, connection.signer);
|
|
160
95
|
const alreadyProcessed = yield transmitter.usedNonces(message.nonceHash);
|
|
161
96
|
if (alreadyProcessed) {
|
|
162
97
|
console.log(`Message sent on ${message.txHash} was already processed`);
|
|
163
98
|
return;
|
|
164
99
|
}
|
|
165
100
|
const messageHash = ethers_1.ethers.utils.keccak256(message.message);
|
|
166
|
-
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}`);
|
|
167
102
|
const attestations = yield attestationsB.json();
|
|
168
103
|
if (attestations.status !== 'complete') {
|
|
169
104
|
console.log(`Attestations not available for message nonce ${message.nonce} on ${message.txHash}`);
|
|
@@ -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,4 +1,4 @@
|
|
|
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';
|
|
@@ -6,8 +6,7 @@ import { ChainMap, ChainName } from '../../types';
|
|
|
6
6
|
import { HyperlaneRouterDeployer } from '../router/HyperlaneRouterDeployer';
|
|
7
7
|
import { RouterConfig } from '../router/types';
|
|
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;
|
|
@@ -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 type LiquidityLayerConfig = RouterConfig & BridgeAdapterConfig;
|
|
35
25
|
export declare class LiquidityLayerDeployer<Chain extends ChainName> extends HyperlaneRouterDeployer<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,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,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,uBAAuB,CAC/B,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;IAmC7B,yBAAyB,CAC7B,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,yBAAyB,EACxC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,mBAAmB,CAAC;CA2DhC"}
|
|
@@ -10,16 +10,14 @@ 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
17
|
const HyperlaneRouterDeployer_1 = require("../router/HyperlaneRouterDeployer");
|
|
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
22
|
class LiquidityLayerDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDeployer {
|
|
25
23
|
constructor(multiProvider, configMap, core, create2salt = 'LiquidityLayerDeployerSalt') {
|
|
@@ -32,64 +30,37 @@ 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 = core_1.LiquidityLayerRouter__factory.createInterface().encodeFunctionData('initialize', [
|
|
45
|
+
const initCalldata = core_1.LiquidityLayerRouter__factory.createInterface().encodeFunctionData('initialize', [
|
|
46
|
+
config.mailbox,
|
|
47
|
+
config.interchainGasPaymaster,
|
|
48
|
+
config.interchainSecurityModule,
|
|
49
|
+
]);
|
|
52
50
|
const router = yield this.deployContract(chain, 'router', [], {
|
|
53
51
|
create2Salt: this.create2salt,
|
|
54
52
|
initCalldata,
|
|
55
53
|
});
|
|
56
54
|
const bridgeAdapters = {};
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
55
|
+
for (const adapterConfig of config.bridgeAdapterConfigs) {
|
|
56
|
+
if (adapterConfig.type === BridgeAdapterType.Circle) {
|
|
57
|
+
bridgeAdapters.circleBridgeAdapter =
|
|
58
|
+
yield this.deployCircleBridgeAdapter(chain, adapterConfig, config.owner, router);
|
|
59
|
+
}
|
|
62
60
|
}
|
|
63
61
|
return Object.assign(Object.assign({}, bridgeAdapters), { router });
|
|
64
62
|
});
|
|
65
63
|
}
|
|
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
64
|
deployCircleBridgeAdapter(chain, adapterConfig, owner, router) {
|
|
94
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
95
66
|
const cc = this.multiProvider.getChainConnection(chain);
|
|
@@ -103,7 +74,8 @@ class LiquidityLayerDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDe
|
|
|
103
74
|
create2Salt: this.create2salt,
|
|
104
75
|
initCalldata,
|
|
105
76
|
});
|
|
106
|
-
if (
|
|
77
|
+
if ((yield circleBridgeAdapter.tokenSymbolToAddress('USDC')) ===
|
|
78
|
+
ethers_1.ethers.constants.AddressZero) {
|
|
107
79
|
this.logger(`Set USDC token contract`);
|
|
108
80
|
yield cc.handleTx(circleBridgeAdapter.addToken(adapterConfig.usdcAddress, 'USDC'));
|
|
109
81
|
}
|
|
@@ -115,10 +87,8 @@ class LiquidityLayerDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDe
|
|
|
115
87
|
this.logger(`Set circle domain ${circleDomain} for hyperlane domain ${hyperlaneDomain}`);
|
|
116
88
|
yield cc.handleTx(circleBridgeAdapter.addDomain(hyperlaneDomain, circleDomain));
|
|
117
89
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
yield cc.handleTx(router.setLiquidityLayerAdapter(adapterConfig.type, circleBridgeAdapter.address));
|
|
121
|
-
}
|
|
90
|
+
this.logger('Set CircleLiquidityLayerAdapter on Router');
|
|
91
|
+
yield cc.handleTx(router.setLiquidityLayerAdapter(adapterConfig.type, circleBridgeAdapter.address));
|
|
122
92
|
return circleBridgeAdapter;
|
|
123
93
|
});
|
|
124
94
|
}
|
|
@@ -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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/deploy/middleware/deploy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,oBAAY,uBAAuB,GAAG,YAAY,CAAC;AAEnD,qBAAa,yBAAyB,CACpC,KAAK,SAAS,SAAS,CACvB,SAAQ,uBAAuB,CAC/B,KAAK,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,CAC3B;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,uBAAuB,CAAC,EACzC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAC1B,WAAW,SAAa;IAO9B,eAAe,CACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/deploy/middleware/deploy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EAGzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,oBAAY,uBAAuB,GAAG,YAAY,CAAC;AAEnD,qBAAa,yBAAyB,CACpC,KAAK,SAAS,SAAS,CACvB,SAAQ,uBAAuB,CAC/B,KAAK,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,CAC3B;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,uBAAuB,CAAC,EACzC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAC1B,WAAW,SAAa;IAO9B,eAAe,CACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,0BAA0B,CAAC;CAkBvC;AAED,oBAAY,qBAAqB,GAAG,YAAY,CAAC;AAEjD,qBAAa,uBAAuB,CAClC,KAAK,SAAS,SAAS,CACvB,SAAQ,uBAAuB,CAC/B,KAAK,EACL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,CACzB;IAIG,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;IAEpC,SAAS,CAAC,WAAW;gBAJrB,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,EACvC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAE1B,WAAW,SAAa;IAO9B,eAAe,CACnB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,wBAAwB,CAAC;CAkBrC"}
|
|
@@ -23,7 +23,11 @@ class InterchainAccountDeployer extends HyperlaneRouterDeployer_1.HyperlaneRoute
|
|
|
23
23
|
// If no custom logic is needed, call deployContract for the router
|
|
24
24
|
deployContracts(chain, config) {
|
|
25
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
const initCalldata = core_1.InterchainAccountRouter__factory.createInterface().encodeFunctionData('initialize', [
|
|
26
|
+
const initCalldata = core_1.InterchainAccountRouter__factory.createInterface().encodeFunctionData('initialize', [
|
|
27
|
+
config.mailbox,
|
|
28
|
+
config.interchainGasPaymaster,
|
|
29
|
+
config.interchainSecurityModule,
|
|
30
|
+
]);
|
|
27
31
|
const router = yield this.deployContract(chain, 'router', [], {
|
|
28
32
|
create2Salt: this.create2salt + 'router',
|
|
29
33
|
initCalldata,
|
|
@@ -47,7 +51,11 @@ class InterchainQueryDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterD
|
|
|
47
51
|
// If no custom logic is needed, call deployContract for the router
|
|
48
52
|
deployContracts(chain, config) {
|
|
49
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
-
const initCalldata = core_1.InterchainQueryRouter__factory.createInterface().encodeFunctionData('initialize', [
|
|
54
|
+
const initCalldata = core_1.InterchainQueryRouter__factory.createInterface().encodeFunctionData('initialize', [
|
|
55
|
+
config.mailbox,
|
|
56
|
+
config.interchainGasPaymaster,
|
|
57
|
+
config.interchainSecurityModule,
|
|
58
|
+
]);
|
|
51
59
|
const router = yield this.deployContract(chain, 'router', [], {
|
|
52
60
|
create2Salt: this.create2salt + 'router',
|
|
53
61
|
initCalldata,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/deploy/middleware/deploy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAG6B;AAG7B,iDAO0B;AAG1B,+EAA4E;AAK5E,MAAa,yBAEX,SAAQ,iDAKT;IACC,YACE,aAAmC,EACnC,SAAmD,EACzC,IAA0B,EAC1B,cAAc,UAAU;QAElC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,uCAA0B,EAAE,EAAE,CAAC,CAAC;QAHtD,SAAI,GAAJ,IAAI,CAAsB;QAC1B,gBAAW,GAAX,WAAW,CAAa;IAGpC,CAAC;IAED,+CAA+C;IAC/C,mEAAmE;IAC7D,eAAe,CACnB,KAAY,EACZ,MAA+B;;YAE/B,MAAM,YAAY,GAChB,uCAAgC,CAAC,eAAe,EAAE,CAAC,kBAAkB,CACnE,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/deploy/middleware/deploy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAG6B;AAG7B,iDAO0B;AAG1B,+EAA4E;AAK5E,MAAa,yBAEX,SAAQ,iDAKT;IACC,YACE,aAAmC,EACnC,SAAmD,EACzC,IAA0B,EAC1B,cAAc,UAAU;QAElC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,uCAA0B,EAAE,EAAE,CAAC,CAAC;QAHtD,SAAI,GAAJ,IAAI,CAAsB;QAC1B,gBAAW,GAAX,WAAW,CAAa;IAGpC,CAAC;IAED,+CAA+C;IAC/C,mEAAmE;IAC7D,eAAe,CACnB,KAAY,EACZ,MAA+B;;YAE/B,MAAM,YAAY,GAChB,uCAAgC,CAAC,eAAe,EAAE,CAAC,kBAAkB,CACnE,YAAY,EACZ;gBACE,MAAM,CAAC,OAAO;gBACd,MAAM,CAAC,sBAAsB;gBAC7B,MAAM,CAAC,wBAAwB;aAChC,CACF,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC5D,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,QAAQ;gBACxC,YAAY;aACb,CAAC,CAAC;YACH,OAAO;gBACL,MAAM;aACP,CAAC;QACJ,CAAC;KAAA;CACF;AAxCD,8DAwCC;AAID,MAAa,uBAEX,SAAQ,iDAKT;IACC,YACE,aAAmC,EACnC,SAAiD,EACvC,IAA0B;IACpC,0DAA0D;IAChD,cAAc,UAAU;QAElC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,qCAAwB,EAAE,EAAE,CAAC,CAAC;QAJpD,SAAI,GAAJ,IAAI,CAAsB;QAE1B,gBAAW,GAAX,WAAW,CAAa;IAGpC,CAAC;IAED,+CAA+C;IAC/C,mEAAmE;IAC7D,eAAe,CACnB,KAAY,EACZ,MAA6B;;YAE7B,MAAM,YAAY,GAChB,qCAA8B,CAAC,eAAe,EAAE,CAAC,kBAAkB,CACjE,YAAY,EACZ;gBACE,MAAM,CAAC,OAAO;gBACd,MAAM,CAAC,sBAAsB;gBAC7B,MAAM,CAAC,wBAAwB;aAChC,CACF,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC5D,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,QAAQ;gBACxC,YAAY;aACb,CAAC,CAAC;YACH,OAAO;gBACL,MAAM;aACP,CAAC;QACJ,CAAC;KAAA;CACF;AAzCD,0DAyCC"}
|
package/dist/deploy/proxy.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
2
|
import type { types } from '@hyperlane-xyz/utils';
|
|
3
|
-
import {
|
|
3
|
+
import { TransparentProxyAddresses } from '../proxy';
|
|
4
4
|
import { ChainName } from '../types';
|
|
5
5
|
import { CheckerViolation } from './types';
|
|
6
|
-
export interface
|
|
7
|
-
type:
|
|
6
|
+
export interface ProxyViolation extends CheckerViolation {
|
|
7
|
+
type: TransparentProxyAddresses['kind'];
|
|
8
8
|
data: {
|
|
9
|
-
|
|
9
|
+
proxyAddresses: TransparentProxyAddresses;
|
|
10
10
|
name: string;
|
|
11
11
|
};
|
|
12
12
|
actual: string;
|
|
13
13
|
expected: string;
|
|
14
14
|
}
|
|
15
|
-
export declare function
|
|
16
|
-
export declare function
|
|
15
|
+
export declare function proxyImplementation(provider: ethers.providers.Provider, proxy: types.Address): Promise<types.Address>;
|
|
16
|
+
export declare function proxyAdmin(provider: ethers.providers.Provider, proxy: types.Address): Promise<types.Address>;
|
|
17
|
+
export declare function proxyViolation<Chain extends ChainName>(chain: Chain, name: string, proxyAddresses: TransparentProxyAddresses, actual: types.Address): ProxyViolation;
|
|
17
18
|
//# sourceMappingURL=proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,EAAE;QACJ,cAAc,EAAE,yBAAyB,CAAC;QAC1C,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,KAAK,EAAE,KAAK,CAAC,OAAO,GACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAOxB;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EACnC,KAAK,EAAE,KAAK,CAAC,OAAO,GACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAOxB;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAS,SAAS,EACpD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,yBAAyB,EACzC,MAAM,EAAE,KAAK,CAAC,OAAO,GACpB,cAAc,CAWhB"}
|
package/dist/deploy/proxy.js
CHANGED
|
@@ -9,27 +9,35 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.proxyViolation = exports.proxyAdmin = exports.proxyImplementation = void 0;
|
|
13
13
|
const ethers_1 = require("ethers");
|
|
14
|
-
function
|
|
14
|
+
function proxyImplementation(provider, proxy) {
|
|
15
15
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
//
|
|
17
|
-
const storageValue = yield provider.getStorageAt(
|
|
16
|
+
// Hardcoded storage slot for implementation per EIP-1967
|
|
17
|
+
const storageValue = yield provider.getStorageAt(proxy, '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc');
|
|
18
18
|
return ethers_1.ethers.utils.getAddress(storageValue.slice(26));
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
exports.
|
|
22
|
-
function
|
|
21
|
+
exports.proxyImplementation = proxyImplementation;
|
|
22
|
+
function proxyAdmin(provider, proxy) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
// Hardcoded storage slot for admin per EIP-1967
|
|
25
|
+
const storageValue = yield provider.getStorageAt(proxy, '0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103');
|
|
26
|
+
return ethers_1.ethers.utils.getAddress(storageValue.slice(26));
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
exports.proxyAdmin = proxyAdmin;
|
|
30
|
+
function proxyViolation(chain, name, proxyAddresses, actual) {
|
|
23
31
|
return {
|
|
24
32
|
chain,
|
|
25
|
-
type:
|
|
33
|
+
type: proxyAddresses.kind,
|
|
26
34
|
actual,
|
|
27
|
-
expected:
|
|
35
|
+
expected: proxyAddresses.implementation,
|
|
28
36
|
data: {
|
|
29
37
|
name,
|
|
30
|
-
|
|
38
|
+
proxyAddresses,
|
|
31
39
|
},
|
|
32
40
|
};
|
|
33
41
|
}
|
|
34
|
-
exports.
|
|
42
|
+
exports.proxyViolation = proxyViolation;
|
|
35
43
|
//# sourceMappingURL=proxy.js.map
|
package/dist/deploy/proxy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAmBhC,SAAsB,
|
|
1
|
+
{"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/deploy/proxy.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAgC;AAmBhC,SAAsB,mBAAmB,CACvC,QAAmC,EACnC,KAAoB;;QAEpB,yDAAyD;QACzD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAC9C,KAAK,EACL,oEAAoE,CACrE,CAAC;QACF,OAAO,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;CAAA;AAVD,kDAUC;AAED,SAAsB,UAAU,CAC9B,QAAmC,EACnC,KAAoB;;QAEpB,gDAAgD;QAChD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,YAAY,CAC9C,KAAK,EACL,oEAAoE,CACrE,CAAC;QACF,OAAO,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;CAAA;AAVD,gCAUC;AAED,SAAgB,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,cAAyC,EACzC,MAAqB;IAErB,OAAO;QACL,KAAK;QACL,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,MAAM;QACN,QAAQ,EAAE,cAAc,CAAC,cAAc;QACvC,IAAI,EAAE;YACJ,IAAI;YACJ,cAAc;SACf;KACF,CAAC;AACJ,CAAC;AAhBD,wCAgBC"}
|