agentwallet-sdk 3.2.1 → 3.4.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/README.md +2 -536
- package/dist/bridge/abis.d.ts +48 -171
- package/dist/bridge/abis.d.ts.map +1 -1
- package/dist/bridge/abis.js.map +1 -1
- package/dist/bridge/client.d.ts +2 -41
- package/dist/bridge/client.d.ts.map +1 -1
- package/dist/bridge/client.js +35 -168
- package/dist/bridge/client.js.map +1 -1
- package/dist/bridge/index.d.ts +2 -4
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/index.js +1 -8
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/types.d.ts +15 -134
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/bridge/types.js +16 -170
- package/dist/bridge/types.js.map +1 -1
- package/dist/identity/erc8004.d.ts +2 -240
- package/dist/identity/erc8004.d.ts.map +1 -1
- package/dist/identity/erc8004.js +58 -334
- package/dist/identity/erc8004.js.map +1 -1
- package/dist/index.d.ts +313 -134
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -56
- package/dist/index.js.map +1 -1
- package/dist/swap/SwapModule.d.ts +6 -50
- package/dist/swap/SwapModule.d.ts.map +1 -1
- package/dist/swap/SwapModule.js +25 -153
- package/dist/swap/SwapModule.js.map +1 -1
- package/dist/swap/abi.d.ts +47 -165
- package/dist/swap/abi.d.ts.map +1 -1
- package/dist/swap/abi.js.map +1 -1
- package/dist/swap/index.d.ts +2 -3
- package/dist/swap/index.d.ts.map +1 -1
- package/dist/swap/index.js +1 -4
- package/dist/swap/index.js.map +1 -1
- package/dist/swap/types.d.ts +6 -36
- package/dist/swap/types.d.ts.map +1 -1
- package/dist/swap/types.js +0 -1
- package/dist/swap/types.js.map +1 -1
- package/dist/types.d.ts +1 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/types.js.map +1 -1
- package/dist/x402/__tests__/budget.test.d.ts +2 -0
- package/dist/x402/__tests__/budget.test.d.ts.map +1 -0
- package/dist/x402/__tests__/budget.test.js +114 -0
- package/dist/x402/__tests__/budget.test.js.map +1 -0
- package/dist/x402/__tests__/client.test.d.ts +2 -0
- package/dist/x402/__tests__/client.test.d.ts.map +1 -0
- package/dist/x402/__tests__/client.test.js +107 -0
- package/dist/x402/__tests__/client.test.js.map +1 -0
- package/dist/x402/chains/abstract/index.d.ts +135 -0
- package/dist/x402/chains/abstract/index.d.ts.map +1 -0
- package/dist/x402/chains/abstract/index.js +190 -0
- package/dist/x402/chains/abstract/index.js.map +1 -0
- package/dist/x402/client.d.ts.map +1 -1
- package/dist/x402/client.js +1 -2
- package/dist/x402/client.js.map +1 -1
- package/dist/x402/index.d.ts +3 -1
- package/dist/x402/index.d.ts.map +1 -1
- package/dist/x402/index.js +3 -1
- package/dist/x402/index.js.map +1 -1
- package/dist/x402/types.d.ts +3 -5
- package/dist/x402/types.d.ts.map +1 -1
- package/dist/x402/types.js +2 -17
- package/dist/x402/types.js.map +1 -1
- package/package.json +12 -32
- package/dist/ap2/index.d.ts +0 -185
- package/dist/ap2/index.d.ts.map +0 -1
- package/dist/ap2/index.js +0 -255
- package/dist/ap2/index.js.map +0 -1
- package/dist/bridge/unified.d.ts +0 -101
- package/dist/bridge/unified.d.ts.map +0 -1
- package/dist/bridge/unified.js +0 -284
- package/dist/bridge/unified.js.map +0 -1
- package/dist/chains.d.ts +0 -62
- package/dist/chains.d.ts.map +0 -1
- package/dist/chains.js +0 -108
- package/dist/chains.js.map +0 -1
- package/dist/fiat/index.d.ts +0 -10
- package/dist/fiat/index.d.ts.map +0 -1
- package/dist/fiat/index.js +0 -9
- package/dist/fiat/index.js.map +0 -1
- package/dist/fiat/onramp.d.ts +0 -101
- package/dist/fiat/onramp.d.ts.map +0 -1
- package/dist/fiat/onramp.js +0 -155
- package/dist/fiat/onramp.js.map +0 -1
- package/dist/fiat/providers/index.d.ts +0 -16
- package/dist/fiat/providers/index.d.ts.map +0 -1
- package/dist/fiat/providers/index.js +0 -30
- package/dist/fiat/providers/index.js.map +0 -1
- package/dist/fiat/providers/moonpay.d.ts +0 -22
- package/dist/fiat/providers/moonpay.d.ts.map +0 -1
- package/dist/fiat/providers/moonpay.js +0 -107
- package/dist/fiat/providers/moonpay.js.map +0 -1
- package/dist/fiat/providers/stripe.d.ts +0 -26
- package/dist/fiat/providers/stripe.d.ts.map +0 -1
- package/dist/fiat/providers/stripe.js +0 -135
- package/dist/fiat/providers/stripe.js.map +0 -1
- package/dist/fiat/providers/transak.d.ts +0 -26
- package/dist/fiat/providers/transak.d.ts.map +0 -1
- package/dist/fiat/providers/transak.js +0 -119
- package/dist/fiat/providers/transak.js.map +0 -1
- package/dist/fiat/types.d.ts +0 -106
- package/dist/fiat/types.d.ts.map +0 -1
- package/dist/fiat/types.js +0 -13
- package/dist/fiat/types.js.map +0 -1
- package/dist/flash/executor.d.ts +0 -119
- package/dist/flash/executor.d.ts.map +0 -1
- package/dist/flash/executor.js +0 -195
- package/dist/flash/executor.js.map +0 -1
- package/dist/flash/index.d.ts +0 -28
- package/dist/flash/index.d.ts.map +0 -1
- package/dist/flash/index.js +0 -25
- package/dist/flash/index.js.map +0 -1
- package/dist/flash/scanner.d.ts +0 -133
- package/dist/flash/scanner.d.ts.map +0 -1
- package/dist/flash/scanner.js +0 -212
- package/dist/flash/scanner.js.map +0 -1
- package/dist/flash/types.d.ts +0 -136
- package/dist/flash/types.d.ts.map +0 -1
- package/dist/flash/types.js +0 -23
- package/dist/flash/types.js.map +0 -1
- package/dist/gas/index.d.ts +0 -4
- package/dist/gas/index.d.ts.map +0 -1
- package/dist/gas/index.js +0 -3
- package/dist/gas/index.js.map +0 -1
- package/dist/gas/sponsor.d.ts +0 -70
- package/dist/gas/sponsor.d.ts.map +0 -1
- package/dist/gas/sponsor.js +0 -193
- package/dist/gas/sponsor.js.map +0 -1
- package/dist/gas/types.d.ts +0 -76
- package/dist/gas/types.d.ts.map +0 -1
- package/dist/gas/types.js +0 -21
- package/dist/gas/types.js.map +0 -1
- package/dist/identity/agent-identity.d.ts +0 -276
- package/dist/identity/agent-identity.d.ts.map +0 -1
- package/dist/identity/agent-identity.js +0 -300
- package/dist/identity/agent-identity.js.map +0 -1
- package/dist/identity/erc6551.d.ts +0 -441
- package/dist/identity/erc6551.d.ts.map +0 -1
- package/dist/identity/erc6551.js +0 -517
- package/dist/identity/erc6551.js.map +0 -1
- package/dist/mev/index.d.ts +0 -4
- package/dist/mev/index.d.ts.map +0 -1
- package/dist/mev/index.js +0 -4
- package/dist/mev/index.js.map +0 -1
- package/dist/mev/protection.d.ts +0 -54
- package/dist/mev/protection.d.ts.map +0 -1
- package/dist/mev/protection.js +0 -185
- package/dist/mev/protection.js.map +0 -1
- package/dist/mev/risk.d.ts +0 -19
- package/dist/mev/risk.d.ts.map +0 -1
- package/dist/mev/risk.js +0 -95
- package/dist/mev/risk.js.map +0 -1
- package/dist/mev/types.d.ts +0 -49
- package/dist/mev/types.d.ts.map +0 -1
- package/dist/mev/types.js +0 -2
- package/dist/mev/types.js.map +0 -1
- package/dist/settlement/index.d.ts +0 -4
- package/dist/settlement/index.d.ts.map +0 -1
- package/dist/settlement/index.js +0 -3
- package/dist/settlement/index.js.map +0 -1
- package/dist/settlement/types.d.ts +0 -66
- package/dist/settlement/types.d.ts.map +0 -1
- package/dist/settlement/types.js +0 -37
- package/dist/settlement/types.js.map +0 -1
- package/dist/settlement/verifier.d.ts +0 -75
- package/dist/settlement/verifier.d.ts.map +0 -1
- package/dist/settlement/verifier.js +0 -354
- package/dist/settlement/verifier.js.map +0 -1
- package/dist/solana/bridge.d.ts +0 -144
- package/dist/solana/bridge.d.ts.map +0 -1
- package/dist/solana/bridge.js +0 -352
- package/dist/solana/bridge.js.map +0 -1
- package/dist/solana/index.d.ts +0 -8
- package/dist/solana/index.d.ts.map +0 -1
- package/dist/solana/index.js +0 -6
- package/dist/solana/index.js.map +0 -1
- package/dist/solana/swap.d.ts +0 -85
- package/dist/solana/swap.d.ts.map +0 -1
- package/dist/solana/swap.js +0 -173
- package/dist/solana/swap.js.map +0 -1
- package/dist/solana/types.d.ts +0 -126
- package/dist/solana/types.d.ts.map +0 -1
- package/dist/solana/types.js +0 -10
- package/dist/solana/types.js.map +0 -1
- package/dist/solana/wallet.d.ts +0 -83
- package/dist/solana/wallet.d.ts.map +0 -1
- package/dist/solana/wallet.js +0 -164
- package/dist/solana/wallet.js.map +0 -1
- package/dist/solana/x402.d.ts +0 -69
- package/dist/solana/x402.d.ts.map +0 -1
- package/dist/solana/x402.js +0 -154
- package/dist/solana/x402.js.map +0 -1
- package/dist/solver/adapter.d.ts +0 -47
- package/dist/solver/adapter.d.ts.map +0 -1
- package/dist/solver/adapter.js +0 -138
- package/dist/solver/adapter.js.map +0 -1
- package/dist/solver/analyzer.d.ts +0 -48
- package/dist/solver/analyzer.d.ts.map +0 -1
- package/dist/solver/analyzer.js +0 -89
- package/dist/solver/analyzer.js.map +0 -1
- package/dist/solver/builder.d.ts +0 -31
- package/dist/solver/builder.d.ts.map +0 -1
- package/dist/solver/builder.js +0 -60
- package/dist/solver/builder.js.map +0 -1
- package/dist/solver/index.d.ts +0 -22
- package/dist/solver/index.d.ts.map +0 -1
- package/dist/solver/index.js +0 -21
- package/dist/solver/index.js.map +0 -1
- package/dist/solver/types.d.ts +0 -115
- package/dist/solver/types.d.ts.map +0 -1
- package/dist/solver/types.js +0 -10
- package/dist/solver/types.js.map +0 -1
- package/dist/swap/router/cache.d.ts +0 -13
- package/dist/swap/router/cache.d.ts.map +0 -1
- package/dist/swap/router/cache.js +0 -30
- package/dist/swap/router/cache.js.map +0 -1
- package/dist/swap/router/flashbots.d.ts +0 -10
- package/dist/swap/router/flashbots.d.ts.map +0 -1
- package/dist/swap/router/flashbots.js +0 -43
- package/dist/swap/router/flashbots.js.map +0 -1
- package/dist/swap/router/health.d.ts +0 -17
- package/dist/swap/router/health.d.ts.map +0 -1
- package/dist/swap/router/health.js +0 -38
- package/dist/swap/router/health.js.map +0 -1
- package/dist/swap/router/index.d.ts +0 -10
- package/dist/swap/router/index.d.ts.map +0 -1
- package/dist/swap/router/index.js +0 -10
- package/dist/swap/router/index.js.map +0 -1
- package/dist/swap/router/providers/cowswap.d.ts +0 -11
- package/dist/swap/router/providers/cowswap.d.ts.map +0 -1
- package/dist/swap/router/providers/cowswap.js +0 -79
- package/dist/swap/router/providers/cowswap.js.map +0 -1
- package/dist/swap/router/providers/index.d.ts +0 -20
- package/dist/swap/router/providers/index.d.ts.map +0 -1
- package/dist/swap/router/providers/index.js +0 -32
- package/dist/swap/router/providers/index.js.map +0 -1
- package/dist/swap/router/providers/jupiter.d.ts +0 -12
- package/dist/swap/router/providers/jupiter.d.ts.map +0 -1
- package/dist/swap/router/providers/jupiter.js +0 -73
- package/dist/swap/router/providers/jupiter.js.map +0 -1
- package/dist/swap/router/providers/lifi.d.ts +0 -11
- package/dist/swap/router/providers/lifi.d.ts.map +0 -1
- package/dist/swap/router/providers/lifi.js +0 -123
- package/dist/swap/router/providers/lifi.js.map +0 -1
- package/dist/swap/router/providers/oneinch.d.ts +0 -13
- package/dist/swap/router/providers/oneinch.d.ts.map +0 -1
- package/dist/swap/router/providers/oneinch.js +0 -71
- package/dist/swap/router/providers/oneinch.js.map +0 -1
- package/dist/swap/router/providers/paraswap.d.ts +0 -11
- package/dist/swap/router/providers/paraswap.d.ts.map +0 -1
- package/dist/swap/router/providers/paraswap.js +0 -73
- package/dist/swap/router/providers/paraswap.js.map +0 -1
- package/dist/swap/router/providers/uniswap.d.ts +0 -31
- package/dist/swap/router/providers/uniswap.d.ts.map +0 -1
- package/dist/swap/router/providers/uniswap.js +0 -116
- package/dist/swap/router/providers/uniswap.js.map +0 -1
- package/dist/swap/router/providers/zerox.d.ts +0 -13
- package/dist/swap/router/providers/zerox.d.ts.map +0 -1
- package/dist/swap/router/providers/zerox.js +0 -94
- package/dist/swap/router/providers/zerox.js.map +0 -1
- package/dist/swap/router/router.d.ts +0 -86
- package/dist/swap/router/router.d.ts.map +0 -1
- package/dist/swap/router/router.js +0 -224
- package/dist/swap/router/router.js.map +0 -1
- package/dist/swap/router/rsi/engine.d.ts +0 -60
- package/dist/swap/router/rsi/engine.d.ts.map +0 -1
- package/dist/swap/router/rsi/engine.js +0 -483
- package/dist/swap/router/rsi/engine.js.map +0 -1
- package/dist/swap/router/rsi/index.d.ts +0 -3
- package/dist/swap/router/rsi/index.d.ts.map +0 -1
- package/dist/swap/router/rsi/index.js +0 -3
- package/dist/swap/router/rsi/index.js.map +0 -1
- package/dist/swap/router/rsi/types.d.ts +0 -106
- package/dist/swap/router/rsi/types.d.ts.map +0 -1
- package/dist/swap/router/rsi/types.js +0 -3
- package/dist/swap/router/rsi/types.js.map +0 -1
- package/dist/swap/router/types.d.ts +0 -120
- package/dist/swap/router/types.d.ts.map +0 -1
- package/dist/swap/router/types.js +0 -16
- package/dist/swap/router/types.js.map +0 -1
- package/dist/tax/engine.d.ts +0 -131
- package/dist/tax/engine.d.ts.map +0 -1
- package/dist/tax/engine.js +0 -307
- package/dist/tax/engine.js.map +0 -1
- package/dist/tax/index.d.ts +0 -9
- package/dist/tax/index.d.ts.map +0 -1
- package/dist/tax/index.js +0 -8
- package/dist/tax/index.js.map +0 -1
- package/dist/tax/lots.d.ts +0 -60
- package/dist/tax/lots.d.ts.map +0 -1
- package/dist/tax/lots.js +0 -129
- package/dist/tax/lots.js.map +0 -1
- package/dist/tax/types.d.ts +0 -113
- package/dist/tax/types.d.ts.map +0 -1
- package/dist/tax/types.js +0 -18
- package/dist/tax/types.js.map +0 -1
- package/dist/yield/index.d.ts +0 -26
- package/dist/yield/index.d.ts.map +0 -1
- package/dist/yield/index.js +0 -25
- package/dist/yield/index.js.map +0 -1
- package/dist/yield/rates.d.ts +0 -114
- package/dist/yield/rates.d.ts.map +0 -1
- package/dist/yield/rates.js +0 -351
- package/dist/yield/rates.js.map +0 -1
- package/dist/yield/types.d.ts +0 -134
- package/dist/yield/types.d.ts.map +0 -1
- package/dist/yield/types.js +0 -24
- package/dist/yield/types.js.map +0 -1
- package/dist/yield/vault.d.ts +0 -112
- package/dist/yield/vault.d.ts.map +0 -1
- package/dist/yield/vault.js +0 -264
- package/dist/yield/vault.js.map +0 -1
package/dist/bridge/types.d.ts
CHANGED
|
@@ -1,73 +1,22 @@
|
|
|
1
1
|
import type { Address, Hash, Hex } from 'viem';
|
|
2
|
-
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/** Solana — non-EVM, handled by SolanaCCTPBridge */
|
|
8
|
-
export type CCTPSolanaChain = 'solana';
|
|
9
|
-
/** All CCTP V2 supported chains: 16 EVM + Solana */
|
|
10
|
-
export type CCTPSupportedChain = BridgeChain | CCTPSolanaChain;
|
|
11
|
-
/**
|
|
12
|
-
* CCTP V2 domain IDs — Circle's internal chain identifiers.
|
|
13
|
-
* Source: https://developers.circle.com/cctp/concepts/supported-chains-and-domains
|
|
14
|
-
* These are used in smart contract calls and the attestation API.
|
|
15
|
-
*/
|
|
16
|
-
export declare const CCTP_DOMAIN_IDS: Record<CCTPSupportedChain, number>;
|
|
17
|
-
/** EVM chain IDs for all supported bridge chains */
|
|
2
|
+
/** Supported bridge destination chains */
|
|
3
|
+
export type BridgeChain = 'ethereum' | 'optimism' | 'base' | 'arbitrum';
|
|
4
|
+
/** CCTP V2 domain IDs (Circle's internal chain identifiers) */
|
|
5
|
+
export declare const CCTP_DOMAIN_IDS: Record<BridgeChain, number>;
|
|
6
|
+
/** EVM chain IDs for supported bridge chains */
|
|
18
7
|
export declare const BRIDGE_CHAIN_IDS: Record<BridgeChain, number>;
|
|
19
|
-
/**
|
|
20
|
-
export declare const BRIDGE_RPC_URLS: Record<BridgeChain, string>;
|
|
21
|
-
/**
|
|
22
|
-
* USDC contract addresses per chain — official Circle deployments.
|
|
23
|
-
* Source: https://developers.circle.com/stablecoins/usdc-contract-addresses
|
|
24
|
-
*/
|
|
8
|
+
/** USDC contract addresses per chain */
|
|
25
9
|
export declare const USDC_CONTRACT: Record<BridgeChain, Address>;
|
|
26
10
|
/**
|
|
27
|
-
* CCTP V2 TokenMessengerV2 addresses
|
|
28
|
-
* Source: https://developers.circle.com/cctp/references/contract-addresses
|
|
29
|
-
* Verified: 0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d (all chains)
|
|
11
|
+
* CCTP V2 TokenMessengerV2 addresses (source chain — where burn happens).
|
|
30
12
|
*/
|
|
31
13
|
export declare const TOKEN_MESSENGER_V2: Record<BridgeChain, Address>;
|
|
32
|
-
/**
|
|
33
|
-
* CCTP V2 MessageTransmitterV2 addresses — same address on all EVM chains.
|
|
34
|
-
* Source: https://developers.circle.com/cctp/references/contract-addresses
|
|
35
|
-
* Verified: 0x81D40F21F12A8F0E3252Bccb954D722d4c464B64 (all chains)
|
|
36
|
-
*/
|
|
14
|
+
/** CCTP V2 MessageTransmitterV2 addresses (destination chain — where mint happens) */
|
|
37
15
|
export declare const MESSAGE_TRANSMITTER_V2: Record<BridgeChain, Address>;
|
|
38
|
-
/**
|
|
39
|
-
* Solana CCTP V2 program addresses (domain 5).
|
|
40
|
-
* Source: https://developers.circle.com/cctp/references/solana-programs
|
|
41
|
-
*/
|
|
42
|
-
export declare const SOLANA_CCTP_PROGRAMS: {
|
|
43
|
-
/** Handles incoming messages + mints USDC on Solana */
|
|
44
|
-
readonly MESSAGE_TRANSMITTER_V2: "CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC";
|
|
45
|
-
/** Handles burn + combined TokenMessenger + TokenMinter on Solana */
|
|
46
|
-
readonly TOKEN_MESSENGER_MINTER_V2: "CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe";
|
|
47
|
-
};
|
|
48
|
-
/** Solana USDC mint address (mainnet) */
|
|
49
|
-
export declare const SOLANA_USDC_MINT = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
|
|
50
|
-
/** Solana CCTP domain ID */
|
|
51
|
-
export declare const SOLANA_CCTP_DOMAIN = 5;
|
|
52
|
-
/**
|
|
53
|
-
* Platform bridge fee: 0.1% (10 basis points).
|
|
54
|
-
* Applied on source chain before bridging. Circle CCTP itself is feeless.
|
|
55
|
-
*/
|
|
56
|
-
export declare const PLATFORM_FEE_BPS = 10n;
|
|
57
|
-
export declare const PLATFORM_FEE_DENOMINATOR = 10000n;
|
|
58
|
-
/**
|
|
59
|
-
* Calculate 0.1% platform fee for a given bridge amount.
|
|
60
|
-
* @param amount - USDC amount in base units (6 decimals)
|
|
61
|
-
*/
|
|
62
|
-
export declare function calcBridgeFee(amount: bigint): bigint;
|
|
63
|
-
/**
|
|
64
|
-
* Calculate the actual bridged amount after platform fee deduction.
|
|
65
|
-
*/
|
|
66
|
-
export declare function calcAmountAfterFee(amount: bigint): bigint;
|
|
67
16
|
/**
|
|
68
17
|
* CCTP V2 minFinalityThreshold values.
|
|
69
|
-
* - FAST (0): ~
|
|
70
|
-
* - FINALIZED (1000): Full on-chain finality.
|
|
18
|
+
* - FAST (0): ~12 seconds. Circle fast attestation.
|
|
19
|
+
* - FINALIZED (1000): Full on-chain finality.
|
|
71
20
|
*/
|
|
72
21
|
export declare const FINALITY_THRESHOLD: {
|
|
73
22
|
readonly FAST: 0;
|
|
@@ -81,52 +30,19 @@ export declare const MAX_ATTESTATION_POLLS = 60;
|
|
|
81
30
|
export declare const ATTESTATION_POLL_INTERVAL_MS = 5000;
|
|
82
31
|
/** Options for a bridge operation */
|
|
83
32
|
export interface BridgeOptions {
|
|
84
|
-
/**
|
|
85
|
-
* Minimum finality threshold.
|
|
86
|
-
* - 0 (FAST): ~8–20 seconds using Circle's fast attestation
|
|
87
|
-
* - 1000 (FINALIZED): Full finality (slower but more secure for large amounts)
|
|
88
|
-
* @default 0 (fast finality)
|
|
89
|
-
*/
|
|
90
33
|
minFinalityThreshold?: number;
|
|
91
|
-
/**
|
|
92
|
-
* Maximum fee in USDC base units (6 decimals).
|
|
93
|
-
* Circle uses this as an upper bound for bridging fee.
|
|
94
|
-
* @default 0n (no max fee limit)
|
|
95
|
-
*/
|
|
96
34
|
maxFee?: bigint;
|
|
97
|
-
/**
|
|
98
|
-
* Optional override for the destination address.
|
|
99
|
-
* Defaults to the same address as the source wallet.
|
|
100
|
-
*/
|
|
101
35
|
destinationAddress?: Address;
|
|
102
|
-
/**
|
|
103
|
-
* RPC URL for the destination chain.
|
|
104
|
-
* Required when minting on destination.
|
|
105
|
-
*/
|
|
106
36
|
destinationRpcUrl?: string;
|
|
107
|
-
/**
|
|
108
|
-
* Circle attestation API override (for testing).
|
|
109
|
-
*/
|
|
110
37
|
attestationApiUrl?: string;
|
|
111
|
-
/**
|
|
112
|
-
* Whether to apply the 0.1% platform fee.
|
|
113
|
-
* @default true
|
|
114
|
-
*/
|
|
115
|
-
applyPlatformFee?: boolean;
|
|
116
38
|
}
|
|
117
39
|
/** Result of a bridge.burn() operation */
|
|
118
40
|
export interface BurnResult {
|
|
119
|
-
/** Transaction hash of the burn tx on source chain */
|
|
120
41
|
burnTxHash: Hash;
|
|
121
|
-
/** CCTP nonce for tracking */
|
|
122
42
|
nonce: bigint;
|
|
123
|
-
/** The CCTP message hash (used to fetch attestation) */
|
|
124
43
|
messageHash: Hex;
|
|
125
|
-
/** Raw CCTP message bytes emitted in the MessageSent event */
|
|
126
44
|
messageBytes: Hex;
|
|
127
|
-
/** Source chain domain ID */
|
|
128
45
|
sourceDomain: number;
|
|
129
|
-
/** Destination chain domain ID */
|
|
130
46
|
destinationDomain: number;
|
|
131
47
|
}
|
|
132
48
|
/** Circle attestation status */
|
|
@@ -137,52 +53,17 @@ export interface AttestationResponse {
|
|
|
137
53
|
attestation: Hex | null;
|
|
138
54
|
error?: string;
|
|
139
55
|
}
|
|
140
|
-
/** Result of the full bridge() operation
|
|
56
|
+
/** Result of the full bridge() operation */
|
|
141
57
|
export interface BridgeResult {
|
|
142
|
-
/** Transaction hash of the burn on source chain */
|
|
143
58
|
burnTxHash: Hash;
|
|
144
|
-
/** Transaction hash of the mint on destination chain */
|
|
145
59
|
mintTxHash: Hash;
|
|
146
|
-
/** Amount bridged in USDC base units (6 decimals) */
|
|
147
60
|
amount: bigint;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
fromChain: CCTPSupportedChain;
|
|
152
|
-
/** Destination chain name */
|
|
153
|
-
toChain: CCTPSupportedChain;
|
|
154
|
-
/** Recipient address on destination chain */
|
|
155
|
-
recipient: string;
|
|
156
|
-
/** CCTP nonce */
|
|
61
|
+
fromChain: BridgeChain;
|
|
62
|
+
toChain: BridgeChain;
|
|
63
|
+
recipient: Address;
|
|
157
64
|
nonce: bigint;
|
|
158
|
-
/** Total time in milliseconds from burn to mint */
|
|
159
65
|
elapsedMs: number;
|
|
160
66
|
}
|
|
161
|
-
/** Quote for a bridge operation */
|
|
162
|
-
export interface BridgeQuote {
|
|
163
|
-
/** Input amount (USDC, 6 decimals) */
|
|
164
|
-
inputAmount: bigint;
|
|
165
|
-
/** Platform fee (0.1%) */
|
|
166
|
-
platformFee: bigint;
|
|
167
|
-
/** Amount that will arrive at destination */
|
|
168
|
-
outputAmount: bigint;
|
|
169
|
-
/** Source chain */
|
|
170
|
-
fromChain: CCTPSupportedChain;
|
|
171
|
-
/** Destination chain */
|
|
172
|
-
toChain: CCTPSupportedChain;
|
|
173
|
-
/** Estimated time in seconds */
|
|
174
|
-
estimatedTimeSeconds: number;
|
|
175
|
-
/** Whether fast transfer is available on the source chain */
|
|
176
|
-
fastTransferAvailable: boolean;
|
|
177
|
-
}
|
|
178
67
|
/** Error codes for actionable bridge error messages */
|
|
179
|
-
export type BridgeErrorCode = 'UNSUPPORTED_CHAIN' | '
|
|
180
|
-
/**
|
|
181
|
-
* Chains that support CCTP V2 Fast Transfer (8–20 second attestation).
|
|
182
|
-
* Chains NOT listed here use Standard Transfer (up to ~15 min on Ethereum).
|
|
183
|
-
* Source: https://developers.circle.com/cctp/concepts/supported-chains-and-domains
|
|
184
|
-
*/
|
|
185
|
-
export declare const FAST_TRANSFER_CHAINS: Set<CCTPSupportedChain>;
|
|
186
|
-
/** Get estimated bridge time in seconds for a given source chain */
|
|
187
|
-
export declare function getEstimatedBridgeSeconds(chain: CCTPSupportedChain): number;
|
|
68
|
+
export type BridgeErrorCode = 'UNSUPPORTED_CHAIN' | 'INSUFFICIENT_ALLOWANCE' | 'INSUFFICIENT_BALANCE' | 'BURN_FAILED' | 'ATTESTATION_TIMEOUT' | 'ATTESTATION_ERROR' | 'MINT_FAILED' | 'INVALID_AMOUNT' | 'NO_WALLET_CLIENT';
|
|
188
69
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/C,0CAA0C;AAC1C,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAExE,+DAA+D;AAC/D,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKvD,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKxD,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAKtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAK3D,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAK/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,2CAA2C;AAC3C,eAAO,MAAM,sBAAsB,gCAAgC,CAAC;AACpE,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,sDAAsD;AACtD,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,GAAG,CAAC;IACjB,YAAY,EAAE,GAAG,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,gCAAgC;AAChC,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAC;AAE/E,kDAAkD;AAClD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,GAAG,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uDAAuD;AACvD,MAAM,MAAM,eAAe,GACvB,mBAAmB,GACnB,wBAAwB,GACxB,sBAAsB,GACtB,aAAa,GACb,qBAAqB,GACrB,mBAAmB,GACnB,aAAa,GACb,gBAAgB,GAChB,kBAAkB,CAAC"}
|
package/dist/bridge/types.js
CHANGED
|
@@ -1,207 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* CCTP V2 domain IDs — Circle's internal chain identifiers.
|
|
4
|
-
* Source: https://developers.circle.com/cctp/concepts/supported-chains-and-domains
|
|
5
|
-
* These are used in smart contract calls and the attestation API.
|
|
6
|
-
*/
|
|
1
|
+
/** CCTP V2 domain IDs (Circle's internal chain identifiers) */
|
|
7
2
|
export const CCTP_DOMAIN_IDS = {
|
|
8
3
|
ethereum: 0,
|
|
9
|
-
avalanche: 1,
|
|
10
4
|
optimism: 2,
|
|
11
5
|
arbitrum: 3,
|
|
12
|
-
solana: 5,
|
|
13
6
|
base: 6,
|
|
14
|
-
polygon: 7,
|
|
15
|
-
unichain: 10,
|
|
16
|
-
linea: 11,
|
|
17
|
-
codex: 12,
|
|
18
|
-
sonic: 13,
|
|
19
|
-
worldchain: 14,
|
|
20
|
-
sei: 16,
|
|
21
|
-
xdc: 18,
|
|
22
|
-
hyperevm: 19,
|
|
23
|
-
ink: 21,
|
|
24
|
-
plume: 22,
|
|
25
7
|
};
|
|
26
|
-
/** EVM chain IDs for
|
|
8
|
+
/** EVM chain IDs for supported bridge chains */
|
|
27
9
|
export const BRIDGE_CHAIN_IDS = {
|
|
28
10
|
ethereum: 1,
|
|
29
|
-
avalanche: 43114,
|
|
30
11
|
optimism: 10,
|
|
31
12
|
arbitrum: 42161,
|
|
32
13
|
base: 8453,
|
|
33
|
-
polygon: 137,
|
|
34
|
-
unichain: 130,
|
|
35
|
-
linea: 59144,
|
|
36
|
-
codex: 81224, // Codex mainnet chain ID — verified at thirdweb.com/codex
|
|
37
|
-
sonic: 146,
|
|
38
|
-
worldchain: 480,
|
|
39
|
-
sei: 1329, // Sei EVM (Pacific-1 mainnet)
|
|
40
|
-
xdc: 50,
|
|
41
|
-
hyperevm: 999, // HyperLiquid EVM mainnet chain ID
|
|
42
|
-
ink: 57073,
|
|
43
|
-
plume: 98866, // Plume mainnet chain ID
|
|
44
|
-
};
|
|
45
|
-
/** Default public RPC URLs — replace with paid provider in production */
|
|
46
|
-
export const BRIDGE_RPC_URLS = {
|
|
47
|
-
ethereum: 'https://cloudflare-eth.com',
|
|
48
|
-
avalanche: 'https://api.avax.network/ext/bc/C/rpc',
|
|
49
|
-
optimism: 'https://mainnet.optimism.io',
|
|
50
|
-
arbitrum: 'https://arb1.arbitrum.io/rpc',
|
|
51
|
-
base: 'https://mainnet.base.org',
|
|
52
|
-
polygon: 'https://polygon-rpc.com',
|
|
53
|
-
unichain: 'https://mainnet.unichain.org',
|
|
54
|
-
linea: 'https://rpc.linea.build',
|
|
55
|
-
codex: 'https://rpc.codex.xyz',
|
|
56
|
-
sonic: 'https://rpc.soniclabs.com',
|
|
57
|
-
worldchain: 'https://worldchain-mainnet.g.alchemy.com/public',
|
|
58
|
-
sei: 'https://evm-rpc.sei-apis.com',
|
|
59
|
-
xdc: 'https://rpc.xinfin.network',
|
|
60
|
-
hyperevm: 'https://rpc.hyperliquid.xyz/evm',
|
|
61
|
-
ink: 'https://rpc-gel.inkonchain.com',
|
|
62
|
-
plume: 'https://rpc.plume.org',
|
|
63
14
|
};
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* USDC contract addresses per chain — official Circle deployments.
|
|
67
|
-
* Source: https://developers.circle.com/stablecoins/usdc-contract-addresses
|
|
68
|
-
*/
|
|
15
|
+
/** USDC contract addresses per chain */
|
|
69
16
|
export const USDC_CONTRACT = {
|
|
17
|
+
base: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
|
|
70
18
|
ethereum: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
|
|
71
|
-
avalanche: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E',
|
|
72
19
|
optimism: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
|
|
73
20
|
arbitrum: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
74
|
-
base: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
|
|
75
|
-
polygon: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',
|
|
76
|
-
unichain: '0x078D782b760474a361dDA0AF3839290b0EF57AD6',
|
|
77
|
-
linea: '0x176211869cA2b568f2A7D4EE941E073a821EE1ff',
|
|
78
|
-
codex: '0xd996633a415985DBd7D6D12f4A4343E31f5037cf',
|
|
79
|
-
sonic: '0x29219dd400f2Bf60E5a23d13Be72B486D4038894',
|
|
80
|
-
worldchain: '0x79A02482A880bCe3F13E09da970dC34dB4cD24D1',
|
|
81
|
-
sei: '0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392',
|
|
82
|
-
xdc: '0xfA2958CB79b0491CC627c1557F441eF849Ca8eb1',
|
|
83
|
-
hyperevm: '0xb88339CB7199b77E23DB6E890353E22632Ba630f',
|
|
84
|
-
ink: '0x2D270e6886d130D724215A266106e6832161EAEd',
|
|
85
|
-
plume: '0x222365EF19F7947e5484218551B56bb3965Aa7aF',
|
|
86
21
|
};
|
|
87
22
|
/**
|
|
88
|
-
* CCTP V2 TokenMessengerV2 addresses
|
|
89
|
-
* Source: https://developers.circle.com/cctp/references/contract-addresses
|
|
90
|
-
* Verified: 0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d (all chains)
|
|
23
|
+
* CCTP V2 TokenMessengerV2 addresses (source chain — where burn happens).
|
|
91
24
|
*/
|
|
92
25
|
export const TOKEN_MESSENGER_V2 = {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
optimism: '
|
|
96
|
-
arbitrum: '
|
|
97
|
-
base: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
98
|
-
polygon: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
99
|
-
unichain: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
100
|
-
linea: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
101
|
-
codex: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
102
|
-
sonic: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
103
|
-
worldchain: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
104
|
-
sei: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
105
|
-
xdc: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
106
|
-
hyperevm: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
107
|
-
ink: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
108
|
-
plume: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
|
|
26
|
+
base: '0x8FD3bCdFd9987D7F3C86b67D2f25Dd4e82C80b2B',
|
|
27
|
+
ethereum: '0xbd3fa81b58ba92a82136038b25adec7066af3155',
|
|
28
|
+
optimism: '0x28Bc09B4EFdA1E348a97cA91F16CC43adFF2f50d',
|
|
29
|
+
arbitrum: '0x19330d10D9Cc8751218eaf51E8885D058642E08A',
|
|
109
30
|
};
|
|
110
|
-
/**
|
|
111
|
-
* CCTP V2 MessageTransmitterV2 addresses — same address on all EVM chains.
|
|
112
|
-
* Source: https://developers.circle.com/cctp/references/contract-addresses
|
|
113
|
-
* Verified: 0x81D40F21F12A8F0E3252Bccb954D722d4c464B64 (all chains)
|
|
114
|
-
*/
|
|
31
|
+
/** CCTP V2 MessageTransmitterV2 addresses (destination chain — where mint happens) */
|
|
115
32
|
export const MESSAGE_TRANSMITTER_V2 = {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
optimism: '
|
|
119
|
-
arbitrum: '
|
|
120
|
-
base: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
121
|
-
polygon: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
122
|
-
unichain: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
123
|
-
linea: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
124
|
-
codex: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
125
|
-
sonic: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
126
|
-
worldchain: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
127
|
-
sei: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
128
|
-
xdc: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
129
|
-
hyperevm: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
130
|
-
ink: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
131
|
-
plume: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
|
|
132
|
-
};
|
|
133
|
-
// ─── Solana CCTP V2 Program Addresses ───
|
|
134
|
-
/**
|
|
135
|
-
* Solana CCTP V2 program addresses (domain 5).
|
|
136
|
-
* Source: https://developers.circle.com/cctp/references/solana-programs
|
|
137
|
-
*/
|
|
138
|
-
export const SOLANA_CCTP_PROGRAMS = {
|
|
139
|
-
/** Handles incoming messages + mints USDC on Solana */
|
|
140
|
-
MESSAGE_TRANSMITTER_V2: 'CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC',
|
|
141
|
-
/** Handles burn + combined TokenMessenger + TokenMinter on Solana */
|
|
142
|
-
TOKEN_MESSENGER_MINTER_V2: 'CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe',
|
|
33
|
+
base: '0xE737e5cEBEEBa77EFE7EcB0cd46C6b9c1Ce1e8b3',
|
|
34
|
+
ethereum: '0xE737e5cEBEEBa77EFE7EcB0cd46C6b9c1Ce1e8b3',
|
|
35
|
+
optimism: '0xE737e5cEBEEBa77EFE7EcB0cd46C6b9c1Ce1e8b3',
|
|
36
|
+
arbitrum: '0xE737e5cEBEEBa77EFE7EcB0cd46C6b9c1Ce1e8b3',
|
|
143
37
|
};
|
|
144
|
-
/** Solana USDC mint address (mainnet) */
|
|
145
|
-
export const SOLANA_USDC_MINT = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
|
|
146
|
-
/** Solana CCTP domain ID */
|
|
147
|
-
export const SOLANA_CCTP_DOMAIN = 5;
|
|
148
|
-
// ─── Platform Fee ───
|
|
149
|
-
/**
|
|
150
|
-
* Platform bridge fee: 0.1% (10 basis points).
|
|
151
|
-
* Applied on source chain before bridging. Circle CCTP itself is feeless.
|
|
152
|
-
*/
|
|
153
|
-
export const PLATFORM_FEE_BPS = 10n; // 10 basis points = 0.1%
|
|
154
|
-
export const PLATFORM_FEE_DENOMINATOR = 10000n;
|
|
155
|
-
/**
|
|
156
|
-
* Calculate 0.1% platform fee for a given bridge amount.
|
|
157
|
-
* @param amount - USDC amount in base units (6 decimals)
|
|
158
|
-
*/
|
|
159
|
-
export function calcBridgeFee(amount) {
|
|
160
|
-
return (amount * PLATFORM_FEE_BPS) / PLATFORM_FEE_DENOMINATOR;
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Calculate the actual bridged amount after platform fee deduction.
|
|
164
|
-
*/
|
|
165
|
-
export function calcAmountAfterFee(amount) {
|
|
166
|
-
return amount - calcBridgeFee(amount);
|
|
167
|
-
}
|
|
168
|
-
// ─── CCTP V2 Finality Thresholds ───
|
|
169
38
|
/**
|
|
170
39
|
* CCTP V2 minFinalityThreshold values.
|
|
171
|
-
* - FAST (0): ~
|
|
172
|
-
* - FINALIZED (1000): Full on-chain finality.
|
|
40
|
+
* - FAST (0): ~12 seconds. Circle fast attestation.
|
|
41
|
+
* - FINALIZED (1000): Full on-chain finality.
|
|
173
42
|
*/
|
|
174
43
|
export const FINALITY_THRESHOLD = {
|
|
175
44
|
FAST: 0,
|
|
176
45
|
FINALIZED: 1000,
|
|
177
46
|
};
|
|
178
|
-
// ─── Circle Attestation API ───
|
|
179
47
|
/** Circle IRIS attestation API base URL */
|
|
180
48
|
export const CIRCLE_ATTESTATION_API = 'https://iris-api.circle.com';
|
|
181
49
|
/** Max attestation polling attempts before timeout */
|
|
182
50
|
export const MAX_ATTESTATION_POLLS = 60;
|
|
183
51
|
/** Polling interval for attestation (milliseconds) */
|
|
184
52
|
export const ATTESTATION_POLL_INTERVAL_MS = 5000;
|
|
185
|
-
/**
|
|
186
|
-
* Chains that support CCTP V2 Fast Transfer (8–20 second attestation).
|
|
187
|
-
* Chains NOT listed here use Standard Transfer (up to ~15 min on Ethereum).
|
|
188
|
-
* Source: https://developers.circle.com/cctp/concepts/supported-chains-and-domains
|
|
189
|
-
*/
|
|
190
|
-
export const FAST_TRANSFER_CHAINS = new Set([
|
|
191
|
-
'ethereum',
|
|
192
|
-
'optimism',
|
|
193
|
-
'arbitrum',
|
|
194
|
-
'base',
|
|
195
|
-
'unichain',
|
|
196
|
-
'linea',
|
|
197
|
-
'codex',
|
|
198
|
-
'worldchain',
|
|
199
|
-
'ink',
|
|
200
|
-
'plume',
|
|
201
|
-
'solana',
|
|
202
|
-
]);
|
|
203
|
-
/** Get estimated bridge time in seconds for a given source chain */
|
|
204
|
-
export function getEstimatedBridgeSeconds(chain) {
|
|
205
|
-
return FAST_TRANSFER_CHAINS.has(chain) ? 20 : 900; // 20s fast / 15min standard
|
|
206
|
-
}
|
|
207
53
|
//# sourceMappingURL=types.js.map
|
package/dist/bridge/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridge/types.ts"],"names":[],"mappings":"AAKA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAgC;IAC3D,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,IAAI,EAAE,4CAA4C;IAClD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,IAAI,EAAE,4CAA4C;IAClD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;CACvD,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAiC;IAClE,IAAI,EAAE,4CAA4C;IAClD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,4CAA4C;CACvD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,CAAC;IACP,SAAS,EAAE,IAAI;CACP,CAAC;AAEX,2CAA2C;AAC3C,MAAM,CAAC,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AACpE,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,sDAAsD;AACtD,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC"}
|