@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,66 @@
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.ChainConnection = void 0;
13
+ const debug_1 = require("debug");
14
+ class ChainConnection {
15
+ constructor(dc) {
16
+ var _a, _b, _c, _d;
17
+ this.getConnection = () => { var _a; return (_a = this.signer) !== null && _a !== void 0 ? _a : this.provider; };
18
+ this.getAddress = () => { var _a; return (_a = this.signer) === null || _a === void 0 ? void 0 : _a.getAddress(); };
19
+ this.provider = dc.provider;
20
+ this.signer = dc.signer;
21
+ this.overrides = (_a = dc.overrides) !== null && _a !== void 0 ? _a : {};
22
+ this.confirmations = (_b = dc.confirmations) !== null && _b !== void 0 ? _b : 0;
23
+ this.blockExplorerUrl = (_c = dc.blockExplorerUrl) !== null && _c !== void 0 ? _c : 'UNKNOWN_EXPLORER';
24
+ this.blockExplorerApiUrl = (_d = dc.blockExplorerApiUrl) !== null && _d !== void 0 ? _d : this.blockExplorerUrl;
25
+ this.logger = (0, debug_1.debug)('hyperlane:ChainConnection');
26
+ }
27
+ getTxUrl(response) {
28
+ return `${this.blockExplorerUrl}/tx/${response.hash}`;
29
+ }
30
+ getAddressUrl(address) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ return `${this.blockExplorerUrl}/address/${address !== null && address !== void 0 ? address : (yield this.signer.getAddress())}`;
33
+ });
34
+ }
35
+ getApiUrl() {
36
+ return this.blockExplorerApiUrl;
37
+ }
38
+ handleTx(tx) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ const response = yield tx;
41
+ this.logger(`Pending ${this.getTxUrl(response)} (waiting ${this.confirmations} blocks for confirmation)`);
42
+ return response.wait(this.confirmations);
43
+ });
44
+ }
45
+ estimateGas(tx, from) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ let txFrom = from;
48
+ if (!txFrom) {
49
+ txFrom = yield this.getAddress();
50
+ }
51
+ return this.provider.estimateGas(Object.assign(Object.assign(Object.assign({}, tx), { from: txFrom }), this.overrides));
52
+ });
53
+ }
54
+ sendTransaction(tx) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ if (!this.signer)
57
+ throw new Error('no signer found');
58
+ const from = yield this.signer.getAddress();
59
+ const response = yield this.signer.sendTransaction(Object.assign(Object.assign(Object.assign({}, tx), { from }), this.overrides));
60
+ this.logger(`sent tx ${response.hash}`);
61
+ return this.handleTx(response);
62
+ });
63
+ }
64
+ }
65
+ exports.ChainConnection = ChainConnection;
66
+ //# sourceMappingURL=ChainConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainConnection.js","sourceRoot":"","sources":["../../src/providers/ChainConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAwC;AAKxC,MAAa,eAAe;IAS1B,YAAY,EAAoB;;QAUhC,kBAAa,GAAG,GAA8C,EAAE,WAC9D,OAAA,MAAA,IAAI,CAAC,MAAM,mCAAI,IAAI,CAAC,QAAQ,CAAA,EAAA,CAAC;QAE/B,eAAU,GAAG,GAAgC,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU,EAAE,CAAA,EAAA,CAAC;QAZxE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,MAAA,EAAE,CAAC,SAAS,mCAAI,EAAE,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,MAAA,EAAE,CAAC,aAAa,mCAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,MAAA,EAAE,CAAC,gBAAgB,mCAAI,kBAAkB,CAAC;QAClE,IAAI,CAAC,mBAAmB,GAAG,MAAA,EAAE,CAAC,mBAAmB,mCAAI,IAAI,CAAC,gBAAgB,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAA,aAAK,EAAC,2BAA2B,CAAC,CAAC;IACnD,CAAC;IAOD,QAAQ,CAAC,QAA8C;QACrD,OAAO,GAAG,IAAI,CAAC,gBAAgB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IAEK,aAAa,CAAC,OAAgB;;YAClC,OAAO,GAAG,IAAI,CAAC,gBAAgB,YAC7B,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,CAAC,MAAM,IAAI,CAAC,MAAO,CAAC,UAAU,EAAE,CAC7C,EAAE,CAAC;QACL,CAAC;KAAA;IAED,SAAS;QACP,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEK,QAAQ,CACZ,EAAoE;;YAEpE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CACT,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAChC,IAAI,CAAC,aACP,2BAA2B,CAC5B,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC;KAAA;IAEK,WAAW,CACf,EAA+B,EAC/B,IAAa;;YAEb,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;aAClC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,+CAC3B,EAAE,KACL,IAAI,EAAE,MAAM,KACT,IAAI,CAAC,SAAS,EACjB,CAAC;QACL,CAAC;KAAA;IAEK,eAAe,CACnB,EAA+B;;YAE/B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,+CAC7C,EAAE,KACL,IAAI,KACD,IAAI,CAAC,SAAS,EACjB,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,WAAW,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;KAAA;CACF;AA9ED,0CA8EC"}
@@ -0,0 +1,56 @@
1
+ import { Signer, ethers } from 'ethers';
2
+ import { ChainMap, ChainName, IChainConnection, Remotes } from '../types';
3
+ import { MultiGeneric } from '../utils/MultiGeneric';
4
+ import { ChainConnection } from './ChainConnection';
5
+ export declare class MultiProvider<Chain extends ChainName = ChainName> extends MultiGeneric<Chain, ChainConnection> {
6
+ constructor(chainConnectionConfigs: ChainMap<Chain, IChainConnection>);
7
+ /**
8
+ * Get chainConnection for a chain
9
+ * @throws if chain is invalid or has not been set
10
+ */
11
+ getChainConnection(chain: Chain): ChainConnection;
12
+ /**
13
+ * Get chainConnection for a chain
14
+ * @returns value or null if chain value has not been set
15
+ */
16
+ tryGetChainConnection(chain: Chain): ChainConnection | null;
17
+ /**
18
+ * Set value for a chain
19
+ * @throws if chain is invalid or has not been set
20
+ */
21
+ setChainConnection(chain: Chain, chainConnectionConfig: IChainConnection): ChainConnection;
22
+ /**
23
+ * Get provider for a chain
24
+ * @throws if chain is invalid or has not been set
25
+ */
26
+ getChainProvider(chain: Chain): ethers.providers.Provider;
27
+ /**
28
+ * Get provider for a chain
29
+ * @returns value or null if chain value has not been set
30
+ */
31
+ tryGetChainProvider(chain: Chain): ethers.providers.Provider | null;
32
+ /**
33
+ * Get signer for a chain
34
+ * @throws if chain is invalid or has not been set
35
+ */
36
+ getChainSigner(chain: Chain): ethers.Signer;
37
+ /**
38
+ * Get signer for a chain
39
+ * @returns value or null if chain value has not been set
40
+ */
41
+ tryGetChainSigner(chain: Chain): ethers.Signer | null;
42
+ /**
43
+ * Create a new MultiProvider which includes the provided chain connection config
44
+ */
45
+ extendWithChain<New extends Remotes<ChainName, Chain>>(chain: New, chainConnectionConfig: IChainConnection): MultiProvider<New & Chain>;
46
+ /**
47
+ * Create a new MultiProvider from the intersection
48
+ * of current's chains and the provided chain list
49
+ */
50
+ intersect<IntersectionChain extends Chain>(chains: ChainName[], throwIfNotSubset?: boolean): {
51
+ intersection: IntersectionChain[];
52
+ multiProvider: MultiProvider<IntersectionChain>;
53
+ };
54
+ rotateSigner(newSigner: Signer): void;
55
+ }
56
+ //# sourceMappingURL=MultiProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiProvider.d.ts","sourceRoot":"","sources":["../../src/providers/MultiProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,aAAa,CACxB,KAAK,SAAS,SAAS,GAAG,SAAS,CACnC,SAAQ,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC;gBAChC,sBAAsB,EAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IASrE;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe;IAIjD;;;OAGG;IACH,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI;IAI3D;;;OAGG;IACH,kBAAkB,CAChB,KAAK,EAAE,KAAK,EACZ,qBAAqB,EAAE,gBAAgB,GACtC,eAAe;IAKlB;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ;IAQzD;;;OAGG;IACH,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI;IAInE;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM;IAQ3C;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;IAIrD;;OAEG;IACH,eAAe,CAAC,GAAG,SAAS,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,EACnD,KAAK,EAAE,GAAG,EACV,qBAAqB,EAAE,gBAAgB,GACtC,aAAa,CAAC,GAAG,GAAG,KAAK,CAAC;IAQ7B;;;OAGG;IACH,SAAS,CAAC,iBAAiB,SAAS,KAAK,EACvC,MAAM,EAAE,SAAS,EAAE,EACnB,gBAAgB,UAAQ,GACvB;QACD,YAAY,EAAE,iBAAiB,EAAE,CAAC;QAClC,aAAa,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;KACjD;IA8BD,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAatC"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultiProvider = void 0;
4
+ const MultiGeneric_1 = require("../utils/MultiGeneric");
5
+ const objects_1 = require("../utils/objects");
6
+ const ChainConnection_1 = require("./ChainConnection");
7
+ class MultiProvider extends MultiGeneric_1.MultiGeneric {
8
+ constructor(chainConnectionConfigs) {
9
+ super((0, objects_1.objMap)(chainConnectionConfigs, (_, connection) => new ChainConnection_1.ChainConnection(connection)));
10
+ }
11
+ /**
12
+ * Get chainConnection for a chain
13
+ * @throws if chain is invalid or has not been set
14
+ */
15
+ getChainConnection(chain) {
16
+ return this.get(chain);
17
+ }
18
+ /**
19
+ * Get chainConnection for a chain
20
+ * @returns value or null if chain value has not been set
21
+ */
22
+ tryGetChainConnection(chain) {
23
+ return this.tryGet(chain);
24
+ }
25
+ /**
26
+ * Set value for a chain
27
+ * @throws if chain is invalid or has not been set
28
+ */
29
+ setChainConnection(chain, chainConnectionConfig) {
30
+ const connection = new ChainConnection_1.ChainConnection(chainConnectionConfig);
31
+ return this.set(chain, connection);
32
+ }
33
+ /**
34
+ * Get provider for a chain
35
+ * @throws if chain is invalid or has not been set
36
+ */
37
+ getChainProvider(chain) {
38
+ const chainConnection = this.get(chain);
39
+ if (!chainConnection.provider) {
40
+ throw new Error(`No provider set for chain ${chain}`);
41
+ }
42
+ return chainConnection.provider;
43
+ }
44
+ /**
45
+ * Get provider for a chain
46
+ * @returns value or null if chain value has not been set
47
+ */
48
+ tryGetChainProvider(chain) {
49
+ var _a, _b;
50
+ return (_b = (_a = this.tryGet(chain)) === null || _a === void 0 ? void 0 : _a.provider) !== null && _b !== void 0 ? _b : null;
51
+ }
52
+ /**
53
+ * Get signer for a chain
54
+ * @throws if chain is invalid or has not been set
55
+ */
56
+ getChainSigner(chain) {
57
+ const chainConnection = this.get(chain);
58
+ if (!chainConnection.signer) {
59
+ throw new Error(`No signer set for chain ${chain}`);
60
+ }
61
+ return chainConnection.signer;
62
+ }
63
+ /**
64
+ * Get signer for a chain
65
+ * @returns value or null if chain value has not been set
66
+ */
67
+ tryGetChainSigner(chain) {
68
+ var _a, _b;
69
+ return (_b = (_a = this.tryGet(chain)) === null || _a === void 0 ? void 0 : _a.signer) !== null && _b !== void 0 ? _b : null;
70
+ }
71
+ /**
72
+ * Create a new MultiProvider which includes the provided chain connection config
73
+ */
74
+ extendWithChain(chain, chainConnectionConfig) {
75
+ const connection = new ChainConnection_1.ChainConnection(chainConnectionConfig);
76
+ return new MultiProvider(Object.assign(Object.assign({}, this.chainMap), { [chain]: connection }));
77
+ }
78
+ /**
79
+ * Create a new MultiProvider from the intersection
80
+ * of current's chains and the provided chain list
81
+ */
82
+ intersect(chains, throwIfNotSubset = false) {
83
+ const ownChains = this.chains();
84
+ const intersection = [];
85
+ for (const chain of chains) {
86
+ // @ts-ignore
87
+ if (ownChains.includes(chain)) {
88
+ // @ts-ignore
89
+ intersection.push(chain);
90
+ }
91
+ else {
92
+ if (throwIfNotSubset) {
93
+ throw new Error(`MultiProvider#intersect: chains specified ${chain}, but ownChains did not include it`);
94
+ }
95
+ }
96
+ }
97
+ if (!intersection.length) {
98
+ throw new Error(`No chains shared between MultiProvider and list`);
99
+ }
100
+ const intersectionChainMap = (0, objects_1.pick)(this.chainMap, intersection);
101
+ const multiProvider = new MultiProvider(Object.assign({}, intersectionChainMap));
102
+ return { intersection, multiProvider };
103
+ }
104
+ rotateSigner(newSigner) {
105
+ this.forEach((chain, dc) => {
106
+ this.setChainConnection(chain, Object.assign(Object.assign({}, dc), { signer: newSigner.connect(dc.provider) }));
107
+ });
108
+ }
109
+ }
110
+ exports.MultiProvider = MultiProvider;
111
+ //# sourceMappingURL=MultiProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiProvider.js","sourceRoot":"","sources":["../../src/providers/MultiProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { ethers } from 'ethers';
2
+ export declare type RetryOptions = {
3
+ maxRequests: number;
4
+ baseRetryMs: number;
5
+ };
6
+ export declare class RetryProvider extends ethers.providers.BaseProvider {
7
+ readonly provider: ethers.providers.BaseProvider;
8
+ readonly retryOptions: RetryOptions;
9
+ constructor(provider: ethers.providers.BaseProvider, retryOptions: RetryOptions);
10
+ perform(method: string, params: any): Promise<any>;
11
+ }
12
+ export declare class RetryJsonRpcProvider extends ethers.providers.JsonRpcProvider {
13
+ readonly provider: ethers.providers.JsonRpcProvider;
14
+ readonly retryOptions: RetryOptions;
15
+ constructor(provider: ethers.providers.JsonRpcProvider, retryOptions: RetryOptions);
16
+ send(method: string, params: Array<any>): Promise<any>;
17
+ }
18
+ //# sourceMappingURL=RetryProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetryProvider.d.ts","sourceRoot":"","sources":["../../src/providers/RetryProvider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,oBAAY,YAAY,GAAG;IAEzB,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,aAAc,SAAQ,MAAM,CAAC,SAAS,CAAC,YAAY;IAE5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;IAChD,QAAQ,CAAC,YAAY,EAAE,YAAY;gBAD1B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,EACvC,YAAY,EAAE,YAAY;IAYrC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAOnD;AAGD,qBAAa,oBAAqB,SAAQ,MAAM,CAAC,SAAS,CAAC,eAAe;IAEtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe;IACnD,QAAQ,CAAC,YAAY,EAAE,YAAY;gBAD1B,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,eAAe,EAC1C,YAAY,EAAE,YAAY;IAS/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAO7D"}
@@ -0,0 +1,49 @@
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.RetryJsonRpcProvider = exports.RetryProvider = void 0;
13
+ // RetryProvider
14
+ //
15
+ // Mostly taken from the removed version that was in ethers.js
16
+ // See: https://github.com/ethers-io/ethers.js/discussions/3006
17
+ const ethers_1 = require("ethers");
18
+ const utils_1 = require("@hyperlane-xyz/utils");
19
+ class RetryProvider extends ethers_1.ethers.providers.BaseProvider {
20
+ constructor(provider, retryOptions) {
21
+ super(provider.getNetwork());
22
+ this.provider = provider;
23
+ this.retryOptions = retryOptions;
24
+ utils_1.utils.assert(retryOptions.maxRequests >= 1, 'RetryOptions.maxRequests must be >= 1');
25
+ ethers_1.ethers.utils.defineReadOnly(this, 'provider', provider);
26
+ ethers_1.ethers.utils.defineReadOnly(this, 'retryOptions', retryOptions);
27
+ }
28
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
29
+ perform(method, params) {
30
+ return utils_1.utils.retryAsync(() => this.provider.perform(method, params), this.retryOptions.maxRequests, this.retryOptions.baseRetryMs);
31
+ }
32
+ }
33
+ exports.RetryProvider = RetryProvider;
34
+ // Need this separate class for JsonRpcProvider to still expose `getSigner`, so will retry at the request level
35
+ class RetryJsonRpcProvider extends ethers_1.ethers.providers.JsonRpcProvider {
36
+ constructor(provider, retryOptions) {
37
+ super(provider.connection, provider.network);
38
+ this.provider = provider;
39
+ this.retryOptions = retryOptions;
40
+ utils_1.utils.assert(retryOptions.maxRequests >= 1, 'RetryOptions.maxRequests must be >= 1');
41
+ }
42
+ send(method, params) {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ return utils_1.utils.retryAsync(() => __awaiter(this, void 0, void 0, function* () { return this.provider.send(method, params); }), this.retryOptions.maxRequests, this.retryOptions.baseRetryMs);
45
+ });
46
+ }
47
+ }
48
+ exports.RetryJsonRpcProvider = RetryJsonRpcProvider;
49
+ //# sourceMappingURL=RetryProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetryProvider.js","sourceRoot":"","sources":["../../src/providers/RetryProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gBAAgB;AAChB,EAAE;AACF,8DAA8D;AAC9D,+DAA+D;AAC/D,mCAAgC;AAEhC,gDAA6C;AAU7C,MAAa,aAAc,SAAQ,eAAM,CAAC,SAAS,CAAC,YAAY;IAC9D,YACW,QAAuC,EACvC,YAA0B;QAEnC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAHpB,aAAQ,GAAR,QAAQ,CAA+B;QACvC,iBAAY,GAAZ,YAAY,CAAc;QAGnC,aAAK,CAAC,MAAM,CACV,YAAY,CAAC,WAAW,IAAI,CAAC,EAC7B,uCAAuC,CACxC,CAAC;QACF,eAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,eAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,6EAA6E;IAC7E,OAAO,CAAC,MAAc,EAAE,MAAW;QACjC,OAAO,aAAK,CAAC,UAAU,CACrB,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3C,IAAI,CAAC,YAAY,CAAC,WAAW,EAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAC9B,CAAC;IACJ,CAAC;CACF;AAtBD,sCAsBC;AAED,+GAA+G;AAC/G,MAAa,oBAAqB,SAAQ,eAAM,CAAC,SAAS,CAAC,eAAe;IACxE,YACW,QAA0C,EAC1C,YAA0B;QAEnC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAHpC,aAAQ,GAAR,QAAQ,CAAkC;QAC1C,iBAAY,GAAZ,YAAY,CAAc;QAGnC,aAAK,CAAC,MAAM,CACV,YAAY,CAAC,WAAW,IAAI,CAAC,EAC7B,uCAAuC,CACxC,CAAC;IACJ,CAAC;IAEK,IAAI,CAAC,MAAc,EAAE,MAAkB;;YAC3C,OAAO,aAAK,CAAC,UAAU,CACrB,GAAS,EAAE,gDAAC,OAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA,GAAA,EAC9C,IAAI,CAAC,YAAY,CAAC,WAAW,EAC7B,IAAI,CAAC,YAAY,CAAC,WAAW,CAC9B,CAAC;QACJ,CAAC;KAAA;CACF;AAnBD,oDAmBC"}
@@ -0,0 +1,21 @@
1
+ import { Contract } from 'ethers';
2
+ import type { types } from '@hyperlane-xyz/utils';
3
+ import { Connection } from './types';
4
+ export declare enum ProxyKind {
5
+ Transparent = "Transparent"
6
+ }
7
+ export interface ProxyAddresses<Kind extends ProxyKind> {
8
+ kind: Kind;
9
+ proxy: types.Address;
10
+ implementation: types.Address;
11
+ }
12
+ export declare function isProxyAddresses(addresses: unknown): addresses is ProxyAddresses<any>;
13
+ export declare type TransparentProxyAddresses = ProxyAddresses<ProxyKind.Transparent>;
14
+ export declare class ProxiedContract<C extends Contract, A extends ProxyAddresses<any>> {
15
+ readonly contract: C;
16
+ readonly addresses: A;
17
+ constructor(contract: C, addresses: A);
18
+ get address(): string;
19
+ connect(connection: Connection): ProxiedContract<C, A>;
20
+ }
21
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,oBAAY,SAAS;IACnB,WAAW,gBAAgB;CAC5B;AAED,MAAM,WAAW,cAAc,CAAC,IAAI,SAAS,SAAS;IACpD,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;IACrB,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,OAAO,GACjB,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,CASlC;AAED,oBAAY,yBAAyB,GAAG,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAE9E,qBAAa,eAAe,CAC1B,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,cAAc,CAAC,GAAG,CAAC;aAED,QAAQ,EAAE,CAAC;aAAkB,SAAS,EAAE,CAAC;gBAAzC,QAAQ,EAAE,CAAC,EAAkB,SAAS,EAAE,CAAC;IAErE,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;CAMvD"}
package/dist/proxy.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProxiedContract = exports.isProxyAddresses = exports.ProxyKind = void 0;
4
+ var ProxyKind;
5
+ (function (ProxyKind) {
6
+ ProxyKind["Transparent"] = "Transparent";
7
+ })(ProxyKind = exports.ProxyKind || (exports.ProxyKind = {}));
8
+ function isProxyAddresses(addresses) {
9
+ return (addresses !== null &&
10
+ typeof addresses === 'object' &&
11
+ 'proxy' in addresses &&
12
+ 'implementation' in addresses &&
13
+ 'kind' in addresses &&
14
+ Object.keys(ProxyKind).includes(addresses.kind));
15
+ }
16
+ exports.isProxyAddresses = isProxyAddresses;
17
+ class ProxiedContract {
18
+ constructor(contract, addresses) {
19
+ this.contract = contract;
20
+ this.addresses = addresses;
21
+ }
22
+ get address() {
23
+ return this.contract.address;
24
+ }
25
+ connect(connection) {
26
+ return new ProxiedContract(this.contract.connect(connection), this.addresses);
27
+ }
28
+ }
29
+ exports.ProxiedContract = ProxiedContract;
30
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":";;;AAMA,IAAY,SAEX;AAFD,WAAY,SAAS;IACnB,wCAA2B,CAAA;AAC7B,CAAC,EAFW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAEpB;AAQD,SAAgB,gBAAgB,CAC9B,SAAkB;IAElB,OAAO,CACL,SAAS,KAAK,IAAI;QAClB,OAAO,SAAS,KAAK,QAAQ;QAC7B,OAAO,IAAI,SAAS;QACpB,gBAAgB,IAAI,SAAS;QAC7B,MAAM,IAAI,SAAS;QACnB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAE,SAAiB,CAAC,IAAI,CAAC,CACzD,CAAC;AACJ,CAAC;AAXD,4CAWC;AAID,MAAa,eAAe;IAI1B,YAA4B,QAAW,EAAkB,SAAY;QAAzC,aAAQ,GAAR,QAAQ,CAAG;QAAkB,cAAS,GAAT,SAAS,CAAG;IAAG,CAAC;IAEzE,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,UAAsB;QAC5B,OAAO,IAAI,eAAe,CACxB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAM,EACtC,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;CACF;AAhBD,0CAgBC"}
@@ -0,0 +1,20 @@
1
+ import type { ethers } from 'ethers';
2
+ import { Router } from '@hyperlane-xyz/core';
3
+ import type { types } from '@hyperlane-xyz/utils';
4
+ import { HyperlaneContracts, HyperlaneFactories } from './contracts';
5
+ export declare type RouterContracts<RouterContract extends Router = Router> = HyperlaneContracts & {
6
+ router: RouterContract;
7
+ };
8
+ declare type RouterFactory<RouterContract extends Router = Router> = ethers.ContractFactory & {
9
+ deploy: (...args: any[]) => Promise<RouterContract>;
10
+ };
11
+ export declare type RouterFactories<RouterContract extends Router = Router> = HyperlaneFactories & {
12
+ router: RouterFactory<RouterContract>;
13
+ };
14
+ export declare type ConnectionClientConfig = {
15
+ mailbox: types.Address;
16
+ interchainGasPaymaster: types.Address;
17
+ interchainSecurityModule: types.Address;
18
+ };
19
+ export { Router } from '@hyperlane-xyz/core';
20
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErE,oBAAY,eAAe,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAChE,kBAAkB,GAAG;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEJ,aAAK,aAAa,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IACvD,MAAM,CAAC,eAAe,GAAG;IACvB,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CACrD,CAAC;AAEJ,oBAAY,eAAe,CAAC,cAAc,SAAS,MAAM,GAAG,MAAM,IAChE,kBAAkB,GAAG;IACnB,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACvC,CAAC;AAEJ,oBAAY,sBAAsB,GAAG;IACnC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;IACvB,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC;IACtC,wBAAwB,EAAE,KAAK,CAAC,OAAO,CAAC;CACzC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/router.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":""}
@@ -0,0 +1,36 @@
1
+ import { HyperlaneApp } from '../../HyperlaneApp';
2
+ import { HyperlaneCore } from '../../core/HyperlaneCore';
3
+ import { HyperlaneRouterChecker } from '../../deploy/router/HyperlaneRouterChecker';
4
+ import { HyperlaneRouterDeployer } from '../../deploy/router/HyperlaneRouterDeployer';
5
+ import { RouterConfig } from '../../deploy/router/types';
6
+ import { MultiProvider } from '../../providers/MultiProvider';
7
+ import { RouterContracts, RouterFactories } from '../../router';
8
+ import { ChainMap, ChainName } from '../../types';
9
+ export declare const fullEnvTestConfigs: {
10
+ test1: import("../../types").IChainConnection;
11
+ test2: import("../../types").IChainConnection;
12
+ test3: import("../../types").IChainConnection;
13
+ };
14
+ export declare const subsetTestConfigs: {
15
+ test1: import("../../types").IChainConnection;
16
+ test2: import("../../types").IChainConnection;
17
+ };
18
+ export declare type SubsetChains = keyof typeof subsetTestConfigs;
19
+ export declare const alfajoresChainConfig: {
20
+ alfajores: import("../../types").IChainConnection;
21
+ };
22
+ export declare class EnvSubsetApp<Chain extends ChainName = ChainName> extends HyperlaneApp<RouterContracts, Chain> {
23
+ }
24
+ export declare class EnvSubsetChecker<Chain extends ChainName> extends HyperlaneRouterChecker<Chain, EnvSubsetApp<Chain>, RouterConfig, RouterContracts> {
25
+ }
26
+ export declare const envSubsetFactories: RouterFactories;
27
+ export declare class EnvSubsetDeployer<Chain extends ChainName> extends HyperlaneRouterDeployer<Chain, RouterConfig, RouterContracts, RouterFactories> {
28
+ protected core: HyperlaneCore<Chain>;
29
+ constructor(multiProvider: MultiProvider<Chain>, configMap: ChainMap<Chain, RouterConfig>, core: HyperlaneCore<Chain>);
30
+ initRouter(contractsMap: ChainMap<Chain, RouterContracts>): Promise<void>;
31
+ deploy(): Promise<ChainMap<Chain, RouterContracts>>;
32
+ deployContracts(chain: Chain): Promise<{
33
+ router: import("@hyperlane-xyz/core").Router;
34
+ }>;
35
+ }
36
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/app.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGlD,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AAEF,oBAAY,YAAY,GAAG,MAAM,OAAO,iBAAiB,CAAC;AAE1D,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAEF,qBAAa,YAAY,CACvB,KAAK,SAAS,SAAS,GAAG,SAAS,CACnC,SAAQ,YAAY,CAAC,eAAe,EAAE,KAAK,CAAC;CAAG;AAEjD,qBAAa,gBAAgB,CAC3B,KAAK,SAAS,SAAS,CACvB,SAAQ,sBAAsB,CAC9B,KAAK,EACL,YAAY,CAAC,KAAK,CAAC,EACnB,YAAY,EACZ,eAAe,CAChB;CAAG;AAEJ,eAAO,MAAM,kBAAkB,EAAE,eAEhC,CAAC;AAEF,qBAAa,iBAAiB,CAC5B,KAAK,SAAS,SAAS,CACvB,SAAQ,uBAAuB,CAC/B,KAAK,EACL,YAAY,EACZ,eAAe,EACf,eAAe,CAChB;IAIG,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;gBAFpC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,EACnC,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,EAC9B,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;IAMhC,UAAU,CACd,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,GAC7C,OAAO,CAAC,IAAI,CAAC;IAcV,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IASnD,eAAe,CAAC,KAAK,EAAE,KAAK;;;CAMnC"}
@@ -0,0 +1,77 @@
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.EnvSubsetDeployer = exports.envSubsetFactories = exports.EnvSubsetChecker = exports.EnvSubsetApp = exports.alfajoresChainConfig = exports.subsetTestConfigs = exports.fullEnvTestConfigs = void 0;
13
+ const core_1 = require("@hyperlane-xyz/core");
14
+ const HyperlaneApp_1 = require("../../HyperlaneApp");
15
+ const chainConnectionConfigs_1 = require("../../consts/chainConnectionConfigs");
16
+ const HyperlaneDeployer_1 = require("../../deploy/HyperlaneDeployer");
17
+ const HyperlaneRouterChecker_1 = require("../../deploy/router/HyperlaneRouterChecker");
18
+ const HyperlaneRouterDeployer_1 = require("../../deploy/router/HyperlaneRouterDeployer");
19
+ const objects_1 = require("../../utils/objects");
20
+ exports.fullEnvTestConfigs = {
21
+ test1: chainConnectionConfigs_1.chainConnectionConfigs.test1,
22
+ test2: chainConnectionConfigs_1.chainConnectionConfigs.test2,
23
+ test3: chainConnectionConfigs_1.chainConnectionConfigs.test3,
24
+ };
25
+ exports.subsetTestConfigs = {
26
+ test1: chainConnectionConfigs_1.chainConnectionConfigs.test1,
27
+ test2: chainConnectionConfigs_1.chainConnectionConfigs.test2,
28
+ };
29
+ exports.alfajoresChainConfig = {
30
+ alfajores: chainConnectionConfigs_1.chainConnectionConfigs.alfajores,
31
+ };
32
+ class EnvSubsetApp extends HyperlaneApp_1.HyperlaneApp {
33
+ }
34
+ exports.EnvSubsetApp = EnvSubsetApp;
35
+ class EnvSubsetChecker extends HyperlaneRouterChecker_1.HyperlaneRouterChecker {
36
+ }
37
+ exports.EnvSubsetChecker = EnvSubsetChecker;
38
+ exports.envSubsetFactories = {
39
+ router: new core_1.TestRouter__factory(),
40
+ };
41
+ class EnvSubsetDeployer extends HyperlaneRouterDeployer_1.HyperlaneRouterDeployer {
42
+ constructor(multiProvider, configMap, core) {
43
+ super(multiProvider, configMap, exports.envSubsetFactories, {});
44
+ this.core = core;
45
+ }
46
+ // Consider moving this up to HyperlaneRouterDeployer
47
+ initRouter(contractsMap) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ this.logger(`Calling initialize on routers...`);
50
+ yield (0, objects_1.promiseObjAll)((0, objects_1.objMap)(contractsMap, (chain, contracts) => __awaiter(this, void 0, void 0, function* () {
51
+ const chainConnection = this.multiProvider.getChainConnection(chain);
52
+ const mailbox = this.configMap[chain].mailbox;
53
+ yield chainConnection.handleTx(
54
+ // @ts-ignore
55
+ contracts.router.initialize(mailbox, chainConnection.overrides));
56
+ })));
57
+ });
58
+ }
59
+ deploy() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ const contractsMap = (yield HyperlaneDeployer_1.HyperlaneDeployer.prototype.deploy.apply(this));
62
+ yield this.initRouter(contractsMap);
63
+ yield this.enrollRemoteRouters(contractsMap);
64
+ return contractsMap;
65
+ });
66
+ }
67
+ deployContracts(chain) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const router = yield this.deployContract(chain, 'router', []);
70
+ return {
71
+ router,
72
+ };
73
+ });
74
+ }
75
+ }
76
+ exports.EnvSubsetDeployer = EnvSubsetDeployer;
77
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/app.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA0D;AAE1D,qDAAkD;AAClD,gFAA6E;AAE7E,sEAAmE;AACnE,uFAAoF;AACpF,yFAAsF;AAKtF,iDAA4D;AAE/C,QAAA,kBAAkB,GAAG;IAChC,KAAK,EAAE,+CAAsB,CAAC,KAAK;IACnC,KAAK,EAAE,+CAAsB,CAAC,KAAK;IACnC,KAAK,EAAE,+CAAsB,CAAC,KAAK;CACpC,CAAC;AAEW,QAAA,iBAAiB,GAAG;IAC/B,KAAK,EAAE,+CAAsB,CAAC,KAAK;IACnC,KAAK,EAAE,+CAAsB,CAAC,KAAK;CACpC,CAAC;AAIW,QAAA,oBAAoB,GAAG;IAClC,SAAS,EAAE,+CAAsB,CAAC,SAAS;CAC5C,CAAC;AAEF,MAAa,YAEX,SAAQ,2BAAoC;CAAG;AAFjD,oCAEiD;AAEjD,MAAa,gBAEX,SAAQ,+CAKT;CAAG;AAPJ,4CAOI;AAES,QAAA,kBAAkB,GAAoB;IACjD,MAAM,EAAE,IAAI,0BAAmB,EAAE;CAClC,CAAC;AAEF,MAAa,iBAEX,SAAQ,iDAKT;IACC,YACE,aAAmC,EACnC,SAAwC,EAC9B,IAA0B;QAEpC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,0BAAkB,EAAE,EAAE,CAAC,CAAC;QAF9C,SAAI,GAAJ,IAAI,CAAsB;IAGtC,CAAC;IAED,qDAAqD;IAC/C,UAAU,CACd,YAA8C;;YAE9C,IAAI,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC;YAChD,MAAM,IAAA,uBAAa,EACjB,IAAA,gBAAM,EAAC,YAAY,EAAE,CAAO,KAAK,EAAE,SAAS,EAAE,EAAE;gBAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACrE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBAC9C,MAAM,eAAe,CAAC,QAAQ;gBAC5B,aAAa;gBACb,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAChE,CAAC;YACJ,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;IAEK,MAAM;;YACV,MAAM,YAAY,GAAG,CAAC,MAAM,qCAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAClE,IAAI,CACL,CAAmC,CAAC;YACrC,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;YAC7C,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;IAEK,eAAe,CAAC,KAAY;;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9D,OAAO;gBACL,MAAM;aACP,CAAC;QACJ,CAAC;KAAA;CACF;AAhDD,8CAgDC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=check-single-chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-single-chain.d.ts","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/check-single-chain.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
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
+ // Copied from output of deploy-single-chain.ts script
19
+ const deploymentAddresses = {
20
+ alfajores: {
21
+ router: '0x0666AD4F636210B6a418f97790b7BAABAC54b9A4',
22
+ },
23
+ };
24
+ const ownerAddress = '0x35b74Ed5038bf0488Ff33bD9819b9D12D10A7560';
25
+ function check() {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const provider = (0, utils_2.getAlfajoresProvider)();
28
+ console.info('Preparing utilities');
29
+ const multiProvider = new MultiProvider_1.MultiProvider({
30
+ alfajores: {
31
+ provider,
32
+ confirmations: app_1.alfajoresChainConfig.alfajores.confirmations,
33
+ overrides: app_1.alfajoresChainConfig.alfajores.overrides,
34
+ },
35
+ });
36
+ const contractsMap = (0, contracts_1.buildContracts)(deploymentAddresses, app_1.envSubsetFactories);
37
+ const app = new app_1.EnvSubsetApp(contractsMap, multiProvider);
38
+ const core = HyperlaneCore_1.HyperlaneCore.fromEnvironment('testnet2', multiProvider);
39
+ const config = core.extendWithConnectionClientConfig((0, utils_1.getChainToOwnerMap)(app_1.alfajoresChainConfig, ownerAddress));
40
+ const envSubsetChecker = new app_1.EnvSubsetChecker(multiProvider, app, config);
41
+ console.info('Starting check');
42
+ yield envSubsetChecker.check();
43
+ envSubsetChecker.expectEmpty();
44
+ });
45
+ }
46
+ check()
47
+ .then(() => console.info('Check complete'))
48
+ .catch(console.error);
49
+ //# sourceMappingURL=check-single-chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-single-chain.js","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/check-single-chain.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+CAAiD;AACjD,4DAAyD;AACzD,8CAAwD;AACxD,iEAA8D;AAI9D,+BAKe;AACf,mCAA+C;AAE/C,sDAAsD;AACtD,MAAM,mBAAmB,GAAG;IAC1B,SAAS,EAAE;QACT,MAAM,EAAE,4CAA4C;KACrD;CACF,CAAC;AAEF,MAAM,YAAY,GAAG,4CAA4C,CAAC;AAElE,SAAe,KAAK;;QAClB,MAAM,QAAQ,GAAG,IAAA,4BAAoB,GAAE,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,6BAAa,CAAC;YACtC,SAAS,EAAE;gBACT,QAAQ;gBACR,aAAa,EAAE,0BAAoB,CAAC,SAAS,CAAC,aAAa;gBAC3D,SAAS,EAAE,0BAAoB,CAAC,SAAS,CAAC,SAAS;aACpD;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAA,0BAAc,EACjC,mBAAmB,EACnB,wBAAkB,CACqB,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,kBAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC1D,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,YAAY,CAAC,CACvD,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,sBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAE1E,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;CAAA;AAED,KAAK,EAAE;KACJ,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC1C,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deploy-single-chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy-single-chain.d.ts","sourceRoot":"","sources":["../../../src/test/envSubsetDeployer/deploy-single-chain.ts"],"names":[],"mappings":""}