@hyperlane-xyz/sdk 0.5.2 → 0.5.4-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/consts/chainConnectionConfigs.d.ts +0 -2
  2. package/dist/consts/chainConnectionConfigs.d.ts.map +1 -1
  3. package/dist/consts/chainConnectionConfigs.js +1 -13
  4. package/dist/consts/chainConnectionConfigs.js.map +1 -1
  5. package/dist/consts/chainMetadata.d.ts +1 -1
  6. package/dist/consts/chainMetadata.d.ts.map +1 -1
  7. package/dist/consts/chains.d.ts +11 -4
  8. package/dist/consts/chains.d.ts.map +1 -1
  9. package/dist/consts/chains.js +11 -3
  10. package/dist/consts/chains.js.map +1 -1
  11. package/dist/consts/environments/index.d.ts +62 -1169
  12. package/dist/consts/environments/index.d.ts.map +1 -1
  13. package/dist/consts/environments/index.js +4 -11
  14. package/dist/consts/environments/index.js.map +1 -1
  15. package/dist/consts/environments/mainnet.json +16 -544
  16. package/dist/consts/environments/test.json +35 -89
  17. package/dist/consts/environments/testnet2.json +41 -569
  18. package/dist/core/HyperlaneCore.d.ts +58 -1175
  19. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  20. package/dist/core/HyperlaneCore.js +18 -28
  21. package/dist/core/HyperlaneCore.js.map +1 -1
  22. package/dist/core/HyperlaneCore.test.d.ts +2 -0
  23. package/dist/core/HyperlaneCore.test.d.ts.map +1 -0
  24. package/dist/core/HyperlaneCore.test.js +27 -0
  25. package/dist/core/HyperlaneCore.test.js.map +1 -0
  26. package/dist/core/TestCoreApp.d.ts +6 -12
  27. package/dist/core/TestCoreApp.d.ts.map +1 -1
  28. package/dist/core/TestCoreApp.js +5 -5
  29. package/dist/core/TestCoreApp.js.map +1 -1
  30. package/dist/core/TestCoreDeployer.d.ts +6 -5
  31. package/dist/core/TestCoreDeployer.d.ts.map +1 -1
  32. package/dist/core/TestCoreDeployer.js +18 -40
  33. package/dist/core/TestCoreDeployer.js.map +1 -1
  34. package/dist/core/contracts.d.ts +9 -18
  35. package/dist/core/contracts.d.ts.map +1 -1
  36. package/dist/core/contracts.js +8 -8
  37. package/dist/core/contracts.js.map +1 -1
  38. package/dist/core/events.d.ts +1 -2
  39. package/dist/core/events.d.ts.map +1 -1
  40. package/dist/core/message.d.ts +6 -22
  41. package/dist/core/message.d.ts.map +1 -1
  42. package/dist/core/message.js +9 -35
  43. package/dist/core/message.js.map +1 -1
  44. package/dist/core/testHyperlaneDeploy.hardhat-test.js +6 -6
  45. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
  46. package/dist/deploy/HyperlaneDeployer.js +1 -1
  47. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  48. package/dist/deploy/core/HyperlaneCoreChecker.d.ts +3 -6
  49. package/dist/deploy/core/HyperlaneCoreChecker.d.ts.map +1 -1
  50. package/dist/deploy/core/HyperlaneCoreChecker.js +45 -125
  51. package/dist/deploy/core/HyperlaneCoreChecker.js.map +1 -1
  52. package/dist/deploy/core/HyperlaneCoreDeployer.d.ts +15 -16
  53. package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  54. package/dist/deploy/core/HyperlaneCoreDeployer.js +43 -69
  55. package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -1
  56. package/dist/deploy/core/types.d.ts +15 -28
  57. package/dist/deploy/core/types.d.ts.map +1 -1
  58. package/dist/deploy/core/types.js +8 -12
  59. package/dist/deploy/core/types.js.map +1 -1
  60. package/dist/deploy/middleware/LiquidityLayerApp.d.ts +26 -0
  61. package/dist/deploy/middleware/LiquidityLayerApp.d.ts.map +1 -0
  62. package/dist/deploy/middleware/LiquidityLayerApp.js +115 -0
  63. package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -0
  64. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +33 -0
  65. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -0
  66. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +93 -0
  67. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -0
  68. package/dist/deploy/middleware/deploy.js +2 -2
  69. package/dist/deploy/middleware/deploy.js.map +1 -1
  70. package/dist/deploy/router/HyperlaneRouterDeployer.d.ts +1 -1
  71. package/dist/deploy/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  72. package/dist/deploy/router/HyperlaneRouterDeployer.js +6 -7
  73. package/dist/deploy/router/HyperlaneRouterDeployer.js.map +1 -1
  74. package/dist/deploy/verify/ContractVerifier.d.ts +2 -2
  75. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
  76. package/dist/deploy/verify/ContractVerifier.js +17 -11
  77. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  78. package/dist/domains.d.ts +3 -3
  79. package/dist/domains.d.ts.map +1 -1
  80. package/dist/domains.js.map +1 -1
  81. package/dist/gas/calculator.d.ts.map +1 -1
  82. package/dist/gas/calculator.js +6 -4
  83. package/dist/gas/calculator.js.map +1 -1
  84. package/dist/gas/calculator.test.js +5 -8
  85. package/dist/gas/calculator.test.js.map +1 -1
  86. package/dist/gas/token-prices.d.ts +17 -1
  87. package/dist/gas/token-prices.d.ts.map +1 -1
  88. package/dist/gas/token-prices.js +49 -9
  89. package/dist/gas/token-prices.js.map +1 -1
  90. package/dist/gas/token-prices.test.js +8 -2
  91. package/dist/gas/token-prices.test.js.map +1 -1
  92. package/dist/index.d.ts +7 -5
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +10 -4
  95. package/dist/index.js.map +1 -1
  96. package/dist/middleware/liquidity-layer.hardhat-test.d.ts +2 -0
  97. package/dist/middleware/liquidity-layer.hardhat-test.d.ts.map +1 -0
  98. package/dist/middleware/liquidity-layer.hardhat-test.js +89 -0
  99. package/dist/middleware/liquidity-layer.hardhat-test.js.map +1 -0
  100. package/dist/middleware.d.ts +8 -1
  101. package/dist/middleware.d.ts.map +1 -1
  102. package/dist/middleware.js +5 -1
  103. package/dist/middleware.js.map +1 -1
  104. package/dist/router.d.ts +1 -1
  105. package/dist/router.d.ts.map +1 -1
  106. package/dist/test/envSubsetDeployer/app.js +2 -2
  107. package/dist/test/envSubsetDeployer/app.js.map +1 -1
  108. package/dist/test/testUtils.d.ts +2 -0
  109. package/dist/test/testUtils.d.ts.map +1 -1
  110. package/dist/test/testUtils.js +8 -0
  111. package/dist/test/testUtils.js.map +1 -1
  112. package/dist/types.d.ts +1 -0
  113. package/dist/types.d.ts.map +1 -1
  114. package/dist/utils/MultiGeneric.d.ts.map +1 -1
  115. package/dist/utils/MultiGeneric.js +1 -1
  116. package/dist/utils/MultiGeneric.js.map +1 -1
  117. package/package.json +5 -4
@@ -16,6 +16,7 @@ exports.HyperlaneCoreDeployer = void 0;
16
16
  const debug_1 = __importDefault(require("debug"));
17
17
  const chainMetadata_1 = require("../../consts/chainMetadata");
18
18
  const contracts_1 = require("../../core/contracts");
19
+ const domains_1 = require("../../domains");
19
20
  const objects_1 = require("../../utils/objects");
20
21
  const HyperlaneDeployer_1 = require("../HyperlaneDeployer");
21
22
  class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
@@ -25,47 +26,46 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
25
26
  });
26
27
  this.startingBlockNumbers = (0, objects_1.objMap)(configMap, () => undefined);
27
28
  }
28
- // override return type for inboxes shape derived from chain
29
- deploy(partialDeployment) {
30
- const _super = Object.create(null, {
31
- deploy: { get: () => super.deploy }
32
- });
33
- return __awaiter(this, void 0, void 0, function* () {
34
- return _super.deploy.call(this, partialDeployment);
35
- });
36
- }
37
- deployOutbox(chain, config, ubcAddress) {
29
+ deployMailbox(chain, defaultIsmAddress, ubcAddress) {
38
30
  return __awaiter(this, void 0, void 0, function* () {
39
31
  const domain = chainMetadata_1.chainMetadata[chain].id;
40
- const outboxValidatorManager = yield this.deployContract(chain, 'outboxValidatorManager', [domain, config.validators, config.threshold]);
41
- const outbox = yield this.deployProxiedContract(chain, 'outbox', [domain], ubcAddress, [outboxValidatorManager.address]);
42
- return { outbox, outboxValidatorManager };
32
+ const mailbox = yield this.deployProxiedContract(chain, 'mailbox', [domain], ubcAddress, [defaultIsmAddress]);
33
+ return mailbox;
43
34
  });
44
35
  }
45
- deployInbox(localChain, remoteChain, config, ubcAddress, duplicate) {
36
+ deployMultisigIsm(chain) {
37
+ const _super = Object.create(null, {
38
+ runIfOwner: { get: () => super.runIfOwner }
39
+ });
46
40
  return __awaiter(this, void 0, void 0, function* () {
47
- const localDomain = chainMetadata_1.chainMetadata[localChain].id;
48
- const remoteDomain = chainMetadata_1.chainMetadata[remoteChain].id;
49
- const inboxValidatorManager = yield this.deployContract(localChain, 'inboxValidatorManager', [remoteDomain, config.validators, config.threshold]);
50
- const initArgs = [
51
- remoteDomain,
52
- inboxValidatorManager.address,
53
- ];
54
- let inbox;
55
- if (duplicate) {
56
- inbox = yield this.duplicateProxiedContract(localChain, duplicate, initArgs);
57
- }
58
- else {
59
- inbox = yield this.deployProxiedContract(localChain, 'inbox', [localDomain], ubcAddress, initArgs);
60
- }
61
- return { inbox, inboxValidatorManager };
41
+ const multisigIsm = yield this.deployContract(chain, 'multisigIsm', []);
42
+ const configChains = Object.keys(this.configMap);
43
+ const remotes = this.multiProvider
44
+ .intersect(configChains, false)
45
+ .multiProvider.remoteChains(chain);
46
+ yield _super.runIfOwner.call(this, chain, multisigIsm, () => __awaiter(this, void 0, void 0, function* () {
47
+ // TODO: Remove extraneous validators
48
+ for (const remote of remotes) {
49
+ const multisigIsmConfig = this.configMap[remote].multisigIsm;
50
+ const domain = domains_1.ChainNameToDomainId[remote];
51
+ for (const validator of multisigIsmConfig.validators) {
52
+ const isValidator = yield multisigIsm.isEnrolled(domain, validator);
53
+ if (!isValidator) {
54
+ this.logger(`Enrolling ${validator} as ${remote} validator on ${chain}`);
55
+ yield multisigIsm.enrollValidator(domain, validator);
56
+ }
57
+ }
58
+ const threshold = yield multisigIsm.threshold(domain);
59
+ if (!threshold.eq(multisigIsmConfig.threshold)) {
60
+ this.logger(`Setting ${remote} threshold to ${multisigIsmConfig.threshold} on ${chain}`);
61
+ yield multisigIsm.setThreshold(domain, multisigIsmConfig.threshold);
62
+ }
63
+ }
64
+ }));
65
+ return multisigIsm;
62
66
  });
63
67
  }
64
68
  deployContracts(chain, config) {
65
- const _super = Object.create(null, {
66
- runIfOwner: { get: () => super.runIfOwner }
67
- });
68
- var _a, _b, _c;
69
69
  return __awaiter(this, void 0, void 0, function* () {
70
70
  if (config.remove) {
71
71
  // skip deploying to chains configured to be removed
@@ -77,38 +77,14 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
77
77
  this.startingBlockNumbers[chain] = startingBlockNumber;
78
78
  const upgradeBeaconController = yield this.deployContract(chain, 'upgradeBeaconController', []);
79
79
  const interchainGasPaymaster = yield this.deployProxiedContract(chain, 'interchainGasPaymaster', [], upgradeBeaconController.address, []);
80
- const connectionManager = yield this.deployContract(chain, 'connectionManager', []);
81
- const outbox = yield this.deployOutbox(chain, config.validatorManager, upgradeBeaconController.address);
82
- yield _super.runIfOwner.call(this, chain, connectionManager, () => __awaiter(this, void 0, void 0, function* () {
83
- const current = yield connectionManager.outbox();
84
- if (current !== outbox.outbox.address) {
85
- const outboxTx = yield connectionManager.setOutbox(outbox.outbox.address, dc.overrides);
86
- yield dc.handleTx(outboxTx);
87
- }
88
- }));
89
- const configChains = Object.keys(this.configMap);
90
- const remotes = this.multiProvider
91
- .intersect(configChains, false)
92
- .multiProvider.remoteChains(chain);
93
- const inboxes = (_b = (_a = this.deployedContracts[chain]) === null || _a === void 0 ? void 0 : _a.inboxes) !== null && _b !== void 0 ? _b : {};
94
- let prev;
95
- for (const remote of remotes) {
96
- if (!inboxes[remote]) {
97
- inboxes[remote] = yield this.deployInbox(chain, remote, this.configMap[remote].validatorManager, upgradeBeaconController.address, (_c = inboxes[prev]) === null || _c === void 0 ? void 0 : _c.inbox);
98
- }
99
- yield _super.runIfOwner.call(this, chain, connectionManager, () => __awaiter(this, void 0, void 0, function* () {
100
- const isEnrolled = yield connectionManager.isInbox(inboxes[remote].inbox.address);
101
- if (!isEnrolled) {
102
- this.logger(`Enrolling inbox for remote '${remote}'`);
103
- const enrollTx = yield connectionManager.enrollInbox(chainMetadata_1.chainMetadata[remote].id, inboxes[remote].inbox.address, dc.overrides);
104
- yield dc.handleTx(enrollTx);
105
- }
106
- }));
107
- prev = remote;
108
- }
109
- return Object.assign({ upgradeBeaconController,
110
- connectionManager,
111
- interchainGasPaymaster, inboxes: inboxes }, outbox);
80
+ const multisigIsm = yield this.deployMultisigIsm(chain);
81
+ const mailbox = yield this.deployMailbox(chain, multisigIsm.address, upgradeBeaconController.address);
82
+ return {
83
+ upgradeBeaconController,
84
+ interchainGasPaymaster,
85
+ mailbox,
86
+ multisigIsm,
87
+ };
112
88
  });
113
89
  }
114
90
  static transferOwnership(core, owners, multiProvider) {
@@ -121,11 +97,9 @@ class HyperlaneCoreDeployer extends HyperlaneDeployer_1.HyperlaneDeployer {
121
97
  static transferOwnershipOfChain(coreContracts, owner, chainConnection) {
122
98
  return __awaiter(this, void 0, void 0, function* () {
123
99
  const ownables = [
124
- coreContracts.outbox.contract,
125
- coreContracts.outboxValidatorManager,
126
- coreContracts.connectionManager,
100
+ coreContracts.mailbox.contract,
101
+ coreContracts.multisigIsm,
127
102
  coreContracts.upgradeBeaconController,
128
- ...Object.values(coreContracts.inboxes).flatMap((inbox) => [inbox.inbox.contract, inbox.inboxValidatorManager]),
129
103
  ];
130
104
  return Promise.all(ownables.map((ownable) => chainConnection.handleTx(ownable.transferOwnership(owner, chainConnection.overrides))));
131
105
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperlaneCoreDeployer.js","sourceRoot":"","sources":["../../../src/deploy/core/HyperlaneCoreDeployer.ts"],"names":[],"mappings":"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"}
@@ -1,64 +1,51 @@
1
- import { AbacusConnectionManager, Mailbox, MultisigValidatorManager } from '@hyperlane-xyz/core';
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 ValidatorManagerConfig = {
5
+ export declare type MultisigIsmConfig = {
6
6
  validators: Array<types.Address>;
7
7
  threshold: number;
8
8
  };
9
9
  export declare type CoreConfig = {
10
- validatorManager: ValidatorManagerConfig;
10
+ multisigIsm: MultisigIsmConfig;
11
11
  owner?: types.Address;
12
12
  remove?: boolean;
13
13
  };
14
14
  export declare enum CoreViolationType {
15
- ValidatorManager = "ValidatorManager",
15
+ MultisigIsm = "MultisigIsm",
16
16
  Mailbox = "Mailbox",
17
17
  ConnectionManager = "ConnectionManager"
18
18
  }
19
- export declare enum ValidatorManagerViolationType {
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
- ValidatorManager = "ValidatorManager"
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 MailboxValidatorManagerViolation extends MailboxViolation {
31
+ export interface MailboxMultisigIsmViolation extends MailboxViolation {
35
32
  actual: types.Address;
36
33
  expected: types.Address;
37
34
  }
38
- export interface ValidatorManagerViolation extends CheckerViolation {
39
- type: CoreViolationType.ValidatorManager;
40
- contract: MultisigValidatorManager;
41
- validatorManagerType: ValidatorManagerViolationType;
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 ValidatorManagerViolation {
45
- validatorManagerType: ValidatorManagerViolationType.EnrolledValidators;
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 ValidatorManagerViolation {
50
- validatorManagerType: ValidatorManagerViolationType.Threshold;
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,EACL,uBAAuB,EACvB,OAAO,EACP,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,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,sBAAsB,GAAG;IACnC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,gBAAgB,EAAE,sBAAsB,CAAC;IACzC,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,gBAAgB,qBAAqB;IACrC,OAAO,YAAY;IACnB,iBAAiB,sBAAsB;CACxC;AAED,oBAAY,6BAA6B;IACvC,kBAAkB,uBAAuB;IACzC,SAAS,cAAc;CACxB;AAED,oBAAY,8BAA8B;IACxC,eAAe,oBAAoB;CACpC;AAED,oBAAY,oBAAoB;IAC9B,gBAAgB,qBAAqB;CACtC;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,gCAAiC,SAAQ,gBAAgB;IACxE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,yBAA0B,SAAQ,gBAAgB;IACjE,IAAI,EAAE,iBAAiB,CAAC,gBAAgB,CAAC;IACzC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,2BAA4B,SAAQ,yBAAyB;IAC5E,oBAAoB,EAAE,6BAA6B,CAAC,kBAAkB,CAAC;IACvE,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,yBAAyB;IACnE,oBAAoB,EAAE,6BAA6B,CAAC,SAAS,CAAC;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA2B,SAAQ,gBAAgB;IAClE,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IAC1C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,qBAAqB,EAAE,8BAA8B,CAAC;CACvD;AAED,MAAM,WAAW,wBAAyB,SAAQ,0BAA0B;IAC1E,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CAC9B"}
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.ConnectionManagerViolationType = exports.ValidatorManagerViolationType = exports.CoreViolationType = void 0;
3
+ exports.MailboxViolationType = exports.MultisigIsmViolationType = exports.CoreViolationType = void 0;
4
4
  var CoreViolationType;
5
5
  (function (CoreViolationType) {
6
- CoreViolationType["ValidatorManager"] = "ValidatorManager";
6
+ CoreViolationType["MultisigIsm"] = "MultisigIsm";
7
7
  CoreViolationType["Mailbox"] = "Mailbox";
8
8
  CoreViolationType["ConnectionManager"] = "ConnectionManager";
9
9
  })(CoreViolationType = exports.CoreViolationType || (exports.CoreViolationType = {}));
10
- var ValidatorManagerViolationType;
11
- (function (ValidatorManagerViolationType) {
12
- ValidatorManagerViolationType["EnrolledValidators"] = "EnrolledValidators";
13
- ValidatorManagerViolationType["Threshold"] = "Threshold";
14
- })(ValidatorManagerViolationType = exports.ValidatorManagerViolationType || (exports.ValidatorManagerViolationType = {}));
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["ValidatorManager"] = "ValidatorManager";
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":";;;AAqBA,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,0DAAqC,CAAA;IACrC,wCAAmB,CAAA;IACnB,4DAAuC,CAAA;AACzC,CAAC,EAJW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAI5B;AAED,IAAY,6BAGX;AAHD,WAAY,6BAA6B;IACvC,0EAAyC,CAAA;IACzC,wDAAuB,CAAA;AACzB,CAAC,EAHW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAGxC;AAED,IAAY,8BAEX;AAFD,WAAY,8BAA8B;IACxC,qEAAmC,CAAA;AACrC,CAAC,EAFW,8BAA8B,GAA9B,sCAA8B,KAA9B,sCAA8B,QAEzC;AAED,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,6DAAqC,CAAA;AACvC,CAAC,EAFW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAE/B"}
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"}
@@ -0,0 +1,26 @@
1
+ import { HyperlaneApp } from '../../HyperlaneApp';
2
+ import { LiquidityLayerContracts } from '../../middleware';
3
+ import { MultiProvider } from '../../providers/MultiProvider';
4
+ import { ChainMap, ChainName } from '../../types';
5
+ import { BridgeAdapterConfig, CircleBridgeAdapterConfig } from './LiquidityLayerRouterDeployer';
6
+ interface CircleBridgeMessage<Chain> {
7
+ chain: Chain;
8
+ remoteChain: Chain;
9
+ txHash: string;
10
+ message: string;
11
+ nonce: number;
12
+ domain: number;
13
+ nonceHash: string;
14
+ }
15
+ export declare class LiquidityLayerApp<Chain extends ChainName = ChainName> extends HyperlaneApp<LiquidityLayerContracts, Chain> {
16
+ readonly contractsMap: ChainMap<Chain, LiquidityLayerContracts>;
17
+ readonly 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>;
21
+ fetchCircleMessageTransactions(chain: Chain): Promise<string[]>;
22
+ parseCircleMessages(chain: Chain, txHash: string): Promise<CircleBridgeMessage<Chain>[]>;
23
+ attemptCircleAttestationSubmission(message: CircleBridgeMessage<Chain>): Promise<void>;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=LiquidityLayerApp.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LiquidityLayerApp = void 0;
16
+ const cross_fetch_1 = __importDefault(require("cross-fetch"));
17
+ const ethers_1 = require("ethers");
18
+ const core_1 = require("@hyperlane-xyz/core");
19
+ const HyperlaneApp_1 = require("../../HyperlaneApp");
20
+ const chains_1 = require("../../consts/chains");
21
+ const objects_1 = require("../../utils/objects");
22
+ const LiquidityLayerRouterDeployer_1 = require("./LiquidityLayerRouterDeployer");
23
+ const CircleBridgeInterface = core_1.ICircleBridge__factory.createInterface();
24
+ const CircleBridgeAdapterInterface = core_1.CircleBridgeAdapter__factory.createInterface();
25
+ const BridgedTokenTopic = CircleBridgeAdapterInterface.getEventTopic(CircleBridgeAdapterInterface.getEvent('BridgedToken'));
26
+ class LiquidityLayerApp extends HyperlaneApp_1.HyperlaneApp {
27
+ constructor(contractsMap, multiProvider, bridgeAdapterConfigs) {
28
+ super(contractsMap, multiProvider);
29
+ this.contractsMap = contractsMap;
30
+ this.multiProvider = multiProvider;
31
+ this.bridgeAdapterConfigs = bridgeAdapterConfigs;
32
+ }
33
+ circleBridgeAdapterConfig() {
34
+ return (0, objects_1.objMap)(this.bridgeAdapterConfigs, (_chain, config) => config.find((_) => _.type === LiquidityLayerRouterDeployer_1.BridgeAdapterType.Circle));
35
+ }
36
+ fetchCircleMessageTransactions(chain) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ const cc = this.multiProvider.getChainConnection(chain);
39
+ const params = new URLSearchParams({
40
+ module: 'logs',
41
+ action: 'getLogs',
42
+ address: this.getContracts(chain).circleBridgeAdapter.address,
43
+ topic0: BridgedTokenTopic,
44
+ });
45
+ const req = yield (0, cross_fetch_1.default)(`${cc.getApiUrl()}?${params}`);
46
+ const response = yield req.json();
47
+ return response.result.map((_) => _.transactionHash).flat();
48
+ });
49
+ }
50
+ parseCircleMessages(chain, txHash) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ const connection = this.multiProvider.getChainConnection(chain);
53
+ const receipt = yield connection.provider.getTransactionReceipt(txHash);
54
+ const matchingLogs = receipt.logs
55
+ .map((_) => {
56
+ try {
57
+ return [CircleBridgeInterface.parseLog(_)];
58
+ }
59
+ catch (_a) {
60
+ try {
61
+ return [CircleBridgeAdapterInterface.parseLog(_)];
62
+ }
63
+ catch (_b) {
64
+ return [];
65
+ }
66
+ }
67
+ })
68
+ .flat();
69
+ if (matchingLogs.length == 0)
70
+ return [];
71
+ const message = matchingLogs.find((_) => _.name === 'MessageSent').args
72
+ .message;
73
+ const nonce = matchingLogs.find((_) => _.name === 'BridgedToken').args
74
+ .nonce;
75
+ const remoteChain = message.chain === chains_1.Chains.fuji ? chains_1.Chains.goerli : chains_1.Chains.fuji;
76
+ return [
77
+ {
78
+ chain,
79
+ // @ts-ignore
80
+ remoteChain,
81
+ txHash,
82
+ message,
83
+ nonce,
84
+ domain: 0,
85
+ nonceHash: ethers_1.ethers.utils.solidityKeccak256(['uint32', 'uint256'], [0, nonce]),
86
+ },
87
+ ];
88
+ });
89
+ }
90
+ attemptCircleAttestationSubmission(message) {
91
+ return __awaiter(this, void 0, void 0, function* () {
92
+ const connection = this.multiProvider.getChainConnection(message.remoteChain);
93
+ const transmitter = core_1.ICircleMessageTransmitter__factory.connect(this.circleBridgeAdapterConfig()[message.remoteChain]
94
+ .messageTransmitterAddress, connection.signer);
95
+ const alreadyProcessed = yield transmitter.usedNonces(message.nonceHash);
96
+ if (alreadyProcessed) {
97
+ console.log(`Message sent on ${message.txHash} was already processed`);
98
+ return;
99
+ }
100
+ const messageHash = ethers_1.ethers.utils.keccak256(message.message);
101
+ const attestationsB = yield (0, cross_fetch_1.default)(`https://iris-api-sandbox.circle.com/attestations/${messageHash}`);
102
+ const attestations = yield attestationsB.json();
103
+ if (attestations.status !== 'complete') {
104
+ console.log(`Attestations not available for message nonce ${message.nonce} on ${message.txHash}`);
105
+ return;
106
+ }
107
+ console.log(`Ready to submit attestations for message ${message.nonce}`);
108
+ const tx = yield transmitter.receiveMessage(message.message, attestations.attestation);
109
+ console.log(`Submitted attestations in ${yield connection.getTxUrl(tx)}`);
110
+ yield connection.handleTx(tx);
111
+ });
112
+ }
113
+ }
114
+ exports.LiquidityLayerApp = LiquidityLayerApp;
115
+ //# sourceMappingURL=LiquidityLayerApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiquidityLayerApp.js","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerApp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { CircleBridgeAdapter, LiquidityLayerRouter } from '@hyperlane-xyz/core';
2
+ import { HyperlaneCore } from '../../core/HyperlaneCore';
3
+ import { LiquidityLayerContracts, LiquidityLayerFactories } from '../../middleware';
4
+ import { MultiProvider } from '../../providers/MultiProvider';
5
+ import { ChainMap, ChainName } from '../../types';
6
+ import { HyperlaneRouterDeployer } from '../router/HyperlaneRouterDeployer';
7
+ import { RouterConfig } from '../router/types';
8
+ export declare enum BridgeAdapterType {
9
+ Circle = "Circle"
10
+ }
11
+ export interface CircleBridgeAdapterConfig {
12
+ type: BridgeAdapterType.Circle;
13
+ circleBridgeAddress: string;
14
+ messageTransmitterAddress: string;
15
+ usdcAddress: string;
16
+ circleDomainMapping: {
17
+ hyperlaneDomain: number;
18
+ circleDomain: number;
19
+ }[];
20
+ }
21
+ export declare type BridgeAdapterConfig = CircleBridgeAdapterConfig;
22
+ export declare type LiquidityLayerConfig = RouterConfig & {
23
+ bridgeAdapterConfigs: BridgeAdapterConfig[];
24
+ };
25
+ export declare class LiquidityLayerDeployer<Chain extends ChainName> extends HyperlaneRouterDeployer<Chain, LiquidityLayerConfig, LiquidityLayerContracts, LiquidityLayerFactories> {
26
+ protected core: HyperlaneCore<Chain>;
27
+ protected create2salt: string;
28
+ constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, LiquidityLayerConfig>, core: HyperlaneCore<Chain>, create2salt?: string);
29
+ enrollRemoteRouters(contractsMap: ChainMap<Chain, LiquidityLayerContracts>): Promise<void>;
30
+ deployContracts(chain: Chain, config: LiquidityLayerConfig): Promise<LiquidityLayerContracts>;
31
+ deployCircleBridgeAdapter(chain: Chain, adapterConfig: CircleBridgeAdapterConfig, owner: string, router: LiquidityLayerRouter): Promise<CircleBridgeAdapter>;
32
+ }
33
+ //# sourceMappingURL=LiquidityLayerRouterDeployer.d.ts.map
@@ -0,0 +1 @@
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;IA+B7B,yBAAyB,CAC7B,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,yBAAyB,EACxC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,mBAAmB,CAAC;CA2DhC"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LiquidityLayerDeployer = exports.BridgeAdapterType = void 0;
13
+ const ethers_1 = require("ethers");
14
+ const core_1 = require("@hyperlane-xyz/core");
15
+ const middleware_1 = require("../../middleware");
16
+ const objects_1 = require("../../utils/objects");
17
+ const HyperlaneRouterDeployer_1 = require("../router/HyperlaneRouterDeployer");
18
+ var BridgeAdapterType;
19
+ (function (BridgeAdapterType) {
20
+ BridgeAdapterType["Circle"] = "Circle";
21
+ })(BridgeAdapterType = exports.BridgeAdapterType || (exports.BridgeAdapterType = {}));
22
+ class LiquidityLayerDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDeployer {
23
+ constructor(multiProvider, configMap, core, create2salt = 'LiquidityLayerDeployerSalt') {
24
+ super(multiProvider, configMap, middleware_1.liquidityLayerFactories, {});
25
+ this.core = core;
26
+ this.create2salt = create2salt;
27
+ }
28
+ enrollRemoteRouters(contractsMap) {
29
+ const _super = Object.create(null, {
30
+ enrollRemoteRouters: { get: () => super.enrollRemoteRouters }
31
+ });
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ // Enroll the LiquidityLayerRouter with each other
34
+ yield _super.enrollRemoteRouters.call(this, contractsMap);
35
+ // Enroll the circle adapters with each other
36
+ yield _super.enrollRemoteRouters.call(this, (0, objects_1.objMap)(contractsMap, (_chain, contracts) => ({
37
+ router: contracts.circleBridgeAdapter,
38
+ })));
39
+ });
40
+ }
41
+ // Custom contract deployment logic can go here
42
+ // If no custom logic is needed, call deployContract for the router
43
+ deployContracts(chain, config) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const initCalldata = core_1.LiquidityLayerRouter__factory.createInterface().encodeFunctionData('initialize', [config.owner, config.mailbox, config.interchainGasPaymaster]);
46
+ const router = yield this.deployContract(chain, 'router', [], {
47
+ create2Salt: this.create2salt,
48
+ initCalldata,
49
+ });
50
+ const bridgeAdapters = {};
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
+ }
56
+ }
57
+ return Object.assign(Object.assign({}, bridgeAdapters), { router });
58
+ });
59
+ }
60
+ deployCircleBridgeAdapter(chain, adapterConfig, owner, router) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ const cc = this.multiProvider.getChainConnection(chain);
63
+ const initCalldata = core_1.CircleBridgeAdapter__factory.createInterface().encodeFunctionData('initialize', [
64
+ owner,
65
+ adapterConfig.circleBridgeAddress,
66
+ adapterConfig.messageTransmitterAddress,
67
+ router.address,
68
+ ]);
69
+ const circleBridgeAdapter = yield this.deployContract(chain, 'circleBridgeAdapter', [], {
70
+ create2Salt: this.create2salt,
71
+ initCalldata,
72
+ });
73
+ if ((yield circleBridgeAdapter.tokenSymbolToAddress('USDC')) ===
74
+ ethers_1.ethers.constants.AddressZero) {
75
+ this.logger(`Set USDC token contract`);
76
+ yield cc.handleTx(circleBridgeAdapter.addToken(adapterConfig.usdcAddress, 'USDC'));
77
+ }
78
+ // Set domain mappings
79
+ for (const { circleDomain, hyperlaneDomain, } of adapterConfig.circleDomainMapping) {
80
+ const expectedCircleDomain = yield circleBridgeAdapter.hyperlaneDomainToCircleDomain(hyperlaneDomain);
81
+ if (expectedCircleDomain === circleDomain)
82
+ continue;
83
+ this.logger(`Set circle domain ${circleDomain} for hyperlane domain ${hyperlaneDomain}`);
84
+ yield cc.handleTx(circleBridgeAdapter.addDomain(hyperlaneDomain, circleDomain));
85
+ }
86
+ this.logger('Set CircleLiquidityLayerAdapter on Router');
87
+ yield cc.handleTx(router.setLiquidityLayerAdapter(adapterConfig.type, circleBridgeAdapter.address));
88
+ return circleBridgeAdapter;
89
+ });
90
+ }
91
+ }
92
+ exports.LiquidityLayerDeployer = LiquidityLayerDeployer;
93
+ //# sourceMappingURL=LiquidityLayerRouterDeployer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiquidityLayerRouterDeployer.js","sourceRoot":"","sources":["../../../src/deploy/middleware/LiquidityLayerRouterDeployer.ts"],"names":[],"mappings":"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"}