@circle-fin/app-kit 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/README.md +34 -9
- package/chains.cjs +192 -8
- package/chains.d.ts +12 -8
- package/chains.mjs +192 -8
- package/index.cjs +481 -46
- package/index.d.ts +300 -27
- package/index.mjs +481 -46
- package/package.json +4 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# @circle-fin/app-kit
|
|
2
|
+
|
|
3
|
+
## 1.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Enable forwarder destination support for Codex, Plume, and XDC chains on both mainnet and testnet
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Update HyperEVM explorer URLs to use the official Hyperliquid explorer
|
|
12
|
+
|
|
13
|
+
## 1.1.0
|
|
14
|
+
|
|
15
|
+
### Minor Changes
|
|
16
|
+
|
|
17
|
+
- Add support for bridging USDC to and from Edge and Morph networks. Both mainnet and testnet chains are now available as source and destination options in Bridge Kit.
|
|
18
|
+
|
|
19
|
+
## 1.0.1
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Fix package installation failure where `npm install @circle-fin/app-kit` would error with unresolvable dependencies.
|
|
24
|
+
|
|
25
|
+
## 1.0.0
|
|
26
|
+
|
|
27
|
+
### Major Changes
|
|
28
|
+
|
|
29
|
+
- Introducing AppKit — a unified SDK for stablecoin operations combining bridging, swapping, and token transfers in one interface.
|
|
30
|
+
- `kit.bridge()` — cross-chain USDC transfers via CCTP v2 across 35+ supported chains
|
|
31
|
+
- `kit.swap()` — same-chain token swaps with smart routing across DEX liquidity sources
|
|
32
|
+
- `kit.send()` — same-chain transfers for USDC, USDT, native tokens, and any ERC-20/SPL token by contract address
|
|
33
|
+
|
|
34
|
+
Each operation has a corresponding estimate method (`estimateBridge`, `estimateSwap`, `estimateSend`) to preview fees and output amounts before executing.
|
|
35
|
+
|
|
36
|
+
Additional features:
|
|
37
|
+
- Unified developer fee configuration across all operations
|
|
38
|
+
- Action event system for monitoring operation lifecycle
|
|
39
|
+
- Tree-shakeable subpath imports (`/bridge`, `/swap`, `/chains`, `/context`)
|
|
40
|
+
- Full error hierarchy with type guards (`isRetryableError`, `isBalanceError`, `isRpcError`, etc.)
|
|
41
|
+
- Chain definitions available via `@circle-fin/app-kit/chains`
|
|
42
|
+
|
|
43
|
+
Configure your adapters once, then use bridge, swap, and send through a single API.
|
package/README.md
CHANGED
|
@@ -63,9 +63,9 @@ The App Kit provides a **unified interface** for both cross-chain transfers and
|
|
|
63
63
|
- **🔧 Bring your own infrastructure**: Seamlessly integrate with your existing setup when needed
|
|
64
64
|
- **🔒 Production-ready security**: Leverages Circle's CCTPv2 for bridging and trusted swap providers
|
|
65
65
|
- **🚀 Developer experience**: Complete TypeScript support, comprehensive validation, and instant connectivity
|
|
66
|
-
- **🌍 Multi-chain support**: Bridge across **
|
|
67
|
-
- **Mainnet (
|
|
68
|
-
- **Testnet (
|
|
66
|
+
- **🌍 Multi-chain support**: Bridge across **41 chains** with **800 total bridge routes** through Circle's CCTPv2
|
|
67
|
+
- **Mainnet (20 chains)**: Arbitrum, Avalanche, Base, Codex, Edge, Ethereum, HyperEVM, Ink, Linea, Monad, Morph, OP Mainnet, Plume, Polygon PoS, Sei, Solana, Sonic, Unichain, World Chain, XDC
|
|
68
|
+
- **Testnet (21 chains)**: Arc Testnet, Arbitrum Sepolia, Avalanche Fuji, Base Sepolia, Codex Testnet, Edge Testnet, Ethereum Sepolia, HyperEVM Testnet, Ink Testnet, Linea Sepolia, Monad Testnet, Morph Testnet, OP Sepolia, Plume Testnet, Polygon PoS Amoy, Sei Testnet, Solana Devnet, Sonic Testnet, Unichain Sepolia, World Chain Sepolia, XDC Apothem
|
|
69
69
|
- **🔄 Swap support**: Same-chain token swaps powered by Circle's Stablecoin Service
|
|
70
70
|
- **🎯 Flexible adapters**: Supporting EVM (Viem, Ethers) and Solana (@solana/web3)
|
|
71
71
|
- **📡 Real-time event monitoring**: Track progress throughout the operation lifecycle
|
|
@@ -130,9 +130,9 @@ npm install @circle-fin/adapter-viem-v2 viem
|
|
|
130
130
|
yarn add @circle-fin/adapter-viem-v2 viem
|
|
131
131
|
|
|
132
132
|
# For EVM chains using Ethers.js
|
|
133
|
-
npm install @circle-fin/adapter-ethers-v6
|
|
133
|
+
npm install @circle-fin/adapter-ethers-v6 ethers
|
|
134
134
|
# or
|
|
135
|
-
yarn add @circle-fin/adapter-ethers-v6
|
|
135
|
+
yarn add @circle-fin/adapter-ethers-v6 ethers
|
|
136
136
|
|
|
137
137
|
# For Solana
|
|
138
138
|
npm install @circle-fin/adapter-solana @solana/web3.js @solana/spl-token
|
|
@@ -155,7 +155,7 @@ const result = await kit.bridge({
|
|
|
155
155
|
})
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
-
All
|
|
158
|
+
All 41 CCTPv2-supported chains are available for import.
|
|
159
159
|
|
|
160
160
|
## Quick Start
|
|
161
161
|
|
|
@@ -194,6 +194,9 @@ const result = await kit.swap({
|
|
|
194
194
|
tokenIn: 'USDC',
|
|
195
195
|
tokenOut: 'USDT',
|
|
196
196
|
amountIn: '100.0',
|
|
197
|
+
config: {
|
|
198
|
+
kitKey: process.env.KIT_KEY,
|
|
199
|
+
},
|
|
197
200
|
})
|
|
198
201
|
|
|
199
202
|
// Swap DAI to USDC (18 decimals handled automatically)
|
|
@@ -202,6 +205,9 @@ const daiSwap = await kit.swap({
|
|
|
202
205
|
tokenIn: 'DAI',
|
|
203
206
|
tokenOut: 'USDC',
|
|
204
207
|
amountIn: '500.0',
|
|
208
|
+
config: {
|
|
209
|
+
kitKey: process.env.KIT_KEY,
|
|
210
|
+
},
|
|
205
211
|
})
|
|
206
212
|
|
|
207
213
|
// Swap native ETH to stablecoin
|
|
@@ -210,6 +216,9 @@ const nativeSwap = await kit.swap({
|
|
|
210
216
|
tokenIn: 'NATIVE', // ETH on Ethereum
|
|
211
217
|
tokenOut: 'USDC',
|
|
212
218
|
amountIn: '1.5',
|
|
219
|
+
config: {
|
|
220
|
+
kitKey: process.env.KIT_KEY,
|
|
221
|
+
},
|
|
213
222
|
})
|
|
214
223
|
```
|
|
215
224
|
|
|
@@ -231,6 +240,9 @@ const swapEstimate = await kit.estimateSwap({
|
|
|
231
240
|
tokenIn: 'USDC',
|
|
232
241
|
tokenOut: 'USDT',
|
|
233
242
|
amountIn: '100.0',
|
|
243
|
+
config: {
|
|
244
|
+
kitKey: process.env.KIT_KEY,
|
|
245
|
+
},
|
|
234
246
|
})
|
|
235
247
|
|
|
236
248
|
console.log('Bridge fees:', bridgeEstimate.fees)
|
|
@@ -260,7 +272,7 @@ const allChains = kit.getSupportedChains()
|
|
|
260
272
|
|
|
261
273
|
### Send Parameters
|
|
262
274
|
|
|
263
|
-
The `send()` method
|
|
275
|
+
The `send()` method transfers tokens on the same chain from the source adapter to a recipient address or adapter:
|
|
264
276
|
|
|
265
277
|
```typescript
|
|
266
278
|
interface SendParams {
|
|
@@ -361,6 +373,9 @@ await kit.swap({
|
|
|
361
373
|
tokenIn: 'EURC',
|
|
362
374
|
tokenOut: 'USDC',
|
|
363
375
|
amountIn: '100.0',
|
|
376
|
+
config: {
|
|
377
|
+
kitKey: process.env.KIT_KEY,
|
|
378
|
+
},
|
|
364
379
|
})
|
|
365
380
|
|
|
366
381
|
// Swap DAI (18 decimals) to USDT
|
|
@@ -369,6 +384,9 @@ await kit.swap({
|
|
|
369
384
|
tokenIn: 'DAI',
|
|
370
385
|
tokenOut: 'USDT',
|
|
371
386
|
amountIn: '500.0', // SDK automatically handles 18-decimal precision
|
|
387
|
+
config: {
|
|
388
|
+
kitKey: process.env.KIT_KEY,
|
|
389
|
+
},
|
|
372
390
|
})
|
|
373
391
|
|
|
374
392
|
// Swap native token to stablecoin
|
|
@@ -377,6 +395,9 @@ await kit.swap({
|
|
|
377
395
|
tokenIn: 'NATIVE', // ETH on Ethereum
|
|
378
396
|
tokenOut: 'USDC',
|
|
379
397
|
amountIn: '2.5',
|
|
398
|
+
config: {
|
|
399
|
+
kitKey: process.env.KIT_KEY,
|
|
400
|
+
},
|
|
380
401
|
})
|
|
381
402
|
```
|
|
382
403
|
|
|
@@ -423,6 +444,7 @@ await kit.swap({
|
|
|
423
444
|
tokenOut: 'USDT',
|
|
424
445
|
amountIn: '1000',
|
|
425
446
|
config: {
|
|
447
|
+
kitKey: process.env.KIT_KEY,
|
|
426
448
|
customFee: {
|
|
427
449
|
value: '10',
|
|
428
450
|
recipientAddress: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb0',
|
|
@@ -530,6 +552,9 @@ const result = await kit.swap({
|
|
|
530
552
|
tokenIn: 'USDC',
|
|
531
553
|
tokenOut: 'USDT',
|
|
532
554
|
amountIn: '100.0',
|
|
555
|
+
config: {
|
|
556
|
+
kitKey: process.env.KIT_KEY,
|
|
557
|
+
},
|
|
533
558
|
})
|
|
534
559
|
|
|
535
560
|
console.log('Swap result:', result)
|
|
@@ -538,7 +563,7 @@ console.log('Swap result:', result)
|
|
|
538
563
|
### Send to Different Address
|
|
539
564
|
|
|
540
565
|
```typescript
|
|
541
|
-
// Send to a different address
|
|
566
|
+
// Send to a different address on the same chain
|
|
542
567
|
const result = await kit.send({
|
|
543
568
|
from: { adapter, chain: 'Ethereum' },
|
|
544
569
|
to: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e',
|
|
@@ -576,7 +601,7 @@ await kit.bridge({
|
|
|
576
601
|
|
|
577
602
|
### Core Methods
|
|
578
603
|
|
|
579
|
-
- `kit.send(params)` -
|
|
604
|
+
- `kit.send(params)` - Send tokens to a recipient on the same chain
|
|
580
605
|
- `kit.bridge(params)` - Execute cross-chain bridge operation
|
|
581
606
|
- `kit.swap(params)` - Execute same-chain swap operation
|
|
582
607
|
- `kit.estimateBridge(params)` - Get cost estimates for bridging
|
package/chains.cjs
CHANGED
|
@@ -52,6 +52,8 @@ var Blockchain;
|
|
|
52
52
|
Blockchain["Celo_Alfajores_Testnet"] = "Celo_Alfajores_Testnet";
|
|
53
53
|
Blockchain["Codex"] = "Codex";
|
|
54
54
|
Blockchain["Codex_Testnet"] = "Codex_Testnet";
|
|
55
|
+
Blockchain["Edge"] = "Edge";
|
|
56
|
+
Blockchain["Edge_Testnet"] = "Edge_Testnet";
|
|
55
57
|
Blockchain["Ethereum"] = "Ethereum";
|
|
56
58
|
Blockchain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
|
|
57
59
|
Blockchain["Hedera"] = "Hedera";
|
|
@@ -64,6 +66,8 @@ var Blockchain;
|
|
|
64
66
|
Blockchain["Linea_Sepolia"] = "Linea_Sepolia";
|
|
65
67
|
Blockchain["Monad"] = "Monad";
|
|
66
68
|
Blockchain["Monad_Testnet"] = "Monad_Testnet";
|
|
69
|
+
Blockchain["Morph"] = "Morph";
|
|
70
|
+
Blockchain["Morph_Testnet"] = "Morph_Testnet";
|
|
67
71
|
Blockchain["NEAR"] = "NEAR";
|
|
68
72
|
Blockchain["NEAR_Testnet"] = "NEAR_Testnet";
|
|
69
73
|
Blockchain["Noble"] = "Noble";
|
|
@@ -267,11 +271,13 @@ var BridgeChain;
|
|
|
267
271
|
BridgeChain["Avalanche"] = "Avalanche";
|
|
268
272
|
BridgeChain["Base"] = "Base";
|
|
269
273
|
BridgeChain["Codex"] = "Codex";
|
|
274
|
+
BridgeChain["Edge"] = "Edge";
|
|
270
275
|
BridgeChain["Ethereum"] = "Ethereum";
|
|
271
276
|
BridgeChain["HyperEVM"] = "HyperEVM";
|
|
272
277
|
BridgeChain["Ink"] = "Ink";
|
|
273
278
|
BridgeChain["Linea"] = "Linea";
|
|
274
279
|
BridgeChain["Monad"] = "Monad";
|
|
280
|
+
BridgeChain["Morph"] = "Morph";
|
|
275
281
|
BridgeChain["Optimism"] = "Optimism";
|
|
276
282
|
BridgeChain["Plume"] = "Plume";
|
|
277
283
|
BridgeChain["Polygon"] = "Polygon";
|
|
@@ -287,11 +293,13 @@ var BridgeChain;
|
|
|
287
293
|
BridgeChain["Avalanche_Fuji"] = "Avalanche_Fuji";
|
|
288
294
|
BridgeChain["Base_Sepolia"] = "Base_Sepolia";
|
|
289
295
|
BridgeChain["Codex_Testnet"] = "Codex_Testnet";
|
|
296
|
+
BridgeChain["Edge_Testnet"] = "Edge_Testnet";
|
|
290
297
|
BridgeChain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
|
|
291
298
|
BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
|
|
292
299
|
BridgeChain["Ink_Testnet"] = "Ink_Testnet";
|
|
293
300
|
BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
|
|
294
301
|
BridgeChain["Monad_Testnet"] = "Monad_Testnet";
|
|
302
|
+
BridgeChain["Morph_Testnet"] = "Morph_Testnet";
|
|
295
303
|
BridgeChain["Optimism_Sepolia"] = "Optimism_Sepolia";
|
|
296
304
|
BridgeChain["Plume_Testnet"] = "Plume_Testnet";
|
|
297
305
|
BridgeChain["Polygon_Amoy_Testnet"] = "Polygon_Amoy_Testnet";
|
|
@@ -1037,7 +1045,7 @@ const Codex = defineChain({
|
|
|
1037
1045
|
},
|
|
1038
1046
|
forwarderSupported: {
|
|
1039
1047
|
source: true,
|
|
1040
|
-
destination:
|
|
1048
|
+
destination: true,
|
|
1041
1049
|
},
|
|
1042
1050
|
},
|
|
1043
1051
|
kitContracts: {
|
|
@@ -1080,7 +1088,95 @@ const CodexTestnet = defineChain({
|
|
|
1080
1088
|
},
|
|
1081
1089
|
forwarderSupported: {
|
|
1082
1090
|
source: true,
|
|
1083
|
-
destination:
|
|
1091
|
+
destination: true,
|
|
1092
|
+
},
|
|
1093
|
+
},
|
|
1094
|
+
kitContracts: {
|
|
1095
|
+
bridge: BRIDGE_CONTRACT_EVM_TESTNET,
|
|
1096
|
+
},
|
|
1097
|
+
});
|
|
1098
|
+
|
|
1099
|
+
/**
|
|
1100
|
+
* Edge Mainnet chain definition
|
|
1101
|
+
* @remarks
|
|
1102
|
+
* This represents the official production network for the Edge blockchain.
|
|
1103
|
+
* Edge is an EVM-compatible blockchain.
|
|
1104
|
+
*/
|
|
1105
|
+
defineChain({
|
|
1106
|
+
type: 'evm',
|
|
1107
|
+
chain: Blockchain.Edge,
|
|
1108
|
+
name: 'Edge',
|
|
1109
|
+
title: 'Edge Mainnet',
|
|
1110
|
+
nativeCurrency: {
|
|
1111
|
+
name: 'Ether',
|
|
1112
|
+
symbol: 'ETH',
|
|
1113
|
+
decimals: 18,
|
|
1114
|
+
},
|
|
1115
|
+
chainId: 3343,
|
|
1116
|
+
isTestnet: false,
|
|
1117
|
+
explorerUrl: 'https://pro.edgex.exchange/en-US/explorer/tx/{hash}',
|
|
1118
|
+
rpcEndpoints: ['https://edge-mainnet.g.alchemy.com/public'],
|
|
1119
|
+
eurcAddress: null,
|
|
1120
|
+
usdcAddress: '0x98d2919b9A214E6Fa5384AC81E6864bA686Ad74c',
|
|
1121
|
+
usdtAddress: null,
|
|
1122
|
+
cctp: {
|
|
1123
|
+
domain: 28,
|
|
1124
|
+
contracts: {
|
|
1125
|
+
v2: {
|
|
1126
|
+
type: 'split',
|
|
1127
|
+
tokenMessenger: '0x98706A006bc632Df31CAdFCBD43F38887ce2ca5c',
|
|
1128
|
+
messageTransmitter: '0x5b61381Fc9e58E70EfC13a4A97516997019198ee',
|
|
1129
|
+
confirmations: 65,
|
|
1130
|
+
fastConfirmations: 1,
|
|
1131
|
+
},
|
|
1132
|
+
},
|
|
1133
|
+
forwarderSupported: {
|
|
1134
|
+
source: true,
|
|
1135
|
+
destination: true,
|
|
1136
|
+
},
|
|
1137
|
+
},
|
|
1138
|
+
kitContracts: {
|
|
1139
|
+
bridge: '0x6D1AaE1c34Aeb582022916a67f2A655C6f4eDFF2', //Unique bridge address as CCTP address for Edge is also unique
|
|
1140
|
+
},
|
|
1141
|
+
});
|
|
1142
|
+
|
|
1143
|
+
/**
|
|
1144
|
+
* Edge Testnet chain definition
|
|
1145
|
+
* @remarks
|
|
1146
|
+
* This represents the official test network for the Edge blockchain.
|
|
1147
|
+
* Edge is an EVM-compatible blockchain.
|
|
1148
|
+
*/
|
|
1149
|
+
defineChain({
|
|
1150
|
+
type: 'evm',
|
|
1151
|
+
chain: Blockchain.Edge_Testnet,
|
|
1152
|
+
name: 'Edge Testnet',
|
|
1153
|
+
title: 'Edge Testnet',
|
|
1154
|
+
nativeCurrency: {
|
|
1155
|
+
name: 'Ether',
|
|
1156
|
+
symbol: 'ETH',
|
|
1157
|
+
decimals: 18,
|
|
1158
|
+
},
|
|
1159
|
+
chainId: 33431,
|
|
1160
|
+
isTestnet: true,
|
|
1161
|
+
explorerUrl: 'https://edge-testnet.explorer.alchemy.com/tx/{hash}',
|
|
1162
|
+
rpcEndpoints: ['https://edge-testnet.g.alchemy.com/public'],
|
|
1163
|
+
eurcAddress: null,
|
|
1164
|
+
usdcAddress: '0x2d9F7CAD728051AA35Ecdc472a14cf8cDF5CFD6B',
|
|
1165
|
+
usdtAddress: null,
|
|
1166
|
+
cctp: {
|
|
1167
|
+
domain: 28,
|
|
1168
|
+
contracts: {
|
|
1169
|
+
v2: {
|
|
1170
|
+
type: 'split',
|
|
1171
|
+
tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
|
|
1172
|
+
messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
|
|
1173
|
+
confirmations: 65,
|
|
1174
|
+
fastConfirmations: 1,
|
|
1175
|
+
},
|
|
1176
|
+
},
|
|
1177
|
+
forwarderSupported: {
|
|
1178
|
+
source: true,
|
|
1179
|
+
destination: true,
|
|
1084
1180
|
},
|
|
1085
1181
|
},
|
|
1086
1182
|
kitContracts: {
|
|
@@ -1254,7 +1350,7 @@ const HyperEVM = defineChain({
|
|
|
1254
1350
|
},
|
|
1255
1351
|
chainId: 999,
|
|
1256
1352
|
isTestnet: false,
|
|
1257
|
-
explorerUrl: 'https://
|
|
1353
|
+
explorerUrl: 'https://app.hyperliquid.xyz/explorer/tx/{hash}',
|
|
1258
1354
|
rpcEndpoints: ['https://rpc.hyperliquid.xyz/evm'],
|
|
1259
1355
|
eurcAddress: null,
|
|
1260
1356
|
usdcAddress: '0xb88339CB7199b77E23DB6E890353E22632Ba630f',
|
|
@@ -1299,7 +1395,7 @@ const HyperEVMTestnet = defineChain({
|
|
|
1299
1395
|
},
|
|
1300
1396
|
chainId: 998,
|
|
1301
1397
|
isTestnet: true,
|
|
1302
|
-
explorerUrl: 'https://
|
|
1398
|
+
explorerUrl: 'https://app.hyperliquid-testnet.xyz/explorer/tx/{hash}',
|
|
1303
1399
|
rpcEndpoints: ['https://rpc.hyperliquid-testnet.xyz/evm'],
|
|
1304
1400
|
eurcAddress: null,
|
|
1305
1401
|
usdcAddress: '0x2B3370eE501B4a559b57D449569354196457D8Ab',
|
|
@@ -1599,6 +1695,94 @@ defineChain({
|
|
|
1599
1695
|
},
|
|
1600
1696
|
});
|
|
1601
1697
|
|
|
1698
|
+
/**
|
|
1699
|
+
* Morph Mainnet chain definition
|
|
1700
|
+
* @remarks
|
|
1701
|
+
* This represents the official production network for the Morph blockchain.
|
|
1702
|
+
* Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
|
|
1703
|
+
*/
|
|
1704
|
+
defineChain({
|
|
1705
|
+
type: 'evm',
|
|
1706
|
+
chain: Blockchain.Morph,
|
|
1707
|
+
name: 'Morph',
|
|
1708
|
+
title: 'Morph Mainnet',
|
|
1709
|
+
nativeCurrency: {
|
|
1710
|
+
name: 'Ether',
|
|
1711
|
+
symbol: 'ETH',
|
|
1712
|
+
decimals: 18,
|
|
1713
|
+
},
|
|
1714
|
+
chainId: 2818,
|
|
1715
|
+
isTestnet: false,
|
|
1716
|
+
explorerUrl: 'https://explorer.morph.network/tx/{hash}',
|
|
1717
|
+
rpcEndpoints: ['https://rpc.morphl2.io'],
|
|
1718
|
+
eurcAddress: null,
|
|
1719
|
+
usdcAddress: '0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B',
|
|
1720
|
+
usdtAddress: null,
|
|
1721
|
+
cctp: {
|
|
1722
|
+
domain: 30,
|
|
1723
|
+
contracts: {
|
|
1724
|
+
v2: {
|
|
1725
|
+
type: 'split',
|
|
1726
|
+
tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
1727
|
+
messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
1728
|
+
confirmations: 64,
|
|
1729
|
+
fastConfirmations: 1,
|
|
1730
|
+
},
|
|
1731
|
+
},
|
|
1732
|
+
forwarderSupported: {
|
|
1733
|
+
source: false,
|
|
1734
|
+
destination: false,
|
|
1735
|
+
},
|
|
1736
|
+
},
|
|
1737
|
+
kitContracts: {
|
|
1738
|
+
bridge: BRIDGE_CONTRACT_EVM_MAINNET,
|
|
1739
|
+
},
|
|
1740
|
+
});
|
|
1741
|
+
|
|
1742
|
+
/**
|
|
1743
|
+
* Morph Hoodi Testnet chain definition
|
|
1744
|
+
* @remarks
|
|
1745
|
+
* This represents the official test network for the Morph blockchain.
|
|
1746
|
+
* Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
|
|
1747
|
+
*/
|
|
1748
|
+
defineChain({
|
|
1749
|
+
type: 'evm',
|
|
1750
|
+
chain: Blockchain.Morph_Testnet,
|
|
1751
|
+
name: 'Morph Hoodi',
|
|
1752
|
+
title: 'Morph Hoodi Testnet',
|
|
1753
|
+
nativeCurrency: {
|
|
1754
|
+
name: 'Ether',
|
|
1755
|
+
symbol: 'ETH',
|
|
1756
|
+
decimals: 18,
|
|
1757
|
+
},
|
|
1758
|
+
chainId: 2910,
|
|
1759
|
+
isTestnet: true,
|
|
1760
|
+
explorerUrl: 'https://explorer-hoodi.morphl2.io/tx/{hash}',
|
|
1761
|
+
rpcEndpoints: ['https://rpc-hoodi.morphl2.io'],
|
|
1762
|
+
eurcAddress: null,
|
|
1763
|
+
usdcAddress: '0x7433b41C6c5e1d58D4Da99483609520255ab661B',
|
|
1764
|
+
usdtAddress: null,
|
|
1765
|
+
cctp: {
|
|
1766
|
+
domain: 30,
|
|
1767
|
+
contracts: {
|
|
1768
|
+
v2: {
|
|
1769
|
+
type: 'split',
|
|
1770
|
+
tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
|
|
1771
|
+
messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
|
|
1772
|
+
confirmations: 64,
|
|
1773
|
+
fastConfirmations: 1,
|
|
1774
|
+
},
|
|
1775
|
+
},
|
|
1776
|
+
forwarderSupported: {
|
|
1777
|
+
source: false,
|
|
1778
|
+
destination: false,
|
|
1779
|
+
},
|
|
1780
|
+
},
|
|
1781
|
+
kitContracts: {
|
|
1782
|
+
bridge: BRIDGE_CONTRACT_EVM_TESTNET,
|
|
1783
|
+
},
|
|
1784
|
+
});
|
|
1785
|
+
|
|
1602
1786
|
/**
|
|
1603
1787
|
* NEAR Protocol Mainnet chain definition
|
|
1604
1788
|
* @remarks
|
|
@@ -1857,7 +2041,7 @@ const Plume = defineChain({
|
|
|
1857
2041
|
},
|
|
1858
2042
|
forwarderSupported: {
|
|
1859
2043
|
source: true,
|
|
1860
|
-
destination:
|
|
2044
|
+
destination: true,
|
|
1861
2045
|
},
|
|
1862
2046
|
},
|
|
1863
2047
|
kitContracts: {
|
|
@@ -1902,7 +2086,7 @@ const PlumeTestnet = defineChain({
|
|
|
1902
2086
|
},
|
|
1903
2087
|
forwarderSupported: {
|
|
1904
2088
|
source: true,
|
|
1905
|
-
destination:
|
|
2089
|
+
destination: true,
|
|
1906
2090
|
},
|
|
1907
2091
|
},
|
|
1908
2092
|
kitContracts: {
|
|
@@ -2680,7 +2864,7 @@ const XDC = defineChain({
|
|
|
2680
2864
|
},
|
|
2681
2865
|
forwarderSupported: {
|
|
2682
2866
|
source: true,
|
|
2683
|
-
destination:
|
|
2867
|
+
destination: true,
|
|
2684
2868
|
},
|
|
2685
2869
|
},
|
|
2686
2870
|
kitContracts: {
|
|
@@ -2724,7 +2908,7 @@ const XDCApothem = defineChain({
|
|
|
2724
2908
|
},
|
|
2725
2909
|
forwarderSupported: {
|
|
2726
2910
|
source: true,
|
|
2727
|
-
destination:
|
|
2911
|
+
destination: true,
|
|
2728
2912
|
},
|
|
2729
2913
|
},
|
|
2730
2914
|
kitContracts: {
|
package/chains.d.ts
CHANGED
|
@@ -44,6 +44,8 @@ declare enum Blockchain {
|
|
|
44
44
|
Celo_Alfajores_Testnet = "Celo_Alfajores_Testnet",
|
|
45
45
|
Codex = "Codex",
|
|
46
46
|
Codex_Testnet = "Codex_Testnet",
|
|
47
|
+
Edge = "Edge",
|
|
48
|
+
Edge_Testnet = "Edge_Testnet",
|
|
47
49
|
Ethereum = "Ethereum",
|
|
48
50
|
Ethereum_Sepolia = "Ethereum_Sepolia",
|
|
49
51
|
Hedera = "Hedera",
|
|
@@ -56,6 +58,8 @@ declare enum Blockchain {
|
|
|
56
58
|
Linea_Sepolia = "Linea_Sepolia",
|
|
57
59
|
Monad = "Monad",
|
|
58
60
|
Monad_Testnet = "Monad_Testnet",
|
|
61
|
+
Morph = "Morph",
|
|
62
|
+
Morph_Testnet = "Morph_Testnet",
|
|
59
63
|
NEAR = "NEAR",
|
|
60
64
|
NEAR_Testnet = "NEAR_Testnet",
|
|
61
65
|
Noble = "Noble",
|
|
@@ -467,7 +471,7 @@ declare const Codex: {
|
|
|
467
471
|
};
|
|
468
472
|
readonly forwarderSupported: {
|
|
469
473
|
readonly source: true;
|
|
470
|
-
readonly destination:
|
|
474
|
+
readonly destination: true;
|
|
471
475
|
};
|
|
472
476
|
};
|
|
473
477
|
readonly kitContracts: {
|
|
@@ -510,7 +514,7 @@ declare const CodexTestnet: {
|
|
|
510
514
|
};
|
|
511
515
|
readonly forwarderSupported: {
|
|
512
516
|
readonly source: true;
|
|
513
|
-
readonly destination:
|
|
517
|
+
readonly destination: true;
|
|
514
518
|
};
|
|
515
519
|
};
|
|
516
520
|
readonly kitContracts: {
|
|
@@ -636,7 +640,7 @@ declare const HyperEVM: {
|
|
|
636
640
|
};
|
|
637
641
|
readonly chainId: 999;
|
|
638
642
|
readonly isTestnet: false;
|
|
639
|
-
readonly explorerUrl: "https://
|
|
643
|
+
readonly explorerUrl: "https://app.hyperliquid.xyz/explorer/tx/{hash}";
|
|
640
644
|
readonly rpcEndpoints: readonly ["https://rpc.hyperliquid.xyz/evm"];
|
|
641
645
|
readonly eurcAddress: null;
|
|
642
646
|
readonly usdcAddress: "0xb88339CB7199b77E23DB6E890353E22632Ba630f";
|
|
@@ -681,7 +685,7 @@ declare const HyperEVMTestnet: {
|
|
|
681
685
|
};
|
|
682
686
|
readonly chainId: 998;
|
|
683
687
|
readonly isTestnet: true;
|
|
684
|
-
readonly explorerUrl: "https://
|
|
688
|
+
readonly explorerUrl: "https://app.hyperliquid-testnet.xyz/explorer/tx/{hash}";
|
|
685
689
|
readonly rpcEndpoints: readonly ["https://rpc.hyperliquid-testnet.xyz/evm"];
|
|
686
690
|
readonly eurcAddress: null;
|
|
687
691
|
readonly usdcAddress: "0x2B3370eE501B4a559b57D449569354196457D8Ab";
|
|
@@ -1020,7 +1024,7 @@ declare const Plume: {
|
|
|
1020
1024
|
};
|
|
1021
1025
|
readonly forwarderSupported: {
|
|
1022
1026
|
readonly source: true;
|
|
1023
|
-
readonly destination:
|
|
1027
|
+
readonly destination: true;
|
|
1024
1028
|
};
|
|
1025
1029
|
};
|
|
1026
1030
|
readonly kitContracts: {
|
|
@@ -1065,7 +1069,7 @@ declare const PlumeTestnet: {
|
|
|
1065
1069
|
};
|
|
1066
1070
|
readonly forwarderSupported: {
|
|
1067
1071
|
readonly source: true;
|
|
1068
|
-
readonly destination:
|
|
1072
|
+
readonly destination: true;
|
|
1069
1073
|
};
|
|
1070
1074
|
};
|
|
1071
1075
|
readonly kitContracts: {
|
|
@@ -1668,7 +1672,7 @@ declare const XDC: {
|
|
|
1668
1672
|
};
|
|
1669
1673
|
readonly forwarderSupported: {
|
|
1670
1674
|
readonly source: true;
|
|
1671
|
-
readonly destination:
|
|
1675
|
+
readonly destination: true;
|
|
1672
1676
|
};
|
|
1673
1677
|
};
|
|
1674
1678
|
readonly kitContracts: {
|
|
@@ -1712,7 +1716,7 @@ declare const XDCApothem: {
|
|
|
1712
1716
|
};
|
|
1713
1717
|
readonly forwarderSupported: {
|
|
1714
1718
|
readonly source: true;
|
|
1715
|
-
readonly destination:
|
|
1719
|
+
readonly destination: true;
|
|
1716
1720
|
};
|
|
1717
1721
|
};
|
|
1718
1722
|
readonly kitContracts: {
|