@hyperlane-xyz/sdk 5.7.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contracts/contracts.d.ts +2 -2
- package/dist/contracts/contracts.d.ts.map +1 -1
- package/dist/contracts/contracts.js.map +1 -1
- package/dist/core/AbstractHyperlaneModule.d.ts +1 -1
- package/dist/core/AbstractHyperlaneModule.d.ts.map +1 -1
- package/dist/core/EvmCoreModule.d.ts +4 -3
- package/dist/core/EvmCoreModule.d.ts.map +1 -1
- package/dist/core/EvmCoreModule.hardhat-test.js +1 -1
- package/dist/core/EvmCoreModule.hardhat-test.js.map +1 -1
- package/dist/core/EvmCoreModule.js +6 -6
- package/dist/core/EvmCoreModule.js.map +1 -1
- package/dist/gas/token-prices.d.ts +6 -6
- package/dist/gas/token-prices.d.ts.map +1 -1
- package/dist/gas/token-prices.js +8 -14
- package/dist/gas/token-prices.js.map +1 -1
- package/dist/hook/EvmHookModule.d.ts +4 -3
- package/dist/hook/EvmHookModule.d.ts.map +1 -1
- package/dist/hook/EvmHookModule.js +17 -17
- package/dist/hook/EvmHookModule.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ism/EvmIsmModule.d.ts +2 -1
- package/dist/ism/EvmIsmModule.d.ts.map +1 -1
- package/dist/ism/EvmIsmModule.js +7 -7
- package/dist/ism/EvmIsmModule.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +1 -1
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/metadata/ChainMetadataManager.d.ts +32 -26
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataManager.js +56 -37
- package/dist/metadata/ChainMetadataManager.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +41 -41
- package/dist/metadata/chainMetadataTypes.d.ts +18 -18
- package/dist/metadata/chainMetadataTypes.js +1 -1
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +8 -8
- package/dist/providers/MultiProvider.js +8 -8
- package/dist/providers/ProviderType.d.ts +2 -4
- package/dist/providers/ProviderType.d.ts.map +1 -1
- package/dist/providers/ProviderType.js.map +1 -1
- package/dist/providers/transactions/submitter/TxSubmitterInterface.d.ts +2 -2
- package/dist/providers/transactions/submitter/TxSubmitterInterface.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts +2 -1
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/builder/TxSubmitterBuilder.js.map +1 -1
- package/dist/providers/transactions/submitter/builder/schemas.d.ts +20 -0
- package/dist/providers/transactions/submitter/builder/schemas.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.js +2 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxBuilder.js.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js +3 -3
- package/dist/providers/transactions/submitter/ethersV5/EV5GnosisSafeTxSubmitter.js.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.js +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5ImpersonatedAccountTxSubmitter.js.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts +3 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.js +7 -4
- package/dist/providers/transactions/submitter/ethersV5/EV5JsonRpcTxSubmitter.js.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/schemas.d.ts +10 -0
- package/dist/providers/transactions/submitter/ethersV5/schemas.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/schemas.js +4 -1
- package/dist/providers/transactions/submitter/ethersV5/schemas.js.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/schemas.test.js +3 -1
- package/dist/providers/transactions/submitter/ethersV5/schemas.test.js.map +1 -1
- package/dist/providers/transactions/submitter/ethersV5/types.d.ts +2 -1
- package/dist/providers/transactions/submitter/ethersV5/types.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/schemas.d.ts +6 -0
- package/dist/providers/transactions/submitter/schemas.d.ts.map +1 -1
- package/dist/providers/transactions/submitter/schemas.js +2 -1
- package/dist/providers/transactions/submitter/schemas.js.map +1 -1
- package/dist/providers/transactions/transformer/TxTransformerInterface.d.ts +2 -2
- package/dist/providers/transactions/transformer/TxTransformerInterface.d.ts.map +1 -1
- package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts +1 -2
- package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.d.ts.map +1 -1
- package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js +7 -6
- package/dist/providers/transactions/transformer/ethersV5/EV5InterchainAccountTxTransformer.js.map +1 -1
- package/dist/test/MockCoinGecko.d.ts +3 -3
- package/dist/test/MockCoinGecko.d.ts.map +1 -1
- package/dist/test/MockCoinGecko.js +5 -10
- package/dist/test/MockCoinGecko.js.map +1 -1
- package/dist/token/EvmERC20WarpModule.d.ts +4 -2
- package/dist/token/EvmERC20WarpModule.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpModule.js +9 -7
- package/dist/token/EvmERC20WarpModule.js.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.d.ts +2 -4
- package/dist/token/EvmERC20WarpRouteReader.d.ts.map +1 -1
- package/dist/token/EvmERC20WarpRouteReader.js +21 -8
- package/dist/token/EvmERC20WarpRouteReader.js.map +1 -1
- package/dist/token/config.d.ts +0 -1
- package/dist/token/config.d.ts.map +1 -1
- package/dist/token/config.js +0 -5
- package/dist/token/config.js.map +1 -1
- package/dist/token/schemas.d.ts +1 -0
- package/dist/token/schemas.d.ts.map +1 -1
- package/dist/token/schemas.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/gnosisSafe.js +7 -8
- package/dist/utils/transactions.d.ts +12 -0
- package/dist/utils/transactions.d.ts.map +1 -0
- package/dist/utils/transactions.js +17 -0
- package/dist/utils/transactions.js.map +1 -0
- package/package.json +4 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { exclude, pick, rootLogger } from '@hyperlane-xyz/utils';
|
|
1
|
+
import { ProtocolType, exclude, pick, rootLogger, } from '@hyperlane-xyz/utils';
|
|
2
2
|
import { getExplorerAddressUrl, getExplorerApi, getExplorerApiUrl, getExplorerBaseUrl, getExplorerTxUrl, } from './blockExplorer.js';
|
|
3
3
|
import { ChainMetadataSchema, getDomainId, } from './chainMetadataTypes.js';
|
|
4
4
|
/**
|
|
@@ -28,39 +28,36 @@ export class ChainMetadataManager {
|
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Add a chain to the MultiProvider
|
|
31
|
-
* @throws if chain's name or domain
|
|
31
|
+
* @throws if chain's name or domain ID collide
|
|
32
32
|
*/
|
|
33
33
|
addChain(metadata) {
|
|
34
34
|
ChainMetadataSchema.parse(metadata);
|
|
35
|
-
// Ensure no two chains have overlapping names/domainIds
|
|
35
|
+
// Ensure no two chains have overlapping names/domainIds
|
|
36
36
|
for (const chainMetadata of Object.values(this.metadata)) {
|
|
37
|
-
const { name,
|
|
37
|
+
const { name, domainId } = chainMetadata;
|
|
38
38
|
if (name == metadata.name)
|
|
39
39
|
throw new Error(`Duplicate chain name: ${name}`);
|
|
40
|
-
//
|
|
41
|
-
const idCollision =
|
|
42
|
-
domainId == metadata.chainId ||
|
|
43
|
-
(metadata.domainId &&
|
|
44
|
-
(chainId == metadata.domainId || domainId == metadata.domainId));
|
|
40
|
+
// Domain Ids should be globally unique
|
|
41
|
+
const idCollision = metadata.domainId && domainId == metadata.domainId;
|
|
45
42
|
if (idCollision)
|
|
46
|
-
throw new Error(`
|
|
43
|
+
throw new Error(`Domain id collision: ${name} and ${metadata.name}`);
|
|
47
44
|
}
|
|
48
45
|
this.metadata[metadata.name] = metadata;
|
|
49
46
|
}
|
|
50
47
|
/**
|
|
51
|
-
* Get the metadata for a given chain name
|
|
48
|
+
* Get the metadata for a given chain name or domain id
|
|
52
49
|
* @throws if chain's metadata has not been set
|
|
53
50
|
*/
|
|
54
51
|
tryGetChainMetadata(chainNameOrId) {
|
|
55
52
|
// First check if it's a chain name
|
|
56
53
|
if (this.metadata[chainNameOrId])
|
|
57
54
|
return this.metadata[chainNameOrId];
|
|
58
|
-
// Otherwise search by
|
|
59
|
-
const chainMetadata = Object.values(this.metadata).find((m) => m.
|
|
55
|
+
// Otherwise search by domain id
|
|
56
|
+
const chainMetadata = Object.values(this.metadata).find((m) => m.domainId == chainNameOrId);
|
|
60
57
|
return chainMetadata || null;
|
|
61
58
|
}
|
|
62
59
|
/**
|
|
63
|
-
* Get the metadata for a given chain name
|
|
60
|
+
* Get the metadata for a given chain name or domain id
|
|
64
61
|
* @throws if chain's metadata has not been set
|
|
65
62
|
*/
|
|
66
63
|
getChainMetadata(chainNameOrId) {
|
|
@@ -76,20 +73,20 @@ export class ChainMetadataManager {
|
|
|
76
73
|
ChainMetadataManager.DEFAULT_MAX_BLOCK_RANGE));
|
|
77
74
|
}
|
|
78
75
|
/**
|
|
79
|
-
* Returns true if the given chain name
|
|
80
|
-
*
|
|
76
|
+
* Returns true if the given chain name or domain id is
|
|
77
|
+
* included in this manager's metadata, false otherwise
|
|
81
78
|
*/
|
|
82
79
|
hasChain(chainNameOrId) {
|
|
83
80
|
return !!this.tryGetChainMetadata(chainNameOrId);
|
|
84
81
|
}
|
|
85
82
|
/**
|
|
86
|
-
* Get the name for a given chain name
|
|
83
|
+
* Get the name for a given chain name or domain id
|
|
87
84
|
*/
|
|
88
85
|
tryGetChainName(chainNameOrId) {
|
|
89
86
|
return this.tryGetChainMetadata(chainNameOrId)?.name ?? null;
|
|
90
87
|
}
|
|
91
88
|
/**
|
|
92
|
-
* Get the name for a given chain name
|
|
89
|
+
* Get the name for a given chain name or domain id
|
|
93
90
|
* @throws if chain's metadata has not been set
|
|
94
91
|
*/
|
|
95
92
|
getChainName(chainNameOrId) {
|
|
@@ -102,26 +99,48 @@ export class ChainMetadataManager {
|
|
|
102
99
|
return Object.keys(this.metadata);
|
|
103
100
|
}
|
|
104
101
|
/**
|
|
105
|
-
* Get the id for a given chain name
|
|
102
|
+
* Get the id for a given chain name or domain id
|
|
106
103
|
*/
|
|
107
104
|
tryGetChainId(chainNameOrId) {
|
|
108
105
|
return this.tryGetChainMetadata(chainNameOrId)?.chainId ?? null;
|
|
109
106
|
}
|
|
110
107
|
/**
|
|
111
|
-
* Get the id for a given chain name
|
|
108
|
+
* Get the id for a given chain name or domain id
|
|
112
109
|
* @throws if chain's metadata has not been set
|
|
113
110
|
*/
|
|
114
111
|
getChainId(chainNameOrId) {
|
|
115
112
|
return this.getChainMetadata(chainNameOrId).chainId;
|
|
116
113
|
}
|
|
117
114
|
/**
|
|
118
|
-
* Get the
|
|
115
|
+
* Get the id for a given EVM chain name or domain id
|
|
116
|
+
* Returns null if chain's metadata has not been set or is not an EVM chain
|
|
117
|
+
*/
|
|
118
|
+
tryGetEvmChainId(chainNameOrId) {
|
|
119
|
+
const metadata = this.tryGetChainMetadata(chainNameOrId);
|
|
120
|
+
if (!metadata)
|
|
121
|
+
return null;
|
|
122
|
+
if (metadata.protocol !== ProtocolType.Ethereum)
|
|
123
|
+
return null;
|
|
124
|
+
if (typeof metadata.chainId !== 'number')
|
|
125
|
+
return null;
|
|
126
|
+
return metadata.chainId;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get the id for a given EVM chain name or domain id
|
|
130
|
+
* @throws if chain's metadata has not been set
|
|
119
131
|
*/
|
|
120
|
-
|
|
121
|
-
|
|
132
|
+
getEvmChainId(chainNameOrId) {
|
|
133
|
+
const { protocol, chainId } = this.getChainMetadata(chainNameOrId);
|
|
134
|
+
if (protocol !== ProtocolType.Ethereum) {
|
|
135
|
+
throw new Error(`Chain is not an EVM chain: ${chainNameOrId}`);
|
|
136
|
+
}
|
|
137
|
+
if (typeof chainId !== 'number') {
|
|
138
|
+
throw new Error(`Chain ID is not a number: ${chainId}`);
|
|
139
|
+
}
|
|
140
|
+
return chainId;
|
|
122
141
|
}
|
|
123
142
|
/**
|
|
124
|
-
* Get the domain id for a given chain name
|
|
143
|
+
* Get the domain id for a given chain name or domain id
|
|
125
144
|
*/
|
|
126
145
|
tryGetDomainId(chainNameOrId) {
|
|
127
146
|
const metadata = this.tryGetChainMetadata(chainNameOrId);
|
|
@@ -130,7 +149,7 @@ export class ChainMetadataManager {
|
|
|
130
149
|
return getDomainId(metadata) ?? null;
|
|
131
150
|
}
|
|
132
151
|
/**
|
|
133
|
-
* Get the domain id for a given chain name
|
|
152
|
+
* Get the domain id for a given chain name or domain id
|
|
134
153
|
* @throws if chain's metadata has not been set
|
|
135
154
|
*/
|
|
136
155
|
getDomainId(chainNameOrId) {
|
|
@@ -140,20 +159,20 @@ export class ChainMetadataManager {
|
|
|
140
159
|
return domainId;
|
|
141
160
|
}
|
|
142
161
|
/**
|
|
143
|
-
* Get the protocol type for a given chain name
|
|
162
|
+
* Get the protocol type for a given chain name or domain id
|
|
144
163
|
*/
|
|
145
164
|
tryGetProtocol(chainNameOrId) {
|
|
146
165
|
return this.tryGetChainMetadata(chainNameOrId)?.protocol ?? null;
|
|
147
166
|
}
|
|
148
167
|
/**
|
|
149
|
-
* Get the protocol type for a given chain name
|
|
168
|
+
* Get the protocol type for a given chain name or domain id
|
|
150
169
|
* @throws if chain's metadata or protocol has not been set
|
|
151
170
|
*/
|
|
152
171
|
getProtocol(chainNameOrId) {
|
|
153
172
|
return this.getChainMetadata(chainNameOrId).protocol;
|
|
154
173
|
}
|
|
155
174
|
/**
|
|
156
|
-
* Get the domain ids for a list of chain names
|
|
175
|
+
* Get the domain ids for a list of chain names or domain ids
|
|
157
176
|
* @throws if any chain's metadata has not been set
|
|
158
177
|
*/
|
|
159
178
|
getDomainIds(chainNamesOrIds) {
|
|
@@ -182,7 +201,7 @@ export class ChainMetadataManager {
|
|
|
182
201
|
return result;
|
|
183
202
|
}
|
|
184
203
|
/**
|
|
185
|
-
* Get the RPC details for a given chain name
|
|
204
|
+
* Get the RPC details for a given chain name or domain id.
|
|
186
205
|
* Optional index for metadata containing more than one RPC.
|
|
187
206
|
* @throws if chain's metadata has not been set
|
|
188
207
|
*/
|
|
@@ -193,7 +212,7 @@ export class ChainMetadataManager {
|
|
|
193
212
|
return rpcUrls[index];
|
|
194
213
|
}
|
|
195
214
|
/**
|
|
196
|
-
* Get an RPC URL for a given chain name
|
|
215
|
+
* Get an RPC URL for a given chain name or domain id
|
|
197
216
|
* @throws if chain's metadata has not been set
|
|
198
217
|
*/
|
|
199
218
|
getRpcUrl(chainNameOrId, index = 0) {
|
|
@@ -203,14 +222,14 @@ export class ChainMetadataManager {
|
|
|
203
222
|
return http;
|
|
204
223
|
}
|
|
205
224
|
/**
|
|
206
|
-
* Get an RPC concurrency level for a given chain name
|
|
225
|
+
* Get an RPC concurrency level for a given chain name or domain id
|
|
207
226
|
*/
|
|
208
227
|
tryGetRpcConcurrency(chainNameOrId, index = 0) {
|
|
209
228
|
const { concurrency } = this.getRpc(chainNameOrId, index);
|
|
210
229
|
return concurrency ?? null;
|
|
211
230
|
}
|
|
212
231
|
/**
|
|
213
|
-
* Get a block explorer URL for a given chain name
|
|
232
|
+
* Get a block explorer URL for a given chain name or domain id
|
|
214
233
|
*/
|
|
215
234
|
tryGetExplorerUrl(chainNameOrId) {
|
|
216
235
|
const metadata = this.tryGetChainMetadata(chainNameOrId);
|
|
@@ -219,7 +238,7 @@ export class ChainMetadataManager {
|
|
|
219
238
|
return getExplorerBaseUrl(metadata);
|
|
220
239
|
}
|
|
221
240
|
/**
|
|
222
|
-
* Get a block explorer URL for a given chain name
|
|
241
|
+
* Get a block explorer URL for a given chain name or domain id
|
|
223
242
|
* @throws if chain's metadata or block explorer data has no been set
|
|
224
243
|
*/
|
|
225
244
|
getExplorerUrl(chainNameOrId) {
|
|
@@ -229,7 +248,7 @@ export class ChainMetadataManager {
|
|
|
229
248
|
return url;
|
|
230
249
|
}
|
|
231
250
|
/**
|
|
232
|
-
* Get a block explorer's API for a given chain name
|
|
251
|
+
* Get a block explorer's API for a given chain name or domain id
|
|
233
252
|
*/
|
|
234
253
|
tryGetExplorerApi(chainNameOrId) {
|
|
235
254
|
const metadata = this.tryGetChainMetadata(chainNameOrId);
|
|
@@ -238,7 +257,7 @@ export class ChainMetadataManager {
|
|
|
238
257
|
return getExplorerApi(metadata);
|
|
239
258
|
}
|
|
240
259
|
/**
|
|
241
|
-
* Get a block explorer API for a given chain name
|
|
260
|
+
* Get a block explorer API for a given chain name or domain id
|
|
242
261
|
* @throws if chain's metadata or block explorer data has no been set
|
|
243
262
|
*/
|
|
244
263
|
getExplorerApi(chainNameOrId) {
|
|
@@ -248,7 +267,7 @@ export class ChainMetadataManager {
|
|
|
248
267
|
return explorerApi;
|
|
249
268
|
}
|
|
250
269
|
/**
|
|
251
|
-
* Get a block explorer's API URL for a given chain name
|
|
270
|
+
* Get a block explorer's API URL for a given chain name or domain id
|
|
252
271
|
*/
|
|
253
272
|
tryGetExplorerApiUrl(chainNameOrId) {
|
|
254
273
|
const metadata = this.tryGetChainMetadata(chainNameOrId);
|
|
@@ -257,7 +276,7 @@ export class ChainMetadataManager {
|
|
|
257
276
|
return getExplorerApiUrl(metadata);
|
|
258
277
|
}
|
|
259
278
|
/**
|
|
260
|
-
* Get a block explorer API URL for a given chain name
|
|
279
|
+
* Get a block explorer API URL for a given chain name or domain id
|
|
261
280
|
* @throws if chain's metadata or block explorer data has no been set
|
|
262
281
|
*/
|
|
263
282
|
getExplorerApiUrl(chainNameOrId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainMetadataManager.js","sourceRoot":"","sources":["../../src/metadata/ChainMetadataManager.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"ChainMetadataManager.js","sourceRoot":"","sources":["../../src/metadata/ChainMetadataManager.ts"],"names":[],"mappings":"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"}
|