@usewhisk/cctp 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1621 @@
1
+ 'use strict';
2
+
3
+ var stellarSdk = require('@stellar/stellar-sdk');
4
+
5
+ // src/chains/constants.ts
6
+ var TOKEN_MESSENGER_V2_EVM_MAINNET = "0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d";
7
+ var MESSAGE_TRANSMITTER_V2_EVM_MAINNET = "0x81D40F21F12A8F0E3252Bccb954D722d4c464B64";
8
+ var TOKEN_MESSENGER_V2_EVM_TESTNET = "0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA";
9
+ var MESSAGE_TRANSMITTER_V2_EVM_TESTNET = "0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275";
10
+ var TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET = "0x71f54F818671cD0D7ea140Da213e5C8b5C92a408";
11
+ var TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET = "0x8745D906D67C346E5eb1aEEED38Eb87F34DF0C0A";
12
+ var TOKEN_MESSENGER_MINTER_V2_SOLANA = "CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe";
13
+ var MESSAGE_TRANSMITTER_V2_SOLANA = "CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC";
14
+ var USDC_SPL_MAINNET = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
15
+ var USDC_SPL_DEVNET = "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU";
16
+ var SOLANA_CCTP_DOMAIN = 5;
17
+ var TOKEN_MESSENGER_MINTER_STELLAR_MAINNET = "CAE2G5Z77UP7GYPYGFOWFGW7C7J6I4YP2AFGSADRKQY62SYUFLPNFTXL";
18
+ var MESSAGE_TRANSMITTER_STELLAR_MAINNET = "CACMENFFJPJMSDAJQLX4R7K3SFZIW2LJSE3R2UMLGSWHFHS353FVXAZV";
19
+ var CCTP_FORWARDER_STELLAR_MAINNET = "CBZL2IH7F6BIDAA3WBNXYKIXSATJGMSW7K5P5MJ6STX5RXN47TZJDF5T";
20
+ var TOKEN_MESSENGER_MINTER_STELLAR_TESTNET = "CDNG7HXAPBWICI2E3AUBP3YZWZELJLYSB6F5CC7WLDTLTHVM74SLRTHP";
21
+ var MESSAGE_TRANSMITTER_STELLAR_TESTNET = "CBJ6MTCKKZG73PMDZCJMSFRD7DQEMI4FKDH7CGDSV4W6FHCRBCQAVVJY";
22
+ var CCTP_FORWARDER_STELLAR_TESTNET = "CA66Q2WFBND6V4UEB7RD4SAXSVIWMD6RA4X3U32ELVFGXV5PJK4T4VSZ";
23
+ var USDC_ISSUER_STELLAR_MAINNET = "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN";
24
+ var USDC_ISSUER_STELLAR_TESTNET = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5";
25
+ var STELLAR_NETWORK_PASSPHRASE_MAINNET = "Public Global Stellar Network ; September 2015";
26
+ var STELLAR_NETWORK_PASSPHRASE_TESTNET = "Test SDF Network ; September 2015";
27
+ var STELLAR_CCTP_DOMAIN = 27;
28
+ var STELLAR_USDC_DECIMALS = 7;
29
+ var CCTP_USDC_DECIMALS = 6;
30
+ var TOKEN_MESSENGER_MINTER_V2_STARKNET_MAINNET = "0x07d421B9cA8aA32DF259965cDA8ACb93F7599F69209A41872AE84638B2A20F2a";
31
+ var MESSAGE_TRANSMITTER_V2_STARKNET_MAINNET = "0x02EBB5777B6dD8B26ea11D68Fdf1D2c85cD2099335328Be845a28c77A8AEf183";
32
+ var TOKEN_MESSENGER_MINTER_V2_STARKNET_SEPOLIA = "0x04bDdE1E09a4B09a2F95d893D94a967b7717eB85A3f6dEcA8c080Ee01fBc3370";
33
+ var MESSAGE_TRANSMITTER_V2_STARKNET_SEPOLIA = "0x04db7926C64f1f32a840F3Fa95cB551f3801a3600Bae87aF87807A54DCE12Fe8";
34
+ var USDC_STARKNET_MAINNET = "0x033068F6539f8e6e6b131e6B2B814e6c34A5224bC66947c47DaB9dFeE93b35fb";
35
+ var USDC_STARKNET_SEPOLIA = "0x0512feAc6339Ff7889822cb5aA2a86C848e9D392bB0E3E237C008674feeD8343";
36
+ var STARKNET_CHAIN_ID_MAINNET = "0x534e5f4d41494e";
37
+ var STARKNET_CHAIN_ID_SEPOLIA = "0x534e5f5345504f4c4941";
38
+ var STARKNET_CCTP_DOMAIN = 25;
39
+
40
+ // src/chains/mainnet.ts
41
+ var Ethereum = {
42
+ id: "Ethereum",
43
+ label: "Ethereum",
44
+ ecosystem: "evm",
45
+ network: "mainnet",
46
+ evmChainId: 1,
47
+ cctpDomain: 0,
48
+ usdc: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
49
+ usdcDecimals: 6,
50
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
51
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
52
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
53
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
54
+ defaultRpcUrls: [
55
+ "https://ethereum-rpc.publicnode.com",
56
+ "https://ethereum.publicnode.com"
57
+ ],
58
+ explorerUrl: "https://etherscan.io",
59
+ capabilities: {
60
+ fastSource: true,
61
+ forwardingDestination: true,
62
+ upfrontFeeSource: true,
63
+ standardFeeSwitch: false
64
+ }
65
+ };
66
+ var Avalanche = {
67
+ id: "Avalanche",
68
+ label: "Avalanche",
69
+ ecosystem: "evm",
70
+ network: "mainnet",
71
+ evmChainId: 43114,
72
+ cctpDomain: 1,
73
+ usdc: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",
74
+ usdcDecimals: 6,
75
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
76
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
77
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
78
+ nativeCurrency: { symbol: "AVAX", decimals: 18 },
79
+ defaultRpcUrls: ["https://api.avax.network/ext/bc/C/rpc"],
80
+ explorerUrl: "https://explorer.avax.network/c-chain",
81
+ capabilities: {
82
+ fastSource: false,
83
+ forwardingDestination: true,
84
+ upfrontFeeSource: true,
85
+ standardFeeSwitch: false
86
+ }
87
+ };
88
+ var Optimism = {
89
+ id: "Optimism",
90
+ label: "OP Mainnet",
91
+ ecosystem: "evm",
92
+ network: "mainnet",
93
+ evmChainId: 10,
94
+ cctpDomain: 2,
95
+ usdc: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
96
+ usdcDecimals: 6,
97
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
98
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
99
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
100
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
101
+ defaultRpcUrls: ["https://mainnet.optimism.io"],
102
+ explorerUrl: "https://explorer.optimism.io",
103
+ capabilities: {
104
+ fastSource: true,
105
+ forwardingDestination: true,
106
+ upfrontFeeSource: true,
107
+ standardFeeSwitch: false
108
+ }
109
+ };
110
+ var Arbitrum = {
111
+ id: "Arbitrum",
112
+ label: "Arbitrum",
113
+ ecosystem: "evm",
114
+ network: "mainnet",
115
+ evmChainId: 42161,
116
+ cctpDomain: 3,
117
+ usdc: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
118
+ usdcDecimals: 6,
119
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
120
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
121
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
122
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
123
+ defaultRpcUrls: ["https://arb1.arbitrum.io/rpc"],
124
+ explorerUrl: "https://arbiscan.io",
125
+ capabilities: {
126
+ fastSource: true,
127
+ forwardingDestination: true,
128
+ upfrontFeeSource: true,
129
+ standardFeeSwitch: false
130
+ }
131
+ };
132
+ var Base = {
133
+ id: "Base",
134
+ label: "Base",
135
+ ecosystem: "evm",
136
+ network: "mainnet",
137
+ evmChainId: 8453,
138
+ cctpDomain: 6,
139
+ usdc: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
140
+ usdcDecimals: 6,
141
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
142
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
143
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
144
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
145
+ defaultRpcUrls: ["https://mainnet.base.org"],
146
+ explorerUrl: "https://basescan.org",
147
+ capabilities: {
148
+ fastSource: true,
149
+ forwardingDestination: true,
150
+ upfrontFeeSource: true,
151
+ standardFeeSwitch: false
152
+ }
153
+ };
154
+ var Polygon = {
155
+ id: "Polygon",
156
+ label: "Polygon PoS",
157
+ ecosystem: "evm",
158
+ network: "mainnet",
159
+ evmChainId: 137,
160
+ cctpDomain: 7,
161
+ usdc: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
162
+ usdcDecimals: 6,
163
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
164
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
165
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
166
+ nativeCurrency: { symbol: "POL", decimals: 18 },
167
+ defaultRpcUrls: [
168
+ "https://polygon.drpc.org",
169
+ "https://polygon.publicnode.com"
170
+ ],
171
+ explorerUrl: "https://polygonscan.com",
172
+ capabilities: {
173
+ fastSource: false,
174
+ forwardingDestination: true,
175
+ upfrontFeeSource: true,
176
+ standardFeeSwitch: false
177
+ }
178
+ };
179
+ var Unichain = {
180
+ id: "Unichain",
181
+ label: "Unichain",
182
+ ecosystem: "evm",
183
+ network: "mainnet",
184
+ evmChainId: 130,
185
+ cctpDomain: 10,
186
+ usdc: "0x078D782b760474a361dDA0AF3839290b0EF57AD6",
187
+ usdcDecimals: 6,
188
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
189
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
190
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
191
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
192
+ defaultRpcUrls: ["https://mainnet.unichain.org"],
193
+ explorerUrl: "https://uniscan.xyz",
194
+ capabilities: {
195
+ fastSource: true,
196
+ forwardingDestination: true,
197
+ upfrontFeeSource: true,
198
+ standardFeeSwitch: false
199
+ }
200
+ };
201
+ var Linea = {
202
+ id: "Linea",
203
+ label: "Linea",
204
+ ecosystem: "evm",
205
+ network: "mainnet",
206
+ evmChainId: 59144,
207
+ cctpDomain: 11,
208
+ usdc: "0x176211869cA2b568f2A7D4EE941E073a821EE1ff",
209
+ usdcDecimals: 6,
210
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
211
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
212
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
213
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
214
+ defaultRpcUrls: ["https://rpc.linea.build"],
215
+ explorerUrl: "https://lineascan.build",
216
+ capabilities: {
217
+ fastSource: true,
218
+ forwardingDestination: true,
219
+ upfrontFeeSource: true,
220
+ standardFeeSwitch: false
221
+ }
222
+ };
223
+ var Codex = {
224
+ id: "Codex",
225
+ label: "Codex",
226
+ ecosystem: "evm",
227
+ network: "mainnet",
228
+ evmChainId: 81224,
229
+ cctpDomain: 12,
230
+ usdc: "0xd996633a415985DBd7D6D12f4A4343E31f5037cf",
231
+ usdcDecimals: 6,
232
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
233
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
234
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
235
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
236
+ defaultRpcUrls: ["https://rpc.codex.xyz"],
237
+ explorerUrl: "https://explorer.codex.xyz",
238
+ capabilities: {
239
+ fastSource: true,
240
+ forwardingDestination: true,
241
+ upfrontFeeSource: true,
242
+ standardFeeSwitch: false
243
+ }
244
+ };
245
+ var Sonic = {
246
+ id: "Sonic",
247
+ label: "Sonic",
248
+ ecosystem: "evm",
249
+ network: "mainnet",
250
+ evmChainId: 146,
251
+ cctpDomain: 13,
252
+ usdc: "0x29219dd400f2Bf60E5a23d13Be72B486D4038894",
253
+ usdcDecimals: 6,
254
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
255
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
256
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
257
+ nativeCurrency: { symbol: "S", decimals: 18 },
258
+ defaultRpcUrls: ["https://rpc.soniclabs.com"],
259
+ explorerUrl: "https://sonicscan.org",
260
+ capabilities: {
261
+ fastSource: false,
262
+ forwardingDestination: true,
263
+ upfrontFeeSource: true,
264
+ standardFeeSwitch: false
265
+ }
266
+ };
267
+ var WorldChain = {
268
+ id: "World_Chain",
269
+ label: "World Chain",
270
+ ecosystem: "evm",
271
+ network: "mainnet",
272
+ evmChainId: 480,
273
+ cctpDomain: 14,
274
+ usdc: "0x79A02482A880bCE3F13e09Da970dC34db4CD24d1",
275
+ usdcDecimals: 6,
276
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
277
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
278
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
279
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
280
+ defaultRpcUrls: ["https://worldchain-mainnet.g.alchemy.com/public"],
281
+ explorerUrl: "https://worldscan.org",
282
+ capabilities: {
283
+ fastSource: true,
284
+ forwardingDestination: true,
285
+ upfrontFeeSource: true,
286
+ standardFeeSwitch: false
287
+ }
288
+ };
289
+ var Monad = {
290
+ id: "Monad",
291
+ label: "Monad",
292
+ ecosystem: "evm",
293
+ network: "mainnet",
294
+ evmChainId: 143,
295
+ cctpDomain: 15,
296
+ usdc: "0x754704Bc059F8C67012fEd69BC8A327a5aafb603",
297
+ usdcDecimals: 6,
298
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
299
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
300
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
301
+ nativeCurrency: { symbol: "MON", decimals: 18 },
302
+ defaultRpcUrls: ["https://rpc.monad.xyz", "https://rpc1.monad.xyz"],
303
+ explorerUrl: "https://monadvision.com",
304
+ capabilities: {
305
+ fastSource: false,
306
+ forwardingDestination: true,
307
+ upfrontFeeSource: true,
308
+ standardFeeSwitch: true
309
+ }
310
+ };
311
+ var Sei = {
312
+ id: "Sei",
313
+ label: "Sei",
314
+ ecosystem: "evm",
315
+ network: "mainnet",
316
+ evmChainId: 1329,
317
+ cctpDomain: 16,
318
+ usdc: "0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392",
319
+ usdcDecimals: 6,
320
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
321
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
322
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
323
+ nativeCurrency: { symbol: "SEI", decimals: 18 },
324
+ defaultRpcUrls: ["https://evm-rpc.sei-apis.com"],
325
+ explorerUrl: "https://seiscan.io",
326
+ capabilities: {
327
+ fastSource: false,
328
+ forwardingDestination: true,
329
+ upfrontFeeSource: true,
330
+ standardFeeSwitch: true
331
+ }
332
+ };
333
+ var XDC = {
334
+ id: "XDC",
335
+ label: "XDC",
336
+ ecosystem: "evm",
337
+ network: "mainnet",
338
+ evmChainId: 50,
339
+ cctpDomain: 18,
340
+ usdc: "0xfA2958CB79b0491CC627c1557F441eF849Ca8eb1",
341
+ usdcDecimals: 6,
342
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
343
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
344
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
345
+ nativeCurrency: { symbol: "XDC", decimals: 18 },
346
+ defaultRpcUrls: ["https://erpc.xinfin.network", "https://rpc.xinfin.network"],
347
+ explorerUrl: "https://xdcscan.io",
348
+ capabilities: {
349
+ fastSource: false,
350
+ forwardingDestination: true,
351
+ upfrontFeeSource: true,
352
+ standardFeeSwitch: true
353
+ }
354
+ };
355
+ var HyperEVM = {
356
+ id: "HyperEVM",
357
+ label: "HyperEVM",
358
+ ecosystem: "evm",
359
+ network: "mainnet",
360
+ evmChainId: 999,
361
+ cctpDomain: 19,
362
+ usdc: "0xb88339CB7199b77E23DB6E890353E22632Ba630f",
363
+ usdcDecimals: 6,
364
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
365
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
366
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
367
+ nativeCurrency: { symbol: "HYPE", decimals: 18 },
368
+ defaultRpcUrls: ["https://rpc.hyperliquid.xyz/evm"],
369
+ explorerUrl: "https://hyperevmscan.io",
370
+ capabilities: {
371
+ fastSource: false,
372
+ forwardingDestination: true,
373
+ upfrontFeeSource: true,
374
+ standardFeeSwitch: true
375
+ }
376
+ };
377
+ var Ink = {
378
+ id: "Ink",
379
+ label: "Ink",
380
+ ecosystem: "evm",
381
+ network: "mainnet",
382
+ evmChainId: 57073,
383
+ cctpDomain: 21,
384
+ usdc: "0x2D270e6886d130D724215A266106e6832161EAEd",
385
+ usdcDecimals: 6,
386
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
387
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
388
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
389
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
390
+ defaultRpcUrls: [
391
+ "https://rpc-gel.inkonchain.com",
392
+ "https://rpc-qnd.inkonchain.com"
393
+ ],
394
+ explorerUrl: "https://explorer.inkonchain.com",
395
+ capabilities: {
396
+ fastSource: true,
397
+ forwardingDestination: true,
398
+ upfrontFeeSource: true,
399
+ standardFeeSwitch: true
400
+ }
401
+ };
402
+ var Plume = {
403
+ id: "Plume",
404
+ label: "Plume",
405
+ ecosystem: "evm",
406
+ network: "mainnet",
407
+ evmChainId: 98866,
408
+ cctpDomain: 22,
409
+ usdc: "0x222365EF19F7947e5484218551B56bb3965Aa7aF",
410
+ usdcDecimals: 6,
411
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
412
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
413
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
414
+ nativeCurrency: { symbol: "PLUME", decimals: 18 },
415
+ defaultRpcUrls: ["https://rpc.plume.org"],
416
+ explorerUrl: "https://explorer.plume.org",
417
+ capabilities: {
418
+ fastSource: true,
419
+ forwardingDestination: true,
420
+ upfrontFeeSource: true,
421
+ standardFeeSwitch: true
422
+ }
423
+ };
424
+ var Arc = {
425
+ id: "Arc",
426
+ label: "Arc",
427
+ ecosystem: "evm",
428
+ network: "mainnet",
429
+ evmChainId: 5042,
430
+ cctpDomain: 26,
431
+ usdc: "0x3600000000000000000000000000000000000000",
432
+ usdcDecimals: 6,
433
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
434
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
435
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET,
436
+ nativeCurrency: { symbol: "USDC", decimals: 18 },
437
+ defaultRpcUrls: ["https://rpc.mainnet.arc.io"],
438
+ explorerUrl: "https://explorer.arc.io",
439
+ capabilities: {
440
+ fastSource: false,
441
+ forwardingDestination: true,
442
+ upfrontFeeSource: true,
443
+ standardFeeSwitch: true
444
+ }
445
+ };
446
+ var Edge = {
447
+ id: "Edge",
448
+ label: "EDGE",
449
+ ecosystem: "evm",
450
+ network: "mainnet",
451
+ evmChainId: 3343,
452
+ cctpDomain: 28,
453
+ usdc: "0x98d2919b9A214E6Fa5384AC81E6864bA686Ad74c",
454
+ usdcDecimals: 6,
455
+ tokenMessenger: "0x98706A006bc632Df31CAdFCBD43F38887ce2ca5c",
456
+ messageTransmitter: "0x5b61381Fc9e58E70EfC13a4A97516997019198ee",
457
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
458
+ defaultRpcUrls: ["https://edge-mainnet.g.alchemy.com/public"],
459
+ explorerUrl: "https://pro.edgex.exchange/en-US/explorer",
460
+ capabilities: {
461
+ fastSource: true,
462
+ forwardingDestination: true,
463
+ upfrontFeeSource: false,
464
+ standardFeeSwitch: true
465
+ }
466
+ };
467
+ var Injective = {
468
+ id: "Injective",
469
+ label: "Injective",
470
+ ecosystem: "evm",
471
+ network: "mainnet",
472
+ evmChainId: 1776,
473
+ cctpDomain: 29,
474
+ usdc: "0xa00C59fF5a080D2b954d0c75e46E22a0c371235a",
475
+ usdcDecimals: 6,
476
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
477
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
478
+ nativeCurrency: { symbol: "INJ", decimals: 18 },
479
+ defaultRpcUrls: [
480
+ "https://sentry.evm-rpc.injective.network",
481
+ "https://evm.archival.chain.virtual.json-rpc.injective.network"
482
+ ],
483
+ explorerUrl: "https://blockscout.injective.network",
484
+ capabilities: {
485
+ fastSource: false,
486
+ forwardingDestination: false,
487
+ upfrontFeeSource: false,
488
+ standardFeeSwitch: true
489
+ }
490
+ };
491
+ var Morph = {
492
+ id: "Morph",
493
+ label: "Morph",
494
+ ecosystem: "evm",
495
+ network: "mainnet",
496
+ evmChainId: 2818,
497
+ cctpDomain: 30,
498
+ usdc: "0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B",
499
+ usdcDecimals: 6,
500
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
501
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
502
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
503
+ defaultRpcUrls: ["https://rpc-bgw.morph.network"],
504
+ explorerUrl: "https://explorer.morph.network",
505
+ capabilities: {
506
+ fastSource: true,
507
+ forwardingDestination: false,
508
+ upfrontFeeSource: false,
509
+ standardFeeSwitch: true
510
+ }
511
+ };
512
+ var Pharos = {
513
+ id: "Pharos",
514
+ label: "Pharos",
515
+ ecosystem: "evm",
516
+ network: "mainnet",
517
+ evmChainId: 1672,
518
+ cctpDomain: 31,
519
+ usdc: "0xC879C018dB60520F4355C26eD1a6D572cdAC1815",
520
+ usdcDecimals: 6,
521
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
522
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
523
+ nativeCurrency: { symbol: "PROS", decimals: 18 },
524
+ defaultRpcUrls: ["https://rpc.pharos.xyz"],
525
+ explorerUrl: "https://www.pharosscan.xyz",
526
+ capabilities: {
527
+ fastSource: false,
528
+ forwardingDestination: false,
529
+ upfrontFeeSource: false,
530
+ standardFeeSwitch: true
531
+ }
532
+ };
533
+ var Cronos = {
534
+ id: "Cronos",
535
+ label: "Cronos",
536
+ ecosystem: "evm",
537
+ network: "mainnet",
538
+ evmChainId: 25,
539
+ cctpDomain: 32,
540
+ usdc: "0x3D7F2C478aAfdB65542BCB44bCeeC05849999d2D",
541
+ usdcDecimals: 6,
542
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
543
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
544
+ nativeCurrency: { symbol: "CRO", decimals: 18 },
545
+ defaultRpcUrls: ["https://evm.cronos.com"],
546
+ explorerUrl: "https://explorer.cronos.com",
547
+ capabilities: {
548
+ fastSource: false,
549
+ forwardingDestination: false,
550
+ upfrontFeeSource: false,
551
+ standardFeeSwitch: true
552
+ }
553
+ };
554
+ var Plasma = {
555
+ id: "Plasma",
556
+ label: "Plasma",
557
+ ecosystem: "evm",
558
+ network: "mainnet",
559
+ evmChainId: 9745,
560
+ cctpDomain: 33,
561
+ usdc: "0x2d661C89D812261039AF9764eceaAee884f5F67F",
562
+ usdcDecimals: 6,
563
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
564
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
565
+ nativeCurrency: { symbol: "XPL", decimals: 18 },
566
+ defaultRpcUrls: ["https://rpc.plasma.to"],
567
+ explorerUrl: "https://plasmascan.to",
568
+ capabilities: {
569
+ fastSource: false,
570
+ forwardingDestination: false,
571
+ upfrontFeeSource: false,
572
+ standardFeeSwitch: true
573
+ }
574
+ };
575
+ var XLayer = {
576
+ id: "X_Layer",
577
+ label: "X Layer",
578
+ ecosystem: "evm",
579
+ network: "mainnet",
580
+ evmChainId: 196,
581
+ cctpDomain: 37,
582
+ usdc: "0xB6CEceAB302E2E4948951eE7843FC24E92933061",
583
+ usdcDecimals: 6,
584
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_MAINNET,
585
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_MAINNET,
586
+ nativeCurrency: { symbol: "OKB", decimals: 18 },
587
+ defaultRpcUrls: ["https://rpc.xlayer.tech", "https://xlayerrpc.okx.com"],
588
+ explorerUrl: "https://www.okx.com/web3/explorer/xlayer",
589
+ capabilities: {
590
+ fastSource: true,
591
+ forwardingDestination: false,
592
+ upfrontFeeSource: false,
593
+ standardFeeSwitch: true
594
+ }
595
+ };
596
+ var EVM_MAINNET_CHAINS = [
597
+ Ethereum,
598
+ Avalanche,
599
+ Optimism,
600
+ Arbitrum,
601
+ Base,
602
+ Polygon,
603
+ Unichain,
604
+ Linea,
605
+ Codex,
606
+ Sonic,
607
+ WorldChain,
608
+ Monad,
609
+ Sei,
610
+ XDC,
611
+ HyperEVM,
612
+ Ink,
613
+ Plume,
614
+ Arc,
615
+ Edge,
616
+ Injective,
617
+ Morph,
618
+ Pharos,
619
+ Cronos,
620
+ Plasma,
621
+ XLayer
622
+ ];
623
+
624
+ // src/chains/testnet.ts
625
+ var EthereumSepolia = {
626
+ id: "Ethereum_Sepolia",
627
+ label: "Ethereum Sepolia",
628
+ ecosystem: "evm",
629
+ network: "testnet",
630
+ evmChainId: 11155111,
631
+ cctpDomain: 0,
632
+ usdc: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
633
+ usdcDecimals: 6,
634
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
635
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
636
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
637
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
638
+ defaultRpcUrls: ["https://ethereum-sepolia-rpc.publicnode.com"],
639
+ explorerUrl: "https://sepolia.etherscan.io",
640
+ capabilities: {
641
+ fastSource: true,
642
+ forwardingDestination: true,
643
+ upfrontFeeSource: true,
644
+ standardFeeSwitch: false
645
+ }
646
+ };
647
+ var AvalancheFuji = {
648
+ id: "Avalanche_Fuji",
649
+ label: "Avalanche Fuji",
650
+ ecosystem: "evm",
651
+ network: "testnet",
652
+ evmChainId: 43113,
653
+ cctpDomain: 1,
654
+ usdc: "0x5425890298aed601595a70AB815c96711a31Bc65",
655
+ usdcDecimals: 6,
656
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
657
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
658
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
659
+ nativeCurrency: { symbol: "AVAX", decimals: 18 },
660
+ defaultRpcUrls: ["https://api.avax-test.network/ext/bc/C/rpc"],
661
+ explorerUrl: "https://explorer-test.avax.network/c-chain",
662
+ capabilities: {
663
+ fastSource: false,
664
+ forwardingDestination: true,
665
+ upfrontFeeSource: true,
666
+ standardFeeSwitch: false
667
+ }
668
+ };
669
+ var OptimismSepolia = {
670
+ id: "Optimism_Sepolia",
671
+ label: "OP Sepolia",
672
+ ecosystem: "evm",
673
+ network: "testnet",
674
+ evmChainId: 11155420,
675
+ cctpDomain: 2,
676
+ usdc: "0x5fd84259d66Cd46123540766Be93DFE6D43130D7",
677
+ usdcDecimals: 6,
678
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
679
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
680
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
681
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
682
+ defaultRpcUrls: ["https://sepolia.optimism.io"],
683
+ explorerUrl: "https://testnet-explorer.optimism.io",
684
+ capabilities: {
685
+ fastSource: true,
686
+ forwardingDestination: true,
687
+ upfrontFeeSource: true,
688
+ standardFeeSwitch: false
689
+ }
690
+ };
691
+ var ArbitrumSepolia = {
692
+ id: "Arbitrum_Sepolia",
693
+ label: "Arbitrum Sepolia",
694
+ ecosystem: "evm",
695
+ network: "testnet",
696
+ evmChainId: 421614,
697
+ cctpDomain: 3,
698
+ usdc: "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d",
699
+ usdcDecimals: 6,
700
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
701
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
702
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
703
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
704
+ defaultRpcUrls: ["https://sepolia-rollup.arbitrum.io/rpc"],
705
+ explorerUrl: "https://sepolia.arbiscan.io",
706
+ capabilities: {
707
+ fastSource: true,
708
+ forwardingDestination: true,
709
+ upfrontFeeSource: true,
710
+ standardFeeSwitch: false
711
+ }
712
+ };
713
+ var BaseSepolia = {
714
+ id: "Base_Sepolia",
715
+ label: "Base Sepolia",
716
+ ecosystem: "evm",
717
+ network: "testnet",
718
+ evmChainId: 84532,
719
+ cctpDomain: 6,
720
+ usdc: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
721
+ usdcDecimals: 6,
722
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
723
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
724
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
725
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
726
+ defaultRpcUrls: ["https://sepolia.base.org"],
727
+ explorerUrl: "https://sepolia.basescan.org",
728
+ capabilities: {
729
+ fastSource: true,
730
+ forwardingDestination: true,
731
+ upfrontFeeSource: true,
732
+ standardFeeSwitch: false
733
+ }
734
+ };
735
+ var PolygonAmoyTestnet = {
736
+ id: "Polygon_Amoy_Testnet",
737
+ label: "Polygon PoS Amoy",
738
+ ecosystem: "evm",
739
+ network: "testnet",
740
+ evmChainId: 80002,
741
+ cctpDomain: 7,
742
+ usdc: "0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582",
743
+ usdcDecimals: 6,
744
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
745
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
746
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
747
+ nativeCurrency: { symbol: "POL", decimals: 18 },
748
+ defaultRpcUrls: ["https://polygon-amoy.drpc.org"],
749
+ explorerUrl: "https://amoy.polygonscan.com",
750
+ capabilities: {
751
+ fastSource: false,
752
+ forwardingDestination: true,
753
+ upfrontFeeSource: true,
754
+ standardFeeSwitch: false
755
+ }
756
+ };
757
+ var UnichainSepolia = {
758
+ id: "Unichain_Sepolia",
759
+ label: "Unichain Sepolia",
760
+ ecosystem: "evm",
761
+ network: "testnet",
762
+ evmChainId: 1301,
763
+ cctpDomain: 10,
764
+ usdc: "0x31d0220469e10c4E71834a79b1f276d740d3768F",
765
+ usdcDecimals: 6,
766
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
767
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
768
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
769
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
770
+ defaultRpcUrls: ["https://sepolia.unichain.org"],
771
+ explorerUrl: "https://sepolia.uniscan.xyz",
772
+ capabilities: {
773
+ fastSource: true,
774
+ forwardingDestination: true,
775
+ upfrontFeeSource: true,
776
+ standardFeeSwitch: false
777
+ }
778
+ };
779
+ var LineaSepolia = {
780
+ id: "Linea_Sepolia",
781
+ label: "Linea Sepolia",
782
+ ecosystem: "evm",
783
+ network: "testnet",
784
+ evmChainId: 59141,
785
+ cctpDomain: 11,
786
+ usdc: "0xFEce4462D57bD51A6A552365A011b95f0E16d9B7",
787
+ usdcDecimals: 6,
788
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
789
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
790
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
791
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
792
+ defaultRpcUrls: ["https://rpc.sepolia.linea.build"],
793
+ explorerUrl: "https://sepolia.lineascan.build",
794
+ capabilities: {
795
+ fastSource: true,
796
+ forwardingDestination: true,
797
+ upfrontFeeSource: true,
798
+ standardFeeSwitch: false
799
+ }
800
+ };
801
+ var CodexTestnet = {
802
+ id: "Codex_Testnet",
803
+ label: "Codex Testnet",
804
+ ecosystem: "evm",
805
+ network: "testnet",
806
+ evmChainId: 812242,
807
+ cctpDomain: 12,
808
+ usdc: "0x6d7f141b6819C2c9CC2f818e6ad549E7Ca090F8f",
809
+ usdcDecimals: 6,
810
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
811
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
812
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
813
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
814
+ defaultRpcUrls: ["https://rpc.codex-stg.xyz"],
815
+ explorerUrl: "https://explorer.codex-stg.xyz",
816
+ capabilities: {
817
+ fastSource: true,
818
+ forwardingDestination: true,
819
+ upfrontFeeSource: true,
820
+ standardFeeSwitch: false
821
+ }
822
+ };
823
+ var SonicTestnet = {
824
+ id: "Sonic_Testnet",
825
+ label: "Sonic Testnet",
826
+ ecosystem: "evm",
827
+ network: "testnet",
828
+ evmChainId: 14601,
829
+ cctpDomain: 13,
830
+ usdc: "0x0BA304580ee7c9a980CF72e55f5Ed2E9fd30Bc51",
831
+ usdcDecimals: 6,
832
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
833
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
834
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
835
+ nativeCurrency: { symbol: "S", decimals: 18 },
836
+ defaultRpcUrls: ["https://rpc.testnet.soniclabs.com"],
837
+ explorerUrl: "https://testnet.sonicscan.org",
838
+ capabilities: {
839
+ fastSource: false,
840
+ forwardingDestination: true,
841
+ upfrontFeeSource: true,
842
+ standardFeeSwitch: true
843
+ }
844
+ };
845
+ var WorldChainSepolia = {
846
+ id: "World_Chain_Sepolia",
847
+ label: "World Chain Sepolia",
848
+ ecosystem: "evm",
849
+ network: "testnet",
850
+ evmChainId: 4801,
851
+ cctpDomain: 14,
852
+ usdc: "0x66145f38cBAC35Ca6F1Dfb4914dF98F1614aeA88",
853
+ usdcDecimals: 6,
854
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
855
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
856
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
857
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
858
+ defaultRpcUrls: ["https://worldchain-sepolia.g.alchemy.com/public"],
859
+ explorerUrl: "https://worldchain-sepolia.explorer.alchemy.com",
860
+ capabilities: {
861
+ fastSource: true,
862
+ forwardingDestination: true,
863
+ upfrontFeeSource: true,
864
+ standardFeeSwitch: false
865
+ }
866
+ };
867
+ var MonadTestnet = {
868
+ id: "Monad_Testnet",
869
+ label: "Monad Testnet",
870
+ ecosystem: "evm",
871
+ network: "testnet",
872
+ evmChainId: 10143,
873
+ cctpDomain: 15,
874
+ usdc: "0x534b2f3A21130d7a60830c2Df862319e593943A3",
875
+ usdcDecimals: 6,
876
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
877
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
878
+ nativeCurrency: { symbol: "MON", decimals: 18 },
879
+ defaultRpcUrls: [
880
+ "https://testnet-rpc.monad.xyz",
881
+ "https://rpc-testnet.monadinfra.com"
882
+ ],
883
+ explorerUrl: "https://testnet.monadvision.com",
884
+ capabilities: {
885
+ fastSource: false,
886
+ forwardingDestination: true,
887
+ upfrontFeeSource: false,
888
+ standardFeeSwitch: true
889
+ }
890
+ };
891
+ var SeiTestnet = {
892
+ id: "Sei_Testnet",
893
+ label: "Sei Testnet",
894
+ ecosystem: "evm",
895
+ network: "testnet",
896
+ evmChainId: 1328,
897
+ cctpDomain: 16,
898
+ usdc: "0x4fCF1784B31630811181f670Aea7A7bEF803eaED",
899
+ usdcDecimals: 6,
900
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
901
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
902
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
903
+ nativeCurrency: { symbol: "SEI", decimals: 18 },
904
+ defaultRpcUrls: ["https://evm-rpc-testnet.sei-apis.com"],
905
+ explorerUrl: "https://testnet.seiscan.io",
906
+ capabilities: {
907
+ fastSource: false,
908
+ forwardingDestination: true,
909
+ upfrontFeeSource: true,
910
+ standardFeeSwitch: true
911
+ }
912
+ };
913
+ var XDCApothem = {
914
+ id: "XDC_Apothem",
915
+ label: "XDC Apothem",
916
+ ecosystem: "evm",
917
+ network: "testnet",
918
+ evmChainId: 51,
919
+ cctpDomain: 18,
920
+ usdc: "0xb5AB69F7bBada22B28e79C8FFAECe55eF1c771D4",
921
+ usdcDecimals: 6,
922
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
923
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
924
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
925
+ nativeCurrency: { symbol: "TXDC", decimals: 18 },
926
+ defaultRpcUrls: [
927
+ "https://rpc.apothem.network",
928
+ "https://erpc.apothem.network"
929
+ ],
930
+ explorerUrl: "https://testnet.xdcscan.com",
931
+ capabilities: {
932
+ fastSource: false,
933
+ forwardingDestination: true,
934
+ upfrontFeeSource: true,
935
+ standardFeeSwitch: true
936
+ }
937
+ };
938
+ var HyperEVMTestnet = {
939
+ id: "HyperEVM_Testnet",
940
+ label: "HyperEVM Testnet",
941
+ ecosystem: "evm",
942
+ network: "testnet",
943
+ evmChainId: 998,
944
+ cctpDomain: 19,
945
+ usdc: "0x2B3370eE501B4a559b57D449569354196457D8Ab",
946
+ usdcDecimals: 6,
947
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
948
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
949
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
950
+ nativeCurrency: { symbol: "HYPE", decimals: 18 },
951
+ defaultRpcUrls: ["https://rpc.hyperliquid-testnet.xyz/evm"],
952
+ explorerUrl: "https://app.hyperliquid-testnet.xyz/explorer",
953
+ capabilities: {
954
+ fastSource: false,
955
+ forwardingDestination: true,
956
+ upfrontFeeSource: true,
957
+ standardFeeSwitch: true
958
+ }
959
+ };
960
+ var InkTestnet = {
961
+ id: "Ink_Testnet",
962
+ label: "Ink Testnet",
963
+ ecosystem: "evm",
964
+ network: "testnet",
965
+ evmChainId: 763373,
966
+ cctpDomain: 21,
967
+ usdc: "0xFabab97dCE620294D2B0b0e46C68964e326300Ac",
968
+ usdcDecimals: 6,
969
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
970
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
971
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
972
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
973
+ defaultRpcUrls: [
974
+ "https://rpc-gel-sepolia.inkonchain.com",
975
+ "https://rpc-qnd-sepolia.inkonchain.com"
976
+ ],
977
+ explorerUrl: "https://explorer-sepolia.inkonchain.com",
978
+ capabilities: {
979
+ fastSource: true,
980
+ forwardingDestination: true,
981
+ upfrontFeeSource: true,
982
+ standardFeeSwitch: true
983
+ }
984
+ };
985
+ var PlumeTestnet = {
986
+ id: "Plume_Testnet",
987
+ label: "Plume Testnet",
988
+ ecosystem: "evm",
989
+ network: "testnet",
990
+ evmChainId: 98867,
991
+ cctpDomain: 22,
992
+ usdc: "0xcB5f30e335672893c7eb944B374c196392C19D18",
993
+ usdcDecimals: 6,
994
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
995
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
996
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
997
+ nativeCurrency: { symbol: "PLUME", decimals: 18 },
998
+ defaultRpcUrls: ["https://testnet-rpc.plume.org"],
999
+ explorerUrl: "https://testnet-explorer.plume.org",
1000
+ capabilities: {
1001
+ fastSource: true,
1002
+ forwardingDestination: true,
1003
+ upfrontFeeSource: true,
1004
+ standardFeeSwitch: true
1005
+ }
1006
+ };
1007
+ var ArcTestnet = {
1008
+ id: "Arc_Testnet",
1009
+ label: "Arc Testnet",
1010
+ ecosystem: "evm",
1011
+ network: "testnet",
1012
+ evmChainId: 5042002,
1013
+ cctpDomain: 26,
1014
+ usdc: "0x3600000000000000000000000000000000000000",
1015
+ usdcDecimals: 6,
1016
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
1017
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
1018
+ tokenMessengerWithFees: TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET,
1019
+ nativeCurrency: { symbol: "USDC", decimals: 18 },
1020
+ defaultRpcUrls: ["https://rpc.testnet.arc.io"],
1021
+ explorerUrl: "https://explorer.testnet.arc.io",
1022
+ capabilities: {
1023
+ fastSource: false,
1024
+ forwardingDestination: true,
1025
+ upfrontFeeSource: true,
1026
+ standardFeeSwitch: true
1027
+ }
1028
+ };
1029
+ var EdgeTestnet = {
1030
+ id: "Edge_Testnet",
1031
+ label: "EDGE Testnet",
1032
+ ecosystem: "evm",
1033
+ network: "testnet",
1034
+ evmChainId: 33431,
1035
+ cctpDomain: 28,
1036
+ usdc: "0x2d9F7CAD728051AA35Ecdc472a14cf8cDF5CFD6B",
1037
+ usdcDecimals: 6,
1038
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
1039
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
1040
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
1041
+ defaultRpcUrls: ["https://edge-testnet.g.alchemy.com/public"],
1042
+ explorerUrl: "https://edge-testnet.explorer.alchemy.com",
1043
+ capabilities: {
1044
+ fastSource: true,
1045
+ forwardingDestination: true,
1046
+ upfrontFeeSource: false,
1047
+ standardFeeSwitch: true
1048
+ }
1049
+ };
1050
+ var InjectiveTestnet = {
1051
+ id: "Injective_Testnet",
1052
+ label: "Injective Testnet",
1053
+ ecosystem: "evm",
1054
+ network: "testnet",
1055
+ evmChainId: 1439,
1056
+ cctpDomain: 29,
1057
+ usdc: "0x0C382e685bbeeFE5d3d9C29e29E341fEE8E84C5d",
1058
+ usdcDecimals: 6,
1059
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
1060
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
1061
+ nativeCurrency: { symbol: "INJ", decimals: 18 },
1062
+ defaultRpcUrls: [
1063
+ "https://k8s.testnet.json-rpc.injective.network",
1064
+ "https://testnet.evm.archival.chain.virtual.json-rpc.injective.network"
1065
+ ],
1066
+ explorerUrl: "https://testnet.blockscout.injective.network",
1067
+ capabilities: {
1068
+ fastSource: false,
1069
+ forwardingDestination: false,
1070
+ upfrontFeeSource: false,
1071
+ standardFeeSwitch: true
1072
+ }
1073
+ };
1074
+ var MorphTestnet = {
1075
+ id: "Morph_Testnet",
1076
+ label: "Morph Hoodi Testnet",
1077
+ ecosystem: "evm",
1078
+ network: "testnet",
1079
+ evmChainId: 2910,
1080
+ cctpDomain: 30,
1081
+ usdc: "0x7433b41C6c5e1d58D4Da99483609520255ab661B",
1082
+ usdcDecimals: 6,
1083
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
1084
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
1085
+ nativeCurrency: { symbol: "ETH", decimals: 18 },
1086
+ defaultRpcUrls: ["https://rpc-hoodi-bgw.morph.network"],
1087
+ explorerUrl: "https://explorer-hoodi.morph.network",
1088
+ capabilities: {
1089
+ fastSource: true,
1090
+ forwardingDestination: false,
1091
+ upfrontFeeSource: false,
1092
+ standardFeeSwitch: true
1093
+ }
1094
+ };
1095
+ var PharosTestnet = {
1096
+ id: "Pharos_Testnet",
1097
+ label: "Pharos Testnet",
1098
+ ecosystem: "evm",
1099
+ network: "testnet",
1100
+ evmChainId: 688689,
1101
+ cctpDomain: 31,
1102
+ usdc: "0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B",
1103
+ usdcDecimals: 6,
1104
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
1105
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
1106
+ nativeCurrency: { symbol: "PHAROS", decimals: 18 },
1107
+ defaultRpcUrls: ["https://atlantic.dplabs-internal.com"],
1108
+ explorerUrl: "https://atlantic.pharosscan.xyz",
1109
+ capabilities: {
1110
+ fastSource: false,
1111
+ forwardingDestination: false,
1112
+ upfrontFeeSource: false,
1113
+ standardFeeSwitch: true
1114
+ }
1115
+ };
1116
+ var CronosTestnet = {
1117
+ id: "Cronos_Testnet",
1118
+ label: "Cronos Testnet",
1119
+ ecosystem: "evm",
1120
+ network: "testnet",
1121
+ evmChainId: 338,
1122
+ cctpDomain: 32,
1123
+ usdc: "0xEb33dc5fac03833e132593659e1dE7256aB59794",
1124
+ usdcDecimals: 6,
1125
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
1126
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
1127
+ nativeCurrency: { symbol: "tCRO", decimals: 18 },
1128
+ defaultRpcUrls: ["https://evm-t3.cronos.com"],
1129
+ explorerUrl: "https://explorer.cronos.com/testnet",
1130
+ capabilities: {
1131
+ fastSource: false,
1132
+ forwardingDestination: false,
1133
+ upfrontFeeSource: false,
1134
+ standardFeeSwitch: true
1135
+ }
1136
+ };
1137
+ var PlasmaTestnet = {
1138
+ id: "Plasma_Testnet",
1139
+ label: "Plasma Testnet",
1140
+ ecosystem: "evm",
1141
+ network: "testnet",
1142
+ evmChainId: 9746,
1143
+ cctpDomain: 33,
1144
+ usdc: "0xE67Fb267022cBA8064Dd388CC2FED724F3120D9D",
1145
+ usdcDecimals: 6,
1146
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
1147
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
1148
+ nativeCurrency: { symbol: "XPL", decimals: 18 },
1149
+ defaultRpcUrls: ["https://testnet-rpc.plasma.to"],
1150
+ explorerUrl: "https://testnet.plasmascan.to",
1151
+ capabilities: {
1152
+ fastSource: false,
1153
+ forwardingDestination: false,
1154
+ upfrontFeeSource: false,
1155
+ standardFeeSwitch: true
1156
+ }
1157
+ };
1158
+ var XLayerTestnet = {
1159
+ id: "X_Layer_Testnet",
1160
+ label: "X Layer Testnet",
1161
+ ecosystem: "evm",
1162
+ network: "testnet",
1163
+ evmChainId: 1952,
1164
+ cctpDomain: 37,
1165
+ usdc: "0xDec90b78111Ba2fc6FC6d84d8B9ec159A2d4b9B3",
1166
+ usdcDecimals: 6,
1167
+ tokenMessenger: TOKEN_MESSENGER_V2_EVM_TESTNET,
1168
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_EVM_TESTNET,
1169
+ nativeCurrency: { symbol: "OKB", decimals: 18 },
1170
+ defaultRpcUrls: [
1171
+ "https://testrpc.xlayer.tech/terigon",
1172
+ "https://xlayertestrpc.okx.com/terigon"
1173
+ ],
1174
+ explorerUrl: "https://www.okx.com/web3/explorer/xlayer-test",
1175
+ capabilities: {
1176
+ fastSource: true,
1177
+ forwardingDestination: false,
1178
+ upfrontFeeSource: false,
1179
+ standardFeeSwitch: true
1180
+ }
1181
+ };
1182
+ var EVM_TESTNET_CHAINS = [
1183
+ EthereumSepolia,
1184
+ AvalancheFuji,
1185
+ OptimismSepolia,
1186
+ ArbitrumSepolia,
1187
+ BaseSepolia,
1188
+ PolygonAmoyTestnet,
1189
+ UnichainSepolia,
1190
+ LineaSepolia,
1191
+ CodexTestnet,
1192
+ SonicTestnet,
1193
+ WorldChainSepolia,
1194
+ MonadTestnet,
1195
+ SeiTestnet,
1196
+ XDCApothem,
1197
+ HyperEVMTestnet,
1198
+ InkTestnet,
1199
+ PlumeTestnet,
1200
+ ArcTestnet,
1201
+ EdgeTestnet,
1202
+ InjectiveTestnet,
1203
+ MorphTestnet,
1204
+ PharosTestnet,
1205
+ CronosTestnet,
1206
+ PlasmaTestnet,
1207
+ XLayerTestnet
1208
+ ];
1209
+
1210
+ // src/chains/solana.ts
1211
+ var Solana = {
1212
+ id: "Solana",
1213
+ label: "Solana",
1214
+ ecosystem: "solana",
1215
+ network: "mainnet",
1216
+ cluster: "mainnet-beta",
1217
+ cctpDomain: SOLANA_CCTP_DOMAIN,
1218
+ usdc: USDC_SPL_MAINNET,
1219
+ usdcDecimals: 6,
1220
+ tokenMessengerMinter: TOKEN_MESSENGER_MINTER_V2_SOLANA,
1221
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_SOLANA,
1222
+ nativeCurrency: { symbol: "SOL", decimals: 9 },
1223
+ defaultRpcUrls: [
1224
+ "https://api.mainnet.solana.com",
1225
+ "https://api.mainnet-beta.solana.com"
1226
+ ],
1227
+ explorerUrl: "https://explorer.solana.com",
1228
+ capabilities: {
1229
+ fastSource: true,
1230
+ forwardingDestination: true,
1231
+ upfrontFeeSource: false,
1232
+ standardFeeSwitch: false
1233
+ }
1234
+ };
1235
+ var SolanaDevnet = {
1236
+ id: "Solana_Devnet",
1237
+ label: "Solana Devnet",
1238
+ ecosystem: "solana",
1239
+ network: "testnet",
1240
+ cluster: "devnet",
1241
+ cctpDomain: SOLANA_CCTP_DOMAIN,
1242
+ usdc: USDC_SPL_DEVNET,
1243
+ usdcDecimals: 6,
1244
+ tokenMessengerMinter: TOKEN_MESSENGER_MINTER_V2_SOLANA,
1245
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_SOLANA,
1246
+ nativeCurrency: { symbol: "SOL", decimals: 9 },
1247
+ defaultRpcUrls: ["https://api.devnet.solana.com"],
1248
+ explorerUrl: "https://explorer.solana.com",
1249
+ explorerQuery: "?cluster=devnet",
1250
+ capabilities: {
1251
+ fastSource: true,
1252
+ forwardingDestination: true,
1253
+ upfrontFeeSource: false,
1254
+ standardFeeSwitch: false
1255
+ }
1256
+ };
1257
+ function deriveUsdcSac(issuer, passphrase) {
1258
+ return new stellarSdk.Asset("USDC", issuer).contractId(passphrase);
1259
+ }
1260
+ var USDC_SAC_STELLAR_MAINNET = deriveUsdcSac(
1261
+ USDC_ISSUER_STELLAR_MAINNET,
1262
+ STELLAR_NETWORK_PASSPHRASE_MAINNET
1263
+ );
1264
+ var USDC_SAC_STELLAR_TESTNET = deriveUsdcSac(
1265
+ USDC_ISSUER_STELLAR_TESTNET,
1266
+ STELLAR_NETWORK_PASSPHRASE_TESTNET
1267
+ );
1268
+ var Stellar = {
1269
+ id: "Stellar",
1270
+ label: "Stellar",
1271
+ ecosystem: "stellar",
1272
+ network: "mainnet",
1273
+ stellarNetwork: "public",
1274
+ networkPassphrase: STELLAR_NETWORK_PASSPHRASE_MAINNET,
1275
+ cctpDomain: STELLAR_CCTP_DOMAIN,
1276
+ usdcIssuer: USDC_ISSUER_STELLAR_MAINNET,
1277
+ usdc: USDC_SAC_STELLAR_MAINNET,
1278
+ usdcDecimals: STELLAR_USDC_DECIMALS,
1279
+ tokenMessengerMinter: TOKEN_MESSENGER_MINTER_STELLAR_MAINNET,
1280
+ messageTransmitter: MESSAGE_TRANSMITTER_STELLAR_MAINNET,
1281
+ cctpForwarder: CCTP_FORWARDER_STELLAR_MAINNET,
1282
+ nativeCurrency: { symbol: "XLM", decimals: 7 },
1283
+ defaultRpcUrls: [
1284
+ "https://soroban-rpc.mainnet.stellar.gateway.fm",
1285
+ "https://mainnet.sorobanrpc.com"
1286
+ ],
1287
+ explorerUrl: "https://stellar.expert/explorer/public",
1288
+ capabilities: {
1289
+ fastSource: false,
1290
+ forwardingDestination: false,
1291
+ upfrontFeeSource: false,
1292
+ standardFeeSwitch: false
1293
+ }
1294
+ };
1295
+ var StellarTestnet = {
1296
+ id: "Stellar_Testnet",
1297
+ label: "Stellar Testnet",
1298
+ ecosystem: "stellar",
1299
+ network: "testnet",
1300
+ stellarNetwork: "testnet",
1301
+ networkPassphrase: STELLAR_NETWORK_PASSPHRASE_TESTNET,
1302
+ cctpDomain: STELLAR_CCTP_DOMAIN,
1303
+ usdcIssuer: USDC_ISSUER_STELLAR_TESTNET,
1304
+ usdc: USDC_SAC_STELLAR_TESTNET,
1305
+ usdcDecimals: STELLAR_USDC_DECIMALS,
1306
+ tokenMessengerMinter: TOKEN_MESSENGER_MINTER_STELLAR_TESTNET,
1307
+ messageTransmitter: MESSAGE_TRANSMITTER_STELLAR_TESTNET,
1308
+ cctpForwarder: CCTP_FORWARDER_STELLAR_TESTNET,
1309
+ nativeCurrency: { symbol: "XLM", decimals: 7 },
1310
+ defaultRpcUrls: ["https://soroban-testnet.stellar.org"],
1311
+ explorerUrl: "https://stellar.expert/explorer/testnet",
1312
+ capabilities: {
1313
+ fastSource: false,
1314
+ forwardingDestination: false,
1315
+ upfrontFeeSource: false,
1316
+ standardFeeSwitch: false
1317
+ }
1318
+ };
1319
+
1320
+ // src/chains/starknet.ts
1321
+ var Starknet = {
1322
+ id: "Starknet",
1323
+ label: "Starknet",
1324
+ ecosystem: "starknet",
1325
+ network: "mainnet",
1326
+ starknetNetwork: "mainnet",
1327
+ chainId: STARKNET_CHAIN_ID_MAINNET,
1328
+ cctpDomain: STARKNET_CCTP_DOMAIN,
1329
+ usdc: USDC_STARKNET_MAINNET,
1330
+ usdcDecimals: 6,
1331
+ tokenMessengerMinter: TOKEN_MESSENGER_MINTER_V2_STARKNET_MAINNET,
1332
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_STARKNET_MAINNET,
1333
+ nativeCurrency: { symbol: "STRK", decimals: 18 },
1334
+ defaultRpcUrls: ["https://starknet-rpc.publicnode.com"],
1335
+ explorerUrl: "https://voyager.online",
1336
+ capabilities: {
1337
+ fastSource: true,
1338
+ forwardingDestination: false,
1339
+ upfrontFeeSource: false,
1340
+ standardFeeSwitch: false
1341
+ }
1342
+ };
1343
+ var StarknetSepolia = {
1344
+ id: "Starknet_Sepolia",
1345
+ label: "Starknet Sepolia",
1346
+ ecosystem: "starknet",
1347
+ network: "testnet",
1348
+ starknetNetwork: "sepolia",
1349
+ chainId: STARKNET_CHAIN_ID_SEPOLIA,
1350
+ cctpDomain: STARKNET_CCTP_DOMAIN,
1351
+ usdc: USDC_STARKNET_SEPOLIA,
1352
+ usdcDecimals: 6,
1353
+ tokenMessengerMinter: TOKEN_MESSENGER_MINTER_V2_STARKNET_SEPOLIA,
1354
+ messageTransmitter: MESSAGE_TRANSMITTER_V2_STARKNET_SEPOLIA,
1355
+ nativeCurrency: { symbol: "STRK", decimals: 18 },
1356
+ defaultRpcUrls: ["https://starknet-sepolia-rpc.publicnode.com"],
1357
+ explorerUrl: "https://sepolia.voyager.online",
1358
+ capabilities: {
1359
+ fastSource: true,
1360
+ forwardingDestination: false,
1361
+ upfrontFeeSource: false,
1362
+ standardFeeSwitch: false
1363
+ }
1364
+ };
1365
+
1366
+ // src/errors.ts
1367
+ var CctpError = class extends Error {
1368
+ code;
1369
+ cause;
1370
+ constructor(code, message, cause) {
1371
+ super(message);
1372
+ this.name = "CctpError";
1373
+ this.code = code;
1374
+ if (cause !== void 0) this.cause = cause;
1375
+ }
1376
+ };
1377
+ var InvalidInputError = class extends CctpError {
1378
+ constructor(code, message, cause) {
1379
+ super(code, message, cause);
1380
+ this.name = "InvalidInputError";
1381
+ }
1382
+ };
1383
+ var ProtocolError = class extends CctpError {
1384
+ constructor(code, message, cause) {
1385
+ super(code, message, cause);
1386
+ this.name = "ProtocolError";
1387
+ }
1388
+ };
1389
+
1390
+ // src/chains/registry.ts
1391
+ var UnknownChainError = class extends InvalidInputError {
1392
+ constructor(detail) {
1393
+ super("invalid_chain", `Unknown chain: ${detail}`);
1394
+ this.name = "UnknownChainError";
1395
+ }
1396
+ };
1397
+ var CHAINS = [
1398
+ ...EVM_MAINNET_CHAINS,
1399
+ ...EVM_TESTNET_CHAINS,
1400
+ Solana,
1401
+ SolanaDevnet,
1402
+ Stellar,
1403
+ StellarTestnet,
1404
+ Starknet,
1405
+ StarknetSepolia
1406
+ ];
1407
+ var ALL = CHAINS;
1408
+ var BY_ID = new Map(ALL.map((c) => [c.id, c]));
1409
+ var BY_EVM_CHAIN_ID = new Map(
1410
+ ALL.filter(isEvmChain).map((c) => [c.evmChainId, c])
1411
+ );
1412
+ var BY_DOMAIN_AND_NETWORK = new Map(
1413
+ ALL.map((c) => [`${c.cctpDomain}:${c.network}`, c])
1414
+ );
1415
+ function isEvmChain(chain) {
1416
+ return chain.ecosystem === "evm";
1417
+ }
1418
+ function isSolanaChain(chain) {
1419
+ return chain.ecosystem === "solana";
1420
+ }
1421
+ function isStellarChain(chain) {
1422
+ return chain.ecosystem === "stellar";
1423
+ }
1424
+ function isStarknetChain(chain) {
1425
+ return chain.ecosystem === "starknet";
1426
+ }
1427
+ function isChainId(value) {
1428
+ return BY_ID.has(value);
1429
+ }
1430
+ function getChain(id) {
1431
+ const chain = BY_ID.get(id);
1432
+ if (!chain) throw new UnknownChainError(`id="${id}"`);
1433
+ return chain;
1434
+ }
1435
+ function chainsByNetwork(network) {
1436
+ return ALL.filter((c) => c.network === network);
1437
+ }
1438
+ function chainByEvmChainId(evmChainId) {
1439
+ const chain = BY_EVM_CHAIN_ID.get(evmChainId);
1440
+ if (!chain) throw new UnknownChainError(`evmChainId=${evmChainId}`);
1441
+ return chain;
1442
+ }
1443
+ function tryChainByEvmChainId(evmChainId) {
1444
+ return BY_EVM_CHAIN_ID.get(evmChainId);
1445
+ }
1446
+ function chainByDomain(domain, network) {
1447
+ const chain = BY_DOMAIN_AND_NETWORK.get(`${domain}:${network}`);
1448
+ if (!chain) {
1449
+ throw new UnknownChainError(`domain=${domain} network=${network}`);
1450
+ }
1451
+ return chain;
1452
+ }
1453
+ function explorerTxUrl(chain, txHash) {
1454
+ return `${chain.explorerUrl}/tx/${txHash}${chain.explorerQuery ?? ""}`;
1455
+ }
1456
+ function explorerAddressUrl(chain, address) {
1457
+ return `${chain.explorerUrl}/${addressPath(chain, address)}/${address}${chain.explorerQuery ?? ""}`;
1458
+ }
1459
+ function addressPath(chain, address) {
1460
+ switch (chain.ecosystem) {
1461
+ case "starknet":
1462
+ return "contract";
1463
+ case "stellar":
1464
+ return address.startsWith("C") ? "contract" : "account";
1465
+ default:
1466
+ return "address";
1467
+ }
1468
+ }
1469
+
1470
+ // src/chains/attestation.ts
1471
+ var s = (min, max = min) => ({ min, max });
1472
+ var L1_FINALITY = s(900, 1140);
1473
+ var BY_DOMAIN = {
1474
+ 0: { fast: s(20), standard: L1_FINALITY },
1475
+ 1: { standard: s(8) },
1476
+ 2: { fast: s(8), standard: L1_FINALITY },
1477
+ 3: { fast: s(8), standard: L1_FINALITY },
1478
+ 5: { fast: s(8), standard: s(25) },
1479
+ 6: { fast: s(8), standard: L1_FINALITY },
1480
+ 7: { standard: s(8) },
1481
+ 10: { fast: s(8), standard: L1_FINALITY },
1482
+ 11: { fast: s(8), standard: s(21600, 115200) },
1483
+ 12: { fast: s(8), standard: L1_FINALITY },
1484
+ 13: { standard: s(8) },
1485
+ 14: { fast: s(8), standard: L1_FINALITY },
1486
+ 15: { standard: s(5) },
1487
+ 16: { standard: s(5) },
1488
+ 18: { standard: s(10) },
1489
+ 19: { standard: s(5) },
1490
+ 21: { fast: s(8), standard: s(1800) },
1491
+ 22: { fast: s(8), standard: L1_FINALITY },
1492
+ 25: { fast: s(20), standard: s(7200, 14400) },
1493
+ 26: { standard: s(0.5) },
1494
+ 27: { standard: s(5) },
1495
+ 28: { fast: s(8), standard: s(960, 1260) },
1496
+ 29: { standard: s(0.65) },
1497
+ 30: { fast: s(8), standard: s(1200, 1800) },
1498
+ 31: { standard: s(7) },
1499
+ 32: { standard: s(0.5) },
1500
+ 33: { standard: s(1) },
1501
+ 37: { fast: s(8), standard: L1_FINALITY }
1502
+ };
1503
+ function attestationSeconds(chain, speed) {
1504
+ const times = BY_DOMAIN[chain.cctpDomain]?.[speed];
1505
+ if (!times) {
1506
+ throw new ProtocolError(
1507
+ "no_route",
1508
+ `No ${speed} attestation time for ${chain.label}.`
1509
+ );
1510
+ }
1511
+ return times;
1512
+ }
1513
+
1514
+ exports.Arbitrum = Arbitrum;
1515
+ exports.ArbitrumSepolia = ArbitrumSepolia;
1516
+ exports.Arc = Arc;
1517
+ exports.ArcTestnet = ArcTestnet;
1518
+ exports.Avalanche = Avalanche;
1519
+ exports.AvalancheFuji = AvalancheFuji;
1520
+ exports.Base = Base;
1521
+ exports.BaseSepolia = BaseSepolia;
1522
+ exports.CCTP_FORWARDER_STELLAR_MAINNET = CCTP_FORWARDER_STELLAR_MAINNET;
1523
+ exports.CCTP_FORWARDER_STELLAR_TESTNET = CCTP_FORWARDER_STELLAR_TESTNET;
1524
+ exports.CCTP_USDC_DECIMALS = CCTP_USDC_DECIMALS;
1525
+ exports.CHAINS = CHAINS;
1526
+ exports.Codex = Codex;
1527
+ exports.CodexTestnet = CodexTestnet;
1528
+ exports.Cronos = Cronos;
1529
+ exports.CronosTestnet = CronosTestnet;
1530
+ exports.EVM_MAINNET_CHAINS = EVM_MAINNET_CHAINS;
1531
+ exports.EVM_TESTNET_CHAINS = EVM_TESTNET_CHAINS;
1532
+ exports.Edge = Edge;
1533
+ exports.EdgeTestnet = EdgeTestnet;
1534
+ exports.Ethereum = Ethereum;
1535
+ exports.EthereumSepolia = EthereumSepolia;
1536
+ exports.HyperEVM = HyperEVM;
1537
+ exports.HyperEVMTestnet = HyperEVMTestnet;
1538
+ exports.Injective = Injective;
1539
+ exports.InjectiveTestnet = InjectiveTestnet;
1540
+ exports.Ink = Ink;
1541
+ exports.InkTestnet = InkTestnet;
1542
+ exports.Linea = Linea;
1543
+ exports.LineaSepolia = LineaSepolia;
1544
+ exports.MESSAGE_TRANSMITTER_STELLAR_MAINNET = MESSAGE_TRANSMITTER_STELLAR_MAINNET;
1545
+ exports.MESSAGE_TRANSMITTER_STELLAR_TESTNET = MESSAGE_TRANSMITTER_STELLAR_TESTNET;
1546
+ exports.MESSAGE_TRANSMITTER_V2_EVM_MAINNET = MESSAGE_TRANSMITTER_V2_EVM_MAINNET;
1547
+ exports.MESSAGE_TRANSMITTER_V2_EVM_TESTNET = MESSAGE_TRANSMITTER_V2_EVM_TESTNET;
1548
+ exports.MESSAGE_TRANSMITTER_V2_SOLANA = MESSAGE_TRANSMITTER_V2_SOLANA;
1549
+ exports.MESSAGE_TRANSMITTER_V2_STARKNET_MAINNET = MESSAGE_TRANSMITTER_V2_STARKNET_MAINNET;
1550
+ exports.MESSAGE_TRANSMITTER_V2_STARKNET_SEPOLIA = MESSAGE_TRANSMITTER_V2_STARKNET_SEPOLIA;
1551
+ exports.Monad = Monad;
1552
+ exports.MonadTestnet = MonadTestnet;
1553
+ exports.Morph = Morph;
1554
+ exports.MorphTestnet = MorphTestnet;
1555
+ exports.Optimism = Optimism;
1556
+ exports.OptimismSepolia = OptimismSepolia;
1557
+ exports.Pharos = Pharos;
1558
+ exports.PharosTestnet = PharosTestnet;
1559
+ exports.Plasma = Plasma;
1560
+ exports.PlasmaTestnet = PlasmaTestnet;
1561
+ exports.Plume = Plume;
1562
+ exports.PlumeTestnet = PlumeTestnet;
1563
+ exports.Polygon = Polygon;
1564
+ exports.PolygonAmoyTestnet = PolygonAmoyTestnet;
1565
+ exports.SOLANA_CCTP_DOMAIN = SOLANA_CCTP_DOMAIN;
1566
+ exports.STARKNET_CCTP_DOMAIN = STARKNET_CCTP_DOMAIN;
1567
+ exports.STARKNET_CHAIN_ID_MAINNET = STARKNET_CHAIN_ID_MAINNET;
1568
+ exports.STARKNET_CHAIN_ID_SEPOLIA = STARKNET_CHAIN_ID_SEPOLIA;
1569
+ exports.STELLAR_CCTP_DOMAIN = STELLAR_CCTP_DOMAIN;
1570
+ exports.STELLAR_NETWORK_PASSPHRASE_MAINNET = STELLAR_NETWORK_PASSPHRASE_MAINNET;
1571
+ exports.STELLAR_NETWORK_PASSPHRASE_TESTNET = STELLAR_NETWORK_PASSPHRASE_TESTNET;
1572
+ exports.STELLAR_USDC_DECIMALS = STELLAR_USDC_DECIMALS;
1573
+ exports.Sei = Sei;
1574
+ exports.SeiTestnet = SeiTestnet;
1575
+ exports.Solana = Solana;
1576
+ exports.SolanaDevnet = SolanaDevnet;
1577
+ exports.Sonic = Sonic;
1578
+ exports.SonicTestnet = SonicTestnet;
1579
+ exports.Starknet = Starknet;
1580
+ exports.StarknetSepolia = StarknetSepolia;
1581
+ exports.Stellar = Stellar;
1582
+ exports.StellarTestnet = StellarTestnet;
1583
+ exports.TOKEN_MESSENGER_MINTER_STELLAR_MAINNET = TOKEN_MESSENGER_MINTER_STELLAR_MAINNET;
1584
+ exports.TOKEN_MESSENGER_MINTER_STELLAR_TESTNET = TOKEN_MESSENGER_MINTER_STELLAR_TESTNET;
1585
+ exports.TOKEN_MESSENGER_MINTER_V2_SOLANA = TOKEN_MESSENGER_MINTER_V2_SOLANA;
1586
+ exports.TOKEN_MESSENGER_MINTER_V2_STARKNET_MAINNET = TOKEN_MESSENGER_MINTER_V2_STARKNET_MAINNET;
1587
+ exports.TOKEN_MESSENGER_MINTER_V2_STARKNET_SEPOLIA = TOKEN_MESSENGER_MINTER_V2_STARKNET_SEPOLIA;
1588
+ exports.TOKEN_MESSENGER_V2_EVM_MAINNET = TOKEN_MESSENGER_V2_EVM_MAINNET;
1589
+ exports.TOKEN_MESSENGER_V2_EVM_TESTNET = TOKEN_MESSENGER_V2_EVM_TESTNET;
1590
+ exports.TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET = TOKEN_MESSENGER_WITH_FEES_EVM_MAINNET;
1591
+ exports.TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET = TOKEN_MESSENGER_WITH_FEES_EVM_TESTNET;
1592
+ exports.USDC_ISSUER_STELLAR_MAINNET = USDC_ISSUER_STELLAR_MAINNET;
1593
+ exports.USDC_ISSUER_STELLAR_TESTNET = USDC_ISSUER_STELLAR_TESTNET;
1594
+ exports.USDC_SPL_DEVNET = USDC_SPL_DEVNET;
1595
+ exports.USDC_SPL_MAINNET = USDC_SPL_MAINNET;
1596
+ exports.USDC_STARKNET_MAINNET = USDC_STARKNET_MAINNET;
1597
+ exports.USDC_STARKNET_SEPOLIA = USDC_STARKNET_SEPOLIA;
1598
+ exports.Unichain = Unichain;
1599
+ exports.UnichainSepolia = UnichainSepolia;
1600
+ exports.UnknownChainError = UnknownChainError;
1601
+ exports.WorldChain = WorldChain;
1602
+ exports.WorldChainSepolia = WorldChainSepolia;
1603
+ exports.XDC = XDC;
1604
+ exports.XDCApothem = XDCApothem;
1605
+ exports.XLayer = XLayer;
1606
+ exports.XLayerTestnet = XLayerTestnet;
1607
+ exports.attestationSeconds = attestationSeconds;
1608
+ exports.chainByDomain = chainByDomain;
1609
+ exports.chainByEvmChainId = chainByEvmChainId;
1610
+ exports.chainsByNetwork = chainsByNetwork;
1611
+ exports.explorerAddressUrl = explorerAddressUrl;
1612
+ exports.explorerTxUrl = explorerTxUrl;
1613
+ exports.getChain = getChain;
1614
+ exports.isChainId = isChainId;
1615
+ exports.isEvmChain = isEvmChain;
1616
+ exports.isSolanaChain = isSolanaChain;
1617
+ exports.isStarknetChain = isStarknetChain;
1618
+ exports.isStellarChain = isStellarChain;
1619
+ exports.tryChainByEvmChainId = tryChainByEvmChainId;
1620
+ //# sourceMappingURL=chains.cjs.map
1621
+ //# sourceMappingURL=chains.cjs.map