@hyperlane-xyz/registry 1.0.6 → 1.0.7
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/chainAddresses.d.ts +36 -0
- package/dist/chainAddresses.js +38 -2
- package/dist/chainMetadata.js +64 -0
- package/dist/chains/blast/addresses.d.ts +18 -0
- package/dist/chains/blast/addresses.js +18 -0
- package/dist/chains/blast/addresses.json +18 -0
- package/dist/chains/blast/addresses.yaml +16 -0
- package/dist/chains/blast/index.d.ts +2 -0
- package/dist/chains/blast/index.js +2 -0
- package/dist/chains/blast/logo.svg +1 -0
- package/dist/chains/blast/metadata.d.ts +2 -0
- package/dist/chains/blast/metadata.js +32 -0
- package/dist/chains/blast/metadata.json +32 -0
- package/dist/chains/blast/metadata.yaml +23 -0
- package/dist/chains/ethereum/addresses.js +1 -1
- package/dist/chains/ethereum/addresses.json +1 -1
- package/dist/chains/ethereum/addresses.yaml +1 -1
- package/dist/chains/mantapacific/addresses.js +1 -1
- package/dist/chains/mantapacific/addresses.json +1 -1
- package/dist/chains/mantapacific/addresses.yaml +1 -1
- package/dist/chains/mode/addresses.d.ts +18 -0
- package/dist/chains/mode/addresses.js +18 -0
- package/dist/chains/mode/addresses.json +18 -0
- package/dist/chains/mode/addresses.yaml +16 -0
- package/dist/chains/mode/index.d.ts +2 -0
- package/dist/chains/mode/index.js +2 -0
- package/dist/chains/mode/logo.svg +1 -0
- package/dist/chains/mode/metadata.d.ts +2 -0
- package/dist/chains/mode/metadata.js +32 -0
- package/dist/chains/mode/metadata.json +32 -0
- package/dist/chains/mode/metadata.yaml +22 -0
- package/dist/consts.d.ts +3 -1
- package/dist/consts.js +3 -1
- package/dist/coreChainAddresses.js +2 -2
- package/dist/index.d.ts +6 -1
- package/dist/index.js +6 -1
- package/dist/registry/BaseRegistry.d.ts +12 -6
- package/dist/registry/BaseRegistry.js +16 -3
- package/dist/registry/GithubRegistry.d.ts +4 -2
- package/dist/registry/GithubRegistry.js +25 -23
- package/dist/registry/IRegistry.d.ts +6 -4
- package/dist/registry/LocalRegistry.d.ts +2 -2
- package/dist/registry/LocalRegistry.js +14 -5
- package/dist/registry/warp-utils.d.ts +3 -0
- package/dist/registry/warp-utils.js +22 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +10 -0
- package/package.json +1 -1
package/dist/chainAddresses.d.ts
CHANGED
|
@@ -105,6 +105,24 @@ export declare const chainAddresses: {
|
|
|
105
105
|
timelockController: string;
|
|
106
106
|
validatorAnnounce: string;
|
|
107
107
|
};
|
|
108
|
+
blast: {
|
|
109
|
+
domainRoutingIsmFactory: string;
|
|
110
|
+
fallbackRoutingHook: string;
|
|
111
|
+
interchainGasPaymaster: string;
|
|
112
|
+
interchainSecurityModule: string;
|
|
113
|
+
mailbox: string;
|
|
114
|
+
merkleTreeHook: string;
|
|
115
|
+
pausableHook: string;
|
|
116
|
+
protocolFee: string;
|
|
117
|
+
proxyAdmin: string;
|
|
118
|
+
staticAggregationHookFactory: string;
|
|
119
|
+
staticAggregationIsmFactory: string;
|
|
120
|
+
staticMerkleRootMultisigIsmFactory: string;
|
|
121
|
+
staticMessageIdMultisigIsmFactory: string;
|
|
122
|
+
storageGasOracle: string;
|
|
123
|
+
testRecipient: string;
|
|
124
|
+
validatorAnnounce: string;
|
|
125
|
+
};
|
|
108
126
|
bsc: {
|
|
109
127
|
aggregationHook: string;
|
|
110
128
|
domainRoutingIsmFactory: string;
|
|
@@ -290,6 +308,24 @@ export declare const chainAddresses: {
|
|
|
290
308
|
timelockController: string;
|
|
291
309
|
validatorAnnounce: string;
|
|
292
310
|
};
|
|
311
|
+
mode: {
|
|
312
|
+
domainRoutingIsmFactory: string;
|
|
313
|
+
fallbackRoutingHook: string;
|
|
314
|
+
interchainGasPaymaster: string;
|
|
315
|
+
interchainSecurityModule: string;
|
|
316
|
+
mailbox: string;
|
|
317
|
+
merkleTreeHook: string;
|
|
318
|
+
pausableHook: string;
|
|
319
|
+
protocolFee: string;
|
|
320
|
+
proxyAdmin: string;
|
|
321
|
+
staticAggregationHookFactory: string;
|
|
322
|
+
staticAggregationIsmFactory: string;
|
|
323
|
+
staticMerkleRootMultisigIsmFactory: string;
|
|
324
|
+
staticMessageIdMultisigIsmFactory: string;
|
|
325
|
+
storageGasOracle: string;
|
|
326
|
+
testRecipient: string;
|
|
327
|
+
validatorAnnounce: string;
|
|
328
|
+
};
|
|
293
329
|
moonbeam: {
|
|
294
330
|
aggregationHook: string;
|
|
295
331
|
domainRoutingIsmFactory: string;
|
package/dist/chainAddresses.js
CHANGED
|
@@ -105,6 +105,24 @@ export const chainAddresses = {
|
|
|
105
105
|
"timelockController": "0x0000000000000000000000000000000000000000",
|
|
106
106
|
"validatorAnnounce": "0x182E8d7c5F1B06201b102123FC7dF0EaeB445a7B"
|
|
107
107
|
},
|
|
108
|
+
"blast": {
|
|
109
|
+
"domainRoutingIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
|
|
110
|
+
"fallbackRoutingHook": "0x6Fae4D9935E2fcb11fC79a64e917fb2BF14DaFaa",
|
|
111
|
+
"interchainGasPaymaster": "0xB3fCcD379ad66CED0c91028520C64226611A48c9",
|
|
112
|
+
"interchainSecurityModule": "0x0986f6D82A47045788b0ce8EF68f6C0D77726854",
|
|
113
|
+
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
|
|
114
|
+
"merkleTreeHook": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
|
|
115
|
+
"pausableHook": "0xE0C452DDA7506f0F4dE5C8C1d383F7aD866eA4F0",
|
|
116
|
+
"protocolFee": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
|
|
117
|
+
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
|
|
118
|
+
"staticAggregationHookFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
|
|
119
|
+
"staticAggregationIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
|
|
120
|
+
"staticMerkleRootMultisigIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
|
|
121
|
+
"staticMessageIdMultisigIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
|
|
122
|
+
"storageGasOracle": "0xBDa330Ea8F3005C421C8088e638fBB64fA71b9e0",
|
|
123
|
+
"testRecipient": "0x17E216fBb22dF4ef8A6640ae9Cb147C92710ac84",
|
|
124
|
+
"validatorAnnounce": "0xFC62DeF1f08793aBf0E67f69257c6be258194F72"
|
|
125
|
+
},
|
|
108
126
|
"bsc": {
|
|
109
127
|
"aggregationHook": "0x402Fc106576462a892355d69ACF03D46A888ae88",
|
|
110
128
|
"domainRoutingIsmFactory": "0xe6Af5720d34213C805C08e2470aea979e3F72F75",
|
|
@@ -181,7 +199,7 @@ export const chainAddresses = {
|
|
|
181
199
|
"interchainAccountIsm": "0x609707355a53d2aAb6366f48E2b607C599D26B29",
|
|
182
200
|
"interchainAccountRouter": "0x8dBae9B1616c46A20591fE0006Bf015E28ca5cC9",
|
|
183
201
|
"interchainGasPaymaster": "0x9e6B1022bE9BBF5aFd152483DAD9b88911bC8611",
|
|
184
|
-
"interchainSecurityModule": "
|
|
202
|
+
"interchainSecurityModule": "0xB42b88243F749F47697F01Ae1cbBCA9d4763902a",
|
|
185
203
|
"mailbox": "0xc005dc82818d67AF737725bD4bf75435d065D239",
|
|
186
204
|
"merkleTreeHook": "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA",
|
|
187
205
|
"pausableHook": "0x3A66Dc852e56d3748838b3C27CF381105b83705b",
|
|
@@ -274,7 +292,7 @@ export const chainAddresses = {
|
|
|
274
292
|
"interchainAccountIsm": "0xA34ceDf9068C5deE726C67A4e1DCfCc2D6E2A7fD",
|
|
275
293
|
"interchainAccountRouter": "0x0f6fF770Eda6Ba1433C39cCf47d4059b254224Aa",
|
|
276
294
|
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
|
|
277
|
-
"interchainSecurityModule": "
|
|
295
|
+
"interchainSecurityModule": "0xEda7cCD2A8CF717dc997D0002e363e4D10bF5c0d",
|
|
278
296
|
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
|
|
279
297
|
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
|
|
280
298
|
"pausableHook": "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E",
|
|
@@ -290,6 +308,24 @@ export const chainAddresses = {
|
|
|
290
308
|
"timelockController": "0x0000000000000000000000000000000000000000",
|
|
291
309
|
"validatorAnnounce": "0x2fa5F5C96419C222cDbCeC797D696e6cE428A7A9"
|
|
292
310
|
},
|
|
311
|
+
"mode": {
|
|
312
|
+
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
|
|
313
|
+
"fallbackRoutingHook": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA",
|
|
314
|
+
"interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d",
|
|
315
|
+
"interchainSecurityModule": "0x8dfE6790DbB2Ecc1bEdb0eECfc1Ff467Ae5d8C89",
|
|
316
|
+
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
|
|
317
|
+
"merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6",
|
|
318
|
+
"pausableHook": "0xA1ac41d8A663fd317cc3BD94C7de92dC4BA4a882",
|
|
319
|
+
"protocolFee": "0xea820f9BCFD5E16a0dd42071EB61A29874Ad81A4",
|
|
320
|
+
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
|
|
321
|
+
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
|
|
322
|
+
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
|
|
323
|
+
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
|
|
324
|
+
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
|
|
325
|
+
"storageGasOracle": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
|
|
326
|
+
"testRecipient": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
|
|
327
|
+
"validatorAnnounce": "0x48083C69f5a42c6B69ABbAd48AE195BD36770ee2"
|
|
328
|
+
},
|
|
293
329
|
"moonbeam": {
|
|
294
330
|
"aggregationHook": "0x23cca255aE83F57F39EAf9D14fB9FdaDF22D5863",
|
|
295
331
|
"domainRoutingIsmFactory": "0x8061Af3A459093540d17823D651BC5E2A92669a7",
|
package/dist/chainMetadata.js
CHANGED
|
@@ -179,6 +179,38 @@ export const chainMetadata = {
|
|
|
179
179
|
}
|
|
180
180
|
]
|
|
181
181
|
},
|
|
182
|
+
"blast": {
|
|
183
|
+
"blockExplorers": [
|
|
184
|
+
{
|
|
185
|
+
"apiUrl": "https://api.routescan.io/v2/network/mainnet/evm/81457/etherscan/api",
|
|
186
|
+
"family": "routescan",
|
|
187
|
+
"name": "Blast Explorer",
|
|
188
|
+
"url": "https://blastexplorer.io"
|
|
189
|
+
}
|
|
190
|
+
],
|
|
191
|
+
"blocks": {
|
|
192
|
+
"confirmations": 1,
|
|
193
|
+
"estimateBlockTime": 2,
|
|
194
|
+
"reorgPeriod": 1
|
|
195
|
+
},
|
|
196
|
+
"chainId": 81457,
|
|
197
|
+
"displayName": "Blast",
|
|
198
|
+
"domainId": 81457,
|
|
199
|
+
"gasCurrencyCoinGeckoId": "ethereum",
|
|
200
|
+
"name": "blast",
|
|
201
|
+
"nativeToken": {
|
|
202
|
+
"decimals": 18,
|
|
203
|
+
"name": "Ether",
|
|
204
|
+
"symbol": "ETH"
|
|
205
|
+
},
|
|
206
|
+
"protocol": "ethereum",
|
|
207
|
+
"rpcUrls": [
|
|
208
|
+
{
|
|
209
|
+
"http": "https://rpc.blast.io"
|
|
210
|
+
}
|
|
211
|
+
],
|
|
212
|
+
"technicalStack": "other"
|
|
213
|
+
},
|
|
182
214
|
"bsc": {
|
|
183
215
|
"blockExplorers": [
|
|
184
216
|
{
|
|
@@ -555,6 +587,38 @@ export const chainMetadata = {
|
|
|
555
587
|
}
|
|
556
588
|
]
|
|
557
589
|
},
|
|
590
|
+
"mode": {
|
|
591
|
+
"blockExplorers": [
|
|
592
|
+
{
|
|
593
|
+
"apiUrl": "https://explorer.mode.network/api",
|
|
594
|
+
"family": "blockscout",
|
|
595
|
+
"name": "Mode Explorer",
|
|
596
|
+
"url": "https://explorer.mode.network"
|
|
597
|
+
}
|
|
598
|
+
],
|
|
599
|
+
"blocks": {
|
|
600
|
+
"confirmations": 1,
|
|
601
|
+
"estimateBlockTime": 2,
|
|
602
|
+
"reorgPeriod": 1
|
|
603
|
+
},
|
|
604
|
+
"chainId": 34443,
|
|
605
|
+
"displayName": "Mode",
|
|
606
|
+
"domainId": 34443,
|
|
607
|
+
"gasCurrencyCoinGeckoId": "ethereum",
|
|
608
|
+
"name": "mode",
|
|
609
|
+
"nativeToken": {
|
|
610
|
+
"decimals": 18,
|
|
611
|
+
"name": "Ether",
|
|
612
|
+
"symbol": "ETH"
|
|
613
|
+
},
|
|
614
|
+
"protocol": "ethereum",
|
|
615
|
+
"rpcUrls": [
|
|
616
|
+
{
|
|
617
|
+
"http": "https://mainnet.mode.network"
|
|
618
|
+
}
|
|
619
|
+
],
|
|
620
|
+
"technicalStack": "other"
|
|
621
|
+
},
|
|
558
622
|
"moonbeam": {
|
|
559
623
|
"blockExplorers": [
|
|
560
624
|
{
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const addresses: {
|
|
2
|
+
domainRoutingIsmFactory: string;
|
|
3
|
+
fallbackRoutingHook: string;
|
|
4
|
+
interchainGasPaymaster: string;
|
|
5
|
+
interchainSecurityModule: string;
|
|
6
|
+
mailbox: string;
|
|
7
|
+
merkleTreeHook: string;
|
|
8
|
+
pausableHook: string;
|
|
9
|
+
protocolFee: string;
|
|
10
|
+
proxyAdmin: string;
|
|
11
|
+
staticAggregationHookFactory: string;
|
|
12
|
+
staticAggregationIsmFactory: string;
|
|
13
|
+
staticMerkleRootMultisigIsmFactory: string;
|
|
14
|
+
staticMessageIdMultisigIsmFactory: string;
|
|
15
|
+
storageGasOracle: string;
|
|
16
|
+
testRecipient: string;
|
|
17
|
+
validatorAnnounce: string;
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const addresses = {
|
|
2
|
+
"domainRoutingIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
|
|
3
|
+
"fallbackRoutingHook": "0x6Fae4D9935E2fcb11fC79a64e917fb2BF14DaFaa",
|
|
4
|
+
"interchainGasPaymaster": "0xB3fCcD379ad66CED0c91028520C64226611A48c9",
|
|
5
|
+
"interchainSecurityModule": "0x0986f6D82A47045788b0ce8EF68f6C0D77726854",
|
|
6
|
+
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
|
|
7
|
+
"merkleTreeHook": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
|
|
8
|
+
"pausableHook": "0xE0C452DDA7506f0F4dE5C8C1d383F7aD866eA4F0",
|
|
9
|
+
"protocolFee": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
|
|
10
|
+
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
|
|
11
|
+
"staticAggregationHookFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
|
|
12
|
+
"staticAggregationIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
|
|
13
|
+
"staticMerkleRootMultisigIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
|
|
14
|
+
"staticMessageIdMultisigIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
|
|
15
|
+
"storageGasOracle": "0xBDa330Ea8F3005C421C8088e638fBB64fA71b9e0",
|
|
16
|
+
"testRecipient": "0x17E216fBb22dF4ef8A6640ae9Cb147C92710ac84",
|
|
17
|
+
"validatorAnnounce": "0xFC62DeF1f08793aBf0E67f69257c6be258194F72"
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domainRoutingIsmFactory": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
|
|
3
|
+
"fallbackRoutingHook": "0x6Fae4D9935E2fcb11fC79a64e917fb2BF14DaFaa",
|
|
4
|
+
"interchainGasPaymaster": "0xB3fCcD379ad66CED0c91028520C64226611A48c9",
|
|
5
|
+
"interchainSecurityModule": "0x0986f6D82A47045788b0ce8EF68f6C0D77726854",
|
|
6
|
+
"mailbox": "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7",
|
|
7
|
+
"merkleTreeHook": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
|
|
8
|
+
"pausableHook": "0xE0C452DDA7506f0F4dE5C8C1d383F7aD866eA4F0",
|
|
9
|
+
"protocolFee": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
|
|
10
|
+
"proxyAdmin": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
|
|
11
|
+
"staticAggregationHookFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
|
|
12
|
+
"staticAggregationIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
|
|
13
|
+
"staticMerkleRootMultisigIsmFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
|
|
14
|
+
"staticMessageIdMultisigIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
|
|
15
|
+
"storageGasOracle": "0xBDa330Ea8F3005C421C8088e638fBB64fA71b9e0",
|
|
16
|
+
"testRecipient": "0x17E216fBb22dF4ef8A6640ae9Cb147C92710ac84",
|
|
17
|
+
"validatorAnnounce": "0xFC62DeF1f08793aBf0E67f69257c6be258194F72"
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
domainRoutingIsmFactory: "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7"
|
|
2
|
+
fallbackRoutingHook: "0x6Fae4D9935E2fcb11fC79a64e917fb2BF14DaFaa"
|
|
3
|
+
interchainGasPaymaster: "0xB3fCcD379ad66CED0c91028520C64226611A48c9"
|
|
4
|
+
interchainSecurityModule: "0x0986f6D82A47045788b0ce8EF68f6C0D77726854"
|
|
5
|
+
mailbox: "0x3a867fCfFeC2B790970eeBDC9023E75B0a172aa7"
|
|
6
|
+
merkleTreeHook: "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465"
|
|
7
|
+
pausableHook: "0xE0C452DDA7506f0F4dE5C8C1d383F7aD866eA4F0"
|
|
8
|
+
protocolFee: "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0"
|
|
9
|
+
proxyAdmin: "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D"
|
|
10
|
+
staticAggregationHookFactory: "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1"
|
|
11
|
+
staticAggregationIsmFactory: "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004"
|
|
12
|
+
staticMerkleRootMultisigIsmFactory: "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6"
|
|
13
|
+
staticMessageIdMultisigIsmFactory: "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908"
|
|
14
|
+
storageGasOracle: "0xBDa330Ea8F3005C421C8088e638fBB64fA71b9e0"
|
|
15
|
+
testRecipient: "0x17E216fBb22dF4ef8A6640ae9Cb147C92710ac84"
|
|
16
|
+
validatorAnnounce: "0xFC62DeF1f08793aBf0E67f69257c6be258194F72"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="14.6 46.1 185.8 122.8"><path fill="#FCFC03" d="m161 106.4 29.3-14.6 10.1-31-20.2-14.7H45.7L14.6 69.2h158.1l-8.4 26h-63.4l-6.1 19h63.4l-17.8 54.7 29.7-14.7 10.6-32.8-19.9-14.6.2-.4Z"/><path fill="#FCFC03" d="m59.3 145.4 18.3-57-20.3-15.2-30.5 95.7h113.6l7.6-23.5H59.3Z"/></svg>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const metadata = {
|
|
2
|
+
"blockExplorers": [
|
|
3
|
+
{
|
|
4
|
+
"apiUrl": "https://api.routescan.io/v2/network/mainnet/evm/81457/etherscan/api",
|
|
5
|
+
"family": "routescan",
|
|
6
|
+
"name": "Blast Explorer",
|
|
7
|
+
"url": "https://blastexplorer.io"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"blocks": {
|
|
11
|
+
"confirmations": 1,
|
|
12
|
+
"estimateBlockTime": 2,
|
|
13
|
+
"reorgPeriod": 1
|
|
14
|
+
},
|
|
15
|
+
"chainId": 81457,
|
|
16
|
+
"displayName": "Blast",
|
|
17
|
+
"domainId": 81457,
|
|
18
|
+
"gasCurrencyCoinGeckoId": "ethereum",
|
|
19
|
+
"name": "blast",
|
|
20
|
+
"nativeToken": {
|
|
21
|
+
"decimals": 18,
|
|
22
|
+
"name": "Ether",
|
|
23
|
+
"symbol": "ETH"
|
|
24
|
+
},
|
|
25
|
+
"protocol": "ethereum",
|
|
26
|
+
"rpcUrls": [
|
|
27
|
+
{
|
|
28
|
+
"http": "https://rpc.blast.io"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"technicalStack": "other"
|
|
32
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"blockExplorers": [
|
|
3
|
+
{
|
|
4
|
+
"apiUrl": "https://api.routescan.io/v2/network/mainnet/evm/81457/etherscan/api",
|
|
5
|
+
"family": "routescan",
|
|
6
|
+
"name": "Blast Explorer",
|
|
7
|
+
"url": "https://blastexplorer.io"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"blocks": {
|
|
11
|
+
"confirmations": 1,
|
|
12
|
+
"estimateBlockTime": 2,
|
|
13
|
+
"reorgPeriod": 1
|
|
14
|
+
},
|
|
15
|
+
"chainId": 81457,
|
|
16
|
+
"displayName": "Blast",
|
|
17
|
+
"domainId": 81457,
|
|
18
|
+
"gasCurrencyCoinGeckoId": "ethereum",
|
|
19
|
+
"name": "blast",
|
|
20
|
+
"nativeToken": {
|
|
21
|
+
"decimals": 18,
|
|
22
|
+
"name": "Ether",
|
|
23
|
+
"symbol": "ETH"
|
|
24
|
+
},
|
|
25
|
+
"protocol": "ethereum",
|
|
26
|
+
"rpcUrls": [
|
|
27
|
+
{
|
|
28
|
+
"http": "https://rpc.blast.io"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"technicalStack": "other"
|
|
32
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
blockExplorers:
|
|
3
|
+
- apiUrl: https://api.routescan.io/v2/network/mainnet/evm/81457/etherscan/api
|
|
4
|
+
family: routescan
|
|
5
|
+
name: Blast Explorer
|
|
6
|
+
url: https://blastexplorer.io
|
|
7
|
+
blocks:
|
|
8
|
+
confirmations: 1
|
|
9
|
+
estimateBlockTime: 2
|
|
10
|
+
reorgPeriod: 1
|
|
11
|
+
chainId: 81457
|
|
12
|
+
displayName: Blast
|
|
13
|
+
domainId: 81457
|
|
14
|
+
gasCurrencyCoinGeckoId: ethereum
|
|
15
|
+
name: blast
|
|
16
|
+
nativeToken:
|
|
17
|
+
decimals: 18
|
|
18
|
+
name: Ether
|
|
19
|
+
symbol: ETH
|
|
20
|
+
protocol: ethereum
|
|
21
|
+
rpcUrls:
|
|
22
|
+
- http: https://rpc.blast.io
|
|
23
|
+
technicalStack: other
|
|
@@ -5,7 +5,7 @@ export const addresses = {
|
|
|
5
5
|
"interchainAccountIsm": "0x609707355a53d2aAb6366f48E2b607C599D26B29",
|
|
6
6
|
"interchainAccountRouter": "0x8dBae9B1616c46A20591fE0006Bf015E28ca5cC9",
|
|
7
7
|
"interchainGasPaymaster": "0x9e6B1022bE9BBF5aFd152483DAD9b88911bC8611",
|
|
8
|
-
"interchainSecurityModule": "
|
|
8
|
+
"interchainSecurityModule": "0xB42b88243F749F47697F01Ae1cbBCA9d4763902a",
|
|
9
9
|
"mailbox": "0xc005dc82818d67AF737725bD4bf75435d065D239",
|
|
10
10
|
"merkleTreeHook": "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA",
|
|
11
11
|
"pausableHook": "0x3A66Dc852e56d3748838b3C27CF381105b83705b",
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"interchainAccountIsm": "0x609707355a53d2aAb6366f48E2b607C599D26B29",
|
|
6
6
|
"interchainAccountRouter": "0x8dBae9B1616c46A20591fE0006Bf015E28ca5cC9",
|
|
7
7
|
"interchainGasPaymaster": "0x9e6B1022bE9BBF5aFd152483DAD9b88911bC8611",
|
|
8
|
-
"interchainSecurityModule": "
|
|
8
|
+
"interchainSecurityModule": "0xB42b88243F749F47697F01Ae1cbBCA9d4763902a",
|
|
9
9
|
"mailbox": "0xc005dc82818d67AF737725bD4bf75435d065D239",
|
|
10
10
|
"merkleTreeHook": "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA",
|
|
11
11
|
"pausableHook": "0x3A66Dc852e56d3748838b3C27CF381105b83705b",
|
|
@@ -4,7 +4,7 @@ fallbackRoutingHook: "0x571f1435613381208477ac5d6974310d88AC7cB7"
|
|
|
4
4
|
interchainAccountIsm: "0x609707355a53d2aAb6366f48E2b607C599D26B29"
|
|
5
5
|
interchainAccountRouter: "0x8dBae9B1616c46A20591fE0006Bf015E28ca5cC9"
|
|
6
6
|
interchainGasPaymaster: "0x9e6B1022bE9BBF5aFd152483DAD9b88911bC8611"
|
|
7
|
-
interchainSecurityModule: "
|
|
7
|
+
interchainSecurityModule: "0xB42b88243F749F47697F01Ae1cbBCA9d4763902a"
|
|
8
8
|
mailbox: "0xc005dc82818d67AF737725bD4bf75435d065D239"
|
|
9
9
|
merkleTreeHook: "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA"
|
|
10
10
|
pausableHook: "0x3A66Dc852e56d3748838b3C27CF381105b83705b"
|
|
@@ -6,7 +6,7 @@ export const addresses = {
|
|
|
6
6
|
"interchainAccountIsm": "0xA34ceDf9068C5deE726C67A4e1DCfCc2D6E2A7fD",
|
|
7
7
|
"interchainAccountRouter": "0x0f6fF770Eda6Ba1433C39cCf47d4059b254224Aa",
|
|
8
8
|
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
|
|
9
|
-
"interchainSecurityModule": "
|
|
9
|
+
"interchainSecurityModule": "0xEda7cCD2A8CF717dc997D0002e363e4D10bF5c0d",
|
|
10
10
|
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
|
|
11
11
|
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
|
|
12
12
|
"pausableHook": "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E",
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"interchainAccountIsm": "0xA34ceDf9068C5deE726C67A4e1DCfCc2D6E2A7fD",
|
|
7
7
|
"interchainAccountRouter": "0x0f6fF770Eda6Ba1433C39cCf47d4059b254224Aa",
|
|
8
8
|
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
|
|
9
|
-
"interchainSecurityModule": "
|
|
9
|
+
"interchainSecurityModule": "0xEda7cCD2A8CF717dc997D0002e363e4D10bF5c0d",
|
|
10
10
|
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
|
|
11
11
|
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
|
|
12
12
|
"pausableHook": "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E",
|
|
@@ -5,7 +5,7 @@ fallbackRoutingHook: "0xD1E267d2d7876e97E217BfE61c34AB50FEF52807"
|
|
|
5
5
|
interchainAccountIsm: "0xA34ceDf9068C5deE726C67A4e1DCfCc2D6E2A7fD"
|
|
6
6
|
interchainAccountRouter: "0x0f6fF770Eda6Ba1433C39cCf47d4059b254224Aa"
|
|
7
7
|
interchainGasPaymaster: "0x0D63128D887159d63De29497dfa45AFc7C699AE4"
|
|
8
|
-
interchainSecurityModule: "
|
|
8
|
+
interchainSecurityModule: "0xEda7cCD2A8CF717dc997D0002e363e4D10bF5c0d"
|
|
9
9
|
mailbox: "0x3a464f746D23Ab22155710f44dB16dcA53e0775E"
|
|
10
10
|
merkleTreeHook: "0x149db7afD694722747035d5AEC7007ccb6F8f112"
|
|
11
11
|
pausableHook: "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const addresses: {
|
|
2
|
+
domainRoutingIsmFactory: string;
|
|
3
|
+
fallbackRoutingHook: string;
|
|
4
|
+
interchainGasPaymaster: string;
|
|
5
|
+
interchainSecurityModule: string;
|
|
6
|
+
mailbox: string;
|
|
7
|
+
merkleTreeHook: string;
|
|
8
|
+
pausableHook: string;
|
|
9
|
+
protocolFee: string;
|
|
10
|
+
proxyAdmin: string;
|
|
11
|
+
staticAggregationHookFactory: string;
|
|
12
|
+
staticAggregationIsmFactory: string;
|
|
13
|
+
staticMerkleRootMultisigIsmFactory: string;
|
|
14
|
+
staticMessageIdMultisigIsmFactory: string;
|
|
15
|
+
storageGasOracle: string;
|
|
16
|
+
testRecipient: string;
|
|
17
|
+
validatorAnnounce: string;
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const addresses = {
|
|
2
|
+
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
|
|
3
|
+
"fallbackRoutingHook": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA",
|
|
4
|
+
"interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d",
|
|
5
|
+
"interchainSecurityModule": "0x8dfE6790DbB2Ecc1bEdb0eECfc1Ff467Ae5d8C89",
|
|
6
|
+
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
|
|
7
|
+
"merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6",
|
|
8
|
+
"pausableHook": "0xA1ac41d8A663fd317cc3BD94C7de92dC4BA4a882",
|
|
9
|
+
"protocolFee": "0xea820f9BCFD5E16a0dd42071EB61A29874Ad81A4",
|
|
10
|
+
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
|
|
11
|
+
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
|
|
12
|
+
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
|
|
13
|
+
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
|
|
14
|
+
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
|
|
15
|
+
"storageGasOracle": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
|
|
16
|
+
"testRecipient": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
|
|
17
|
+
"validatorAnnounce": "0x48083C69f5a42c6B69ABbAd48AE195BD36770ee2"
|
|
18
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
|
|
3
|
+
"fallbackRoutingHook": "0x8F1E22d309baa69D398a03cc88E9b46037e988AA",
|
|
4
|
+
"interchainGasPaymaster": "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d",
|
|
5
|
+
"interchainSecurityModule": "0x8dfE6790DbB2Ecc1bEdb0eECfc1Ff467Ae5d8C89",
|
|
6
|
+
"mailbox": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
|
|
7
|
+
"merkleTreeHook": "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6",
|
|
8
|
+
"pausableHook": "0xA1ac41d8A663fd317cc3BD94C7de92dC4BA4a882",
|
|
9
|
+
"protocolFee": "0xea820f9BCFD5E16a0dd42071EB61A29874Ad81A4",
|
|
10
|
+
"proxyAdmin": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
|
|
11
|
+
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
|
|
12
|
+
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
|
|
13
|
+
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
|
|
14
|
+
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
|
|
15
|
+
"storageGasOracle": "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465",
|
|
16
|
+
"testRecipient": "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0",
|
|
17
|
+
"validatorAnnounce": "0x48083C69f5a42c6B69ABbAd48AE195BD36770ee2"
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
domainRoutingIsmFactory: "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908"
|
|
2
|
+
fallbackRoutingHook: "0x8F1E22d309baa69D398a03cc88E9b46037e988AA"
|
|
3
|
+
interchainGasPaymaster: "0x931dFCc8c1141D6F532FD023bd87DAe0080c835d"
|
|
4
|
+
interchainSecurityModule: "0x8dfE6790DbB2Ecc1bEdb0eECfc1Ff467Ae5d8C89"
|
|
5
|
+
mailbox: "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7"
|
|
6
|
+
merkleTreeHook: "0xE2ee936bEa8e42671c400aC96dE198E06F2bA2A6"
|
|
7
|
+
pausableHook: "0xA1ac41d8A663fd317cc3BD94C7de92dC4BA4a882"
|
|
8
|
+
protocolFee: "0xea820f9BCFD5E16a0dd42071EB61A29874Ad81A4"
|
|
9
|
+
proxyAdmin: "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004"
|
|
10
|
+
staticAggregationHookFactory: "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6"
|
|
11
|
+
staticAggregationIsmFactory: "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A"
|
|
12
|
+
staticMerkleRootMultisigIsmFactory: "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC"
|
|
13
|
+
staticMessageIdMultisigIsmFactory: "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE"
|
|
14
|
+
storageGasOracle: "0xC9B8ea6230d6687a4b13fD3C0b8f0Ec607B26465"
|
|
15
|
+
testRecipient: "0x12582c7B0f43c6A667CBaA7fA8b112F7fb1E69F0"
|
|
16
|
+
validatorAnnounce: "0x48083C69f5a42c6B69ABbAd48AE195BD36770ee2"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 1000 1000" viewBox="216.2 247.6 568.5 503.2"><path d="M784.2 750.7H673.3V500l44.4-143-31.5-11.2-143.8 404.9H458L314.1 345.8 282.7 357l44.4 143v250.8H216.2V247.6h165.1l102.4 288v84.6h33.5v-84.6l102.4-288h165.1v503.1h-.5z" style="fill:#dffe00"/></svg>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const metadata = {
|
|
2
|
+
"blockExplorers": [
|
|
3
|
+
{
|
|
4
|
+
"apiUrl": "https://explorer.mode.network/api",
|
|
5
|
+
"family": "blockscout",
|
|
6
|
+
"name": "Mode Explorer",
|
|
7
|
+
"url": "https://explorer.mode.network"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"blocks": {
|
|
11
|
+
"confirmations": 1,
|
|
12
|
+
"estimateBlockTime": 2,
|
|
13
|
+
"reorgPeriod": 1
|
|
14
|
+
},
|
|
15
|
+
"chainId": 34443,
|
|
16
|
+
"displayName": "Mode",
|
|
17
|
+
"domainId": 34443,
|
|
18
|
+
"gasCurrencyCoinGeckoId": "ethereum",
|
|
19
|
+
"name": "mode",
|
|
20
|
+
"nativeToken": {
|
|
21
|
+
"decimals": 18,
|
|
22
|
+
"name": "Ether",
|
|
23
|
+
"symbol": "ETH"
|
|
24
|
+
},
|
|
25
|
+
"protocol": "ethereum",
|
|
26
|
+
"rpcUrls": [
|
|
27
|
+
{
|
|
28
|
+
"http": "https://mainnet.mode.network"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"technicalStack": "other"
|
|
32
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"blockExplorers": [
|
|
3
|
+
{
|
|
4
|
+
"apiUrl": "https://explorer.mode.network/api",
|
|
5
|
+
"family": "blockscout",
|
|
6
|
+
"name": "Mode Explorer",
|
|
7
|
+
"url": "https://explorer.mode.network"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"blocks": {
|
|
11
|
+
"confirmations": 1,
|
|
12
|
+
"estimateBlockTime": 2,
|
|
13
|
+
"reorgPeriod": 1
|
|
14
|
+
},
|
|
15
|
+
"chainId": 34443,
|
|
16
|
+
"displayName": "Mode",
|
|
17
|
+
"domainId": 34443,
|
|
18
|
+
"gasCurrencyCoinGeckoId": "ethereum",
|
|
19
|
+
"name": "mode",
|
|
20
|
+
"nativeToken": {
|
|
21
|
+
"decimals": 18,
|
|
22
|
+
"name": "Ether",
|
|
23
|
+
"symbol": "ETH"
|
|
24
|
+
},
|
|
25
|
+
"protocol": "ethereum",
|
|
26
|
+
"rpcUrls": [
|
|
27
|
+
{
|
|
28
|
+
"http": "https://mainnet.mode.network"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"technicalStack": "other"
|
|
32
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
blockExplorers:
|
|
2
|
+
- apiUrl: https://explorer.mode.network/api
|
|
3
|
+
family: blockscout
|
|
4
|
+
name: Mode Explorer
|
|
5
|
+
url: https://explorer.mode.network
|
|
6
|
+
blocks:
|
|
7
|
+
confirmations: 1
|
|
8
|
+
estimateBlockTime: 2
|
|
9
|
+
reorgPeriod: 1
|
|
10
|
+
chainId: 34443
|
|
11
|
+
displayName: Mode
|
|
12
|
+
domainId: 34443
|
|
13
|
+
gasCurrencyCoinGeckoId: ethereum
|
|
14
|
+
name: mode
|
|
15
|
+
nativeToken:
|
|
16
|
+
decimals: 18
|
|
17
|
+
name: Ether
|
|
18
|
+
symbol: ETH
|
|
19
|
+
protocol: ethereum
|
|
20
|
+
rpcUrls:
|
|
21
|
+
- http: https://mainnet.mode.network
|
|
22
|
+
technicalStack: other
|
package/dist/consts.d.ts
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const SCHEMA_REF = "# yaml-language-server: $schema=../schema.json";
|
|
2
|
+
export declare const DEFAULT_GITHUB_REGISTRY = "https://github.com/hyperlane-xyz/hyperlane-registry";
|
|
3
|
+
export declare const GITHUB_FETCH_CONCURRENCY_LIMIT = 5;
|
package/dist/consts.js
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
export const
|
|
1
|
+
export const SCHEMA_REF = '# yaml-language-server: $schema=../schema.json';
|
|
2
|
+
export const DEFAULT_GITHUB_REGISTRY = 'https://github.com/hyperlane-xyz/hyperlane-registry';
|
|
3
|
+
export const GITHUB_FETCH_CONCURRENCY_LIMIT = 5;
|
|
@@ -119,7 +119,7 @@ export const coreChainAddresses = {
|
|
|
119
119
|
"interchainAccountIsm": "0x609707355a53d2aAb6366f48E2b607C599D26B29",
|
|
120
120
|
"interchainAccountRouter": "0x8dBae9B1616c46A20591fE0006Bf015E28ca5cC9",
|
|
121
121
|
"interchainGasPaymaster": "0x9e6B1022bE9BBF5aFd152483DAD9b88911bC8611",
|
|
122
|
-
"interchainSecurityModule": "
|
|
122
|
+
"interchainSecurityModule": "0xB42b88243F749F47697F01Ae1cbBCA9d4763902a",
|
|
123
123
|
"mailbox": "0xc005dc82818d67AF737725bD4bf75435d065D239",
|
|
124
124
|
"merkleTreeHook": "0x48e6c30B97748d1e2e03bf3e9FbE3890ca5f8CCA",
|
|
125
125
|
"pausableHook": "0x3A66Dc852e56d3748838b3C27CF381105b83705b",
|
|
@@ -143,7 +143,7 @@ export const coreChainAddresses = {
|
|
|
143
143
|
"interchainAccountIsm": "0xA34ceDf9068C5deE726C67A4e1DCfCc2D6E2A7fD",
|
|
144
144
|
"interchainAccountRouter": "0x0f6fF770Eda6Ba1433C39cCf47d4059b254224Aa",
|
|
145
145
|
"interchainGasPaymaster": "0x0D63128D887159d63De29497dfa45AFc7C699AE4",
|
|
146
|
-
"interchainSecurityModule": "
|
|
146
|
+
"interchainSecurityModule": "0xEda7cCD2A8CF717dc997D0002e363e4D10bF5c0d",
|
|
147
147
|
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
|
|
148
148
|
"merkleTreeHook": "0x149db7afD694722747035d5AEC7007ccb6F8f112",
|
|
149
149
|
"pausableHook": "0x7556a0E61d577D921Cba8Fca0d7D6299d36E607E",
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { CoreChain, CoreChainName, CoreChains, CoreMainnets, CoreTestnets } from './core/chains.js';
|
|
2
|
-
export {
|
|
2
|
+
export { DEFAULT_GITHUB_REGISTRY } from './consts.js';
|
|
3
|
+
export { BaseRegistry, CHAIN_FILE_REGEX } from './registry/BaseRegistry.js';
|
|
3
4
|
export { GithubRegistry, GithubRegistryOptions } from './registry/GithubRegistry.js';
|
|
4
5
|
export { ChainFiles, IRegistry, RegistryContent, RegistryType } from './registry/IRegistry.js';
|
|
5
6
|
export { ChainAddresses, ChainAddressesSchema } from './types.js';
|
|
@@ -17,6 +18,8 @@ export { metadata as avalanche } from './chains/avalanche/metadata.js';
|
|
|
17
18
|
export { addresses as avalancheAddresses } from './chains/avalanche/addresses.js';
|
|
18
19
|
export { metadata as base } from './chains/base/metadata.js';
|
|
19
20
|
export { addresses as baseAddresses } from './chains/base/addresses.js';
|
|
21
|
+
export { metadata as blast } from './chains/blast/metadata.js';
|
|
22
|
+
export { addresses as blastAddresses } from './chains/blast/addresses.js';
|
|
20
23
|
export { metadata as bsc } from './chains/bsc/metadata.js';
|
|
21
24
|
export { addresses as bscAddresses } from './chains/bsc/addresses.js';
|
|
22
25
|
export { metadata as bsctestnet } from './chains/bsctestnet/metadata.js';
|
|
@@ -36,6 +39,8 @@ export { addresses as inevmAddresses } from './chains/inevm/addresses.js';
|
|
|
36
39
|
export { metadata as injective } from './chains/injective/metadata.js';
|
|
37
40
|
export { metadata as mantapacific } from './chains/mantapacific/metadata.js';
|
|
38
41
|
export { addresses as mantapacificAddresses } from './chains/mantapacific/addresses.js';
|
|
42
|
+
export { metadata as mode } from './chains/mode/metadata.js';
|
|
43
|
+
export { addresses as modeAddresses } from './chains/mode/addresses.js';
|
|
39
44
|
export { metadata as moonbeam } from './chains/moonbeam/metadata.js';
|
|
40
45
|
export { addresses as moonbeamAddresses } from './chains/moonbeam/addresses.js';
|
|
41
46
|
export { metadata as nautilus } from './chains/nautilus/metadata.js';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { CoreChain, CoreChains, CoreMainnets, CoreTestnets } from './core/chains.js';
|
|
2
|
-
export {
|
|
2
|
+
export { DEFAULT_GITHUB_REGISTRY } from './consts.js';
|
|
3
|
+
export { BaseRegistry, CHAIN_FILE_REGEX } from './registry/BaseRegistry.js';
|
|
3
4
|
export { GithubRegistry } from './registry/GithubRegistry.js';
|
|
4
5
|
export { RegistryType } from './registry/IRegistry.js';
|
|
5
6
|
export { ChainAddressesSchema } from './types.js';
|
|
@@ -17,6 +18,8 @@ export { metadata as avalanche } from './chains/avalanche/metadata.js';
|
|
|
17
18
|
export { addresses as avalancheAddresses } from './chains/avalanche/addresses.js';
|
|
18
19
|
export { metadata as base } from './chains/base/metadata.js';
|
|
19
20
|
export { addresses as baseAddresses } from './chains/base/addresses.js';
|
|
21
|
+
export { metadata as blast } from './chains/blast/metadata.js';
|
|
22
|
+
export { addresses as blastAddresses } from './chains/blast/addresses.js';
|
|
20
23
|
export { metadata as bsc } from './chains/bsc/metadata.js';
|
|
21
24
|
export { addresses as bscAddresses } from './chains/bsc/addresses.js';
|
|
22
25
|
export { metadata as bsctestnet } from './chains/bsctestnet/metadata.js';
|
|
@@ -36,6 +39,8 @@ export { addresses as inevmAddresses } from './chains/inevm/addresses.js';
|
|
|
36
39
|
export { metadata as injective } from './chains/injective/metadata.js';
|
|
37
40
|
export { metadata as mantapacific } from './chains/mantapacific/metadata.js';
|
|
38
41
|
export { addresses as mantapacificAddresses } from './chains/mantapacific/addresses.js';
|
|
42
|
+
export { metadata as mode } from './chains/mode/metadata.js';
|
|
43
|
+
export { addresses as modeAddresses } from './chains/mode/addresses.js';
|
|
39
44
|
export { metadata as moonbeam } from './chains/moonbeam/metadata.js';
|
|
40
45
|
export { addresses as moonbeamAddresses } from './chains/moonbeam/addresses.js';
|
|
41
46
|
export { metadata as nautilus } from './chains/nautilus/metadata.js';
|
|
@@ -1,34 +1,40 @@
|
|
|
1
1
|
import type { Logger } from 'pino';
|
|
2
|
-
import type { ChainMap, ChainMetadata, ChainName } from '@hyperlane-xyz/sdk';
|
|
2
|
+
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import type { ChainAddresses, MaybePromise } from '../types.js';
|
|
4
4
|
import type { IRegistry, RegistryContent, RegistryType } from './IRegistry.js';
|
|
5
5
|
export declare const CHAIN_FILE_REGEX: RegExp;
|
|
6
6
|
export declare abstract class BaseRegistry implements IRegistry {
|
|
7
7
|
abstract type: RegistryType;
|
|
8
|
+
readonly uri: string;
|
|
8
9
|
protected readonly logger: Logger;
|
|
9
10
|
protected listContentCache?: RegistryContent;
|
|
10
11
|
protected metadataCache?: ChainMap<ChainMetadata>;
|
|
11
12
|
protected addressCache?: ChainMap<ChainAddresses>;
|
|
12
|
-
constructor({ logger }: {
|
|
13
|
+
constructor({ uri, logger }: {
|
|
14
|
+
uri: string;
|
|
13
15
|
logger?: Logger;
|
|
14
16
|
});
|
|
15
17
|
protected getChainsPath(): string;
|
|
16
|
-
protected
|
|
18
|
+
protected getWarpArtifactsPaths({ tokens }: WarpCoreConfig): {
|
|
19
|
+
configPath: string;
|
|
20
|
+
addressesPath: string;
|
|
21
|
+
};
|
|
17
22
|
abstract listRegistryContent(): MaybePromise<RegistryContent>;
|
|
18
23
|
abstract getChains(): MaybePromise<Array<ChainName>>;
|
|
19
24
|
abstract getMetadata(): MaybePromise<ChainMap<ChainMetadata>>;
|
|
20
25
|
abstract getChainMetadata(chainName: ChainName): MaybePromise<ChainMetadata | null>;
|
|
21
26
|
abstract getAddresses(): MaybePromise<ChainMap<ChainAddresses>>;
|
|
22
27
|
abstract getChainAddresses(chainName: ChainName): MaybePromise<ChainAddresses | null>;
|
|
23
|
-
abstract addChain(
|
|
28
|
+
abstract addChain(chain: {
|
|
24
29
|
chainName: ChainName;
|
|
25
30
|
metadata?: ChainMetadata;
|
|
26
31
|
addresses?: ChainAddresses;
|
|
27
32
|
}): MaybePromise<void>;
|
|
28
|
-
abstract updateChain(
|
|
33
|
+
abstract updateChain(chain: {
|
|
29
34
|
chainName: ChainName;
|
|
30
35
|
metadata?: ChainMetadata;
|
|
31
36
|
addresses?: ChainAddresses;
|
|
32
37
|
}): MaybePromise<void>;
|
|
33
|
-
abstract removeChain(
|
|
38
|
+
abstract removeChain(chain: ChainName): MaybePromise<void>;
|
|
39
|
+
abstract addWarpRoute(config: WarpCoreConfig): MaybePromise<void>;
|
|
34
40
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export const CHAIN_FILE_REGEX = /chains\/([a-z0-9]+)\/([a-z]+)\.yaml/;
|
|
2
2
|
export class BaseRegistry {
|
|
3
|
+
uri;
|
|
3
4
|
logger;
|
|
4
5
|
// Caches
|
|
5
6
|
listContentCache;
|
|
6
7
|
metadataCache;
|
|
7
8
|
addressCache;
|
|
8
|
-
constructor({ logger }) {
|
|
9
|
+
constructor({ uri, logger }) {
|
|
10
|
+
this.uri = uri;
|
|
9
11
|
// @ts-ignore forcing in to avoid a @hyperlane-xyz/utils
|
|
10
12
|
// dependency here, which could bloat consumer bundles
|
|
11
13
|
// unnecessarily (e.g. they just want metadata)
|
|
@@ -14,7 +16,18 @@ export class BaseRegistry {
|
|
|
14
16
|
getChainsPath() {
|
|
15
17
|
return 'chains';
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
getWarpArtifactsPaths({ tokens }) {
|
|
20
|
+
if (!tokens.length)
|
|
21
|
+
throw new Error('No tokens provided in config');
|
|
22
|
+
const symbols = new Set(tokens.map((token) => token.symbol.toUpperCase()));
|
|
23
|
+
if (symbols.size !== 1)
|
|
24
|
+
throw new Error('Only one token symbol per warp config is supported for now');
|
|
25
|
+
const symbol = symbols.values().next().value;
|
|
26
|
+
const chains = tokens
|
|
27
|
+
.map((token) => token.chainName)
|
|
28
|
+
.sort()
|
|
29
|
+
.join('-');
|
|
30
|
+
const basePath = `deployments/warp_routes/${symbol}/${chains}`;
|
|
31
|
+
return { configPath: `${basePath}-config.yaml`, addressesPath: `${basePath}-addresses.yaml` };
|
|
19
32
|
}
|
|
20
33
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Logger } from 'pino';
|
|
2
|
-
import {
|
|
2
|
+
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { ChainAddresses } from '../types.js';
|
|
4
4
|
import { BaseRegistry } from './BaseRegistry.js';
|
|
5
|
-
import { RegistryType, type IRegistry, type RegistryContent } from './IRegistry.js';
|
|
5
|
+
import { RegistryType, type ChainFiles, type IRegistry, type RegistryContent } from './IRegistry.js';
|
|
6
6
|
export interface GithubRegistryOptions {
|
|
7
7
|
uri?: string;
|
|
8
8
|
branch?: string;
|
|
@@ -33,6 +33,8 @@ export declare class GithubRegistry extends BaseRegistry implements IRegistry {
|
|
|
33
33
|
addresses?: ChainAddresses;
|
|
34
34
|
}): Promise<void>;
|
|
35
35
|
removeChain(_chains: ChainName): Promise<void>;
|
|
36
|
+
addWarpRoute(_config: WarpCoreConfig): Promise<void>;
|
|
36
37
|
protected getRawContentUrl(path: string): string;
|
|
38
|
+
protected fetchChainFiles<T>(fileName: keyof ChainFiles): Promise<ChainMap<T>>;
|
|
37
39
|
protected fetch(url: string): Promise<Response>;
|
|
38
40
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { parse as yamlParse } from 'yaml';
|
|
2
|
+
import { DEFAULT_GITHUB_REGISTRY, GITHUB_FETCH_CONCURRENCY_LIMIT } from '../consts.js';
|
|
2
3
|
import { ChainAddressesSchema } from '../types.js';
|
|
4
|
+
import { concurrentMap } from '../utils.js';
|
|
3
5
|
import { BaseRegistry, CHAIN_FILE_REGEX } from './BaseRegistry.js';
|
|
4
6
|
import { RegistryType, } from './IRegistry.js';
|
|
5
|
-
const DEFAULT_REGISTRY = 'https://github.com/hyperlane-xyz/hyperlane-registry';
|
|
6
7
|
export class GithubRegistry extends BaseRegistry {
|
|
7
8
|
type = RegistryType.Github;
|
|
8
9
|
url;
|
|
@@ -10,8 +11,8 @@ export class GithubRegistry extends BaseRegistry {
|
|
|
10
11
|
repoOwner;
|
|
11
12
|
repoName;
|
|
12
13
|
constructor(options = {}) {
|
|
13
|
-
super({ logger: options.logger });
|
|
14
|
-
this.url = new URL(
|
|
14
|
+
super({ uri: options.uri ?? DEFAULT_GITHUB_REGISTRY, logger: options.logger });
|
|
15
|
+
this.url = new URL(this.uri);
|
|
15
16
|
this.branch = options.branch ?? 'main';
|
|
16
17
|
const pathSegments = this.url.pathname.split('/');
|
|
17
18
|
if (pathSegments.length < 2)
|
|
@@ -48,16 +49,7 @@ export class GithubRegistry extends BaseRegistry {
|
|
|
48
49
|
async getMetadata() {
|
|
49
50
|
if (this.metadataCache)
|
|
50
51
|
return this.metadataCache;
|
|
51
|
-
const chainMetadata =
|
|
52
|
-
const repoContents = await this.listRegistryContent();
|
|
53
|
-
// TODO use concurrentMap here when utils package is updated
|
|
54
|
-
for (const [chainName, chainFiles] of Object.entries(repoContents.chains)) {
|
|
55
|
-
if (!chainFiles.metadata)
|
|
56
|
-
continue;
|
|
57
|
-
const response = await this.fetch(chainFiles.metadata);
|
|
58
|
-
const data = await response.text();
|
|
59
|
-
chainMetadata[chainName] = yamlParse(data);
|
|
60
|
-
}
|
|
52
|
+
const chainMetadata = await this.fetchChainFiles('metadata');
|
|
61
53
|
return (this.metadataCache = chainMetadata);
|
|
62
54
|
}
|
|
63
55
|
async getChainMetadata(chainName) {
|
|
@@ -71,16 +63,7 @@ export class GithubRegistry extends BaseRegistry {
|
|
|
71
63
|
async getAddresses() {
|
|
72
64
|
if (this.addressCache)
|
|
73
65
|
return this.addressCache;
|
|
74
|
-
const chainAddresses =
|
|
75
|
-
const repoContents = await this.listRegistryContent();
|
|
76
|
-
// TODO use concurrentMap here when utils package is updated
|
|
77
|
-
for (const [chainName, chainFiles] of Object.entries(repoContents.chains)) {
|
|
78
|
-
if (!chainFiles.addresses)
|
|
79
|
-
continue;
|
|
80
|
-
const response = await this.fetch(chainFiles.addresses);
|
|
81
|
-
const data = await response.text();
|
|
82
|
-
chainAddresses[chainName] = ChainAddressesSchema.parse(yamlParse(data));
|
|
83
|
-
}
|
|
66
|
+
const chainAddresses = await this.fetchChainFiles('addresses');
|
|
84
67
|
return (this.addressCache = chainAddresses);
|
|
85
68
|
}
|
|
86
69
|
async getChainAddresses(chainName) {
|
|
@@ -100,9 +83,28 @@ export class GithubRegistry extends BaseRegistry {
|
|
|
100
83
|
async removeChain(_chains) {
|
|
101
84
|
throw new Error('TODO: Implement');
|
|
102
85
|
}
|
|
86
|
+
async addWarpRoute(_config) {
|
|
87
|
+
throw new Error('TODO: Implement');
|
|
88
|
+
}
|
|
103
89
|
getRawContentUrl(path) {
|
|
104
90
|
return `https://raw.githubusercontent.com/${this.repoOwner}/${this.repoName}/${this.branch}/${path}`;
|
|
105
91
|
}
|
|
92
|
+
async fetchChainFiles(fileName) {
|
|
93
|
+
const repoContents = await this.listRegistryContent();
|
|
94
|
+
const chainNames = Object.keys(repoContents.chains);
|
|
95
|
+
const fileUrls = chainNames.reduce((acc, chainName) => {
|
|
96
|
+
const fileUrl = repoContents.chains[chainName][fileName];
|
|
97
|
+
if (fileUrl)
|
|
98
|
+
acc[chainName] = fileUrl;
|
|
99
|
+
return acc;
|
|
100
|
+
}, {});
|
|
101
|
+
const results = await concurrentMap(GITHUB_FETCH_CONCURRENCY_LIMIT, Object.entries(fileUrls), async ([chainName, fileUrl]) => {
|
|
102
|
+
const response = await this.fetch(fileUrl);
|
|
103
|
+
const data = await response.text();
|
|
104
|
+
return [chainName, yamlParse(data)];
|
|
105
|
+
});
|
|
106
|
+
return Object.fromEntries(results);
|
|
107
|
+
}
|
|
106
108
|
async fetch(url) {
|
|
107
109
|
this.logger.debug(`Fetching from github: ${url}`);
|
|
108
110
|
const response = await fetch(url);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChainMap, ChainMetadata, ChainName } from '@hyperlane-xyz/sdk';
|
|
1
|
+
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } from '@hyperlane-xyz/sdk';
|
|
2
2
|
import type { ChainAddresses, MaybePromise } from '../types.js';
|
|
3
3
|
export interface ChainFiles {
|
|
4
4
|
metadata?: string;
|
|
@@ -14,21 +14,23 @@ export declare enum RegistryType {
|
|
|
14
14
|
}
|
|
15
15
|
export interface IRegistry {
|
|
16
16
|
type: RegistryType;
|
|
17
|
+
uri: string;
|
|
17
18
|
listRegistryContent(): MaybePromise<RegistryContent>;
|
|
18
19
|
getChains(): MaybePromise<Array<ChainName>>;
|
|
19
20
|
getMetadata(): MaybePromise<ChainMap<ChainMetadata>>;
|
|
20
21
|
getChainMetadata(chainName: ChainName): MaybePromise<ChainMetadata | null>;
|
|
21
22
|
getAddresses(): MaybePromise<ChainMap<ChainAddresses>>;
|
|
22
23
|
getChainAddresses(chainName: ChainName): MaybePromise<ChainAddresses | null>;
|
|
23
|
-
addChain(
|
|
24
|
+
addChain(chain: {
|
|
24
25
|
chainName: ChainName;
|
|
25
26
|
metadata?: ChainMetadata;
|
|
26
27
|
addresses?: ChainAddresses;
|
|
27
28
|
}): MaybePromise<void>;
|
|
28
|
-
updateChain(
|
|
29
|
+
updateChain(chain: {
|
|
29
30
|
chainName: ChainName;
|
|
30
31
|
metadata?: ChainMetadata;
|
|
31
32
|
addresses?: ChainAddresses;
|
|
32
33
|
}): MaybePromise<void>;
|
|
33
|
-
removeChain(
|
|
34
|
+
removeChain(chain: ChainName): MaybePromise<void>;
|
|
35
|
+
addWarpRoute(config: WarpCoreConfig): MaybePromise<void>;
|
|
34
36
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Logger } from 'pino';
|
|
2
|
-
import type { ChainMap, ChainMetadata, ChainName } from '@hyperlane-xyz/sdk';
|
|
2
|
+
import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig } from '@hyperlane-xyz/sdk';
|
|
3
3
|
import { ChainAddresses } from '../types.js';
|
|
4
4
|
import { BaseRegistry } from './BaseRegistry.js';
|
|
5
5
|
import { RegistryType, type ChainFiles, type IRegistry, type RegistryContent } from './IRegistry.js';
|
|
@@ -9,7 +9,6 @@ export interface LocalRegistryOptions {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class LocalRegistry extends BaseRegistry implements IRegistry {
|
|
11
11
|
readonly type = RegistryType.Local;
|
|
12
|
-
readonly uri: string;
|
|
13
12
|
constructor(options: LocalRegistryOptions);
|
|
14
13
|
listRegistryContent(): RegistryContent;
|
|
15
14
|
getChains(): Array<ChainName>;
|
|
@@ -29,6 +28,7 @@ export declare class LocalRegistry extends BaseRegistry implements IRegistry {
|
|
|
29
28
|
}): void;
|
|
30
29
|
removeChain(chainName: ChainName): void;
|
|
31
30
|
protected listFiles(dirPath: string): string[];
|
|
31
|
+
addWarpRoute(config: WarpCoreConfig): void;
|
|
32
32
|
protected createOrUpdateChain(chain: {
|
|
33
33
|
chainName: ChainName;
|
|
34
34
|
metadata?: ChainMetadata;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { parse as yamlParse } from 'yaml';
|
|
4
|
-
import {
|
|
4
|
+
import { SCHEMA_REF } from '../consts.js';
|
|
5
5
|
import { ChainAddressesSchema } from '../types.js';
|
|
6
6
|
import { toYamlString } from '../utils.js';
|
|
7
7
|
import { BaseRegistry, CHAIN_FILE_REGEX } from './BaseRegistry.js';
|
|
8
8
|
import { RegistryType, } from './IRegistry.js';
|
|
9
|
+
import { warpConfigToWarpAddresses } from './warp-utils.js';
|
|
9
10
|
export class LocalRegistry extends BaseRegistry {
|
|
10
11
|
type = RegistryType.Local;
|
|
11
|
-
uri;
|
|
12
12
|
constructor(options) {
|
|
13
|
-
super(
|
|
14
|
-
this.uri = options.uri;
|
|
13
|
+
super(options);
|
|
15
14
|
}
|
|
16
15
|
listRegistryContent() {
|
|
17
16
|
if (this.listContentCache)
|
|
@@ -97,6 +96,8 @@ export class LocalRegistry extends BaseRegistry {
|
|
|
97
96
|
delete this.addressCache[chainName];
|
|
98
97
|
}
|
|
99
98
|
listFiles(dirPath) {
|
|
99
|
+
if (!fs.existsSync(dirPath))
|
|
100
|
+
return [];
|
|
100
101
|
const entries = fs.readdirSync(dirPath, { withFileTypes: true });
|
|
101
102
|
const filePaths = entries.map((entry) => {
|
|
102
103
|
const fullPath = path.join(dirPath, entry.name);
|
|
@@ -104,6 +105,14 @@ export class LocalRegistry extends BaseRegistry {
|
|
|
104
105
|
});
|
|
105
106
|
return filePaths.flat();
|
|
106
107
|
}
|
|
108
|
+
addWarpRoute(config) {
|
|
109
|
+
let { configPath, addressesPath } = this.getWarpArtifactsPaths(config);
|
|
110
|
+
configPath = path.join(this.uri, configPath);
|
|
111
|
+
this.createFile({ filePath: configPath, data: toYamlString(config, SCHEMA_REF) });
|
|
112
|
+
addressesPath = path.join(this.uri, addressesPath);
|
|
113
|
+
const addresses = warpConfigToWarpAddresses(config);
|
|
114
|
+
this.createFile({ filePath: addressesPath, data: toYamlString(addresses) });
|
|
115
|
+
}
|
|
107
116
|
createOrUpdateChain(chain) {
|
|
108
117
|
if (!chain.metadata && !chain.addresses)
|
|
109
118
|
throw new Error(`Chain ${chain.chainName} must have metadata or addresses, preferably both`);
|
|
@@ -112,7 +121,7 @@ export class LocalRegistry extends BaseRegistry {
|
|
|
112
121
|
this.logger.debug(`Chain ${chain.chainName} not found in registry, adding it now`);
|
|
113
122
|
}
|
|
114
123
|
if (chain.metadata) {
|
|
115
|
-
this.createChainFile(chain.chainName, 'metadata', chain.metadata, this.getMetadata(),
|
|
124
|
+
this.createChainFile(chain.chainName, 'metadata', chain.metadata, this.getMetadata(), SCHEMA_REF);
|
|
116
125
|
}
|
|
117
126
|
if (chain.addresses) {
|
|
118
127
|
this.createChainFile(chain.chainName, 'addresses', chain.addresses, this.getAddresses());
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export function warpConfigToWarpAddresses(config) {
|
|
2
|
+
return config.tokens.reduce((acc, token) => {
|
|
3
|
+
const addressKey = getWarpAddressKey(token.standard);
|
|
4
|
+
if (!addressKey || !token.addressOrDenom)
|
|
5
|
+
return acc;
|
|
6
|
+
acc[token.chainName] = {
|
|
7
|
+
[addressKey]: token.addressOrDenom,
|
|
8
|
+
};
|
|
9
|
+
return acc;
|
|
10
|
+
}, {});
|
|
11
|
+
}
|
|
12
|
+
function getWarpAddressKey(standard) {
|
|
13
|
+
const standardValue = standard.toLowerCase();
|
|
14
|
+
if (standardValue.includes('collateral'))
|
|
15
|
+
return 'collateral';
|
|
16
|
+
if (standardValue.includes('synthetic'))
|
|
17
|
+
return 'synthetic';
|
|
18
|
+
if (standardValue.includes('native'))
|
|
19
|
+
return 'native';
|
|
20
|
+
else
|
|
21
|
+
return null;
|
|
22
|
+
}
|
package/dist/utils.d.ts
CHANGED
package/dist/utils.js
CHANGED
|
@@ -3,3 +3,13 @@ export function toYamlString(data, prefix) {
|
|
|
3
3
|
const yamlString = stringify(data);
|
|
4
4
|
return prefix ? `${prefix}\n${yamlString}` : yamlString;
|
|
5
5
|
}
|
|
6
|
+
export async function concurrentMap(concurrency, xs, mapFn) {
|
|
7
|
+
let res = [];
|
|
8
|
+
for (let i = 0; i < xs.length; i += concurrency) {
|
|
9
|
+
const remaining = xs.length - i;
|
|
10
|
+
const sliceSize = Math.min(remaining, concurrency);
|
|
11
|
+
const slice = xs.slice(i, i + sliceSize);
|
|
12
|
+
res = res.concat(await Promise.all(slice.map((elem, index) => mapFn(elem, i + index))));
|
|
13
|
+
}
|
|
14
|
+
return res;
|
|
15
|
+
}
|