@sudobility/types 1.8.21 → 1.8.22
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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/utils/blockchain/index.d.ts +1 -1
- package/dist/utils/blockchain/index.d.ts.map +1 -1
- package/dist/utils/blockchain/rpc-helpers.cjs +648 -632
- package/dist/utils/blockchain/rpc-helpers.d.ts +64 -11
- package/dist/utils/blockchain/rpc-helpers.d.ts.map +1 -1
- package/dist/utils/blockchain/rpc-helpers.js +648 -632
- package/dist/utils/blockchain/rpc-helpers.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,616 +9,618 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.RpcHelpers = void 0;
|
|
10
10
|
const enums_1 = require("../../types/business/enums");
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* Consolidated chain information map
|
|
13
|
+
* Contains all static metadata for each supported blockchain network
|
|
14
14
|
*/
|
|
15
|
-
const
|
|
16
|
-
// Ethereum - direct mapping
|
|
17
|
-
[enums_1.Chain.ETH_MAINNET]: 'eth-mainnet',
|
|
18
|
-
[enums_1.Chain.ETH_SEPOLIA]: 'eth-sepolia',
|
|
19
|
-
[enums_1.Chain.ETH_GOERLI]: 'eth-goerli',
|
|
20
|
-
// Polygon - direct mapping
|
|
21
|
-
[enums_1.Chain.POLYGON_MAINNET]: 'polygon-mainnet',
|
|
22
|
-
[enums_1.Chain.POLYGON_MUMBAI]: 'polygon-mumbai',
|
|
23
|
-
[enums_1.Chain.POLYGON_AMOY]: 'polygon-amoy',
|
|
24
|
-
// Optimism - uses 'opt' prefix
|
|
25
|
-
[enums_1.Chain.OPTIMISM_MAINNET]: 'opt-mainnet',
|
|
26
|
-
[enums_1.Chain.OPTIMISM_SEPOLIA]: 'opt-sepolia',
|
|
27
|
-
[enums_1.Chain.OPTIMISM_GOERLI]: 'opt-goerli',
|
|
28
|
-
// Arbitrum - uses 'arb' prefix
|
|
29
|
-
[enums_1.Chain.ARBITRUM_MAINNET]: 'arb-mainnet',
|
|
30
|
-
[enums_1.Chain.ARBITRUM_SEPOLIA]: 'arb-sepolia',
|
|
31
|
-
[enums_1.Chain.ARBITRUM_GOERLI]: 'arb-goerli',
|
|
32
|
-
// Base - direct mapping
|
|
33
|
-
[enums_1.Chain.BASE_MAINNET]: 'base-mainnet',
|
|
34
|
-
[enums_1.Chain.BASE_SEPOLIA]: 'base-sepolia',
|
|
35
|
-
[enums_1.Chain.BASE_GOERLI]: 'base-goerli',
|
|
36
|
-
// Avalanche
|
|
37
|
-
[enums_1.Chain.AVALANCHE_MAINNET]: 'avax-mainnet',
|
|
38
|
-
[enums_1.Chain.AVALANCHE_FUJI]: 'avax-fuji',
|
|
39
|
-
// BNB Chain
|
|
40
|
-
[enums_1.Chain.BNB_MAINNET]: 'bnb-mainnet',
|
|
41
|
-
[enums_1.Chain.BNB_TESTNET]: 'bnb-testnet',
|
|
42
|
-
// Gnosis Chain
|
|
43
|
-
[enums_1.Chain.GNOSIS_MAINNET]: 'gnosis-mainnet',
|
|
44
|
-
[enums_1.Chain.GNOSIS_CHIADO]: 'gnosis-chiado',
|
|
45
|
-
// Celo
|
|
46
|
-
[enums_1.Chain.CELO_MAINNET]: 'celo-mainnet',
|
|
47
|
-
[enums_1.Chain.CELO_ALFAJORES]: 'celo-alfajores',
|
|
48
|
-
// zkSync
|
|
49
|
-
[enums_1.Chain.ZKSYNC_MAINNET]: 'zksync-mainnet',
|
|
50
|
-
[enums_1.Chain.ZKSYNC_SEPOLIA]: 'zksync-sepolia',
|
|
51
|
-
// Linea
|
|
52
|
-
[enums_1.Chain.LINEA_MAINNET]: 'linea-mainnet',
|
|
53
|
-
[enums_1.Chain.LINEA_SEPOLIA]: 'linea-sepolia',
|
|
54
|
-
// Scroll
|
|
55
|
-
[enums_1.Chain.SCROLL_MAINNET]: 'scroll-mainnet',
|
|
56
|
-
[enums_1.Chain.SCROLL_SEPOLIA]: 'scroll-sepolia',
|
|
57
|
-
// Monad
|
|
58
|
-
[enums_1.Chain.MONAD_MAINNET]: '',
|
|
59
|
-
[enums_1.Chain.MONAD_TESTNET]: '',
|
|
60
|
-
// Story Protocol
|
|
61
|
-
[enums_1.Chain.STORY_MAINNET]: '',
|
|
62
|
-
[enums_1.Chain.STORY_TESTNET]: '',
|
|
63
|
-
// Plume Network
|
|
64
|
-
[enums_1.Chain.PLUME_MAINNET]: '',
|
|
65
|
-
[enums_1.Chain.PLUME_TESTNET]: '',
|
|
66
|
-
// Nexus
|
|
67
|
-
[enums_1.Chain.NEXUS_MAINNET]: '',
|
|
68
|
-
[enums_1.Chain.NEXUS_TESTNET]: '',
|
|
69
|
-
// HyperEVM
|
|
70
|
-
[enums_1.Chain.HYPEREVM_MAINNET]: '',
|
|
71
|
-
[enums_1.Chain.HYPEREVM_TESTNET]: '',
|
|
72
|
-
// Sonic
|
|
73
|
-
[enums_1.Chain.SONIC_MAINNET]: '',
|
|
74
|
-
[enums_1.Chain.SONIC_TESTNET]: '',
|
|
75
|
-
[enums_1.Chain.SONIC_BLAZE]: '',
|
|
76
|
-
// Unichain
|
|
77
|
-
[enums_1.Chain.UNICHAIN_MAINNET]: '',
|
|
78
|
-
[enums_1.Chain.UNICHAIN_SEPOLIA]: '',
|
|
79
|
-
// World Chain
|
|
80
|
-
[enums_1.Chain.WORLD_MAINNET]: '',
|
|
81
|
-
// XDC Network
|
|
82
|
-
[enums_1.Chain.XDC_MAINNET]: '',
|
|
83
|
-
// Ink
|
|
84
|
-
[enums_1.Chain.INK_TESTNET]: '',
|
|
85
|
-
// Fetch.ai
|
|
86
|
-
[enums_1.Chain.FETCH_MAINNET]: '',
|
|
87
|
-
[enums_1.Chain.FETCH_TESTNET]: '',
|
|
88
|
-
// Gensyn
|
|
89
|
-
[enums_1.Chain.GENSYN_MAINNET]: '',
|
|
90
|
-
[enums_1.Chain.GENSYN_TESTNET]: '',
|
|
91
|
-
// Ritual
|
|
92
|
-
[enums_1.Chain.RITUAL_MAINNET]: '',
|
|
93
|
-
[enums_1.Chain.RITUAL_TESTNET]: '',
|
|
94
|
-
// Solana - simple names
|
|
95
|
-
[enums_1.Chain.SOLANA_MAINNET]: 'mainnet',
|
|
96
|
-
[enums_1.Chain.SOLANA_DEVNET]: 'devnet',
|
|
97
|
-
[enums_1.Chain.SOLANA_TESTNET]: 'testnet',
|
|
98
|
-
// Local development - no Alchemy support
|
|
99
|
-
[enums_1.Chain.EVM_LOCAL]: '',
|
|
100
|
-
[enums_1.Chain.SOLANA_LOCAL]: '',
|
|
101
|
-
};
|
|
102
|
-
/**
|
|
103
|
-
* Block explorer domain mappings
|
|
104
|
-
*/
|
|
105
|
-
const EXPLORER_DOMAIN_MAP = {
|
|
15
|
+
const CHAIN_INFO_MAP = {
|
|
106
16
|
// Ethereum
|
|
107
|
-
[enums_1.Chain.ETH_MAINNET]:
|
|
108
|
-
|
|
109
|
-
|
|
17
|
+
[enums_1.Chain.ETH_MAINNET]: {
|
|
18
|
+
chainType: enums_1.ChainType.EVM,
|
|
19
|
+
chainId: 1,
|
|
20
|
+
name: 'Ethereum',
|
|
21
|
+
alchemyNetwork: 'eth-mainnet',
|
|
22
|
+
explorerDomain: 'api.etherscan.io',
|
|
23
|
+
explorerBrowserDomain: 'etherscan.io',
|
|
24
|
+
usdcAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
|
|
25
|
+
isDev: false,
|
|
26
|
+
},
|
|
27
|
+
[enums_1.Chain.ETH_SEPOLIA]: {
|
|
28
|
+
chainType: enums_1.ChainType.EVM,
|
|
29
|
+
chainId: 11155111,
|
|
30
|
+
name: 'Ethereum Sepolia',
|
|
31
|
+
alchemyNetwork: 'eth-sepolia',
|
|
32
|
+
explorerDomain: 'api-sepolia.etherscan.io',
|
|
33
|
+
explorerBrowserDomain: 'sepolia.etherscan.io',
|
|
34
|
+
usdcAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
|
|
35
|
+
isDev: true,
|
|
36
|
+
mailerAddress: '0x13fC7Fe676E4FaaE8F4D910d8Ed7fbD3FebDbe88',
|
|
37
|
+
},
|
|
38
|
+
[enums_1.Chain.ETH_GOERLI]: {
|
|
39
|
+
chainType: enums_1.ChainType.EVM,
|
|
40
|
+
chainId: 5,
|
|
41
|
+
name: 'Ethereum Goerli',
|
|
42
|
+
alchemyNetwork: 'eth-goerli',
|
|
43
|
+
explorerDomain: 'api-goerli.etherscan.io',
|
|
44
|
+
explorerBrowserDomain: 'goerli.etherscan.io',
|
|
45
|
+
usdcAddress: '0x07865c6E87B9F70255377e024ace6630C1Eaa37F',
|
|
46
|
+
isDev: true,
|
|
47
|
+
},
|
|
110
48
|
// Polygon
|
|
111
|
-
[enums_1.Chain.POLYGON_MAINNET]:
|
|
112
|
-
|
|
113
|
-
|
|
49
|
+
[enums_1.Chain.POLYGON_MAINNET]: {
|
|
50
|
+
chainType: enums_1.ChainType.EVM,
|
|
51
|
+
chainId: 137,
|
|
52
|
+
name: 'Polygon',
|
|
53
|
+
alchemyNetwork: 'polygon-mainnet',
|
|
54
|
+
explorerDomain: 'api.polygonscan.com',
|
|
55
|
+
explorerBrowserDomain: 'polygonscan.com',
|
|
56
|
+
usdcAddress: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',
|
|
57
|
+
isDev: false,
|
|
58
|
+
},
|
|
59
|
+
[enums_1.Chain.POLYGON_MUMBAI]: {
|
|
60
|
+
chainType: enums_1.ChainType.EVM,
|
|
61
|
+
chainId: 80001,
|
|
62
|
+
name: 'Polygon Mumbai',
|
|
63
|
+
alchemyNetwork: 'polygon-mumbai',
|
|
64
|
+
explorerDomain: 'api-testnet.polygonscan.com',
|
|
65
|
+
explorerBrowserDomain: 'mumbai.polygonscan.com',
|
|
66
|
+
usdcAddress: '0x9999f7Fea5938fD3b1E26A12c3f2fb024e194f97',
|
|
67
|
+
isDev: true,
|
|
68
|
+
},
|
|
69
|
+
[enums_1.Chain.POLYGON_AMOY]: {
|
|
70
|
+
chainType: enums_1.ChainType.EVM,
|
|
71
|
+
chainId: 80002,
|
|
72
|
+
name: 'Polygon Amoy',
|
|
73
|
+
alchemyNetwork: 'polygon-amoy',
|
|
74
|
+
explorerDomain: 'api-amoy.polygonscan.com',
|
|
75
|
+
explorerBrowserDomain: 'amoy.polygonscan.com',
|
|
76
|
+
usdcAddress: '0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582',
|
|
77
|
+
isDev: true,
|
|
78
|
+
},
|
|
114
79
|
// Optimism
|
|
115
|
-
[enums_1.Chain.OPTIMISM_MAINNET]:
|
|
116
|
-
|
|
117
|
-
|
|
80
|
+
[enums_1.Chain.OPTIMISM_MAINNET]: {
|
|
81
|
+
chainType: enums_1.ChainType.EVM,
|
|
82
|
+
chainId: 10,
|
|
83
|
+
name: 'Optimism',
|
|
84
|
+
alchemyNetwork: 'opt-mainnet',
|
|
85
|
+
explorerDomain: 'api-optimistic.etherscan.io',
|
|
86
|
+
explorerBrowserDomain: 'optimistic.etherscan.io',
|
|
87
|
+
usdcAddress: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
|
|
88
|
+
isDev: false,
|
|
89
|
+
},
|
|
90
|
+
[enums_1.Chain.OPTIMISM_SEPOLIA]: {
|
|
91
|
+
chainType: enums_1.ChainType.EVM,
|
|
92
|
+
chainId: 11155420,
|
|
93
|
+
name: 'Optimism Sepolia',
|
|
94
|
+
alchemyNetwork: 'opt-sepolia',
|
|
95
|
+
explorerDomain: 'api-sepolia-optimistic.etherscan.io',
|
|
96
|
+
explorerBrowserDomain: 'sepolia-optimistic.etherscan.io',
|
|
97
|
+
usdcAddress: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',
|
|
98
|
+
isDev: true,
|
|
99
|
+
},
|
|
100
|
+
[enums_1.Chain.OPTIMISM_GOERLI]: {
|
|
101
|
+
chainType: enums_1.ChainType.EVM,
|
|
102
|
+
chainId: 420,
|
|
103
|
+
name: 'Optimism Goerli',
|
|
104
|
+
alchemyNetwork: 'opt-goerli',
|
|
105
|
+
explorerDomain: 'api-goerli-optimistic.etherscan.io',
|
|
106
|
+
explorerBrowserDomain: 'goerli-optimistic.etherscan.io',
|
|
107
|
+
usdcAddress: '0xe05606174bac4A6364B31bd0eCA4bf4dD368f8C6',
|
|
108
|
+
isDev: true,
|
|
109
|
+
},
|
|
118
110
|
// Arbitrum
|
|
119
|
-
[enums_1.Chain.ARBITRUM_MAINNET]:
|
|
120
|
-
|
|
121
|
-
|
|
111
|
+
[enums_1.Chain.ARBITRUM_MAINNET]: {
|
|
112
|
+
chainType: enums_1.ChainType.EVM,
|
|
113
|
+
chainId: 42161,
|
|
114
|
+
name: 'Arbitrum',
|
|
115
|
+
alchemyNetwork: 'arb-mainnet',
|
|
116
|
+
explorerDomain: 'api.arbiscan.io',
|
|
117
|
+
explorerBrowserDomain: 'arbiscan.io',
|
|
118
|
+
usdcAddress: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
119
|
+
isDev: false,
|
|
120
|
+
},
|
|
121
|
+
[enums_1.Chain.ARBITRUM_SEPOLIA]: {
|
|
122
|
+
chainType: enums_1.ChainType.EVM,
|
|
123
|
+
chainId: 421614,
|
|
124
|
+
name: 'Arbitrum Sepolia',
|
|
125
|
+
alchemyNetwork: 'arb-sepolia',
|
|
126
|
+
explorerDomain: 'api-sepolia.arbiscan.io',
|
|
127
|
+
explorerBrowserDomain: 'sepolia.arbiscan.io',
|
|
128
|
+
usdcAddress: '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d',
|
|
129
|
+
isDev: true,
|
|
130
|
+
},
|
|
131
|
+
[enums_1.Chain.ARBITRUM_GOERLI]: {
|
|
132
|
+
chainType: enums_1.ChainType.EVM,
|
|
133
|
+
chainId: 421613,
|
|
134
|
+
name: 'Arbitrum Goerli',
|
|
135
|
+
alchemyNetwork: 'arb-goerli',
|
|
136
|
+
explorerDomain: 'api-goerli.arbiscan.io',
|
|
137
|
+
explorerBrowserDomain: 'goerli.arbiscan.io',
|
|
138
|
+
usdcAddress: '0xfd064A18f3BF249cf1f87FC203E90D8f650f2d63',
|
|
139
|
+
isDev: true,
|
|
140
|
+
},
|
|
122
141
|
// Base
|
|
123
|
-
[enums_1.Chain.BASE_MAINNET]:
|
|
124
|
-
|
|
125
|
-
|
|
142
|
+
[enums_1.Chain.BASE_MAINNET]: {
|
|
143
|
+
chainType: enums_1.ChainType.EVM,
|
|
144
|
+
chainId: 8453,
|
|
145
|
+
name: 'Base',
|
|
146
|
+
alchemyNetwork: 'base-mainnet',
|
|
147
|
+
explorerDomain: 'api.basescan.org',
|
|
148
|
+
explorerBrowserDomain: 'basescan.org',
|
|
149
|
+
usdcAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
|
|
150
|
+
isDev: false,
|
|
151
|
+
},
|
|
152
|
+
[enums_1.Chain.BASE_SEPOLIA]: {
|
|
153
|
+
chainType: enums_1.ChainType.EVM,
|
|
154
|
+
chainId: 84532,
|
|
155
|
+
name: 'Base Sepolia',
|
|
156
|
+
alchemyNetwork: 'base-sepolia',
|
|
157
|
+
explorerDomain: 'api-sepolia.basescan.org',
|
|
158
|
+
explorerBrowserDomain: 'sepolia.basescan.org',
|
|
159
|
+
usdcAddress: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
|
|
160
|
+
isDev: true,
|
|
161
|
+
},
|
|
162
|
+
[enums_1.Chain.BASE_GOERLI]: {
|
|
163
|
+
chainType: enums_1.ChainType.EVM,
|
|
164
|
+
chainId: 84531,
|
|
165
|
+
name: 'Base Goerli',
|
|
166
|
+
alchemyNetwork: 'base-goerli',
|
|
167
|
+
explorerDomain: 'api-goerli.basescan.org',
|
|
168
|
+
explorerBrowserDomain: 'goerli.basescan.org',
|
|
169
|
+
usdcAddress: '0xF175520C52418dfE19C8098071a252da48Cd1C19',
|
|
170
|
+
isDev: true,
|
|
171
|
+
},
|
|
126
172
|
// Avalanche
|
|
127
|
-
[enums_1.Chain.AVALANCHE_MAINNET]:
|
|
128
|
-
|
|
173
|
+
[enums_1.Chain.AVALANCHE_MAINNET]: {
|
|
174
|
+
chainType: enums_1.ChainType.EVM,
|
|
175
|
+
chainId: 43114,
|
|
176
|
+
name: 'Avalanche',
|
|
177
|
+
alchemyNetwork: 'avax-mainnet',
|
|
178
|
+
explorerDomain: 'api.snowtrace.io',
|
|
179
|
+
explorerBrowserDomain: 'snowtrace.io',
|
|
180
|
+
usdcAddress: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E',
|
|
181
|
+
isDev: false,
|
|
182
|
+
},
|
|
183
|
+
[enums_1.Chain.AVALANCHE_FUJI]: {
|
|
184
|
+
chainType: enums_1.ChainType.EVM,
|
|
185
|
+
chainId: 43113,
|
|
186
|
+
name: 'Avalanche Fuji',
|
|
187
|
+
alchemyNetwork: 'avax-fuji',
|
|
188
|
+
explorerDomain: 'api-testnet.snowtrace.io',
|
|
189
|
+
explorerBrowserDomain: 'testnet.snowtrace.io',
|
|
190
|
+
usdcAddress: '0x5425890298aed601595a70AB815c96711a31Bc65',
|
|
191
|
+
isDev: true,
|
|
192
|
+
},
|
|
129
193
|
// BNB Chain
|
|
130
|
-
[enums_1.Chain.BNB_MAINNET]:
|
|
131
|
-
|
|
194
|
+
[enums_1.Chain.BNB_MAINNET]: {
|
|
195
|
+
chainType: enums_1.ChainType.EVM,
|
|
196
|
+
chainId: 56,
|
|
197
|
+
name: 'BNB Chain',
|
|
198
|
+
alchemyNetwork: 'bnb-mainnet',
|
|
199
|
+
explorerDomain: 'api.bscscan.com',
|
|
200
|
+
explorerBrowserDomain: 'bscscan.com',
|
|
201
|
+
usdcAddress: '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d',
|
|
202
|
+
isDev: false,
|
|
203
|
+
},
|
|
204
|
+
[enums_1.Chain.BNB_TESTNET]: {
|
|
205
|
+
chainType: enums_1.ChainType.EVM,
|
|
206
|
+
chainId: 97,
|
|
207
|
+
name: 'BNB Chain Testnet',
|
|
208
|
+
alchemyNetwork: 'bnb-testnet',
|
|
209
|
+
explorerDomain: 'api-testnet.bscscan.com',
|
|
210
|
+
explorerBrowserDomain: 'testnet.bscscan.com',
|
|
211
|
+
usdcAddress: '0x64544969ed7EBf5f083679233325356EbE738930',
|
|
212
|
+
isDev: true,
|
|
213
|
+
},
|
|
132
214
|
// Gnosis Chain
|
|
133
|
-
[enums_1.Chain.GNOSIS_MAINNET]:
|
|
134
|
-
|
|
215
|
+
[enums_1.Chain.GNOSIS_MAINNET]: {
|
|
216
|
+
chainType: enums_1.ChainType.EVM,
|
|
217
|
+
chainId: 100,
|
|
218
|
+
name: 'Gnosis',
|
|
219
|
+
alchemyNetwork: 'gnosis-mainnet',
|
|
220
|
+
explorerDomain: 'api.gnosisscan.io',
|
|
221
|
+
explorerBrowserDomain: 'gnosisscan.io',
|
|
222
|
+
usdcAddress: '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83',
|
|
223
|
+
isDev: false,
|
|
224
|
+
},
|
|
225
|
+
[enums_1.Chain.GNOSIS_CHIADO]: {
|
|
226
|
+
chainType: enums_1.ChainType.EVM,
|
|
227
|
+
chainId: 10200,
|
|
228
|
+
name: 'Gnosis Chiado',
|
|
229
|
+
alchemyNetwork: 'gnosis-chiado',
|
|
230
|
+
explorerDomain: 'api-chiado.gnosisscan.io',
|
|
231
|
+
explorerBrowserDomain: 'gnosis-chiado.blockscout.com',
|
|
232
|
+
usdcAddress: '0x',
|
|
233
|
+
isDev: true,
|
|
234
|
+
},
|
|
135
235
|
// Celo
|
|
136
|
-
[enums_1.Chain.CELO_MAINNET]:
|
|
137
|
-
|
|
236
|
+
[enums_1.Chain.CELO_MAINNET]: {
|
|
237
|
+
chainType: enums_1.ChainType.EVM,
|
|
238
|
+
chainId: 42220,
|
|
239
|
+
name: 'Celo',
|
|
240
|
+
alchemyNetwork: 'celo-mainnet',
|
|
241
|
+
explorerDomain: 'api.celoscan.io',
|
|
242
|
+
explorerBrowserDomain: 'celoscan.io',
|
|
243
|
+
usdcAddress: '0xcebA9300f2b948710d2653dD7B07f33A8B32118C',
|
|
244
|
+
isDev: false,
|
|
245
|
+
},
|
|
246
|
+
[enums_1.Chain.CELO_ALFAJORES]: {
|
|
247
|
+
chainType: enums_1.ChainType.EVM,
|
|
248
|
+
chainId: 44787,
|
|
249
|
+
name: 'Celo Alfajores',
|
|
250
|
+
alchemyNetwork: 'celo-alfajores',
|
|
251
|
+
explorerDomain: 'api-alfajores.celoscan.io',
|
|
252
|
+
explorerBrowserDomain: 'alfajores.celoscan.io',
|
|
253
|
+
usdcAddress: '0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B',
|
|
254
|
+
isDev: true,
|
|
255
|
+
},
|
|
138
256
|
// zkSync
|
|
139
|
-
[enums_1.Chain.ZKSYNC_MAINNET]:
|
|
140
|
-
|
|
257
|
+
[enums_1.Chain.ZKSYNC_MAINNET]: {
|
|
258
|
+
chainType: enums_1.ChainType.EVM,
|
|
259
|
+
chainId: 324,
|
|
260
|
+
name: 'zkSync',
|
|
261
|
+
alchemyNetwork: 'zksync-mainnet',
|
|
262
|
+
explorerDomain: 'api-era.zksync.network',
|
|
263
|
+
explorerBrowserDomain: 'explorer.zksync.io',
|
|
264
|
+
usdcAddress: '0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4',
|
|
265
|
+
isDev: false,
|
|
266
|
+
},
|
|
267
|
+
[enums_1.Chain.ZKSYNC_SEPOLIA]: {
|
|
268
|
+
chainType: enums_1.ChainType.EVM,
|
|
269
|
+
chainId: 300,
|
|
270
|
+
name: 'zkSync Sepolia',
|
|
271
|
+
alchemyNetwork: 'zksync-sepolia',
|
|
272
|
+
explorerDomain: 'api-sepolia-era.zksync.network',
|
|
273
|
+
explorerBrowserDomain: 'sepolia.explorer.zksync.io',
|
|
274
|
+
usdcAddress: '0x',
|
|
275
|
+
isDev: true,
|
|
276
|
+
},
|
|
141
277
|
// Linea
|
|
142
|
-
[enums_1.Chain.LINEA_MAINNET]:
|
|
143
|
-
|
|
278
|
+
[enums_1.Chain.LINEA_MAINNET]: {
|
|
279
|
+
chainType: enums_1.ChainType.EVM,
|
|
280
|
+
chainId: 59144,
|
|
281
|
+
name: 'Linea',
|
|
282
|
+
alchemyNetwork: 'linea-mainnet',
|
|
283
|
+
explorerDomain: 'api.lineascan.build',
|
|
284
|
+
explorerBrowserDomain: 'lineascan.build',
|
|
285
|
+
usdcAddress: '0x176211869cA2b568f2A7D4EE941E073a821EE1ff',
|
|
286
|
+
isDev: false,
|
|
287
|
+
},
|
|
288
|
+
[enums_1.Chain.LINEA_SEPOLIA]: {
|
|
289
|
+
chainType: enums_1.ChainType.EVM,
|
|
290
|
+
chainId: 59141,
|
|
291
|
+
name: 'Linea Sepolia',
|
|
292
|
+
alchemyNetwork: 'linea-sepolia',
|
|
293
|
+
explorerDomain: 'api-sepolia.lineascan.build',
|
|
294
|
+
explorerBrowserDomain: 'sepolia.lineascan.build',
|
|
295
|
+
usdcAddress: '0x',
|
|
296
|
+
isDev: true,
|
|
297
|
+
},
|
|
144
298
|
// Scroll
|
|
145
|
-
[enums_1.Chain.SCROLL_MAINNET]:
|
|
146
|
-
|
|
299
|
+
[enums_1.Chain.SCROLL_MAINNET]: {
|
|
300
|
+
chainType: enums_1.ChainType.EVM,
|
|
301
|
+
chainId: 534352,
|
|
302
|
+
name: 'Scroll',
|
|
303
|
+
alchemyNetwork: 'scroll-mainnet',
|
|
304
|
+
explorerDomain: 'api.scrollscan.com',
|
|
305
|
+
explorerBrowserDomain: 'scrollscan.com',
|
|
306
|
+
usdcAddress: '0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4',
|
|
307
|
+
isDev: false,
|
|
308
|
+
},
|
|
309
|
+
[enums_1.Chain.SCROLL_SEPOLIA]: {
|
|
310
|
+
chainType: enums_1.ChainType.EVM,
|
|
311
|
+
chainId: 534351,
|
|
312
|
+
name: 'Scroll Sepolia',
|
|
313
|
+
alchemyNetwork: 'scroll-sepolia',
|
|
314
|
+
explorerDomain: 'api-sepolia.scrollscan.com',
|
|
315
|
+
explorerBrowserDomain: 'sepolia.scrollscan.com',
|
|
316
|
+
usdcAddress: '0x',
|
|
317
|
+
isDev: true,
|
|
318
|
+
},
|
|
147
319
|
// Monad
|
|
148
|
-
[enums_1.Chain.MONAD_MAINNET]:
|
|
149
|
-
|
|
320
|
+
[enums_1.Chain.MONAD_MAINNET]: {
|
|
321
|
+
chainType: enums_1.ChainType.EVM,
|
|
322
|
+
chainId: 10000,
|
|
323
|
+
name: 'Monad',
|
|
324
|
+
alchemyNetwork: '',
|
|
325
|
+
explorerDomain: '',
|
|
326
|
+
explorerBrowserDomain: 'explorer.monad.xyz',
|
|
327
|
+
usdcAddress: '0x',
|
|
328
|
+
isDev: false,
|
|
329
|
+
},
|
|
330
|
+
[enums_1.Chain.MONAD_TESTNET]: {
|
|
331
|
+
chainType: enums_1.ChainType.EVM,
|
|
332
|
+
chainId: 10001,
|
|
333
|
+
name: 'Monad Testnet',
|
|
334
|
+
alchemyNetwork: '',
|
|
335
|
+
explorerDomain: '',
|
|
336
|
+
explorerBrowserDomain: 'testnet.explorer.monad.xyz',
|
|
337
|
+
usdcAddress: '0x',
|
|
338
|
+
isDev: true,
|
|
339
|
+
},
|
|
150
340
|
// Story Protocol
|
|
151
|
-
[enums_1.Chain.STORY_MAINNET]:
|
|
152
|
-
|
|
341
|
+
[enums_1.Chain.STORY_MAINNET]: {
|
|
342
|
+
chainType: enums_1.ChainType.EVM,
|
|
343
|
+
chainId: 1516,
|
|
344
|
+
name: 'Story',
|
|
345
|
+
alchemyNetwork: '',
|
|
346
|
+
explorerDomain: '',
|
|
347
|
+
explorerBrowserDomain: 'explorer.story.foundation',
|
|
348
|
+
usdcAddress: '0x',
|
|
349
|
+
isDev: false,
|
|
350
|
+
},
|
|
351
|
+
[enums_1.Chain.STORY_TESTNET]: {
|
|
352
|
+
chainType: enums_1.ChainType.EVM,
|
|
353
|
+
chainId: 1513,
|
|
354
|
+
name: 'Story Testnet',
|
|
355
|
+
alchemyNetwork: '',
|
|
356
|
+
explorerDomain: '',
|
|
357
|
+
explorerBrowserDomain: 'testnet.explorer.story.foundation',
|
|
358
|
+
usdcAddress: '0x',
|
|
359
|
+
isDev: true,
|
|
360
|
+
},
|
|
153
361
|
// Plume Network
|
|
154
|
-
[enums_1.Chain.PLUME_MAINNET]:
|
|
155
|
-
|
|
362
|
+
[enums_1.Chain.PLUME_MAINNET]: {
|
|
363
|
+
chainType: enums_1.ChainType.EVM,
|
|
364
|
+
chainId: 98865,
|
|
365
|
+
name: 'Plume',
|
|
366
|
+
alchemyNetwork: '',
|
|
367
|
+
explorerDomain: '',
|
|
368
|
+
explorerBrowserDomain: 'explorer.plumenetwork.xyz',
|
|
369
|
+
usdcAddress: '0x222365EF19F7947e5484218551B56bb3965Aa7aF',
|
|
370
|
+
isDev: false,
|
|
371
|
+
},
|
|
372
|
+
[enums_1.Chain.PLUME_TESTNET]: {
|
|
373
|
+
chainType: enums_1.ChainType.EVM,
|
|
374
|
+
chainId: 98864,
|
|
375
|
+
name: 'Plume Testnet',
|
|
376
|
+
alchemyNetwork: '',
|
|
377
|
+
explorerDomain: '',
|
|
378
|
+
explorerBrowserDomain: 'testnet.explorer.plumenetwork.xyz',
|
|
379
|
+
usdcAddress: '0xcB5f30e335672893c7eb944B374c196392C19D18',
|
|
380
|
+
isDev: true,
|
|
381
|
+
},
|
|
156
382
|
// Nexus
|
|
157
|
-
[enums_1.Chain.NEXUS_MAINNET]:
|
|
158
|
-
|
|
383
|
+
[enums_1.Chain.NEXUS_MAINNET]: {
|
|
384
|
+
chainType: enums_1.ChainType.EVM,
|
|
385
|
+
chainId: 9999,
|
|
386
|
+
name: 'Nexus',
|
|
387
|
+
alchemyNetwork: '',
|
|
388
|
+
explorerDomain: '',
|
|
389
|
+
explorerBrowserDomain: 'explorer.nexus.xyz',
|
|
390
|
+
usdcAddress: '0x',
|
|
391
|
+
isDev: false,
|
|
392
|
+
},
|
|
393
|
+
[enums_1.Chain.NEXUS_TESTNET]: {
|
|
394
|
+
chainType: enums_1.ChainType.EVM,
|
|
395
|
+
chainId: 9998,
|
|
396
|
+
name: 'Nexus Testnet',
|
|
397
|
+
alchemyNetwork: '',
|
|
398
|
+
explorerDomain: '',
|
|
399
|
+
explorerBrowserDomain: 'testnet.explorer.nexus.xyz',
|
|
400
|
+
usdcAddress: '0x',
|
|
401
|
+
isDev: true,
|
|
402
|
+
},
|
|
159
403
|
// HyperEVM
|
|
160
|
-
[enums_1.Chain.HYPEREVM_MAINNET]:
|
|
161
|
-
|
|
404
|
+
[enums_1.Chain.HYPEREVM_MAINNET]: {
|
|
405
|
+
chainType: enums_1.ChainType.EVM,
|
|
406
|
+
chainId: 998,
|
|
407
|
+
name: 'HyperEVM',
|
|
408
|
+
alchemyNetwork: '',
|
|
409
|
+
explorerDomain: '',
|
|
410
|
+
explorerBrowserDomain: 'app.hyperliquid.xyz/explorer',
|
|
411
|
+
usdcAddress: '0xb88339CB7199b77E23DB6E890353E22632Ba630f',
|
|
412
|
+
isDev: false,
|
|
413
|
+
},
|
|
414
|
+
[enums_1.Chain.HYPEREVM_TESTNET]: {
|
|
415
|
+
chainType: enums_1.ChainType.EVM,
|
|
416
|
+
chainId: 997,
|
|
417
|
+
name: 'HyperEVM Testnet',
|
|
418
|
+
alchemyNetwork: '',
|
|
419
|
+
explorerDomain: '',
|
|
420
|
+
explorerBrowserDomain: 'app.hyperliquid-testnet.xyz/explorer',
|
|
421
|
+
usdcAddress: '0x2B3370eE501B4a559b57D449569354196457D8Ab',
|
|
422
|
+
isDev: true,
|
|
423
|
+
},
|
|
162
424
|
// Sonic
|
|
163
|
-
[enums_1.Chain.SONIC_MAINNET]:
|
|
164
|
-
|
|
165
|
-
|
|
425
|
+
[enums_1.Chain.SONIC_MAINNET]: {
|
|
426
|
+
chainType: enums_1.ChainType.EVM,
|
|
427
|
+
chainId: 146,
|
|
428
|
+
name: 'Sonic',
|
|
429
|
+
alchemyNetwork: '',
|
|
430
|
+
explorerDomain: '',
|
|
431
|
+
explorerBrowserDomain: 'sonicscan.org',
|
|
432
|
+
usdcAddress: '0x29219dd400f2Bf60E5a23d13Be72B486D4038894',
|
|
433
|
+
isDev: false,
|
|
434
|
+
},
|
|
435
|
+
[enums_1.Chain.SONIC_TESTNET]: {
|
|
436
|
+
chainType: enums_1.ChainType.EVM,
|
|
437
|
+
chainId: 64165,
|
|
438
|
+
name: 'Sonic Testnet',
|
|
439
|
+
alchemyNetwork: '',
|
|
440
|
+
explorerDomain: '',
|
|
441
|
+
explorerBrowserDomain: 'testnet.sonicscan.org',
|
|
442
|
+
usdcAddress: '0x0BA304580ee7c9a980CF72e55f5Ed2E9fd30Bc51',
|
|
443
|
+
isDev: true,
|
|
444
|
+
},
|
|
445
|
+
[enums_1.Chain.SONIC_BLAZE]: {
|
|
446
|
+
chainType: enums_1.ChainType.EVM,
|
|
447
|
+
chainId: 57054,
|
|
448
|
+
name: 'Sonic Blaze',
|
|
449
|
+
alchemyNetwork: '',
|
|
450
|
+
explorerDomain: '',
|
|
451
|
+
explorerBrowserDomain: 'blaze.sonicscan.org',
|
|
452
|
+
usdcAddress: '0xA4879Fed32Ecbef99399e5cbC247E533421C4eC6',
|
|
453
|
+
isDev: true,
|
|
454
|
+
},
|
|
166
455
|
// Unichain
|
|
167
|
-
[enums_1.Chain.UNICHAIN_MAINNET]:
|
|
168
|
-
|
|
456
|
+
[enums_1.Chain.UNICHAIN_MAINNET]: {
|
|
457
|
+
chainType: enums_1.ChainType.EVM,
|
|
458
|
+
chainId: 1,
|
|
459
|
+
name: 'Unichain',
|
|
460
|
+
alchemyNetwork: '',
|
|
461
|
+
explorerDomain: '',
|
|
462
|
+
explorerBrowserDomain: 'uniscan.xyz',
|
|
463
|
+
usdcAddress: '0x078D782b760474a361dDA0AF3839290b0EF57AD6',
|
|
464
|
+
isDev: false,
|
|
465
|
+
},
|
|
466
|
+
[enums_1.Chain.UNICHAIN_SEPOLIA]: {
|
|
467
|
+
chainType: enums_1.ChainType.EVM,
|
|
468
|
+
chainId: 1301,
|
|
469
|
+
name: 'Unichain Sepolia',
|
|
470
|
+
alchemyNetwork: '',
|
|
471
|
+
explorerDomain: '',
|
|
472
|
+
explorerBrowserDomain: 'sepolia.uniscan.xyz',
|
|
473
|
+
usdcAddress: '0x31d0220469e10c4E71834a79b1f276E153D00a2D',
|
|
474
|
+
isDev: true,
|
|
475
|
+
},
|
|
169
476
|
// World Chain
|
|
170
|
-
[enums_1.Chain.WORLD_MAINNET]:
|
|
477
|
+
[enums_1.Chain.WORLD_MAINNET]: {
|
|
478
|
+
chainType: enums_1.ChainType.EVM,
|
|
479
|
+
chainId: 480,
|
|
480
|
+
name: 'World Chain',
|
|
481
|
+
alchemyNetwork: '',
|
|
482
|
+
explorerDomain: '',
|
|
483
|
+
explorerBrowserDomain: 'worldscan.org',
|
|
484
|
+
usdcAddress: '0x79A02482A880bCe3F13E09da970dC34dB4cD24D1',
|
|
485
|
+
isDev: false,
|
|
486
|
+
},
|
|
171
487
|
// XDC Network
|
|
172
|
-
[enums_1.Chain.XDC_MAINNET]:
|
|
488
|
+
[enums_1.Chain.XDC_MAINNET]: {
|
|
489
|
+
chainType: enums_1.ChainType.EVM,
|
|
490
|
+
chainId: 50,
|
|
491
|
+
name: 'XDC Network',
|
|
492
|
+
alchemyNetwork: '',
|
|
493
|
+
explorerDomain: '',
|
|
494
|
+
explorerBrowserDomain: 'xdcscan.io',
|
|
495
|
+
usdcAddress: '0x',
|
|
496
|
+
isDev: false,
|
|
497
|
+
},
|
|
173
498
|
// Ink
|
|
174
|
-
[enums_1.Chain.INK_TESTNET]:
|
|
499
|
+
[enums_1.Chain.INK_TESTNET]: {
|
|
500
|
+
chainType: enums_1.ChainType.EVM,
|
|
501
|
+
chainId: 763373,
|
|
502
|
+
name: 'Ink Testnet',
|
|
503
|
+
alchemyNetwork: '',
|
|
504
|
+
explorerDomain: '',
|
|
505
|
+
explorerBrowserDomain: 'explorer.inkonchain.com',
|
|
506
|
+
usdcAddress: '0xFabab97dCE620294D2B0b0e46C68964e326300Ac',
|
|
507
|
+
isDev: true,
|
|
508
|
+
},
|
|
175
509
|
// Fetch.ai
|
|
176
|
-
[enums_1.Chain.FETCH_MAINNET]:
|
|
177
|
-
|
|
510
|
+
[enums_1.Chain.FETCH_MAINNET]: {
|
|
511
|
+
chainType: enums_1.ChainType.EVM,
|
|
512
|
+
chainId: 2154,
|
|
513
|
+
name: 'Fetch.ai',
|
|
514
|
+
alchemyNetwork: '',
|
|
515
|
+
explorerDomain: '',
|
|
516
|
+
explorerBrowserDomain: 'explore.fetch.ai',
|
|
517
|
+
usdcAddress: '0x',
|
|
518
|
+
isDev: false,
|
|
519
|
+
},
|
|
520
|
+
[enums_1.Chain.FETCH_TESTNET]: {
|
|
521
|
+
chainType: enums_1.ChainType.EVM,
|
|
522
|
+
chainId: 2153,
|
|
523
|
+
name: 'Fetch.ai Testnet',
|
|
524
|
+
alchemyNetwork: '',
|
|
525
|
+
explorerDomain: '',
|
|
526
|
+
explorerBrowserDomain: 'explore-testnet.fetch.ai',
|
|
527
|
+
usdcAddress: '0x',
|
|
528
|
+
isDev: true,
|
|
529
|
+
},
|
|
178
530
|
// Gensyn
|
|
179
|
-
[enums_1.Chain.GENSYN_MAINNET]:
|
|
180
|
-
|
|
531
|
+
[enums_1.Chain.GENSYN_MAINNET]: {
|
|
532
|
+
chainType: enums_1.ChainType.EVM,
|
|
533
|
+
chainId: 8888,
|
|
534
|
+
name: 'Gensyn',
|
|
535
|
+
alchemyNetwork: '',
|
|
536
|
+
explorerDomain: '',
|
|
537
|
+
explorerBrowserDomain: 'explorer.gensyn.ai',
|
|
538
|
+
usdcAddress: '0x',
|
|
539
|
+
isDev: false,
|
|
540
|
+
},
|
|
541
|
+
[enums_1.Chain.GENSYN_TESTNET]: {
|
|
542
|
+
chainType: enums_1.ChainType.EVM,
|
|
543
|
+
chainId: 8887,
|
|
544
|
+
name: 'Gensyn Testnet',
|
|
545
|
+
alchemyNetwork: '',
|
|
546
|
+
explorerDomain: '',
|
|
547
|
+
explorerBrowserDomain: 'testnet.explorer.gensyn.ai',
|
|
548
|
+
usdcAddress: '0x',
|
|
549
|
+
isDev: true,
|
|
550
|
+
},
|
|
181
551
|
// Ritual
|
|
182
|
-
[enums_1.Chain.RITUAL_MAINNET]:
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
[enums_1.Chain.POLYGON_MUMBAI]: 'mumbai.polygonscan.com',
|
|
203
|
-
[enums_1.Chain.POLYGON_AMOY]: 'amoy.polygonscan.com',
|
|
204
|
-
// Optimism
|
|
205
|
-
[enums_1.Chain.OPTIMISM_MAINNET]: 'optimistic.etherscan.io',
|
|
206
|
-
[enums_1.Chain.OPTIMISM_SEPOLIA]: 'sepolia-optimistic.etherscan.io',
|
|
207
|
-
[enums_1.Chain.OPTIMISM_GOERLI]: 'goerli-optimistic.etherscan.io',
|
|
208
|
-
// Arbitrum
|
|
209
|
-
[enums_1.Chain.ARBITRUM_MAINNET]: 'arbiscan.io',
|
|
210
|
-
[enums_1.Chain.ARBITRUM_SEPOLIA]: 'sepolia.arbiscan.io',
|
|
211
|
-
[enums_1.Chain.ARBITRUM_GOERLI]: 'goerli.arbiscan.io',
|
|
212
|
-
// Base
|
|
213
|
-
[enums_1.Chain.BASE_MAINNET]: 'basescan.org',
|
|
214
|
-
[enums_1.Chain.BASE_SEPOLIA]: 'sepolia.basescan.org',
|
|
215
|
-
[enums_1.Chain.BASE_GOERLI]: 'goerli.basescan.org',
|
|
216
|
-
// Avalanche
|
|
217
|
-
[enums_1.Chain.AVALANCHE_MAINNET]: 'snowtrace.io',
|
|
218
|
-
[enums_1.Chain.AVALANCHE_FUJI]: 'testnet.snowtrace.io',
|
|
219
|
-
// BNB Chain
|
|
220
|
-
[enums_1.Chain.BNB_MAINNET]: 'bscscan.com',
|
|
221
|
-
[enums_1.Chain.BNB_TESTNET]: 'testnet.bscscan.com',
|
|
222
|
-
// Gnosis Chain
|
|
223
|
-
[enums_1.Chain.GNOSIS_MAINNET]: 'gnosisscan.io',
|
|
224
|
-
[enums_1.Chain.GNOSIS_CHIADO]: 'gnosis-chiado.blockscout.com',
|
|
225
|
-
// Celo
|
|
226
|
-
[enums_1.Chain.CELO_MAINNET]: 'celoscan.io',
|
|
227
|
-
[enums_1.Chain.CELO_ALFAJORES]: 'alfajores.celoscan.io',
|
|
228
|
-
// zkSync
|
|
229
|
-
[enums_1.Chain.ZKSYNC_MAINNET]: 'explorer.zksync.io',
|
|
230
|
-
[enums_1.Chain.ZKSYNC_SEPOLIA]: 'sepolia.explorer.zksync.io',
|
|
231
|
-
// Linea
|
|
232
|
-
[enums_1.Chain.LINEA_MAINNET]: 'lineascan.build',
|
|
233
|
-
[enums_1.Chain.LINEA_SEPOLIA]: 'sepolia.lineascan.build',
|
|
234
|
-
// Scroll
|
|
235
|
-
[enums_1.Chain.SCROLL_MAINNET]: 'scrollscan.com',
|
|
236
|
-
[enums_1.Chain.SCROLL_SEPOLIA]: 'sepolia.scrollscan.com',
|
|
237
|
-
// Monad
|
|
238
|
-
[enums_1.Chain.MONAD_MAINNET]: 'explorer.monad.xyz',
|
|
239
|
-
[enums_1.Chain.MONAD_TESTNET]: 'testnet.explorer.monad.xyz',
|
|
240
|
-
// Story Protocol
|
|
241
|
-
[enums_1.Chain.STORY_MAINNET]: 'explorer.story.foundation',
|
|
242
|
-
[enums_1.Chain.STORY_TESTNET]: 'testnet.explorer.story.foundation',
|
|
243
|
-
// Plume Network
|
|
244
|
-
[enums_1.Chain.PLUME_MAINNET]: 'explorer.plumenetwork.xyz',
|
|
245
|
-
[enums_1.Chain.PLUME_TESTNET]: 'testnet.explorer.plumenetwork.xyz',
|
|
246
|
-
// Nexus
|
|
247
|
-
[enums_1.Chain.NEXUS_MAINNET]: 'explorer.nexus.xyz',
|
|
248
|
-
[enums_1.Chain.NEXUS_TESTNET]: 'testnet.explorer.nexus.xyz',
|
|
249
|
-
// HyperEVM
|
|
250
|
-
[enums_1.Chain.HYPEREVM_MAINNET]: 'app.hyperliquid.xyz/explorer',
|
|
251
|
-
[enums_1.Chain.HYPEREVM_TESTNET]: 'app.hyperliquid-testnet.xyz/explorer',
|
|
252
|
-
// Sonic
|
|
253
|
-
[enums_1.Chain.SONIC_MAINNET]: 'sonicscan.org',
|
|
254
|
-
[enums_1.Chain.SONIC_TESTNET]: 'testnet.sonicscan.org',
|
|
255
|
-
[enums_1.Chain.SONIC_BLAZE]: 'blaze.sonicscan.org',
|
|
256
|
-
// Unichain
|
|
257
|
-
[enums_1.Chain.UNICHAIN_MAINNET]: 'uniscan.xyz',
|
|
258
|
-
[enums_1.Chain.UNICHAIN_SEPOLIA]: 'sepolia.uniscan.xyz',
|
|
259
|
-
// World Chain
|
|
260
|
-
[enums_1.Chain.WORLD_MAINNET]: 'worldscan.org',
|
|
261
|
-
// XDC Network
|
|
262
|
-
[enums_1.Chain.XDC_MAINNET]: 'xdcscan.io',
|
|
263
|
-
// Ink
|
|
264
|
-
[enums_1.Chain.INK_TESTNET]: 'explorer.inkonchain.com',
|
|
265
|
-
// Fetch.ai
|
|
266
|
-
[enums_1.Chain.FETCH_MAINNET]: 'explore.fetch.ai',
|
|
267
|
-
[enums_1.Chain.FETCH_TESTNET]: 'explore-testnet.fetch.ai',
|
|
268
|
-
// Gensyn
|
|
269
|
-
[enums_1.Chain.GENSYN_MAINNET]: 'explorer.gensyn.ai',
|
|
270
|
-
[enums_1.Chain.GENSYN_TESTNET]: 'testnet.explorer.gensyn.ai',
|
|
271
|
-
// Ritual
|
|
272
|
-
[enums_1.Chain.RITUAL_MAINNET]: 'explorer.ritual.net',
|
|
273
|
-
[enums_1.Chain.RITUAL_TESTNET]: 'testnet.explorer.ritual.net',
|
|
552
|
+
[enums_1.Chain.RITUAL_MAINNET]: {
|
|
553
|
+
chainType: enums_1.ChainType.EVM,
|
|
554
|
+
chainId: 7777,
|
|
555
|
+
name: 'Ritual',
|
|
556
|
+
alchemyNetwork: '',
|
|
557
|
+
explorerDomain: '',
|
|
558
|
+
explorerBrowserDomain: 'explorer.ritual.net',
|
|
559
|
+
usdcAddress: '0x',
|
|
560
|
+
isDev: false,
|
|
561
|
+
},
|
|
562
|
+
[enums_1.Chain.RITUAL_TESTNET]: {
|
|
563
|
+
chainType: enums_1.ChainType.EVM,
|
|
564
|
+
chainId: 7776,
|
|
565
|
+
name: 'Ritual Testnet',
|
|
566
|
+
alchemyNetwork: '',
|
|
567
|
+
explorerDomain: '',
|
|
568
|
+
explorerBrowserDomain: 'testnet.explorer.ritual.net',
|
|
569
|
+
usdcAddress: '0x',
|
|
570
|
+
isDev: true,
|
|
571
|
+
},
|
|
274
572
|
// Solana
|
|
275
|
-
[enums_1.Chain.SOLANA_MAINNET]:
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
enums_1.Chain.
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
enums_1.Chain.GNOSIS_MAINNET,
|
|
306
|
-
enums_1.Chain.GNOSIS_CHIADO,
|
|
307
|
-
enums_1.Chain.CELO_MAINNET,
|
|
308
|
-
enums_1.Chain.CELO_ALFAJORES,
|
|
309
|
-
enums_1.Chain.ZKSYNC_MAINNET,
|
|
310
|
-
enums_1.Chain.ZKSYNC_SEPOLIA,
|
|
311
|
-
enums_1.Chain.LINEA_MAINNET,
|
|
312
|
-
enums_1.Chain.LINEA_SEPOLIA,
|
|
313
|
-
enums_1.Chain.SCROLL_MAINNET,
|
|
314
|
-
enums_1.Chain.SCROLL_SEPOLIA,
|
|
315
|
-
enums_1.Chain.MONAD_MAINNET,
|
|
316
|
-
enums_1.Chain.MONAD_TESTNET,
|
|
317
|
-
enums_1.Chain.STORY_MAINNET,
|
|
318
|
-
enums_1.Chain.STORY_TESTNET,
|
|
319
|
-
enums_1.Chain.PLUME_MAINNET,
|
|
320
|
-
enums_1.Chain.PLUME_TESTNET,
|
|
321
|
-
enums_1.Chain.NEXUS_MAINNET,
|
|
322
|
-
enums_1.Chain.NEXUS_TESTNET,
|
|
323
|
-
enums_1.Chain.HYPEREVM_MAINNET,
|
|
324
|
-
enums_1.Chain.HYPEREVM_TESTNET,
|
|
325
|
-
enums_1.Chain.SONIC_MAINNET,
|
|
326
|
-
enums_1.Chain.SONIC_TESTNET,
|
|
327
|
-
enums_1.Chain.SONIC_BLAZE,
|
|
328
|
-
enums_1.Chain.UNICHAIN_MAINNET,
|
|
329
|
-
enums_1.Chain.UNICHAIN_SEPOLIA,
|
|
330
|
-
enums_1.Chain.WORLD_MAINNET,
|
|
331
|
-
enums_1.Chain.XDC_MAINNET,
|
|
332
|
-
enums_1.Chain.INK_TESTNET,
|
|
333
|
-
enums_1.Chain.FETCH_MAINNET,
|
|
334
|
-
enums_1.Chain.FETCH_TESTNET,
|
|
335
|
-
enums_1.Chain.GENSYN_MAINNET,
|
|
336
|
-
enums_1.Chain.GENSYN_TESTNET,
|
|
337
|
-
enums_1.Chain.RITUAL_MAINNET,
|
|
338
|
-
enums_1.Chain.RITUAL_TESTNET,
|
|
339
|
-
enums_1.Chain.EVM_LOCAL,
|
|
340
|
-
]);
|
|
341
|
-
/**
|
|
342
|
-
* Solana chains (used for type checking)
|
|
343
|
-
*/
|
|
344
|
-
const SOLANA_CHAINS = new Set([
|
|
345
|
-
enums_1.Chain.SOLANA_MAINNET,
|
|
346
|
-
enums_1.Chain.SOLANA_DEVNET,
|
|
347
|
-
enums_1.Chain.SOLANA_TESTNET,
|
|
348
|
-
enums_1.Chain.SOLANA_LOCAL,
|
|
349
|
-
]);
|
|
350
|
-
/**
|
|
351
|
-
* Chain ID mappings
|
|
352
|
-
* EVM chains use positive IDs, Solana chains use negative IDs
|
|
353
|
-
*/
|
|
354
|
-
const CHAIN_ID_MAP = {
|
|
355
|
-
// Ethereum
|
|
356
|
-
[enums_1.Chain.ETH_MAINNET]: 1,
|
|
357
|
-
[enums_1.Chain.ETH_SEPOLIA]: 11155111,
|
|
358
|
-
[enums_1.Chain.ETH_GOERLI]: 5,
|
|
359
|
-
// Polygon
|
|
360
|
-
[enums_1.Chain.POLYGON_MAINNET]: 137,
|
|
361
|
-
[enums_1.Chain.POLYGON_MUMBAI]: 80001,
|
|
362
|
-
[enums_1.Chain.POLYGON_AMOY]: 80002,
|
|
363
|
-
// Optimism
|
|
364
|
-
[enums_1.Chain.OPTIMISM_MAINNET]: 10,
|
|
365
|
-
[enums_1.Chain.OPTIMISM_SEPOLIA]: 11155420,
|
|
366
|
-
[enums_1.Chain.OPTIMISM_GOERLI]: 420,
|
|
367
|
-
// Arbitrum
|
|
368
|
-
[enums_1.Chain.ARBITRUM_MAINNET]: 42161,
|
|
369
|
-
[enums_1.Chain.ARBITRUM_SEPOLIA]: 421614,
|
|
370
|
-
[enums_1.Chain.ARBITRUM_GOERLI]: 421613,
|
|
371
|
-
// Base
|
|
372
|
-
[enums_1.Chain.BASE_MAINNET]: 8453,
|
|
373
|
-
[enums_1.Chain.BASE_SEPOLIA]: 84532,
|
|
374
|
-
[enums_1.Chain.BASE_GOERLI]: 84531,
|
|
375
|
-
// Avalanche
|
|
376
|
-
[enums_1.Chain.AVALANCHE_MAINNET]: 43114,
|
|
377
|
-
[enums_1.Chain.AVALANCHE_FUJI]: 43113,
|
|
378
|
-
// BNB Chain
|
|
379
|
-
[enums_1.Chain.BNB_MAINNET]: 56,
|
|
380
|
-
[enums_1.Chain.BNB_TESTNET]: 97,
|
|
381
|
-
// Gnosis Chain
|
|
382
|
-
[enums_1.Chain.GNOSIS_MAINNET]: 100,
|
|
383
|
-
[enums_1.Chain.GNOSIS_CHIADO]: 10200,
|
|
384
|
-
// Celo
|
|
385
|
-
[enums_1.Chain.CELO_MAINNET]: 42220,
|
|
386
|
-
[enums_1.Chain.CELO_ALFAJORES]: 44787,
|
|
387
|
-
// zkSync
|
|
388
|
-
[enums_1.Chain.ZKSYNC_MAINNET]: 324,
|
|
389
|
-
[enums_1.Chain.ZKSYNC_SEPOLIA]: 300,
|
|
390
|
-
// Linea
|
|
391
|
-
[enums_1.Chain.LINEA_MAINNET]: 59144,
|
|
392
|
-
[enums_1.Chain.LINEA_SEPOLIA]: 59141,
|
|
393
|
-
// Scroll
|
|
394
|
-
[enums_1.Chain.SCROLL_MAINNET]: 534352,
|
|
395
|
-
[enums_1.Chain.SCROLL_SEPOLIA]: 534351,
|
|
396
|
-
// Monad
|
|
397
|
-
[enums_1.Chain.MONAD_MAINNET]: 10000, // TBD - placeholder
|
|
398
|
-
[enums_1.Chain.MONAD_TESTNET]: 10001, // TBD - placeholder
|
|
399
|
-
// Story Protocol
|
|
400
|
-
[enums_1.Chain.STORY_MAINNET]: 1516, // Actual Story chain ID
|
|
401
|
-
[enums_1.Chain.STORY_TESTNET]: 1513, // Story testnet chain ID
|
|
402
|
-
// Plume Network
|
|
403
|
-
[enums_1.Chain.PLUME_MAINNET]: 98865, // Plume mainnet
|
|
404
|
-
[enums_1.Chain.PLUME_TESTNET]: 98864, // Plume testnet
|
|
405
|
-
// Nexus
|
|
406
|
-
[enums_1.Chain.NEXUS_MAINNET]: 9999, // TBD - placeholder
|
|
407
|
-
[enums_1.Chain.NEXUS_TESTNET]: 9998, // TBD - placeholder
|
|
408
|
-
// HyperEVM
|
|
409
|
-
[enums_1.Chain.HYPEREVM_MAINNET]: 998, // HyperEVM L1
|
|
410
|
-
[enums_1.Chain.HYPEREVM_TESTNET]: 997, // HyperEVM testnet
|
|
411
|
-
// Sonic
|
|
412
|
-
[enums_1.Chain.SONIC_MAINNET]: 146, // Sonic mainnet
|
|
413
|
-
[enums_1.Chain.SONIC_TESTNET]: 64165, // Sonic testnet (S)
|
|
414
|
-
[enums_1.Chain.SONIC_BLAZE]: 57054, // Sonic Blaze testnet (deprecated soon)
|
|
415
|
-
// Unichain
|
|
416
|
-
[enums_1.Chain.UNICHAIN_MAINNET]: 1, // TBD - mainnet not launched yet, placeholder
|
|
417
|
-
[enums_1.Chain.UNICHAIN_SEPOLIA]: 1301, // Unichain Sepolia testnet
|
|
418
|
-
// World Chain
|
|
419
|
-
[enums_1.Chain.WORLD_MAINNET]: 480, // World Chain mainnet
|
|
420
|
-
// XDC Network
|
|
421
|
-
[enums_1.Chain.XDC_MAINNET]: 50, // XDC Network mainnet
|
|
422
|
-
// Ink
|
|
423
|
-
[enums_1.Chain.INK_TESTNET]: 763373, // Ink testnet (Sepolia)
|
|
424
|
-
// Fetch.ai (Cosmos-based but supports EVM)
|
|
425
|
-
[enums_1.Chain.FETCH_MAINNET]: 2154, // Fetch.ai EVM
|
|
426
|
-
[enums_1.Chain.FETCH_TESTNET]: 2153, // Fetch.ai testnet
|
|
427
|
-
// Gensyn
|
|
428
|
-
[enums_1.Chain.GENSYN_MAINNET]: 8888, // TBD - placeholder
|
|
429
|
-
[enums_1.Chain.GENSYN_TESTNET]: 8887, // TBD - placeholder
|
|
430
|
-
// Ritual
|
|
431
|
-
[enums_1.Chain.RITUAL_MAINNET]: 7777, // TBD - placeholder
|
|
432
|
-
[enums_1.Chain.RITUAL_TESTNET]: 7776, // TBD - placeholder
|
|
433
|
-
// Solana (negative IDs)
|
|
434
|
-
[enums_1.Chain.SOLANA_MAINNET]: -101,
|
|
435
|
-
[enums_1.Chain.SOLANA_DEVNET]: -102,
|
|
436
|
-
[enums_1.Chain.SOLANA_TESTNET]: -103,
|
|
437
|
-
// Local development
|
|
438
|
-
[enums_1.Chain.EVM_LOCAL]: 31337,
|
|
439
|
-
[enums_1.Chain.SOLANA_LOCAL]: -104,
|
|
440
|
-
};
|
|
441
|
-
/**
|
|
442
|
-
* USDC address/mint mappings
|
|
443
|
-
* EVM chains have contract addresses, Solana chains have mint addresses
|
|
444
|
-
* Source: https://developers.circle.com/stablecoins/usdc-contract-addresses
|
|
445
|
-
*/
|
|
446
|
-
const USDC_ADDRESS_MAP = {
|
|
447
|
-
// Ethereum - Official Circle USDC
|
|
448
|
-
[enums_1.Chain.ETH_MAINNET]: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
|
|
449
|
-
[enums_1.Chain.ETH_SEPOLIA]: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
|
|
450
|
-
[enums_1.Chain.ETH_GOERLI]: '0x07865c6E87B9F70255377e024ace6630C1Eaa37F', // Deprecated
|
|
451
|
-
// Polygon - Official Circle USDC (native USDC)
|
|
452
|
-
[enums_1.Chain.POLYGON_MAINNET]: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',
|
|
453
|
-
[enums_1.Chain.POLYGON_MUMBAI]: '0x9999f7Fea5938fD3b1E26A12c3f2fb024e194f97', // Deprecated
|
|
454
|
-
[enums_1.Chain.POLYGON_AMOY]: '0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582',
|
|
455
|
-
// Optimism - Official Circle USDC
|
|
456
|
-
[enums_1.Chain.OPTIMISM_MAINNET]: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
|
|
457
|
-
[enums_1.Chain.OPTIMISM_SEPOLIA]: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',
|
|
458
|
-
[enums_1.Chain.OPTIMISM_GOERLI]: '0xe05606174bac4A6364B31bd0eCA4bf4dD368f8C6', // Deprecated
|
|
459
|
-
// Arbitrum - Official Circle USDC
|
|
460
|
-
[enums_1.Chain.ARBITRUM_MAINNET]: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
461
|
-
[enums_1.Chain.ARBITRUM_SEPOLIA]: '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d',
|
|
462
|
-
[enums_1.Chain.ARBITRUM_GOERLI]: '0xfd064A18f3BF249cf1f87FC203E90D8f650f2d63', // Deprecated
|
|
463
|
-
// Base - Official Circle USDC
|
|
464
|
-
[enums_1.Chain.BASE_MAINNET]: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
|
|
465
|
-
[enums_1.Chain.BASE_SEPOLIA]: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
|
|
466
|
-
[enums_1.Chain.BASE_GOERLI]: '0xF175520C52418dfE19C8098071a252da48Cd1C19', // Deprecated
|
|
467
|
-
// Avalanche - Official Circle USDC
|
|
468
|
-
[enums_1.Chain.AVALANCHE_MAINNET]: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E',
|
|
469
|
-
[enums_1.Chain.AVALANCHE_FUJI]: '0x5425890298aed601595a70AB815c96711a31Bc65',
|
|
470
|
-
// BNB Chain
|
|
471
|
-
[enums_1.Chain.BNB_MAINNET]: '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d',
|
|
472
|
-
[enums_1.Chain.BNB_TESTNET]: '0x64544969ed7EBf5f083679233325356EbE738930',
|
|
473
|
-
// Gnosis Chain
|
|
474
|
-
[enums_1.Chain.GNOSIS_MAINNET]: '0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83',
|
|
475
|
-
[enums_1.Chain.GNOSIS_CHIADO]: '0x',
|
|
476
|
-
// Celo
|
|
477
|
-
[enums_1.Chain.CELO_MAINNET]: '0xcebA9300f2b948710d2653dD7B07f33A8B32118C',
|
|
478
|
-
[enums_1.Chain.CELO_ALFAJORES]: '0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B',
|
|
479
|
-
// zkSync - Official Circle USDC
|
|
480
|
-
[enums_1.Chain.ZKSYNC_MAINNET]: '0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4',
|
|
481
|
-
[enums_1.Chain.ZKSYNC_SEPOLIA]: '0x',
|
|
482
|
-
// Linea
|
|
483
|
-
[enums_1.Chain.LINEA_MAINNET]: '0x176211869cA2b568f2A7D4EE941E073a821EE1ff',
|
|
484
|
-
[enums_1.Chain.LINEA_SEPOLIA]: '0x',
|
|
485
|
-
// Scroll
|
|
486
|
-
[enums_1.Chain.SCROLL_MAINNET]: '0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4',
|
|
487
|
-
[enums_1.Chain.SCROLL_SEPOLIA]: '0x',
|
|
488
|
-
// Monad
|
|
489
|
-
[enums_1.Chain.MONAD_MAINNET]: '0x',
|
|
490
|
-
[enums_1.Chain.MONAD_TESTNET]: '0x',
|
|
491
|
-
// Story Protocol
|
|
492
|
-
[enums_1.Chain.STORY_MAINNET]: '0x',
|
|
493
|
-
[enums_1.Chain.STORY_TESTNET]: '0x',
|
|
494
|
-
// Plume Network
|
|
495
|
-
[enums_1.Chain.PLUME_MAINNET]: '0x222365EF19F7947e5484218551B56bb3965Aa7aF',
|
|
496
|
-
[enums_1.Chain.PLUME_TESTNET]: '0xcB5f30e335672893c7eb944B374c196392C19D18',
|
|
497
|
-
// Nexus
|
|
498
|
-
[enums_1.Chain.NEXUS_MAINNET]: '0x',
|
|
499
|
-
[enums_1.Chain.NEXUS_TESTNET]: '0x',
|
|
500
|
-
// HyperEVM
|
|
501
|
-
[enums_1.Chain.HYPEREVM_MAINNET]: '0xb88339CB7199b77E23DB6E890353E22632Ba630f',
|
|
502
|
-
[enums_1.Chain.HYPEREVM_TESTNET]: '0x2B3370eE501B4a559b57D449569354196457D8Ab',
|
|
503
|
-
// Sonic
|
|
504
|
-
[enums_1.Chain.SONIC_MAINNET]: '0x29219dd400f2Bf60E5a23d13Be72B486D4038894',
|
|
505
|
-
[enums_1.Chain.SONIC_TESTNET]: '0x0BA304580ee7c9a980CF72e55f5Ed2E9fd30Bc51',
|
|
506
|
-
[enums_1.Chain.SONIC_BLAZE]: '0xA4879Fed32Ecbef99399e5cbC247E533421C4eC6',
|
|
507
|
-
// Unichain
|
|
508
|
-
[enums_1.Chain.UNICHAIN_MAINNET]: '0x078D782b760474a361dDA0AF3839290b0EF57AD6',
|
|
509
|
-
[enums_1.Chain.UNICHAIN_SEPOLIA]: '0x31d0220469e10c4E71834a79b1f276E153D00a2D',
|
|
510
|
-
// World Chain
|
|
511
|
-
[enums_1.Chain.WORLD_MAINNET]: '0x79A02482A880bCe3F13E09da970dC34dB4cD24D1',
|
|
512
|
-
// XDC Network
|
|
513
|
-
[enums_1.Chain.XDC_MAINNET]: '0x',
|
|
514
|
-
// Ink
|
|
515
|
-
[enums_1.Chain.INK_TESTNET]: '0xFabab97dCE620294D2B0b0e46C68964e326300Ac',
|
|
516
|
-
// Fetch.ai
|
|
517
|
-
[enums_1.Chain.FETCH_MAINNET]: '0x',
|
|
518
|
-
[enums_1.Chain.FETCH_TESTNET]: '0x',
|
|
519
|
-
// Gensyn
|
|
520
|
-
[enums_1.Chain.GENSYN_MAINNET]: '0x',
|
|
521
|
-
[enums_1.Chain.GENSYN_TESTNET]: '0x',
|
|
522
|
-
// Ritual
|
|
523
|
-
[enums_1.Chain.RITUAL_MAINNET]: '0x',
|
|
524
|
-
[enums_1.Chain.RITUAL_TESTNET]: '0x',
|
|
525
|
-
// Solana (mint addresses)
|
|
526
|
-
[enums_1.Chain.SOLANA_MAINNET]: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
|
|
527
|
-
[enums_1.Chain.SOLANA_DEVNET]: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
|
|
528
|
-
[enums_1.Chain.SOLANA_TESTNET]: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
|
|
529
|
-
// Local development - mock addresses
|
|
530
|
-
[enums_1.Chain.EVM_LOCAL]: '0x0000000000000000000000000000000000000000',
|
|
531
|
-
[enums_1.Chain.SOLANA_LOCAL]: '11111111111111111111111111111111',
|
|
532
|
-
};
|
|
533
|
-
/**
|
|
534
|
-
* User-friendly chain name mappings
|
|
535
|
-
*/
|
|
536
|
-
const CHAIN_NAME_MAP = {
|
|
537
|
-
// Ethereum
|
|
538
|
-
[enums_1.Chain.ETH_MAINNET]: 'Ethereum',
|
|
539
|
-
[enums_1.Chain.ETH_SEPOLIA]: 'Ethereum Sepolia',
|
|
540
|
-
[enums_1.Chain.ETH_GOERLI]: 'Ethereum Goerli',
|
|
541
|
-
// Polygon
|
|
542
|
-
[enums_1.Chain.POLYGON_MAINNET]: 'Polygon',
|
|
543
|
-
[enums_1.Chain.POLYGON_MUMBAI]: 'Polygon Mumbai',
|
|
544
|
-
[enums_1.Chain.POLYGON_AMOY]: 'Polygon Amoy',
|
|
545
|
-
// Optimism
|
|
546
|
-
[enums_1.Chain.OPTIMISM_MAINNET]: 'Optimism',
|
|
547
|
-
[enums_1.Chain.OPTIMISM_SEPOLIA]: 'Optimism Sepolia',
|
|
548
|
-
[enums_1.Chain.OPTIMISM_GOERLI]: 'Optimism Goerli',
|
|
549
|
-
// Arbitrum
|
|
550
|
-
[enums_1.Chain.ARBITRUM_MAINNET]: 'Arbitrum',
|
|
551
|
-
[enums_1.Chain.ARBITRUM_SEPOLIA]: 'Arbitrum Sepolia',
|
|
552
|
-
[enums_1.Chain.ARBITRUM_GOERLI]: 'Arbitrum Goerli',
|
|
553
|
-
// Base
|
|
554
|
-
[enums_1.Chain.BASE_MAINNET]: 'Base',
|
|
555
|
-
[enums_1.Chain.BASE_SEPOLIA]: 'Base Sepolia',
|
|
556
|
-
[enums_1.Chain.BASE_GOERLI]: 'Base Goerli',
|
|
557
|
-
// Avalanche
|
|
558
|
-
[enums_1.Chain.AVALANCHE_MAINNET]: 'Avalanche',
|
|
559
|
-
[enums_1.Chain.AVALANCHE_FUJI]: 'Avalanche Fuji',
|
|
560
|
-
// BNB Chain
|
|
561
|
-
[enums_1.Chain.BNB_MAINNET]: 'BNB Chain',
|
|
562
|
-
[enums_1.Chain.BNB_TESTNET]: 'BNB Chain Testnet',
|
|
563
|
-
// Gnosis Chain
|
|
564
|
-
[enums_1.Chain.GNOSIS_MAINNET]: 'Gnosis',
|
|
565
|
-
[enums_1.Chain.GNOSIS_CHIADO]: 'Gnosis Chiado',
|
|
566
|
-
// Celo
|
|
567
|
-
[enums_1.Chain.CELO_MAINNET]: 'Celo',
|
|
568
|
-
[enums_1.Chain.CELO_ALFAJORES]: 'Celo Alfajores',
|
|
569
|
-
// zkSync
|
|
570
|
-
[enums_1.Chain.ZKSYNC_MAINNET]: 'zkSync',
|
|
571
|
-
[enums_1.Chain.ZKSYNC_SEPOLIA]: 'zkSync Sepolia',
|
|
572
|
-
// Linea
|
|
573
|
-
[enums_1.Chain.LINEA_MAINNET]: 'Linea',
|
|
574
|
-
[enums_1.Chain.LINEA_SEPOLIA]: 'Linea Sepolia',
|
|
575
|
-
// Scroll
|
|
576
|
-
[enums_1.Chain.SCROLL_MAINNET]: 'Scroll',
|
|
577
|
-
[enums_1.Chain.SCROLL_SEPOLIA]: 'Scroll Sepolia',
|
|
578
|
-
// Monad
|
|
579
|
-
[enums_1.Chain.MONAD_MAINNET]: 'Monad',
|
|
580
|
-
[enums_1.Chain.MONAD_TESTNET]: 'Monad Testnet',
|
|
581
|
-
// Story Protocol
|
|
582
|
-
[enums_1.Chain.STORY_MAINNET]: 'Story',
|
|
583
|
-
[enums_1.Chain.STORY_TESTNET]: 'Story Testnet',
|
|
584
|
-
// Plume Network
|
|
585
|
-
[enums_1.Chain.PLUME_MAINNET]: 'Plume',
|
|
586
|
-
[enums_1.Chain.PLUME_TESTNET]: 'Plume Testnet',
|
|
587
|
-
// Nexus
|
|
588
|
-
[enums_1.Chain.NEXUS_MAINNET]: 'Nexus',
|
|
589
|
-
[enums_1.Chain.NEXUS_TESTNET]: 'Nexus Testnet',
|
|
590
|
-
// HyperEVM
|
|
591
|
-
[enums_1.Chain.HYPEREVM_MAINNET]: 'HyperEVM',
|
|
592
|
-
[enums_1.Chain.HYPEREVM_TESTNET]: 'HyperEVM Testnet',
|
|
593
|
-
// Sonic
|
|
594
|
-
[enums_1.Chain.SONIC_MAINNET]: 'Sonic',
|
|
595
|
-
[enums_1.Chain.SONIC_TESTNET]: 'Sonic Testnet',
|
|
596
|
-
[enums_1.Chain.SONIC_BLAZE]: 'Sonic Blaze',
|
|
597
|
-
// Unichain
|
|
598
|
-
[enums_1.Chain.UNICHAIN_MAINNET]: 'Unichain',
|
|
599
|
-
[enums_1.Chain.UNICHAIN_SEPOLIA]: 'Unichain Sepolia',
|
|
600
|
-
// World Chain
|
|
601
|
-
[enums_1.Chain.WORLD_MAINNET]: 'World Chain',
|
|
602
|
-
// XDC Network
|
|
603
|
-
[enums_1.Chain.XDC_MAINNET]: 'XDC Network',
|
|
604
|
-
// Ink
|
|
605
|
-
[enums_1.Chain.INK_TESTNET]: 'Ink Testnet',
|
|
606
|
-
// Fetch.ai
|
|
607
|
-
[enums_1.Chain.FETCH_MAINNET]: 'Fetch.ai',
|
|
608
|
-
[enums_1.Chain.FETCH_TESTNET]: 'Fetch.ai Testnet',
|
|
609
|
-
// Gensyn
|
|
610
|
-
[enums_1.Chain.GENSYN_MAINNET]: 'Gensyn',
|
|
611
|
-
[enums_1.Chain.GENSYN_TESTNET]: 'Gensyn Testnet',
|
|
612
|
-
// Ritual
|
|
613
|
-
[enums_1.Chain.RITUAL_MAINNET]: 'Ritual',
|
|
614
|
-
[enums_1.Chain.RITUAL_TESTNET]: 'Ritual Testnet',
|
|
615
|
-
// Solana
|
|
616
|
-
[enums_1.Chain.SOLANA_MAINNET]: 'Solana',
|
|
617
|
-
[enums_1.Chain.SOLANA_DEVNET]: 'Solana Devnet',
|
|
618
|
-
[enums_1.Chain.SOLANA_TESTNET]: 'Solana Testnet',
|
|
573
|
+
[enums_1.Chain.SOLANA_MAINNET]: {
|
|
574
|
+
chainType: enums_1.ChainType.SOLANA,
|
|
575
|
+
chainId: -101,
|
|
576
|
+
name: 'Solana',
|
|
577
|
+
alchemyNetwork: 'solana-mainnet',
|
|
578
|
+
explorerDomain: '',
|
|
579
|
+
explorerBrowserDomain: 'explorer.solana.com',
|
|
580
|
+
usdcAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
|
|
581
|
+
isDev: false,
|
|
582
|
+
},
|
|
583
|
+
[enums_1.Chain.SOLANA_DEVNET]: {
|
|
584
|
+
chainType: enums_1.ChainType.SOLANA,
|
|
585
|
+
chainId: -102,
|
|
586
|
+
name: 'Solana Devnet',
|
|
587
|
+
alchemyNetwork: 'solana-devnet',
|
|
588
|
+
explorerDomain: '',
|
|
589
|
+
explorerBrowserDomain: 'explorer.solana.com/?cluster=devnet',
|
|
590
|
+
usdcAddress: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
|
|
591
|
+
isDev: true,
|
|
592
|
+
},
|
|
593
|
+
[enums_1.Chain.SOLANA_TESTNET]: {
|
|
594
|
+
chainType: enums_1.ChainType.SOLANA,
|
|
595
|
+
chainId: -103,
|
|
596
|
+
name: 'Solana Testnet',
|
|
597
|
+
alchemyNetwork: 'solana-testnet',
|
|
598
|
+
explorerDomain: '',
|
|
599
|
+
explorerBrowserDomain: 'explorer.solana.com/?cluster=testnet',
|
|
600
|
+
usdcAddress: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
|
|
601
|
+
isDev: true,
|
|
602
|
+
},
|
|
619
603
|
// Local development
|
|
620
|
-
[enums_1.Chain.EVM_LOCAL]:
|
|
621
|
-
|
|
604
|
+
[enums_1.Chain.EVM_LOCAL]: {
|
|
605
|
+
chainType: enums_1.ChainType.EVM,
|
|
606
|
+
chainId: 31337,
|
|
607
|
+
name: 'Local EVM',
|
|
608
|
+
alchemyNetwork: '',
|
|
609
|
+
explorerDomain: '',
|
|
610
|
+
explorerBrowserDomain: '',
|
|
611
|
+
usdcAddress: '0x0000000000000000000000000000000000000000',
|
|
612
|
+
isDev: true,
|
|
613
|
+
},
|
|
614
|
+
[enums_1.Chain.SOLANA_LOCAL]: {
|
|
615
|
+
chainType: enums_1.ChainType.SOLANA,
|
|
616
|
+
chainId: -104,
|
|
617
|
+
name: 'Local Solana',
|
|
618
|
+
alchemyNetwork: '',
|
|
619
|
+
explorerDomain: '',
|
|
620
|
+
explorerBrowserDomain: '',
|
|
621
|
+
usdcAddress: '11111111111111111111111111111111',
|
|
622
|
+
isDev: true,
|
|
623
|
+
},
|
|
622
624
|
};
|
|
623
625
|
/**
|
|
624
626
|
* Helper class for building RPC endpoints and block explorer API URLs
|
|
@@ -630,7 +632,8 @@ class RpcHelpers {
|
|
|
630
632
|
* @returns True if the chain is an EVM chain
|
|
631
633
|
*/
|
|
632
634
|
static isEvmChain(chain) {
|
|
633
|
-
|
|
635
|
+
const info = CHAIN_INFO_MAP[chain];
|
|
636
|
+
return info ? info.chainType === enums_1.ChainType.EVM : false;
|
|
634
637
|
}
|
|
635
638
|
/**
|
|
636
639
|
* Check if a chain is a Solana chain
|
|
@@ -638,7 +641,8 @@ class RpcHelpers {
|
|
|
638
641
|
* @returns True if the chain is a Solana chain
|
|
639
642
|
*/
|
|
640
643
|
static isSolanaChain(chain) {
|
|
641
|
-
|
|
644
|
+
const info = CHAIN_INFO_MAP[chain];
|
|
645
|
+
return info ? info.chainType === enums_1.ChainType.SOLANA : false;
|
|
642
646
|
}
|
|
643
647
|
/**
|
|
644
648
|
* Get the chain type (EVM or Solana) for a given chain
|
|
@@ -655,13 +659,37 @@ class RpcHelpers {
|
|
|
655
659
|
* ```
|
|
656
660
|
*/
|
|
657
661
|
static getChainType(chain) {
|
|
658
|
-
|
|
659
|
-
|
|
662
|
+
const info = CHAIN_INFO_MAP[chain];
|
|
663
|
+
if (!info) {
|
|
664
|
+
throw new Error(`Unknown chain: ${chain}`);
|
|
660
665
|
}
|
|
661
|
-
|
|
662
|
-
|
|
666
|
+
return info.chainType;
|
|
667
|
+
}
|
|
668
|
+
/**
|
|
669
|
+
* Get complete static chain information
|
|
670
|
+
* @param chain - Chain identifier
|
|
671
|
+
* @returns ChainInfo object containing all static chain metadata
|
|
672
|
+
* @throws Error if the chain is not recognized
|
|
673
|
+
* @example
|
|
674
|
+
* ```typescript
|
|
675
|
+
* const info = RpcHelpers.getChainInfo(Chain.ETH_MAINNET);
|
|
676
|
+
* // Returns: {
|
|
677
|
+
* // chainType: ChainType.EVM,
|
|
678
|
+
* // chainId: 1,
|
|
679
|
+
* // name: 'Ethereum',
|
|
680
|
+
* // alchemyNetwork: 'eth-mainnet',
|
|
681
|
+
* // explorerDomain: 'api.etherscan.io',
|
|
682
|
+
* // explorerBrowserDomain: 'etherscan.io',
|
|
683
|
+
* // usdcAddress: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
|
|
684
|
+
* // }
|
|
685
|
+
* ```
|
|
686
|
+
*/
|
|
687
|
+
static getChainInfo(chain) {
|
|
688
|
+
const info = CHAIN_INFO_MAP[chain];
|
|
689
|
+
if (!info) {
|
|
690
|
+
throw new Error(`Unknown chain: ${chain}`);
|
|
663
691
|
}
|
|
664
|
-
|
|
692
|
+
return info;
|
|
665
693
|
}
|
|
666
694
|
/**
|
|
667
695
|
* Get the chain ID for a given chain
|
|
@@ -684,11 +712,7 @@ class RpcHelpers {
|
|
|
684
712
|
* ```
|
|
685
713
|
*/
|
|
686
714
|
static getChainId(chain) {
|
|
687
|
-
|
|
688
|
-
if (chainId === undefined) {
|
|
689
|
-
throw new Error(`Unknown chain: ${chain}`);
|
|
690
|
-
}
|
|
691
|
-
return chainId;
|
|
715
|
+
return this.getChainInfo(chain).chainId;
|
|
692
716
|
}
|
|
693
717
|
/**
|
|
694
718
|
* Get the USDC address/mint for a given chain
|
|
@@ -708,11 +732,7 @@ class RpcHelpers {
|
|
|
708
732
|
* ```
|
|
709
733
|
*/
|
|
710
734
|
static getUSDCAddress(chain) {
|
|
711
|
-
|
|
712
|
-
if (address === undefined) {
|
|
713
|
-
throw new Error(`Unknown chain: ${chain}`);
|
|
714
|
-
}
|
|
715
|
-
return address;
|
|
735
|
+
return this.getChainInfo(chain).usdcAddress;
|
|
716
736
|
}
|
|
717
737
|
/**
|
|
718
738
|
* Get the user-friendly display name for a chain
|
|
@@ -735,41 +755,37 @@ class RpcHelpers {
|
|
|
735
755
|
* ```
|
|
736
756
|
*/
|
|
737
757
|
static getUserFriendlyName(chain) {
|
|
738
|
-
|
|
739
|
-
if (name === undefined) {
|
|
740
|
-
throw new Error(`Unknown chain: ${chain}`);
|
|
741
|
-
}
|
|
742
|
-
return name;
|
|
758
|
+
return this.getChainInfo(chain).name;
|
|
743
759
|
}
|
|
744
760
|
/**
|
|
745
761
|
* Get the list of visible chains for the application
|
|
746
|
-
* @param
|
|
747
|
-
* @
|
|
762
|
+
* @param chainType - Filter by chain type (EVM or Solana)
|
|
763
|
+
* @param isDev - Whether to include development/testnet chains (true) or production chains (false)
|
|
764
|
+
* @returns Array of ChainInfo objects for chains that match the filters and have a mailer contract deployed
|
|
748
765
|
* @example
|
|
749
766
|
* ```typescript
|
|
750
|
-
*
|
|
751
|
-
*
|
|
767
|
+
* // Get production EVM chains with mailer contracts
|
|
768
|
+
* const prodEvmChains = RpcHelpers.getVisibleChains(ChainType.EVM, false);
|
|
769
|
+
* // Returns: ChainInfo[] with only mainnet EVM chains that have mailerAddress set
|
|
770
|
+
*
|
|
771
|
+
* // Get development EVM chains with mailer contracts
|
|
772
|
+
* const devEvmChains = RpcHelpers.getVisibleChains(ChainType.EVM, true);
|
|
773
|
+
* // Returns: ChainInfo[] with only testnet EVM chains that have mailerAddress set
|
|
752
774
|
*
|
|
753
|
-
*
|
|
754
|
-
*
|
|
775
|
+
* // Get production Solana chains with mailer contracts
|
|
776
|
+
* const prodSolanaChains = RpcHelpers.getVisibleChains(ChainType.SOLANA, false);
|
|
777
|
+
* // Returns: ChainInfo[] with only mainnet Solana chains that have mailerAddress set
|
|
755
778
|
* ```
|
|
756
779
|
*/
|
|
757
|
-
static getVisibleChains(isDev) {
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
enums_1.Chain.POLYGON_MAINNET,
|
|
762
|
-
enums_1.Chain.OPTIMISM_MAINNET,
|
|
763
|
-
];
|
|
764
|
-
if (isDev) {
|
|
765
|
-
return [...mainnetChains, enums_1.Chain.ETH_SEPOLIA];
|
|
766
|
-
}
|
|
767
|
-
return mainnetChains;
|
|
780
|
+
static getVisibleChains(chainType, isDev) {
|
|
781
|
+
return Object.values(CHAIN_INFO_MAP).filter((info) => info.chainType === chainType &&
|
|
782
|
+
info.isDev === isDev &&
|
|
783
|
+
info.mailerAddress !== undefined);
|
|
768
784
|
}
|
|
769
785
|
/**
|
|
770
|
-
* Derive all chain information from a ChainConfig
|
|
786
|
+
* Derive all chain information from a ChainConfig including API URLs
|
|
771
787
|
* @param config - Chain configuration with API keys
|
|
772
|
-
* @returns Object with all derived chain information
|
|
788
|
+
* @returns Object with all derived chain information including RPC and explorer URLs
|
|
773
789
|
* @example
|
|
774
790
|
* ```typescript
|
|
775
791
|
* const config: ChainConfig = {
|
|
@@ -778,7 +794,7 @@ class RpcHelpers {
|
|
|
778
794
|
* etherscanApiKey: 'your-etherscan-key'
|
|
779
795
|
* };
|
|
780
796
|
*
|
|
781
|
-
* const info = RpcHelpers.
|
|
797
|
+
* const info = RpcHelpers.deriveChainInfo(config);
|
|
782
798
|
* // Returns: {
|
|
783
799
|
* // chain: Chain.ETH_MAINNET,
|
|
784
800
|
* // chainId: 1,
|
|
@@ -791,7 +807,7 @@ class RpcHelpers {
|
|
|
791
807
|
* // }
|
|
792
808
|
* ```
|
|
793
809
|
*/
|
|
794
|
-
static
|
|
810
|
+
static deriveChainInfo(config) {
|
|
795
811
|
return {
|
|
796
812
|
chain: config.chain,
|
|
797
813
|
chainId: this.getChainId(config.chain),
|
|
@@ -810,13 +826,11 @@ class RpcHelpers {
|
|
|
810
826
|
if (!alchemyApiKey) {
|
|
811
827
|
return undefined;
|
|
812
828
|
}
|
|
813
|
-
const
|
|
829
|
+
const chainInfo = this.getChainInfo(chain);
|
|
830
|
+
const network = chainInfo.alchemyNetwork;
|
|
814
831
|
if (!network) {
|
|
815
832
|
return undefined;
|
|
816
833
|
}
|
|
817
|
-
if (this.isSolanaChain(chain)) {
|
|
818
|
-
return `https://solana-${network}.g.alchemy.com/v2/${alchemyApiKey}`;
|
|
819
|
-
}
|
|
820
834
|
return `https://${network}.g.alchemy.com/v2/${alchemyApiKey}`;
|
|
821
835
|
}
|
|
822
836
|
static getExplorerApiUrl(apiKeyOrApis, chain) {
|
|
@@ -826,10 +840,11 @@ class RpcHelpers {
|
|
|
826
840
|
if (!etherscanApiKey) {
|
|
827
841
|
return undefined;
|
|
828
842
|
}
|
|
829
|
-
|
|
843
|
+
const chainInfo = this.getChainInfo(chain);
|
|
844
|
+
if (chainInfo.chainType === enums_1.ChainType.SOLANA) {
|
|
830
845
|
return undefined;
|
|
831
846
|
}
|
|
832
|
-
const domain =
|
|
847
|
+
const domain = chainInfo.explorerDomain;
|
|
833
848
|
if (!domain) {
|
|
834
849
|
return undefined;
|
|
835
850
|
}
|
|
@@ -854,7 +869,8 @@ class RpcHelpers {
|
|
|
854
869
|
* ```
|
|
855
870
|
*/
|
|
856
871
|
static getBlockExplorerUrl(chain) {
|
|
857
|
-
const
|
|
872
|
+
const chainInfo = this.getChainInfo(chain);
|
|
873
|
+
const domain = chainInfo.explorerBrowserDomain;
|
|
858
874
|
if (!domain) {
|
|
859
875
|
return undefined;
|
|
860
876
|
}
|