@hyperlane-xyz/sdk 1.0.0-beta0 → 1.0.0-beta2

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 (265) hide show
  1. package/README.md +30 -3
  2. package/dist/HyperlaneApp.d.ts +13 -0
  3. package/dist/HyperlaneApp.d.ts.map +1 -0
  4. package/dist/HyperlaneApp.js +25 -0
  5. package/dist/HyperlaneApp.js.map +1 -0
  6. package/dist/consts/chainConnectionConfigs.d.ts +18 -0
  7. package/dist/consts/chainConnectionConfigs.d.ts.map +1 -0
  8. package/dist/consts/chainConnectionConfigs.js +33 -0
  9. package/dist/consts/chainConnectionConfigs.js.map +1 -0
  10. package/dist/consts/chainMetadata.d.ts +98 -0
  11. package/dist/consts/chainMetadata.d.ts.map +1 -0
  12. package/dist/consts/chainMetadata.js +529 -0
  13. package/dist/consts/chainMetadata.js.map +1 -0
  14. package/dist/consts/chains.d.ts +40 -0
  15. package/dist/consts/chains.d.ts.map +1 -0
  16. package/dist/consts/chains.js +66 -0
  17. package/dist/consts/chains.js.map +1 -0
  18. package/dist/consts/environments/index.d.ts +449 -0
  19. package/dist/consts/environments/index.d.ts.map +1 -0
  20. package/dist/consts/environments/index.js +22 -0
  21. package/dist/consts/environments/index.js.map +1 -0
  22. package/dist/consts/environments/mainnet.json +138 -0
  23. package/dist/consts/environments/test.json +44 -0
  24. package/dist/consts/environments/testnet2.json +138 -0
  25. package/dist/consts/environments/testnet3.json +114 -0
  26. package/dist/contracts.d.ts +18 -0
  27. package/dist/contracts.d.ts.map +1 -0
  28. package/dist/contracts.js +61 -0
  29. package/dist/contracts.js.map +1 -0
  30. package/dist/core/HyperlaneCore.d.ts +473 -0
  31. package/dist/core/HyperlaneCore.d.ts.map +1 -0
  32. package/dist/core/HyperlaneCore.js +122 -0
  33. package/dist/core/HyperlaneCore.js.map +1 -0
  34. package/dist/core/HyperlaneCore.test.d.ts +2 -0
  35. package/dist/core/HyperlaneCore.test.d.ts.map +1 -0
  36. package/dist/core/HyperlaneCore.test.js +27 -0
  37. package/dist/core/HyperlaneCore.test.js.map +1 -0
  38. package/dist/core/TestCoreApp.d.ts +21 -0
  39. package/dist/core/TestCoreApp.d.ts.map +1 -0
  40. package/dist/core/TestCoreApp.js +61 -0
  41. package/dist/core/TestCoreApp.js.map +1 -0
  42. package/dist/core/TestCoreDeployer.d.ts +13 -0
  43. package/dist/core/TestCoreDeployer.d.ts.map +1 -0
  44. package/dist/core/TestCoreDeployer.js +53 -0
  45. package/dist/core/TestCoreDeployer.js.map +1 -0
  46. package/dist/core/contracts.d.ts +21 -0
  47. package/dist/core/contracts.d.ts.map +1 -0
  48. package/dist/core/contracts.js +14 -0
  49. package/dist/core/contracts.js.map +1 -0
  50. package/dist/core/events.d.ts +8 -0
  51. package/dist/core/events.d.ts.map +1 -0
  52. package/dist/core/events.js +3 -0
  53. package/dist/core/events.js.map +1 -0
  54. package/dist/core/message.d.ts +146 -0
  55. package/dist/core/message.d.ts.map +1 -0
  56. package/dist/core/message.js +285 -0
  57. package/dist/core/message.js.map +1 -0
  58. package/dist/core/testHyperlaneDeploy.hardhat-test.d.ts +3 -0
  59. package/dist/core/testHyperlaneDeploy.hardhat-test.d.ts.map +1 -0
  60. package/dist/core/testHyperlaneDeploy.hardhat-test.js +66 -0
  61. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -0
  62. package/dist/deploy/HyperlaneAppChecker.d.ts +22 -0
  63. package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -0
  64. package/dist/deploy/HyperlaneAppChecker.js +88 -0
  65. package/dist/deploy/HyperlaneAppChecker.js.map +1 -0
  66. package/dist/deploy/HyperlaneDeployer.d.ts +40 -0
  67. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -0
  68. package/dist/deploy/HyperlaneDeployer.js +212 -0
  69. package/dist/deploy/HyperlaneDeployer.js.map +1 -0
  70. package/dist/deploy/core/HyperlaneCoreChecker.d.ts +13 -0
  71. package/dist/deploy/core/HyperlaneCoreChecker.d.ts.map +1 -0
  72. package/dist/deploy/core/HyperlaneCoreChecker.js +122 -0
  73. package/dist/deploy/core/HyperlaneCoreChecker.js.map +1 -0
  74. package/dist/deploy/core/HyperlaneCoreDeployer.d.ts +30 -0
  75. package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -0
  76. package/dist/deploy/core/HyperlaneCoreDeployer.js +114 -0
  77. package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -0
  78. package/dist/deploy/core/types.d.ts +51 -0
  79. package/dist/deploy/core/types.d.ts.map +1 -0
  80. package/dist/deploy/core/types.js +19 -0
  81. package/dist/deploy/core/types.js.map +1 -0
  82. package/dist/deploy/middleware/LiquidityLayerApp.d.ts +26 -0
  83. package/dist/deploy/middleware/LiquidityLayerApp.d.ts.map +1 -0
  84. package/dist/deploy/middleware/LiquidityLayerApp.js +115 -0
  85. package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -0
  86. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +33 -0
  87. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -0
  88. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +97 -0
  89. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -0
  90. package/dist/deploy/middleware/deploy.d.ts +21 -0
  91. package/dist/deploy/middleware/deploy.d.ts.map +1 -0
  92. package/dist/deploy/middleware/deploy.js +70 -0
  93. package/dist/deploy/middleware/deploy.js.map +1 -0
  94. package/dist/deploy/proxy.d.ts +18 -0
  95. package/dist/deploy/proxy.d.ts.map +1 -0
  96. package/dist/deploy/proxy.js +43 -0
  97. package/dist/deploy/proxy.js.map +1 -0
  98. package/dist/deploy/router/HyperlaneRouterChecker.d.ts +13 -0
  99. package/dist/deploy/router/HyperlaneRouterChecker.d.ts.map +1 -0
  100. package/dist/deploy/router/HyperlaneRouterChecker.js +44 -0
  101. package/dist/deploy/router/HyperlaneRouterChecker.js.map +1 -0
  102. package/dist/deploy/router/HyperlaneRouterDeployer.d.ts +13 -0
  103. package/dist/deploy/router/HyperlaneRouterDeployer.d.ts.map +1 -0
  104. package/dist/deploy/router/HyperlaneRouterDeployer.js +115 -0
  105. package/dist/deploy/router/HyperlaneRouterDeployer.js.map +1 -0
  106. package/dist/deploy/router/types.d.ts +7 -0
  107. package/dist/deploy/router/types.d.ts.map +1 -0
  108. package/dist/deploy/router/types.js +3 -0
  109. package/dist/deploy/router/types.js.map +1 -0
  110. package/dist/deploy/types.d.ts +23 -0
  111. package/dist/deploy/types.d.ts.map +1 -0
  112. package/dist/deploy/types.js +9 -0
  113. package/dist/deploy/types.js.map +1 -0
  114. package/dist/deploy/utils.d.ts +10 -0
  115. package/dist/deploy/utils.d.ts.map +1 -0
  116. package/dist/deploy/utils.js +38 -0
  117. package/dist/deploy/utils.js.map +1 -0
  118. package/dist/deploy/verify/ContractVerifier.d.ts +19 -0
  119. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -0
  120. package/dist/deploy/verify/ContractVerifier.js +137 -0
  121. package/dist/deploy/verify/ContractVerifier.js.map +1 -0
  122. package/dist/deploy/verify/types.d.ts +14 -0
  123. package/dist/deploy/verify/types.d.ts.map +1 -0
  124. package/dist/deploy/verify/types.js +3 -0
  125. package/dist/deploy/verify/types.js.map +1 -0
  126. package/dist/deploy/verify/utils.d.ts +6 -0
  127. package/dist/deploy/verify/utils.d.ts.map +1 -0
  128. package/dist/deploy/verify/utils.js +25 -0
  129. package/dist/deploy/verify/utils.js.map +1 -0
  130. package/dist/domains.d.ts +4 -0
  131. package/dist/domains.d.ts.map +1 -0
  132. package/dist/domains.js +12 -0
  133. package/dist/domains.js.map +1 -0
  134. package/dist/events.d.ts +25 -0
  135. package/dist/events.d.ts.map +1 -0
  136. package/dist/events.js +161 -0
  137. package/dist/events.js.map +1 -0
  138. package/dist/gas/calculator.d.ts +134 -0
  139. package/dist/gas/calculator.d.ts.map +1 -0
  140. package/dist/gas/calculator.js +240 -0
  141. package/dist/gas/calculator.js.map +1 -0
  142. package/dist/gas/calculator.test.d.ts +2 -0
  143. package/dist/gas/calculator.test.d.ts.map +1 -0
  144. package/dist/gas/calculator.test.js +208 -0
  145. package/dist/gas/calculator.test.js.map +1 -0
  146. package/dist/gas/token-prices.d.ts +34 -0
  147. package/dist/gas/token-prices.d.ts.map +1 -0
  148. package/dist/gas/token-prices.js +105 -0
  149. package/dist/gas/token-prices.js.map +1 -0
  150. package/dist/gas/token-prices.test.d.ts +2 -0
  151. package/dist/gas/token-prices.test.d.ts.map +1 -0
  152. package/dist/gas/token-prices.test.js +46 -0
  153. package/dist/gas/token-prices.test.js.map +1 -0
  154. package/dist/index.d.ts +46 -0
  155. package/dist/index.d.ts.map +1 -0
  156. package/dist/index.js +140 -0
  157. package/dist/index.js.map +1 -0
  158. package/dist/middleware/accounts.hardhat-test.d.ts +2 -0
  159. package/dist/middleware/accounts.hardhat-test.d.ts.map +1 -0
  160. package/dist/middleware/accounts.hardhat-test.js +63 -0
  161. package/dist/middleware/accounts.hardhat-test.js.map +1 -0
  162. package/dist/middleware/liquidity-layer.hardhat-test.d.ts +2 -0
  163. package/dist/middleware/liquidity-layer.hardhat-test.d.ts.map +1 -0
  164. package/dist/middleware/liquidity-layer.hardhat-test.js +89 -0
  165. package/dist/middleware/liquidity-layer.hardhat-test.js.map +1 -0
  166. package/dist/middleware/queries.hardhat-test.d.ts +2 -0
  167. package/dist/middleware/queries.hardhat-test.d.ts.map +1 -0
  168. package/dist/middleware/queries.hardhat-test.js +69 -0
  169. package/dist/middleware/queries.hardhat-test.js.map +1 -0
  170. package/dist/middleware.d.ts +16 -0
  171. package/dist/middleware.d.ts.map +1 -0
  172. package/dist/middleware.js +15 -0
  173. package/dist/middleware.js.map +1 -0
  174. package/dist/providers/ChainConnection.d.ts +22 -0
  175. package/dist/providers/ChainConnection.d.ts.map +1 -0
  176. package/dist/providers/ChainConnection.js +66 -0
  177. package/dist/providers/ChainConnection.js.map +1 -0
  178. package/dist/providers/MultiProvider.d.ts +56 -0
  179. package/dist/providers/MultiProvider.d.ts.map +1 -0
  180. package/dist/providers/MultiProvider.js +111 -0
  181. package/dist/providers/MultiProvider.js.map +1 -0
  182. package/dist/providers/RetryProvider.d.ts +18 -0
  183. package/dist/providers/RetryProvider.d.ts.map +1 -0
  184. package/dist/providers/RetryProvider.js +49 -0
  185. package/dist/providers/RetryProvider.js.map +1 -0
  186. package/dist/proxy.d.ts +21 -0
  187. package/dist/proxy.d.ts.map +1 -0
  188. package/dist/proxy.js +30 -0
  189. package/dist/proxy.js.map +1 -0
  190. package/dist/router.d.ts +20 -0
  191. package/dist/router.d.ts.map +1 -0
  192. package/dist/router.js +3 -0
  193. package/dist/router.js.map +1 -0
  194. package/dist/test/envSubsetDeployer/app.d.ts +36 -0
  195. package/dist/test/envSubsetDeployer/app.d.ts.map +1 -0
  196. package/dist/test/envSubsetDeployer/app.js +77 -0
  197. package/dist/test/envSubsetDeployer/app.js.map +1 -0
  198. package/dist/test/envSubsetDeployer/check-single-chain.d.ts +2 -0
  199. package/dist/test/envSubsetDeployer/check-single-chain.d.ts.map +1 -0
  200. package/dist/test/envSubsetDeployer/check-single-chain.js +49 -0
  201. package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -0
  202. package/dist/test/envSubsetDeployer/deploy-single-chain.d.ts +2 -0
  203. package/dist/test/envSubsetDeployer/deploy-single-chain.d.ts.map +1 -0
  204. package/dist/test/envSubsetDeployer/deploy-single-chain.js +42 -0
  205. package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -0
  206. package/dist/test/envSubsetDeployer/deploy.hardhat-test.d.ts +2 -0
  207. package/dist/test/envSubsetDeployer/deploy.hardhat-test.d.ts.map +1 -0
  208. package/dist/test/envSubsetDeployer/deploy.hardhat-test.js +83 -0
  209. package/dist/test/envSubsetDeployer/deploy.hardhat-test.js.map +1 -0
  210. package/dist/test/envSubsetDeployer/utils.d.ts +7 -0
  211. package/dist/test/envSubsetDeployer/utils.d.ts.map +1 -0
  212. package/dist/test/envSubsetDeployer/utils.js +25 -0
  213. package/dist/test/envSubsetDeployer/utils.js.map +1 -0
  214. package/dist/test/testUtils.d.ts +31 -0
  215. package/dist/test/testUtils.d.ts.map +1 -0
  216. package/dist/test/testUtils.js +106 -0
  217. package/dist/test/testUtils.js.map +1 -0
  218. package/dist/types.d.ts +21 -0
  219. package/dist/types.d.ts.map +1 -0
  220. package/dist/types.js +3 -0
  221. package/dist/types.js.map +1 -0
  222. package/dist/utils/MultiGeneric.d.ts +27 -0
  223. package/dist/utils/MultiGeneric.d.ts.map +1 -0
  224. package/dist/utils/MultiGeneric.js +70 -0
  225. package/dist/utils/MultiGeneric.js.map +1 -0
  226. package/dist/utils/ids.d.ts +20 -0
  227. package/dist/utils/ids.d.ts.map +1 -0
  228. package/dist/utils/ids.js +47 -0
  229. package/dist/utils/ids.js.map +1 -0
  230. package/dist/utils/number.d.ts +32 -0
  231. package/dist/utils/number.d.ts.map +1 -0
  232. package/dist/utils/number.js +59 -0
  233. package/dist/utils/number.js.map +1 -0
  234. package/dist/utils/objects.d.ts +7 -0
  235. package/dist/utils/objects.d.ts.map +1 -0
  236. package/dist/utils/objects.js +29 -0
  237. package/dist/utils/objects.js.map +1 -0
  238. package/dist/utils/time.d.ts +8 -0
  239. package/dist/utils/time.d.ts.map +1 -0
  240. package/dist/utils/time.js +15 -0
  241. package/dist/utils/time.js.map +1 -0
  242. package/dist/utils/utils.test.d.ts +2 -0
  243. package/dist/utils/utils.test.d.ts.map +1 -0
  244. package/dist/utils/utils.test.js +41 -0
  245. package/dist/utils/utils.test.js.map +1 -0
  246. package/logos/black/arbitrum.svg +1 -0
  247. package/logos/black/avalanche.svg +1 -0
  248. package/logos/black/bsc.svg +1 -0
  249. package/logos/black/celo.svg +1 -0
  250. package/logos/black/ethereum.svg +8 -0
  251. package/logos/black/hyperlane.svg +1 -0
  252. package/logos/black/moonbeam.svg +3 -0
  253. package/logos/black/near.svg +1 -0
  254. package/logos/black/optimism.svg +1 -0
  255. package/logos/black/polygon.svg +1 -0
  256. package/logos/color/arbitrum.svg +1 -0
  257. package/logos/color/avalanche.svg +1 -0
  258. package/logos/color/bsc.svg +1 -0
  259. package/logos/color/celo.svg +1 -0
  260. package/logos/color/ethereum.svg +1 -0
  261. package/logos/color/hyperlane.svg +1 -0
  262. package/logos/color/moonbeam.svg +1 -0
  263. package/logos/color/optimism.svg +1 -0
  264. package/logos/color/polygon.svg +1 -0
  265. package/package.json +6 -4
@@ -0,0 +1,46 @@
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
+ const chai_1 = require("chai");
13
+ const chains_1 = require("../consts/chains");
14
+ const testUtils_1 = require("../test/testUtils");
15
+ const token_prices_1 = require("./token-prices");
16
+ describe('TokenPriceGetter', () => {
17
+ let tokenPriceGetter;
18
+ let mockCoinGecko;
19
+ const chainA = chains_1.Chains.ethereum, chainB = chains_1.Chains.polygon, priceA = 10, priceB = 5.5;
20
+ before(() => __awaiter(void 0, void 0, void 0, function* () {
21
+ mockCoinGecko = new testUtils_1.MockCoinGecko();
22
+ // Origin token
23
+ mockCoinGecko.setTokenPrice(chainA, priceA);
24
+ // Destination token
25
+ mockCoinGecko.setTokenPrice(chainB, priceB);
26
+ tokenPriceGetter = new token_prices_1.CoinGeckoTokenPriceGetter(mockCoinGecko);
27
+ }));
28
+ describe('getTokenPrice', () => {
29
+ it('returns a token price', () => __awaiter(void 0, void 0, void 0, function* () {
30
+ (0, chai_1.expect)(yield tokenPriceGetter.getTokenPrice(chainA)).to.equal(priceA);
31
+ }));
32
+ it('caches a token price', () => __awaiter(void 0, void 0, void 0, function* () {
33
+ mockCoinGecko.setFail(chainA, true);
34
+ (0, chai_1.expect)(yield tokenPriceGetter.getTokenPrice(chainA)).to.equal(priceA);
35
+ mockCoinGecko.setFail(chainA, false);
36
+ }));
37
+ });
38
+ describe('getTokenExchangeRate', () => {
39
+ it('returns a value consistent with getTokenPrice()', () => __awaiter(void 0, void 0, void 0, function* () {
40
+ const exchangeRate = yield tokenPriceGetter.getTokenExchangeRate(chainA, chainB);
41
+ const expectedExchangeRate = priceA / priceB;
42
+ (0, chai_1.expect)(exchangeRate).to.equal(expectedExchangeRate);
43
+ }));
44
+ });
45
+ });
46
+ //# sourceMappingURL=token-prices.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-prices.test.js","sourceRoot":"","sources":["../../src/gas/token-prices.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+BAA8B;AAE9B,6CAA0C;AAC1C,iDAAkD;AAElD,iDAA2D;AAE3D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,gBAA2C,CAAC;IAChD,IAAI,aAA4B,CAAC;IACjC,MAAM,MAAM,GAAG,eAAM,CAAC,QAAQ,EAC5B,MAAM,GAAG,eAAM,CAAC,OAAO,EACvB,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,GAAG,CAAC;IACf,MAAM,CAAC,GAAS,EAAE;QAChB,aAAa,GAAG,IAAI,yBAAa,EAAE,CAAC;QACpC,eAAe;QACf,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,oBAAoB;QACpB,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,gBAAgB,GAAG,IAAI,wCAAyB,CAAC,aAAa,CAAC,CAAC;IAClE,CAAC,CAAA,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,uBAAuB,EAAE,GAAS,EAAE;YACrC,IAAA,aAAM,EAAC,MAAM,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAS,EAAE;YACpC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACpC,IAAA,aAAM,EAAC,MAAM,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtE,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;YAC/D,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,oBAAoB,CAC9D,MAAM,EACN,MAAM,CACP,CAAC;YACF,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,CAAC;YAC7C,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACtD,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,46 @@
1
+ export { Chains, ChainName, DeprecatedChains, AllChains, Mainnets, AllDeprecatedChains, } from './consts/chains';
2
+ export { ChainMetadata, RpcPagination, ExplorerFamily, chainMetadata, chainIdToMetadata, mainnetChainsMetadata, testnetChainsMetadata, wagmiChainMetadata, PartialChainMetadata, partialChainMetadata, } from './consts/chainMetadata';
3
+ export { chainConnectionConfigs, testChainConnectionConfigs, } from './consts/chainConnectionConfigs';
4
+ export { environments as coreEnvironments, hyperlaneCoreAddresses, } from './consts/environments';
5
+ export { ChainMap, CompleteChainMap, Connection, NameOrDomain, RemoteChainMap, Remotes, TestChainNames, IChainConnection, } from './types';
6
+ export { ChainNameToDomainId, DomainIdToChainName } from './domains';
7
+ export { HyperlaneApp } from './HyperlaneApp';
8
+ export { HyperlaneAddresses, HyperlaneContracts, HyperlaneFactories, buildContracts, connectContracts, serializeContracts, } from './contracts';
9
+ export { Annotated, getEvents, queryAnnotatedEvents, TSContract, } from './events';
10
+ export { TransparentProxyAddresses, ProxiedContract, ProxyAddresses, } from './proxy';
11
+ export { Router, RouterContracts, RouterFactories } from './router';
12
+ export { ChainConnection } from './providers/ChainConnection';
13
+ export { MultiProvider } from './providers/MultiProvider';
14
+ export { RetryJsonRpcProvider, RetryProvider } from './providers/RetryProvider';
15
+ export { HyperlaneCore, CoreContractsMap, DispatchedMessage, } from './core/HyperlaneCore';
16
+ export { CoreContracts, coreFactories } from './core/contracts';
17
+ export { HyperlaneLifecyleEvent, AnnotatedDispatch, AnnotatedLifecycleEvent, } from './core/events';
18
+ export { HyperlaneMessage, HyperlaneStatus, MessageStatus, resolveDomain, resolveId, resolveChains, } from './core/message';
19
+ export { TestCoreApp, TestCoreContracts } from './core/TestCoreApp';
20
+ export { TestCoreDeployer } from './core/TestCoreDeployer';
21
+ export { InterchainGasCalculator, ParsedMessage } from './gas/calculator';
22
+ export { CoinGeckoTokenPriceGetter, TokenPriceGetter, } from './gas/token-prices';
23
+ export { HyperlaneAppChecker } from './deploy/HyperlaneAppChecker';
24
+ export { CheckerViolation, EnvironmentConfig, OwnerViolation, ViolationType, } from './deploy/types';
25
+ export { HyperlaneCoreDeployer } from './deploy/core/HyperlaneCoreDeployer';
26
+ export { HyperlaneCoreChecker } from './deploy/core/HyperlaneCoreChecker';
27
+ export { CoreConfig, CoreViolationType, EnrolledValidatorsViolation, MultisigIsmViolation, MultisigIsmViolationType, } from './deploy/core/types';
28
+ export { HyperlaneDeployer } from './deploy/HyperlaneDeployer';
29
+ export { ProxyViolation } from './deploy/proxy';
30
+ export { HyperlaneRouterDeployer } from './deploy/router/HyperlaneRouterDeployer';
31
+ export { HyperlaneRouterChecker } from './deploy/router/HyperlaneRouterChecker';
32
+ export { InterchainAccountDeployer, InterchainQueryDeployer, } from './deploy/middleware/deploy';
33
+ export { LiquidityLayerDeployer, BridgeAdapterType, BridgeAdapterConfig, CircleBridgeAdapterConfig, } from './deploy/middleware/LiquidityLayerRouterDeployer';
34
+ export { LiquidityLayerApp } from './deploy/middleware/LiquidityLayerApp';
35
+ export { LiquidityLayerContracts, interchainAccountFactories, interchainQueryFactories, liquidityLayerFactories, } from './middleware';
36
+ export { RouterConfig } from './deploy/router/types';
37
+ export { getTestMultiProvider, getChainToOwnerMap } from './deploy/utils';
38
+ export { ContractVerifier } from './deploy/verify/ContractVerifier';
39
+ export { ContractVerificationInput, VerificationInput, CompilerOptions, } from './deploy/verify/types';
40
+ export * as verificationUtils from './deploy/verify/utils';
41
+ export { canonizeId, evmId } from './utils/ids';
42
+ export { MultiGeneric } from './utils/MultiGeneric';
43
+ export { bigToFixed, convertDecimalValue, fixedToBig, mulBigAndFixed, } from './utils/number';
44
+ export { objMap, objMapEntries, promiseObjAll, pick } from './utils/objects';
45
+ export { delay } from './utils/time';
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.HyperlaneRouterChecker = exports.HyperlaneRouterDeployer = exports.HyperlaneDeployer = exports.MultisigIsmViolationType = exports.CoreViolationType = exports.HyperlaneCoreChecker = exports.HyperlaneCoreDeployer = exports.ViolationType = exports.HyperlaneAppChecker = exports.CoinGeckoTokenPriceGetter = exports.InterchainGasCalculator = exports.TestCoreDeployer = exports.TestCoreApp = exports.resolveChains = exports.resolveId = exports.resolveDomain = exports.MessageStatus = exports.HyperlaneMessage = exports.coreFactories = exports.HyperlaneCore = exports.RetryProvider = exports.RetryJsonRpcProvider = exports.MultiProvider = exports.ChainConnection = exports.ProxiedContract = exports.queryAnnotatedEvents = exports.getEvents = exports.Annotated = exports.serializeContracts = exports.connectContracts = exports.buildContracts = exports.HyperlaneApp = exports.DomainIdToChainName = exports.ChainNameToDomainId = exports.hyperlaneCoreAddresses = exports.coreEnvironments = exports.testChainConnectionConfigs = exports.chainConnectionConfigs = exports.partialChainMetadata = exports.wagmiChainMetadata = exports.testnetChainsMetadata = exports.mainnetChainsMetadata = exports.chainIdToMetadata = exports.chainMetadata = exports.ExplorerFamily = exports.AllDeprecatedChains = exports.Mainnets = exports.AllChains = exports.DeprecatedChains = exports.Chains = void 0;
27
+ exports.delay = exports.pick = exports.promiseObjAll = exports.objMapEntries = exports.objMap = exports.mulBigAndFixed = exports.fixedToBig = exports.convertDecimalValue = exports.bigToFixed = exports.MultiGeneric = exports.evmId = exports.canonizeId = exports.verificationUtils = exports.ContractVerifier = exports.getChainToOwnerMap = exports.getTestMultiProvider = exports.liquidityLayerFactories = exports.interchainQueryFactories = exports.interchainAccountFactories = exports.LiquidityLayerApp = exports.BridgeAdapterType = exports.LiquidityLayerDeployer = exports.InterchainQueryDeployer = exports.InterchainAccountDeployer = void 0;
28
+ var chains_1 = require("./consts/chains");
29
+ Object.defineProperty(exports, "Chains", { enumerable: true, get: function () { return chains_1.Chains; } });
30
+ Object.defineProperty(exports, "DeprecatedChains", { enumerable: true, get: function () { return chains_1.DeprecatedChains; } });
31
+ Object.defineProperty(exports, "AllChains", { enumerable: true, get: function () { return chains_1.AllChains; } });
32
+ Object.defineProperty(exports, "Mainnets", { enumerable: true, get: function () { return chains_1.Mainnets; } });
33
+ Object.defineProperty(exports, "AllDeprecatedChains", { enumerable: true, get: function () { return chains_1.AllDeprecatedChains; } });
34
+ var chainMetadata_1 = require("./consts/chainMetadata");
35
+ Object.defineProperty(exports, "ExplorerFamily", { enumerable: true, get: function () { return chainMetadata_1.ExplorerFamily; } });
36
+ Object.defineProperty(exports, "chainMetadata", { enumerable: true, get: function () { return chainMetadata_1.chainMetadata; } });
37
+ Object.defineProperty(exports, "chainIdToMetadata", { enumerable: true, get: function () { return chainMetadata_1.chainIdToMetadata; } });
38
+ Object.defineProperty(exports, "mainnetChainsMetadata", { enumerable: true, get: function () { return chainMetadata_1.mainnetChainsMetadata; } });
39
+ Object.defineProperty(exports, "testnetChainsMetadata", { enumerable: true, get: function () { return chainMetadata_1.testnetChainsMetadata; } });
40
+ Object.defineProperty(exports, "wagmiChainMetadata", { enumerable: true, get: function () { return chainMetadata_1.wagmiChainMetadata; } });
41
+ Object.defineProperty(exports, "partialChainMetadata", { enumerable: true, get: function () { return chainMetadata_1.partialChainMetadata; } });
42
+ var chainConnectionConfigs_1 = require("./consts/chainConnectionConfigs");
43
+ Object.defineProperty(exports, "chainConnectionConfigs", { enumerable: true, get: function () { return chainConnectionConfigs_1.chainConnectionConfigs; } });
44
+ Object.defineProperty(exports, "testChainConnectionConfigs", { enumerable: true, get: function () { return chainConnectionConfigs_1.testChainConnectionConfigs; } });
45
+ var environments_1 = require("./consts/environments");
46
+ Object.defineProperty(exports, "coreEnvironments", { enumerable: true, get: function () { return environments_1.environments; } });
47
+ Object.defineProperty(exports, "hyperlaneCoreAddresses", { enumerable: true, get: function () { return environments_1.hyperlaneCoreAddresses; } });
48
+ var domains_1 = require("./domains");
49
+ Object.defineProperty(exports, "ChainNameToDomainId", { enumerable: true, get: function () { return domains_1.ChainNameToDomainId; } });
50
+ Object.defineProperty(exports, "DomainIdToChainName", { enumerable: true, get: function () { return domains_1.DomainIdToChainName; } });
51
+ var HyperlaneApp_1 = require("./HyperlaneApp");
52
+ Object.defineProperty(exports, "HyperlaneApp", { enumerable: true, get: function () { return HyperlaneApp_1.HyperlaneApp; } });
53
+ var contracts_1 = require("./contracts");
54
+ Object.defineProperty(exports, "buildContracts", { enumerable: true, get: function () { return contracts_1.buildContracts; } });
55
+ Object.defineProperty(exports, "connectContracts", { enumerable: true, get: function () { return contracts_1.connectContracts; } });
56
+ Object.defineProperty(exports, "serializeContracts", { enumerable: true, get: function () { return contracts_1.serializeContracts; } });
57
+ var events_1 = require("./events");
58
+ Object.defineProperty(exports, "Annotated", { enumerable: true, get: function () { return events_1.Annotated; } });
59
+ Object.defineProperty(exports, "getEvents", { enumerable: true, get: function () { return events_1.getEvents; } });
60
+ Object.defineProperty(exports, "queryAnnotatedEvents", { enumerable: true, get: function () { return events_1.queryAnnotatedEvents; } });
61
+ var proxy_1 = require("./proxy");
62
+ Object.defineProperty(exports, "ProxiedContract", { enumerable: true, get: function () { return proxy_1.ProxiedContract; } });
63
+ var ChainConnection_1 = require("./providers/ChainConnection");
64
+ Object.defineProperty(exports, "ChainConnection", { enumerable: true, get: function () { return ChainConnection_1.ChainConnection; } });
65
+ var MultiProvider_1 = require("./providers/MultiProvider");
66
+ Object.defineProperty(exports, "MultiProvider", { enumerable: true, get: function () { return MultiProvider_1.MultiProvider; } });
67
+ var RetryProvider_1 = require("./providers/RetryProvider");
68
+ Object.defineProperty(exports, "RetryJsonRpcProvider", { enumerable: true, get: function () { return RetryProvider_1.RetryJsonRpcProvider; } });
69
+ Object.defineProperty(exports, "RetryProvider", { enumerable: true, get: function () { return RetryProvider_1.RetryProvider; } });
70
+ var HyperlaneCore_1 = require("./core/HyperlaneCore");
71
+ Object.defineProperty(exports, "HyperlaneCore", { enumerable: true, get: function () { return HyperlaneCore_1.HyperlaneCore; } });
72
+ var contracts_2 = require("./core/contracts");
73
+ Object.defineProperty(exports, "coreFactories", { enumerable: true, get: function () { return contracts_2.coreFactories; } });
74
+ var message_1 = require("./core/message");
75
+ Object.defineProperty(exports, "HyperlaneMessage", { enumerable: true, get: function () { return message_1.HyperlaneMessage; } });
76
+ Object.defineProperty(exports, "MessageStatus", { enumerable: true, get: function () { return message_1.MessageStatus; } });
77
+ Object.defineProperty(exports, "resolveDomain", { enumerable: true, get: function () { return message_1.resolveDomain; } });
78
+ Object.defineProperty(exports, "resolveId", { enumerable: true, get: function () { return message_1.resolveId; } });
79
+ Object.defineProperty(exports, "resolveChains", { enumerable: true, get: function () { return message_1.resolveChains; } });
80
+ var TestCoreApp_1 = require("./core/TestCoreApp");
81
+ Object.defineProperty(exports, "TestCoreApp", { enumerable: true, get: function () { return TestCoreApp_1.TestCoreApp; } });
82
+ var TestCoreDeployer_1 = require("./core/TestCoreDeployer");
83
+ Object.defineProperty(exports, "TestCoreDeployer", { enumerable: true, get: function () { return TestCoreDeployer_1.TestCoreDeployer; } });
84
+ var calculator_1 = require("./gas/calculator");
85
+ Object.defineProperty(exports, "InterchainGasCalculator", { enumerable: true, get: function () { return calculator_1.InterchainGasCalculator; } });
86
+ var token_prices_1 = require("./gas/token-prices");
87
+ Object.defineProperty(exports, "CoinGeckoTokenPriceGetter", { enumerable: true, get: function () { return token_prices_1.CoinGeckoTokenPriceGetter; } });
88
+ var HyperlaneAppChecker_1 = require("./deploy/HyperlaneAppChecker");
89
+ Object.defineProperty(exports, "HyperlaneAppChecker", { enumerable: true, get: function () { return HyperlaneAppChecker_1.HyperlaneAppChecker; } });
90
+ var types_1 = require("./deploy/types");
91
+ Object.defineProperty(exports, "ViolationType", { enumerable: true, get: function () { return types_1.ViolationType; } });
92
+ var HyperlaneCoreDeployer_1 = require("./deploy/core/HyperlaneCoreDeployer");
93
+ Object.defineProperty(exports, "HyperlaneCoreDeployer", { enumerable: true, get: function () { return HyperlaneCoreDeployer_1.HyperlaneCoreDeployer; } });
94
+ var HyperlaneCoreChecker_1 = require("./deploy/core/HyperlaneCoreChecker");
95
+ Object.defineProperty(exports, "HyperlaneCoreChecker", { enumerable: true, get: function () { return HyperlaneCoreChecker_1.HyperlaneCoreChecker; } });
96
+ var types_2 = require("./deploy/core/types");
97
+ Object.defineProperty(exports, "CoreViolationType", { enumerable: true, get: function () { return types_2.CoreViolationType; } });
98
+ Object.defineProperty(exports, "MultisigIsmViolationType", { enumerable: true, get: function () { return types_2.MultisigIsmViolationType; } });
99
+ var HyperlaneDeployer_1 = require("./deploy/HyperlaneDeployer");
100
+ Object.defineProperty(exports, "HyperlaneDeployer", { enumerable: true, get: function () { return HyperlaneDeployer_1.HyperlaneDeployer; } });
101
+ var HyperlaneRouterDeployer_1 = require("./deploy/router/HyperlaneRouterDeployer");
102
+ Object.defineProperty(exports, "HyperlaneRouterDeployer", { enumerable: true, get: function () { return HyperlaneRouterDeployer_1.HyperlaneRouterDeployer; } });
103
+ var HyperlaneRouterChecker_1 = require("./deploy/router/HyperlaneRouterChecker");
104
+ Object.defineProperty(exports, "HyperlaneRouterChecker", { enumerable: true, get: function () { return HyperlaneRouterChecker_1.HyperlaneRouterChecker; } });
105
+ var deploy_1 = require("./deploy/middleware/deploy");
106
+ Object.defineProperty(exports, "InterchainAccountDeployer", { enumerable: true, get: function () { return deploy_1.InterchainAccountDeployer; } });
107
+ Object.defineProperty(exports, "InterchainQueryDeployer", { enumerable: true, get: function () { return deploy_1.InterchainQueryDeployer; } });
108
+ var LiquidityLayerRouterDeployer_1 = require("./deploy/middleware/LiquidityLayerRouterDeployer");
109
+ Object.defineProperty(exports, "LiquidityLayerDeployer", { enumerable: true, get: function () { return LiquidityLayerRouterDeployer_1.LiquidityLayerDeployer; } });
110
+ Object.defineProperty(exports, "BridgeAdapterType", { enumerable: true, get: function () { return LiquidityLayerRouterDeployer_1.BridgeAdapterType; } });
111
+ var LiquidityLayerApp_1 = require("./deploy/middleware/LiquidityLayerApp");
112
+ Object.defineProperty(exports, "LiquidityLayerApp", { enumerable: true, get: function () { return LiquidityLayerApp_1.LiquidityLayerApp; } });
113
+ var middleware_1 = require("./middleware");
114
+ Object.defineProperty(exports, "interchainAccountFactories", { enumerable: true, get: function () { return middleware_1.interchainAccountFactories; } });
115
+ Object.defineProperty(exports, "interchainQueryFactories", { enumerable: true, get: function () { return middleware_1.interchainQueryFactories; } });
116
+ Object.defineProperty(exports, "liquidityLayerFactories", { enumerable: true, get: function () { return middleware_1.liquidityLayerFactories; } });
117
+ var utils_1 = require("./deploy/utils");
118
+ Object.defineProperty(exports, "getTestMultiProvider", { enumerable: true, get: function () { return utils_1.getTestMultiProvider; } });
119
+ Object.defineProperty(exports, "getChainToOwnerMap", { enumerable: true, get: function () { return utils_1.getChainToOwnerMap; } });
120
+ var ContractVerifier_1 = require("./deploy/verify/ContractVerifier");
121
+ Object.defineProperty(exports, "ContractVerifier", { enumerable: true, get: function () { return ContractVerifier_1.ContractVerifier; } });
122
+ exports.verificationUtils = __importStar(require("./deploy/verify/utils"));
123
+ var ids_1 = require("./utils/ids");
124
+ Object.defineProperty(exports, "canonizeId", { enumerable: true, get: function () { return ids_1.canonizeId; } });
125
+ Object.defineProperty(exports, "evmId", { enumerable: true, get: function () { return ids_1.evmId; } });
126
+ var MultiGeneric_1 = require("./utils/MultiGeneric");
127
+ Object.defineProperty(exports, "MultiGeneric", { enumerable: true, get: function () { return MultiGeneric_1.MultiGeneric; } });
128
+ var number_1 = require("./utils/number");
129
+ Object.defineProperty(exports, "bigToFixed", { enumerable: true, get: function () { return number_1.bigToFixed; } });
130
+ Object.defineProperty(exports, "convertDecimalValue", { enumerable: true, get: function () { return number_1.convertDecimalValue; } });
131
+ Object.defineProperty(exports, "fixedToBig", { enumerable: true, get: function () { return number_1.fixedToBig; } });
132
+ Object.defineProperty(exports, "mulBigAndFixed", { enumerable: true, get: function () { return number_1.mulBigAndFixed; } });
133
+ var objects_1 = require("./utils/objects");
134
+ Object.defineProperty(exports, "objMap", { enumerable: true, get: function () { return objects_1.objMap; } });
135
+ Object.defineProperty(exports, "objMapEntries", { enumerable: true, get: function () { return objects_1.objMapEntries; } });
136
+ Object.defineProperty(exports, "promiseObjAll", { enumerable: true, get: function () { return objects_1.promiseObjAll; } });
137
+ Object.defineProperty(exports, "pick", { enumerable: true, get: function () { return objects_1.pick; } });
138
+ var time_1 = require("./utils/time");
139
+ Object.defineProperty(exports, "delay", { enumerable: true, get: function () { return time_1.delay; } });
140
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=accounts.hardhat-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.hardhat-test.d.ts","sourceRoot":"","sources":["../../src/middleware/accounts.hardhat-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
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
+ const chai_1 = require("chai");
13
+ const hardhat_1 = require("hardhat");
14
+ const core_1 = require("@hyperlane-xyz/core");
15
+ const chainConnectionConfigs_1 = require("../consts/chainConnectionConfigs");
16
+ const TestCoreApp_1 = require("../core/TestCoreApp");
17
+ const TestCoreDeployer_1 = require("../core/TestCoreDeployer");
18
+ const deploy_1 = require("../deploy/middleware/deploy");
19
+ const utils_1 = require("../deploy/utils");
20
+ const domains_1 = require("../domains");
21
+ describe('InterchainAccountRouter', () => __awaiter(void 0, void 0, void 0, function* () {
22
+ const localChain = 'test1';
23
+ const remoteChain = 'test2';
24
+ const localDomain = domains_1.ChainNameToDomainId[localChain];
25
+ const remoteDomain = domains_1.ChainNameToDomainId[remoteChain];
26
+ let signer;
27
+ let local;
28
+ let remote;
29
+ let multiProvider;
30
+ let coreApp;
31
+ let config;
32
+ before(() => __awaiter(void 0, void 0, void 0, function* () {
33
+ [signer] = yield hardhat_1.ethers.getSigners();
34
+ multiProvider = (0, utils_1.getTestMultiProvider)(signer);
35
+ const coreDeployer = new TestCoreDeployer_1.TestCoreDeployer(multiProvider);
36
+ const coreContractsMaps = yield coreDeployer.deploy();
37
+ coreApp = new TestCoreApp_1.TestCoreApp(coreContractsMaps, multiProvider);
38
+ config = coreApp.extendWithConnectionClientConfig((0, utils_1.getChainToOwnerMap)(chainConnectionConfigs_1.testChainConnectionConfigs, signer.address));
39
+ }));
40
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
41
+ const InterchainAccount = new deploy_1.InterchainAccountDeployer(multiProvider, config, coreApp);
42
+ const contracts = yield InterchainAccount.deploy();
43
+ local = contracts[localChain].router;
44
+ remote = contracts[remoteChain].router;
45
+ }));
46
+ it('forwards calls from interchain account', () => __awaiter(void 0, void 0, void 0, function* () {
47
+ const recipientF = new core_1.TestRecipient__factory(signer);
48
+ const recipient = yield recipientF.deploy();
49
+ const fooMessage = 'Test';
50
+ const data = recipient.interface.encodeFunctionData('fooBar', [
51
+ 1,
52
+ fooMessage,
53
+ ]);
54
+ const icaAddress = yield remote.getInterchainAccount(localDomain, signer.address);
55
+ yield local['dispatch(uint32,(address,bytes)[])'](remoteDomain, [
56
+ { to: recipient.address, data },
57
+ ]);
58
+ yield coreApp.processMessages();
59
+ (0, chai_1.expect)(yield recipient.lastCallMessage()).to.eql(fooMessage);
60
+ (0, chai_1.expect)(yield recipient.lastCaller()).to.eql(icaAddress);
61
+ }));
62
+ }));
63
+ //# sourceMappingURL=accounts.hardhat-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.hardhat-test.js","sourceRoot":"","sources":["../../src/middleware/accounts.hardhat-test.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,+BAA8B;AAC9B,qCAAiC;AAEjC,8CAG6B;AAE7B,6EAA8E;AAC9E,qDAAkD;AAClD,+DAA4D;AAC5D,wDAAwE;AAExE,2CAA2E;AAC3E,wCAAiD;AAIjD,QAAQ,CAAC,yBAAyB,EAAE,GAAS,EAAE;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC;IAC3B,MAAM,WAAW,GAAG,OAAO,CAAC;IAC5B,MAAM,WAAW,GAAG,6BAAmB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,6BAAmB,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,MAAyB,CAAC;IAC9B,IAAI,KAA8B,CAAC;IACnC,IAAI,MAA+B,CAAC;IACpC,IAAI,aAA4C,CAAC;IACjD,IAAI,OAAoB,CAAC;IACzB,IAAI,MAA8C,CAAC;IAEnD,MAAM,CAAC,GAAS,EAAE;QAChB,CAAC,MAAM,CAAC,GAAG,MAAM,gBAAM,CAAC,UAAU,EAAE,CAAC;QAErC,aAAa,GAAG,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,YAAY,GAAG,IAAI,mCAAgB,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;QACtD,OAAO,GAAG,IAAI,yBAAW,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAC5D,MAAM,GAAG,OAAO,CAAC,gCAAgC,CAC/C,IAAA,0BAAkB,EAAC,mDAA0B,EAAE,MAAM,CAAC,OAAO,CAAC,CAC/D,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;IAEH,UAAU,CAAC,GAAS,EAAE;QACpB,MAAM,iBAAiB,GAAG,IAAI,kCAAyB,CACrD,aAAa,EACb,MAAM,EACN,OAAO,CACR,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAEnD,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrC,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACtD,MAAM,UAAU,GAAG,IAAI,6BAAsB,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,CAAC;QAC1B,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YAC5D,CAAC;YACD,UAAU;SACX,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAClD,WAAW,EACX,MAAM,CAAC,OAAO,CACf,CAAC;QACF,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC,YAAY,EAAE;YAC9D,EAAE,EAAE,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;SAChC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QAChC,IAAA,aAAM,EAAC,MAAM,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAA,aAAM,EAAC,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAA,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=liquidity-layer.hardhat-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidity-layer.hardhat-test.d.ts","sourceRoot":"","sources":["../../src/middleware/liquidity-layer.hardhat-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,89 @@
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
+ const chai_1 = require("chai");
13
+ const hardhat_1 = require("hardhat");
14
+ const core_1 = require("@hyperlane-xyz/core");
15
+ const utils_1 = require("@hyperlane-xyz/utils");
16
+ const chainConnectionConfigs_1 = require("../consts/chainConnectionConfigs");
17
+ const TestCoreApp_1 = require("../core/TestCoreApp");
18
+ const TestCoreDeployer_1 = require("../core/TestCoreDeployer");
19
+ const LiquidityLayerApp_1 = require("../deploy/middleware/LiquidityLayerApp");
20
+ const LiquidityLayerRouterDeployer_1 = require("../deploy/middleware/LiquidityLayerRouterDeployer");
21
+ const utils_2 = require("../deploy/utils");
22
+ const domains_1 = require("../domains");
23
+ const objects_1 = require("../utils/objects");
24
+ describe('LiquidityLayerRouter', () => __awaiter(void 0, void 0, void 0, function* () {
25
+ const localChain = 'test1';
26
+ const remoteChain = 'test2';
27
+ const localDomain = domains_1.ChainNameToDomainId[localChain];
28
+ const remoteDomain = domains_1.ChainNameToDomainId[remoteChain];
29
+ let signer;
30
+ let local;
31
+ let multiProvider;
32
+ let coreApp;
33
+ let liquidityLayerApp;
34
+ let config;
35
+ let mockToken;
36
+ let circleBridge;
37
+ let messageTransmitter;
38
+ before(() => __awaiter(void 0, void 0, void 0, function* () {
39
+ [signer] = yield hardhat_1.ethers.getSigners();
40
+ multiProvider = (0, utils_2.getTestMultiProvider)(signer);
41
+ const coreDeployer = new TestCoreDeployer_1.TestCoreDeployer(multiProvider);
42
+ const coreContractsMaps = yield coreDeployer.deploy();
43
+ coreApp = new TestCoreApp_1.TestCoreApp(coreContractsMaps, multiProvider);
44
+ const mockTokenF = new core_1.MockToken__factory(signer);
45
+ mockToken = yield mockTokenF.deploy();
46
+ const circleBridgeF = new core_1.MockCircleBridge__factory(signer);
47
+ circleBridge = yield circleBridgeF.deploy(mockToken.address);
48
+ const messageTransmitterF = new core_1.MockCircleMessageTransmitter__factory(signer);
49
+ messageTransmitter = yield messageTransmitterF.deploy(mockToken.address);
50
+ config = coreApp.extendWithConnectionClientConfig((0, objects_1.objMap)((0, utils_2.getChainToOwnerMap)(chainConnectionConfigs_1.testChainConnectionConfigs, signer.address), (_chain, conf) => (Object.assign(Object.assign({}, conf), { bridgeAdapterConfigs: [
51
+ {
52
+ type: LiquidityLayerRouterDeployer_1.BridgeAdapterType.Circle,
53
+ circleBridgeAddress: circleBridge.address,
54
+ messageTransmitterAddress: messageTransmitter.address,
55
+ usdcAddress: mockToken.address,
56
+ circleDomainMapping: [
57
+ {
58
+ hyperlaneDomain: localDomain,
59
+ circleDomain: localDomain,
60
+ },
61
+ {
62
+ hyperlaneDomain: remoteDomain,
63
+ circleDomain: remoteDomain,
64
+ },
65
+ ],
66
+ },
67
+ ] }))));
68
+ }));
69
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
70
+ const LiquidityLayer = new LiquidityLayerRouterDeployer_1.LiquidityLayerDeployer(multiProvider, config, coreApp);
71
+ const contracts = yield LiquidityLayer.deploy();
72
+ liquidityLayerApp = new LiquidityLayerApp_1.LiquidityLayerApp(contracts, multiProvider, (0, objects_1.objMap)(config, (_chain, conf) => conf.bridgeAdapterConfigs));
73
+ local = liquidityLayerApp.getContracts(localChain).router;
74
+ }));
75
+ it('can transfer tokens', () => __awaiter(void 0, void 0, void 0, function* () {
76
+ const recipientF = new core_1.TestLiquidityLayerMessageRecipient__factory(signer);
77
+ const recipient = yield recipientF.deploy();
78
+ const amount = 1000;
79
+ yield mockToken.mint(signer.address, amount);
80
+ yield mockToken.approve(local.address, amount);
81
+ yield local.dispatchWithTokens(remoteDomain, utils_1.utils.addressToBytes32(recipient.address), '0x00', mockToken.address, amount, LiquidityLayerRouterDeployer_1.BridgeAdapterType.Circle);
82
+ const transferNonce = yield circleBridge.nextNonce();
83
+ const nonceId = yield messageTransmitter.hashSourceAndNonce(localDomain, transferNonce);
84
+ yield messageTransmitter.process(nonceId, liquidityLayerApp.getContracts(remoteChain).circleBridgeAdapter.address, amount);
85
+ yield coreApp.processMessages();
86
+ (0, chai_1.expect)((yield mockToken.balanceOf(recipient.address)).toNumber()).to.eql(amount);
87
+ }));
88
+ }));
89
+ //# sourceMappingURL=liquidity-layer.hardhat-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidity-layer.hardhat-test.js","sourceRoot":"","sources":["../../src/middleware/liquidity-layer.hardhat-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=queries.hardhat-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.hardhat-test.d.ts","sourceRoot":"","sources":["../../src/middleware/queries.hardhat-test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
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
+ const chai_1 = require("chai");
13
+ const hardhat_1 = require("hardhat");
14
+ const core_1 = require("@hyperlane-xyz/core");
15
+ const chainConnectionConfigs_1 = require("../consts/chainConnectionConfigs");
16
+ const TestCoreApp_1 = require("../core/TestCoreApp");
17
+ const TestCoreDeployer_1 = require("../core/TestCoreDeployer");
18
+ const deploy_1 = require("../deploy/middleware/deploy");
19
+ const utils_1 = require("../deploy/utils");
20
+ const domains_1 = require("../domains");
21
+ describe('InterchainQueryRouter', () => __awaiter(void 0, void 0, void 0, function* () {
22
+ const localChain = 'test1';
23
+ const remoteChain = 'test2';
24
+ const localDomain = domains_1.ChainNameToDomainId[localChain];
25
+ const remoteDomain = domains_1.ChainNameToDomainId[remoteChain];
26
+ let signer;
27
+ let local;
28
+ let remote;
29
+ let multiProvider;
30
+ let coreApp;
31
+ let config;
32
+ let testQuery;
33
+ before(() => __awaiter(void 0, void 0, void 0, function* () {
34
+ [signer] = yield hardhat_1.ethers.getSigners();
35
+ multiProvider = (0, utils_1.getTestMultiProvider)(signer);
36
+ const coreDeployer = new TestCoreDeployer_1.TestCoreDeployer(multiProvider);
37
+ const coreContractsMaps = yield coreDeployer.deploy();
38
+ coreApp = new TestCoreApp_1.TestCoreApp(coreContractsMaps, multiProvider);
39
+ config = coreApp.extendWithConnectionClientConfig((0, utils_1.getChainToOwnerMap)(chainConnectionConfigs_1.testChainConnectionConfigs, signer.address));
40
+ }));
41
+ beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
42
+ const InterchainQuery = new deploy_1.InterchainQueryDeployer(multiProvider, config, coreApp);
43
+ const contracts = yield InterchainQuery.deploy();
44
+ local = contracts[localChain].router;
45
+ remote = contracts[remoteChain].router;
46
+ testQuery = yield new core_1.TestQuery__factory(signer).deploy(local.address);
47
+ }));
48
+ it('completes query round trip and invokes callback', () => __awaiter(void 0, void 0, void 0, function* () {
49
+ const secret = 123;
50
+ const expectedOwner = yield remote.owner();
51
+ yield (0, chai_1.expect)(testQuery.queryRouterOwner(remoteDomain, secret))
52
+ .to.emit(local, 'QueryDispatched')
53
+ .withArgs(remoteDomain, testQuery.address);
54
+ const result = yield coreApp.processOutboundMessages(localChain);
55
+ const response = result.get(remoteChain)[0];
56
+ yield (0, chai_1.expect)(response)
57
+ .to.emit(remote, 'QueryReturned')
58
+ .withArgs(localDomain, testQuery.address);
59
+ const result2 = yield coreApp.processOutboundMessages(remoteChain);
60
+ const response2 = result2.get(localChain)[0];
61
+ yield (0, chai_1.expect)(response2)
62
+ .to.emit(local, 'QueryResolved')
63
+ .withArgs(remoteDomain, testQuery.address);
64
+ yield (0, chai_1.expect)(response2)
65
+ .to.emit(testQuery, 'Owner')
66
+ .withArgs(secret, expectedOwner);
67
+ }));
68
+ }));
69
+ //# sourceMappingURL=queries.hardhat-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.hardhat-test.js","sourceRoot":"","sources":["../../src/middleware/queries.hardhat-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { CircleBridgeAdapter, CircleBridgeAdapter__factory, InterchainAccountRouter, InterchainQueryRouter, LiquidityLayerRouter } from '@hyperlane-xyz/core';
2
+ import { RouterContracts, RouterFactories } from './router';
3
+ export declare type InterchainAccountFactories = RouterFactories<InterchainAccountRouter>;
4
+ export declare const interchainAccountFactories: InterchainAccountFactories;
5
+ export declare type InterchainAccountContracts = RouterContracts<InterchainAccountRouter>;
6
+ export declare type InterchainQueryFactories = RouterFactories<InterchainQueryRouter>;
7
+ export declare const interchainQueryFactories: InterchainQueryFactories;
8
+ export declare type InterchainQueryContracts = RouterContracts<InterchainQueryRouter>;
9
+ export declare type LiquidityLayerFactories = RouterFactories<LiquidityLayerRouter> & {
10
+ circleBridgeAdapter: CircleBridgeAdapter__factory;
11
+ };
12
+ export declare const liquidityLayerFactories: LiquidityLayerFactories;
13
+ export declare type LiquidityLayerContracts = RouterContracts<LiquidityLayerRouter> & {
14
+ circleBridgeAdapter?: CircleBridgeAdapter;
15
+ };
16
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EAEvB,qBAAqB,EAErB,oBAAoB,EAErB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE5D,oBAAY,0BAA0B,GACpC,eAAe,CAAC,uBAAuB,CAAC,CAAC;AAE3C,eAAO,MAAM,0BAA0B,EAAE,0BAExC,CAAC;AAEF,oBAAY,0BAA0B,GACpC,eAAe,CAAC,uBAAuB,CAAC,CAAC;AAE3C,oBAAY,wBAAwB,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAC;AAE9E,eAAO,MAAM,wBAAwB,EAAE,wBAEtC,CAAC;AAEF,oBAAY,wBAAwB,GAAG,eAAe,CAAC,qBAAqB,CAAC,CAAC;AAE9E,oBAAY,uBAAuB,GAAG,eAAe,CAAC,oBAAoB,CAAC,GAAG;IAC5E,mBAAmB,EAAE,4BAA4B,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,uBAGrC,CAAC;AAEF,oBAAY,uBAAuB,GAAG,eAAe,CAAC,oBAAoB,CAAC,GAAG;IAC5E,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.liquidityLayerFactories = exports.interchainQueryFactories = exports.interchainAccountFactories = void 0;
4
+ const core_1 = require("@hyperlane-xyz/core");
5
+ exports.interchainAccountFactories = {
6
+ router: new core_1.InterchainAccountRouter__factory(),
7
+ };
8
+ exports.interchainQueryFactories = {
9
+ router: new core_1.InterchainQueryRouter__factory(),
10
+ };
11
+ exports.liquidityLayerFactories = {
12
+ router: new core_1.LiquidityLayerRouter__factory(),
13
+ circleBridgeAdapter: new core_1.CircleBridgeAdapter__factory(),
14
+ };
15
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":";;;AAAA,8CAS6B;AAOhB,QAAA,0BAA0B,GAA+B;IACpE,MAAM,EAAE,IAAI,uCAAgC,EAAE;CAC/C,CAAC;AAOW,QAAA,wBAAwB,GAA6B;IAChE,MAAM,EAAE,IAAI,qCAA8B,EAAE;CAC7C,CAAC;AAQW,QAAA,uBAAuB,GAA4B;IAC9D,MAAM,EAAE,IAAI,oCAA6B,EAAE;IAC3C,mBAAmB,EAAE,IAAI,mCAA4B,EAAE;CACxD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Debugger } from 'debug';
2
+ import { ethers } from 'ethers';
3
+ import { IChainConnection } from '../types';
4
+ export declare class ChainConnection {
5
+ provider: ethers.providers.Provider;
6
+ signer?: ethers.Signer;
7
+ overrides: ethers.Overrides;
8
+ confirmations: number;
9
+ blockExplorerUrl: string;
10
+ blockExplorerApiUrl: string;
11
+ logger: Debugger;
12
+ constructor(dc: IChainConnection);
13
+ getConnection: () => ethers.providers.Provider | ethers.Signer;
14
+ getAddress: () => Promise<string> | undefined;
15
+ getTxUrl(response: ethers.providers.TransactionResponse): string;
16
+ getAddressUrl(address?: string): Promise<string>;
17
+ getApiUrl(): string;
18
+ handleTx(tx: ethers.ContractTransaction | Promise<ethers.ContractTransaction>): Promise<ethers.ContractReceipt>;
19
+ estimateGas(tx: ethers.PopulatedTransaction, from?: string): Promise<ethers.BigNumber>;
20
+ sendTransaction(tx: ethers.PopulatedTransaction): Promise<ethers.ContractReceipt>;
21
+ }
22
+ //# sourceMappingURL=ChainConnection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainConnection.d.ts","sourceRoot":"","sources":["../../src/providers/ChainConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAS,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,qBAAa,eAAe;IAC1B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,QAAQ,CAAC;gBAEL,EAAE,EAAE,gBAAgB;IAUhC,aAAa,QAAO,OAAO,SAAS,CAAC,QAAQ,GAAG,OAAO,MAAM,CAC9B;IAE/B,UAAU,QAAO,QAAQ,MAAM,CAAC,GAAG,SAAS,CAA8B;IAE1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,mBAAmB,GAAG,MAAM;IAI1D,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtD,SAAS,IAAI,MAAM;IAIb,QAAQ,CACZ,EAAE,EAAE,MAAM,CAAC,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,GACnE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;IAU5B,WAAW,CACf,EAAE,EAAE,MAAM,CAAC,oBAAoB,EAC/B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAYtB,eAAe,CACnB,EAAE,EAAE,MAAM,CAAC,oBAAoB,GAC9B,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;CAWnC"}