@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,42 @@
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 contracts_1 = require("../../contracts");
13
+ const HyperlaneCore_1 = require("../../core/HyperlaneCore");
14
+ const utils_1 = require("../../deploy/utils");
15
+ const MultiProvider_1 = require("../../providers/MultiProvider");
16
+ const app_1 = require("./app");
17
+ const utils_2 = require("./utils");
18
+ function main() {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ const signer = (0, utils_2.getAlfajoresSigner)();
21
+ console.info('Preparing utilities');
22
+ const multiProvider = new MultiProvider_1.MultiProvider({
23
+ alfajores: {
24
+ provider: signer.provider,
25
+ confirmations: app_1.alfajoresChainConfig.alfajores.confirmations,
26
+ overrides: app_1.alfajoresChainConfig.alfajores.overrides,
27
+ },
28
+ });
29
+ const core = HyperlaneCore_1.HyperlaneCore.fromEnvironment('testnet2', multiProvider);
30
+ const config = core.extendWithConnectionClientConfig((0, utils_1.getChainToOwnerMap)(app_1.alfajoresChainConfig, signer.address));
31
+ console.info('Starting deployment');
32
+ const deployer = new app_1.EnvSubsetDeployer(multiProvider, config, core);
33
+ const chainToContracts = yield deployer.deploy();
34
+ const addresses = (0, contracts_1.serializeContracts)(chainToContracts);
35
+ console.info('===Contract Addresses===');
36
+ console.info(JSON.stringify(addresses));
37
+ });
38
+ }
39
+ main()
40
+ .then(() => console.info('Deploy complete'))
41
+ .catch(console.error);
42
+ //# sourceMappingURL=deploy-single-chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-single-chain.js","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/deploy-single-chain.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+CAAqD;AACrD,4DAAyD;AACzD,8CAAwD;AACxD,iEAA8D;AAE9D,+BAAgE;AAChE,mCAA6C;AAE7C,SAAe,IAAI;;QACjB,MAAM,MAAM,GAAG,IAAA,0BAAkB,GAAE,CAAC;QAEpC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC;YACtC,SAAS,EAAE;gBACT,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,aAAa,EAAE,0BAAoB,CAAC,SAAS,CAAC,aAAa;gBAC3D,SAAS,EAAE,0BAAoB,CAAC,SAAS,CAAC,SAAS;aACpD;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,6BAAa,CAAC,eAAe,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,gCAAgC,CAClD,IAAA,0BAAkB,EAAC,0BAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,CACzD,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,uBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpE,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,IAAA,8BAAkB,EAAC,gBAAgB,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1C,CAAC;CAAA;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC3C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import '@nomiclabs/hardhat-waffle';
2
+ //# sourceMappingURL=deploy.hardhat-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.hardhat-test.d.ts","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/deploy.hardhat-test.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,83 @@
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
+ require("@nomiclabs/hardhat-waffle");
13
+ const hardhat_1 = require("hardhat");
14
+ const TestCoreApp_1 = require("../../core/TestCoreApp");
15
+ const TestCoreDeployer_1 = require("../../core/TestCoreDeployer");
16
+ const utils_1 = require("../../deploy/utils");
17
+ const app_1 = require("./app");
18
+ // Tests deploying the basic EnvSubsetApp to a local hardhat-based test env
19
+ describe('deploy app for full test env', () => __awaiter(void 0, void 0, void 0, function* () {
20
+ let multiProvider;
21
+ let config;
22
+ let deployer;
23
+ let contracts;
24
+ let app;
25
+ before(() => __awaiter(void 0, void 0, void 0, function* () {
26
+ const testEnv = yield initTestEnv(app_1.fullEnvTestConfigs);
27
+ multiProvider = testEnv.multiProvider;
28
+ config = testEnv.config;
29
+ deployer = testEnv.deployer;
30
+ }));
31
+ it('deploys', () => __awaiter(void 0, void 0, void 0, function* () {
32
+ contracts = yield deployer.deploy();
33
+ }));
34
+ it('builds app', () => __awaiter(void 0, void 0, void 0, function* () {
35
+ app = new app_1.EnvSubsetApp(contracts, multiProvider);
36
+ }));
37
+ it('checks', () => __awaiter(void 0, void 0, void 0, function* () {
38
+ const checker = new app_1.EnvSubsetChecker(multiProvider, app, config);
39
+ yield checker.check();
40
+ checker.expectEmpty();
41
+ }));
42
+ }));
43
+ // Tests same as above but only a subset of the full test env
44
+ describe('deploy app to test env subset', () => __awaiter(void 0, void 0, void 0, function* () {
45
+ let multiProvider;
46
+ let config;
47
+ let deployer;
48
+ let contracts;
49
+ let app;
50
+ before(() => __awaiter(void 0, void 0, void 0, function* () {
51
+ const testEnv = yield initTestEnv(app_1.subsetTestConfigs);
52
+ multiProvider = testEnv.multiProvider;
53
+ config = {
54
+ test1: testEnv.config.test1,
55
+ test2: testEnv.config.test2,
56
+ };
57
+ deployer = testEnv.deployer;
58
+ }));
59
+ it('deploys', () => __awaiter(void 0, void 0, void 0, function* () {
60
+ contracts = yield deployer.deploy();
61
+ }));
62
+ it('builds app', () => __awaiter(void 0, void 0, void 0, function* () {
63
+ app = new app_1.EnvSubsetApp(contracts, multiProvider);
64
+ }));
65
+ it('checks', () => __awaiter(void 0, void 0, void 0, function* () {
66
+ const checker = new app_1.EnvSubsetChecker(multiProvider, app, config);
67
+ yield checker.check();
68
+ checker.expectEmpty();
69
+ }));
70
+ }));
71
+ function initTestEnv(environmentConfig) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const [signer] = yield hardhat_1.ethers.getSigners();
74
+ const multiProvider = (0, utils_1.getTestMultiProvider)(signer, environmentConfig);
75
+ const coreDeployer = new TestCoreDeployer_1.TestCoreDeployer(multiProvider);
76
+ const coreContractsMaps = yield coreDeployer.deploy();
77
+ const core = new TestCoreApp_1.TestCoreApp(coreContractsMaps, multiProvider);
78
+ const config = core.extendWithConnectionClientConfig((0, utils_1.getChainToOwnerMap)(app_1.fullEnvTestConfigs, signer.address));
79
+ const deployer = new app_1.EnvSubsetDeployer(multiProvider, config, core);
80
+ return { multiProvider, config, deployer };
81
+ });
82
+ }
83
+ //# sourceMappingURL=deploy.hardhat-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.hardhat-test.js","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/deploy.hardhat-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Wallet } from 'ethers';
2
+ import { StaticCeloJsonRpcProvider } from '@hyperlane-xyz/celo-ethers-provider';
3
+ export declare const ALFAJORES_FORNO = "https://alfajores-forno.celo-testnet.org";
4
+ export declare const CELO_DERIVATION_PATH = "m/44'/52752'/0'/0/0";
5
+ export declare function getAlfajoresSigner(): Wallet;
6
+ export declare function getAlfajoresProvider(): StaticCeloJsonRpcProvider;
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGhF,eAAO,MAAM,eAAe,6CAA6C,CAAC;AAC1E,eAAO,MAAM,oBAAoB,wBAAwB,CAAC;AAE1D,wBAAgB,kBAAkB,WAUjC;AAED,wBAAgB,oBAAoB,8BAGnC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAlfajoresProvider = exports.getAlfajoresSigner = exports.CELO_DERIVATION_PATH = exports.ALFAJORES_FORNO = void 0;
4
+ const ethers_1 = require("ethers");
5
+ const celo_ethers_provider_1 = require("@hyperlane-xyz/celo-ethers-provider");
6
+ const utils_1 = require("@hyperlane-xyz/utils");
7
+ exports.ALFAJORES_FORNO = 'https://alfajores-forno.celo-testnet.org';
8
+ exports.CELO_DERIVATION_PATH = "m/44'/52752'/0'/0/0";
9
+ function getAlfajoresSigner() {
10
+ console.info('Getting signer');
11
+ const provider = getAlfajoresProvider();
12
+ const mnemonic = utils_1.utils.safelyAccessEnvVar('MNEMONIC');
13
+ if (!mnemonic)
14
+ throw new Error('No MNEMONIC provided in env');
15
+ const wallet = ethers_1.Wallet.fromMnemonic(mnemonic, exports.CELO_DERIVATION_PATH).connect(provider);
16
+ console.info('Signer and provider ready');
17
+ return wallet;
18
+ }
19
+ exports.getAlfajoresSigner = getAlfajoresSigner;
20
+ function getAlfajoresProvider() {
21
+ console.info('Getting provider');
22
+ return new celo_ethers_provider_1.StaticCeloJsonRpcProvider(exports.ALFAJORES_FORNO);
23
+ }
24
+ exports.getAlfajoresProvider = getAlfajoresProvider;
25
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/utils.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,8EAAgF;AAChF,gDAA6C;AAEhC,QAAA,eAAe,GAAG,0CAA0C,CAAC;AAC7D,QAAA,oBAAoB,GAAG,qBAAqB,CAAC;AAE1D,SAAgB,kBAAkB;IAChC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,aAAK,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,eAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,4BAAoB,CAAC,CAAC,OAAO,CACxE,QAAQ,CACT,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAVD,gDAUC;AAED,SAAgB,oBAAoB;IAClC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjC,OAAO,IAAI,gDAAyB,CAAC,uBAAe,CAAC,CAAC;AACxD,CAAC;AAHD,oDAGC"}
@@ -0,0 +1,31 @@
1
+ import { ethers } from 'ethers';
2
+ import { CoinGeckoInterface, CoinGeckoResponse, CoinGeckoSimpleInterface, CoinGeckoSimplePriceParams, TokenPriceGetter } from '../gas/token-prices';
3
+ import { ChainName } from '../types';
4
+ export declare class MockProvider extends ethers.providers.BaseProvider {
5
+ private methodResolveValues;
6
+ constructor();
7
+ detectNetwork(): Promise<{
8
+ name: string;
9
+ chainId: number;
10
+ }>;
11
+ perform(method: string, params: any): Promise<any>;
12
+ setMethodResolveValue(method: string, value: any): void;
13
+ clearMethodResolveValues(): void;
14
+ }
15
+ export declare class MockCoinGecko implements CoinGeckoInterface {
16
+ private tokenPrices;
17
+ private fail;
18
+ constructor();
19
+ price(params: CoinGeckoSimplePriceParams): CoinGeckoResponse;
20
+ get simple(): CoinGeckoSimpleInterface;
21
+ setTokenPrice(chain: ChainName, price: number): void;
22
+ setFail(chain: ChainName, fail: boolean): void;
23
+ }
24
+ export declare class MockTokenPriceGetter implements TokenPriceGetter {
25
+ private tokenPrices;
26
+ constructor();
27
+ getTokenExchangeRate(base: ChainName, quote: ChainName): Promise<number>;
28
+ getTokenPrice(chain: ChainName): Promise<number>;
29
+ setTokenPrice(chain: ChainName, price: number): void;
30
+ }
31
+ //# sourceMappingURL=testUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../../src/test/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAY,SAAS,EAAE,MAAM,UAAU,CAAC;AAQ/C,qBAAa,YAAa,SAAQ,MAAM,CAAC,SAAS,CAAC,YAAY;IAC7D,OAAO,CAAC,mBAAmB,CAAyB;;IAS9C,aAAa;;;;IAInB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IASlD,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAIhD,wBAAwB;CAGzB;AAGD,qBAAa,aAAc,YAAW,kBAAkB;IAEtD,OAAO,CAAC,WAAW,CAAyB;IAE5C,OAAO,CAAC,IAAI,CAA0B;;IAOtC,KAAK,CAAC,MAAM,EAAE,0BAA0B,GAAG,iBAAiB;IAkB5D,IAAI,MAAM,IAAI,wBAAwB,CAErC;IAED,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;IAK7C,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO;CAIxC;AAGD,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,WAAW,CAAuC;;IAMpD,oBAAoB,CACxB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC;IAMlB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAQhD,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM;CAG9C"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MockTokenPriceGetter = exports.MockCoinGecko = exports.MockProvider = void 0;
13
+ const ethers_1 = require("ethers");
14
+ const chainMetadata_1 = require("../consts/chainMetadata");
15
+ const MOCK_NETWORK = {
16
+ name: 'MockNetwork',
17
+ chainId: 1337,
18
+ };
19
+ // A mock ethers Provider used for testing with mocked provider functionality
20
+ class MockProvider extends ethers_1.ethers.providers.BaseProvider {
21
+ constructor() {
22
+ super(MOCK_NETWORK);
23
+ this.methodResolveValues = {};
24
+ }
25
+ // Required to be implemented or the BaseProvider throws
26
+ detectNetwork() {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ return Promise.resolve(MOCK_NETWORK);
29
+ });
30
+ }
31
+ perform(method, params) {
32
+ const value = this.methodResolveValues[method];
33
+ if (value) {
34
+ return Promise.resolve(value);
35
+ }
36
+ return super.perform(method, params);
37
+ }
38
+ setMethodResolveValue(method, value) {
39
+ this.methodResolveValues[method] = value;
40
+ }
41
+ clearMethodResolveValues() {
42
+ this.methodResolveValues = {};
43
+ }
44
+ }
45
+ exports.MockProvider = MockProvider;
46
+ // A mock CoinGecko intended to be used by tests
47
+ class MockCoinGecko {
48
+ constructor() {
49
+ this.tokenPrices = {};
50
+ this.fail = {};
51
+ }
52
+ price(params) {
53
+ const data = {};
54
+ for (const id of params.ids) {
55
+ if (this.fail[id]) {
56
+ return Promise.reject(`Failed to fetch price for ${id}`);
57
+ }
58
+ data[id] = {
59
+ usd: this.tokenPrices[id],
60
+ };
61
+ }
62
+ return Promise.resolve({
63
+ success: true,
64
+ message: '',
65
+ code: 200,
66
+ data,
67
+ });
68
+ }
69
+ get simple() {
70
+ return this;
71
+ }
72
+ setTokenPrice(chain, price) {
73
+ const id = chainMetadata_1.chainMetadata[chain].gasCurrencyCoinGeckoId || chain;
74
+ this.tokenPrices[id] = price;
75
+ }
76
+ setFail(chain, fail) {
77
+ const id = chainMetadata_1.chainMetadata[chain].gasCurrencyCoinGeckoId || chain;
78
+ this.fail[id] = fail;
79
+ }
80
+ }
81
+ exports.MockCoinGecko = MockCoinGecko;
82
+ // A mock TokenPriceGetter intended to be used by tests when mocking token prices
83
+ class MockTokenPriceGetter {
84
+ constructor() {
85
+ this.tokenPrices = {};
86
+ }
87
+ getTokenExchangeRate(base, quote) {
88
+ return __awaiter(this, void 0, void 0, function* () {
89
+ const basePrice = yield this.getTokenPrice(base);
90
+ const quotePrice = yield this.getTokenPrice(quote);
91
+ return basePrice / quotePrice;
92
+ });
93
+ }
94
+ getTokenPrice(chain) {
95
+ const price = this.tokenPrices[chain];
96
+ if (price) {
97
+ return Promise.resolve(price);
98
+ }
99
+ throw Error(`No price for chain ${chain}`);
100
+ }
101
+ setTokenPrice(chain, price) {
102
+ this.tokenPrices[chain] = price;
103
+ }
104
+ }
105
+ exports.MockTokenPriceGetter = MockTokenPriceGetter;
106
+ //# sourceMappingURL=testUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/test/testUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ethers } from 'ethers';
2
+ import type { ChainName } from './consts/chains';
3
+ export { ChainName };
4
+ export declare type CompleteChainMap<Value> = Record<ChainName, Value>;
5
+ export declare type LooseChainMap<Value> = Record<ChainName | string, Value>;
6
+ export declare type PartialChainMap<Value> = Partial<CompleteChainMap<Value>>;
7
+ export declare type ChainMap<Chain extends ChainName, Value> = Record<Chain, Value>;
8
+ export declare type TestChainNames = 'test1' | 'test2' | 'test3';
9
+ export declare type NameOrDomain = ChainName | number;
10
+ export declare type Remotes<Chain extends ChainName, LocalChain extends Chain> = Exclude<Chain, LocalChain>;
11
+ export declare type RemoteChainMap<Chain extends ChainName, LocalChain extends Chain, Value> = Record<Remotes<Chain, LocalChain>, Value>;
12
+ export declare type Connection = ethers.providers.Provider | ethers.Signer;
13
+ export interface IChainConnection {
14
+ provider: ethers.providers.Provider;
15
+ signer?: ethers.Signer;
16
+ overrides?: ethers.Overrides;
17
+ confirmations?: number;
18
+ blockExplorerUrl?: string;
19
+ blockExplorerApiUrl?: string;
20
+ }
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,oBAAY,gBAAgB,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC/D,oBAAY,aAAa,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;AAErE,oBAAY,eAAe,CAAC,KAAK,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AAEtE,oBAAY,QAAQ,CAAC,KAAK,SAAS,SAAS,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE5E,oBAAY,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzD,oBAAY,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9C,oBAAY,OAAO,CACjB,KAAK,SAAS,SAAS,EACvB,UAAU,SAAS,KAAK,IACtB,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAE/B,oBAAY,cAAc,CACxB,KAAK,SAAS,SAAS,EACvB,UAAU,SAAS,KAAK,EACxB,KAAK,IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;AAE9C,oBAAY,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { ChainMap, ChainName, Remotes } from '../types';
2
+ export declare class MultiGeneric<Chain extends ChainName, Value> {
3
+ readonly chainMap: ChainMap<Chain, Value>;
4
+ constructor(chainMap: ChainMap<Chain, Value>);
5
+ /**
6
+ * Get value for a chain
7
+ * @throws if chain is invalid or has not been set
8
+ */
9
+ protected get(chain: Chain): Value;
10
+ /**
11
+ * Get value for a chain
12
+ * @returns value or null if chain value has not been set
13
+ */
14
+ protected tryGet(chain: Chain): Value | null;
15
+ /**
16
+ * Set value for a chain
17
+ * @throws if chain is invalid or has not been set
18
+ */
19
+ protected set(chain: Chain, value: Value): Value;
20
+ chains(): Chain[];
21
+ forEach(fn: (n: Chain, dc: Value) => void): void;
22
+ map<Output>(fn: (n: Chain, dc: Value) => Output): Record<Chain, Output>;
23
+ remoteChains<LocalChain extends Chain>(name: LocalChain): Remotes<Chain, LocalChain>[];
24
+ extendWithChain<New extends Remotes<ChainName, Chain>>(chain: New, value: Value): MultiGeneric<New & Chain, Value>;
25
+ knownChain(chain: ChainName): boolean;
26
+ }
27
+ //# sourceMappingURL=MultiGeneric.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiGeneric.d.ts","sourceRoot":"","sources":["../../src/utils/MultiGeneric.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExD,qBAAa,YAAY,CAAC,KAAK,SAAS,SAAS,EAAE,KAAK;aAC1B,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;gBAAhC,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAE5D;;;OAGG;IACH,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK;IAWlC;;;OAGG;IACH,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI;IAO5C;;;OAGG;IACH,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK;IAKhD,MAAM,IAAI,KAAK,EAAE;IAMjB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAMhD,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,KAAK,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IASvE,YAAY,CAAC,UAAU,SAAS,KAAK,EACnC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;IAO/B,eAAe,CAAC,GAAG,SAAS,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,EACnD,KAAK,EAAE,GAAG,EACV,KAAK,EAAE,KAAK,GACX,YAAY,CAAC,GAAG,GAAG,KAAK,EAAE,KAAK,CAAC;IAOnC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;CAGtC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultiGeneric = void 0;
4
+ const chains_1 = require("../consts/chains");
5
+ class MultiGeneric {
6
+ constructor(chainMap) {
7
+ this.chainMap = chainMap;
8
+ }
9
+ /**
10
+ * Get value for a chain
11
+ * @throws if chain is invalid or has not been set
12
+ */
13
+ get(chain) {
14
+ var _a;
15
+ if (!chain || !chains_1.AllChains.includes(chain)) {
16
+ throw new Error(`Invalid chain ${chain}`);
17
+ }
18
+ const value = (_a = this.chainMap[chain]) !== null && _a !== void 0 ? _a : null;
19
+ if (!value) {
20
+ throw new Error(`No chain value found for ${chain}`);
21
+ }
22
+ return value;
23
+ }
24
+ /**
25
+ * Get value for a chain
26
+ * @returns value or null if chain value has not been set
27
+ */
28
+ tryGet(chain) {
29
+ var _a;
30
+ if (!chain || !chains_1.AllChains.includes(chain)) {
31
+ return null;
32
+ }
33
+ return (_a = this.chainMap[chain]) !== null && _a !== void 0 ? _a : null;
34
+ }
35
+ /**
36
+ * Set value for a chain
37
+ * @throws if chain is invalid or has not been set
38
+ */
39
+ set(chain, value) {
40
+ this.chainMap[chain] = value;
41
+ return value;
42
+ }
43
+ chains() {
44
+ return Object.keys(this.chainMap).filter((chain) => !chains_1.AllDeprecatedChains.includes(chain));
45
+ }
46
+ forEach(fn) {
47
+ for (const chain of this.chains()) {
48
+ fn(chain, this.chainMap[chain]);
49
+ }
50
+ }
51
+ map(fn) {
52
+ const entries = [];
53
+ const chains = this.chains();
54
+ for (const chain of chains) {
55
+ entries.push([chain, fn(chain, this.chainMap[chain])]);
56
+ }
57
+ return Object.fromEntries(entries);
58
+ }
59
+ remoteChains(name) {
60
+ return this.chains().filter((key) => key !== name);
61
+ }
62
+ extendWithChain(chain, value) {
63
+ return new MultiGeneric(Object.assign(Object.assign({}, this.chainMap), { [chain]: value }));
64
+ }
65
+ knownChain(chain) {
66
+ return chain in this.chainMap;
67
+ }
68
+ }
69
+ exports.MultiGeneric = MultiGeneric;
70
+ //# sourceMappingURL=MultiGeneric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiGeneric.js","sourceRoot":"","sources":["../../src/utils/MultiGeneric.ts"],"names":[],"mappings":";;;AAAA,6CAAkE;AAGlE,MAAa,YAAY;IACvB,YAA4B,QAAgC;QAAhC,aAAQ,GAAR,QAAQ,CAAwB;IAAG,CAAC;IAEhE;;;OAGG;IACO,GAAG,CAAC,KAAY;;QACxB,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;SAC3C;QACD,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,mCAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;SACtD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACO,MAAM,CAAC,KAAY;;QAC3B,IAAI,CAAC,KAAK,IAAI,CAAC,kBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,MAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,mCAAI,IAAI,CAAC;IACtC,CAAC;IAED;;;OAGG;IACO,GAAG,CAAC,KAAY,EAAE,KAAY;QACtC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM;QACJ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CACtC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,4BAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CACrC,CAAC;IACf,CAAC;IAED,OAAO,CAAC,EAAiC;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACjC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;SACjC;IACH,CAAC;IAED,GAAG,CAAS,EAAmC;QAC7C,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACxD;QACD,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAA0B,CAAC;IAC9D,CAAC;IAED,YAAY,CACV,IAAgB;QAEhB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAG9C,CAAC;IACN,CAAC;IAED,eAAe,CACb,KAAU,EACV,KAAY;QAEZ,OAAO,IAAI,YAAY,iCAClB,IAAI,CAAC,QAAQ,KAChB,CAAC,KAAK,CAAC,EAAE,KAAK,IACd,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAgB;QACzB,OAAO,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;CACF;AAjFD,oCAiFC"}
@@ -0,0 +1,20 @@
1
+ import { BytesLike } from 'ethers';
2
+ /**
3
+ * Converts a 20-byte (or other length) ID to a 32-byte ID.
4
+ * Ensures that a bytes-like is 32 long. left-padding with 0s if not.
5
+ *
6
+ * @param data A string or array of bytes to canonize
7
+ * @returns A Uint8Array of length 32
8
+ */
9
+ export declare function canonizeId(data: BytesLike): Uint8Array;
10
+ /**
11
+ * Converts an Hyperlane ID of 20 or 32 bytes to the corresponding EVM Address.
12
+ *
13
+ * For 32-byte IDs this enforces the EVM convention of using the LAST 20 bytes.
14
+ *
15
+ * @param data The data to truncate
16
+ * @returns A 20-byte, 0x-prepended hex string representing the EVM Address
17
+ * @throws if the data is not 20 or 32 bytes
18
+ */
19
+ export declare function evmId(data: BytesLike): string;
20
+ //# sourceMappingURL=ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../src/utils/ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAUtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAU7C"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.evmId = exports.canonizeId = void 0;
4
+ const ethers_1 = require("ethers");
5
+ /**
6
+ * Converts a 20-byte (or other length) ID to a 32-byte ID.
7
+ * Ensures that a bytes-like is 32 long. left-padding with 0s if not.
8
+ *
9
+ * @param data A string or array of bytes to canonize
10
+ * @returns A Uint8Array of length 32
11
+ */
12
+ function canonizeId(data) {
13
+ if (!data)
14
+ throw new Error('Bad input. Undefined');
15
+ const buf = ethers_1.ethers.utils.arrayify(data);
16
+ if (buf.length > 32) {
17
+ throw new Error('Too long');
18
+ }
19
+ if (buf.length !== 20 && buf.length != 32) {
20
+ throw new Error('bad input, expect address or bytes32');
21
+ }
22
+ return ethers_1.ethers.utils.zeroPad(buf, 32);
23
+ }
24
+ exports.canonizeId = canonizeId;
25
+ /**
26
+ * Converts an Hyperlane ID of 20 or 32 bytes to the corresponding EVM Address.
27
+ *
28
+ * For 32-byte IDs this enforces the EVM convention of using the LAST 20 bytes.
29
+ *
30
+ * @param data The data to truncate
31
+ * @returns A 20-byte, 0x-prepended hex string representing the EVM Address
32
+ * @throws if the data is not 20 or 32 bytes
33
+ */
34
+ function evmId(data) {
35
+ const u8a = ethers_1.ethers.utils.arrayify(data);
36
+ if (u8a.length === 32) {
37
+ return ethers_1.ethers.utils.hexlify(u8a.slice(12, 32));
38
+ }
39
+ else if (u8a.length === 20) {
40
+ return ethers_1.ethers.utils.hexlify(u8a);
41
+ }
42
+ else {
43
+ throw new Error(`Invalid id length. expected 20 or 32. Got ${u8a.length}`);
44
+ }
45
+ }
46
+ exports.evmId = evmId;
47
+ //# sourceMappingURL=ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/utils/ids.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAE3C;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,IAAe;IACxC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;KAC7B;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;KACzD;IACD,OAAO,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAVD,gCAUC;AAED;;;;;;;;GAQG;AACH,SAAgB,KAAK,CAAC,IAAe;IACnC,MAAM,GAAG,GAAG,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;QACrB,OAAO,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;KAChD;SAAM,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE;QAC5B,OAAO,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAClC;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;KAC5E;AACH,CAAC;AAVD,sBAUC"}
@@ -0,0 +1,32 @@
1
+ import { BigNumber, FixedNumber } from 'ethers';
2
+ /**
3
+ * Converts a BigNumber to a FixedNumber of the format fixed128x18.
4
+ * @param big The BigNumber to convert.
5
+ * @returns A FixedNumber representation of a BigNumber.
6
+ */
7
+ export declare function bigToFixed(big: BigNumber): FixedNumber;
8
+ /**
9
+ * Converts a FixedNumber (of any format) to a BigNumber.
10
+ * @param fixed The FixedNumber to convert.
11
+ * @param ceil If true, the ceiling of fixed is used. Otherwise, the floor is used.
12
+ * @returns A BigNumber representation of a FixedNumber.
13
+ */
14
+ export declare function fixedToBig(fixed: FixedNumber, ceil?: boolean): BigNumber;
15
+ /**
16
+ * Multiplies a BigNumber by a FixedNumber, returning the BigNumber product.
17
+ * @param big The BigNumber to multiply.
18
+ * @param fixed The FixedNumber to multiply.
19
+ * @param ceil If true, the ceiling of the product is used. Otherwise, the floor is used.
20
+ * @returns The BigNumber product.
21
+ */
22
+ export declare function mulBigAndFixed(big: BigNumber, fixed: FixedNumber, ceil?: boolean): BigNumber;
23
+ /**
24
+ * Converts a value with `fromDecimals` decimals to a value with `toDecimals` decimals.
25
+ * Incurs a loss of precision when `fromDecimals` > `toDecimals`.
26
+ * @param value The value to convert.
27
+ * @param fromDecimals The number of decimals `value` has.
28
+ * @param toDecimals The number of decimals to convert `value` to.
29
+ * @returns `value` represented with `toDecimals` decimals.
30
+ */
31
+ export declare function convertDecimalValue(value: BigNumber, fromDecimals: number, toDecimals: number): BigNumber;
32
+ //# sourceMappingURL=number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/utils/number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,GAAG,WAAW,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,UAAQ,GAAG,SAAS,CAGtE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,WAAW,EAClB,IAAI,UAAQ,GACX,SAAS,CAIX;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,SAAS,CASX"}