@avalabs/bridge-unified 2.1.1 → 3.0.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/LICENSE +9 -0
- package/README.md +115 -31
- package/dist/index.cjs +36 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +252 -84
- package/dist/index.d.ts +252 -84
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/package.json +14 -4
- package/.turbo/turbo-build.log +0 -22
- package/.turbo/turbo-lint.log +0 -4
- package/.turbo/turbo-test.log +0 -26
- package/CHANGELOG.md +0 -37
- package/jest.config.js +0 -9
- package/src/bridges/cctp/__mocks__/asset.mock.ts +0 -15
- package/src/bridges/cctp/__mocks__/bridge-transfer.mock.ts +0 -48
- package/src/bridges/cctp/__mocks__/chain.mocks.ts +0 -33
- package/src/bridges/cctp/__mocks__/config.mock.ts +0 -45
- package/src/bridges/cctp/abis/erc20.ts +0 -117
- package/src/bridges/cctp/abis/message-transmitter.ts +0 -318
- package/src/bridges/cctp/abis/token-router.ts +0 -843
- package/src/bridges/cctp/factory.test.ts +0 -73
- package/src/bridges/cctp/factory.ts +0 -36
- package/src/bridges/cctp/handlers/estimate-gas.test.ts +0 -110
- package/src/bridges/cctp/handlers/estimate-gas.ts +0 -58
- package/src/bridges/cctp/handlers/get-assets.test.ts +0 -47
- package/src/bridges/cctp/handlers/get-assets.ts +0 -27
- package/src/bridges/cctp/handlers/get-fees.test.ts +0 -61
- package/src/bridges/cctp/handlers/get-fees.ts +0 -26
- package/src/bridges/cctp/handlers/track-transfer.test.ts +0 -779
- package/src/bridges/cctp/handlers/track-transfer.ts +0 -365
- package/src/bridges/cctp/handlers/transfer-asset.test.ts +0 -429
- package/src/bridges/cctp/handlers/transfer-asset.ts +0 -179
- package/src/bridges/cctp/index.ts +0 -1
- package/src/bridges/cctp/types/chain.ts +0 -9
- package/src/bridges/cctp/types/config.ts +0 -20
- package/src/bridges/cctp/utils/build-tx.ts +0 -30
- package/src/bridges/cctp/utils/config.test.ts +0 -49
- package/src/bridges/cctp/utils/config.ts +0 -36
- package/src/bridges/cctp/utils/transfer-data.test.ts +0 -83
- package/src/bridges/cctp/utils/transfer-data.ts +0 -48
- package/src/errors/bridge-error.ts +0 -11
- package/src/errors/bridge-initialization-error.ts +0 -9
- package/src/errors/bridge-unavailable-error.ts +0 -9
- package/src/errors/index.ts +0 -4
- package/src/errors/invalid-params-error.ts +0 -9
- package/src/index.ts +0 -3
- package/src/types/asset.ts +0 -26
- package/src/types/bridge.ts +0 -64
- package/src/types/chain.ts +0 -10
- package/src/types/config.ts +0 -10
- package/src/types/environment.ts +0 -4
- package/src/types/error.ts +0 -19
- package/src/types/index.ts +0 -9
- package/src/types/provider.ts +0 -12
- package/src/types/signer.ts +0 -18
- package/src/types/transfer.ts +0 -35
- package/src/unified-bridge-service.test.ts +0 -209
- package/src/unified-bridge-service.ts +0 -97
- package/src/utils/bridge-types.test.ts +0 -103
- package/src/utils/bridge-types.ts +0 -32
- package/src/utils/caip2.test.ts +0 -44
- package/src/utils/caip2.ts +0 -41
- package/src/utils/client.test.ts +0 -97
- package/src/utils/client.ts +0 -44
- package/src/utils/ensure-config.test.ts +0 -43
- package/src/utils/ensure-config.ts +0 -12
- package/src/utils/index.ts +0 -2
- package/src/utils/network-fee.test.ts +0 -24
- package/src/utils/network-fee.ts +0 -6
- package/src/utils/retry-promise.test.ts +0 -115
- package/src/utils/retry-promise.ts +0 -72
- package/src/utils/wait.test.ts +0 -33
- package/src/utils/wait.ts +0 -4
- package/tsconfig.jest.json +0 -7
- package/tsconfig.json +0 -9
- package/tsup.config.ts +0 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Address } from 'viem';
|
|
2
|
+
import { z } from 'zod';
|
|
2
3
|
|
|
3
4
|
type Chain = {
|
|
4
5
|
chainName: string;
|
|
@@ -7,55 +8,135 @@ type Chain = {
|
|
|
7
8
|
utilityAddresses?: {
|
|
8
9
|
multicall: Address;
|
|
9
10
|
};
|
|
10
|
-
networkToken:
|
|
11
|
+
networkToken: NativeAsset;
|
|
11
12
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Avalanche = 1
|
|
13
|
+
declare enum AvalancheChainIds {
|
|
14
|
+
FUJI = "eip155:43113",
|
|
15
|
+
MAINNET = "eip155:43114"
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
};
|
|
32
|
-
type Config = ChainData[];
|
|
17
|
+
declare enum EthereumChainIds {
|
|
18
|
+
MAINNET = "eip155:1",
|
|
19
|
+
SEPOLIA = "eip155:11155111"
|
|
20
|
+
}
|
|
21
|
+
declare enum BitcoinChainIds {
|
|
22
|
+
MAINNET = "bip122:000000000019d6689c085ae165831e93",
|
|
23
|
+
TESTNET = "bip122:000000000933ea01ad0ee984209779ba"
|
|
24
|
+
}
|
|
25
|
+
declare const AVALANCHE_FUJI_CHAIN: Chain;
|
|
26
|
+
declare const AVALANCHE_MAINNET_CHAIN: Chain;
|
|
27
|
+
declare const ETHEREUM_SEPOLIA_CHAIN: Chain;
|
|
28
|
+
declare const ETHEREUM_MAINNET_CHAIN: Chain;
|
|
29
|
+
declare const BITCOIN_TESTNET_CHAIN: Chain;
|
|
30
|
+
declare const BITCOIN_MAINNET_CHAIN: Chain;
|
|
33
31
|
|
|
34
32
|
declare enum Environment {
|
|
33
|
+
DEV = "dev",
|
|
35
34
|
PROD = "production",
|
|
35
|
+
STAGING = "staging",
|
|
36
36
|
TEST = "test"
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
};
|
|
43
|
-
type BridgeConfig = Config;
|
|
39
|
+
/**
|
|
40
|
+
* Custom Bitcoin UTXO interface.
|
|
41
|
+
*/
|
|
44
42
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
declare const BitcoinInputUTXO: z.ZodObject<{
|
|
44
|
+
txHash: z.ZodString;
|
|
45
|
+
txHex: z.ZodOptional<z.ZodString>;
|
|
46
|
+
index: z.ZodNumber;
|
|
47
|
+
value: z.ZodNumber;
|
|
48
|
+
script: z.ZodString;
|
|
49
|
+
blockHeight: z.ZodNumber;
|
|
50
|
+
confirmations: z.ZodNumber;
|
|
51
|
+
}, "strip", z.ZodTypeAny, {
|
|
52
|
+
txHash: string;
|
|
53
|
+
value: number;
|
|
54
|
+
index: number;
|
|
55
|
+
script: string;
|
|
56
|
+
blockHeight: number;
|
|
57
|
+
confirmations: number;
|
|
58
|
+
txHex?: string | undefined;
|
|
59
|
+
}, {
|
|
60
|
+
txHash: string;
|
|
61
|
+
value: number;
|
|
62
|
+
index: number;
|
|
63
|
+
script: string;
|
|
64
|
+
blockHeight: number;
|
|
65
|
+
confirmations: number;
|
|
66
|
+
txHex?: string | undefined;
|
|
67
|
+
}>;
|
|
68
|
+
type BitcoinInputUTXO = typeof BitcoinInputUTXO._output;
|
|
69
|
+
declare const BitcoinInputUTXOWithOptionalScript: z.ZodObject<z.objectUtil.extendShape<{
|
|
70
|
+
txHash: z.ZodString;
|
|
71
|
+
txHex: z.ZodOptional<z.ZodString>;
|
|
72
|
+
index: z.ZodNumber;
|
|
73
|
+
value: z.ZodNumber;
|
|
74
|
+
script: z.ZodString;
|
|
75
|
+
blockHeight: z.ZodNumber;
|
|
76
|
+
confirmations: z.ZodNumber;
|
|
77
|
+
}, {
|
|
78
|
+
script: z.ZodOptional<z.ZodString>;
|
|
79
|
+
}>, "strip", z.ZodTypeAny, {
|
|
80
|
+
txHash: string;
|
|
81
|
+
value: number;
|
|
82
|
+
index: number;
|
|
83
|
+
blockHeight: number;
|
|
84
|
+
confirmations: number;
|
|
85
|
+
txHex?: string | undefined;
|
|
86
|
+
script?: string | undefined;
|
|
87
|
+
}, {
|
|
88
|
+
txHash: string;
|
|
89
|
+
value: number;
|
|
90
|
+
index: number;
|
|
91
|
+
blockHeight: number;
|
|
92
|
+
confirmations: number;
|
|
93
|
+
txHex?: string | undefined;
|
|
94
|
+
script?: string | undefined;
|
|
95
|
+
}>;
|
|
96
|
+
type BitcoinInputUTXOWithOptionalScript = typeof BitcoinInputUTXOWithOptionalScript._output;
|
|
97
|
+
/**
|
|
98
|
+
* Used for defining outputs when creating a transaction.
|
|
99
|
+
*/
|
|
100
|
+
declare const BitcoinOutputUTXO: z.ZodObject<{
|
|
101
|
+
address: z.ZodString;
|
|
102
|
+
value: z.ZodNumber;
|
|
103
|
+
}, "strip", z.ZodTypeAny, {
|
|
104
|
+
value: number;
|
|
105
|
+
address: string;
|
|
106
|
+
}, {
|
|
107
|
+
value: number;
|
|
108
|
+
address: string;
|
|
109
|
+
}>;
|
|
110
|
+
type BitcoinOutputUTXO = typeof BitcoinOutputUTXO._output;
|
|
111
|
+
interface BitcoinTx {
|
|
112
|
+
hash: string;
|
|
113
|
+
fees: number;
|
|
114
|
+
block: number;
|
|
115
|
+
amount: number;
|
|
116
|
+
confirmations: number;
|
|
117
|
+
blockTime: number;
|
|
118
|
+
addresses: string[];
|
|
119
|
+
inputs: {
|
|
120
|
+
txid: string;
|
|
121
|
+
vout: number;
|
|
122
|
+
sequence: number;
|
|
123
|
+
n: number;
|
|
124
|
+
addresses: string[];
|
|
125
|
+
isAddress: boolean;
|
|
126
|
+
value: number;
|
|
127
|
+
}[];
|
|
128
|
+
outputs: {
|
|
129
|
+
addresses: string[];
|
|
130
|
+
value: number;
|
|
131
|
+
n: number;
|
|
132
|
+
spent: boolean;
|
|
133
|
+
hex: string;
|
|
134
|
+
isAddress: boolean;
|
|
135
|
+
}[];
|
|
136
|
+
}
|
|
56
137
|
|
|
57
138
|
type Hex = `0x${string}`;
|
|
58
|
-
type
|
|
139
|
+
type EvmTransactionRequest = {
|
|
59
140
|
type?: number | null;
|
|
60
141
|
data?: Hex | null;
|
|
61
142
|
from: Hex;
|
|
@@ -68,8 +149,20 @@ type TransactionRequest = {
|
|
|
68
149
|
maxPriorityFeePerGas?: bigint | null;
|
|
69
150
|
maxFeePerGas?: bigint | null;
|
|
70
151
|
};
|
|
71
|
-
type
|
|
72
|
-
type
|
|
152
|
+
type EvmDispatch = (signedTxHash: Hex) => Promise<Hex>;
|
|
153
|
+
type EvmSign = (data: EvmTransactionRequest, dispatch: EvmDispatch) => Promise<Hex>;
|
|
154
|
+
type EvmSigner = {
|
|
155
|
+
sign: EvmSign;
|
|
156
|
+
};
|
|
157
|
+
type BtcTransactionRequest = {
|
|
158
|
+
inputs: BitcoinInputUTXO[];
|
|
159
|
+
outputs: BitcoinOutputUTXO[];
|
|
160
|
+
};
|
|
161
|
+
type BtcDispatch = (signedTxHash: string) => Promise<string>;
|
|
162
|
+
type BtcSign = (data: BtcTransactionRequest, dispatch: BtcDispatch) => Promise<string>;
|
|
163
|
+
type BtcSigner = {
|
|
164
|
+
sign: BtcSign;
|
|
165
|
+
};
|
|
73
166
|
|
|
74
167
|
declare enum ErrorCode {
|
|
75
168
|
BRIDGE_NOT_AVAILABLE = 5001,
|
|
@@ -79,15 +172,23 @@ declare enum ErrorCode {
|
|
|
79
172
|
TRANSACTION_REVERTED = 5005
|
|
80
173
|
}
|
|
81
174
|
declare enum ErrorReason {
|
|
82
|
-
|
|
175
|
+
ASSET_NOT_SUPPORTED = "ASSET_NOT_SUPPORTED",
|
|
176
|
+
CHAIN_NOT_SUPPORTED = "CHAIN_NOT_SUPPORTED",
|
|
83
177
|
CONFIG_NOT_AVAILABLE = "CONFIG_NOT_AVAILABLE",
|
|
84
|
-
|
|
178
|
+
CONFIRMATION_COUNT_UNKNOWN = "CONFIRMATION_COUNT_UNKNOWN",
|
|
179
|
+
ENVIRONMENT_NOT_SUPPORTED = "ENVIRONMENT_NOT_SUPPORTED",
|
|
85
180
|
IDENTICAL_CHAINS_PROVIDED = "IDENTICAL_CHAINS_PROVIDED",
|
|
86
|
-
INCORRECT_AMOUNT_PROVIDED = "INCORRECT_AMOUNT_PROVIDED",
|
|
87
181
|
INCORRECT_ADDRESS_PROVIDED = "INCORRECT_ADDRESS_PROVIDED",
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
182
|
+
INCORRECT_AMOUNT_PROVIDED = "INCORRECT_AMOUNT_PROVIDED",
|
|
183
|
+
INCORRECT_HASH_PROVIDED = "INCORRECT_HASH_PROVIDED",
|
|
184
|
+
INCORRECT_PROVIDER_PROVIDED = "INCORRECT_PROVIDER_PROVIDED",
|
|
185
|
+
INCORRECT_SIGNER_PROVIDED = "INCORRECT_SIGNER_PROVIDED",
|
|
186
|
+
INCORRECT_TXHASH_PROVIDED = "INCORRECT_TXHASH_PROVIDED",
|
|
187
|
+
INVALID_PARAMS = "INVALID_PARAMS",
|
|
188
|
+
UNKNOWN = "UNKNOWN",
|
|
189
|
+
VULNERABLE_TOKEN_APPROVAL_ADDRESS = "VULNERABLE_TOKEN_APPROVAL_ADDRESS",
|
|
190
|
+
WARDEN_CONFIG_MISMATCH = "WARDEN_CONFIG_MISMATCH",
|
|
191
|
+
WARDEN_CONFIG_MISSING_NETWORK = "WARDEN_CONFIG_MISSING_NETWORK"
|
|
91
192
|
}
|
|
92
193
|
|
|
93
194
|
type BridgeTransfer = {
|
|
@@ -96,8 +197,7 @@ type BridgeTransfer = {
|
|
|
96
197
|
fromAddress: string;
|
|
97
198
|
toAddress: string;
|
|
98
199
|
amount: bigint;
|
|
99
|
-
|
|
100
|
-
symbol: string;
|
|
200
|
+
asset: BridgeAsset;
|
|
101
201
|
completedAt?: number;
|
|
102
202
|
errorCode?: ErrorCode;
|
|
103
203
|
bridgeFee: bigint;
|
|
@@ -106,30 +206,75 @@ type BridgeTransfer = {
|
|
|
106
206
|
sourceTxHash: string;
|
|
107
207
|
sourceNetworkFee?: bigint;
|
|
108
208
|
sourceConfirmationCount: number;
|
|
109
|
-
|
|
209
|
+
sourceRequiredConfirmationCount: number;
|
|
110
210
|
targetChain: Chain;
|
|
111
211
|
targetStartedAt?: number;
|
|
112
212
|
targetTxHash?: string;
|
|
113
213
|
targetNetworkFee?: bigint;
|
|
114
214
|
targetConfirmationCount: number;
|
|
115
|
-
|
|
116
|
-
|
|
215
|
+
targetRequiredConfirmationCount: number;
|
|
216
|
+
targetStartBlockNumber?: bigint;
|
|
117
217
|
metadata?: Record<string, unknown>;
|
|
118
218
|
};
|
|
119
219
|
|
|
220
|
+
interface BitcoinFunctions {
|
|
221
|
+
getChainHeight: () => Promise<number>;
|
|
222
|
+
getUTXOs: (address: string, withScripts?: boolean) => Promise<{
|
|
223
|
+
confirmed: BitcoinInputUTXOWithOptionalScript[];
|
|
224
|
+
unconfirmed: BitcoinInputUTXOWithOptionalScript[];
|
|
225
|
+
}>;
|
|
226
|
+
getTransaction: (hash: string) => Promise<BitcoinTx>;
|
|
227
|
+
getFeeRates: () => Promise<{
|
|
228
|
+
low: number;
|
|
229
|
+
medium: number;
|
|
230
|
+
high: number;
|
|
231
|
+
}>;
|
|
232
|
+
getUtxoBalance: (address: string, withScripts?: boolean) => Promise<{
|
|
233
|
+
utxos: BitcoinInputUTXOWithOptionalScript[];
|
|
234
|
+
utxosUnconfirmed: BitcoinInputUTXOWithOptionalScript[];
|
|
235
|
+
}>;
|
|
236
|
+
getScriptsForUtxos: (utxos: BitcoinInputUTXOWithOptionalScript[]) => Promise<BitcoinInputUTXO[]>;
|
|
237
|
+
issueRawTx: (tx: string) => Promise<string>;
|
|
238
|
+
}
|
|
239
|
+
|
|
120
240
|
declare enum BridgeType {
|
|
121
|
-
|
|
241
|
+
AVALANCHE_EVM = "avalanche-evm",
|
|
242
|
+
AVALANCHE_BTC_AVA = "avalanche-btc-ava",
|
|
243
|
+
AVALANCHE_AVA_BTC = "avalanche-ava-btc",
|
|
244
|
+
CCTP = "cctp",
|
|
245
|
+
ICTT_ERC20_ERC20 = "ictt-erc20-erc20"
|
|
122
246
|
}
|
|
247
|
+
declare const BTC_BRIDGE_TYPES: readonly [BridgeType.AVALANCHE_AVA_BTC, BridgeType.AVALANCHE_BTC_AVA];
|
|
248
|
+
declare const EVM_BRIDGE_TYPES: readonly [BridgeType.AVALANCHE_EVM, BridgeType.CCTP, BridgeType.ICTT_ERC20_ERC20];
|
|
249
|
+
type ArrayElement<A> = A extends readonly (infer T)[] ? T : never;
|
|
250
|
+
type EvmBridgeInitializer = {
|
|
251
|
+
type: ArrayElement<typeof EVM_BRIDGE_TYPES>;
|
|
252
|
+
signer: EvmSigner;
|
|
253
|
+
};
|
|
254
|
+
type AvaToBtcBridgeInitializer = {
|
|
255
|
+
type: BridgeType.AVALANCHE_AVA_BTC;
|
|
256
|
+
signer: EvmSigner;
|
|
257
|
+
bitcoinFunctions: BitcoinFunctions;
|
|
258
|
+
};
|
|
259
|
+
type BtcToAvaBridgeInitializer = {
|
|
260
|
+
type: BridgeType.AVALANCHE_BTC_AVA;
|
|
261
|
+
signer: BtcSigner;
|
|
262
|
+
bitcoinFunctions: BitcoinFunctions;
|
|
263
|
+
};
|
|
264
|
+
type BridgeInitializer = EvmBridgeInitializer | AvaToBtcBridgeInitializer | BtcToAvaBridgeInitializer;
|
|
265
|
+
declare const isEvmBridgeInitializer: (initializer: BridgeInitializer) => initializer is EvmBridgeInitializer;
|
|
266
|
+
declare const isAvaToBtcBridgeInitializer: (initializer: BridgeInitializer) => initializer is AvaToBtcBridgeInitializer;
|
|
267
|
+
declare const isBtcToAvaBridgeInitializer: (initializer: BridgeInitializer) => initializer is BtcToAvaBridgeInitializer;
|
|
123
268
|
type FeeParams = {
|
|
124
269
|
asset: BridgeAsset;
|
|
125
270
|
amount: bigint;
|
|
126
271
|
sourceChain: Chain;
|
|
127
272
|
targetChain: Chain;
|
|
128
|
-
provider?: Provider;
|
|
129
273
|
};
|
|
130
274
|
declare enum BridgeSignatureReason {
|
|
131
275
|
AllowanceApproval = "allowance-approval",
|
|
132
|
-
TokensTransfer = "tokens-transfer"
|
|
276
|
+
TokensTransfer = "tokens-transfer",
|
|
277
|
+
WrapToken = "wrap-token"
|
|
133
278
|
}
|
|
134
279
|
type BridgeStepDetails = {
|
|
135
280
|
currentSignature: number;
|
|
@@ -140,70 +285,91 @@ type TransferParams = {
|
|
|
140
285
|
asset: BridgeAsset;
|
|
141
286
|
amount: bigint;
|
|
142
287
|
fromAddress: string;
|
|
143
|
-
toAddress
|
|
288
|
+
toAddress: string;
|
|
144
289
|
sourceChain: Chain;
|
|
145
290
|
targetChain: Chain;
|
|
146
|
-
sourceProvider?: Provider;
|
|
147
|
-
targetProvider?: Provider;
|
|
148
291
|
onStepChange?: (stepDetails: BridgeStepDetails) => void;
|
|
149
|
-
sign?: Signer;
|
|
150
292
|
};
|
|
293
|
+
type GasEstimationParams = Omit<TransferParams, 'onStepChange' | 'toAddress'>;
|
|
151
294
|
type TrackingParams = {
|
|
152
295
|
bridgeTransfer: BridgeTransfer;
|
|
153
|
-
sourceProvider?: Provider;
|
|
154
|
-
targetProvider?: Provider;
|
|
155
296
|
updateListener: (transfer: BridgeTransfer) => void;
|
|
156
297
|
};
|
|
298
|
+
type AnalyzeTxParams = {
|
|
299
|
+
chainId: string;
|
|
300
|
+
from: string;
|
|
301
|
+
to: string;
|
|
302
|
+
tokenTransfers: {
|
|
303
|
+
from?: string;
|
|
304
|
+
to?: string;
|
|
305
|
+
symbol: string;
|
|
306
|
+
}[];
|
|
307
|
+
};
|
|
308
|
+
type AnalyzeTxResult = {
|
|
309
|
+
isBridgeTx: true;
|
|
310
|
+
bridgeType: BridgeType;
|
|
311
|
+
sourceChainId?: string;
|
|
312
|
+
targetChainId?: string;
|
|
313
|
+
} | {
|
|
314
|
+
isBridgeTx: false;
|
|
315
|
+
};
|
|
157
316
|
type BridgeService = {
|
|
158
317
|
type: BridgeType;
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
318
|
+
analyzeTx: (params: AnalyzeTxParams) => AnalyzeTxResult;
|
|
319
|
+
estimateGas: (params: GasEstimationParams) => Promise<bigint>;
|
|
320
|
+
estimateReceiveAmount: (params: GasEstimationParams) => Promise<{
|
|
321
|
+
asset: Asset;
|
|
322
|
+
amount: bigint;
|
|
323
|
+
}>;
|
|
165
324
|
transferAsset: (params: TransferParams) => Promise<BridgeTransfer>;
|
|
166
325
|
trackTransfer: (transfer: TrackingParams) => {
|
|
167
326
|
cancel: () => void;
|
|
168
327
|
result: Promise<BridgeTransfer>;
|
|
169
328
|
};
|
|
329
|
+
getAssets: () => ChainAssetMap;
|
|
330
|
+
getFees: (params: FeeParams) => Promise<AssetFeeMap>;
|
|
331
|
+
getMinimumTransferAmount: (params: FeeParams) => Promise<bigint>;
|
|
170
332
|
};
|
|
171
|
-
type BridgeServiceFactory = (environment: Environment) => BridgeService
|
|
333
|
+
type BridgeServiceFactory = (environment: Environment) => Promise<BridgeService>;
|
|
172
334
|
|
|
173
335
|
declare enum TokenType {
|
|
174
336
|
NATIVE = "native",
|
|
175
337
|
ERC20 = "erc20"
|
|
176
338
|
}
|
|
177
|
-
type
|
|
178
|
-
type: TokenType;
|
|
179
|
-
address?: Address;
|
|
339
|
+
type BaseAsset = {
|
|
180
340
|
name: string;
|
|
181
341
|
symbol: string;
|
|
182
342
|
decimals: number;
|
|
183
343
|
};
|
|
344
|
+
type Erc20Asset = BaseAsset & {
|
|
345
|
+
type: TokenType.ERC20;
|
|
346
|
+
address: Address;
|
|
347
|
+
};
|
|
348
|
+
type NativeAsset = BaseAsset & {
|
|
349
|
+
type: TokenType.NATIVE;
|
|
350
|
+
};
|
|
351
|
+
declare const isErc20Asset: (asset: Asset) => asset is Erc20Asset;
|
|
352
|
+
declare const isNativeAsset: (asset: Asset) => asset is NativeAsset;
|
|
353
|
+
type Asset = Erc20Asset | NativeAsset;
|
|
184
354
|
type DestinationInfo = Record<string, BridgeType[]>;
|
|
185
355
|
type BridgeAsset = Asset & {
|
|
186
356
|
destinations: DestinationInfo;
|
|
187
357
|
};
|
|
188
358
|
type ChainAssetMap = Record<string, BridgeAsset[]>;
|
|
189
|
-
type AssetFeeMap = Record<Address, bigint
|
|
359
|
+
type AssetFeeMap = Partial<Record<Address | 'NATIVE', bigint>>;
|
|
190
360
|
|
|
191
|
-
|
|
361
|
+
type BridgeServicesMap = Map<BridgeType, BridgeService>;
|
|
362
|
+
type BridgeServiceConfig = {
|
|
192
363
|
environment: Environment;
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
getAssets: () => Promise<ChainAssetMap>;
|
|
197
|
-
getFees: (params: FeeParams) => Promise<AssetFeeMap>;
|
|
198
|
-
estimateGas: (params: TransferParams) => Promise<bigint>;
|
|
364
|
+
enabledBridgeServices: BridgeServicesMap;
|
|
365
|
+
};
|
|
366
|
+
type UnifiedBridgeService = Omit<BridgeService, 'type'> & {
|
|
199
367
|
canTransferAsset: (asset: BridgeAsset, targetChainId: string) => boolean;
|
|
200
|
-
|
|
201
|
-
trackTransfer: (params: TrackingParams) => {
|
|
202
|
-
cancel: () => void;
|
|
203
|
-
result: Promise<BridgeTransfer>;
|
|
204
|
-
};
|
|
368
|
+
environment: Environment;
|
|
205
369
|
};
|
|
206
370
|
|
|
371
|
+
declare const createUnifiedBridgeService: ({ environment, enabledBridgeServices }: BridgeServiceConfig) => UnifiedBridgeService;
|
|
372
|
+
|
|
207
373
|
type Caip2ChainId = {
|
|
208
374
|
namespace: string;
|
|
209
375
|
reference: string;
|
|
@@ -213,4 +379,6 @@ declare const _default: {
|
|
|
213
379
|
toString: ({ namespace, reference }: Caip2ChainId) => string;
|
|
214
380
|
};
|
|
215
381
|
|
|
216
|
-
|
|
382
|
+
declare const getEnabledBridgeServices: (environment: Environment, enabledBridgeInitializers: BridgeInitializer[]) => Promise<BridgeServicesMap>;
|
|
383
|
+
|
|
384
|
+
export { AVALANCHE_FUJI_CHAIN, AVALANCHE_MAINNET_CHAIN, AnalyzeTxParams, AnalyzeTxResult, ArrayElement, Asset, AssetFeeMap, AvaToBtcBridgeInitializer, AvalancheChainIds, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_BRIDGE_TYPES, BitcoinChainIds, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinTx, BridgeAsset, BridgeInitializer, BridgeService, BridgeServiceConfig, BridgeServiceFactory, BridgeServicesMap, BridgeSignatureReason, BridgeStepDetails, BridgeTransfer, BridgeType, BtcDispatch, BtcSign, BtcSigner, BtcToAvaBridgeInitializer, BtcTransactionRequest, Chain, ChainAssetMap, DestinationInfo, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_BRIDGE_TYPES, Environment, Erc20Asset, ErrorCode, ErrorReason, EthereumChainIds, EvmBridgeInitializer, EvmDispatch, EvmSign, EvmSigner, EvmTransactionRequest, FeeParams, GasEstimationParams, Hex, NativeAsset, TokenType, TrackingParams, TransferParams, UnifiedBridgeService, _default as caip2, createUnifiedBridgeService, getEnabledBridgeServices, isAvaToBtcBridgeInitializer, isBtcToAvaBridgeInitializer, isErc20Asset, isEvmBridgeInitializer, isNativeAsset };
|