@hyperlane-xyz/sdk 1.4.3-beta0 → 1.4.3-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.
Files changed (244) hide show
  1. package/dist/HyperlaneApp.d.ts.map +1 -1
  2. package/dist/HyperlaneApp.js +2 -2
  3. package/dist/HyperlaneApp.js.map +1 -1
  4. package/dist/consts/bytecode.js +1 -1
  5. package/dist/consts/bytecode.js.map +1 -1
  6. package/dist/consts/chainMetadata.d.ts +2 -1
  7. package/dist/consts/chainMetadata.d.ts.map +1 -1
  8. package/dist/consts/chainMetadata.js +26 -25
  9. package/dist/consts/chainMetadata.js.map +1 -1
  10. package/dist/consts/chains.d.ts +1 -1
  11. package/dist/consts/chains.d.ts.map +1 -1
  12. package/dist/consts/chains.js +2 -2
  13. package/dist/consts/chains.js.map +1 -1
  14. package/dist/consts/environments/index.d.ts +2 -2
  15. package/dist/consts/environments/index.d.ts.map +1 -1
  16. package/dist/consts/environments/index.js +2 -2
  17. package/dist/consts/environments/index.js.map +1 -1
  18. package/dist/contracts.d.ts +7 -7
  19. package/dist/contracts.d.ts.map +1 -1
  20. package/dist/contracts.js +33 -22
  21. package/dist/contracts.js.map +1 -1
  22. package/dist/core/CoreDeployer.hardhat-test.js +42 -33
  23. package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
  24. package/dist/core/HyperlaneCore.d.ts +3 -3
  25. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  26. package/dist/core/HyperlaneCore.js +28 -15
  27. package/dist/core/HyperlaneCore.js.map +1 -1
  28. package/dist/core/HyperlaneCore.test.js +13 -4
  29. package/dist/core/HyperlaneCore.test.js.map +1 -1
  30. package/dist/core/HyperlaneCoreChecker.js +99 -80
  31. package/dist/core/HyperlaneCoreChecker.js.map +1 -1
  32. package/dist/core/HyperlaneCoreDeployer.d.ts +3 -3
  33. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  34. package/dist/core/HyperlaneCoreDeployer.js +62 -45
  35. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  36. package/dist/core/TestCoreApp.js +45 -35
  37. package/dist/core/TestCoreApp.js.map +1 -1
  38. package/dist/core/TestCoreDeployer.js +27 -14
  39. package/dist/core/TestCoreDeployer.js.map +1 -1
  40. package/dist/core/contracts.d.ts +1 -1
  41. package/dist/core/contracts.d.ts.map +1 -1
  42. package/dist/core/events.d.ts +1 -1
  43. package/dist/core/events.d.ts.map +1 -1
  44. package/dist/core/testHyperlaneDeploy.hardhat-test.js +33 -24
  45. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
  46. package/dist/core/types.d.ts +5 -5
  47. package/dist/core/types.d.ts.map +1 -1
  48. package/dist/core/types.js +2 -2
  49. package/dist/core/types.js.map +1 -1
  50. package/dist/deploy/HyperlaneAppChecker.d.ts +2 -2
  51. package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
  52. package/dist/deploy/HyperlaneAppChecker.js +126 -103
  53. package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
  54. package/dist/deploy/HyperlaneDeployer.d.ts +3 -3
  55. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  56. package/dist/deploy/HyperlaneDeployer.js +216 -176
  57. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  58. package/dist/deploy/proxy.d.ts +7 -7
  59. package/dist/deploy/proxy.d.ts.map +1 -1
  60. package/dist/deploy/proxy.js +27 -12
  61. package/dist/deploy/proxy.js.map +1 -1
  62. package/dist/deploy/types.js +1 -1
  63. package/dist/deploy/types.js.map +1 -1
  64. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
  65. package/dist/deploy/verify/ContractVerifier.js +131 -123
  66. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  67. package/dist/deploy/verify/types.d.ts +3 -3
  68. package/dist/deploy/verify/types.d.ts.map +1 -1
  69. package/dist/gas/HyperlaneIgp.d.ts +2 -2
  70. package/dist/gas/HyperlaneIgp.d.ts.map +1 -1
  71. package/dist/gas/HyperlaneIgp.js.map +1 -1
  72. package/dist/gas/HyperlaneIgpChecker.d.ts +2 -2
  73. package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
  74. package/dist/gas/HyperlaneIgpChecker.js +123 -101
  75. package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
  76. package/dist/gas/HyperlaneIgpDeployer.d.ts +2 -2
  77. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
  78. package/dist/gas/HyperlaneIgpDeployer.js +89 -70
  79. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
  80. package/dist/gas/contracts.d.ts +1 -1
  81. package/dist/gas/contracts.d.ts.map +1 -1
  82. package/dist/gas/contracts.js +1 -6
  83. package/dist/gas/contracts.js.map +1 -1
  84. package/dist/gas/token-prices.d.ts +6 -6
  85. package/dist/gas/token-prices.d.ts.map +1 -1
  86. package/dist/gas/token-prices.js +54 -37
  87. package/dist/gas/token-prices.js.map +1 -1
  88. package/dist/gas/token-prices.test.js +20 -11
  89. package/dist/gas/token-prices.test.js.map +1 -1
  90. package/dist/gas/types.d.ts +10 -10
  91. package/dist/gas/types.d.ts.map +1 -1
  92. package/dist/gas/types.js +2 -2
  93. package/dist/gas/types.js.map +1 -1
  94. package/dist/hook/HyperlaneHookDeployer.d.ts +4 -4
  95. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  96. package/dist/hook/HyperlaneHookDeployer.js +89 -70
  97. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  98. package/dist/hook/contracts.d.ts +4 -4
  99. package/dist/hook/contracts.d.ts.map +1 -1
  100. package/dist/hook/contracts.js +1 -5
  101. package/dist/hook/contracts.js.map +1 -1
  102. package/dist/hook/types.d.ts +7 -7
  103. package/dist/hook/types.d.ts.map +1 -1
  104. package/dist/hook/types.js +1 -1
  105. package/dist/hook/types.js.map +1 -1
  106. package/dist/index.d.ts +4 -8
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +4 -25
  109. package/dist/index.js.map +1 -1
  110. package/dist/ism/HyperlaneIsmFactory.d.ts +3 -3
  111. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  112. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +23 -14
  113. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  114. package/dist/ism/HyperlaneIsmFactory.js +254 -232
  115. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  116. package/dist/ism/HyperlaneIsmFactoryDeployer.d.ts.map +1 -1
  117. package/dist/ism/HyperlaneIsmFactoryDeployer.js +35 -19
  118. package/dist/ism/HyperlaneIsmFactoryDeployer.js.map +1 -1
  119. package/dist/ism/contracts.d.ts +1 -1
  120. package/dist/ism/contracts.d.ts.map +1 -1
  121. package/dist/ism/types.d.ts +8 -8
  122. package/dist/ism/types.d.ts.map +1 -1
  123. package/dist/ism/types.js +1 -1
  124. package/dist/ism/types.js.map +1 -1
  125. package/dist/metadata/agentConfig.d.ts +5 -5
  126. package/dist/metadata/agentConfig.d.ts.map +1 -1
  127. package/dist/metadata/agentConfig.js +6 -15
  128. package/dist/metadata/agentConfig.js.map +1 -1
  129. package/dist/metadata/chainMetadata.test.js +11 -28
  130. package/dist/metadata/chainMetadata.test.js.map +1 -1
  131. package/dist/metadata/chainMetadataTypes.d.ts +3 -12
  132. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  133. package/dist/metadata/chainMetadataTypes.js +6 -14
  134. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  135. package/dist/metadata/deploymentArtifacts.d.ts +5 -5
  136. package/dist/metadata/deploymentArtifacts.d.ts.map +1 -1
  137. package/dist/middleware/account/InterchainAccountChecker.d.ts.map +1 -1
  138. package/dist/middleware/account/InterchainAccountChecker.js +3 -6
  139. package/dist/middleware/account/InterchainAccountChecker.js.map +1 -1
  140. package/dist/middleware/account/InterchainAccountDeployer.d.ts +1 -1
  141. package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
  142. package/dist/middleware/account/InterchainAccountDeployer.js +41 -28
  143. package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
  144. package/dist/middleware/account/accounts.hardhat-test.js +30 -21
  145. package/dist/middleware/account/accounts.hardhat-test.js.map +1 -1
  146. package/dist/middleware/account/contracts.d.ts +1 -1
  147. package/dist/middleware/account/contracts.d.ts.map +1 -1
  148. package/dist/middleware/account/contracts.js +1 -5
  149. package/dist/middleware/account/contracts.js.map +1 -1
  150. package/dist/middleware/liquidity-layer/LiquidityLayerApp.d.ts.map +1 -1
  151. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js +151 -129
  152. package/dist/middleware/liquidity-layer/LiquidityLayerApp.js.map +1 -1
  153. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +4 -4
  154. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
  155. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +110 -86
  156. package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
  157. package/dist/middleware/liquidity-layer/contracts.d.ts +1 -1
  158. package/dist/middleware/liquidity-layer/contracts.d.ts.map +1 -1
  159. package/dist/middleware/liquidity-layer/contracts.js +1 -6
  160. package/dist/middleware/liquidity-layer/contracts.js.map +1 -1
  161. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js +47 -43
  162. package/dist/middleware/liquidity-layer/liquidity-layer.hardhat-test.js.map +1 -1
  163. package/dist/middleware/query/InterchainQueryDeployer.d.ts +1 -1
  164. package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
  165. package/dist/middleware/query/InterchainQueryDeployer.js +27 -13
  166. package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
  167. package/dist/middleware/query/contracts.d.ts +1 -1
  168. package/dist/middleware/query/contracts.d.ts.map +1 -1
  169. package/dist/middleware/query/contracts.js +1 -4
  170. package/dist/middleware/query/contracts.js.map +1 -1
  171. package/dist/middleware/query/queries.hardhat-test.js +33 -24
  172. package/dist/middleware/query/queries.hardhat-test.js.map +1 -1
  173. package/dist/providers/MultiProvider.d.ts +4 -4
  174. package/dist/providers/MultiProvider.d.ts.map +1 -1
  175. package/dist/providers/MultiProvider.js +88 -68
  176. package/dist/providers/MultiProvider.js.map +1 -1
  177. package/dist/providers/RetryProvider.d.ts +1 -1
  178. package/dist/providers/RetryProvider.d.ts.map +1 -1
  179. package/dist/providers/RetryProvider.js +18 -4
  180. package/dist/providers/RetryProvider.js.map +1 -1
  181. package/dist/router/GasRouterDeployer.d.ts +2 -2
  182. package/dist/router/GasRouterDeployer.d.ts.map +1 -1
  183. package/dist/router/GasRouterDeployer.js +32 -18
  184. package/dist/router/GasRouterDeployer.js.map +1 -1
  185. package/dist/router/HyperlaneRouterChecker.js +55 -37
  186. package/dist/router/HyperlaneRouterChecker.js.map +1 -1
  187. package/dist/router/HyperlaneRouterDeployer.d.ts +2 -2
  188. package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  189. package/dist/router/HyperlaneRouterDeployer.js +114 -87
  190. package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
  191. package/dist/router/ProxiedRouterChecker.js +34 -14
  192. package/dist/router/ProxiedRouterChecker.js.map +1 -1
  193. package/dist/router/ProxiedRouterDeployer.js +39 -25
  194. package/dist/router/ProxiedRouterDeployer.js.map +1 -1
  195. package/dist/router/RouterApps.d.ts +3 -3
  196. package/dist/router/RouterApps.d.ts.map +1 -1
  197. package/dist/router/RouterApps.js +16 -5
  198. package/dist/router/RouterApps.js.map +1 -1
  199. package/dist/router/types.d.ts +14 -14
  200. package/dist/router/types.d.ts.map +1 -1
  201. package/dist/router/types.js +1 -1
  202. package/dist/router/types.js.map +1 -1
  203. package/dist/test/testUtils.d.ts +4 -4
  204. package/dist/test/testUtils.d.ts.map +1 -1
  205. package/dist/test/testUtils.js +25 -14
  206. package/dist/test/testUtils.js.map +1 -1
  207. package/dist/types.d.ts +5 -5
  208. package/dist/types.d.ts.map +1 -1
  209. package/dist/utils/MultiGeneric.js +4 -2
  210. package/dist/utils/MultiGeneric.js.map +1 -1
  211. package/dist/utils/fetch.js +16 -8
  212. package/dist/utils/fetch.js.map +1 -1
  213. package/dist/utils/filter.d.ts +3 -0
  214. package/dist/utils/filter.d.ts.map +1 -0
  215. package/dist/utils/filter.js +13 -0
  216. package/dist/utils/filter.js.map +1 -0
  217. package/dist/utils/wagmi.d.ts.map +1 -1
  218. package/dist/utils/wagmi.js +4 -3
  219. package/dist/utils/wagmi.js.map +1 -1
  220. package/package.json +7 -7
  221. package/dist/consts/agentStartBlocks.d.ts +0 -3
  222. package/dist/consts/agentStartBlocks.d.ts.map +0 -1
  223. package/dist/consts/agentStartBlocks.js +0 -28
  224. package/dist/consts/agentStartBlocks.js.map +0 -1
  225. package/dist/utils/ids.d.ts +0 -20
  226. package/dist/utils/ids.d.ts.map +0 -1
  227. package/dist/utils/ids.js +0 -47
  228. package/dist/utils/ids.js.map +0 -1
  229. package/dist/utils/number.d.ts +0 -32
  230. package/dist/utils/number.d.ts.map +0 -1
  231. package/dist/utils/number.js +0 -59
  232. package/dist/utils/number.js.map +0 -1
  233. package/dist/utils/objects.d.ts +0 -17
  234. package/dist/utils/objects.d.ts.map +0 -1
  235. package/dist/utils/objects.js +0 -77
  236. package/dist/utils/objects.js.map +0 -1
  237. package/dist/utils/time.d.ts +0 -8
  238. package/dist/utils/time.d.ts.map +0 -1
  239. package/dist/utils/time.js +0 -15
  240. package/dist/utils/time.js.map +0 -1
  241. package/dist/utils/utils.test.d.ts +0 -2
  242. package/dist/utils/utils.test.d.ts.map +0 -1
  243. package/dist/utils/utils.test.js +0 -41
  244. package/dist/utils/utils.test.js.map +0 -1
@@ -1,10 +1,18 @@
1
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.HyperlaneAppChecker = void 0;
4
13
  const utils_1 = require("ethers/lib/utils");
5
14
  const utils_2 = require("@hyperlane-xyz/utils");
6
15
  const contracts_1 = require("../contracts");
7
- const objects_1 = require("../utils/objects");
8
16
  const proxy_1 = require("./proxy");
9
17
  const types_1 = require("./types");
10
18
  class HyperlaneAppChecker {
@@ -14,84 +22,92 @@ class HyperlaneAppChecker {
14
22
  this.violations = [];
15
23
  this.configMap = configMap;
16
24
  }
17
- async check() {
18
- Object.keys(this.configMap)
19
- .filter((_) => !this.app.chains().includes(_))
20
- .forEach((chain) => this.addViolation({
21
- type: types_1.ViolationType.NotDeployed,
22
- chain,
23
- expected: '',
24
- actual: '',
25
- }));
26
- return Promise.all(this.app.chains().map((chain) => this.checkChain(chain)));
25
+ check() {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ Object.keys(this.configMap)
28
+ .filter((_) => !this.app.chains().includes(_))
29
+ .forEach((chain) => this.addViolation({
30
+ type: types_1.ViolationType.NotDeployed,
31
+ chain,
32
+ expected: '',
33
+ actual: '',
34
+ }));
35
+ return Promise.all(this.app.chains().map((chain) => this.checkChain(chain)));
36
+ });
27
37
  }
28
38
  addViolation(violation) {
29
39
  this.violations.push(violation);
30
40
  }
31
- async checkProxiedContracts(chain) {
32
- const expectedAdmin = this.app.getContracts(chain).proxyAdmin.address;
33
- if (!expectedAdmin) {
34
- throw new Error(`Checking proxied contracts for ${chain} with no admin provided`);
35
- }
36
- const provider = this.multiProvider.getProvider(chain);
37
- const contracts = this.app.getContracts(chain);
38
- await (0, objects_1.promiseObjAll)((0, objects_1.objMap)(contracts, async (name, contract) => {
39
- if (await (0, proxy_1.isProxy)(provider, contract.address)) {
40
- // Check the ProxiedContract's admin matches expectation
41
- const actualAdmin = await (0, proxy_1.proxyAdmin)(provider, contract.address);
42
- if (!utils_2.utils.eqAddress(actualAdmin, expectedAdmin)) {
43
- this.addViolation({
44
- type: types_1.ViolationType.ProxyAdmin,
45
- chain,
46
- name,
47
- expected: expectedAdmin,
48
- actual: actualAdmin,
49
- });
50
- }
41
+ checkProxiedContracts(chain) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ const expectedAdmin = this.app.getContracts(chain).proxyAdmin.address;
44
+ if (!expectedAdmin) {
45
+ throw new Error(`Checking proxied contracts for ${chain} with no admin provided`);
51
46
  }
52
- }));
47
+ const provider = this.multiProvider.getProvider(chain);
48
+ const contracts = this.app.getContracts(chain);
49
+ yield (0, utils_2.promiseObjAll)((0, utils_2.objMap)(contracts, (name, contract) => __awaiter(this, void 0, void 0, function* () {
50
+ if (yield (0, proxy_1.isProxy)(provider, contract.address)) {
51
+ // Check the ProxiedContract's admin matches expectation
52
+ const actualAdmin = yield (0, proxy_1.proxyAdmin)(provider, contract.address);
53
+ if (!(0, utils_2.eqAddress)(actualAdmin, expectedAdmin)) {
54
+ this.addViolation({
55
+ type: types_1.ViolationType.ProxyAdmin,
56
+ chain,
57
+ name,
58
+ expected: expectedAdmin,
59
+ actual: actualAdmin,
60
+ });
61
+ }
62
+ }
63
+ })));
64
+ });
53
65
  }
54
- async checkUpgrade(chain, upgradeConfig) {
55
- const timelockController = this.app.getContracts(chain)
56
- .timelockController;
57
- if (!timelockController) {
58
- throw new Error(`Checking upgrade config for ${chain} with no timelock provided`);
59
- }
60
- const minDelay = (await timelockController.getMinDelay()).toNumber();
61
- if (minDelay !== upgradeConfig.timelock.delay) {
62
- const violation = {
63
- type: types_1.ViolationType.TimelockController,
64
- chain,
65
- actual: minDelay,
66
- expected: upgradeConfig.timelock.delay,
67
- contract: timelockController,
68
- };
69
- this.addViolation(violation);
70
- }
71
- const roleIds = {
72
- executor: await timelockController.EXECUTOR_ROLE(),
73
- proposer: await timelockController.PROPOSER_ROLE(),
74
- canceller: await timelockController.CANCELLER_ROLE(),
75
- admin: await timelockController.TIMELOCK_ADMIN_ROLE(),
76
- };
77
- const accountHasRole = await (0, objects_1.promiseObjAll)((0, objects_1.objMap)(upgradeConfig.timelock.roles, async (role, account) => ({
78
- hasRole: await timelockController.hasRole(roleIds[role], account),
79
- account,
80
- })));
81
- for (const [role, { hasRole, account }] of Object.entries(accountHasRole)) {
82
- if (!hasRole) {
66
+ checkUpgrade(chain, upgradeConfig) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ const timelockController = this.app.getContracts(chain)
69
+ .timelockController;
70
+ if (!timelockController) {
71
+ throw new Error(`Checking upgrade config for ${chain} with no timelock provided`);
72
+ }
73
+ const minDelay = (yield timelockController.getMinDelay()).toNumber();
74
+ if (minDelay !== upgradeConfig.timelock.delay) {
83
75
  const violation = {
84
- type: types_1.ViolationType.AccessControl,
76
+ type: types_1.ViolationType.TimelockController,
85
77
  chain,
86
- account,
87
- actual: false,
88
- expected: true,
78
+ actual: minDelay,
79
+ expected: upgradeConfig.timelock.delay,
89
80
  contract: timelockController,
90
- role,
91
81
  };
92
82
  this.addViolation(violation);
93
83
  }
94
- }
84
+ const roleIds = {
85
+ executor: yield timelockController.EXECUTOR_ROLE(),
86
+ proposer: yield timelockController.PROPOSER_ROLE(),
87
+ canceller: yield timelockController.CANCELLER_ROLE(),
88
+ admin: yield timelockController.TIMELOCK_ADMIN_ROLE(),
89
+ };
90
+ const accountHasRole = yield (0, utils_2.promiseObjAll)((0, utils_2.objMap)(upgradeConfig.timelock.roles, (role, account) => __awaiter(this, void 0, void 0, function* () {
91
+ return ({
92
+ hasRole: yield timelockController.hasRole(roleIds[role], account),
93
+ account,
94
+ });
95
+ })));
96
+ for (const [role, { hasRole, account }] of Object.entries(accountHasRole)) {
97
+ if (!hasRole) {
98
+ const violation = {
99
+ type: types_1.ViolationType.AccessControl,
100
+ chain,
101
+ account,
102
+ actual: false,
103
+ expected: true,
104
+ contract: timelockController,
105
+ role,
106
+ };
107
+ this.addViolation(violation);
108
+ }
109
+ }
110
+ });
95
111
  }
96
112
  removeBytecodeMetadata(bytecode) {
97
113
  // https://docs.soliditylang.org/en/v0.8.17/metadata.html#encoding-of-the-metadata-hash-in-the-bytecode
@@ -99,57 +115,64 @@ class HyperlaneAppChecker {
99
115
  return bytecode.substring(0, bytecode.length - 90);
100
116
  }
101
117
  // This method checks whether the bytecode of a contract matches the expected bytecode. It forces the deployer to explicitly acknowledge a change in bytecode. The violations can be remediated by updating the expected bytecode hash.
102
- async checkBytecode(chain, name, address, expectedBytecodeHashes, modifyBytecodePriorToHash = (_) => _) {
103
- const provider = this.multiProvider.getProvider(chain);
104
- const bytecode = await provider.getCode(address);
105
- const bytecodeHash = (0, utils_1.keccak256)(modifyBytecodePriorToHash(this.removeBytecodeMetadata(bytecode)));
106
- if (!expectedBytecodeHashes.includes(bytecodeHash)) {
107
- this.addViolation({
108
- type: types_1.ViolationType.BytecodeMismatch,
109
- chain,
110
- expected: expectedBytecodeHashes,
111
- actual: bytecodeHash,
112
- name,
113
- });
114
- }
115
- }
116
- async ownables(chain) {
117
- const contracts = this.app.getContracts(chain);
118
- return (0, contracts_1.filterOwnableContracts)(contracts);
119
- }
120
- async checkOwnership(chain, owner, ownableOverrides) {
121
- const ownableContracts = await this.ownables(chain);
122
- for (const [name, contract] of Object.entries(ownableContracts)) {
123
- const expectedOwner = ownableOverrides?.[name] ?? owner;
124
- const actual = await contract.owner();
125
- if (!utils_2.utils.eqAddress(actual, expectedOwner)) {
126
- const violation = {
118
+ checkBytecode(chain, name, address, expectedBytecodeHashes, modifyBytecodePriorToHash = (_) => _) {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ const provider = this.multiProvider.getProvider(chain);
121
+ const bytecode = yield provider.getCode(address);
122
+ const bytecodeHash = (0, utils_1.keccak256)(modifyBytecodePriorToHash(this.removeBytecodeMetadata(bytecode)));
123
+ if (!expectedBytecodeHashes.includes(bytecodeHash)) {
124
+ this.addViolation({
125
+ type: types_1.ViolationType.BytecodeMismatch,
127
126
  chain,
127
+ expected: expectedBytecodeHashes,
128
+ actual: bytecodeHash,
128
129
  name,
129
- type: types_1.ViolationType.Owner,
130
- actual,
131
- expected: expectedOwner,
132
- contract,
133
- };
134
- this.addViolation(violation);
130
+ });
131
+ }
132
+ });
133
+ }
134
+ ownables(chain) {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ const contracts = this.app.getContracts(chain);
137
+ return (0, contracts_1.filterOwnableContracts)(contracts);
138
+ });
139
+ }
140
+ checkOwnership(chain, owner, ownableOverrides) {
141
+ var _a;
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ const ownableContracts = yield this.ownables(chain);
144
+ for (const [name, contract] of Object.entries(ownableContracts)) {
145
+ const expectedOwner = (_a = ownableOverrides === null || ownableOverrides === void 0 ? void 0 : ownableOverrides[name]) !== null && _a !== void 0 ? _a : owner;
146
+ const actual = yield contract.owner();
147
+ if (!(0, utils_2.eqAddress)(actual, expectedOwner)) {
148
+ const violation = {
149
+ chain,
150
+ name,
151
+ type: types_1.ViolationType.Owner,
152
+ actual,
153
+ expected: expectedOwner,
154
+ contract,
155
+ };
156
+ this.addViolation(violation);
157
+ }
135
158
  }
136
- }
159
+ });
137
160
  }
138
161
  expectViolations(violationCounts) {
139
162
  // Every type should have exactly the number of expected matches.
140
- (0, objects_1.objMap)(violationCounts, (type, count) => {
163
+ (0, utils_2.objMap)(violationCounts, (type, count) => {
141
164
  const actual = this.violations.filter((v) => v.type === type).length;
142
- utils_2.utils.assert(actual == count, `Expected ${count} ${type} violations, got ${actual}`);
165
+ (0, utils_2.assert)(actual == count, `Expected ${count} ${type} violations, got ${actual}`);
143
166
  });
144
167
  this.violations
145
168
  .filter((v) => !(v.type in violationCounts))
146
169
  .map((v) => {
147
- utils_2.utils.assert(false, `Unexpected violation: ${JSON.stringify(v)}`);
170
+ (0, utils_2.assert)(false, `Unexpected violation: ${JSON.stringify(v)}`);
148
171
  });
149
172
  }
150
173
  expectEmpty() {
151
174
  const count = this.violations.length;
152
- utils_2.utils.assert(count === 0, `Found ${count} violations`);
175
+ (0, utils_2.assert)(count === 0, `Found ${count} violations`);
153
176
  }
154
177
  }
155
178
  exports.HyperlaneAppChecker = HyperlaneAppChecker;
@@ -1 +1 @@
1
- {"version":3,"file":"HyperlaneAppChecker.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneAppChecker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperlaneAppChecker.js","sourceRoot":"","sources":["../../src/deploy/HyperlaneAppChecker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA6C;AAG7C,gDAM8B;AAG9B,4CAAsD;AAItD,mCAA6D;AAC7D,mCAQiB;AAEjB,MAAsB,mBAAmB;IASvC,YACE,aAA4B,EAC5B,GAAQ,EACR,SAA2B;QAE3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAIK,KAAK;;YACT,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;iBACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC7C,OAAO,CAAC,CAAC,KAAa,EAAE,EAAE,CACzB,IAAI,CAAC,YAAY,CAAC;gBAChB,IAAI,EAAE,qBAAa,CAAC,WAAW;gBAC/B,KAAK;gBACL,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,EAAE;aACX,CAAC,CACH,CAAC;YAEJ,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CACzD,CAAC;QACJ,CAAC;KAAA;IAED,YAAY,CAAC,SAA2B;QACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAEK,qBAAqB,CAAC,KAAgB;;YAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YACtE,IAAI,CAAC,aAAa,EAAE;gBAClB,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,yBAAyB,CACjE,CAAC;aACH;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAE/C,MAAM,IAAA,qBAAa,EACjB,IAAA,cAAM,EAAC,SAAS,EAAE,CAAO,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACzC,IAAI,MAAM,IAAA,eAAO,EAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;oBAC7C,wDAAwD;oBACxD,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAU,EAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACjE,IAAI,CAAC,IAAA,iBAAS,EAAC,WAAW,EAAE,aAAa,CAAC,EAAE;wBAC1C,IAAI,CAAC,YAAY,CAAC;4BAChB,IAAI,EAAE,qBAAa,CAAC,UAAU;4BAC9B,KAAK;4BACL,IAAI;4BACJ,QAAQ,EAAE,aAAa;4BACvB,MAAM,EAAE,WAAW;yBACG,CAAC,CAAC;qBAC3B;iBACF;YACH,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAEK,YAAY,CAChB,KAAgB,EAChB,aAA4B;;YAE5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;iBACpD,kBAAwC,CAAC;YAC5C,IAAI,CAAC,kBAAkB,EAAE;gBACvB,MAAM,IAAI,KAAK,CACb,+BAA+B,KAAK,4BAA4B,CACjE,CAAC;aACH;YAED,MAAM,QAAQ,GAAG,CAAC,MAAM,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YAErE,IAAI,QAAQ,KAAK,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC7C,MAAM,SAAS,GAAgC;oBAC7C,IAAI,EAAE,qBAAa,CAAC,kBAAkB;oBACtC,KAAK;oBACL,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK;oBACtC,QAAQ,EAAE,kBAAkB;iBAC7B,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;aAC9B;YAED,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,MAAM,kBAAkB,CAAC,aAAa,EAAE;gBAClD,QAAQ,EAAE,MAAM,kBAAkB,CAAC,aAAa,EAAE;gBAClD,SAAS,EAAE,MAAM,kBAAkB,CAAC,cAAc,EAAE;gBACpD,KAAK,EAAE,MAAM,kBAAkB,CAAC,mBAAmB,EAAE;aACtD,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,IAAA,qBAAa,EACxC,IAAA,cAAM,EAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAO,IAAI,EAAE,OAAO,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC7D,OAAO,EAAE,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;oBACjE,OAAO;iBACR,CAAC,CAAA;cAAA,CAAC,CACJ,CAAC;YAEF,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBACzE,IAAI,CAAC,OAAO,EAAE;oBACZ,MAAM,SAAS,GAA2B;wBACxC,IAAI,EAAE,qBAAa,CAAC,aAAa;wBACjC,KAAK;wBACL,OAAO;wBACP,MAAM,EAAE,KAAK;wBACb,QAAQ,EAAE,IAAI;wBACd,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI;qBACL,CAAC;oBACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;iBAC9B;aACF;QACH,CAAC;KAAA;IAEO,sBAAsB,CAAC,QAAgB;QAC7C,uGAAuG;QACvG,qCAAqC;QACrC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,uOAAuO;IACjO,aAAa,CACjB,KAAgB,EAChB,IAAY,EACZ,OAAe,EACf,sBAAgC,EAChC,4BAA0D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;YAElE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,IAAA,iBAAS,EAC5B,yBAAyB,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CACjE,CAAC;YACF,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBAClD,IAAI,CAAC,YAAY,CAAC;oBAChB,IAAI,EAAE,qBAAa,CAAC,gBAAgB;oBACpC,KAAK;oBACL,QAAQ,EAAE,sBAAsB;oBAChC,MAAM,EAAE,YAAY;oBACpB,IAAI;iBACwB,CAAC,CAAC;aACjC;QACH,CAAC;KAAA;IAEK,QAAQ,CAAC,KAAgB;;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/C,OAAO,IAAA,kCAAsB,EAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEe,cAAc,CAC5B,KAAgB,EAChB,KAAc,EACd,gBAA0C;;;YAE1C,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;gBAC/D,MAAM,aAAa,GAAG,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,IAAI,CAAC,mCAAI,KAAK,CAAC;gBACxD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAA,iBAAS,EAAC,MAAM,EAAE,aAAa,CAAC,EAAE;oBACrC,MAAM,SAAS,GAAmB;wBAChC,KAAK;wBACL,IAAI;wBACJ,IAAI,EAAE,qBAAa,CAAC,KAAK;wBACzB,MAAM;wBACN,QAAQ,EAAE,aAAa;wBACvB,QAAQ;qBACT,CAAC;oBACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;iBAC9B;aACF;;KACF;IAED,gBAAgB,CAAC,eAAuC;QACtD,iEAAiE;QACjE,IAAA,cAAM,EAAC,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;YACrE,IAAA,cAAM,EACJ,MAAM,IAAI,KAAK,EACf,YAAY,KAAK,IAAI,IAAI,oBAAoB,MAAM,EAAE,CACtD,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,IAAA,cAAM,EAAC,KAAK,EAAE,yBAAyB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QACrC,IAAA,cAAM,EAAC,KAAK,KAAK,CAAC,EAAE,SAAS,KAAK,aAAa,CAAC,CAAC;IACnD,CAAC;CACF;AA7MD,kDA6MC"}
@@ -1,7 +1,7 @@
1
1
  import { Debugger } from 'debug';
2
2
  import { Contract, ethers } from 'ethers';
3
3
  import { HyperlaneConnectionClient, Ownable, ProxyAdmin, TimelockController, TransparentUpgradeableProxy } from '@hyperlane-xyz/core';
4
- import { types } from '@hyperlane-xyz/utils';
4
+ import { Address } from '@hyperlane-xyz/utils';
5
5
  import { HyperlaneAddressesMap, HyperlaneContracts, HyperlaneContractsMap, HyperlaneFactories } from '../contracts';
6
6
  import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory';
7
7
  import { MultiProvider } from '../providers/MultiProvider';
@@ -39,7 +39,7 @@ export declare abstract class HyperlaneDeployer<Config, Factories extends Hyperl
39
39
  protected upgradeAndInitialize<C extends ethers.Contract>(chain: ChainName, proxy: TransparentUpgradeableProxy, implementation: C, initializeArgs: Parameters<C['initialize']>): Promise<void>;
40
40
  protected deployProxy<C extends ethers.Contract>(chain: ChainName, implementation: C, proxyAdmin: string, initializeArgs?: Parameters<C['initialize']>): Promise<C>;
41
41
  deployTimelock(chain: ChainName, timelockConfig: UpgradeConfig['timelock']): Promise<TimelockController>;
42
- protected writeCache<K extends keyof Factories>(chain: ChainName, contractName: K, address: types.Address): void;
42
+ protected writeCache<K extends keyof Factories>(chain: ChainName, contractName: K, address: Address): void;
43
43
  protected readCache<F extends ethers.ContractFactory>(chain: ChainName, factory: F, contractName: string): Awaited<ReturnType<F['deploy']>> | undefined;
44
44
  /**
45
45
  * Deploys the Implementation and Proxy for a given contract
@@ -47,7 +47,7 @@ export declare abstract class HyperlaneDeployer<Config, Factories extends Hyperl
47
47
  */
48
48
  deployProxiedContract<K extends keyof Factories>(chain: ChainName, contractName: K, proxyAdmin: string, constructorArgs: Parameters<Factories[K]['deploy']>, initializeArgs?: Parameters<HyperlaneContracts<Factories>[K]['initialize']>): Promise<HyperlaneContracts<Factories>[K]>;
49
49
  mergeWithExistingVerificationInputs(existingInputsMap: ChainMap<ContractVerificationInput[]>): ChainMap<ContractVerificationInput[]>;
50
- protected transferOwnershipOfContracts(chain: ChainName, owner: types.Address, ownables: {
50
+ protected transferOwnershipOfContracts(chain: ChainName, owner: Address, ownables: {
51
51
  [key: string]: Ownable;
52
52
  }): Promise<ethers.ContractReceipt[]>;
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HyperlaneDeployer.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperlaneDeployer.d.ts","sourceRoot":"","sources":["../../src/deploy/HyperlaneDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAS,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EACL,yBAAyB,EAGzB,OAAO,EACP,UAAU,EAEV,kBAAkB,EAElB,2BAA2B,EAE5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,EAA6B,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAc,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED,8BAAsB,iBAAiB,CACrC,MAAM,EACN,SAAS,SAAS,kBAAkB;IAWlC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAC/C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS;IACvC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IAXtB,kBAAkB,EAAE,QAAQ,CAAC,yBAAyB,EAAE,CAAC,CAAM;IAC/D,eAAe,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAM;IACjD,iBAAiB,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAM;IACzD,oBAAoB,EAAE,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,CAAM;IAE/D,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC3B,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;gBAGZ,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,6BAAiB;IAM9C,iBAAiB,CAAC,YAAY,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI;IAI3D,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,QAAQ,CAAC,eAAe,CACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAEnC,MAAM,CACV,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;cA4B5B,KAAK,CAAC,CAAC,EACrB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,KAAK,SAAY,GAChB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;cAUT,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;cAIT,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,QAAQ,EACf,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC/B,iBAAiB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GACxD,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;cAoBT,oBAAoB,CAClC,KAAK,EAAE,SAAS,EAChB,gBAAgB,EAAE,yBAAyB,EAC3C,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,IAAI,CAAC;cAoFA,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,eAAe,EACxE,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CAAC,EACV,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EACxC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAC1E,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAiC7B,cAAc,CAAC,CAAC,SAAS,MAAM,SAAS,EAC5C,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,CAAC,EACf,eAAe,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EACnD,cAAc,CAAC,EAAE,UAAU,CACzB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAC1D,GACA,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;cAY5B,WAAW,CACzB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,2BAA2B,EAClC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;cA4BA,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EAC5D,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,2BAA2B,EAClC,cAAc,EAAE,CAAC,EACjB,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAC1C,OAAO,CAAC,IAAI,CAAC;cAkCA,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,EACnD,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,CAAC,EACjB,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAC3C,OAAO,CAAC,CAAC,CAAC;IAwBP,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,aAAa,CAAC,UAAU,CAAC,GACxC,OAAO,CAAC,kBAAkB,CAAC;IAgB9B,SAAS,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,SAAS,EAC5C,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,OAAO,GACf,IAAI;IAOP,SAAS,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,eAAe,EAClD,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CAAC,EACV,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS;IAmB/C;;;OAGG;IACG,qBAAqB,CAAC,CAAC,SAAS,MAAM,SAAS,EACnD,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,CAAC,EACf,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EACnD,cAAc,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAC1E,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IA6B5C,mCAAmC,CACjC,iBAAiB,EAAE,QAAQ,CAAC,yBAAyB,EAAE,CAAC,GACvD,QAAQ,CAAC,yBAAyB,EAAE,CAAC;cAcxB,4BAA4B,CAC1C,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GACnC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;CAwBrC"}