@hyperlane-xyz/sdk 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/README.md +2 -2
  2. package/dist/HyperlaneApp.d.ts +7 -8
  3. package/dist/HyperlaneApp.d.ts.map +1 -1
  4. package/dist/HyperlaneApp.js +1 -4
  5. package/dist/HyperlaneApp.js.map +1 -1
  6. package/dist/consts/chainMetadata.d.ts +54 -25
  7. package/dist/consts/chainMetadata.d.ts.map +1 -1
  8. package/dist/consts/chainMetadata.js +65 -81
  9. package/dist/consts/chainMetadata.js.map +1 -1
  10. package/dist/consts/chains.d.ts +5 -5
  11. package/dist/consts/chains.d.ts.map +1 -1
  12. package/dist/consts/chains.js +5 -1
  13. package/dist/consts/chains.js.map +1 -1
  14. package/dist/consts/environments/index.d.ts +4 -2
  15. package/dist/consts/environments/index.d.ts.map +1 -1
  16. package/dist/consts/environments/mainnet.json +3 -1
  17. package/dist/core/HyperlaneCore.d.ts +10 -385
  18. package/dist/core/HyperlaneCore.d.ts.map +1 -1
  19. package/dist/core/HyperlaneCore.js +6 -11
  20. package/dist/core/HyperlaneCore.js.map +1 -1
  21. package/dist/core/HyperlaneCore.test.js +2 -3
  22. package/dist/core/HyperlaneCore.test.js.map +1 -1
  23. package/dist/core/TestCoreApp.d.ts +5 -5
  24. package/dist/core/TestCoreApp.d.ts.map +1 -1
  25. package/dist/core/TestCoreApp.js +2 -4
  26. package/dist/core/TestCoreApp.js.map +1 -1
  27. package/dist/core/TestCoreDeployer.d.ts +6 -6
  28. package/dist/core/TestCoreDeployer.d.ts.map +1 -1
  29. package/dist/core/TestCoreDeployer.js +1 -1
  30. package/dist/core/TestCoreDeployer.js.map +1 -1
  31. package/dist/core/testHyperlaneDeploy.hardhat-test.js +8 -12
  32. package/dist/core/testHyperlaneDeploy.hardhat-test.js.map +1 -1
  33. package/dist/deploy/HyperlaneAppChecker.d.ts +9 -7
  34. package/dist/deploy/HyperlaneAppChecker.d.ts.map +1 -1
  35. package/dist/deploy/HyperlaneAppChecker.js +32 -9
  36. package/dist/deploy/HyperlaneAppChecker.js.map +1 -1
  37. package/dist/deploy/HyperlaneDeployer.d.ts +15 -15
  38. package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
  39. package/dist/deploy/HyperlaneDeployer.js +28 -35
  40. package/dist/deploy/HyperlaneDeployer.js.map +1 -1
  41. package/dist/deploy/core/HyperlaneCoreChecker.d.ts +9 -7
  42. package/dist/deploy/core/HyperlaneCoreChecker.d.ts.map +1 -1
  43. package/dist/deploy/core/HyperlaneCoreChecker.js +57 -3
  44. package/dist/deploy/core/HyperlaneCoreChecker.js.map +1 -1
  45. package/dist/deploy/core/HyperlaneCoreDeployer.d.ts +11 -11
  46. package/dist/deploy/core/HyperlaneCoreDeployer.d.ts.map +1 -1
  47. package/dist/deploy/core/HyperlaneCoreDeployer.js +12 -20
  48. package/dist/deploy/core/HyperlaneCoreDeployer.js.map +1 -1
  49. package/dist/deploy/core/types.d.ts +9 -1
  50. package/dist/deploy/core/types.d.ts.map +1 -1
  51. package/dist/deploy/core/types.js +1 -0
  52. package/dist/deploy/core/types.js.map +1 -1
  53. package/dist/deploy/middleware/LiquidityLayerApp.d.ts +17 -17
  54. package/dist/deploy/middleware/LiquidityLayerApp.d.ts.map +1 -1
  55. package/dist/deploy/middleware/LiquidityLayerApp.js +18 -23
  56. package/dist/deploy/middleware/LiquidityLayerApp.js.map +1 -1
  57. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts +7 -7
  58. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.d.ts.map +1 -1
  59. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js +6 -9
  60. package/dist/deploy/middleware/LiquidityLayerRouterDeployer.js.map +1 -1
  61. package/dist/deploy/middleware/deploy.d.ts +9 -9
  62. package/dist/deploy/middleware/deploy.d.ts.map +1 -1
  63. package/dist/deploy/middleware/deploy.js.map +1 -1
  64. package/dist/deploy/router/GasRouterDeployer.d.ts +12 -0
  65. package/dist/deploy/router/GasRouterDeployer.d.ts.map +1 -0
  66. package/dist/deploy/router/GasRouterDeployer.js +46 -0
  67. package/dist/deploy/router/GasRouterDeployer.js.map +1 -0
  68. package/dist/deploy/router/HyperlaneRouterChecker.d.ts +6 -6
  69. package/dist/deploy/router/HyperlaneRouterChecker.d.ts.map +1 -1
  70. package/dist/deploy/router/HyperlaneRouterChecker.js +2 -2
  71. package/dist/deploy/router/HyperlaneRouterChecker.js.map +1 -1
  72. package/dist/deploy/router/HyperlaneRouterDeployer.d.ts +7 -7
  73. package/dist/deploy/router/HyperlaneRouterDeployer.d.ts.map +1 -1
  74. package/dist/deploy/router/HyperlaneRouterDeployer.js +19 -22
  75. package/dist/deploy/router/HyperlaneRouterDeployer.js.map +1 -1
  76. package/dist/deploy/router/types.d.ts +5 -0
  77. package/dist/deploy/router/types.d.ts.map +1 -1
  78. package/dist/deploy/types.d.ts +9 -5
  79. package/dist/deploy/types.d.ts.map +1 -1
  80. package/dist/deploy/types.js +1 -0
  81. package/dist/deploy/types.js.map +1 -1
  82. package/dist/deploy/utils.d.ts +2 -6
  83. package/dist/deploy/utils.d.ts.map +1 -1
  84. package/dist/deploy/utils.js +1 -27
  85. package/dist/deploy/utils.js.map +1 -1
  86. package/dist/deploy/verify/ContractVerifier.d.ts +7 -7
  87. package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
  88. package/dist/deploy/verify/ContractVerifier.js +2 -5
  89. package/dist/deploy/verify/ContractVerifier.js.map +1 -1
  90. package/dist/events.d.ts +4 -4
  91. package/dist/events.d.ts.map +1 -1
  92. package/dist/events.js +12 -9
  93. package/dist/events.js.map +1 -1
  94. package/dist/gas/calculator.d.ts +20 -20
  95. package/dist/gas/calculator.d.ts.map +1 -1
  96. package/dist/gas/calculator.hardhat-test.js +5 -4
  97. package/dist/gas/calculator.hardhat-test.js.map +1 -1
  98. package/dist/gas/calculator.js +9 -11
  99. package/dist/gas/calculator.js.map +1 -1
  100. package/dist/gas/calculator.test.js +2 -14
  101. package/dist/gas/calculator.test.js.map +1 -1
  102. package/dist/gas/token-prices.d.ts +4 -2
  103. package/dist/gas/token-prices.d.ts.map +1 -1
  104. package/dist/gas/token-prices.js +4 -2
  105. package/dist/gas/token-prices.js.map +1 -1
  106. package/dist/index.d.ts +30 -31
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +59 -66
  109. package/dist/index.js.map +1 -1
  110. package/dist/middleware/accounts.hardhat-test.js +23 -13
  111. package/dist/middleware/accounts.hardhat-test.js.map +1 -1
  112. package/dist/middleware/liquidity-layer.hardhat-test.js +10 -9
  113. package/dist/middleware/liquidity-layer.hardhat-test.js.map +1 -1
  114. package/dist/middleware/queries.hardhat-test.js +17 -13
  115. package/dist/middleware/queries.hardhat-test.js.map +1 -1
  116. package/dist/providers/MultiProvider.d.ts +186 -37
  117. package/dist/providers/MultiProvider.d.ts.map +1 -1
  118. package/dist/providers/MultiProvider.js +408 -63
  119. package/dist/providers/MultiProvider.js.map +1 -1
  120. package/dist/router.d.ts +11 -2
  121. package/dist/router.d.ts.map +1 -1
  122. package/dist/router.js +28 -0
  123. package/dist/router.js.map +1 -1
  124. package/dist/test/envSubsetDeployer/app.d.ts +12 -21
  125. package/dist/test/envSubsetDeployer/app.d.ts.map +1 -1
  126. package/dist/test/envSubsetDeployer/app.js +13 -18
  127. package/dist/test/envSubsetDeployer/app.js.map +1 -1
  128. package/dist/test/envSubsetDeployer/check-single-chain.js +1 -11
  129. package/dist/test/envSubsetDeployer/check-single-chain.js.map +1 -1
  130. package/dist/test/envSubsetDeployer/deploy-single-chain.js +3 -9
  131. package/dist/test/envSubsetDeployer/deploy-single-chain.js.map +1 -1
  132. package/dist/test/envSubsetDeployer/deploy.hardhat-test.js +4 -3
  133. package/dist/test/envSubsetDeployer/deploy.hardhat-test.js.map +1 -1
  134. package/dist/test/envSubsetDeployer/utils.d.ts +0 -3
  135. package/dist/test/envSubsetDeployer/utils.d.ts.map +1 -1
  136. package/dist/test/envSubsetDeployer/utils.js +2 -10
  137. package/dist/test/envSubsetDeployer/utils.js.map +1 -1
  138. package/dist/test/testUtils.d.ts +5 -1
  139. package/dist/test/testUtils.d.ts.map +1 -1
  140. package/dist/test/testUtils.js +8 -1
  141. package/dist/test/testUtils.js.map +1 -1
  142. package/dist/types.d.ts +2 -17
  143. package/dist/types.d.ts.map +1 -1
  144. package/dist/utils/MultiGeneric.d.ts +11 -12
  145. package/dist/utils/MultiGeneric.d.ts.map +1 -1
  146. package/dist/utils/MultiGeneric.js +3 -6
  147. package/dist/utils/MultiGeneric.js.map +1 -1
  148. package/dist/utils/wagmi.d.ts +4 -0
  149. package/dist/utils/wagmi.d.ts.map +1 -0
  150. package/dist/utils/wagmi.js +28 -0
  151. package/dist/utils/wagmi.js.map +1 -0
  152. package/logos/black/gnosis.svg +1 -0
  153. package/logos/color/gnosis.svg +1 -0
  154. package/package.json +5 -6
  155. package/dist/consts/chainConnectionConfigs.d.ts +0 -21
  156. package/dist/consts/chainConnectionConfigs.d.ts.map +0 -1
  157. package/dist/consts/chainConnectionConfigs.js +0 -35
  158. package/dist/consts/chainConnectionConfigs.js.map +0 -1
  159. package/dist/core/message.d.ts +0 -146
  160. package/dist/core/message.d.ts.map +0 -1
  161. package/dist/core/message.js +0 -285
  162. package/dist/core/message.js.map +0 -1
  163. package/dist/domains.d.ts +0 -4
  164. package/dist/domains.d.ts.map +0 -1
  165. package/dist/domains.js +0 -12
  166. package/dist/domains.js.map +0 -1
  167. package/dist/providers/ChainConnection.d.ts +0 -23
  168. package/dist/providers/ChainConnection.d.ts.map +0 -1
  169. package/dist/providers/ChainConnection.js +0 -67
  170. package/dist/providers/ChainConnection.js.map +0 -1
@@ -1,119 +1,464 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.MultiProvider = void 0;
4
- const MultiGeneric_1 = require("../utils/MultiGeneric");
13
+ const debug_1 = require("debug");
14
+ const ethers_1 = require("ethers");
15
+ const chainMetadata_1 = require("../consts/chainMetadata");
16
+ const chains_1 = require("../consts/chains");
5
17
  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)));
18
+ class MultiProvider {
19
+ /**
20
+ * Create a new MultiProvider with the given chainMetadata,
21
+ * or the SDK's default metadata if not provided
22
+ */
23
+ constructor(chainMetadata = chainMetadata_1.chainMetadata, options = {}) {
24
+ this.metadata = {};
25
+ this.providers = {};
26
+ this.signers = {};
27
+ this.useSharedSigner = false; // A single signer to be used for all chains
28
+ this.metadata = chainMetadata;
29
+ // Ensure no two chains have overlapping names/domainIds/chainIds
30
+ const chainNames = new Set();
31
+ const chainIds = new Set();
32
+ const domainIds = new Set();
33
+ for (const chain of Object.values(chainMetadata)) {
34
+ const { name, chainId, domainId } = chain;
35
+ if (chainNames.has(name))
36
+ throw new Error(`Duplicate chain name: ${name}`);
37
+ if (chainIds.has(chainId))
38
+ throw new Error(`Duplicate chain id: ${chainId}`);
39
+ if (domainIds.has(chainId))
40
+ throw new Error(`Overlapping chain/domain id: ${chainId}`);
41
+ if (domainId && domainIds.has(domainId))
42
+ throw new Error(`Duplicate domain id: ${domainId}`);
43
+ if (domainId && chainIds.has(domainId))
44
+ throw new Error(`Overlapping chain/domain id: ${domainId}`);
45
+ chainNames.add(name);
46
+ chainIds.add(chainId);
47
+ if (domainId)
48
+ domainIds.add(domainId);
49
+ }
50
+ this.logger = (0, debug_1.debug)((options === null || options === void 0 ? void 0 : options.loggerName) || 'hyperlane:MultiProvider');
10
51
  }
11
52
  /**
12
- * Get chainConnection for a chain
13
- * @throws if chain is invalid or has not been set
53
+ * Get the metadata for a given chain name, chain id, or domain id
54
+ * @throws if chain's metadata has not been set
14
55
  */
15
- getChainConnection(chain) {
16
- return this.get(chain);
56
+ tryGetChainMetadata(chainNameOrId) {
57
+ let chainMetadata;
58
+ if (typeof chainNameOrId === 'string') {
59
+ chainMetadata = this.metadata[chainNameOrId];
60
+ }
61
+ else if (typeof chainNameOrId === 'number') {
62
+ chainMetadata = Object.values(this.metadata).find((m) => m.chainId === chainNameOrId || m.domainId === chainNameOrId);
63
+ }
64
+ return chainMetadata || null;
17
65
  }
18
66
  /**
19
- * Get chainConnection for a chain
20
- * @returns value or null if chain value has not been set
67
+ * Get the metadata for a given chain name, chain id, or domain id
68
+ * @throws if chain's metadata has not been set
21
69
  */
22
- tryGetChainConnection(chain) {
23
- return this.tryGet(chain);
70
+ getChainMetadata(chainNameOrId) {
71
+ const chainMetadata = this.tryGetChainMetadata(chainNameOrId);
72
+ if (!chainMetadata)
73
+ throw new Error(`No chain metadata set for ${chainNameOrId}`);
74
+ return chainMetadata;
24
75
  }
25
76
  /**
26
- * Set value for a chain
27
- * @throws if chain is invalid or has not been set
77
+ * Get the name for a given chain name, chain id, or domain id
28
78
  */
29
- setChainConnection(chain, chainConnectionConfig) {
30
- const connection = new ChainConnection_1.ChainConnection(chainConnectionConfig);
31
- return this.set(chain, connection);
79
+ tryGetChainName(chainNameOrId) {
80
+ var _a, _b;
81
+ return (_b = (_a = this.tryGetChainMetadata(chainNameOrId)) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : null;
32
82
  }
33
83
  /**
34
- * Get provider for a chain
35
- * @throws if chain is invalid or has not been set
84
+ * Get the name for a given chain name, chain id, or domain id
85
+ * @throws if chain's metadata has not been set
36
86
  */
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;
87
+ getChainName(chainNameOrId) {
88
+ return this.getChainMetadata(chainNameOrId).name;
43
89
  }
44
90
  /**
45
- * Get provider for a chain
46
- * @returns value or null if chain value has not been set
91
+ * Get the names for all chains known to this MultiProvider
47
92
  */
48
- tryGetChainProvider(chain) {
93
+ getKnownChainNames() {
94
+ return Object.keys(this.metadata);
95
+ }
96
+ /**
97
+ * Get the id for a given chain name, chain id, or domain id
98
+ */
99
+ tryGetChainId(chainNameOrId) {
49
100
  var _a, _b;
50
- return (_b = (_a = this.tryGet(chain)) === null || _a === void 0 ? void 0 : _a.provider) !== null && _b !== void 0 ? _b : null;
101
+ return (_b = (_a = this.tryGetChainMetadata(chainNameOrId)) === null || _a === void 0 ? void 0 : _a.chainId) !== null && _b !== void 0 ? _b : null;
51
102
  }
52
103
  /**
53
- * Get signer for a chain
54
- * @throws if chain is invalid or has not been set
104
+ * Get the id for a given chain name, chain id, or domain id
105
+ * @throws if chain's metadata has not been set
55
106
  */
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;
107
+ getChainId(chainNameOrId) {
108
+ return this.getChainMetadata(chainNameOrId).chainId;
109
+ }
110
+ /**
111
+ * Get the ids for all chains known to this MultiProvider
112
+ */
113
+ getKnownChainIds() {
114
+ return Object.values(this.metadata).map((c) => c.chainId);
62
115
  }
63
116
  /**
64
- * Get signer for a chain
65
- * @returns value or null if chain value has not been set
117
+ * Get the domain id for a given chain name, chain id, or domain id
66
118
  */
67
- tryGetChainSigner(chain) {
119
+ tryGetDomainId(chainNameOrId) {
68
120
  var _a, _b;
69
- return (_b = (_a = this.tryGet(chain)) === null || _a === void 0 ? void 0 : _a.signer) !== null && _b !== void 0 ? _b : null;
121
+ const metadata = this.tryGetChainMetadata(chainNameOrId);
122
+ return (_b = (_a = metadata === null || metadata === void 0 ? void 0 : metadata.domainId) !== null && _a !== void 0 ? _a : metadata === null || metadata === void 0 ? void 0 : metadata.chainId) !== null && _b !== void 0 ? _b : null;
123
+ }
124
+ /**
125
+ * Get the domain id for a given chain name, chain id, or domain id
126
+ * @throws if chain's metadata has not been set
127
+ */
128
+ getDomainId(chainNameOrId) {
129
+ var _a;
130
+ const metadata = this.getChainMetadata(chainNameOrId);
131
+ return (_a = metadata.domainId) !== null && _a !== void 0 ? _a : metadata.chainId;
132
+ }
133
+ /**
134
+ * Get the domain ids for a list of chain names, chain ids, or domain ids
135
+ * @throws if any chain's metadata has not been set
136
+ */
137
+ getDomainIds(chainNamesOrIds) {
138
+ return chainNamesOrIds.map((c) => this.getDomainId(c));
139
+ }
140
+ /**
141
+ * Get the ids for all chains known to this MultiProvider
142
+ */
143
+ getKnownDomainIds() {
144
+ return this.getKnownChainNames().map(this.getDomainId);
145
+ }
146
+ /**
147
+ * Get an Ethers provider for a given chain name, chain id, or domain id
148
+ */
149
+ tryGetProvider(chainNameOrId) {
150
+ const metadata = this.tryGetChainMetadata(chainNameOrId);
151
+ if (!metadata)
152
+ return null;
153
+ const { name, chainId: id, publicRpcUrls } = metadata;
154
+ if (this.providers[name])
155
+ return this.providers[name];
156
+ if (chains_1.TestChains.includes(name)) {
157
+ this.providers[name] = new ethers_1.providers.JsonRpcProvider('http://localhost:8545', 31337);
158
+ }
159
+ else if (publicRpcUrls.length && publicRpcUrls[0].http) {
160
+ this.providers[name] = new ethers_1.providers.JsonRpcProvider(publicRpcUrls[0].http, id);
161
+ }
162
+ else {
163
+ return null;
164
+ }
165
+ return this.providers[name];
166
+ }
167
+ /**
168
+ * Get an Ethers provider for a given chain name, chain id, or domain id
169
+ * @throws if chain's metadata has not been set
170
+ */
171
+ getProvider(chainNameOrId) {
172
+ const provider = this.tryGetProvider(chainNameOrId);
173
+ if (!provider)
174
+ throw new Error(`No chain metadata set for ${chainNameOrId}`);
175
+ return provider;
176
+ }
177
+ /**
178
+ * Sets an Ethers provider for a given chain name, chain id, or domain id
179
+ * @throws if chain's metadata has not been set
180
+ */
181
+ setProvider(chainNameOrId, provider) {
182
+ const chainName = this.getChainName(chainNameOrId);
183
+ this.providers[chainName] = provider;
184
+ return provider;
185
+ }
186
+ /**
187
+ * Sets Ethers providers for a set of chains
188
+ * @throws if chain's metadata has not been set
189
+ */
190
+ setProviders(providers) {
191
+ for (const chain of Object.keys(providers)) {
192
+ const chainName = this.getChainName(chain);
193
+ this.providers[chainName] = providers[chain];
194
+ }
195
+ }
196
+ /**
197
+ * Get an Ethers signer for a given chain name, chain id, or domain id
198
+ * If signer is not yet connected, it will be connected
199
+ */
200
+ tryGetSigner(chainNameOrId) {
201
+ const chainName = this.tryGetChainName(chainNameOrId);
202
+ if (!chainName)
203
+ return null;
204
+ // Otherwise check the chain-to-signer map
205
+ const signer = this.signers[chainName];
206
+ if (!signer)
207
+ return null;
208
+ if (signer.provider)
209
+ return signer;
210
+ // Auto-connect the signer for convenience
211
+ const provider = this.tryGetProvider(chainName);
212
+ return provider ? signer.connect(provider) : signer;
213
+ }
214
+ /**
215
+ * Get an Ethers signer for a given chain name, chain id, or domain id
216
+ * If signer is not yet connected, it will be connected
217
+ * @throws if chain's metadata or signer has not been set
218
+ */
219
+ getSigner(chainNameOrId) {
220
+ const signer = this.tryGetSigner(chainNameOrId);
221
+ if (!signer)
222
+ throw new Error(`No chain signer set for ${chainNameOrId}`);
223
+ return signer;
224
+ }
225
+ /**
226
+ * Get an Ethers signer for a given chain name, chain id, or domain id
227
+ * @throws if chain's metadata or signer has not been set
228
+ */
229
+ getSignerAddress(chainNameOrId) {
230
+ return __awaiter(this, void 0, void 0, function* () {
231
+ const signer = this.getSigner(chainNameOrId);
232
+ const address = yield signer.getAddress();
233
+ return address;
234
+ });
235
+ }
236
+ /**
237
+ * Sets an Ethers Signer for a given chain name, chain id, or domain id
238
+ * @throws if chain's metadata has not been set or shared signer has already been set
239
+ */
240
+ setSigner(chainNameOrId, signer) {
241
+ if (this.useSharedSigner) {
242
+ throw new Error('MultiProvider already set to use a shared signer');
243
+ }
244
+ const chainName = this.getChainName(chainNameOrId);
245
+ this.signers[chainName] = signer;
246
+ if (signer.provider && !this.providers[chainName]) {
247
+ this.providers[chainName] = signer.provider;
248
+ }
249
+ return signer;
250
+ }
251
+ /**
252
+ * Sets Ethers Signers for a set of chains
253
+ * @throws if chain's metadata has not been set or shared signer has already been set
254
+ */
255
+ setSigners(signers) {
256
+ if (this.useSharedSigner) {
257
+ throw new Error('MultiProvider already set to use a shared signer');
258
+ }
259
+ for (const chain of Object.keys(signers)) {
260
+ const chainName = this.getChainName(chain);
261
+ this.signers[chainName] = signers[chain];
262
+ }
263
+ }
264
+ /**
265
+ * Gets the Signer if it's been set, otherwise the provider
266
+ */
267
+ tryGetSignerOrProvider(chainNameOrId) {
268
+ return (this.tryGetSigner(chainNameOrId) || this.tryGetProvider(chainNameOrId));
70
269
  }
71
270
  /**
72
- * Get the id for a given chain name
73
- * Attempts to use SDK defaults first, otherwise queries network
74
- * @throws if chain is invalid or has not been set
271
+ * Gets the Signer if it's been set, otherwise the provider
272
+ * @throws if chain metadata has not been set
75
273
  */
76
- getChainId(chain) {
77
- return this.getChainConnection(chain).id;
274
+ getSignerOrProvider(chainNameOrId) {
275
+ return this.tryGetSigner(chainNameOrId) || this.getProvider(chainNameOrId);
78
276
  }
79
277
  /**
80
- * Create a new MultiProvider which includes the provided chain connection config
278
+ * Sets Ethers Signers to be used for all chains
279
+ * Any subsequent calls to getSigner will return given signer
280
+ * Setting sharedSigner to null clears all signers
81
281
  */
82
- extendWithChain(chain, chainConnectionConfig) {
83
- const connection = new ChainConnection_1.ChainConnection(chainConnectionConfig);
84
- return new MultiProvider(Object.assign(Object.assign({}, this.chainMap), { [chain]: connection }));
282
+ setSharedSigner(sharedSigner) {
283
+ if (!sharedSigner) {
284
+ this.useSharedSigner = false;
285
+ this.signers = {};
286
+ return null;
287
+ }
288
+ this.useSharedSigner = true;
289
+ for (const chain of this.getKnownChainNames()) {
290
+ this.signers[chain] = sharedSigner;
291
+ }
292
+ return sharedSigner;
85
293
  }
86
294
  /**
87
295
  * Create a new MultiProvider from the intersection
88
296
  * of current's chains and the provided chain list
89
297
  */
90
298
  intersect(chains, throwIfNotSubset = false) {
91
- const ownChains = this.chains();
299
+ const ownChains = this.getKnownChainNames();
92
300
  const intersection = [];
93
301
  for (const chain of chains) {
94
- // @ts-ignore
95
302
  if (ownChains.includes(chain)) {
96
- // @ts-ignore
97
303
  intersection.push(chain);
98
304
  }
99
- else {
100
- if (throwIfNotSubset) {
101
- throw new Error(`MultiProvider#intersect: chains specified ${chain}, but ownChains did not include it`);
102
- }
305
+ else if (throwIfNotSubset) {
306
+ throw new Error(`MultiProvider#intersect: chains specified ${chain}, but ownChains did not include it`);
103
307
  }
104
308
  }
105
309
  if (!intersection.length) {
106
310
  throw new Error(`No chains shared between MultiProvider and list (${ownChains} and ${chains})`);
107
311
  }
108
- const intersectionChainMap = (0, objects_1.pick)(this.chainMap, intersection);
109
- const multiProvider = new MultiProvider(Object.assign({}, intersectionChainMap));
312
+ const intersectionMetadata = (0, objects_1.pick)(this.metadata, intersection);
313
+ const intersectionProviders = (0, objects_1.pick)(this.providers, intersection);
314
+ const intersectionSigners = (0, objects_1.pick)(this.signers, intersection);
315
+ const multiProvider = new MultiProvider(intersectionMetadata);
316
+ multiProvider.setProviders(intersectionProviders);
317
+ multiProvider.setSigners(intersectionSigners);
110
318
  return { intersection, multiProvider };
111
319
  }
112
- rotateSigner(newSigner) {
113
- this.forEach((chain, dc) => {
114
- this.setChainConnection(chain, Object.assign(Object.assign({}, dc), { signer: newSigner.connect(dc.provider) }));
320
+ /**
321
+ * Get chain names excluding given chain name
322
+ */
323
+ getRemoteChains(name) {
324
+ return this.getKnownChainNames().filter((n) => n !== name);
325
+ }
326
+ /**
327
+ * Get an RPC URL for given chain
328
+ * @throws if chain's metadata has not been set
329
+ */
330
+ getRpcUrl(chainNameOrId) {
331
+ const { publicRpcUrls } = this.getChainMetadata(chainNameOrId);
332
+ if (!(publicRpcUrls === null || publicRpcUrls === void 0 ? void 0 : publicRpcUrls.length) || !publicRpcUrls[0].http)
333
+ throw new Error(`No RPC URl configured for ${chainNameOrId}`);
334
+ return publicRpcUrls[0].http;
335
+ }
336
+ /**
337
+ * Get a block explorer URL for given chain
338
+ * @throws if chain's metadata has not been set
339
+ */
340
+ getExplorerUrl(chainNameOrId) {
341
+ const explorers = this.getChainMetadata(chainNameOrId).blockExplorers;
342
+ if (!(explorers === null || explorers === void 0 ? void 0 : explorers.length))
343
+ return 'UNKNOWN_EXPLORER_URL';
344
+ else
345
+ return explorers[0].url;
346
+ }
347
+ /**
348
+ * Get a block explorer API URL for given chain
349
+ * @throws if chain's metadata has not been set
350
+ */
351
+ getExplorerApiUrl(chainNameOrId) {
352
+ const explorers = this.getChainMetadata(chainNameOrId).blockExplorers;
353
+ if (!(explorers === null || explorers === void 0 ? void 0 : explorers.length))
354
+ return 'UNKNOWN_EXPLORER_API_URL';
355
+ else
356
+ return (explorers[0].apiUrl || explorers[0].url) + '/api';
357
+ }
358
+ /**
359
+ * Get a block explorer URL for given chain's tx
360
+ * @throws if chain's metadata has not been set
361
+ */
362
+ getExplorerTxUrl(chainNameOrId, response) {
363
+ return `${this.getExplorerUrl(chainNameOrId)}/tx/${response.hash}`;
364
+ }
365
+ /**
366
+ * Get a block explorer URL for given chain's address
367
+ * @throws if chain's metadata has not been set
368
+ */
369
+ getExplorerAddressUrl(chainNameOrId, address) {
370
+ return __awaiter(this, void 0, void 0, function* () {
371
+ const base = `${this.getExplorerUrl(chainNameOrId)}/address`;
372
+ if (address)
373
+ return `${base}/${address}`;
374
+ const signerAddress = yield this.getSignerAddress(chainNameOrId);
375
+ return `${base}/${signerAddress}`;
115
376
  });
116
377
  }
378
+ /**
379
+ * Get a block explorer URL for given chain's address
380
+ * @throws if chain's metadata has not been set
381
+ */
382
+ getTransactionOverrides(chainNameOrId) {
383
+ var _a, _b;
384
+ return (_b = (_a = this.getChainMetadata(chainNameOrId)) === null || _a === void 0 ? void 0 : _a.transactionOverrides) !== null && _b !== void 0 ? _b : {};
385
+ }
386
+ /**
387
+ * Wait for given tx to be confirmed
388
+ * @throws if chain's metadata or signer has not been set or tx fails
389
+ */
390
+ handleTx(chainNameOrId, tx) {
391
+ var _a;
392
+ return __awaiter(this, void 0, void 0, function* () {
393
+ const confirmations = ((_a = this.getChainMetadata(chainNameOrId).blocks) === null || _a === void 0 ? void 0 : _a.confirmations) || 1;
394
+ const response = yield tx;
395
+ this.logger(`Pending ${this.getExplorerTxUrl(chainNameOrId, response)} (waiting ${confirmations} blocks for confirmation)`);
396
+ return response.wait(confirmations);
397
+ });
398
+ }
399
+ /**
400
+ * Populate a transaction's fields using signer address and overrides
401
+ * @throws if chain's metadata has not been set or tx fails
402
+ */
403
+ prepareTx(chainNameOrId, tx, from) {
404
+ return __awaiter(this, void 0, void 0, function* () {
405
+ const txFrom = from ? from : yield this.getSignerAddress(chainNameOrId);
406
+ const overrides = this.getTransactionOverrides(chainNameOrId);
407
+ return Object.assign(Object.assign(Object.assign({}, tx), { from: txFrom }), overrides);
408
+ });
409
+ }
410
+ /**
411
+ * Estimate gas for given tx
412
+ * @throws if chain's metadata has not been set or tx fails
413
+ */
414
+ estimateGas(chainNameOrId, tx, from) {
415
+ return __awaiter(this, void 0, void 0, function* () {
416
+ const txReq = yield this.prepareTx(chainNameOrId, tx, from);
417
+ const provider = this.getProvider(chainNameOrId);
418
+ return provider.estimateGas(txReq);
419
+ });
420
+ }
421
+ /**
422
+ * Send a transaction and wait for confirmation
423
+ * @throws if chain's metadata or signer has not been set or tx fails
424
+ */
425
+ sendTransaction(chainNameOrId, tx) {
426
+ return __awaiter(this, void 0, void 0, function* () {
427
+ const txReq = yield this.prepareTx(chainNameOrId, tx);
428
+ const signer = this.getSigner(chainNameOrId);
429
+ const response = yield signer.sendTransaction(txReq);
430
+ this.logger(`Sent tx ${response.hash}`);
431
+ return this.handleTx(chainNameOrId, response);
432
+ });
433
+ }
434
+ /**
435
+ * Run given function on all known chains
436
+ */
437
+ mapKnownChains(fn) {
438
+ const result = {};
439
+ for (const chain of this.getKnownChainNames()) {
440
+ result[chain] = fn(chain);
441
+ }
442
+ return result;
443
+ }
444
+ /**
445
+ * Creates a MultiProvider using the given signer for all test networks
446
+ */
447
+ static createTestMultiProvider(params = {}) {
448
+ const { signer, provider } = params;
449
+ const chainMetadata = (0, objects_1.pick)(chainMetadata_1.chainMetadata, chains_1.TestChains);
450
+ const mp = new MultiProvider(chainMetadata);
451
+ if (signer) {
452
+ mp.setSharedSigner(signer);
453
+ }
454
+ const _provider = provider || (signer === null || signer === void 0 ? void 0 : signer.provider);
455
+ if (_provider) {
456
+ const providerMap = {};
457
+ chains_1.TestChains.forEach((t) => (providerMap[t] = _provider));
458
+ mp.setProviders(providerMap);
459
+ }
460
+ return mp;
461
+ }
117
462
  }
118
463
  exports.MultiProvider = MultiProvider;
119
464
  //# sourceMappingURL=MultiProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiProvider.js","sourceRoot":"","sources":["../../src/providers/MultiProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiProvider.js","sourceRoot":"","sources":["../../src/providers/MultiProvider.ts"],"names":[],"mappings":"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"}
package/dist/router.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- import type { ethers } from 'ethers';
2
- import { Router } from '@hyperlane-xyz/core';
1
+ import type { BigNumber, ethers } from 'ethers';
2
+ import { GasRouter, Router } from '@hyperlane-xyz/core';
3
3
  import type { types } from '@hyperlane-xyz/utils';
4
+ import { HyperlaneApp } from './HyperlaneApp';
4
5
  import { HyperlaneContracts, HyperlaneFactories } from './contracts';
6
+ import { ChainMap, ChainName } from './types';
5
7
  export declare type RouterContracts<RouterContract extends Router = Router> = HyperlaneContracts & {
6
8
  router: RouterContract;
7
9
  };
@@ -17,4 +19,11 @@ export declare type ConnectionClientConfig = {
17
19
  interchainSecurityModule?: types.Address;
18
20
  };
19
21
  export { Router } from '@hyperlane-xyz/core';
22
+ export declare class RouterApp<Contracts extends RouterContracts> extends HyperlaneApp<Contracts> {
23
+ getSecurityModules: () => Promise<ChainMap<types.Address>>;
24
+ getOwners: () => Promise<ChainMap<types.Address>>;
25
+ }
26
+ export declare class GasRouterApp<Contracts extends RouterContracts<GasRouter>> extends RouterApp<Contracts> {
27
+ quoteGasPayment(origin: ChainName, destination: ChainName): Promise<BigNumber>;
28
+ }
20
29
  //# sourceMappingURL=router.d.ts.map
@@ -1 +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,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;CAC1C,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG9C,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,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;CAC1C,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,qBAAa,SAAS,CACpB,SAAS,SAAS,eAAe,CACjC,SAAQ,YAAY,CAAC,SAAS,CAAC;IAC/B,kBAAkB,QAAO,QAAQ,SAAS,MAAM,OAAO,CAAC,CAAC,CAKrD;IAEJ,SAAS,QAAO,QAAQ,SAAS,MAAM,OAAO,CAAC,CAAC,CAG5C;CACL;AAED,qBAAa,YAAY,CACvB,SAAS,SAAS,eAAe,CAAC,SAAS,CAAC,CAC5C,SAAQ,SAAS,CAAC,SAAS,CAAC;IACtB,eAAe,CACnB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,SAAS,GACrB,OAAO,CAAC,SAAS,CAAC;CAKtB"}
package/dist/router.js CHANGED
@@ -1,3 +1,31 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GasRouterApp = exports.RouterApp = void 0;
13
+ const HyperlaneApp_1 = require("./HyperlaneApp");
14
+ const objects_1 = require("./utils/objects");
15
+ class RouterApp extends HyperlaneApp_1.HyperlaneApp {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.getSecurityModules = () => (0, objects_1.promiseObjAll)((0, objects_1.objMap)(this.contractsMap, (_, contracts) => contracts.router.interchainSecurityModule()));
19
+ this.getOwners = () => (0, objects_1.promiseObjAll)((0, objects_1.objMap)(this.contractsMap, (_, contracts) => contracts.router.owner()));
20
+ }
21
+ }
22
+ exports.RouterApp = RouterApp;
23
+ class GasRouterApp extends RouterApp {
24
+ quoteGasPayment(origin, destination) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ return this.getContracts(origin).router.quoteGasPayment(this.multiProvider.getDomainId(destination));
27
+ });
28
+ }
29
+ }
30
+ exports.GasRouterApp = GasRouterApp;
3
31
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,iDAA8C;AAG9C,6CAAwD;AAyBxD,MAAa,SAEX,SAAQ,2BAAuB;IAFjC;;QAGE,uBAAkB,GAAG,GAAqC,EAAE,CAC1D,IAAA,uBAAa,EACX,IAAA,gBAAM,EAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CACzC,SAAS,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAC5C,CACF,CAAC;QAEJ,cAAS,GAAG,GAAqC,EAAE,CACjD,IAAA,uBAAa,EACX,IAAA,gBAAM,EAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CACtE,CAAC;IACN,CAAC;CAAA;AAdD,8BAcC;AAED,MAAa,YAEX,SAAQ,SAAoB;IACtB,eAAe,CACnB,MAAiB,EACjB,WAAsB;;YAEtB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CACrD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAC5C,CAAC;QACJ,CAAC;KAAA;CACF;AAXD,oCAWC"}