@avalabs/bridge-unified 0.0.0-hello-world-20230824162438 → 0.0.0-license-20240801163452

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/dist/index.d.cts CHANGED
@@ -1,36 +1,191 @@
1
- import * as _internal_bridge_shared from '@internal/bridge-shared';
2
- import { Environment, MaybePromise, NativeToken } from '@internal/bridge-shared';
1
+ import { Address } from 'viem';
3
2
 
3
+ type Chain = {
4
+ chainName: string;
5
+ chainId: string;
6
+ rpcUrl: string;
7
+ utilityAddresses?: {
8
+ multicall: Address;
9
+ };
10
+ networkToken: Asset;
11
+ };
12
+
13
+ declare enum Environment {
14
+ PROD = "production",
15
+ TEST = "test"
16
+ }
17
+
18
+ type RequestArguments = {
19
+ method: string;
20
+ params?: unknown[] | Record<string | number, unknown>;
21
+ };
22
+ type Provider = {
23
+ /**
24
+ * EIP-1193 compatible request method
25
+ * https://eips.ethereum.org/EIPS/eip-1193#request-1
26
+ */
27
+ request: (args: RequestArguments) => Promise<unknown>;
28
+ };
29
+
30
+ type Hex = `0x${string}`;
31
+ type TransactionRequest = {
32
+ type?: number | null;
33
+ data?: Hex | null;
34
+ from: Hex;
35
+ gas?: bigint;
36
+ nonce?: number;
37
+ to?: Hex | null;
38
+ value?: bigint;
39
+ gasPrice?: bigint | null;
40
+ gasLimit?: bigint | null;
41
+ maxPriorityFeePerGas?: bigint | null;
42
+ maxFeePerGas?: bigint | null;
43
+ };
44
+ type Dispatch = (signedTxHash: Hex) => Promise<Hex>;
45
+ type Signer = (data: TransactionRequest, dispatch: Dispatch) => Promise<Hex>;
46
+
47
+ declare enum ErrorCode {
48
+ BRIDGE_NOT_AVAILABLE = 5001,
49
+ INITIALIZATION_FAILED = 5002,
50
+ INVALID_PARAMS = 5003,
51
+ TIMEOUT = 5004,
52
+ TRANSACTION_REVERTED = 5005
53
+ }
54
+ declare enum ErrorReason {
55
+ UNKNOWN = "UNKNOWN",
56
+ CONFIG_NOT_AVAILABLE = "CONFIG_NOT_AVAILABLE",
57
+ INVALID_PARAMS = "INVALID_PARAMS",
58
+ IDENTICAL_CHAINS_PROVIDED = "IDENTICAL_CHAINS_PROVIDED",
59
+ INCORRECT_AMOUNT_PROVIDED = "INCORRECT_AMOUNT_PROVIDED",
60
+ INCORRECT_ADDRESS_PROVIDED = "INCORRECT_ADDRESS_PROVIDED",
61
+ CHAIN_NOT_SUPPORTED = "CHAIN_NOT_SUPPORTED",
62
+ ASSET_NOT_SUPPORTED = "ASSET_NOT_SUPPORTED",
63
+ CONFIRMATION_COUNT_UNKNOWN = "CONFIRMATION_COUNT_UNKNOWN"
64
+ }
65
+
66
+ type BridgeTransfer = {
67
+ type: BridgeType;
68
+ environment: Environment;
69
+ fromAddress: string;
70
+ toAddress: string;
71
+ amount: bigint;
72
+ amountDecimals: number;
73
+ symbol: string;
74
+ completedAt?: number;
75
+ errorCode?: ErrorCode;
76
+ bridgeFee: bigint;
77
+ sourceChain: Chain;
78
+ sourceStartedAt: number;
79
+ sourceTxHash: string;
80
+ sourceNetworkFee?: bigint;
81
+ sourceConfirmationCount: number;
82
+ requiredSourceConfirmationCount: number;
83
+ targetChain: Chain;
84
+ targetStartedAt?: number;
85
+ targetTxHash?: string;
86
+ targetNetworkFee?: bigint;
87
+ targetConfirmationCount: number;
88
+ requiredTargetConfirmationCount: number;
89
+ startBlockNumber?: bigint;
90
+ metadata?: Record<string, unknown>;
91
+ };
92
+
93
+ declare enum BridgeType {
94
+ CCTP = "cctp"
95
+ }
96
+ type FeeParams = {
97
+ asset: BridgeAsset;
98
+ amount: bigint;
99
+ sourceChain: Chain;
100
+ targetChain: Chain;
101
+ provider?: Provider;
102
+ };
103
+ declare enum BridgeSignatureReason {
104
+ AllowanceApproval = "allowance-approval",
105
+ TokensTransfer = "tokens-transfer"
106
+ }
107
+ type BridgeStepDetails = {
108
+ currentSignature: number;
109
+ requiredSignatures: number;
110
+ currentSignatureReason: BridgeSignatureReason;
111
+ };
112
+ type TransferParams = {
113
+ asset: BridgeAsset;
114
+ amount: bigint;
115
+ fromAddress: string;
116
+ toAddress?: string;
117
+ sourceChain: Chain;
118
+ targetChain: Chain;
119
+ sourceProvider?: Provider;
120
+ targetProvider?: Provider;
121
+ onStepChange?: (stepDetails: BridgeStepDetails) => void;
122
+ sign?: Signer;
123
+ };
124
+ type TrackingParams = {
125
+ bridgeTransfer: BridgeTransfer;
126
+ sourceProvider?: Provider;
127
+ targetProvider?: Provider;
128
+ updateListener: (transfer: BridgeTransfer) => void;
129
+ };
130
+ type BridgeService = {
131
+ type: BridgeType;
132
+ estimateGas: (params: TransferParams) => Promise<bigint>;
133
+ getAssets: () => Promise<ChainAssetMap>;
134
+ getFees: (params: FeeParams) => Promise<AssetFeeMap>;
135
+ transferAsset: (params: TransferParams) => Promise<BridgeTransfer>;
136
+ trackTransfer: (transfer: TrackingParams) => {
137
+ cancel: () => void;
138
+ result: Promise<BridgeTransfer>;
139
+ };
140
+ };
141
+ type BridgeServiceFactory = (environment: Environment) => Promise<BridgeService>;
142
+
143
+ declare enum TokenType {
144
+ NATIVE = "native",
145
+ ERC20 = "erc20"
146
+ }
147
+ type Asset = {
148
+ type: TokenType;
149
+ address?: Address;
150
+ name: string;
151
+ symbol: string;
152
+ decimals: number;
153
+ };
154
+ type DestinationInfo = Record<string, BridgeType[]>;
155
+ type BridgeAsset = Asset & {
156
+ destinations: DestinationInfo;
157
+ };
158
+ type ChainAssetMap = Record<string, BridgeAsset[]>;
159
+ type AssetFeeMap = Record<Address, bigint>;
160
+
161
+ type BridgeServicesMap = Map<BridgeType, BridgeService>;
4
162
  type BridgeServiceConfig = {
5
- environment: `${Environment}`;
6
- getChainNativeAsset: ({ evmChainId }: {
7
- evmChainId: string;
8
- }) => MaybePromise<NativeToken>;
9
- getChainErc20Asset: ({ evmChainId, address }: {
10
- evmChainId: string;
11
- address: string;
12
- }) => MaybePromise<NativeToken>;
13
- };
14
- declare const createUnifiedBridgeService: (_options: BridgeServiceConfig) => {
15
- planBridgeJourney: (_params: {
16
- fromChainId: string;
17
- toChainId: string;
18
- fromToken: _internal_bridge_shared.Token;
19
- }) => {
20
- fromChainId: string;
21
- toChainId: string;
22
- bridgePlatform: _internal_bridge_shared.BridgePlatform;
23
- fromToken: _internal_bridge_shared.Token;
24
- toToken: _internal_bridge_shared.Token;
25
- }[];
26
- executeBridgeJourneyStep: (_params: {
27
- stepIndex: number;
28
- journey: unknown;
29
- }) => Promise<never>;
30
- checkForPendingBridgeJourney: ({ address: _address, chainIds: _chainIds, }: {
31
- address: `0x${string}`;
32
- chainIds: string[];
33
- }) => Promise<never>;
34
- };
35
-
36
- export { BridgeServiceConfig, createUnifiedBridgeService };
163
+ environment: Environment;
164
+ enabledBridgeServices: BridgeServicesMap;
165
+ };
166
+
167
+ declare const createUnifiedBridgeService: ({ environment, enabledBridgeServices }: BridgeServiceConfig) => {
168
+ environment: Environment;
169
+ getAssets: () => Promise<ChainAssetMap>;
170
+ getFees: (params: FeeParams) => Promise<AssetFeeMap>;
171
+ estimateGas: (params: TransferParams) => Promise<bigint>;
172
+ canTransferAsset: (asset: BridgeAsset, targetChainId: string) => boolean;
173
+ transferAsset: (params: TransferParams) => Promise<BridgeTransfer>;
174
+ trackTransfer: (params: TrackingParams) => {
175
+ cancel: () => void;
176
+ result: Promise<BridgeTransfer>;
177
+ };
178
+ };
179
+
180
+ type Caip2ChainId = {
181
+ namespace: string;
182
+ reference: string;
183
+ };
184
+ declare const _default: {
185
+ toJSON: (identifier: string) => Caip2ChainId;
186
+ toString: ({ namespace, reference }: Caip2ChainId) => string;
187
+ };
188
+
189
+ declare const getEnabledBridgeServices: (environment: Environment, disabledBridgeTypes: BridgeType[]) => Promise<BridgeServicesMap>;
190
+
191
+ export { Asset, AssetFeeMap, BridgeAsset, BridgeService, BridgeServiceConfig, BridgeServiceFactory, BridgeServicesMap, BridgeSignatureReason, BridgeStepDetails, BridgeTransfer, BridgeType, Chain, ChainAssetMap, DestinationInfo, Dispatch, Environment, ErrorCode, ErrorReason, FeeParams, Hex, Provider, Signer, TokenType, TrackingParams, TransactionRequest, TransferParams, _default as caip2, createUnifiedBridgeService, getEnabledBridgeServices };
package/dist/index.d.ts CHANGED
@@ -1,36 +1,191 @@
1
- import * as _internal_bridge_shared from '@internal/bridge-shared';
2
- import { Environment, MaybePromise, NativeToken } from '@internal/bridge-shared';
1
+ import { Address } from 'viem';
3
2
 
3
+ type Chain = {
4
+ chainName: string;
5
+ chainId: string;
6
+ rpcUrl: string;
7
+ utilityAddresses?: {
8
+ multicall: Address;
9
+ };
10
+ networkToken: Asset;
11
+ };
12
+
13
+ declare enum Environment {
14
+ PROD = "production",
15
+ TEST = "test"
16
+ }
17
+
18
+ type RequestArguments = {
19
+ method: string;
20
+ params?: unknown[] | Record<string | number, unknown>;
21
+ };
22
+ type Provider = {
23
+ /**
24
+ * EIP-1193 compatible request method
25
+ * https://eips.ethereum.org/EIPS/eip-1193#request-1
26
+ */
27
+ request: (args: RequestArguments) => Promise<unknown>;
28
+ };
29
+
30
+ type Hex = `0x${string}`;
31
+ type TransactionRequest = {
32
+ type?: number | null;
33
+ data?: Hex | null;
34
+ from: Hex;
35
+ gas?: bigint;
36
+ nonce?: number;
37
+ to?: Hex | null;
38
+ value?: bigint;
39
+ gasPrice?: bigint | null;
40
+ gasLimit?: bigint | null;
41
+ maxPriorityFeePerGas?: bigint | null;
42
+ maxFeePerGas?: bigint | null;
43
+ };
44
+ type Dispatch = (signedTxHash: Hex) => Promise<Hex>;
45
+ type Signer = (data: TransactionRequest, dispatch: Dispatch) => Promise<Hex>;
46
+
47
+ declare enum ErrorCode {
48
+ BRIDGE_NOT_AVAILABLE = 5001,
49
+ INITIALIZATION_FAILED = 5002,
50
+ INVALID_PARAMS = 5003,
51
+ TIMEOUT = 5004,
52
+ TRANSACTION_REVERTED = 5005
53
+ }
54
+ declare enum ErrorReason {
55
+ UNKNOWN = "UNKNOWN",
56
+ CONFIG_NOT_AVAILABLE = "CONFIG_NOT_AVAILABLE",
57
+ INVALID_PARAMS = "INVALID_PARAMS",
58
+ IDENTICAL_CHAINS_PROVIDED = "IDENTICAL_CHAINS_PROVIDED",
59
+ INCORRECT_AMOUNT_PROVIDED = "INCORRECT_AMOUNT_PROVIDED",
60
+ INCORRECT_ADDRESS_PROVIDED = "INCORRECT_ADDRESS_PROVIDED",
61
+ CHAIN_NOT_SUPPORTED = "CHAIN_NOT_SUPPORTED",
62
+ ASSET_NOT_SUPPORTED = "ASSET_NOT_SUPPORTED",
63
+ CONFIRMATION_COUNT_UNKNOWN = "CONFIRMATION_COUNT_UNKNOWN"
64
+ }
65
+
66
+ type BridgeTransfer = {
67
+ type: BridgeType;
68
+ environment: Environment;
69
+ fromAddress: string;
70
+ toAddress: string;
71
+ amount: bigint;
72
+ amountDecimals: number;
73
+ symbol: string;
74
+ completedAt?: number;
75
+ errorCode?: ErrorCode;
76
+ bridgeFee: bigint;
77
+ sourceChain: Chain;
78
+ sourceStartedAt: number;
79
+ sourceTxHash: string;
80
+ sourceNetworkFee?: bigint;
81
+ sourceConfirmationCount: number;
82
+ requiredSourceConfirmationCount: number;
83
+ targetChain: Chain;
84
+ targetStartedAt?: number;
85
+ targetTxHash?: string;
86
+ targetNetworkFee?: bigint;
87
+ targetConfirmationCount: number;
88
+ requiredTargetConfirmationCount: number;
89
+ startBlockNumber?: bigint;
90
+ metadata?: Record<string, unknown>;
91
+ };
92
+
93
+ declare enum BridgeType {
94
+ CCTP = "cctp"
95
+ }
96
+ type FeeParams = {
97
+ asset: BridgeAsset;
98
+ amount: bigint;
99
+ sourceChain: Chain;
100
+ targetChain: Chain;
101
+ provider?: Provider;
102
+ };
103
+ declare enum BridgeSignatureReason {
104
+ AllowanceApproval = "allowance-approval",
105
+ TokensTransfer = "tokens-transfer"
106
+ }
107
+ type BridgeStepDetails = {
108
+ currentSignature: number;
109
+ requiredSignatures: number;
110
+ currentSignatureReason: BridgeSignatureReason;
111
+ };
112
+ type TransferParams = {
113
+ asset: BridgeAsset;
114
+ amount: bigint;
115
+ fromAddress: string;
116
+ toAddress?: string;
117
+ sourceChain: Chain;
118
+ targetChain: Chain;
119
+ sourceProvider?: Provider;
120
+ targetProvider?: Provider;
121
+ onStepChange?: (stepDetails: BridgeStepDetails) => void;
122
+ sign?: Signer;
123
+ };
124
+ type TrackingParams = {
125
+ bridgeTransfer: BridgeTransfer;
126
+ sourceProvider?: Provider;
127
+ targetProvider?: Provider;
128
+ updateListener: (transfer: BridgeTransfer) => void;
129
+ };
130
+ type BridgeService = {
131
+ type: BridgeType;
132
+ estimateGas: (params: TransferParams) => Promise<bigint>;
133
+ getAssets: () => Promise<ChainAssetMap>;
134
+ getFees: (params: FeeParams) => Promise<AssetFeeMap>;
135
+ transferAsset: (params: TransferParams) => Promise<BridgeTransfer>;
136
+ trackTransfer: (transfer: TrackingParams) => {
137
+ cancel: () => void;
138
+ result: Promise<BridgeTransfer>;
139
+ };
140
+ };
141
+ type BridgeServiceFactory = (environment: Environment) => Promise<BridgeService>;
142
+
143
+ declare enum TokenType {
144
+ NATIVE = "native",
145
+ ERC20 = "erc20"
146
+ }
147
+ type Asset = {
148
+ type: TokenType;
149
+ address?: Address;
150
+ name: string;
151
+ symbol: string;
152
+ decimals: number;
153
+ };
154
+ type DestinationInfo = Record<string, BridgeType[]>;
155
+ type BridgeAsset = Asset & {
156
+ destinations: DestinationInfo;
157
+ };
158
+ type ChainAssetMap = Record<string, BridgeAsset[]>;
159
+ type AssetFeeMap = Record<Address, bigint>;
160
+
161
+ type BridgeServicesMap = Map<BridgeType, BridgeService>;
4
162
  type BridgeServiceConfig = {
5
- environment: `${Environment}`;
6
- getChainNativeAsset: ({ evmChainId }: {
7
- evmChainId: string;
8
- }) => MaybePromise<NativeToken>;
9
- getChainErc20Asset: ({ evmChainId, address }: {
10
- evmChainId: string;
11
- address: string;
12
- }) => MaybePromise<NativeToken>;
13
- };
14
- declare const createUnifiedBridgeService: (_options: BridgeServiceConfig) => {
15
- planBridgeJourney: (_params: {
16
- fromChainId: string;
17
- toChainId: string;
18
- fromToken: _internal_bridge_shared.Token;
19
- }) => {
20
- fromChainId: string;
21
- toChainId: string;
22
- bridgePlatform: _internal_bridge_shared.BridgePlatform;
23
- fromToken: _internal_bridge_shared.Token;
24
- toToken: _internal_bridge_shared.Token;
25
- }[];
26
- executeBridgeJourneyStep: (_params: {
27
- stepIndex: number;
28
- journey: unknown;
29
- }) => Promise<never>;
30
- checkForPendingBridgeJourney: ({ address: _address, chainIds: _chainIds, }: {
31
- address: `0x${string}`;
32
- chainIds: string[];
33
- }) => Promise<never>;
34
- };
35
-
36
- export { BridgeServiceConfig, createUnifiedBridgeService };
163
+ environment: Environment;
164
+ enabledBridgeServices: BridgeServicesMap;
165
+ };
166
+
167
+ declare const createUnifiedBridgeService: ({ environment, enabledBridgeServices }: BridgeServiceConfig) => {
168
+ environment: Environment;
169
+ getAssets: () => Promise<ChainAssetMap>;
170
+ getFees: (params: FeeParams) => Promise<AssetFeeMap>;
171
+ estimateGas: (params: TransferParams) => Promise<bigint>;
172
+ canTransferAsset: (asset: BridgeAsset, targetChainId: string) => boolean;
173
+ transferAsset: (params: TransferParams) => Promise<BridgeTransfer>;
174
+ trackTransfer: (params: TrackingParams) => {
175
+ cancel: () => void;
176
+ result: Promise<BridgeTransfer>;
177
+ };
178
+ };
179
+
180
+ type Caip2ChainId = {
181
+ namespace: string;
182
+ reference: string;
183
+ };
184
+ declare const _default: {
185
+ toJSON: (identifier: string) => Caip2ChainId;
186
+ toString: ({ namespace, reference }: Caip2ChainId) => string;
187
+ };
188
+
189
+ declare const getEnabledBridgeServices: (environment: Environment, disabledBridgeTypes: BridgeType[]) => Promise<BridgeServicesMap>;
190
+
191
+ export { Asset, AssetFeeMap, BridgeAsset, BridgeService, BridgeServiceConfig, BridgeServiceFactory, BridgeServicesMap, BridgeSignatureReason, BridgeStepDetails, BridgeTransfer, BridgeType, Chain, ChainAssetMap, DestinationInfo, Dispatch, Environment, ErrorCode, ErrorReason, FeeParams, Hex, Provider, Signer, TokenType, TrackingParams, TransactionRequest, TransferParams, _default as caip2, createUnifiedBridgeService, getEnabledBridgeServices };
package/dist/index.js CHANGED
@@ -1,5 +1,8 @@
1
- var o=class extends Error{constructor(s,a){super(s);this.code=a;this.code=a;}},e=class extends o{constructor(t="Not implemented"){super(t,5001),this.name="NotImplementedError";}};var n=async r=>{throw new e};var i=r=>{throw new e};var m=async({address:r,chainIds:t})=>{throw new e};var O=r=>({planBridgeJourney:i,executeBridgeJourneyStep:n,checkForPendingBridgeJourney:m});
1
+ import { isAddress, custom, http, createWalletClient, publicActions, decodeEventLog, encodeFunctionData } from 'viem';
2
+ import { compact, mergeWith, isArray } from 'lodash';
2
3
 
3
- export { O as createUnifiedBridgeService };
4
+ var H=(r=>(r.NATIVE="native",r.ERC20="erc20",r))(H||{});var E=(e=>(e.CCTP="cctp",e))(E||{}),G=(r=>(r.AllowanceApproval="allowance-approval",r.TokensTransfer="tokens-transfer",r))(G||{});var K=(r=>(r.PROD="production",r.TEST="test",r))(K||{});var B=(t=>(t[t.BRIDGE_NOT_AVAILABLE=5001]="BRIDGE_NOT_AVAILABLE",t[t.INITIALIZATION_FAILED=5002]="INITIALIZATION_FAILED",t[t.INVALID_PARAMS=5003]="INVALID_PARAMS",t[t.TIMEOUT=5004]="TIMEOUT",t[t.TRANSACTION_REVERTED=5005]="TRANSACTION_REVERTED",t))(B||{}),w=(a=>(a.UNKNOWN="UNKNOWN",a.CONFIG_NOT_AVAILABLE="CONFIG_NOT_AVAILABLE",a.INVALID_PARAMS="INVALID_PARAMS",a.IDENTICAL_CHAINS_PROVIDED="IDENTICAL_CHAINS_PROVIDED",a.INCORRECT_AMOUNT_PROVIDED="INCORRECT_AMOUNT_PROVIDED",a.INCORRECT_ADDRESS_PROVIDED="INCORRECT_ADDRESS_PROVIDED",a.CHAIN_NOT_SUPPORTED="CHAIN_NOT_SUPPORTED",a.ASSET_NOT_SUPPORTED="ASSET_NOT_SUPPORTED",a.CONFIRMATION_COUNT_UNKNOWN="CONFIRMATION_COUNT_UNKNOWN",a))(w||{});async function $(n){let e=n.map(r=>r.chainId);return n.reduce((r,s)=>(r[s.chainId]=s.tokens.map(i=>({...i,type:"erc20",destinations:e.reduce((t,o)=>(s.chainId!==o&&(t[o]||(t[o]=[]),t[o]?.push("cctp")),t),{})})),r),{})}var ue="^[-a-z0-9]{3,8}$",de="^[-_a-zA-Z0-9]{1,50}$",q=":",me=n=>{let[e,r]=n.split(q);if(!e||!r)throw new Error("Invalid identifier provided.");if(!new RegExp(ue).test(e))throw new Error("Invalid namespace provided.");if(!new RegExp(de).test(r))throw new Error("Invalid reference provided.");return {namespace:e,reference:r}},ce=({namespace:n,reference:e})=>`${n}${q}${e}`,M={toJSON:me,toString:ce};var ge=n=>{let{reference:e}=M.toJSON(n.chainId);return {id:Number(e),name:n.chainName,nativeCurrency:{decimals:n.networkToken.decimals,symbol:n.networkToken.symbol,name:n.networkToken.name},network:n.chainName,rpcUrls:{default:{http:[n.rpcUrl]},public:{http:[n.rpcUrl]}},...n.utilityAddresses?.multicall&&{contracts:{multicall3:{address:n.utilityAddresses.multicall}}}}},b=({chain:n,provider:e})=>{let r=ge(n),s=e?custom(e):http(n.rpcUrl,{batch:!0,retryCount:0});return createWalletClient({chain:r,transport:s}).extend(publicActions)};var v=[{inputs:[{internalType:"address",name:"circleTokenMessenger_",type:"address"},{internalType:"address",name:"burnToken_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyAdmin",type:"error"},{inputs:[],name:"AlreadyFeeCollector",type:"error"},{inputs:[],name:"AlreadySupportedBurnToken",type:"error"},{inputs:[],name:"AmountLessThanFee",type:"error"},{inputs:[],name:"BalanceNotIncreased",type:"error"},{inputs:[],name:"CannotRemoveLastAdmin",type:"error"},{inputs:[],name:"FeePercentageGreaterThanMax",type:"error"},{inputs:[],name:"InvalidAdminAddress",type:"error"},{inputs:[],name:"InvalidFeeCollector",type:"error"},{inputs:[],name:"InvalidMintRecipientAddress",type:"error"},{inputs:[],name:"InvalidTokenAddress",type:"error"},{inputs:[],name:"InvalidTokenMessengerAddress",type:"error"},{inputs:[],name:"MaxFeeLessThanMinFee",type:"error"},{inputs:[],name:"NotAdmin",type:"error"},{inputs:[],name:"NotFeeCollector",type:"error"},{inputs:[],name:"UnSupportedBurnToken",type:"error"},{inputs:[],name:"UnsupportedDomain",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"admin",type:"address"}],name:"AdminRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"}],name:"BurnTokenAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"}],name:"BurnTokenRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"feeCollector",type:"address"}],name:"FeeCollectorAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"feeCollector",type:"address"}],name:"FeeCollectorRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"domain",type:"uint32"},{components:[{internalType:"uint256",name:"maxFee",type:"uint256"},{internalType:"uint256",name:"minFee",type:"uint256"},{internalType:"uint32",name:"feePercentage",type:"uint32"},{internalType:"uint256",name:"txnFee",type:"uint256"},{internalType:"bool",name:"supported",type:"bool"}],indexed:!1,internalType:"struct FeeCalculator.FeeConfiguration",name:"feeConfiguration",type:"tuple"}],name:"FeeConfigurationUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"address",name:"burnToken",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"address",name:"mintRecipient",type:"address"},{indexed:!1,internalType:"uint32",name:"destinationDomain",type:"uint32"},{indexed:!1,internalType:"uint256",name:"totalFee",type:"uint256"}],name:"TransferTokens",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"feeCollector",type:"address"}],name:"addFeeCollector",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"addSupportedBurnToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint32",name:"destinationDomain",type:"uint32"}],name:"calculateFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"circleTokenMessenger",outputs:[{internalType:"contract ICircleTokenMessenger",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"circleTokenMessengerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"collectFees",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"getFeeAmounts",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"}],name:"getFeeConfiguration",outputs:[{components:[{internalType:"uint256",name:"maxFee",type:"uint256"},{internalType:"uint256",name:"minFee",type:"uint256"},{internalType:"uint32",name:"feePercentage",type:"uint32"},{internalType:"uint256",name:"txnFee",type:"uint256"},{internalType:"bool",name:"supported",type:"bool"}],internalType:"struct FeeCalculator.FeeConfiguration",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"}],name:"getFeePercentage",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"}],name:"getMaxFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"}],name:"getMinFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"}],name:"getTxnFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"isFeeCollector",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"isSupportedBurnToken",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"}],name:"isSupportedDomain",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"removeAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"feeCollector",type:"address"}],name:"removeFeeCollector",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"removeSupportedBurnToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"},{components:[{internalType:"uint256",name:"maxFee",type:"uint256"},{internalType:"uint256",name:"minFee",type:"uint256"},{internalType:"uint32",name:"feePercentage",type:"uint32"},{internalType:"uint256",name:"txnFee",type:"uint256"},{internalType:"bool",name:"supported",type:"bool"}],internalType:"struct FeeCalculator.FeeConfiguration",name:"feeConfiguration",type:"tuple"}],name:"setFeeConfiguration",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"supportedBurnTokens",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint32",name:"destinationDomain",type:"uint32"},{internalType:"address",name:"mintRecipient",type:"address"},{internalType:"address",name:"burnToken",type:"address"}],name:"transferTokens",outputs:[{internalType:"uint64",name:"nonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"}];var x=class extends Error{constructor(r,s,i){super(r);this.code=s;this.details=i;}};var k=class extends x{constructor(e="UNKNOWN",r){super(e,5001,r),this.name="BridgeUnavailableError";}};var S=class extends x{constructor(e="UNKNOWN",r){super(e,5002,r),this.name="BridgeInitializationError";}};var T=class extends x{constructor(e="INVALID_PARAMS",r){super(e,5003,r),this.name="InvalidParamsError";}};var R=({sourceChain:n,targetChain:e,amount:r,asset:s},i)=>{if(n.chainId===e.chainId)throw new T("IDENTICAL_CHAINS_PROVIDED");if(r<=0n)throw new T("INCORRECT_AMOUNT_PROVIDED","Amount must be greater than zero");let t=i.find(a=>a.chainId===n.chainId);if(!t)throw new T("CHAIN_NOT_SUPPORTED",`Not supported on source chain "${n.chainId}"`);let o=i.find(a=>a.chainId===e.chainId);if(!o)throw new T("CHAIN_NOT_SUPPORTED",`Not supported on target chain "${e.chainId}"`);let d=t.tokens.find(a=>a.symbol===s.symbol),u=o.tokens.find(a=>a.symbol===s.symbol);if(!d||!u)throw new T("ASSET_NOT_SUPPORTED");return {sourceChainData:t,targetChainData:o,burnToken:d,mintToken:u}};async function F(n,e){let{sourceChain:r,targetChain:s,asset:i,amount:t,provider:o}=e,{sourceChainData:d,targetChainData:u,burnToken:a}=R({sourceChain:r,targetChain:s,asset:i,amount:t},n),m=await b({chain:r,provider:o}).readContract({address:d.tokenRouterAddress,abi:v,functionName:"calculateFee",args:[t,u.domain]});return {[a.address]:m}}var N=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}];function j({amount:n,burnToken:e,targetChainData:r,toAddress:s}){return encodeFunctionData({abi:v,functionName:"transferTokens",args:[n,r.domain,s,e.address]})}function X({amount:n,sourceChainData:e}){return encodeFunctionData({abi:N,functionName:"approve",args:[e.tokenRouterAddress,n]})}var Ae=async(n,e)=>{let{sourceChain:r,targetChain:s,asset:i,amount:t,fromAddress:o,toAddress:d,sourceProvider:u,onStepChange:a,sign:p}=e,m=d??o;if(!isAddress(o)||!isAddress(m))throw new T("INCORRECT_ADDRESS_PROVIDED");let{sourceChainData:c,targetChainData:y,burnToken:l}=R({sourceChain:r,targetChain:s,asset:i,amount:t},n),f=b({chain:r,provider:u}),C=await f.readContract({address:l.address,abi:N,functionName:"allowance",args:[o,c.tokenRouterAddress]})<t,_=C?2:1;if(C)if(a?.({currentSignature:1,currentSignatureReason:"allowance-approval",requiredSignatures:_}),p){let g=X({amount:t,sourceChainData:c}),I=await p({from:o,to:l.address,data:g},pe=>f.sendRawTransaction({serializedTransaction:pe}));await f.waitForTransactionReceipt({hash:I,pollingInterval:1e3});}else {let{request:g}=await f.simulateContract({account:o,address:l.address,abi:N,functionName:"approve",args:[c.tokenRouterAddress,t]}),I=await f.writeContract(g);await f.waitForTransactionReceipt({hash:I,pollingInterval:1e3});}if(a?.({currentSignature:C?2:1,currentSignatureReason:"tokens-transfer",requiredSignatures:_}),p){let g=j({amount:t,burnToken:l,targetChainData:y,toAddress:m});return p({from:o,to:c.tokenRouterAddress,data:g},I=>f.sendRawTransaction({serializedTransaction:I}))}let{request:P}=await f.simulateContract({account:o,address:c.tokenRouterAddress,abi:v,functionName:"transferTokens",args:[t,y.domain,m,l.address]});return f.writeContract(P)},Ce=async n=>{try{return await n.getBlockNumber()}catch{return}};async function J(n,e,r){let{minimumConfirmations:s}=n.find(m=>m.chainId===e.sourceChain.chainId)??{},{minimumConfirmations:i}=n.find(m=>m.chainId===e.targetChain.chainId)??{};if(!s||!i)throw new T("CONFIRMATION_COUNT_UNKNOWN");let t=await F(n,{...e,provider:e.sourceProvider}),o=(e.asset.address&&t[e.asset.address])??0n,d=await Ae(n,e),u=Date.now(),a=b({chain:e.targetChain,provider:e.targetProvider}),p=await Ce(a);return {type:"cctp",environment:r,fromAddress:e.fromAddress,toAddress:e.toAddress??e.fromAddress,amount:e.amount,amountDecimals:e.asset.decimals,symbol:e.asset.symbol,bridgeFee:o,sourceChain:e.sourceChain,sourceStartedAt:u,sourceTxHash:d,sourceConfirmationCount:0,requiredSourceConfirmationCount:s,targetChain:e.targetChain,targetConfirmationCount:0,requiredTargetConfirmationCount:i,startBlockNumber:p}}var O=(n,e)=>n.gasPrice&&BigInt(n.gasPrice*e.gasUsed);var L=async n=>new Promise(e=>{setTimeout(e,n);});var U=({promise:n,delay:e,startAfter:r})=>{let s=!1,i=!1,t=0,o,d,u=m=>{o&&s&&(s=!1,o(m));},a=()=>{i=!0,d&&s&&(s=!1,d("cancelled"));};return {result:new Promise((m,c)=>{s=!0,o=m,d=c;let y=async()=>{if(!(!s||i)){try{if(await n(u),!s||i)return;await L(e);}catch(l){console.error(l.message),t+=1,await L(2**t*e);}await y();}};r?setTimeout(y,r):y();}),cancel:a}};var be={test:"https://raw.githubusercontent.com/ava-labs/avalanche-bridge-resources/main/cctp/cctp_config.test.json",production:"https://raw.githubusercontent.com/ava-labs/avalanche-bridge-resources/main/cctp/cctp_config.json"},Z=async n=>{try{return (await(await fetch(be[n])).json()).map(s=>({...s,chainId:`eip155:${s.chainId}`}))}catch(e){throw new S("CONFIG_NOT_AVAILABLE",`Error while fetching CCTP config: ${e.message}`)}},V=n=>{switch(n){case"eip155:43114":case"eip155:43113":return 1e3;default:return 2e4}};var ee=1e3*60*60*3,Q=1024n,te=5e3,A=(n,e,r)=>{Object.assign(n,Object.fromEntries(Object.entries(e).filter(([,s])=>s!==void 0))),r({...n});},he=async(n,e)=>{let{sourceProvider:r,targetProvider:s,updateListener:i,bridgeTransfer:t}=e,o=b({chain:t.sourceChain,provider:r}),d=n.find(c=>c.chainId===t.sourceChain.chainId),u=b({chain:t.targetChain,provider:s}),a=n.find(c=>c.chainId===t.targetChain.chainId),p={...t};if(!d||!a)throw new T("CHAIN_NOT_SUPPORTED");return U({promise:async c=>{if(p.completedAt||p.metadata?.nonce)return c(p);if(p.sourceStartedAt+ee<=Date.now())return A(p,{completedAt:Date.now(),errorCode:5004},i),c(p);let y=await o.getTransactionReceipt({hash:p.sourceTxHash});if(!p.sourceNetworkFee){let g=await o.getTransaction({hash:p.sourceTxHash}),I=O(g,y);I&&A(p,{sourceNetworkFee:I},i);}if(y.status==="reverted")return A(p,{completedAt:Date.now(),errorCode:5005},i),c(p);let l=await o.getTransactionConfirmations({hash:p.sourceTxHash}),f=l>p.sourceConfirmationCount,h=l>=p.requiredSourceConfirmationCount;if(f){let g={};g.sourceConfirmationCount=Number(l),h||(g.startBlockNumber=await u.getBlockNumber()),A(p,g,i);}if(!h)return;p.startBlockNumber||A(p,{startBlockNumber:await u.getBlockNumber()},i);let C=y.logs.find(g=>g.address.toLowerCase()===d.tokenRouterAddress.toLowerCase()?decodeEventLog({abi:v,...g}).eventName==="TransferTokens":!1);if(!C)throw new T("INVALID_PARAMS",`unable to find a TransferTokens event in source transaction "${p.sourceTxHash}"`);let P=decodeEventLog({abi:v,eventName:"TransferTokens",...C}).args.nonce;return A(p,{targetStartedAt:Date.now(),metadata:{nonce:P}},i),c(p)},delay:V(d.chainId),startAfter:te})},Ie=async(n,e)=>{let{targetProvider:r,updateListener:s,bridgeTransfer:i}=e,t={...i};if(!i.completedAt&&!i.metadata?.nonce)throw new T("INVALID_PARAMS","nonce is missing");if(!i.startBlockNumber)throw new T("INVALID_PARAMS","startBlockNumber is missing");let o=b({chain:i.targetChain,provider:r}),d=n.find(a=>a.chainId===i.targetChain.chainId);if(!d)throw new T("INVALID_PARAMS",`unknown target chain "${i.targetChain.chainId}"`);return U({promise:async a=>{if(t.completedAt)return a(t);if(!t.startBlockNumber)return A(t,{completedAt:Date.now(),errorCode:5003},s),a(t);if(t.sourceStartedAt+ee<=Date.now())return A(t,{completedAt:Date.now(),errorCode:5004},s),a(t);if(!t.targetTxHash){let l=await o.getBlockNumber(),f=t.startBlockNumber-Q,h=f>=0n?f:"earliest",C=t.startBlockNumber+Q,_=C<l?C:"latest",P=await o.getLogs({address:d.messageTransmitterAddress,event:{name:"MessageReceived",type:"event",inputs:[{indexed:!0,internalType:"address",name:"caller",type:"address"},{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!0,internalType:"uint64",name:"nonce",type:"uint64"},{indexed:!1,internalType:"bytes32",name:"sender",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"messageBody",type:"bytes"}]},args:{nonce:t.metadata?.nonce},fromBlock:h,toBlock:_});if(P[0]?.transactionHash)A(t,{targetTxHash:P[0].transactionHash},s);else {A(t,{startBlockNumber:l},s);return}}let p=await o.getTransactionReceipt({hash:t.targetTxHash});if(!t.targetNetworkFee){let l=await o.getTransaction({hash:t.targetTxHash}),f=O(l,p);f&&A(t,{targetNetworkFee:f},s);}if(p.status==="reverted")return A(t,{completedAt:Date.now(),errorCode:5005},s),a(t);let m=await o.getTransactionConfirmations({hash:t.targetTxHash}),c=m>t.targetConfirmationCount,y=m>=t.requiredTargetConfirmationCount;if(c&&A(t,{targetConfirmationCount:Number(m)},s),!!y)return A(t,{completedAt:Date.now()},s),a(t)},delay:V(d.chainId),startAfter:te})};function ne(n,e){let r,s=()=>{r?.();};return {result:(async()=>{let{sourceProvider:t,targetProvider:o,updateListener:d,bridgeTransfer:u}=e,{result:a,cancel:p}=await he(n,{sourceProvider:t,targetProvider:o,updateListener:d,bridgeTransfer:u});r=p;let m=await a,{result:c,cancel:y}=await Ie(n,{sourceProvider:t,targetProvider:o,updateListener:d,bridgeTransfer:m});return r=y,c})(),cancel:s}}var we=60000n,ae=175000n,ve=60000n,se=215000n;async function ie(n,e){let{sourceChain:r,targetChain:s,asset:i,amount:t,fromAddress:o,toAddress:d,sourceProvider:u}=e,a=d??o;if(!isAddress(o)||!isAddress(a))throw new T("INCORRECT_ADDRESS_PROVIDED");let{sourceChainData:p,burnToken:m}=R({sourceChain:r,targetChain:s,asset:i,amount:t},n),y=await b({chain:r,provider:u}).readContract({address:m.address,abi:N,functionName:"allowance",args:[o,p.tokenRouterAddress]}),l=p.domain===1;return y>=t?l?se:ae:l?ve+se:we+ae}var oe=async n=>{let e=await Z(n);return {type:"cctp",estimateGas:r=>ie(e,r),getAssets:()=>$(e),getFees:r=>F(e,r),transferAsset:r=>J(e,r,n),trackTransfer:r=>ne(e,r)}};var Ne=new Map([["cctp",oe]]),Pe=async(n,e)=>{let r=[...Ne].filter(([i])=>!e.includes(i)),s=await Promise.allSettled(r.map(async([i,t])=>[i,await t(n)]));return new Map(compact(s.map(i=>i.status==="fulfilled"?i.value:void 0)))},D=(n,e,r)=>{let s=e.destinations[r];for(let i of s??[]){let t=n.get(i);if(t)return {bridge:t,type:i}}throw new k};var _n=({environment:n,enabledBridgeServices:e})=>({environment:n,getAssets:async()=>(await Promise.all(Array.from(e).map(([,a])=>a.getAssets()))).reduce((a,p)=>{for(let[m,c]of Object.entries(p)){let y=a[m];if(y)for(let l of c){let f=y.findIndex(({symbol:h})=>h===l.symbol);f===-1?y.push(l):mergeWith(y[f],l,(h,C)=>{if(isArray(h))return [...new Set(h.concat(C))]});}else a[m]=c;}return a},{}),getFees:async u=>{let{bridge:a}=D(e,u.asset,u.targetChain.chainId);return a.getFees(u)},estimateGas:async u=>{let{bridge:a}=D(e,u.asset,u.targetChain.chainId);return a.estimateGas(u)},canTransferAsset:(u,a)=>{try{return D(e,u,a),!0}catch{return !1}},transferAsset:async u=>{let{bridge:a}=D(e,u.asset,u.targetChain.chainId);return a.transferAsset(u)},trackTransfer:u=>{let a=e.get(u.bridgeTransfer.type);if(!a)throw new k;return a.trackTransfer(u)}});
5
+
6
+ export { G as BridgeSignatureReason, E as BridgeType, K as Environment, B as ErrorCode, w as ErrorReason, H as TokenType, M as caip2, _n as createUnifiedBridgeService, Pe as getEnabledBridgeServices };
4
7
  //# sourceMappingURL=out.js.map
5
8
  //# sourceMappingURL=index.js.map