@hyperlane-xyz/sdk 8.8.1 → 9.0.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 (184) hide show
  1. package/dist/block-explorer/etherscan.d.ts +41 -0
  2. package/dist/block-explorer/etherscan.d.ts.map +1 -0
  3. package/dist/block-explorer/etherscan.js +53 -0
  4. package/dist/block-explorer/etherscan.js.map +1 -0
  5. package/dist/ccip/HyperlaneCCIPDeployer.d.ts +18 -0
  6. package/dist/ccip/HyperlaneCCIPDeployer.d.ts.map +1 -0
  7. package/dist/ccip/HyperlaneCCIPDeployer.js +122 -0
  8. package/dist/ccip/HyperlaneCCIPDeployer.js.map +1 -0
  9. package/dist/ccip/consts.d.ts +24 -0
  10. package/dist/ccip/consts.d.ts.map +1 -0
  11. package/dist/ccip/consts.js +691 -0
  12. package/dist/ccip/consts.js.map +1 -0
  13. package/dist/ccip/utils.d.ts +46 -0
  14. package/dist/ccip/utils.d.ts.map +1 -0
  15. package/dist/ccip/utils.js +95 -0
  16. package/dist/ccip/utils.js.map +1 -0
  17. package/dist/consts/multisigIsm.d.ts.map +1 -1
  18. package/dist/consts/multisigIsm.js +45 -9
  19. package/dist/consts/multisigIsm.js.map +1 -1
  20. package/dist/contracts/contracts.d.ts +2 -2
  21. package/dist/contracts/contracts.d.ts.map +1 -1
  22. package/dist/contracts/contracts.js +4 -13
  23. package/dist/contracts/contracts.js.map +1 -1
  24. package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  25. package/dist/core/HyperlaneCoreDeployer.js +6 -2
  26. package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
  27. package/dist/core/HyperlaneRelayer.d.ts +43 -3
  28. package/dist/core/HyperlaneRelayer.d.ts.map +1 -1
  29. package/dist/core/types.d.ts +3558 -2040
  30. package/dist/core/types.d.ts.map +1 -1
  31. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  32. package/dist/deploy/HyperlaneDeployer.js +6 -1
  33. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  34. package/dist/deploy/proxy.d.ts.map +1 -1
  35. package/dist/deploy/proxy.js +4 -0
  36. package/dist/deploy/proxy.js.map +1 -1
  37. package/dist/deploy/verify/utils.d.ts.map +1 -1
  38. package/dist/deploy/verify/utils.js +3 -9
  39. package/dist/deploy/verify/utils.js.map +1 -1
  40. package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
  41. package/dist/gas/HyperlaneIgpDeployer.js +15 -3
  42. package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
  43. package/dist/hook/EvmHookModule.d.ts +12 -4
  44. package/dist/hook/EvmHookModule.d.ts.map +1 -1
  45. package/dist/hook/EvmHookModule.hardhat-test.js +2 -106
  46. package/dist/hook/EvmHookModule.hardhat-test.js.map +1 -1
  47. package/dist/hook/EvmHookModule.js +38 -10
  48. package/dist/hook/EvmHookModule.js.map +1 -1
  49. package/dist/hook/EvmHookReader.d.ts +7 -1
  50. package/dist/hook/EvmHookReader.d.ts.map +1 -1
  51. package/dist/hook/EvmHookReader.js +69 -4
  52. package/dist/hook/EvmHookReader.js.map +1 -1
  53. package/dist/hook/EvmHookReader.test.js +50 -1
  54. package/dist/hook/EvmHookReader.test.js.map +1 -1
  55. package/dist/hook/HyperlaneHookDeployer.d.ts +4 -2
  56. package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
  57. package/dist/hook/HyperlaneHookDeployer.js +39 -6
  58. package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
  59. package/dist/hook/contracts.d.ts +4 -1
  60. package/dist/hook/contracts.d.ts.map +1 -1
  61. package/dist/hook/contracts.js +4 -1
  62. package/dist/hook/contracts.js.map +1 -1
  63. package/dist/hook/types.d.ts +2012 -3
  64. package/dist/hook/types.d.ts.map +1 -1
  65. package/dist/hook/types.js +28 -0
  66. package/dist/hook/types.js.map +1 -1
  67. package/dist/index.d.ts +11 -5
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +10 -4
  70. package/dist/index.js.map +1 -1
  71. package/dist/ism/EvmIsmModule.d.ts +4 -2
  72. package/dist/ism/EvmIsmModule.d.ts.map +1 -1
  73. package/dist/ism/EvmIsmModule.hardhat-test.js +10 -71
  74. package/dist/ism/EvmIsmModule.hardhat-test.js.map +1 -1
  75. package/dist/ism/EvmIsmModule.js +4 -4
  76. package/dist/ism/EvmIsmModule.js.map +1 -1
  77. package/dist/ism/EvmIsmReader.d.ts +1 -0
  78. package/dist/ism/EvmIsmReader.d.ts.map +1 -1
  79. package/dist/ism/EvmIsmReader.js +45 -7
  80. package/dist/ism/EvmIsmReader.js.map +1 -1
  81. package/dist/ism/EvmIsmReader.test.js +4 -1
  82. package/dist/ism/EvmIsmReader.test.js.map +1 -1
  83. package/dist/ism/HyperlaneIsmFactory.d.ts +9 -4
  84. package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
  85. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +15 -0
  86. package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
  87. package/dist/ism/HyperlaneIsmFactory.js +43 -4
  88. package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
  89. package/dist/ism/metadata/builder.d.ts.map +1 -1
  90. package/dist/ism/metadata/builder.js +1 -0
  91. package/dist/ism/metadata/builder.js.map +1 -1
  92. package/dist/ism/metadata/routing.d.ts.map +1 -1
  93. package/dist/ism/metadata/routing.js +8 -2
  94. package/dist/ism/metadata/routing.js.map +1 -1
  95. package/dist/ism/types.d.ts +34 -5
  96. package/dist/ism/types.d.ts.map +1 -1
  97. package/dist/ism/types.js +15 -0
  98. package/dist/ism/types.js.map +1 -1
  99. package/dist/ism/utils.d.ts.map +1 -1
  100. package/dist/ism/utils.js +30 -2
  101. package/dist/ism/utils.js.map +1 -1
  102. package/dist/metadata/agentConfig.d.ts +276 -276
  103. package/dist/metadata/chainMetadataTypes.d.ts +1 -0
  104. package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
  105. package/dist/metadata/chainMetadataTypes.js +1 -0
  106. package/dist/metadata/chainMetadataTypes.js.map +1 -1
  107. package/dist/metadata/deploymentArtifacts.d.ts +2 -2
  108. package/dist/providers/ProviderType.d.ts +29 -5
  109. package/dist/providers/ProviderType.d.ts.map +1 -1
  110. package/dist/providers/ProviderType.js +2 -0
  111. package/dist/providers/ProviderType.js.map +1 -1
  112. package/dist/providers/explorerHealthTest.d.ts.map +1 -1
  113. package/dist/providers/explorerHealthTest.js +1 -0
  114. package/dist/providers/explorerHealthTest.js.map +1 -1
  115. package/dist/providers/providerBuilders.d.ts +2 -1
  116. package/dist/providers/providerBuilders.d.ts.map +1 -1
  117. package/dist/providers/providerBuilders.js +9 -0
  118. package/dist/providers/providerBuilders.js.map +1 -1
  119. package/dist/router/types.d.ts +129 -9
  120. package/dist/router/types.d.ts.map +1 -1
  121. package/dist/test/testUtils.d.ts +8 -0
  122. package/dist/test/testUtils.d.ts.map +1 -1
  123. package/dist/test/testUtils.js +191 -1
  124. package/dist/test/testUtils.js.map +1 -1
  125. package/dist/token/EvmERC20WarpModule.d.ts +4 -1
  126. package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
  127. package/dist/token/EvmERC20WarpModule.js +12 -8
  128. package/dist/token/EvmERC20WarpModule.js.map +1 -1
  129. package/dist/token/EvmERC20WarpRouteReader.d.ts +4 -3
  130. package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
  131. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js +72 -3
  132. package/dist/token/EvmERC20WarpRouteReader.hardhat-test.js.map +1 -1
  133. package/dist/token/EvmERC20WarpRouteReader.js +84 -15
  134. package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
  135. package/dist/token/Token.test.js +4 -0
  136. package/dist/token/Token.test.js.map +1 -1
  137. package/dist/token/TokenStandard.d.ts +8 -1
  138. package/dist/token/TokenStandard.d.ts.map +1 -1
  139. package/dist/token/TokenStandard.js +23 -0
  140. package/dist/token/TokenStandard.js.map +1 -1
  141. package/dist/token/adapters/EvmTokenAdapter.d.ts +49 -15
  142. package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
  143. package/dist/token/adapters/EvmTokenAdapter.js +152 -42
  144. package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
  145. package/dist/token/adapters/ITokenAdapter.d.ts +19 -0
  146. package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
  147. package/dist/token/checker.d.ts +4 -1
  148. package/dist/token/checker.d.ts.map +1 -1
  149. package/dist/token/checker.js +33 -5
  150. package/dist/token/checker.js.map +1 -1
  151. package/dist/token/config.d.ts +1 -0
  152. package/dist/token/config.d.ts.map +1 -1
  153. package/dist/token/config.js +2 -0
  154. package/dist/token/config.js.map +1 -1
  155. package/dist/token/configUtils.d.ts +10 -0
  156. package/dist/token/configUtils.d.ts.map +1 -0
  157. package/dist/token/configUtils.js +48 -0
  158. package/dist/token/configUtils.js.map +1 -0
  159. package/dist/token/contracts.d.ts +2 -2
  160. package/dist/token/contracts.d.ts.map +1 -1
  161. package/dist/token/contracts.js +4 -3
  162. package/dist/token/contracts.js.map +1 -1
  163. package/dist/token/deploy.d.ts +2 -2
  164. package/dist/token/deploy.d.ts.map +1 -1
  165. package/dist/token/deploy.hardhat-test.js +69 -6
  166. package/dist/token/deploy.hardhat-test.js.map +1 -1
  167. package/dist/token/deploy.js +12 -8
  168. package/dist/token/deploy.js.map +1 -1
  169. package/dist/token/nativeTokenMetadata.d.ts.map +1 -1
  170. package/dist/token/nativeTokenMetadata.js +6 -0
  171. package/dist/token/nativeTokenMetadata.js.map +1 -1
  172. package/dist/token/types.d.ts +3631 -252
  173. package/dist/token/types.d.ts.map +1 -1
  174. package/dist/token/types.js +125 -3
  175. package/dist/token/types.js.map +1 -1
  176. package/dist/token/types.test.js +2 -3
  177. package/dist/token/types.test.js.map +1 -1
  178. package/dist/token/xerc20.d.ts +13 -0
  179. package/dist/token/xerc20.d.ts.map +1 -0
  180. package/dist/token/xerc20.js +174 -0
  181. package/dist/token/xerc20.js.map +1 -0
  182. package/dist/utils/cosmos.d.ts +2 -2
  183. package/dist/warp/types.d.ts +14 -14
  184. package/package.json +4 -3
@@ -1,14 +1,39 @@
1
1
  import { BigNumber } from 'ethers';
2
- import { ERC20__factory, IXERC20Lockbox__factory, } from '@hyperlane-xyz/core';
2
+ import { ERC20__factory, IXERC20Lockbox__factory, Ownable__factory, ProxyAdmin__factory, } from '@hyperlane-xyz/core';
3
3
  import { eqAddress, objMap } from '@hyperlane-xyz/utils';
4
+ import { filterOwnableContracts } from '../contracts/contracts.js';
5
+ import { isProxy, proxyAdmin } from '../deploy/proxy.js';
4
6
  import { ProxiedRouterChecker } from '../router/ProxiedRouterChecker.js';
5
7
  import { TokenType } from './config.js';
6
- import { isCollateralTokenConfig, isNativeTokenConfig, isSyntheticTokenConfig, } from './types.js';
8
+ import { isCollateralTokenConfig, isNativeTokenConfig, isSyntheticTokenConfig, isXERC20TokenConfig, } from './types.js';
7
9
  export class HypERC20Checker extends ProxiedRouterChecker {
8
10
  async checkChain(chain) {
9
11
  await super.checkChain(chain);
10
12
  await this.checkToken(chain);
11
13
  }
14
+ async ownables(chain) {
15
+ const contracts = this.app.getContracts(chain);
16
+ if (isCollateralTokenConfig(this.configMap[chain]) ||
17
+ isXERC20TokenConfig(this.configMap[chain])) {
18
+ let collateralToken = await this.getCollateralToken(chain);
19
+ const provider = this.multiProvider.getProvider(chain);
20
+ // XERC20s are Ownable
21
+ const expectedConfig = this.configMap[chain];
22
+ if (expectedConfig.type === TokenType.XERC20Lockbox) {
23
+ const lockbox = IXERC20Lockbox__factory.connect(expectedConfig.token, provider);
24
+ collateralToken = ERC20__factory.connect(await lockbox.callStatic['XERC20()'](), provider);
25
+ contracts['collateralToken'] = Ownable__factory.connect(collateralToken.address, provider);
26
+ }
27
+ if (expectedConfig.type === TokenType.XERC20) {
28
+ contracts['collateralToken'] = Ownable__factory.connect(collateralToken.address, provider);
29
+ }
30
+ if (await isProxy(provider, collateralToken.address)) {
31
+ const admin = await proxyAdmin(provider, collateralToken.address);
32
+ contracts['collateralProxyAdmin'] = ProxyAdmin__factory.connect(admin, provider);
33
+ }
34
+ }
35
+ return filterOwnableContracts(contracts);
36
+ }
12
37
  async checkToken(chain) {
13
38
  const checkERC20 = async (token, config) => {
14
39
  const checks = [
@@ -56,7 +81,8 @@ export class HypERC20Checker extends ProxiedRouterChecker {
56
81
  else if (isSyntheticTokenConfig(expectedConfig)) {
57
82
  await checkERC20(hypToken, expectedConfig);
58
83
  }
59
- else if (isCollateralTokenConfig(expectedConfig)) {
84
+ else if (isCollateralTokenConfig(expectedConfig) ||
85
+ isXERC20TokenConfig(expectedConfig)) {
60
86
  const collateralToken = await this.getCollateralToken(chain);
61
87
  const actualToken = await hypToken.wrappedToken();
62
88
  if (!eqAddress(collateralToken.address, actualToken)) {
@@ -99,7 +125,8 @@ export class HypERC20Checker extends ProxiedRouterChecker {
99
125
  else if (isSyntheticTokenConfig(expectedConfig)) {
100
126
  decimals = await hypToken.decimals();
101
127
  }
102
- else if (isCollateralTokenConfig(expectedConfig)) {
128
+ else if (isCollateralTokenConfig(expectedConfig) ||
129
+ isXERC20TokenConfig(expectedConfig)) {
103
130
  const collateralToken = await this.getCollateralToken(chain);
104
131
  decimals = await collateralToken.decimals();
105
132
  }
@@ -111,7 +138,8 @@ export class HypERC20Checker extends ProxiedRouterChecker {
111
138
  async getCollateralToken(chain) {
112
139
  const expectedConfig = this.configMap[chain];
113
140
  let collateralToken = undefined;
114
- if (isCollateralTokenConfig(expectedConfig)) {
141
+ if (isCollateralTokenConfig(expectedConfig) ||
142
+ isXERC20TokenConfig(expectedConfig)) {
115
143
  const provider = this.multiProvider.getProvider(chain);
116
144
  if (expectedConfig.type === TokenType.XERC20Lockbox) {
117
145
  const collateralTokenAddress = await IXERC20Lockbox__factory.connect(expectedConfig.token, provider).callStatic.ERC20();
@@ -1 +1 @@
1
- {"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/token/checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/token/checker.ts"],"names":[],"mappings":"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"}
@@ -15,4 +15,5 @@ export declare enum TokenType {
15
15
  nativeScaled = "nativeScaled"
16
16
  }
17
17
  export declare const gasOverhead: (tokenType: TokenType) => number;
18
+ export declare const NON_ZERO_SENDER_ADDRESS = "0x0000000000000000000000000000000000000001";
18
19
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/token/config.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IACjB,YAAY,iBAAiB;CAC9B;AAED,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAUlD,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/token/config.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,SAAS,cAAc;IACvB,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IAEjB,YAAY,iBAAiB;CAC9B;AAED,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAUlD,CAAC;AAEF,eAAO,MAAM,uBAAuB,+CACU,CAAC"}
@@ -13,6 +13,7 @@ export var TokenType;
13
13
  TokenType["fastCollateral"] = "fastCollateral";
14
14
  TokenType["collateralUri"] = "collateralUri";
15
15
  TokenType["native"] = "native";
16
+ // backwards compatible alias to native
16
17
  TokenType["nativeScaled"] = "nativeScaled";
17
18
  })(TokenType || (TokenType = {}));
18
19
  export const gasOverhead = (tokenType) => {
@@ -26,4 +27,5 @@ export const gasOverhead = (tokenType) => {
26
27
  return 68000;
27
28
  }
28
29
  };
30
+ export const NON_ZERO_SENDER_ADDRESS = '0x0000000000000000000000000000000000000001';
29
31
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/token/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAeX;AAfD,WAAY,SAAS;IACnB,oCAAuB,CAAA;IACvB,gDAAmC,CAAA;IACnC,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,sCAAyB,CAAA;IACzB,gDAAmC,CAAA;IACnC,4DAA+C,CAAA;IAC/C,8BAAiB,CAAA;IACjB,4CAA+B,CAAA;IAC/B,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,4CAA+B,CAAA;IAC/B,8BAAiB,CAAA;IACjB,0CAA6B,CAAA;AAC/B,CAAC,EAfW,SAAS,KAAT,SAAS,QAepB;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAU,EAAE;IAC1D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,aAAa,CAAC;QAC7B,KAAK,SAAS,CAAC,SAAS;YACtB,OAAO,KAAM,CAAC;QAChB,KAAK,SAAS,CAAC,MAAM;YACnB,OAAO,KAAM,CAAC;QAChB;YACE,OAAO,KAAM,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/token/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAgBX;AAhBD,WAAY,SAAS;IACnB,oCAAuB,CAAA;IACvB,gDAAmC,CAAA;IACnC,4CAA+B,CAAA;IAC/B,0CAA6B,CAAA;IAC7B,sCAAyB,CAAA;IACzB,gDAAmC,CAAA;IACnC,4DAA+C,CAAA;IAC/C,8BAAiB,CAAA;IACjB,4CAA+B,CAAA;IAC/B,8CAAiC,CAAA;IACjC,8CAAiC,CAAA;IACjC,4CAA+B,CAAA;IAC/B,8BAAiB,CAAA;IACjB,uCAAuC;IACvC,0CAA6B,CAAA;AAC/B,CAAC,EAhBW,SAAS,KAAT,SAAS,QAgBpB;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAU,EAAE;IAC1D,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,aAAa,CAAC;QAC7B,KAAK,SAAS,CAAC,SAAS;YACtB,OAAO,KAAM,CAAC;QAChB,KAAK,SAAS,CAAC,MAAM;YACnB,OAAO,KAAM,CAAC;QAChB;YACE,OAAO,KAAM,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAClC,4CAA4C,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Address } from '@hyperlane-xyz/utils';
2
+ import { MultiProvider } from '../providers/MultiProvider.js';
3
+ import { DestinationGas, RemoteRouters } from '../router/types.js';
4
+ import { ChainMap } from '../types.js';
5
+ import { WarpCoreConfig } from '../warp/types.js';
6
+ import { WarpRouteDeployConfig } from './types.js';
7
+ export declare function getDefaultRemoteRouterAndDestinationGasConfig(multiProvider: MultiProvider, chain: string, deployedRoutersAddresses: ChainMap<Address>, warpDeployConfig: WarpRouteDeployConfig): [RemoteRouters, DestinationGas];
8
+ export declare function getRouterAddressesFromWarpCoreConfig(warpCoreConfig: WarpCoreConfig): ChainMap<Address>;
9
+ export declare function expandWarpDeployConfig(multiProvider: MultiProvider, warpDeployConfig: WarpRouteDeployConfig, deployedRoutersAddresses: ChainMap<Address>): Promise<WarpRouteDeployConfig>;
10
+ //# sourceMappingURL=configUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configUtils.d.ts","sourceRoot":"","sources":["../../src/token/configUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAU,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAYnD,wBAAgB,6CAA6C,CAC3D,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,MAAM,EACb,wBAAwB,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC3C,gBAAgB,EAAE,qBAAqB,GACtC,CAAC,aAAa,EAAE,cAAc,CAAC,CAmBjC;AAED,wBAAgB,oCAAoC,CAClD,cAAc,EAAE,cAAc,GAC7B,QAAQ,CAAC,OAAO,CAAC,CAOnB;AAED,wBAAsB,sBAAsB,CAC1C,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,qBAAqB,EACvC,wBAAwB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAC1C,OAAO,CAAC,qBAAqB,CAAC,CA2BhC"}
@@ -0,0 +1,48 @@
1
+ import { zeroAddress } from 'viem';
2
+ import { objMap } from '@hyperlane-xyz/utils';
3
+ import { gasOverhead } from './config.js';
4
+ import { HypERC20Deployer } from './deploy.js';
5
+ /**
6
+ * Gets gas configuration for a chain
7
+ */
8
+ const getGasConfig = (warpDeployConfig, chain) => warpDeployConfig[chain].gas?.toString() ||
9
+ gasOverhead(warpDeployConfig[chain].type).toString();
10
+ export function getDefaultRemoteRouterAndDestinationGasConfig(multiProvider, chain, deployedRoutersAddresses, warpDeployConfig) {
11
+ const remoteRouters = {};
12
+ const destinationGas = {};
13
+ const otherChains = multiProvider
14
+ .getRemoteChains(chain)
15
+ .filter((c) => Object.keys(deployedRoutersAddresses).includes(c));
16
+ for (const otherChain of otherChains) {
17
+ const domainId = multiProvider.getDomainId(otherChain);
18
+ remoteRouters[domainId] = {
19
+ address: deployedRoutersAddresses[otherChain],
20
+ };
21
+ destinationGas[domainId] = getGasConfig(warpDeployConfig, otherChain);
22
+ }
23
+ return [remoteRouters, destinationGas];
24
+ }
25
+ export function getRouterAddressesFromWarpCoreConfig(warpCoreConfig) {
26
+ return Object.fromEntries(warpCoreConfig.tokens.map((token) => [
27
+ token.chainName,
28
+ token.addressOrDenom,
29
+ ]));
30
+ }
31
+ export async function expandWarpDeployConfig(multiProvider, warpDeployConfig, deployedRoutersAddresses) {
32
+ const derivedTokenMetadata = await HypERC20Deployer.deriveTokenMetadata(multiProvider, warpDeployConfig);
33
+ return objMap(warpDeployConfig, (chain, config) => {
34
+ const [remoteRouters, destinationGas] = getDefaultRemoteRouterAndDestinationGasConfig(multiProvider, chain, deployedRoutersAddresses, warpDeployConfig);
35
+ return {
36
+ // Default Expansion
37
+ ...derivedTokenMetadata,
38
+ remoteRouters,
39
+ destinationGas,
40
+ hook: zeroAddress,
41
+ interchainSecurityModule: zeroAddress,
42
+ proxyAdmin: { owner: config.owner },
43
+ // User-specified config takes precedence
44
+ ...config,
45
+ };
46
+ });
47
+ }
48
+ //# sourceMappingURL=configUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configUtils.js","sourceRoot":"","sources":["../../src/token/configUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAW,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAOvD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C;;GAEG;AACH,MAAM,YAAY,GAAG,CACnB,gBAAuC,EACvC,KAAa,EACL,EAAE,CACV,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE;IACvC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEvD,MAAM,UAAU,6CAA6C,CAC3D,aAA4B,EAC5B,KAAa,EACb,wBAA2C,EAC3C,gBAAuC;IAEvC,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,MAAM,cAAc,GAAmB,EAAE,CAAC;IAE1C,MAAM,WAAW,GAAG,aAAa;SAC9B,eAAe,CAAC,KAAK,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEvD,aAAa,CAAC,QAAQ,CAAC,GAAG;YACxB,OAAO,EAAE,wBAAwB,CAAC,UAAU,CAAC;SAC9C,CAAC;QAEF,cAAc,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,cAA8B;IAE9B,OAAO,MAAM,CAAC,WAAW,CACvB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACnC,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,cAAc;KACrB,CAAC,CACkB,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,aAA4B,EAC5B,gBAAuC,EACvC,wBAA2C;IAE3C,MAAM,oBAAoB,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CACrE,aAAa,EACb,gBAAgB,CACjB,CAAC;IACF,OAAO,MAAM,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAChD,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GACnC,6CAA6C,CAC3C,aAAa,EACb,KAAK,EACL,wBAAwB,EACxB,gBAAgB,CACjB,CAAC;QAEJ,OAAO;YACL,oBAAoB;YACpB,GAAG,oBAAoB;YACvB,aAAa;YACb,cAAc;YACd,IAAI,EAAE,WAAW;YACjB,wBAAwB,EAAE,WAAW;YACrC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;YAEnC,yCAAyC;YACzC,GAAG,MAAM;SACV,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FastHypERC20Collateral__factory, FastHypERC20__factory, HypERC20Collateral__factory, HypERC20__factory, HypERC721Collateral__factory, HypERC721URICollateral__factory, HypERC721URIStorage__factory, HypERC721__factory, HypERC4626Collateral__factory, HypERC4626OwnerCollateral__factory, HypERC4626__factory, HypFiatToken__factory, HypNativeScaled__factory, HypNative__factory, HypXERC20Lockbox__factory, HypXERC20__factory } from '@hyperlane-xyz/core';
1
+ import { FastHypERC20Collateral__factory, FastHypERC20__factory, HypERC20Collateral__factory, HypERC20__factory, HypERC721Collateral__factory, HypERC721URICollateral__factory, HypERC721URIStorage__factory, HypERC721__factory, HypERC4626Collateral__factory, HypERC4626OwnerCollateral__factory, HypERC4626__factory, HypFiatToken__factory, HypNative__factory, HypXERC20Lockbox__factory, HypXERC20__factory } from '@hyperlane-xyz/core';
2
2
  export declare const hypERC20contracts: {
3
3
  fastCollateral: string;
4
4
  fastSynthetic: string;
@@ -26,7 +26,7 @@ export declare const hypERC20factories: {
26
26
  xERC20: HypXERC20__factory;
27
27
  xERC20Lockbox: HypXERC20Lockbox__factory;
28
28
  native: HypNative__factory;
29
- nativeScaled: HypNativeScaled__factory;
29
+ nativeScaled: HypNative__factory;
30
30
  };
31
31
  export type HypERC20Factories = typeof hypERC20factories;
32
32
  export declare const hypERC721contracts: {
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/token/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,4BAA4B,EAC5B,+BAA+B,EAC/B,4BAA4B,EAC5B,kBAAkB,EAClB,6BAA6B,EAC7B,kCAAkC,EAClC,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAI7B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC;AAEzD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC;AAEzD,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAE3D,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/token/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,4BAA4B,EAC5B,+BAA+B,EAC/B,4BAA4B,EAC5B,kBAAkB,EAClB,6BAA6B,EAC7B,kCAAkC,EAClC,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAI7B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAc7B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC;AAEzD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAa7B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC;AAEzD,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAE3D,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FastHypERC20Collateral__factory, FastHypERC20__factory, HypERC20Collateral__factory, HypERC20__factory, HypERC721Collateral__factory, HypERC721URICollateral__factory, HypERC721URIStorage__factory, HypERC721__factory, HypERC4626Collateral__factory, HypERC4626OwnerCollateral__factory, HypERC4626__factory, HypFiatToken__factory, HypNativeScaled__factory, HypNative__factory, HypXERC20Lockbox__factory, HypXERC20__factory, } from '@hyperlane-xyz/core';
1
+ import { FastHypERC20Collateral__factory, FastHypERC20__factory, HypERC20Collateral__factory, HypERC20__factory, HypERC721Collateral__factory, HypERC721URICollateral__factory, HypERC721URIStorage__factory, HypERC721__factory, HypERC4626Collateral__factory, HypERC4626OwnerCollateral__factory, HypERC4626__factory, HypFiatToken__factory, HypNative__factory, HypXERC20Lockbox__factory, HypXERC20__factory, } from '@hyperlane-xyz/core';
2
2
  import { TokenType } from './config.js';
3
3
  export const hypERC20contracts = {
4
4
  [TokenType.fastCollateral]: 'FastHypERC20Collateral',
@@ -12,7 +12,8 @@ export const hypERC20contracts = {
12
12
  [TokenType.collateralVault]: 'HypERC4626OwnerCollateral',
13
13
  [TokenType.collateralVaultRebase]: 'HypERC4626Collateral',
14
14
  [TokenType.native]: 'HypNative',
15
- [TokenType.nativeScaled]: 'HypNativeScaled',
15
+ // uses same contract as native
16
+ [TokenType.nativeScaled]: 'HypNative',
16
17
  };
17
18
  export const hypERC20factories = {
18
19
  [TokenType.fastCollateral]: new FastHypERC20Collateral__factory(),
@@ -26,7 +27,7 @@ export const hypERC20factories = {
26
27
  [TokenType.XERC20]: new HypXERC20__factory(),
27
28
  [TokenType.XERC20Lockbox]: new HypXERC20Lockbox__factory(),
28
29
  [TokenType.native]: new HypNative__factory(),
29
- [TokenType.nativeScaled]: new HypNativeScaled__factory(),
30
+ [TokenType.nativeScaled]: new HypNative__factory(),
30
31
  };
31
32
  export const hypERC721contracts = {
32
33
  [TokenType.collateralUri]: 'HypERC721URICollateral',
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/token/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,4BAA4B,EAC5B,+BAA+B,EAC/B,4BAA4B,EAC5B,kBAAkB,EAClB,6BAA6B,EAC7B,kCAAkC,EAClC,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,wBAAwB;IACpD,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,cAAc;IACzC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,UAAU;IACjC,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,YAAY;IACzC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,oBAAoB;IAC5C,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,cAAc;IAC1C,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW;IAC/B,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,kBAAkB;IAC7C,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,2BAA2B;IACxD,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,sBAAsB;IACzD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW;IAC/B,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,iBAAiB;CAC5C,CAAC;AAGF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,+BAA+B,EAAE;IACjE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,qBAAqB,EAAE;IACtD,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,iBAAiB,EAAE;IAC9C,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,2BAA2B,EAAE;IACzD,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,IAAI,kCAAkC,EAAE;IACrE,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,IAAI,6BAA6B,EAAE;IACtE,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,IAAI,mBAAmB,EAAE;IACtD,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,qBAAqB,EAAE;IACvD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,kBAAkB,EAAE;IAC5C,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,yBAAyB,EAAE;IAC1D,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,kBAAkB,EAAE;IAC5C,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,IAAI,wBAAwB,EAAE;CACzD,CAAC;AAGF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,wBAAwB;IACnD,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,qBAAqB;IAC7C,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,qBAAqB;IAC/C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,WAAW;CACnC,CAAC;AAIF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,+BAA+B,EAAE;IAChE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,4BAA4B,EAAE;IAC1D,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,IAAI,4BAA4B,EAAE;IAC5D,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,kBAAkB,EAAE;CAChD,CAAC"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/token/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,4BAA4B,EAC5B,+BAA+B,EAC/B,4BAA4B,EAC5B,kBAAkB,EAClB,6BAA6B,EAC7B,kCAAkC,EAClC,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,wBAAwB;IACpD,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,cAAc;IACzC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,UAAU;IACjC,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,YAAY;IACzC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,oBAAoB;IAC5C,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,cAAc;IAC1C,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW;IAC/B,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,kBAAkB;IAC7C,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,2BAA2B;IACxD,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,sBAAsB;IACzD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW;IAC/B,+BAA+B;IAC/B,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,WAAW;CACtC,CAAC;AAGF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,+BAA+B,EAAE;IACjE,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,qBAAqB,EAAE;IACtD,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,iBAAiB,EAAE;IAC9C,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,2BAA2B,EAAE;IACzD,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,IAAI,kCAAkC,EAAE;IACrE,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,IAAI,6BAA6B,EAAE;IACtE,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,IAAI,mBAAmB,EAAE;IACtD,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,qBAAqB,EAAE;IACvD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,kBAAkB,EAAE;IAC5C,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,yBAAyB,EAAE;IAC1D,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,kBAAkB,EAAE;IAC5C,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,IAAI,kBAAkB,EAAE;CACnD,CAAC;AAGF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,wBAAwB;IACnD,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,qBAAqB;IAC7C,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,qBAAqB;IAC/C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,WAAW;CACnC,CAAC;AAIF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,+BAA+B,EAAE;IAChE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,4BAA4B,EAAE;IAC1D,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,IAAI,4BAA4B,EAAE;IAC5D,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI,kBAAkB,EAAE;CAChD,CAAC"}
@@ -6,13 +6,13 @@ import { MultiProvider } from '../providers/MultiProvider.js';
6
6
  import { GasRouterDeployer } from '../router/GasRouterDeployer.js';
7
7
  import { ChainName } from '../types.js';
8
8
  import { HypERC20Factories, HypERC721Factories, TokenFactories } from './contracts.js';
9
- import { HypTokenRouterConfig, TokenMetadata, WarpRouteDeployConfig } from './types.js';
9
+ import { HypTokenRouterConfig, TokenMetadata, WarpRouteDeployConfig, WarpRouteDeployConfigMailboxRequired } from './types.js';
10
10
  declare abstract class TokenDeployer<Factories extends TokenFactories> extends GasRouterDeployer<HypTokenRouterConfig, Factories> {
11
11
  constructor(multiProvider: MultiProvider, factories: Factories, loggerName: string, ismFactory?: HyperlaneIsmFactory, contractVerifier?: ContractVerifier, concurrentDeploy?: boolean);
12
12
  constructorArgs(_: ChainName, config: HypTokenRouterConfig): Promise<any>;
13
13
  initializeArgs(chain: ChainName, config: HypTokenRouterConfig): Promise<any>;
14
14
  static deriveTokenMetadata(multiProvider: MultiProvider, configMap: WarpRouteDeployConfig): Promise<TokenMetadata | undefined>;
15
- deploy(configMap: WarpRouteDeployConfig): Promise<import("../contracts/types.js").HyperlaneContractsMap<Factories & import("../contracts/types.js").HyperlaneFactories & {
15
+ deploy(configMap: WarpRouteDeployConfigMailboxRequired): Promise<import("../contracts/types.js").HyperlaneContractsMap<Factories & import("../contracts/types.js").HyperlaneFactories & {
16
16
  proxyAdmin: import("@hyperlane-xyz/core").ProxyAdmin__factory;
17
17
  timelockController: import("@hyperlane-xyz/core").TimelockController__factory;
18
18
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EAKf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,aAAa,EAEb,qBAAqB,EAMtB,MAAM,YAAY,CAAC;AAEpB,uBAAe,aAAa,CAC1B,SAAS,SAAS,cAAc,CAChC,SAAQ,iBAAiB,CAAC,oBAAoB,EAAE,SAAS,CAAC;gBAExD,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,mBAAmB,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,gBAAgB,UAAQ;IAUpB,eAAe,CACnB,CAAC,EAAE,SAAS,EACZ,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,GAAG,CAAC;IAkBT,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,GAAG,CAAC;WAmBF,mBAAmB,CAC9B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IA4E/B,MAAM,CAAC,SAAS,EAAE,qBAAqB;;;;CAmB9C;AAED,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;gBAElE,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,mBAAmB,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,gBAAgB,UAAQ;IAY1B,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,SAAS;IASnE,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,iBAAiB;IAKxE,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAGzD;AAED,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;gBAEpE,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,mBAAmB,EAChC,gBAAgB,CAAC,EAAE,gBAAgB;IAWrC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,SAAS;IASpE,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,kBAAkB;IAKzE,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAGzD"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EAKf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,aAAa,EAEb,qBAAqB,EACrB,oCAAoC,EAOrC,MAAM,YAAY,CAAC;AAEpB,uBAAe,aAAa,CAC1B,SAAS,SAAS,cAAc,CAChC,SAAQ,iBAAiB,CAAC,oBAAoB,EAAE,SAAS,CAAC;gBAExD,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,mBAAmB,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,gBAAgB,UAAQ;IAUpB,eAAe,CACnB,CAAC,EAAE,SAAS,EACZ,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,GAAG,CAAC;IAqBT,cAAc,CAClB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,GAAG,CAAC;WAuBF,mBAAmB,CAC9B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IA4E/B,MAAM,CAAC,SAAS,EAAE,oCAAoC;;;;CAmB7D;AAED,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;gBAElE,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,mBAAmB,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,gBAAgB,UAAQ;IAY1B,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,SAAS;IASnE,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,iBAAiB;IAKxE,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAGzD;AAED,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;gBAEpE,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,mBAAmB,EAChC,gBAAgB,CAAC,EAAE,gBAAgB;IAWrC,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,SAAS;IASpE,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,kBAAkB;IAKzE,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAGzD"}
@@ -1,13 +1,17 @@
1
1
  import { expect } from 'chai';
2
+ import { ethers } from 'ethers';
2
3
  import hre from 'hardhat';
3
- import { ERC20Test__factory } from '@hyperlane-xyz/core';
4
+ import { ERC20Test__factory, ProxyAdmin__factory, TransparentUpgradeableProxy__factory, XERC20Test__factory, } from '@hyperlane-xyz/core';
4
5
  import { objMap } from '@hyperlane-xyz/utils';
5
6
  import { TestChainName } from '../consts/testChains.js';
6
7
  import { TestCoreDeployer } from '../core/TestCoreDeployer.js';
7
8
  import { HyperlaneProxyFactoryDeployer } from '../deploy/HyperlaneProxyFactoryDeployer.js';
9
+ import { ViolationType } from '../deploy/types.js';
8
10
  import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js';
9
11
  import { MultiProvider } from '../providers/MultiProvider.js';
10
12
  import { EvmERC20WarpRouteReader } from './EvmERC20WarpRouteReader.js';
13
+ import { HypERC20App } from './app.js';
14
+ import { HypERC20Checker } from './checker.js';
11
15
  import { TokenType } from './config.js';
12
16
  import { HypERC20Deployer } from './deploy.js';
13
17
  const chain = TestChainName.test1;
@@ -18,6 +22,9 @@ describe('TokenDeployer', async () => {
18
22
  let coreApp;
19
23
  let config;
20
24
  let token;
25
+ let xerc20;
26
+ let erc20;
27
+ let admin;
21
28
  before(async () => {
22
29
  [signer] = await hre.ethers.getSigners();
23
30
  multiProvider = MultiProvider.createTestMultiProvider({ signer });
@@ -34,17 +41,73 @@ describe('TokenDeployer', async () => {
34
41
  totalSupply: '100000',
35
42
  ...c,
36
43
  }));
37
- const { name, decimals, symbol, totalSupply } = config[chain];
38
- const contract = await new ERC20Test__factory(signer).deploy(name, symbol, totalSupply, decimals);
39
- token = contract.address;
40
44
  });
41
45
  beforeEach(async () => {
46
+ const { name, decimals, symbol, totalSupply } = config[chain];
47
+ const implementation = await new XERC20Test__factory(signer).deploy(name, symbol, totalSupply, decimals);
48
+ admin = await new ProxyAdmin__factory(signer).deploy();
49
+ const proxy = await new TransparentUpgradeableProxy__factory(signer).deploy(implementation.address, admin.address, XERC20Test__factory.createInterface().encodeFunctionData('initialize'));
50
+ token = proxy.address;
51
+ xerc20 = XERC20Test__factory.connect(token, signer);
52
+ erc20 = await new ERC20Test__factory(signer).deploy(name, symbol, totalSupply, decimals);
42
53
  deployer = new HypERC20Deployer(multiProvider);
43
54
  });
44
55
  it('deploys', async () => {
45
56
  await deployer.deploy(config);
46
57
  });
47
- for (const type of [TokenType.collateral, TokenType.synthetic]) {
58
+ for (const type of [
59
+ TokenType.collateral,
60
+ TokenType.synthetic,
61
+ TokenType.XERC20,
62
+ ]) {
63
+ const token = () => {
64
+ switch (type) {
65
+ case TokenType.XERC20:
66
+ return xerc20.address;
67
+ case TokenType.collateral:
68
+ return erc20.address;
69
+ default:
70
+ return undefined;
71
+ }
72
+ };
73
+ describe('HypERC20Checker', async () => {
74
+ let checker;
75
+ beforeEach(async () => {
76
+ config[chain] = {
77
+ ...config[chain],
78
+ type,
79
+ // @ts-ignore
80
+ token: token(),
81
+ };
82
+ const contractsMap = await deployer.deploy(config);
83
+ const app = new HypERC20App(contractsMap, multiProvider);
84
+ checker = new HypERC20Checker(multiProvider, app, config);
85
+ });
86
+ it(`should have no violations on clean deploy of ${type}`, async () => {
87
+ await checker.check();
88
+ checker.expectEmpty();
89
+ });
90
+ it(`should check owner of collateral`, async () => {
91
+ if (type !== TokenType.XERC20) {
92
+ return;
93
+ }
94
+ await xerc20.transferOwnership(ethers.Wallet.createRandom().address);
95
+ await checker.check();
96
+ checker.expectViolations({
97
+ [ViolationType.Owner]: 1,
98
+ });
99
+ });
100
+ it(`should check owner of collateral proxyAdmin`, async () => {
101
+ if (type !== TokenType.XERC20) {
102
+ return;
103
+ }
104
+ await admin.transferOwnership(ethers.Wallet.createRandom().address);
105
+ await checker.check();
106
+ checker.expectViolations({
107
+ [ViolationType.Owner]: 1,
108
+ });
109
+ });
110
+ });
48
111
  describe('ERC20WarpRouterReader', async () => {
49
112
  let reader;
50
113
  let routerAddress;
@@ -56,7 +119,7 @@ describe('TokenDeployer', async () => {
56
119
  ...config[chain],
57
120
  type,
58
121
  // @ts-ignore
59
- token: type === TokenType.collateral ? token : undefined,
122
+ token: token(),
60
123
  };
61
124
  const warpRoute = await deployer.deploy(config);
62
125
  routerAddress = warpRoute[chain][type].address;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.hardhat-test.js","sourceRoot":"","sources":["../../src/token/deploy.hardhat-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.hardhat-test.js","sourceRoot":"","sources":["../../src/token/deploy.hardhat-test.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { assert, objKeys, objMap, rootLogger } from '@hyperlane-xyz/utils';
4
4
  import { GasRouterDeployer } from '../router/GasRouterDeployer.js';
5
5
  import { TokenType, gasOverhead } from './config.js';
6
6
  import { hypERC20contracts, hypERC20factories, hypERC721contracts, hypERC721factories, } from './contracts.js';
7
- import { TokenMetadataSchema, isCollateralTokenConfig, isNativeTokenConfig, isSyntheticRebaseTokenConfig, isSyntheticTokenConfig, isTokenMetadata, } from './types.js';
7
+ import { TokenMetadataSchema, isCollateralTokenConfig, isNativeTokenConfig, isSyntheticRebaseTokenConfig, isSyntheticTokenConfig, isTokenMetadata, isXERC20TokenConfig, } from './types.js';
8
8
  class TokenDeployer extends GasRouterDeployer {
9
9
  constructor(multiProvider, factories, loggerName, ismFactory, contractVerifier, concurrentDeploy = false) {
10
10
  super(multiProvider, factories, {
@@ -15,19 +15,21 @@ class TokenDeployer extends GasRouterDeployer {
15
15
  }); // factories not used in deploy
16
16
  }
17
17
  async constructorArgs(_, config) {
18
- if (isCollateralTokenConfig(config)) {
19
- return [config.token, config.mailbox];
18
+ // TODO: derive as specified in https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/5296
19
+ const scale = config.scale ?? 1;
20
+ if (isCollateralTokenConfig(config) || isXERC20TokenConfig(config)) {
21
+ return [config.token, scale, config.mailbox];
20
22
  }
21
23
  else if (isNativeTokenConfig(config)) {
22
- return config.scale ? [config.scale, config.mailbox] : [config.mailbox];
24
+ return [scale, config.mailbox];
23
25
  }
24
26
  else if (isSyntheticTokenConfig(config)) {
25
27
  assert(config.decimals, 'decimals is undefined for config'); // decimals must be defined by this point
26
- return [config.decimals, config.mailbox];
28
+ return [config.decimals, scale, config.mailbox];
27
29
  }
28
30
  else if (isSyntheticRebaseTokenConfig(config)) {
29
31
  const collateralDomain = this.multiProvider.getDomainId(config.collateralChainName);
30
- return [config.decimals, config.mailbox, collateralDomain];
32
+ return [config.decimals, scale, config.mailbox, collateralDomain];
31
33
  }
32
34
  else {
33
35
  throw new Error('Unknown token type when constructing arguments');
@@ -41,7 +43,9 @@ class TokenDeployer extends GasRouterDeployer {
41
43
  // TransferOwnership will happen later in RouterDeployer
42
44
  signer,
43
45
  ];
44
- if (isCollateralTokenConfig(config) || isNativeTokenConfig(config)) {
46
+ if (isCollateralTokenConfig(config) ||
47
+ isXERC20TokenConfig(config) ||
48
+ isNativeTokenConfig(config)) {
45
49
  return defaultArgs;
46
50
  }
47
51
  else if (isSyntheticTokenConfig(config)) {
@@ -70,7 +74,7 @@ class TokenDeployer extends GasRouterDeployer {
70
74
  });
71
75
  }
72
76
  }
73
- if (isCollateralTokenConfig(config)) {
77
+ if (isCollateralTokenConfig(config) || isXERC20TokenConfig(config)) {
74
78
  const provider = multiProvider.getProvider(chain);
75
79
  if (config.isNft) {
76
80
  const erc721 = ERC721Enumerable__factory.connect(config.token, provider);
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/token/deploy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nativeTokenMetadata.d.ts","sourceRoot":"","sources":["../../src/token/nativeTokenMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,eAAO,MAAM,gCAAgC,EAAE,MAAM,CACnD,YAAY,EACZ,WAAW,CAkBZ,CAAC"}
1
+ {"version":3,"file":"nativeTokenMetadata.d.ts","sourceRoot":"","sources":["../../src/token/nativeTokenMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,eAAO,MAAM,gCAAgC,EAAE,MAAM,CACnD,YAAY,EACZ,WAAW,CAwBZ,CAAC"}
@@ -16,5 +16,11 @@ export const PROTOCOL_TO_DEFAULT_NATIVE_TOKEN = {
16
16
  name: 'Atom',
17
17
  symbol: 'ATOM',
18
18
  },
19
+ [ProtocolType.Starknet]: {
20
+ decimals: 18,
21
+ denom: '0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7',
22
+ name: 'Ether',
23
+ symbol: 'ETH',
24
+ },
19
25
  };
20
26
  //# sourceMappingURL=nativeTokenMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nativeTokenMetadata.js","sourceRoot":"","sources":["../../src/token/nativeTokenMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,CAAC,MAAM,gCAAgC,GAGzC;IACF,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;QACvB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,KAAK;KACd;IACD,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;QACvB,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;KACd;IACD,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACrB,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;KACf;CACF,CAAC"}
1
+ {"version":3,"file":"nativeTokenMetadata.js","sourceRoot":"","sources":["../../src/token/nativeTokenMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIpD,MAAM,CAAC,MAAM,gCAAgC,GAGzC;IACF,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;QACvB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,KAAK;KACd;IACD,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;QACvB,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,KAAK;KACd;IACD,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACrB,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,MAAM;KACf;IACD,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;QACvB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,oEAAoE;QAC3E,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,KAAK;KACd;CACF,CAAC"}