@circle-fin/provider-cctp-v2 1.4.1 → 1.5.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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # @circle-fin/provider-cctp-v2
2
2
 
3
+ ## 1.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 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.
8
+
3
9
  ## 1.4.1
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  **Circle's Cross-Chain Transfer Protocol v2 provider for Bridge Kit**
11
11
 
12
- _Native USDC bridging across 35 chains using Circle's battle-tested protocols._
12
+ _Native USDC bridging across 41 chains using Circle's battle-tested protocols._
13
13
 
14
14
  </div>
15
15
 
@@ -39,14 +39,14 @@ _Native USDC bridging across 35 chains using Circle's battle-tested protocols._
39
39
 
40
40
  ## Overview
41
41
 
42
- The CCTPv2 Bridging Provider is a strongly-typed implementation of Circle's Cross-Chain Transfer Protocol (CCTP) version 2 that enables **native USDC bridging** between 34+ supported blockchain networks.
42
+ The CCTPv2 Bridging Provider is a strongly-typed implementation of Circle's Cross-Chain Transfer Protocol (CCTP) version 2 that enables **native USDC bridging** between 41+ supported blockchain networks.
43
43
 
44
44
  While primarily designed to power the [Bridge Kit](https://www.npmjs.com/package/@circle-fin/bridge-kit), this provider can also be used **directly in applications** that need fine-grained control over the CCTP transfer process or want to integrate CCTP without the full App Kits framework.
45
45
 
46
46
  ### Why CCTPv2 Provider?
47
47
 
48
48
  - **🔒 Circle's official protocol**: Uses Circle's native CCTP infrastructure for maximum security
49
- - **⚡ 34 chain support**: Enables bridging across all CCTPv2-supported networks
49
+ - **⚡ 41 chain support**: Enables bridging across all CCTPv2-supported networks
50
50
  - **🎯 Native USDC**: Bridges actual USDC tokens, not wrapped or synthetic versions
51
51
  - **🔧 Type-safe operations**: Built with TypeScript strict mode and comprehensive validation
52
52
  - **🛠️ Direct integration**: Use standalone or with custom orchestration logic
@@ -130,7 +130,7 @@ const result = await provider.bridge({
130
130
  - ✅ **Native USDC bridging** - Move real USDC between supported networks
131
131
  - ✅ **CCTP v2 integration** - Direct integration with Circle's CCTP v2 protocol
132
132
  - ✅ **Comprehensive validation** - Route validation and parameter checking
133
- - ✅ **Multi-chain support** - Works across all 34 CCTPv2-supported chains
133
+ - ✅ **Multi-chain support** - Works across all 41 CCTPv2-supported chains
134
134
  - ✅ **Type safety** - Full TypeScript support with detailed error handling
135
135
  - ✅ **Bridge speeds** - Support for both FAST and SLOW bridge configurations
136
136
  - ✅ **Forwarder integration** - Circle's Orbit relayer handles attestation and mint automatically
@@ -138,15 +138,15 @@ const result = await provider.bridge({
138
138
 
139
139
  ## Supported Chains & Routes
140
140
 
141
- The provider supports **578 total bridge routes** across these chains:
141
+ The provider supports **800 total bridge routes** across these chains:
142
142
 
143
143
  ### Mainnet Chains
144
144
 
145
- **Arbitrum**, **Avalanche**, **Base**, **Codex**, **Ethereum**, **HyperEVM**, **Ink**, **Linea**, **OP Mainnet**, **Plume**, **Polygon PoS**, **Sei**, **Solana**, **Sonic**, **Unichain**, **World Chain**, **XDC**
145
+ **Arbitrum**, **Avalanche**, **Base**, **Codex**, **Edge**, **Ethereum**, **HyperEVM**, **Ink**, **Linea**, **Monad**, **Morph**, **OP Mainnet**, **Plume**, **Polygon PoS**, **Sei**, **Solana**, **Sonic**, **Unichain**, **World Chain**, **XDC**
146
146
 
147
147
  ### Testnet Chains
148
148
 
149
- **Arc Testnet**, **Arbitrum Sepolia**, **Avalanche Fuji**, **Base Sepolia**, **Codex Testnet**, **Ethereum Sepolia**, **HyperEVM Testnet**, **Ink Testnet**, **Linea Sepolia**, **OP Sepolia**, **Plume Testnet**, **Polygon PoS Amoy**, **Sei Testnet**, **Solana Devnet**, **Sonic Testnet**, **Unichain Sepolia**, **World Chain Sepolia**, **XDC Apothem**
149
+ **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**
150
150
 
151
151
  ## Error Handling
152
152
 
package/index.cjs CHANGED
@@ -73,6 +73,8 @@ var Blockchain;
73
73
  Blockchain["Celo_Alfajores_Testnet"] = "Celo_Alfajores_Testnet";
74
74
  Blockchain["Codex"] = "Codex";
75
75
  Blockchain["Codex_Testnet"] = "Codex_Testnet";
76
+ Blockchain["Edge"] = "Edge";
77
+ Blockchain["Edge_Testnet"] = "Edge_Testnet";
76
78
  Blockchain["Ethereum"] = "Ethereum";
77
79
  Blockchain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
78
80
  Blockchain["Hedera"] = "Hedera";
@@ -85,6 +87,8 @@ var Blockchain;
85
87
  Blockchain["Linea_Sepolia"] = "Linea_Sepolia";
86
88
  Blockchain["Monad"] = "Monad";
87
89
  Blockchain["Monad_Testnet"] = "Monad_Testnet";
90
+ Blockchain["Morph"] = "Morph";
91
+ Blockchain["Morph_Testnet"] = "Morph_Testnet";
88
92
  Blockchain["NEAR"] = "NEAR";
89
93
  Blockchain["NEAR_Testnet"] = "NEAR_Testnet";
90
94
  Blockchain["Noble"] = "Noble";
@@ -288,11 +292,13 @@ var BridgeChain;
288
292
  BridgeChain["Avalanche"] = "Avalanche";
289
293
  BridgeChain["Base"] = "Base";
290
294
  BridgeChain["Codex"] = "Codex";
295
+ BridgeChain["Edge"] = "Edge";
291
296
  BridgeChain["Ethereum"] = "Ethereum";
292
297
  BridgeChain["HyperEVM"] = "HyperEVM";
293
298
  BridgeChain["Ink"] = "Ink";
294
299
  BridgeChain["Linea"] = "Linea";
295
300
  BridgeChain["Monad"] = "Monad";
301
+ BridgeChain["Morph"] = "Morph";
296
302
  BridgeChain["Optimism"] = "Optimism";
297
303
  BridgeChain["Plume"] = "Plume";
298
304
  BridgeChain["Polygon"] = "Polygon";
@@ -308,11 +314,13 @@ var BridgeChain;
308
314
  BridgeChain["Avalanche_Fuji"] = "Avalanche_Fuji";
309
315
  BridgeChain["Base_Sepolia"] = "Base_Sepolia";
310
316
  BridgeChain["Codex_Testnet"] = "Codex_Testnet";
317
+ BridgeChain["Edge_Testnet"] = "Edge_Testnet";
311
318
  BridgeChain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
312
319
  BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
313
320
  BridgeChain["Ink_Testnet"] = "Ink_Testnet";
314
321
  BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
315
322
  BridgeChain["Monad_Testnet"] = "Monad_Testnet";
323
+ BridgeChain["Morph_Testnet"] = "Morph_Testnet";
316
324
  BridgeChain["Optimism_Sepolia"] = "Optimism_Sepolia";
317
325
  BridgeChain["Plume_Testnet"] = "Plume_Testnet";
318
326
  BridgeChain["Polygon_Amoy_Testnet"] = "Polygon_Amoy_Testnet";
@@ -1109,6 +1117,94 @@ const CodexTestnet = defineChain({
1109
1117
  },
1110
1118
  });
1111
1119
 
1120
+ /**
1121
+ * Edge Mainnet chain definition
1122
+ * @remarks
1123
+ * This represents the official production network for the Edge blockchain.
1124
+ * Edge is an EVM-compatible blockchain.
1125
+ */
1126
+ const Edge = defineChain({
1127
+ type: 'evm',
1128
+ chain: Blockchain.Edge,
1129
+ name: 'Edge',
1130
+ title: 'Edge Mainnet',
1131
+ nativeCurrency: {
1132
+ name: 'Ether',
1133
+ symbol: 'ETH',
1134
+ decimals: 18,
1135
+ },
1136
+ chainId: 3343,
1137
+ isTestnet: false,
1138
+ explorerUrl: 'https://pro.edgex.exchange/en-US/explorer/tx/{hash}',
1139
+ rpcEndpoints: ['https://edge-mainnet.g.alchemy.com/public'],
1140
+ eurcAddress: null,
1141
+ usdcAddress: '0x98d2919b9A214E6Fa5384AC81E6864bA686Ad74c',
1142
+ usdtAddress: null,
1143
+ cctp: {
1144
+ domain: 28,
1145
+ contracts: {
1146
+ v2: {
1147
+ type: 'split',
1148
+ tokenMessenger: '0x98706A006bc632Df31CAdFCBD43F38887ce2ca5c',
1149
+ messageTransmitter: '0x5b61381Fc9e58E70EfC13a4A97516997019198ee',
1150
+ confirmations: 65,
1151
+ fastConfirmations: 1,
1152
+ },
1153
+ },
1154
+ forwarderSupported: {
1155
+ source: true,
1156
+ destination: true,
1157
+ },
1158
+ },
1159
+ kitContracts: {
1160
+ bridge: '0x6D1AaE1c34Aeb582022916a67f2A655C6f4eDFF2', //Unique bridge address as CCTP address for Edge is also unique
1161
+ },
1162
+ });
1163
+
1164
+ /**
1165
+ * Edge Testnet chain definition
1166
+ * @remarks
1167
+ * This represents the official test network for the Edge blockchain.
1168
+ * Edge is an EVM-compatible blockchain.
1169
+ */
1170
+ const EdgeTestnet = defineChain({
1171
+ type: 'evm',
1172
+ chain: Blockchain.Edge_Testnet,
1173
+ name: 'Edge Testnet',
1174
+ title: 'Edge Testnet',
1175
+ nativeCurrency: {
1176
+ name: 'Ether',
1177
+ symbol: 'ETH',
1178
+ decimals: 18,
1179
+ },
1180
+ chainId: 33431,
1181
+ isTestnet: true,
1182
+ explorerUrl: 'https://edge-testnet.explorer.alchemy.com/tx/{hash}',
1183
+ rpcEndpoints: ['https://edge-testnet.g.alchemy.com/public'],
1184
+ eurcAddress: null,
1185
+ usdcAddress: '0x2d9F7CAD728051AA35Ecdc472a14cf8cDF5CFD6B',
1186
+ usdtAddress: null,
1187
+ cctp: {
1188
+ domain: 28,
1189
+ contracts: {
1190
+ v2: {
1191
+ type: 'split',
1192
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1193
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1194
+ confirmations: 65,
1195
+ fastConfirmations: 1,
1196
+ },
1197
+ },
1198
+ forwarderSupported: {
1199
+ source: true,
1200
+ destination: true,
1201
+ },
1202
+ },
1203
+ kitContracts: {
1204
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1205
+ },
1206
+ });
1207
+
1112
1208
  /**
1113
1209
  * Ethereum Mainnet chain definition
1114
1210
  * @remarks
@@ -1620,6 +1716,94 @@ const MonadTestnet = defineChain({
1620
1716
  },
1621
1717
  });
1622
1718
 
1719
+ /**
1720
+ * Morph Mainnet chain definition
1721
+ * @remarks
1722
+ * This represents the official production network for the Morph blockchain.
1723
+ * Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
1724
+ */
1725
+ const Morph = defineChain({
1726
+ type: 'evm',
1727
+ chain: Blockchain.Morph,
1728
+ name: 'Morph',
1729
+ title: 'Morph Mainnet',
1730
+ nativeCurrency: {
1731
+ name: 'Ether',
1732
+ symbol: 'ETH',
1733
+ decimals: 18,
1734
+ },
1735
+ chainId: 2818,
1736
+ isTestnet: false,
1737
+ explorerUrl: 'https://explorer.morph.network/tx/{hash}',
1738
+ rpcEndpoints: ['https://rpc.morphl2.io'],
1739
+ eurcAddress: null,
1740
+ usdcAddress: '0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B',
1741
+ usdtAddress: null,
1742
+ cctp: {
1743
+ domain: 30,
1744
+ contracts: {
1745
+ v2: {
1746
+ type: 'split',
1747
+ tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
1748
+ messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
1749
+ confirmations: 64,
1750
+ fastConfirmations: 1,
1751
+ },
1752
+ },
1753
+ forwarderSupported: {
1754
+ source: false,
1755
+ destination: false,
1756
+ },
1757
+ },
1758
+ kitContracts: {
1759
+ bridge: BRIDGE_CONTRACT_EVM_MAINNET,
1760
+ },
1761
+ });
1762
+
1763
+ /**
1764
+ * Morph Hoodi Testnet chain definition
1765
+ * @remarks
1766
+ * This represents the official test network for the Morph blockchain.
1767
+ * Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
1768
+ */
1769
+ const MorphTestnet = defineChain({
1770
+ type: 'evm',
1771
+ chain: Blockchain.Morph_Testnet,
1772
+ name: 'Morph Hoodi',
1773
+ title: 'Morph Hoodi Testnet',
1774
+ nativeCurrency: {
1775
+ name: 'Ether',
1776
+ symbol: 'ETH',
1777
+ decimals: 18,
1778
+ },
1779
+ chainId: 2910,
1780
+ isTestnet: true,
1781
+ explorerUrl: 'https://explorer-hoodi.morphl2.io/tx/{hash}',
1782
+ rpcEndpoints: ['https://rpc-hoodi.morphl2.io'],
1783
+ eurcAddress: null,
1784
+ usdcAddress: '0x7433b41C6c5e1d58D4Da99483609520255ab661B',
1785
+ usdtAddress: null,
1786
+ cctp: {
1787
+ domain: 30,
1788
+ contracts: {
1789
+ v2: {
1790
+ type: 'split',
1791
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1792
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1793
+ confirmations: 64,
1794
+ fastConfirmations: 1,
1795
+ },
1796
+ },
1797
+ forwarderSupported: {
1798
+ source: false,
1799
+ destination: false,
1800
+ },
1801
+ },
1802
+ kitContracts: {
1803
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1804
+ },
1805
+ });
1806
+
1623
1807
  /**
1624
1808
  * NEAR Protocol Mainnet chain definition
1625
1809
  * @remarks
@@ -2820,6 +3004,8 @@ var Chains = {
2820
3004
  CeloAlfajoresTestnet: CeloAlfajoresTestnet,
2821
3005
  Codex: Codex,
2822
3006
  CodexTestnet: CodexTestnet,
3007
+ Edge: Edge,
3008
+ EdgeTestnet: EdgeTestnet,
2823
3009
  Ethereum: Ethereum,
2824
3010
  EthereumSepolia: EthereumSepolia,
2825
3011
  Hedera: Hedera,
@@ -2832,6 +3018,8 @@ var Chains = {
2832
3018
  LineaSepolia: LineaSepolia,
2833
3019
  Monad: Monad,
2834
3020
  MonadTestnet: MonadTestnet,
3021
+ Morph: Morph,
3022
+ MorphTestnet: MorphTestnet,
2835
3023
  NEAR: NEAR,
2836
3024
  NEARTestnet: NEARTestnet,
2837
3025
  Noble: Noble,
@@ -5423,12 +5611,14 @@ const USDC = {
5423
5611
  [Blockchain.Base]: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
5424
5612
  [Blockchain.Celo]: '0xcebA9300f2b948710d2653dD7B07f33A8B32118C',
5425
5613
  [Blockchain.Codex]: '0xd996633a415985DBd7D6D12f4A4343E31f5037cf',
5614
+ [Blockchain.Edge]: '0x98d2919b9A214E6Fa5384AC81E6864bA686Ad74c',
5426
5615
  [Blockchain.Ethereum]: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
5427
5616
  [Blockchain.Hedera]: '0.0.456858',
5428
5617
  [Blockchain.HyperEVM]: '0xb88339CB7199b77E23DB6E890353E22632Ba630f',
5429
5618
  [Blockchain.Ink]: '0x2D270e6886d130D724215A266106e6832161EAEd',
5430
5619
  [Blockchain.Linea]: '0x176211869ca2b568f2a7d4ee941e073a821ee1ff',
5431
5620
  [Blockchain.Monad]: '0x754704Bc059F8C67012fEd69BC8A327a5aafb603',
5621
+ [Blockchain.Morph]: '0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B',
5432
5622
  [Blockchain.NEAR]: '17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1',
5433
5623
  [Blockchain.Noble]: 'uusdc',
5434
5624
  [Blockchain.Optimism]: '0x0b2c639c533813f4aa9d7837caf62653d097ff85',
@@ -5451,12 +5641,14 @@ const USDC = {
5451
5641
  [Blockchain.Avalanche_Fuji]: '0x5425890298aed601595a70AB815c96711a31Bc65',
5452
5642
  [Blockchain.Base_Sepolia]: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
5453
5643
  [Blockchain.Codex_Testnet]: '0x6d7f141b6819C2c9CC2f818e6ad549E7Ca090F8f',
5644
+ [Blockchain.Edge_Testnet]: '0x2d9F7CAD728051AA35Ecdc472a14cf8cDF5CFD6B',
5454
5645
  [Blockchain.Ethereum_Sepolia]: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
5455
5646
  [Blockchain.Hedera_Testnet]: '0.0.429274',
5456
5647
  [Blockchain.HyperEVM_Testnet]: '0x2B3370eE501B4a559b57D449569354196457D8Ab',
5457
5648
  [Blockchain.Ink_Testnet]: '0xFabab97dCE620294D2B0b0e46C68964e326300Ac',
5458
5649
  [Blockchain.Linea_Sepolia]: '0xfece4462d57bd51a6a552365a011b95f0e16d9b7',
5459
5650
  [Blockchain.Monad_Testnet]: '0x534b2f3A21130d7a60830c2Df862319e593943A3',
5651
+ [Blockchain.Morph_Testnet]: '0x7433b41C6c5e1d58D4Da99483609520255ab661B',
5460
5652
  [Blockchain.NEAR_Testnet]: '3e2210e1184b45b64c8a434c0a7e7b23cc04ea7eb7a6c3c32520d03d4afcb8af',
5461
5653
  [Blockchain.Noble_Testnet]: 'uusdc',
5462
5654
  [Blockchain.Optimism_Sepolia]: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',
@@ -9317,7 +9509,7 @@ zod.z
9317
9509
  })
9318
9510
  .passthrough();
9319
9511
 
9320
- var version = "1.4.1";
9512
+ var version = "1.5.0";
9321
9513
  var pkg = {
9322
9514
  version: version};
9323
9515
 
package/index.d.ts CHANGED
@@ -499,6 +499,8 @@ declare enum Blockchain {
499
499
  Celo_Alfajores_Testnet = "Celo_Alfajores_Testnet",
500
500
  Codex = "Codex",
501
501
  Codex_Testnet = "Codex_Testnet",
502
+ Edge = "Edge",
503
+ Edge_Testnet = "Edge_Testnet",
502
504
  Ethereum = "Ethereum",
503
505
  Ethereum_Sepolia = "Ethereum_Sepolia",
504
506
  Hedera = "Hedera",
@@ -511,6 +513,8 @@ declare enum Blockchain {
511
513
  Linea_Sepolia = "Linea_Sepolia",
512
514
  Monad = "Monad",
513
515
  Monad_Testnet = "Monad_Testnet",
516
+ Morph = "Morph",
517
+ Morph_Testnet = "Morph_Testnet",
514
518
  NEAR = "NEAR",
515
519
  NEAR_Testnet = "NEAR_Testnet",
516
520
  Noble = "Noble",
package/index.mjs CHANGED
@@ -66,6 +66,8 @@ var Blockchain;
66
66
  Blockchain["Celo_Alfajores_Testnet"] = "Celo_Alfajores_Testnet";
67
67
  Blockchain["Codex"] = "Codex";
68
68
  Blockchain["Codex_Testnet"] = "Codex_Testnet";
69
+ Blockchain["Edge"] = "Edge";
70
+ Blockchain["Edge_Testnet"] = "Edge_Testnet";
69
71
  Blockchain["Ethereum"] = "Ethereum";
70
72
  Blockchain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
71
73
  Blockchain["Hedera"] = "Hedera";
@@ -78,6 +80,8 @@ var Blockchain;
78
80
  Blockchain["Linea_Sepolia"] = "Linea_Sepolia";
79
81
  Blockchain["Monad"] = "Monad";
80
82
  Blockchain["Monad_Testnet"] = "Monad_Testnet";
83
+ Blockchain["Morph"] = "Morph";
84
+ Blockchain["Morph_Testnet"] = "Morph_Testnet";
81
85
  Blockchain["NEAR"] = "NEAR";
82
86
  Blockchain["NEAR_Testnet"] = "NEAR_Testnet";
83
87
  Blockchain["Noble"] = "Noble";
@@ -281,11 +285,13 @@ var BridgeChain;
281
285
  BridgeChain["Avalanche"] = "Avalanche";
282
286
  BridgeChain["Base"] = "Base";
283
287
  BridgeChain["Codex"] = "Codex";
288
+ BridgeChain["Edge"] = "Edge";
284
289
  BridgeChain["Ethereum"] = "Ethereum";
285
290
  BridgeChain["HyperEVM"] = "HyperEVM";
286
291
  BridgeChain["Ink"] = "Ink";
287
292
  BridgeChain["Linea"] = "Linea";
288
293
  BridgeChain["Monad"] = "Monad";
294
+ BridgeChain["Morph"] = "Morph";
289
295
  BridgeChain["Optimism"] = "Optimism";
290
296
  BridgeChain["Plume"] = "Plume";
291
297
  BridgeChain["Polygon"] = "Polygon";
@@ -301,11 +307,13 @@ var BridgeChain;
301
307
  BridgeChain["Avalanche_Fuji"] = "Avalanche_Fuji";
302
308
  BridgeChain["Base_Sepolia"] = "Base_Sepolia";
303
309
  BridgeChain["Codex_Testnet"] = "Codex_Testnet";
310
+ BridgeChain["Edge_Testnet"] = "Edge_Testnet";
304
311
  BridgeChain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
305
312
  BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
306
313
  BridgeChain["Ink_Testnet"] = "Ink_Testnet";
307
314
  BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
308
315
  BridgeChain["Monad_Testnet"] = "Monad_Testnet";
316
+ BridgeChain["Morph_Testnet"] = "Morph_Testnet";
309
317
  BridgeChain["Optimism_Sepolia"] = "Optimism_Sepolia";
310
318
  BridgeChain["Plume_Testnet"] = "Plume_Testnet";
311
319
  BridgeChain["Polygon_Amoy_Testnet"] = "Polygon_Amoy_Testnet";
@@ -1102,6 +1110,94 @@ const CodexTestnet = defineChain({
1102
1110
  },
1103
1111
  });
1104
1112
 
1113
+ /**
1114
+ * Edge Mainnet chain definition
1115
+ * @remarks
1116
+ * This represents the official production network for the Edge blockchain.
1117
+ * Edge is an EVM-compatible blockchain.
1118
+ */
1119
+ const Edge = defineChain({
1120
+ type: 'evm',
1121
+ chain: Blockchain.Edge,
1122
+ name: 'Edge',
1123
+ title: 'Edge Mainnet',
1124
+ nativeCurrency: {
1125
+ name: 'Ether',
1126
+ symbol: 'ETH',
1127
+ decimals: 18,
1128
+ },
1129
+ chainId: 3343,
1130
+ isTestnet: false,
1131
+ explorerUrl: 'https://pro.edgex.exchange/en-US/explorer/tx/{hash}',
1132
+ rpcEndpoints: ['https://edge-mainnet.g.alchemy.com/public'],
1133
+ eurcAddress: null,
1134
+ usdcAddress: '0x98d2919b9A214E6Fa5384AC81E6864bA686Ad74c',
1135
+ usdtAddress: null,
1136
+ cctp: {
1137
+ domain: 28,
1138
+ contracts: {
1139
+ v2: {
1140
+ type: 'split',
1141
+ tokenMessenger: '0x98706A006bc632Df31CAdFCBD43F38887ce2ca5c',
1142
+ messageTransmitter: '0x5b61381Fc9e58E70EfC13a4A97516997019198ee',
1143
+ confirmations: 65,
1144
+ fastConfirmations: 1,
1145
+ },
1146
+ },
1147
+ forwarderSupported: {
1148
+ source: true,
1149
+ destination: true,
1150
+ },
1151
+ },
1152
+ kitContracts: {
1153
+ bridge: '0x6D1AaE1c34Aeb582022916a67f2A655C6f4eDFF2', //Unique bridge address as CCTP address for Edge is also unique
1154
+ },
1155
+ });
1156
+
1157
+ /**
1158
+ * Edge Testnet chain definition
1159
+ * @remarks
1160
+ * This represents the official test network for the Edge blockchain.
1161
+ * Edge is an EVM-compatible blockchain.
1162
+ */
1163
+ const EdgeTestnet = defineChain({
1164
+ type: 'evm',
1165
+ chain: Blockchain.Edge_Testnet,
1166
+ name: 'Edge Testnet',
1167
+ title: 'Edge Testnet',
1168
+ nativeCurrency: {
1169
+ name: 'Ether',
1170
+ symbol: 'ETH',
1171
+ decimals: 18,
1172
+ },
1173
+ chainId: 33431,
1174
+ isTestnet: true,
1175
+ explorerUrl: 'https://edge-testnet.explorer.alchemy.com/tx/{hash}',
1176
+ rpcEndpoints: ['https://edge-testnet.g.alchemy.com/public'],
1177
+ eurcAddress: null,
1178
+ usdcAddress: '0x2d9F7CAD728051AA35Ecdc472a14cf8cDF5CFD6B',
1179
+ usdtAddress: null,
1180
+ cctp: {
1181
+ domain: 28,
1182
+ contracts: {
1183
+ v2: {
1184
+ type: 'split',
1185
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1186
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1187
+ confirmations: 65,
1188
+ fastConfirmations: 1,
1189
+ },
1190
+ },
1191
+ forwarderSupported: {
1192
+ source: true,
1193
+ destination: true,
1194
+ },
1195
+ },
1196
+ kitContracts: {
1197
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1198
+ },
1199
+ });
1200
+
1105
1201
  /**
1106
1202
  * Ethereum Mainnet chain definition
1107
1203
  * @remarks
@@ -1613,6 +1709,94 @@ const MonadTestnet = defineChain({
1613
1709
  },
1614
1710
  });
1615
1711
 
1712
+ /**
1713
+ * Morph Mainnet chain definition
1714
+ * @remarks
1715
+ * This represents the official production network for the Morph blockchain.
1716
+ * Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
1717
+ */
1718
+ const Morph = defineChain({
1719
+ type: 'evm',
1720
+ chain: Blockchain.Morph,
1721
+ name: 'Morph',
1722
+ title: 'Morph Mainnet',
1723
+ nativeCurrency: {
1724
+ name: 'Ether',
1725
+ symbol: 'ETH',
1726
+ decimals: 18,
1727
+ },
1728
+ chainId: 2818,
1729
+ isTestnet: false,
1730
+ explorerUrl: 'https://explorer.morph.network/tx/{hash}',
1731
+ rpcEndpoints: ['https://rpc.morphl2.io'],
1732
+ eurcAddress: null,
1733
+ usdcAddress: '0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B',
1734
+ usdtAddress: null,
1735
+ cctp: {
1736
+ domain: 30,
1737
+ contracts: {
1738
+ v2: {
1739
+ type: 'split',
1740
+ tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
1741
+ messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
1742
+ confirmations: 64,
1743
+ fastConfirmations: 1,
1744
+ },
1745
+ },
1746
+ forwarderSupported: {
1747
+ source: false,
1748
+ destination: false,
1749
+ },
1750
+ },
1751
+ kitContracts: {
1752
+ bridge: BRIDGE_CONTRACT_EVM_MAINNET,
1753
+ },
1754
+ });
1755
+
1756
+ /**
1757
+ * Morph Hoodi Testnet chain definition
1758
+ * @remarks
1759
+ * This represents the official test network for the Morph blockchain.
1760
+ * Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
1761
+ */
1762
+ const MorphTestnet = defineChain({
1763
+ type: 'evm',
1764
+ chain: Blockchain.Morph_Testnet,
1765
+ name: 'Morph Hoodi',
1766
+ title: 'Morph Hoodi Testnet',
1767
+ nativeCurrency: {
1768
+ name: 'Ether',
1769
+ symbol: 'ETH',
1770
+ decimals: 18,
1771
+ },
1772
+ chainId: 2910,
1773
+ isTestnet: true,
1774
+ explorerUrl: 'https://explorer-hoodi.morphl2.io/tx/{hash}',
1775
+ rpcEndpoints: ['https://rpc-hoodi.morphl2.io'],
1776
+ eurcAddress: null,
1777
+ usdcAddress: '0x7433b41C6c5e1d58D4Da99483609520255ab661B',
1778
+ usdtAddress: null,
1779
+ cctp: {
1780
+ domain: 30,
1781
+ contracts: {
1782
+ v2: {
1783
+ type: 'split',
1784
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1785
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1786
+ confirmations: 64,
1787
+ fastConfirmations: 1,
1788
+ },
1789
+ },
1790
+ forwarderSupported: {
1791
+ source: false,
1792
+ destination: false,
1793
+ },
1794
+ },
1795
+ kitContracts: {
1796
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1797
+ },
1798
+ });
1799
+
1616
1800
  /**
1617
1801
  * NEAR Protocol Mainnet chain definition
1618
1802
  * @remarks
@@ -2813,6 +2997,8 @@ var Chains = /*#__PURE__*/Object.freeze({
2813
2997
  CeloAlfajoresTestnet: CeloAlfajoresTestnet,
2814
2998
  Codex: Codex,
2815
2999
  CodexTestnet: CodexTestnet,
3000
+ Edge: Edge,
3001
+ EdgeTestnet: EdgeTestnet,
2816
3002
  Ethereum: Ethereum,
2817
3003
  EthereumSepolia: EthereumSepolia,
2818
3004
  Hedera: Hedera,
@@ -2825,6 +3011,8 @@ var Chains = /*#__PURE__*/Object.freeze({
2825
3011
  LineaSepolia: LineaSepolia,
2826
3012
  Monad: Monad,
2827
3013
  MonadTestnet: MonadTestnet,
3014
+ Morph: Morph,
3015
+ MorphTestnet: MorphTestnet,
2828
3016
  NEAR: NEAR,
2829
3017
  NEARTestnet: NEARTestnet,
2830
3018
  Noble: Noble,
@@ -5416,12 +5604,14 @@ const USDC = {
5416
5604
  [Blockchain.Base]: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
5417
5605
  [Blockchain.Celo]: '0xcebA9300f2b948710d2653dD7B07f33A8B32118C',
5418
5606
  [Blockchain.Codex]: '0xd996633a415985DBd7D6D12f4A4343E31f5037cf',
5607
+ [Blockchain.Edge]: '0x98d2919b9A214E6Fa5384AC81E6864bA686Ad74c',
5419
5608
  [Blockchain.Ethereum]: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
5420
5609
  [Blockchain.Hedera]: '0.0.456858',
5421
5610
  [Blockchain.HyperEVM]: '0xb88339CB7199b77E23DB6E890353E22632Ba630f',
5422
5611
  [Blockchain.Ink]: '0x2D270e6886d130D724215A266106e6832161EAEd',
5423
5612
  [Blockchain.Linea]: '0x176211869ca2b568f2a7d4ee941e073a821ee1ff',
5424
5613
  [Blockchain.Monad]: '0x754704Bc059F8C67012fEd69BC8A327a5aafb603',
5614
+ [Blockchain.Morph]: '0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B',
5425
5615
  [Blockchain.NEAR]: '17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1',
5426
5616
  [Blockchain.Noble]: 'uusdc',
5427
5617
  [Blockchain.Optimism]: '0x0b2c639c533813f4aa9d7837caf62653d097ff85',
@@ -5444,12 +5634,14 @@ const USDC = {
5444
5634
  [Blockchain.Avalanche_Fuji]: '0x5425890298aed601595a70AB815c96711a31Bc65',
5445
5635
  [Blockchain.Base_Sepolia]: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
5446
5636
  [Blockchain.Codex_Testnet]: '0x6d7f141b6819C2c9CC2f818e6ad549E7Ca090F8f',
5637
+ [Blockchain.Edge_Testnet]: '0x2d9F7CAD728051AA35Ecdc472a14cf8cDF5CFD6B',
5447
5638
  [Blockchain.Ethereum_Sepolia]: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
5448
5639
  [Blockchain.Hedera_Testnet]: '0.0.429274',
5449
5640
  [Blockchain.HyperEVM_Testnet]: '0x2B3370eE501B4a559b57D449569354196457D8Ab',
5450
5641
  [Blockchain.Ink_Testnet]: '0xFabab97dCE620294D2B0b0e46C68964e326300Ac',
5451
5642
  [Blockchain.Linea_Sepolia]: '0xfece4462d57bd51a6a552365a011b95f0e16d9b7',
5452
5643
  [Blockchain.Monad_Testnet]: '0x534b2f3A21130d7a60830c2Df862319e593943A3',
5644
+ [Blockchain.Morph_Testnet]: '0x7433b41C6c5e1d58D4Da99483609520255ab661B',
5453
5645
  [Blockchain.NEAR_Testnet]: '3e2210e1184b45b64c8a434c0a7e7b23cc04ea7eb7a6c3c32520d03d4afcb8af',
5454
5646
  [Blockchain.Noble_Testnet]: 'uusdc',
5455
5647
  [Blockchain.Optimism_Sepolia]: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',
@@ -9310,7 +9502,7 @@ z
9310
9502
  })
9311
9503
  .passthrough();
9312
9504
 
9313
- var version = "1.4.1";
9505
+ var version = "1.5.0";
9314
9506
  var pkg = {
9315
9507
  version: version};
9316
9508
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@circle-fin/provider-cctp-v2",
3
- "version": "1.4.1",
3
+ "version": "1.5.0",
4
4
  "description": "Circle's official Cross-Chain Transfer Protocol v2 provider for native USDC bridging",
5
5
  "keywords": [
6
6
  "circle",