@atomiqlabs/sdk 8.6.4 → 8.6.6
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/SmartChainAssets.d.ts +181 -181
- package/dist/SmartChainAssets.js +181 -181
- package/dist/bitcoin/coinselect2/accumulative.d.ts +6 -6
- package/dist/bitcoin/coinselect2/accumulative.js +51 -52
- package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -6
- package/dist/bitcoin/coinselect2/blackjack.js +37 -38
- package/dist/bitcoin/coinselect2/index.d.ts +17 -19
- package/dist/bitcoin/coinselect2/index.js +69 -69
- package/dist/bitcoin/coinselect2/utils.d.ts +75 -77
- package/dist/bitcoin/coinselect2/utils.js +123 -123
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +128 -130
- package/dist/bitcoin/wallet/BitcoinWallet.js +322 -322
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +78 -78
- package/dist/bitcoin/wallet/IBitcoinWallet.js +20 -21
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +99 -101
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +176 -176
- package/dist/enums/FeeType.d.ts +15 -15
- package/dist/enums/FeeType.js +19 -19
- package/dist/enums/SwapAmountType.d.ts +15 -15
- package/dist/enums/SwapAmountType.js +19 -19
- package/dist/enums/SwapDirection.d.ts +15 -15
- package/dist/enums/SwapDirection.js +19 -19
- package/dist/enums/SwapSide.d.ts +15 -15
- package/dist/enums/SwapSide.js +19 -19
- package/dist/enums/SwapType.d.ts +75 -75
- package/dist/enums/SwapType.js +79 -79
- package/dist/errors/IntermediaryError.d.ts +13 -13
- package/dist/errors/IntermediaryError.js +27 -27
- package/dist/errors/RequestError.d.ts +32 -32
- package/dist/errors/RequestError.js +54 -54
- package/dist/errors/UserError.d.ts +8 -8
- package/dist/errors/UserError.js +16 -16
- package/dist/events/UnifiedSwapEventListener.d.ts +23 -23
- package/dist/events/UnifiedSwapEventListener.js +130 -130
- package/dist/http/HttpUtils.d.ts +27 -27
- package/dist/http/HttpUtils.js +90 -91
- package/dist/http/paramcoders/IParamReader.d.ts +8 -8
- package/dist/http/paramcoders/IParamReader.js +2 -2
- package/dist/http/paramcoders/ParamDecoder.d.ts +42 -44
- package/dist/http/paramcoders/ParamDecoder.js +137 -137
- package/dist/http/paramcoders/ParamEncoder.d.ts +18 -20
- package/dist/http/paramcoders/ParamEncoder.js +36 -36
- package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
- package/dist/http/paramcoders/SchemaVerifier.js +145 -145
- package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
- package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
- package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +11 -13
- package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
- package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -16
- package/dist/http/paramcoders/client/StreamingFetchPromise.js +173 -174
- package/dist/index.d.ts +85 -85
- package/dist/index.js +158 -158
- package/dist/intermediaries/Intermediary.d.ts +157 -157
- package/dist/intermediaries/Intermediary.js +142 -142
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +198 -199
- package/dist/intermediaries/IntermediaryDiscovery.js +406 -406
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +437 -438
- package/dist/intermediaries/apis/IntermediaryAPI.js +603 -602
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
- package/dist/lnurl/LNURL.d.ts +102 -102
- package/dist/lnurl/LNURL.js +321 -321
- package/dist/prices/RedundantSwapPrice.d.ts +110 -110
- package/dist/prices/RedundantSwapPrice.js +222 -222
- package/dist/prices/SingleSwapPrice.d.ts +34 -34
- package/dist/prices/SingleSwapPrice.js +44 -44
- package/dist/prices/SwapPriceWithChain.d.ts +107 -107
- package/dist/prices/SwapPriceWithChain.js +128 -128
- package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
- package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
- package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
- package/dist/prices/abstract/IPriceProvider.js +74 -74
- package/dist/prices/abstract/ISwapPrice.d.ts +168 -166
- package/dist/prices/abstract/ISwapPrice.js +279 -267
- package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
- package/dist/prices/providers/BinancePriceProvider.js +30 -30
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
- package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
- package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
- package/dist/prices/providers/CustomPriceProvider.js +35 -35
- package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
- package/dist/prices/providers/KrakenPriceProvider.js +45 -45
- package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
- package/dist/prices/providers/OKXPriceProvider.js +29 -29
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
- package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
- package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
- package/dist/storage/IUnifiedStorage.d.ts +85 -85
- package/dist/storage/IUnifiedStorage.js +2 -2
- package/dist/storage/UnifiedSwapStorage.d.ts +114 -114
- package/dist/storage/UnifiedSwapStorage.js +116 -116
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
- package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
- package/dist/storage-browser/LocalStorageManager.js +93 -93
- package/dist/swapper/Swapper.d.ts +686 -687
- package/dist/swapper/Swapper.js +1603 -1603
- package/dist/swapper/SwapperFactory.d.ts +135 -135
- package/dist/swapper/SwapperFactory.js +162 -162
- package/dist/swapper/SwapperUtils.d.ts +200 -200
- package/dist/swapper/SwapperUtils.js +467 -467
- package/dist/swapper/SwapperWithChain.d.ts +404 -404
- package/dist/swapper/SwapperWithChain.js +469 -469
- package/dist/swapper/SwapperWithSigner.d.ts +322 -322
- package/dist/swapper/SwapperWithSigner.js +318 -318
- package/dist/swaps/IAddressSwap.d.ts +22 -22
- package/dist/swaps/IAddressSwap.js +13 -14
- package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
- package/dist/swaps/IBTCWalletSwap.js +17 -18
- package/dist/swaps/IClaimableSwap.d.ts +49 -49
- package/dist/swaps/IClaimableSwap.js +14 -15
- package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
- package/dist/swaps/IClaimableSwapWrapper.js +2 -2
- package/dist/swaps/IRefundableSwap.d.ts +43 -43
- package/dist/swaps/IRefundableSwap.js +13 -14
- package/dist/swaps/ISwap.d.ts +386 -387
- package/dist/swaps/ISwap.js +346 -341
- package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
- package/dist/swaps/ISwapWithGasDrop.js +11 -12
- package/dist/swaps/ISwapWrapper.d.ts +283 -284
- package/dist/swaps/ISwapWrapper.js +353 -353
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +133 -135
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +169 -169
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +114 -115
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +134 -134
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +98 -101
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +130 -130
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +58 -58
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +78 -78
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +529 -531
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +181 -184
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +418 -417
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +581 -583
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +225 -228
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +506 -506
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +458 -458
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1126 -1126
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +190 -191
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +378 -377
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +403 -403
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +924 -924
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +62 -62
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +112 -112
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +125 -127
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +241 -242
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +520 -520
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +127 -128
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +278 -278
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +630 -630
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1443 -1443
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +213 -207
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +756 -755
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +261 -261
- package/dist/swaps/trusted/ln/LnForGasSwap.js +511 -511
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +82 -82
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +342 -342
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +715 -715
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +68 -69
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +92 -92
- package/dist/types/AmountData.d.ts +10 -10
- package/dist/types/AmountData.js +2 -2
- package/dist/types/CustomPriceFunction.d.ts +11 -11
- package/dist/types/CustomPriceFunction.js +2 -2
- package/dist/types/PriceInfoType.d.ts +28 -28
- package/dist/types/PriceInfoType.js +56 -57
- package/dist/types/SwapExecutionAction.d.ts +88 -88
- package/dist/types/SwapExecutionAction.js +2 -2
- package/dist/types/SwapStateInfo.d.ts +5 -5
- package/dist/types/SwapStateInfo.js +2 -2
- package/dist/types/SwapWithSigner.d.ts +17 -17
- package/dist/types/SwapWithSigner.js +42 -43
- package/dist/types/Token.d.ts +99 -99
- package/dist/types/Token.js +76 -76
- package/dist/types/TokenAmount.d.ts +69 -69
- package/dist/types/TokenAmount.js +59 -60
- package/dist/types/fees/Fee.d.ts +50 -50
- package/dist/types/fees/Fee.js +2 -2
- package/dist/types/fees/FeeBreakdown.d.ts +11 -11
- package/dist/types/fees/FeeBreakdown.js +2 -2
- package/dist/types/fees/PercentagePPM.d.ts +17 -17
- package/dist/types/fees/PercentagePPM.js +17 -18
- package/dist/types/lnurl/LNURLPay.d.ts +61 -61
- package/dist/types/lnurl/LNURLPay.js +30 -31
- package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
- package/dist/types/lnurl/LNURLWithdraw.js +26 -27
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
- package/dist/types/wallets/LightningInvoiceCreateService.js +14 -15
- package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
- package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
- package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
- package/dist/utils/AutomaticClockDriftCorrection.js +69 -70
- package/dist/utils/BitcoinUtils.d.ts +12 -14
- package/dist/utils/BitcoinUtils.js +101 -102
- package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
- package/dist/utils/BitcoinWalletUtils.js +13 -14
- package/dist/utils/Logger.d.ts +7 -7
- package/dist/utils/Logger.js +11 -12
- package/dist/utils/RetryUtils.d.ts +22 -22
- package/dist/utils/RetryUtils.js +66 -67
- package/dist/utils/SwapUtils.d.ts +88 -88
- package/dist/utils/SwapUtils.js +72 -72
- package/dist/utils/TimeoutUtils.d.ts +17 -17
- package/dist/utils/TimeoutUtils.js +54 -55
- package/dist/utils/TokenUtils.d.ts +19 -19
- package/dist/utils/TokenUtils.js +36 -37
- package/dist/utils/TypeUtils.d.ts +7 -7
- package/dist/utils/TypeUtils.js +2 -2
- package/dist/utils/Utils.d.ts +56 -58
- package/dist/utils/Utils.js +193 -194
- package/package.json +1 -1
- package/src/intermediaries/apis/IntermediaryAPI.ts +4 -2
- package/src/prices/abstract/ISwapPrice.ts +19 -6
- package/src/swaps/ISwap.ts +17 -6
- package/src/swaps/ISwapWrapper.ts +4 -3
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +4 -2
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +4 -1
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +2 -2
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +4 -2
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +6 -6
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +5 -5
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +4 -1
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +10 -2
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +1 -1
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +1 -1
|
@@ -1,200 +1,200 @@
|
|
|
1
|
-
import { Transaction } from "@scure/btc-signer";
|
|
2
|
-
import { BTC_NETWORK } from "@scure/btc-signer/utils";
|
|
3
|
-
import { SwapType } from "../enums/SwapType";
|
|
4
|
-
import { ChainIds, MultiChain, Swapper } from "./Swapper";
|
|
5
|
-
import { IBitcoinWallet } from "../bitcoin/wallet/IBitcoinWallet";
|
|
6
|
-
import { MinimalBitcoinWalletInterface } from "../types/wallets/MinimalBitcoinWalletInterface";
|
|
7
|
-
import { TokenAmount } from "../types/TokenAmount";
|
|
8
|
-
import { SCToken } from "../types/Token";
|
|
9
|
-
import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
|
|
10
|
-
import { LNURLPay } from "../types/lnurl/LNURLPay";
|
|
11
|
-
/**
|
|
12
|
-
* Utility class providing helper methods for address parsing, token balances, serialization
|
|
13
|
-
* and other miscellaneous things.
|
|
14
|
-
*
|
|
15
|
-
* @category Core
|
|
16
|
-
*/
|
|
17
|
-
export declare class SwapperUtils<T extends MultiChain> {
|
|
18
|
-
readonly bitcoinNetwork: BTC_NETWORK;
|
|
19
|
-
private readonly root;
|
|
20
|
-
constructor(root: Swapper<T>);
|
|
21
|
-
/**
|
|
22
|
-
* Checks whether a passed address is a valid address on the smart chain
|
|
23
|
-
*
|
|
24
|
-
* @param address Address
|
|
25
|
-
* @param chainId Smart chain identifier string to check the address for
|
|
26
|
-
*/
|
|
27
|
-
isValidSmartChainAddress(address: string, chainId?: ChainIds<T>): boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Checks whether an address is a valid BOLT11 bitcoin lightning invoice
|
|
30
|
-
*
|
|
31
|
-
* @param address Address to check
|
|
32
|
-
*/
|
|
33
|
-
isLightningInvoice(address: string): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Checks whether an address is a valid bitcoin address
|
|
36
|
-
*
|
|
37
|
-
* @param address Address to check
|
|
38
|
-
*/
|
|
39
|
-
isValidBitcoinAddress(address: string): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Checks whether an address is a valid BOLT11 bitcoin lightning invoice WITH AMOUNT
|
|
42
|
-
*
|
|
43
|
-
* @param address Address to check
|
|
44
|
-
*/
|
|
45
|
-
isValidLightningInvoice(address: string): boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Checks whether an address is a valid LNURL (no checking on type is performed)
|
|
48
|
-
*
|
|
49
|
-
* @param address Address to check
|
|
50
|
-
*/
|
|
51
|
-
isValidLNURL(address: string): boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Returns type and data about an LNURL
|
|
54
|
-
*
|
|
55
|
-
* @param lnurl LNURL link to check, can be either `pay` or `withdraw` type
|
|
56
|
-
* @param shouldRetry Optional whether HTTP requests should retried on failure
|
|
57
|
-
*/
|
|
58
|
-
getLNURLTypeAndData(lnurl: string, shouldRetry?: boolean): Promise<LNURLPay | LNURLWithdraw | null>;
|
|
59
|
-
/**
|
|
60
|
-
* Returns satoshi value of BOLT11 bitcoin lightning invoice WITH AMOUNT, returns null otherwise
|
|
61
|
-
*
|
|
62
|
-
* @param lnpr
|
|
63
|
-
*/
|
|
64
|
-
getLightningInvoiceValue(lnpr: string): bigint | null;
|
|
65
|
-
private parseBitcoinAddress;
|
|
66
|
-
private parseLNURLSync;
|
|
67
|
-
private parseLNURL;
|
|
68
|
-
private parseLightningInvoice;
|
|
69
|
-
private parseSmartchainAddress;
|
|
70
|
-
/**
|
|
71
|
-
* General parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses. Also fetches LNURL data
|
|
72
|
-
* (hence async and returns Promise).
|
|
73
|
-
*
|
|
74
|
-
* @param addressString Address to parse
|
|
75
|
-
* @throws {Error} Error in address parsing
|
|
76
|
-
* @returns Address data or `null` if address doesn't conform to any known format
|
|
77
|
-
*/
|
|
78
|
-
parseAddress(addressString: string): Promise<{
|
|
79
|
-
address: string;
|
|
80
|
-
type: "BITCOIN" | "LIGHTNING" | "LNURL" | ChainIds<T>;
|
|
81
|
-
swapType: SwapType.TO_BTC | SwapType.TO_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTCLN | null;
|
|
82
|
-
lnurl?: LNURLPay | LNURLWithdraw;
|
|
83
|
-
min?: TokenAmount;
|
|
84
|
-
max?: TokenAmount;
|
|
85
|
-
amount?: TokenAmount;
|
|
86
|
-
} | null>;
|
|
87
|
-
/**
|
|
88
|
-
* Synchronous general parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, doesn't fetch
|
|
89
|
-
* LNURL data, returns `swapType: null` instead to prevent returning a Promise
|
|
90
|
-
*
|
|
91
|
-
* @param addressString Address to parse
|
|
92
|
-
* @throws {Error} Error in address parsing
|
|
93
|
-
* @returns Address data or `null` if address doesn't conform to any known format
|
|
94
|
-
*/
|
|
95
|
-
parseAddressSync(addressString: string): {
|
|
96
|
-
address: string;
|
|
97
|
-
type: "BITCOIN" | "LIGHTNING" | "LNURL" | ChainIds<T>;
|
|
98
|
-
swapType: SwapType.TO_BTC | SwapType.TO_BTCLN | SwapType.SPV_VAULT_FROM_BTC | null;
|
|
99
|
-
min?: TokenAmount;
|
|
100
|
-
max?: TokenAmount;
|
|
101
|
-
amount?: TokenAmount;
|
|
102
|
-
} | null;
|
|
103
|
-
/**
|
|
104
|
-
* Returns a random PSBT that can be used for fee estimation for SPV vault (UTXO-controlled vault) based swaps
|
|
105
|
-
* {@link SwapType.SPV_VAULT_FROM_BTC}, the last output (the LP output) is omitted to allow for coinselection
|
|
106
|
-
* algorithm to determine maximum sendable amount there
|
|
107
|
-
*
|
|
108
|
-
* @param chainIdentifier Smart chain to swap to
|
|
109
|
-
* @param includeGasToken Whether to return the PSBT also with the gas token amount (increases the vSize by 8)
|
|
110
|
-
*/
|
|
111
|
-
getRandomSpvVaultPsbt<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, includeGasToken?: boolean): Transaction;
|
|
112
|
-
/**
|
|
113
|
-
* Returns the spendable balance of a bitcoin wallet
|
|
114
|
-
*
|
|
115
|
-
* @param wallet Bitcoin wallet to check the spendable balance for, can either be a simple
|
|
116
|
-
* bitcoin address string or a wallet object
|
|
117
|
-
* @param targetChain Destination smart chain for the swap, the ensures proper spendable balance
|
|
118
|
-
* is estimated taking into consideration different swap primitives available on different chains
|
|
119
|
-
* @param options Additional options
|
|
120
|
-
*/
|
|
121
|
-
getBitcoinSpendableBalance(wallet: string | IBitcoinWallet | MinimalBitcoinWalletInterface, targetChain?: ChainIds<T>, options?: {
|
|
122
|
-
gasDrop?: boolean;
|
|
123
|
-
feeRate?: number;
|
|
124
|
-
minFeeRate?: number;
|
|
125
|
-
}): Promise<{
|
|
126
|
-
balance: TokenAmount;
|
|
127
|
-
feeRate: number;
|
|
128
|
-
}>;
|
|
129
|
-
/**
|
|
130
|
-
* Returns the maximum spendable balance of the smart chain wallet, deducting the fee needed
|
|
131
|
-
* to initiate a swap for native balances
|
|
132
|
-
*/
|
|
133
|
-
getSpendableBalance<ChainIdentifier extends ChainIds<T>>(wallet: string | T[ChainIdentifier]["Signer"] | T[ChainIdentifier]["NativeSigner"], token: SCToken<ChainIdentifier>, options?: {
|
|
134
|
-
feeMultiplier?: number;
|
|
135
|
-
feeRate?: any;
|
|
136
|
-
}): Promise<TokenAmount>;
|
|
137
|
-
/**
|
|
138
|
-
* Returns the address of the native currency of the smart chain
|
|
139
|
-
*/
|
|
140
|
-
getNativeToken<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SCToken<ChainIdentifier>;
|
|
141
|
-
/**
|
|
142
|
-
* Returns a random signer for a given smart chain
|
|
143
|
-
*
|
|
144
|
-
* @param chainIdentifier
|
|
145
|
-
*/
|
|
146
|
-
randomSigner<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): T[ChainIdentifier]["Signer"];
|
|
147
|
-
/**
|
|
148
|
-
* Returns a random address for a given smart chain
|
|
149
|
-
*
|
|
150
|
-
* @param chainIdentifier
|
|
151
|
-
*/
|
|
152
|
-
randomAddress<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): string;
|
|
153
|
-
/**
|
|
154
|
-
* Signs and broadcasts the supplied smart chain transaction
|
|
155
|
-
*
|
|
156
|
-
* @param chainIdentifier Smart chain identifier string
|
|
157
|
-
* @param signer Signer to use for signing the transactions
|
|
158
|
-
* @param txs An array of transactions to sign
|
|
159
|
-
* @param abortSignal Abort signal
|
|
160
|
-
* @param onBeforePublish Callback invoked before a transaction is sent (invoked for every transaction to be sent)
|
|
161
|
-
*/
|
|
162
|
-
sendAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: T[ChainIdentifier]["NativeSigner"] | T[ChainIdentifier]["Signer"], txs: T[ChainIdentifier]["TX"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
|
|
163
|
-
/**
|
|
164
|
-
* Broadcasts already signed smart chain transactions
|
|
165
|
-
*
|
|
166
|
-
* @param chainIdentifier Smart chain identifier string
|
|
167
|
-
* @param txs An array of already signed transactions
|
|
168
|
-
* @param abortSignal Abort signal
|
|
169
|
-
* @param onBeforePublish Callback invoked before a transaction is sent (invoked for every transaction to be sent)
|
|
170
|
-
*/
|
|
171
|
-
sendSignedAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, txs: T[ChainIdentifier]["SignedTXType"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
|
|
172
|
-
/**
|
|
173
|
-
* Serializes an unsigned smart chain transaction
|
|
174
|
-
*
|
|
175
|
-
* @param chainIdentifier Smart chain string identifier
|
|
176
|
-
* @param tx An unsigned transaction to serialize
|
|
177
|
-
*/
|
|
178
|
-
serializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["TX"]): Promise<string>;
|
|
179
|
-
/**
|
|
180
|
-
* Deserializes an unsigned smart chain transaction
|
|
181
|
-
*
|
|
182
|
-
* @param chainIdentifier Smart chain string identifier
|
|
183
|
-
* @param tx Serialized unsigned transaction
|
|
184
|
-
*/
|
|
185
|
-
deserializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["TX"]>;
|
|
186
|
-
/**
|
|
187
|
-
* Serializes a signed smart chain transaction
|
|
188
|
-
*
|
|
189
|
-
* @param chainIdentifier Smart chain string identifier
|
|
190
|
-
* @param tx A signed transaction to serialize
|
|
191
|
-
*/
|
|
192
|
-
serializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["SignedTXType"]): Promise<string>;
|
|
193
|
-
/**
|
|
194
|
-
* Deserializes a signed smart chain transaction
|
|
195
|
-
*
|
|
196
|
-
* @param chainIdentifier Smart chain string identifier
|
|
197
|
-
* @param tx Serialized signed transaction
|
|
198
|
-
*/
|
|
199
|
-
deserializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["SignedTXType"]>;
|
|
200
|
-
}
|
|
1
|
+
import { Transaction } from "@scure/btc-signer";
|
|
2
|
+
import { BTC_NETWORK } from "@scure/btc-signer/utils";
|
|
3
|
+
import { SwapType } from "../enums/SwapType";
|
|
4
|
+
import { ChainIds, MultiChain, Swapper } from "./Swapper";
|
|
5
|
+
import { IBitcoinWallet } from "../bitcoin/wallet/IBitcoinWallet";
|
|
6
|
+
import { MinimalBitcoinWalletInterface } from "../types/wallets/MinimalBitcoinWalletInterface";
|
|
7
|
+
import { TokenAmount } from "../types/TokenAmount";
|
|
8
|
+
import { SCToken } from "../types/Token";
|
|
9
|
+
import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
|
|
10
|
+
import { LNURLPay } from "../types/lnurl/LNURLPay";
|
|
11
|
+
/**
|
|
12
|
+
* Utility class providing helper methods for address parsing, token balances, serialization
|
|
13
|
+
* and other miscellaneous things.
|
|
14
|
+
*
|
|
15
|
+
* @category Core
|
|
16
|
+
*/
|
|
17
|
+
export declare class SwapperUtils<T extends MultiChain> {
|
|
18
|
+
readonly bitcoinNetwork: BTC_NETWORK;
|
|
19
|
+
private readonly root;
|
|
20
|
+
constructor(root: Swapper<T>);
|
|
21
|
+
/**
|
|
22
|
+
* Checks whether a passed address is a valid address on the smart chain
|
|
23
|
+
*
|
|
24
|
+
* @param address Address
|
|
25
|
+
* @param chainId Smart chain identifier string to check the address for
|
|
26
|
+
*/
|
|
27
|
+
isValidSmartChainAddress(address: string, chainId?: ChainIds<T>): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Checks whether an address is a valid BOLT11 bitcoin lightning invoice
|
|
30
|
+
*
|
|
31
|
+
* @param address Address to check
|
|
32
|
+
*/
|
|
33
|
+
isLightningInvoice(address: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Checks whether an address is a valid bitcoin address
|
|
36
|
+
*
|
|
37
|
+
* @param address Address to check
|
|
38
|
+
*/
|
|
39
|
+
isValidBitcoinAddress(address: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Checks whether an address is a valid BOLT11 bitcoin lightning invoice WITH AMOUNT
|
|
42
|
+
*
|
|
43
|
+
* @param address Address to check
|
|
44
|
+
*/
|
|
45
|
+
isValidLightningInvoice(address: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Checks whether an address is a valid LNURL (no checking on type is performed)
|
|
48
|
+
*
|
|
49
|
+
* @param address Address to check
|
|
50
|
+
*/
|
|
51
|
+
isValidLNURL(address: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Returns type and data about an LNURL
|
|
54
|
+
*
|
|
55
|
+
* @param lnurl LNURL link to check, can be either `pay` or `withdraw` type
|
|
56
|
+
* @param shouldRetry Optional whether HTTP requests should retried on failure
|
|
57
|
+
*/
|
|
58
|
+
getLNURLTypeAndData(lnurl: string, shouldRetry?: boolean): Promise<LNURLPay | LNURLWithdraw | null>;
|
|
59
|
+
/**
|
|
60
|
+
* Returns satoshi value of BOLT11 bitcoin lightning invoice WITH AMOUNT, returns null otherwise
|
|
61
|
+
*
|
|
62
|
+
* @param lnpr
|
|
63
|
+
*/
|
|
64
|
+
getLightningInvoiceValue(lnpr: string): bigint | null;
|
|
65
|
+
private parseBitcoinAddress;
|
|
66
|
+
private parseLNURLSync;
|
|
67
|
+
private parseLNURL;
|
|
68
|
+
private parseLightningInvoice;
|
|
69
|
+
private parseSmartchainAddress;
|
|
70
|
+
/**
|
|
71
|
+
* General parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses. Also fetches LNURL data
|
|
72
|
+
* (hence async and returns Promise).
|
|
73
|
+
*
|
|
74
|
+
* @param addressString Address to parse
|
|
75
|
+
* @throws {Error} Error in address parsing
|
|
76
|
+
* @returns Address data or `null` if address doesn't conform to any known format
|
|
77
|
+
*/
|
|
78
|
+
parseAddress(addressString: string): Promise<{
|
|
79
|
+
address: string;
|
|
80
|
+
type: "BITCOIN" | "LIGHTNING" | "LNURL" | ChainIds<T>;
|
|
81
|
+
swapType: SwapType.TO_BTC | SwapType.TO_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTCLN | null;
|
|
82
|
+
lnurl?: LNURLPay | LNURLWithdraw;
|
|
83
|
+
min?: TokenAmount;
|
|
84
|
+
max?: TokenAmount;
|
|
85
|
+
amount?: TokenAmount;
|
|
86
|
+
} | null>;
|
|
87
|
+
/**
|
|
88
|
+
* Synchronous general parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, doesn't fetch
|
|
89
|
+
* LNURL data, returns `swapType: null` instead to prevent returning a Promise
|
|
90
|
+
*
|
|
91
|
+
* @param addressString Address to parse
|
|
92
|
+
* @throws {Error} Error in address parsing
|
|
93
|
+
* @returns Address data or `null` if address doesn't conform to any known format
|
|
94
|
+
*/
|
|
95
|
+
parseAddressSync(addressString: string): {
|
|
96
|
+
address: string;
|
|
97
|
+
type: "BITCOIN" | "LIGHTNING" | "LNURL" | ChainIds<T>;
|
|
98
|
+
swapType: SwapType.TO_BTC | SwapType.TO_BTCLN | SwapType.SPV_VAULT_FROM_BTC | null;
|
|
99
|
+
min?: TokenAmount;
|
|
100
|
+
max?: TokenAmount;
|
|
101
|
+
amount?: TokenAmount;
|
|
102
|
+
} | null;
|
|
103
|
+
/**
|
|
104
|
+
* Returns a random PSBT that can be used for fee estimation for SPV vault (UTXO-controlled vault) based swaps
|
|
105
|
+
* {@link SwapType.SPV_VAULT_FROM_BTC}, the last output (the LP output) is omitted to allow for coinselection
|
|
106
|
+
* algorithm to determine maximum sendable amount there
|
|
107
|
+
*
|
|
108
|
+
* @param chainIdentifier Smart chain to swap to
|
|
109
|
+
* @param includeGasToken Whether to return the PSBT also with the gas token amount (increases the vSize by 8)
|
|
110
|
+
*/
|
|
111
|
+
getRandomSpvVaultPsbt<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, includeGasToken?: boolean): Transaction;
|
|
112
|
+
/**
|
|
113
|
+
* Returns the spendable balance of a bitcoin wallet
|
|
114
|
+
*
|
|
115
|
+
* @param wallet Bitcoin wallet to check the spendable balance for, can either be a simple
|
|
116
|
+
* bitcoin address string or a wallet object
|
|
117
|
+
* @param targetChain Destination smart chain for the swap, the ensures proper spendable balance
|
|
118
|
+
* is estimated taking into consideration different swap primitives available on different chains
|
|
119
|
+
* @param options Additional options
|
|
120
|
+
*/
|
|
121
|
+
getBitcoinSpendableBalance(wallet: string | IBitcoinWallet | MinimalBitcoinWalletInterface, targetChain?: ChainIds<T>, options?: {
|
|
122
|
+
gasDrop?: boolean;
|
|
123
|
+
feeRate?: number;
|
|
124
|
+
minFeeRate?: number;
|
|
125
|
+
}): Promise<{
|
|
126
|
+
balance: TokenAmount;
|
|
127
|
+
feeRate: number;
|
|
128
|
+
}>;
|
|
129
|
+
/**
|
|
130
|
+
* Returns the maximum spendable balance of the smart chain wallet, deducting the fee needed
|
|
131
|
+
* to initiate a swap for native balances
|
|
132
|
+
*/
|
|
133
|
+
getSpendableBalance<ChainIdentifier extends ChainIds<T>>(wallet: string | T[ChainIdentifier]["Signer"] | T[ChainIdentifier]["NativeSigner"], token: SCToken<ChainIdentifier>, options?: {
|
|
134
|
+
feeMultiplier?: number;
|
|
135
|
+
feeRate?: any;
|
|
136
|
+
}): Promise<TokenAmount>;
|
|
137
|
+
/**
|
|
138
|
+
* Returns the address of the native currency of the smart chain
|
|
139
|
+
*/
|
|
140
|
+
getNativeToken<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SCToken<ChainIdentifier>;
|
|
141
|
+
/**
|
|
142
|
+
* Returns a random signer for a given smart chain
|
|
143
|
+
*
|
|
144
|
+
* @param chainIdentifier
|
|
145
|
+
*/
|
|
146
|
+
randomSigner<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): T[ChainIdentifier]["Signer"];
|
|
147
|
+
/**
|
|
148
|
+
* Returns a random address for a given smart chain
|
|
149
|
+
*
|
|
150
|
+
* @param chainIdentifier
|
|
151
|
+
*/
|
|
152
|
+
randomAddress<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): string;
|
|
153
|
+
/**
|
|
154
|
+
* Signs and broadcasts the supplied smart chain transaction
|
|
155
|
+
*
|
|
156
|
+
* @param chainIdentifier Smart chain identifier string
|
|
157
|
+
* @param signer Signer to use for signing the transactions
|
|
158
|
+
* @param txs An array of transactions to sign
|
|
159
|
+
* @param abortSignal Abort signal
|
|
160
|
+
* @param onBeforePublish Callback invoked before a transaction is sent (invoked for every transaction to be sent)
|
|
161
|
+
*/
|
|
162
|
+
sendAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: T[ChainIdentifier]["NativeSigner"] | T[ChainIdentifier]["Signer"], txs: T[ChainIdentifier]["TX"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
|
|
163
|
+
/**
|
|
164
|
+
* Broadcasts already signed smart chain transactions
|
|
165
|
+
*
|
|
166
|
+
* @param chainIdentifier Smart chain identifier string
|
|
167
|
+
* @param txs An array of already signed transactions
|
|
168
|
+
* @param abortSignal Abort signal
|
|
169
|
+
* @param onBeforePublish Callback invoked before a transaction is sent (invoked for every transaction to be sent)
|
|
170
|
+
*/
|
|
171
|
+
sendSignedAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, txs: T[ChainIdentifier]["SignedTXType"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
|
|
172
|
+
/**
|
|
173
|
+
* Serializes an unsigned smart chain transaction
|
|
174
|
+
*
|
|
175
|
+
* @param chainIdentifier Smart chain string identifier
|
|
176
|
+
* @param tx An unsigned transaction to serialize
|
|
177
|
+
*/
|
|
178
|
+
serializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["TX"]): Promise<string>;
|
|
179
|
+
/**
|
|
180
|
+
* Deserializes an unsigned smart chain transaction
|
|
181
|
+
*
|
|
182
|
+
* @param chainIdentifier Smart chain string identifier
|
|
183
|
+
* @param tx Serialized unsigned transaction
|
|
184
|
+
*/
|
|
185
|
+
deserializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["TX"]>;
|
|
186
|
+
/**
|
|
187
|
+
* Serializes a signed smart chain transaction
|
|
188
|
+
*
|
|
189
|
+
* @param chainIdentifier Smart chain string identifier
|
|
190
|
+
* @param tx A signed transaction to serialize
|
|
191
|
+
*/
|
|
192
|
+
serializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["SignedTXType"]): Promise<string>;
|
|
193
|
+
/**
|
|
194
|
+
* Deserializes a signed smart chain transaction
|
|
195
|
+
*
|
|
196
|
+
* @param chainIdentifier Smart chain string identifier
|
|
197
|
+
* @param tx Serialized signed transaction
|
|
198
|
+
*/
|
|
199
|
+
deserializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["SignedTXType"]>;
|
|
200
|
+
}
|