@circle-fin/provider-cctp-v2 1.7.0 → 1.8.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 +6 -0
- package/README.md +5 -5
- package/index.cjs +109 -11
- package/index.d.ts +2 -0
- package/index.mjs +109 -11
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @circle-fin/provider-cctp-v2
|
|
2
2
|
|
|
3
|
+
## 1.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Add support for bridging USDC to and from Injective (mainnet and testnet) via CCTP v2. Both networks are now available as source and destination options in Bridge Kit.
|
|
8
|
+
|
|
3
9
|
## 1.7.0
|
|
4
10
|
|
|
5
11
|
### Minor 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
|
|
12
|
+
_Native USDC bridging across 45 chains using Circle's battle-tested protocols._
|
|
13
13
|
|
|
14
14
|
</div>
|
|
15
15
|
|
|
@@ -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
|
|
133
|
+
- ✅ **Multi-chain support** - Works across all 45 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 **
|
|
141
|
+
The provider supports **968 total bridge routes** across these chains:
|
|
142
142
|
|
|
143
143
|
### Mainnet Chains
|
|
144
144
|
|
|
145
|
-
**Arbitrum**, **Avalanche**, **Base**, **Codex**, **Edge**, **Ethereum**, **HyperEVM**, **Ink**, **Linea**, **Monad**, **Morph**, **OP Mainnet**, **Pharos**, **Plume**, **Polygon PoS**, **Sei**, **Solana**, **Sonic**, **Unichain**, **World Chain**, **XDC**
|
|
145
|
+
**Arbitrum**, **Avalanche**, **Base**, **Codex**, **Edge**, **Ethereum**, **HyperEVM**, **Injective**, **Ink**, **Linea**, **Monad**, **Morph**, **OP Mainnet**, **Pharos**, **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**, **Edge Testnet**, **Ethereum Sepolia**, **HyperEVM Testnet**, **Ink Testnet**, **Linea Sepolia**, **Monad Testnet**, **Morph Testnet**, **OP Sepolia**, **Pharos Atlantic**, **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**, **Injective Testnet**, **Ink Testnet**, **Linea Sepolia**, **Monad Testnet**, **Morph Testnet**, **OP Sepolia**, **Pharos Atlantic**, **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
|
@@ -81,6 +81,8 @@ var Blockchain;
|
|
|
81
81
|
Blockchain["Hedera_Testnet"] = "Hedera_Testnet";
|
|
82
82
|
Blockchain["HyperEVM"] = "HyperEVM";
|
|
83
83
|
Blockchain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
|
|
84
|
+
Blockchain["Injective"] = "Injective";
|
|
85
|
+
Blockchain["Injective_Testnet"] = "Injective_Testnet";
|
|
84
86
|
Blockchain["Ink"] = "Ink";
|
|
85
87
|
Blockchain["Ink_Testnet"] = "Ink_Testnet";
|
|
86
88
|
Blockchain["Linea"] = "Linea";
|
|
@@ -300,6 +302,7 @@ var BridgeChain;
|
|
|
300
302
|
BridgeChain["Edge"] = "Edge";
|
|
301
303
|
BridgeChain["Ethereum"] = "Ethereum";
|
|
302
304
|
BridgeChain["HyperEVM"] = "HyperEVM";
|
|
305
|
+
BridgeChain["Injective"] = "Injective";
|
|
303
306
|
BridgeChain["Ink"] = "Ink";
|
|
304
307
|
BridgeChain["Linea"] = "Linea";
|
|
305
308
|
BridgeChain["Monad"] = "Monad";
|
|
@@ -323,6 +326,7 @@ var BridgeChain;
|
|
|
323
326
|
BridgeChain["Edge_Testnet"] = "Edge_Testnet";
|
|
324
327
|
BridgeChain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
|
|
325
328
|
BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
|
|
329
|
+
BridgeChain["Injective_Testnet"] = "Injective_Testnet";
|
|
326
330
|
BridgeChain["Ink_Testnet"] = "Ink_Testnet";
|
|
327
331
|
BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
|
|
328
332
|
BridgeChain["Monad_Testnet"] = "Monad_Testnet";
|
|
@@ -1742,6 +1746,98 @@ const HyperEVMTestnet = defineChain({
|
|
|
1742
1746
|
},
|
|
1743
1747
|
});
|
|
1744
1748
|
|
|
1749
|
+
/**
|
|
1750
|
+
* Injective Mainnet chain definition
|
|
1751
|
+
* @remarks
|
|
1752
|
+
* This represents the official production network for the Injective blockchain.
|
|
1753
|
+
* Injective is a high-performance, interoperable Layer-1 blockchain built for
|
|
1754
|
+
* finance, with an EVM execution layer on top of a Cosmos SDK base and
|
|
1755
|
+
* sub-second block finality.
|
|
1756
|
+
*/
|
|
1757
|
+
const Injective = defineChain({
|
|
1758
|
+
type: 'evm',
|
|
1759
|
+
chain: Blockchain.Injective,
|
|
1760
|
+
name: 'Injective',
|
|
1761
|
+
title: 'Injective Mainnet',
|
|
1762
|
+
nativeCurrency: {
|
|
1763
|
+
name: 'Injective',
|
|
1764
|
+
symbol: 'INJ',
|
|
1765
|
+
decimals: 18,
|
|
1766
|
+
},
|
|
1767
|
+
chainId: 1776,
|
|
1768
|
+
isTestnet: false,
|
|
1769
|
+
explorerUrl: 'https://injscan.com/transaction/{hash}',
|
|
1770
|
+
rpcEndpoints: ['https://sentry.evm-rpc.injective.network'],
|
|
1771
|
+
eurcAddress: null,
|
|
1772
|
+
usdcAddress: '0xa00C59fF5a080D2b954d0c75e46E22a0c371235a',
|
|
1773
|
+
usdtAddress: null,
|
|
1774
|
+
cctp: {
|
|
1775
|
+
domain: 29,
|
|
1776
|
+
contracts: {
|
|
1777
|
+
v2: {
|
|
1778
|
+
type: 'split',
|
|
1779
|
+
tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
1780
|
+
messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
1781
|
+
confirmations: 1,
|
|
1782
|
+
fastConfirmations: 1,
|
|
1783
|
+
},
|
|
1784
|
+
},
|
|
1785
|
+
forwarderSupported: {
|
|
1786
|
+
source: false,
|
|
1787
|
+
destination: false,
|
|
1788
|
+
},
|
|
1789
|
+
},
|
|
1790
|
+
kitContracts: {
|
|
1791
|
+
bridge: BRIDGE_CONTRACT_EVM_MAINNET,
|
|
1792
|
+
},
|
|
1793
|
+
});
|
|
1794
|
+
|
|
1795
|
+
/**
|
|
1796
|
+
* Injective Testnet chain definition
|
|
1797
|
+
* @remarks
|
|
1798
|
+
* This represents the official test network for the Injective blockchain.
|
|
1799
|
+
* Injective is a high-performance, interoperable Layer-1 blockchain built for
|
|
1800
|
+
* finance, with an EVM execution layer on top of a Cosmos SDK base and
|
|
1801
|
+
* sub-second block finality.
|
|
1802
|
+
*/
|
|
1803
|
+
const InjectiveTestnet = defineChain({
|
|
1804
|
+
type: 'evm',
|
|
1805
|
+
chain: Blockchain.Injective_Testnet,
|
|
1806
|
+
name: 'Injective Testnet',
|
|
1807
|
+
title: 'Injective Testnet',
|
|
1808
|
+
nativeCurrency: {
|
|
1809
|
+
name: 'Injective',
|
|
1810
|
+
symbol: 'INJ',
|
|
1811
|
+
decimals: 18,
|
|
1812
|
+
},
|
|
1813
|
+
chainId: 1439,
|
|
1814
|
+
isTestnet: true,
|
|
1815
|
+
explorerUrl: 'https://testnet.explorer.injective.network/transaction/{hash}',
|
|
1816
|
+
rpcEndpoints: ['https://k8s.testnet.json-rpc.injective.network'],
|
|
1817
|
+
eurcAddress: null,
|
|
1818
|
+
usdcAddress: '0x0C382e685bbeeFE5d3d9C29e29E341fEE8E84C5d',
|
|
1819
|
+
usdtAddress: null,
|
|
1820
|
+
cctp: {
|
|
1821
|
+
domain: 29,
|
|
1822
|
+
contracts: {
|
|
1823
|
+
v2: {
|
|
1824
|
+
type: 'split',
|
|
1825
|
+
tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
|
|
1826
|
+
messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
|
|
1827
|
+
confirmations: 1,
|
|
1828
|
+
fastConfirmations: 1,
|
|
1829
|
+
},
|
|
1830
|
+
},
|
|
1831
|
+
forwarderSupported: {
|
|
1832
|
+
source: false,
|
|
1833
|
+
destination: false,
|
|
1834
|
+
},
|
|
1835
|
+
},
|
|
1836
|
+
kitContracts: {
|
|
1837
|
+
bridge: BRIDGE_CONTRACT_EVM_TESTNET,
|
|
1838
|
+
},
|
|
1839
|
+
});
|
|
1840
|
+
|
|
1745
1841
|
/**
|
|
1746
1842
|
* Ink Mainnet chain definition
|
|
1747
1843
|
* @remarks
|
|
@@ -3584,6 +3680,8 @@ var Chains = {
|
|
|
3584
3680
|
HederaTestnet: HederaTestnet,
|
|
3585
3681
|
HyperEVM: HyperEVM,
|
|
3586
3682
|
HyperEVMTestnet: HyperEVMTestnet,
|
|
3683
|
+
Injective: Injective,
|
|
3684
|
+
InjectiveTestnet: InjectiveTestnet,
|
|
3587
3685
|
Ink: Ink,
|
|
3588
3686
|
InkTestnet: InkTestnet,
|
|
3589
3687
|
Linea: Linea,
|
|
@@ -7283,6 +7381,7 @@ const USDC = {
|
|
|
7283
7381
|
[Blockchain.Ethereum]: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
7284
7382
|
[Blockchain.Hedera]: '0.0.456858',
|
|
7285
7383
|
[Blockchain.HyperEVM]: '0xb88339CB7199b77E23DB6E890353E22632Ba630f',
|
|
7384
|
+
[Blockchain.Injective]: '0xa00C59fF5a080D2b954d0c75e46E22a0c371235a',
|
|
7286
7385
|
[Blockchain.Ink]: '0x2D270e6886d130D724215A266106e6832161EAEd',
|
|
7287
7386
|
[Blockchain.Linea]: '0x176211869ca2b568f2a7d4ee941e073a821ee1ff',
|
|
7288
7387
|
[Blockchain.Monad]: '0x754704Bc059F8C67012fEd69BC8A327a5aafb603',
|
|
@@ -7315,6 +7414,7 @@ const USDC = {
|
|
|
7315
7414
|
[Blockchain.Ethereum_Sepolia]: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
|
|
7316
7415
|
[Blockchain.Hedera_Testnet]: '0.0.429274',
|
|
7317
7416
|
[Blockchain.HyperEVM_Testnet]: '0x2B3370eE501B4a559b57D449569354196457D8Ab',
|
|
7417
|
+
[Blockchain.Injective_Testnet]: '0x0C382e685bbeeFE5d3d9C29e29E341fEE8E84C5d',
|
|
7318
7418
|
[Blockchain.Ink_Testnet]: '0xFabab97dCE620294D2B0b0e46C68964e326300Ac',
|
|
7319
7419
|
[Blockchain.Linea_Sepolia]: '0xfece4462d57bd51a6a552365a011b95f0e16d9b7',
|
|
7320
7420
|
[Blockchain.Monad_Testnet]: '0x534b2f3A21130d7a60830c2Df862319e593943A3',
|
|
@@ -9279,18 +9379,16 @@ const buildIrisUrl = (sourceDomainId, transactionHash, isTestnet) => {
|
|
|
9279
9379
|
};
|
|
9280
9380
|
/**
|
|
9281
9381
|
* Fetches attestation data from the IRIS API with retry and timeout handling.
|
|
9282
|
-
* Since fetching starts after a confirmed burn transaction, we attempt up to 10 retries.
|
|
9283
|
-
* Implements a conservative delay between requests to respect the API rate
|
|
9284
|
-
* limit of 35 requests per second. To avoid rate limiting when multiple processes are
|
|
9285
|
-
* running concurrently, we enforce a 200ms delay between retries.
|
|
9286
9382
|
*
|
|
9287
|
-
*
|
|
9288
|
-
*
|
|
9383
|
+
* Polls the IRIS API until a complete attestation is available. The default
|
|
9384
|
+
* window is sized for slow source chains where finality may take many
|
|
9385
|
+
* confirmations.
|
|
9289
9386
|
*
|
|
9290
|
-
*
|
|
9291
|
-
* - Per
|
|
9292
|
-
* - Retry
|
|
9293
|
-
* -
|
|
9387
|
+
* Defaults (see `DEFAULT_CONFIG`):
|
|
9388
|
+
* - Per-attempt timeout: 2 000 ms (each HTTP request aborts after 2 s)
|
|
9389
|
+
* - Retry delay: 2 000 ms between attempts
|
|
9390
|
+
* - Max retries: 600 (30 × 20)
|
|
9391
|
+
* - Total worst-case polling window: 600 × (2 000 ms + 2 000 ms) ≈ 40 minutes
|
|
9294
9392
|
*
|
|
9295
9393
|
* @param sourceDomainId - The CCTP domain ID.
|
|
9296
9394
|
* @param transactionHash - The transaction hash to fetch attestation for.
|
|
@@ -12150,7 +12248,7 @@ async function buildBatchedStep(name, receipt, batchId, adapter, chain, statusCo
|
|
|
12150
12248
|
return step;
|
|
12151
12249
|
}
|
|
12152
12250
|
|
|
12153
|
-
var version = "1.
|
|
12251
|
+
var version = "1.8.0";
|
|
12154
12252
|
var pkg = {
|
|
12155
12253
|
version: version};
|
|
12156
12254
|
|
package/index.d.ts
CHANGED
|
@@ -666,6 +666,8 @@ declare enum Blockchain {
|
|
|
666
666
|
Hedera_Testnet = "Hedera_Testnet",
|
|
667
667
|
HyperEVM = "HyperEVM",
|
|
668
668
|
HyperEVM_Testnet = "HyperEVM_Testnet",
|
|
669
|
+
Injective = "Injective",
|
|
670
|
+
Injective_Testnet = "Injective_Testnet",
|
|
669
671
|
Ink = "Ink",
|
|
670
672
|
Ink_Testnet = "Ink_Testnet",
|
|
671
673
|
Linea = "Linea",
|
package/index.mjs
CHANGED
|
@@ -74,6 +74,8 @@ var Blockchain;
|
|
|
74
74
|
Blockchain["Hedera_Testnet"] = "Hedera_Testnet";
|
|
75
75
|
Blockchain["HyperEVM"] = "HyperEVM";
|
|
76
76
|
Blockchain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
|
|
77
|
+
Blockchain["Injective"] = "Injective";
|
|
78
|
+
Blockchain["Injective_Testnet"] = "Injective_Testnet";
|
|
77
79
|
Blockchain["Ink"] = "Ink";
|
|
78
80
|
Blockchain["Ink_Testnet"] = "Ink_Testnet";
|
|
79
81
|
Blockchain["Linea"] = "Linea";
|
|
@@ -293,6 +295,7 @@ var BridgeChain;
|
|
|
293
295
|
BridgeChain["Edge"] = "Edge";
|
|
294
296
|
BridgeChain["Ethereum"] = "Ethereum";
|
|
295
297
|
BridgeChain["HyperEVM"] = "HyperEVM";
|
|
298
|
+
BridgeChain["Injective"] = "Injective";
|
|
296
299
|
BridgeChain["Ink"] = "Ink";
|
|
297
300
|
BridgeChain["Linea"] = "Linea";
|
|
298
301
|
BridgeChain["Monad"] = "Monad";
|
|
@@ -316,6 +319,7 @@ var BridgeChain;
|
|
|
316
319
|
BridgeChain["Edge_Testnet"] = "Edge_Testnet";
|
|
317
320
|
BridgeChain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
|
|
318
321
|
BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
|
|
322
|
+
BridgeChain["Injective_Testnet"] = "Injective_Testnet";
|
|
319
323
|
BridgeChain["Ink_Testnet"] = "Ink_Testnet";
|
|
320
324
|
BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
|
|
321
325
|
BridgeChain["Monad_Testnet"] = "Monad_Testnet";
|
|
@@ -1735,6 +1739,98 @@ const HyperEVMTestnet = defineChain({
|
|
|
1735
1739
|
},
|
|
1736
1740
|
});
|
|
1737
1741
|
|
|
1742
|
+
/**
|
|
1743
|
+
* Injective Mainnet chain definition
|
|
1744
|
+
* @remarks
|
|
1745
|
+
* This represents the official production network for the Injective blockchain.
|
|
1746
|
+
* Injective is a high-performance, interoperable Layer-1 blockchain built for
|
|
1747
|
+
* finance, with an EVM execution layer on top of a Cosmos SDK base and
|
|
1748
|
+
* sub-second block finality.
|
|
1749
|
+
*/
|
|
1750
|
+
const Injective = defineChain({
|
|
1751
|
+
type: 'evm',
|
|
1752
|
+
chain: Blockchain.Injective,
|
|
1753
|
+
name: 'Injective',
|
|
1754
|
+
title: 'Injective Mainnet',
|
|
1755
|
+
nativeCurrency: {
|
|
1756
|
+
name: 'Injective',
|
|
1757
|
+
symbol: 'INJ',
|
|
1758
|
+
decimals: 18,
|
|
1759
|
+
},
|
|
1760
|
+
chainId: 1776,
|
|
1761
|
+
isTestnet: false,
|
|
1762
|
+
explorerUrl: 'https://injscan.com/transaction/{hash}',
|
|
1763
|
+
rpcEndpoints: ['https://sentry.evm-rpc.injective.network'],
|
|
1764
|
+
eurcAddress: null,
|
|
1765
|
+
usdcAddress: '0xa00C59fF5a080D2b954d0c75e46E22a0c371235a',
|
|
1766
|
+
usdtAddress: null,
|
|
1767
|
+
cctp: {
|
|
1768
|
+
domain: 29,
|
|
1769
|
+
contracts: {
|
|
1770
|
+
v2: {
|
|
1771
|
+
type: 'split',
|
|
1772
|
+
tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
1773
|
+
messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
1774
|
+
confirmations: 1,
|
|
1775
|
+
fastConfirmations: 1,
|
|
1776
|
+
},
|
|
1777
|
+
},
|
|
1778
|
+
forwarderSupported: {
|
|
1779
|
+
source: false,
|
|
1780
|
+
destination: false,
|
|
1781
|
+
},
|
|
1782
|
+
},
|
|
1783
|
+
kitContracts: {
|
|
1784
|
+
bridge: BRIDGE_CONTRACT_EVM_MAINNET,
|
|
1785
|
+
},
|
|
1786
|
+
});
|
|
1787
|
+
|
|
1788
|
+
/**
|
|
1789
|
+
* Injective Testnet chain definition
|
|
1790
|
+
* @remarks
|
|
1791
|
+
* This represents the official test network for the Injective blockchain.
|
|
1792
|
+
* Injective is a high-performance, interoperable Layer-1 blockchain built for
|
|
1793
|
+
* finance, with an EVM execution layer on top of a Cosmos SDK base and
|
|
1794
|
+
* sub-second block finality.
|
|
1795
|
+
*/
|
|
1796
|
+
const InjectiveTestnet = defineChain({
|
|
1797
|
+
type: 'evm',
|
|
1798
|
+
chain: Blockchain.Injective_Testnet,
|
|
1799
|
+
name: 'Injective Testnet',
|
|
1800
|
+
title: 'Injective Testnet',
|
|
1801
|
+
nativeCurrency: {
|
|
1802
|
+
name: 'Injective',
|
|
1803
|
+
symbol: 'INJ',
|
|
1804
|
+
decimals: 18,
|
|
1805
|
+
},
|
|
1806
|
+
chainId: 1439,
|
|
1807
|
+
isTestnet: true,
|
|
1808
|
+
explorerUrl: 'https://testnet.explorer.injective.network/transaction/{hash}',
|
|
1809
|
+
rpcEndpoints: ['https://k8s.testnet.json-rpc.injective.network'],
|
|
1810
|
+
eurcAddress: null,
|
|
1811
|
+
usdcAddress: '0x0C382e685bbeeFE5d3d9C29e29E341fEE8E84C5d',
|
|
1812
|
+
usdtAddress: null,
|
|
1813
|
+
cctp: {
|
|
1814
|
+
domain: 29,
|
|
1815
|
+
contracts: {
|
|
1816
|
+
v2: {
|
|
1817
|
+
type: 'split',
|
|
1818
|
+
tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
|
|
1819
|
+
messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
|
|
1820
|
+
confirmations: 1,
|
|
1821
|
+
fastConfirmations: 1,
|
|
1822
|
+
},
|
|
1823
|
+
},
|
|
1824
|
+
forwarderSupported: {
|
|
1825
|
+
source: false,
|
|
1826
|
+
destination: false,
|
|
1827
|
+
},
|
|
1828
|
+
},
|
|
1829
|
+
kitContracts: {
|
|
1830
|
+
bridge: BRIDGE_CONTRACT_EVM_TESTNET,
|
|
1831
|
+
},
|
|
1832
|
+
});
|
|
1833
|
+
|
|
1738
1834
|
/**
|
|
1739
1835
|
* Ink Mainnet chain definition
|
|
1740
1836
|
* @remarks
|
|
@@ -3577,6 +3673,8 @@ var Chains = /*#__PURE__*/Object.freeze({
|
|
|
3577
3673
|
HederaTestnet: HederaTestnet,
|
|
3578
3674
|
HyperEVM: HyperEVM,
|
|
3579
3675
|
HyperEVMTestnet: HyperEVMTestnet,
|
|
3676
|
+
Injective: Injective,
|
|
3677
|
+
InjectiveTestnet: InjectiveTestnet,
|
|
3580
3678
|
Ink: Ink,
|
|
3581
3679
|
InkTestnet: InkTestnet,
|
|
3582
3680
|
Linea: Linea,
|
|
@@ -7276,6 +7374,7 @@ const USDC = {
|
|
|
7276
7374
|
[Blockchain.Ethereum]: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
|
7277
7375
|
[Blockchain.Hedera]: '0.0.456858',
|
|
7278
7376
|
[Blockchain.HyperEVM]: '0xb88339CB7199b77E23DB6E890353E22632Ba630f',
|
|
7377
|
+
[Blockchain.Injective]: '0xa00C59fF5a080D2b954d0c75e46E22a0c371235a',
|
|
7279
7378
|
[Blockchain.Ink]: '0x2D270e6886d130D724215A266106e6832161EAEd',
|
|
7280
7379
|
[Blockchain.Linea]: '0x176211869ca2b568f2a7d4ee941e073a821ee1ff',
|
|
7281
7380
|
[Blockchain.Monad]: '0x754704Bc059F8C67012fEd69BC8A327a5aafb603',
|
|
@@ -7308,6 +7407,7 @@ const USDC = {
|
|
|
7308
7407
|
[Blockchain.Ethereum_Sepolia]: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
|
|
7309
7408
|
[Blockchain.Hedera_Testnet]: '0.0.429274',
|
|
7310
7409
|
[Blockchain.HyperEVM_Testnet]: '0x2B3370eE501B4a559b57D449569354196457D8Ab',
|
|
7410
|
+
[Blockchain.Injective_Testnet]: '0x0C382e685bbeeFE5d3d9C29e29E341fEE8E84C5d',
|
|
7311
7411
|
[Blockchain.Ink_Testnet]: '0xFabab97dCE620294D2B0b0e46C68964e326300Ac',
|
|
7312
7412
|
[Blockchain.Linea_Sepolia]: '0xfece4462d57bd51a6a552365a011b95f0e16d9b7',
|
|
7313
7413
|
[Blockchain.Monad_Testnet]: '0x534b2f3A21130d7a60830c2Df862319e593943A3',
|
|
@@ -9272,18 +9372,16 @@ const buildIrisUrl = (sourceDomainId, transactionHash, isTestnet) => {
|
|
|
9272
9372
|
};
|
|
9273
9373
|
/**
|
|
9274
9374
|
* Fetches attestation data from the IRIS API with retry and timeout handling.
|
|
9275
|
-
* Since fetching starts after a confirmed burn transaction, we attempt up to 10 retries.
|
|
9276
|
-
* Implements a conservative delay between requests to respect the API rate
|
|
9277
|
-
* limit of 35 requests per second. To avoid rate limiting when multiple processes are
|
|
9278
|
-
* running concurrently, we enforce a 200ms delay between retries.
|
|
9279
9375
|
*
|
|
9280
|
-
*
|
|
9281
|
-
*
|
|
9376
|
+
* Polls the IRIS API until a complete attestation is available. The default
|
|
9377
|
+
* window is sized for slow source chains where finality may take many
|
|
9378
|
+
* confirmations.
|
|
9282
9379
|
*
|
|
9283
|
-
*
|
|
9284
|
-
* - Per
|
|
9285
|
-
* - Retry
|
|
9286
|
-
* -
|
|
9380
|
+
* Defaults (see `DEFAULT_CONFIG`):
|
|
9381
|
+
* - Per-attempt timeout: 2 000 ms (each HTTP request aborts after 2 s)
|
|
9382
|
+
* - Retry delay: 2 000 ms between attempts
|
|
9383
|
+
* - Max retries: 600 (30 × 20)
|
|
9384
|
+
* - Total worst-case polling window: 600 × (2 000 ms + 2 000 ms) ≈ 40 minutes
|
|
9287
9385
|
*
|
|
9288
9386
|
* @param sourceDomainId - The CCTP domain ID.
|
|
9289
9387
|
* @param transactionHash - The transaction hash to fetch attestation for.
|
|
@@ -12143,7 +12241,7 @@ async function buildBatchedStep(name, receipt, batchId, adapter, chain, statusCo
|
|
|
12143
12241
|
return step;
|
|
12144
12242
|
}
|
|
12145
12243
|
|
|
12146
|
-
var version = "1.
|
|
12244
|
+
var version = "1.8.0";
|
|
12147
12245
|
var pkg = {
|
|
12148
12246
|
version: version};
|
|
12149
12247
|
|