@atomiqlabs/sdk 8.1.7 → 8.3.1
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/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
- package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
- package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
- package/dist/enums/FeeType.d.ts +7 -0
- package/dist/enums/FeeType.js +7 -0
- package/dist/enums/SwapAmountType.d.ts +7 -0
- package/dist/enums/SwapAmountType.js +7 -0
- package/dist/enums/SwapDirection.d.ts +7 -0
- package/dist/enums/SwapDirection.js +7 -0
- package/dist/enums/SwapType.d.ts +62 -1
- package/dist/enums/SwapType.js +62 -1
- package/dist/errors/IntermediaryError.d.ts +4 -0
- package/dist/errors/IntermediaryError.js +1 -0
- package/dist/errors/RequestError.d.ts +15 -1
- package/dist/errors/RequestError.js +8 -0
- package/dist/errors/UserError.d.ts +1 -0
- package/dist/errors/UserError.js +1 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.js +3 -4
- package/dist/intermediaries/Intermediary.d.ts +57 -10
- package/dist/intermediaries/Intermediary.js +37 -10
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +55 -22
- package/dist/intermediaries/IntermediaryDiscovery.js +35 -22
- package/dist/prices/RedundantSwapPrice.d.ts +24 -3
- package/dist/prices/RedundantSwapPrice.js +21 -1
- package/dist/prices/SingleSwapPrice.d.ts +9 -6
- package/dist/prices/SingleSwapPrice.js +10 -7
- package/dist/prices/SwapPriceWithChain.d.ts +54 -16
- package/dist/prices/SwapPriceWithChain.js +58 -20
- package/dist/prices/abstract/ISwapPrice.d.ts +94 -45
- package/dist/prices/abstract/ISwapPrice.js +103 -55
- package/dist/prices/providers/BinancePriceProvider.d.ts +7 -0
- package/dist/prices/providers/BinancePriceProvider.js +7 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +6 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.js +6 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +6 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +6 -0
- package/dist/prices/providers/CustomPriceProvider.d.ts +11 -0
- package/dist/prices/providers/CustomPriceProvider.js +11 -0
- package/dist/prices/providers/KrakenPriceProvider.d.ts +9 -0
- package/dist/prices/providers/KrakenPriceProvider.js +9 -0
- package/dist/prices/providers/OKXPriceProvider.d.ts +6 -0
- package/dist/prices/providers/OKXPriceProvider.js +6 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
- package/dist/storage/IUnifiedStorage.d.ts +19 -7
- package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
- package/dist/storage/UnifiedSwapStorage.js +29 -1
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
- package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
- package/dist/storage-browser/LocalStorageManager.js +25 -1
- package/dist/swapper/Swapper.d.ts +303 -222
- package/dist/swapper/Swapper.js +376 -344
- package/dist/swapper/SwapperFactory.d.ts +41 -17
- package/dist/swapper/SwapperFactory.js +23 -2
- package/dist/swapper/SwapperUtils.d.ts +75 -28
- package/dist/swapper/SwapperUtils.js +107 -60
- package/dist/swapper/SwapperWithChain.d.ts +286 -91
- package/dist/swapper/SwapperWithChain.js +218 -64
- package/dist/swapper/SwapperWithSigner.d.ts +229 -80
- package/dist/swapper/SwapperWithSigner.js +190 -44
- package/dist/swaps/IAddressSwap.d.ts +10 -1
- package/dist/swaps/IAddressSwap.js +2 -1
- package/dist/swaps/IBTCWalletSwap.d.ts +24 -6
- package/dist/swaps/IBTCWalletSwap.js +2 -1
- package/dist/swaps/IClaimableSwap.d.ts +36 -4
- package/dist/swaps/IClaimableSwap.js +2 -1
- package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
- package/dist/swaps/IRefundableSwap.d.ts +29 -3
- package/dist/swaps/IRefundableSwap.js +2 -1
- package/dist/swaps/ISwap.d.ts +159 -21
- package/dist/swaps/ISwap.js +90 -33
- package/dist/swaps/ISwapWithGasDrop.d.ts +6 -0
- package/dist/swaps/ISwapWithGasDrop.js +1 -0
- package/dist/swaps/ISwapWrapper.d.ts +157 -48
- package/dist/swaps/ISwapWrapper.js +130 -72
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +49 -6
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +94 -29
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +90 -27
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +275 -58
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +516 -239
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +76 -25
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +131 -49
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +311 -51
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +542 -193
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +209 -53
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +449 -242
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +197 -56
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +326 -189
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +60 -19
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +74 -31
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +36 -13
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +65 -19
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +328 -92
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +460 -219
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +244 -124
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +146 -18
- package/dist/swaps/trusted/ln/LnForGasSwap.js +173 -43
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +200 -47
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +230 -78
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
- package/dist/types/AmountData.d.ts +2 -1
- package/dist/types/CustomPriceFunction.d.ts +7 -1
- package/dist/types/SwapExecutionAction.d.ts +74 -4
- package/dist/types/SwapWithSigner.d.ts +4 -1
- package/dist/types/SwapWithSigner.js +5 -2
- package/dist/types/Token.d.ts +11 -5
- package/dist/types/Token.js +6 -3
- package/dist/types/TokenAmount.d.ts +3 -0
- package/dist/types/TokenAmount.js +2 -0
- package/dist/types/fees/Fee.d.ts +2 -1
- package/dist/types/fees/FeeBreakdown.d.ts +2 -1
- package/dist/types/fees/PercentagePPM.d.ts +2 -0
- package/dist/types/fees/PercentagePPM.js +1 -0
- package/dist/types/lnurl/LNURLPay.d.ts +14 -6
- package/dist/types/lnurl/LNURLPay.js +6 -2
- package/dist/types/lnurl/LNURLWithdraw.d.ts +12 -5
- package/dist/types/lnurl/LNURLWithdraw.js +6 -2
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +20 -0
- package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
- package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +3 -1
- package/dist/utils/BitcoinUtils.d.ts +1 -0
- package/dist/utils/BitcoinUtils.js +5 -1
- package/dist/utils/SwapUtils.d.ts +56 -1
- package/dist/utils/SwapUtils.js +53 -1
- package/dist/utils/TokenUtils.d.ts +10 -2
- package/dist/utils/TokenUtils.js +12 -4
- package/package.json +3 -3
- package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
- package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
- package/src/enums/FeeType.ts +7 -0
- package/src/enums/SwapAmountType.ts +7 -0
- package/src/enums/SwapDirection.ts +7 -0
- package/src/enums/SwapType.ts +62 -2
- package/src/errors/IntermediaryError.ts +4 -0
- package/src/errors/RequestError.ts +15 -1
- package/src/errors/UserError.ts +1 -0
- package/src/index.ts +6 -5
- package/src/intermediaries/Intermediary.ts +57 -10
- package/src/intermediaries/IntermediaryDiscovery.ts +60 -27
- package/src/prices/RedundantSwapPrice.ts +24 -4
- package/src/prices/SingleSwapPrice.ts +10 -7
- package/src/prices/SwapPriceWithChain.ts +59 -21
- package/src/prices/abstract/ISwapPrice.ts +114 -65
- package/src/prices/providers/BinancePriceProvider.ts +7 -0
- package/src/prices/providers/CoinGeckoPriceProvider.ts +6 -0
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +6 -0
- package/src/prices/providers/CustomPriceProvider.ts +11 -0
- package/src/prices/providers/KrakenPriceProvider.ts +9 -0
- package/src/prices/providers/OKXPriceProvider.ts +6 -0
- package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
- package/src/storage/IUnifiedStorage.ts +19 -7
- package/src/storage/UnifiedSwapStorage.ts +33 -3
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
- package/src/storage-browser/LocalStorageManager.ts +25 -1
- package/src/swapper/Swapper.ts +513 -379
- package/src/swapper/SwapperFactory.ts +44 -21
- package/src/swapper/SwapperUtils.ts +107 -60
- package/src/swapper/SwapperWithChain.ts +320 -81
- package/src/swapper/SwapperWithSigner.ts +263 -56
- package/src/swaps/IAddressSwap.ts +11 -1
- package/src/swaps/IBTCWalletSwap.ts +24 -8
- package/src/swaps/IClaimableSwap.ts +39 -4
- package/src/swaps/IClaimableSwapWrapper.ts +11 -2
- package/src/swaps/IRefundableSwap.ts +32 -3
- package/src/swaps/ISwap.ts +221 -82
- package/src/swaps/ISwapWithGasDrop.ts +6 -0
- package/src/swaps/ISwapWrapper.ts +212 -94
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +62 -18
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
- package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +120 -51
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +559 -256
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +155 -61
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +590 -226
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +470 -243
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +352 -193
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +86 -39
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +88 -33
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +534 -263
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +289 -148
- package/src/swaps/trusted/ln/LnForGasSwap.ts +184 -45
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +260 -86
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
- package/src/types/AmountData.ts +2 -1
- package/src/types/CustomPriceFunction.ts +7 -1
- package/src/types/SwapExecutionAction.ts +84 -5
- package/src/types/SwapWithSigner.ts +7 -3
- package/src/types/Token.ts +12 -5
- package/src/types/TokenAmount.ts +3 -0
- package/src/types/fees/Fee.ts +2 -1
- package/src/types/fees/FeeBreakdown.ts +2 -1
- package/src/types/fees/PercentagePPM.ts +2 -0
- package/src/types/lnurl/LNURLPay.ts +14 -6
- package/src/types/lnurl/LNURLWithdraw.ts +12 -5
- package/src/types/wallets/LightningInvoiceCreateService.ts +26 -0
- package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
- package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +3 -1
- package/src/utils/BitcoinUtils.ts +5 -0
- package/src/utils/SwapUtils.ts +61 -1
- package/src/utils/TokenUtils.ts +12 -4
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
- package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
- package/dist/bitcoin/LightningNetworkApi.js +0 -2
- package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
- package/dist/bitcoin/mempool/MempoolApi.js +0 -311
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
- package/dist/errors/PaymentAuthError.d.ts +0 -11
- package/dist/errors/PaymentAuthError.js +0 -23
- package/src/errors/PaymentAuthError.ts +0 -26
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { ISwapPrice } from "../prices/abstract/ISwapPrice";
|
|
3
3
|
import { BitcoinNetwork, BtcRelay, ChainData, ChainType, Messenger, RelaySynchronizer } from "@atomiqlabs/base";
|
|
4
|
-
import {
|
|
4
|
+
import { ToBTCLNOptions, ToBTCLNWrapper } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
|
|
5
5
|
import { ToBTCOptions, ToBTCWrapper } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
|
|
6
6
|
import { FromBTCLNOptions, FromBTCLNWrapper } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
|
|
7
7
|
import { FromBTCOptions, FromBTCWrapper } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
|
|
8
|
-
import { IntermediaryDiscovery
|
|
8
|
+
import { IntermediaryDiscovery } from "../intermediaries/IntermediaryDiscovery";
|
|
9
9
|
import { ISwap } from "../swaps/ISwap";
|
|
10
10
|
import { SwapType } from "../enums/SwapType";
|
|
11
11
|
import { FromBTCLNSwap } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
|
|
@@ -38,7 +38,8 @@ import { BtcToken, SCToken, Token } from "../types/Token";
|
|
|
38
38
|
import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
|
|
39
39
|
import { LNURLPay } from "../types/lnurl/LNURLPay";
|
|
40
40
|
import { NotNever } from "../utils/TypeUtils";
|
|
41
|
-
import {
|
|
41
|
+
import { MempoolBitcoinBlock, MempoolBitcoinRpc } from "@atomiqlabs/btc-mempool";
|
|
42
|
+
import { LightningInvoiceCreateService } from "../types/wallets/LightningInvoiceCreateService";
|
|
42
43
|
/**
|
|
43
44
|
* Configuration options for the Swapper
|
|
44
45
|
* @category Core
|
|
@@ -108,7 +109,8 @@ export type ChainIds<T extends MultiChain> = keyof T & string;
|
|
|
108
109
|
*/
|
|
109
110
|
export type SupportsSwapType<C extends ChainType, Type extends SwapType> = Type extends SwapType.SPV_VAULT_FROM_BTC ? NotNever<C["SpvVaultContract"]> : Type extends (SwapType.TRUSTED_FROM_BTCLN | SwapType.TRUSTED_FROM_BTC) ? true : Type extends SwapType.FROM_BTCLN_AUTO ? (C["Contract"]["supportsInitWithoutClaimer"] extends true ? true : false) : NotNever<C["Contract"]>;
|
|
110
111
|
/**
|
|
111
|
-
* Core orchestrator for all swap operations
|
|
112
|
+
* Core orchestrator for all atomiq swap operations
|
|
113
|
+
*
|
|
112
114
|
* @category Core
|
|
113
115
|
*/
|
|
114
116
|
export declare class Swapper<T extends MultiChain> extends EventEmitter<{
|
|
@@ -117,29 +119,60 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
|
|
|
117
119
|
swapState: [ISwap];
|
|
118
120
|
swapLimitsChanged: [];
|
|
119
121
|
}> {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
+
private readonly logger;
|
|
123
|
+
private readonly swapStateListener;
|
|
122
124
|
private defaultTrustedIntermediary?;
|
|
123
|
-
private readonly
|
|
125
|
+
private readonly bitcoinNetwork;
|
|
124
126
|
private readonly options;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
readonly
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
readonly
|
|
127
|
+
/**
|
|
128
|
+
* Data propagation layer used for broadcasting messages to watchtowers
|
|
129
|
+
*/
|
|
130
|
+
private readonly messenger;
|
|
131
|
+
/**
|
|
132
|
+
* A dictionary of smart chains used by the SDK
|
|
133
|
+
* @internal
|
|
134
|
+
*/
|
|
135
|
+
readonly _chains: MultiChainData<T>;
|
|
136
|
+
/**
|
|
137
|
+
* Bitcoin RPC for fetching bitcoin chain data
|
|
138
|
+
* @internal
|
|
139
|
+
*/
|
|
140
|
+
readonly _bitcoinRpc: MempoolBitcoinRpc;
|
|
141
|
+
/**
|
|
142
|
+
* Bitcoin network specification
|
|
143
|
+
* @internal
|
|
144
|
+
*/
|
|
145
|
+
readonly _btcNetwork: BTC_NETWORK;
|
|
146
|
+
/**
|
|
147
|
+
* Token data indexed by chain identifier and token addresses
|
|
148
|
+
* @internal
|
|
149
|
+
*/
|
|
150
|
+
readonly _tokens: {
|
|
134
151
|
[chainId: string]: {
|
|
135
152
|
[tokenAddress: string]: SCToken;
|
|
136
153
|
};
|
|
137
154
|
};
|
|
138
|
-
|
|
155
|
+
/**
|
|
156
|
+
* Token data indexed by chain identifier and token tickers
|
|
157
|
+
* @internal
|
|
158
|
+
*/
|
|
159
|
+
readonly _tokensByTicker: {
|
|
139
160
|
[chainId: string]: {
|
|
140
161
|
[tokenTicker: string]: SCToken;
|
|
141
162
|
};
|
|
142
163
|
};
|
|
164
|
+
/**
|
|
165
|
+
* Pricing API used by the SDK
|
|
166
|
+
*/
|
|
167
|
+
readonly prices: ISwapPrice<T>;
|
|
168
|
+
/**
|
|
169
|
+
* Intermediary discovery instance
|
|
170
|
+
*/
|
|
171
|
+
readonly intermediaryDiscovery: IntermediaryDiscovery;
|
|
172
|
+
/**
|
|
173
|
+
* Miscellaneous utility functions
|
|
174
|
+
*/
|
|
175
|
+
readonly Utils: SwapperUtils<T>;
|
|
143
176
|
constructor(bitcoinRpc: MempoolBitcoinRpc, chainsData: CtorMultiChainData<T>, pricing: ISwapPrice<T>, tokens: WrapperCtorTokens<T>, messenger: Messenger, options?: SwapperOptions);
|
|
144
177
|
private _init;
|
|
145
178
|
private initPromise?;
|
|
@@ -166,165 +199,225 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
|
|
|
166
199
|
*/
|
|
167
200
|
private createSwap;
|
|
168
201
|
/**
|
|
169
|
-
* Creates
|
|
202
|
+
* Creates Smart chain -> Bitcoin ({@link SwapType.TO_BTC}) swap
|
|
170
203
|
*
|
|
171
|
-
* @param chainIdentifier
|
|
172
|
-
* @param signer
|
|
173
|
-
* @param tokenAddress
|
|
174
|
-
* @param address
|
|
175
|
-
* @param amount
|
|
176
|
-
* @param exactIn
|
|
177
|
-
* @param additionalParams
|
|
178
|
-
* @param options
|
|
204
|
+
* @param chainIdentifier Chain identifier string of the source smart chain
|
|
205
|
+
* @param signer Signer's address on the source chain
|
|
206
|
+
* @param tokenAddress Token address to pay with
|
|
207
|
+
* @param address Recipient's bitcoin address
|
|
208
|
+
* @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
|
|
209
|
+
* @param exactIn Whether to use exact in instead of exact out
|
|
210
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
211
|
+
* @param options Additional options for the swap
|
|
179
212
|
*/
|
|
180
213
|
createToBTCSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, address: string, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
|
|
181
214
|
/**
|
|
182
|
-
* Creates
|
|
215
|
+
* Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap
|
|
183
216
|
*
|
|
184
|
-
* @param chainIdentifier
|
|
185
|
-
* @param signer
|
|
186
|
-
* @param tokenAddress
|
|
187
|
-
* @param paymentRequest
|
|
188
|
-
*
|
|
189
|
-
* @param
|
|
217
|
+
* @param chainIdentifier Chain identifier string of the source smart chain
|
|
218
|
+
* @param signer Signer's address on the source chain
|
|
219
|
+
* @param tokenAddress Token address to pay with
|
|
220
|
+
* @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount), and the swap
|
|
221
|
+
* amount is taken from this fixed amount, hence only exact output swaps are supported
|
|
222
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
223
|
+
* @param options Additional options for the swap
|
|
190
224
|
*/
|
|
191
225
|
createToBTCLNSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, paymentRequest: string, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
192
226
|
/**
|
|
193
|
-
* Creates
|
|
227
|
+
* Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via LNURL-pay link
|
|
194
228
|
*
|
|
195
|
-
* @param chainIdentifier
|
|
196
|
-
* @param signer
|
|
197
|
-
* @param tokenAddress
|
|
198
|
-
* @param lnurlPay
|
|
199
|
-
* @param amount
|
|
200
|
-
* @param exactIn
|
|
201
|
-
* @param additionalParams
|
|
202
|
-
* @param options
|
|
229
|
+
* @param chainIdentifier Chain identifier string of the source smart chain
|
|
230
|
+
* @param signer Signer's address on the source chain
|
|
231
|
+
* @param tokenAddress Token address to pay with
|
|
232
|
+
* @param lnurlPay LNURL-pay link to use for the payment
|
|
233
|
+
* @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
|
|
234
|
+
* @param exactIn Whether to do an exact in swap instead of exact out
|
|
235
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
236
|
+
* @param options Additional options for the swap
|
|
203
237
|
*/
|
|
204
238
|
createToBTCLNSwapViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, lnurlPay: string | LNURLPay, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions & {
|
|
205
239
|
comment?: string;
|
|
206
240
|
}): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
207
241
|
/**
|
|
208
|
-
* Creates
|
|
242
|
+
* Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via {@link LightningInvoiceCreateService}
|
|
209
243
|
*
|
|
210
|
-
* @param chainIdentifier
|
|
211
|
-
* @param signer
|
|
212
|
-
* @param tokenAddress
|
|
213
|
-
* @param service
|
|
214
|
-
* @param amount
|
|
215
|
-
* @param exactIn
|
|
216
|
-
* @param additionalParams
|
|
217
|
-
* @param options
|
|
218
|
-
*/
|
|
219
|
-
createToBTCLNSwapViaInvoiceCreateService<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, service:
|
|
220
|
-
/**
|
|
221
|
-
* Creates
|
|
244
|
+
* @param chainIdentifier Chain identifier string of the source smart chain
|
|
245
|
+
* @param signer Signer's address on the source chain
|
|
246
|
+
* @param tokenAddress Token address to pay with
|
|
247
|
+
* @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
|
|
248
|
+
* @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
|
|
249
|
+
* @param exactIn Whether to do an exact in swap instead of exact out
|
|
250
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
251
|
+
* @param options Additional options for the swap
|
|
252
|
+
*/
|
|
253
|
+
createToBTCLNSwapViaInvoiceCreateService<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, service: LightningInvoiceCreateService, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
254
|
+
/**
|
|
255
|
+
* Creates Bitcoin -> Smart chain ({@link SwapType.SPV_VAULT_FROM_BTC}) swap
|
|
222
256
|
*
|
|
223
|
-
* @param chainIdentifier
|
|
224
|
-
* @param
|
|
225
|
-
* @param tokenAddress
|
|
226
|
-
* @param amount
|
|
227
|
-
* @param exactOut
|
|
228
|
-
* @param additionalParams
|
|
229
|
-
* @param options
|
|
257
|
+
* @param chainIdentifier Chain identifier string of the destination smart chain
|
|
258
|
+
* @param recipient Recipient address on the destination chain
|
|
259
|
+
* @param tokenAddress Token address to receive
|
|
260
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
261
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
262
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
263
|
+
* @param options Additional options for the swap
|
|
230
264
|
*/
|
|
231
|
-
createFromBTCSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier,
|
|
265
|
+
createFromBTCSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: SpvFromBTCOptions): Promise<SpvFromBTCSwap<T[ChainIdentifier]>>;
|
|
232
266
|
/**
|
|
233
|
-
* Creates
|
|
267
|
+
* Creates LEGACY Bitcoin -> Smart chain ({@link SwapType.FROM_BTC}) swap
|
|
234
268
|
*
|
|
235
|
-
* @param chainIdentifier
|
|
236
|
-
* @param
|
|
237
|
-
* @param tokenAddress
|
|
238
|
-
* @param amount
|
|
239
|
-
* @param exactOut
|
|
240
|
-
* @param additionalParams
|
|
241
|
-
* @param options
|
|
269
|
+
* @param chainIdentifier Chain identifier string of the destination smart chain
|
|
270
|
+
* @param recipient Recipient address on the destination chain
|
|
271
|
+
* @param tokenAddress Token address to receive
|
|
272
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
273
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
274
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
275
|
+
* @param options Additional options for the swap
|
|
242
276
|
*/
|
|
243
|
-
createFromBTCSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier,
|
|
277
|
+
createFromBTCSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCOptions): Promise<FromBTCSwap<T[ChainIdentifier]>>;
|
|
244
278
|
/**
|
|
245
|
-
* Creates
|
|
279
|
+
* Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap
|
|
246
280
|
*
|
|
247
|
-
* @param chainIdentifier
|
|
248
|
-
* @param
|
|
249
|
-
* @param tokenAddress
|
|
250
|
-
* @param amount
|
|
251
|
-
* @param exactOut
|
|
252
|
-
* @param additionalParams
|
|
253
|
-
* @param options
|
|
254
|
-
*/
|
|
255
|
-
createFromBTCLNSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier,
|
|
256
|
-
/**
|
|
257
|
-
* Creates
|
|
281
|
+
* @param chainIdentifier Chain identifier string of the destination smart chain
|
|
282
|
+
* @param recipient Recipient address on the destination chain
|
|
283
|
+
* @param tokenAddress Token address to receive
|
|
284
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
285
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
286
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
287
|
+
* @param options Additional options for the swap
|
|
288
|
+
*/
|
|
289
|
+
createFromBTCLNSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNOptions): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
|
|
290
|
+
/**
|
|
291
|
+
* Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap, withdrawing from
|
|
292
|
+
* an LNURL-withdraw link
|
|
258
293
|
*
|
|
259
|
-
* @param chainIdentifier
|
|
260
|
-
* @param
|
|
261
|
-
* @param tokenAddress
|
|
262
|
-
* @param lnurl
|
|
263
|
-
* @param amount
|
|
264
|
-
* @param exactOut
|
|
265
|
-
* @param additionalParams
|
|
294
|
+
* @param chainIdentifier Chain identifier string of the destination smart chain
|
|
295
|
+
* @param recipient Recipient address on the destination chain
|
|
296
|
+
* @param tokenAddress Token address to receive
|
|
297
|
+
* @param lnurl LNURL-withdraw link to pull the funds from
|
|
298
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
299
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
300
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
266
301
|
*/
|
|
267
|
-
createFromBTCLNSwapViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier,
|
|
302
|
+
createFromBTCLNSwapViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
|
|
268
303
|
/**
|
|
269
|
-
* Creates
|
|
304
|
+
* Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap
|
|
270
305
|
*
|
|
271
|
-
* @param chainIdentifier
|
|
272
|
-
* @param
|
|
273
|
-
* @param tokenAddress
|
|
274
|
-
* @param amount
|
|
275
|
-
* @param exactOut
|
|
276
|
-
* @param additionalParams
|
|
277
|
-
* @param options
|
|
278
|
-
*/
|
|
279
|
-
createFromBTCLNSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier,
|
|
280
|
-
/**
|
|
281
|
-
* Creates
|
|
306
|
+
* @param chainIdentifier Chain identifier string of the destination smart chain
|
|
307
|
+
* @param recipient Recipient address on the destination chain
|
|
308
|
+
* @param tokenAddress Token address to receive
|
|
309
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
310
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
311
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
312
|
+
* @param options Additional options for the swap
|
|
313
|
+
*/
|
|
314
|
+
createFromBTCLNSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
|
|
315
|
+
/**
|
|
316
|
+
* Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap, withdrawing from
|
|
317
|
+
* an LNURL-withdraw link
|
|
282
318
|
*
|
|
283
|
-
* @param chainIdentifier
|
|
284
|
-
* @param
|
|
285
|
-
* @param tokenAddress
|
|
286
|
-
* @param lnurl
|
|
287
|
-
* @param amount
|
|
288
|
-
* @param exactOut
|
|
289
|
-
* @param additionalParams
|
|
290
|
-
* @param options
|
|
291
|
-
*/
|
|
292
|
-
createFromBTCLNSwapNewViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier,
|
|
293
|
-
/**
|
|
294
|
-
* Creates trusted
|
|
319
|
+
* @param chainIdentifier Chain identifier string of the destination smart chain
|
|
320
|
+
* @param recipient Recipient address on the destination chain
|
|
321
|
+
* @param tokenAddress Token address to receive
|
|
322
|
+
* @param lnurl LNURL-withdraw link to pull the funds from
|
|
323
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
324
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
325
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
326
|
+
* @param options Additional options for the swap
|
|
327
|
+
*/
|
|
328
|
+
createFromBTCLNSwapNewViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, recipient: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
|
|
329
|
+
/**
|
|
330
|
+
* Creates a trusted Bitcoin Lightning -> Smart chain ({@link SwapType.TRUSTED_FROM_BTCLN}) gas swap
|
|
295
331
|
*
|
|
296
|
-
* @param
|
|
297
|
-
* @param
|
|
298
|
-
* @param amount
|
|
332
|
+
* @param chainIdentifier Chain identifier string of the destination smart chain
|
|
333
|
+
* @param recipient Recipient address on the destination chain
|
|
334
|
+
* @param amount Amount of native token to receive, in base units
|
|
299
335
|
* @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
|
|
300
|
-
* @throws {Error}
|
|
336
|
+
* @throws {Error} If no trusted intermediary specified
|
|
301
337
|
*/
|
|
302
|
-
createTrustedLNForGasSwap<C extends ChainIds<T>>(
|
|
338
|
+
createTrustedLNForGasSwap<C extends ChainIds<T>>(chainIdentifier: C, recipient: string, amount: bigint, trustedIntermediaryOrUrl?: Intermediary | string): Promise<LnForGasSwap<T[C]>>;
|
|
303
339
|
/**
|
|
304
|
-
* Creates trusted
|
|
340
|
+
* Creates a trusted Bitcoin -> Smart chain ({@link SwapType.TRUSTED_FROM_BTC}) gas swap
|
|
305
341
|
*
|
|
306
|
-
* @param
|
|
307
|
-
* @param
|
|
308
|
-
* @param amount
|
|
309
|
-
* @param refundAddress
|
|
310
|
-
* @param trustedIntermediaryOrUrl
|
|
311
|
-
* @throws {Error}
|
|
342
|
+
* @param chainIdentifier Chain identifier string of the destination smart chain
|
|
343
|
+
* @param recipient Recipient address on the destination chain
|
|
344
|
+
* @param amount Amount of native token to receive, in base units
|
|
345
|
+
* @param refundAddress Bitcoin refund address, in case the swap fails the funds are refunded here
|
|
346
|
+
* @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
|
|
347
|
+
* @throws {Error} If no trusted intermediary specified
|
|
348
|
+
*/
|
|
349
|
+
createTrustedOnchainForGasSwap<C extends ChainIds<T>>(chainIdentifier: C, recipient: string, amount: bigint, refundAddress?: string, trustedIntermediaryOrUrl?: Intermediary | string): Promise<OnchainForGasSwap<T[C]>>;
|
|
350
|
+
/**
|
|
351
|
+
* @internal
|
|
312
352
|
*/
|
|
313
|
-
createTrustedOnchainForGasSwap<C extends ChainIds<T>>(chainId: C, signer: string, amount: bigint, refundAddress?: string, trustedIntermediaryOrUrl?: Intermediary | string): Promise<OnchainForGasSwap<T[C]>>;
|
|
314
353
|
create<C extends ChainIds<T>>(signer: string, srcToken: BtcToken<true>, dstToken: SCToken<C>, amount: bigint, exactIn: boolean, lnurlWithdraw?: string | LNURLWithdraw): Promise<(SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[C]> : FromBTCLNSwap<T[C]>)>;
|
|
354
|
+
/**
|
|
355
|
+
* @internal
|
|
356
|
+
*/
|
|
315
357
|
create<C extends ChainIds<T>>(signer: string, srcToken: BtcToken<false>, dstToken: SCToken<C>, amount: bigint, exactIn: boolean): Promise<(SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[C]> : FromBTCSwap<T[C]>)>;
|
|
358
|
+
/**
|
|
359
|
+
* @internal
|
|
360
|
+
*/
|
|
316
361
|
create<C extends ChainIds<T>>(signer: string, srcToken: SCToken<C>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[C]>>;
|
|
362
|
+
/**
|
|
363
|
+
* @internal
|
|
364
|
+
*/
|
|
317
365
|
create<C extends ChainIds<T>>(signer: string, srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[C]>>;
|
|
366
|
+
/**
|
|
367
|
+
* @internal
|
|
368
|
+
*/
|
|
318
369
|
create<C extends ChainIds<T>>(signer: string, srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: undefined, exactIn: false, lightningInvoice: string): Promise<ToBTCLNSwap<T[C]>>;
|
|
370
|
+
/**
|
|
371
|
+
* Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
|
|
372
|
+
* or output amount (exactIn=false), NOTE: For regular -> BTC-LN (lightning) swaps the passed amount is ignored and
|
|
373
|
+
* invoice's pre-set amount is used instead.
|
|
374
|
+
* @deprecated Use {@link swap} instead
|
|
375
|
+
*
|
|
376
|
+
* @param signer Smartchain (Solana, Starknet, etc.) address of the user
|
|
377
|
+
* @param srcToken Source token of the swap, user pays this token
|
|
378
|
+
* @param dstToken Destination token of the swap, user receives this token
|
|
379
|
+
* @param amount Amount of the swap
|
|
380
|
+
* @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
|
|
381
|
+
* @param addressLnurlLightningInvoice Bitcoin on-chain address, lightning invoice, LNURL-pay to pay or
|
|
382
|
+
* LNURL-withdrawal to withdraw money from
|
|
383
|
+
*/
|
|
319
384
|
create<C extends ChainIds<T>>(signer: string, srcToken: Token<C>, dstToken: Token<C>, amount: bigint | undefined, exactIn: boolean, addressLnurlLightningInvoice?: string | LNURLWithdraw | LNURLPay): Promise<ISwap<T[C]>>;
|
|
385
|
+
/**
|
|
386
|
+
* @internal
|
|
387
|
+
*/
|
|
320
388
|
swap<C extends ChainIds<T>>(srcToken: BtcToken<true>, dstToken: SCToken<C>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dstSmartchainWallet: string, options?: (SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoOptions : FromBTCLNOptions)): Promise<(SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[C]> : FromBTCLNSwap<T[C]>)>;
|
|
389
|
+
/**
|
|
390
|
+
* @internal
|
|
391
|
+
*/
|
|
321
392
|
swap<C extends ChainIds<T>>(srcToken: BtcToken<false>, dstToken: SCToken<C>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string, dstSmartchainWallet: string, options?: (SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCOptions : FromBTCOptions)): Promise<(SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[C]> : FromBTCSwap<T[C]>)>;
|
|
393
|
+
/**
|
|
394
|
+
* @internal
|
|
395
|
+
*/
|
|
322
396
|
swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<false>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstAddress: string, options?: ToBTCOptions): Promise<ToBTCSwap<T[C]>>;
|
|
323
|
-
|
|
397
|
+
/**
|
|
398
|
+
* @internal
|
|
399
|
+
*/
|
|
400
|
+
swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstLnurlPayOrInvoiceCreateService: string | LNURLPay | LightningInvoiceCreateService, options?: ToBTCLNOptions & {
|
|
324
401
|
comment?: string;
|
|
325
402
|
}): Promise<ToBTCLNSwap<T[C]>>;
|
|
403
|
+
/**
|
|
404
|
+
* @internal
|
|
405
|
+
*/
|
|
326
406
|
swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: undefined, exactIn: false | SwapAmountType.EXACT_OUT, src: string, dstLightningInvoice: string, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[C]>>;
|
|
327
|
-
|
|
407
|
+
/**
|
|
408
|
+
* Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (if `exactIn=true`)
|
|
409
|
+
* or output amount (if `exactIn=false`), NOTE: For regular Smart chain -> BTC-LN (lightning) swaps the passed amount is ignored and
|
|
410
|
+
* invoice's pre-set amount is used instead, use LNURL-pay links for dynamic amounts
|
|
411
|
+
*
|
|
412
|
+
* @param srcToken Source token of the swap, user pays this token
|
|
413
|
+
* @param dstToken Destination token of the swap, user receives this token
|
|
414
|
+
* @param amount Amount of the swap either in base units as {bigint} or in human readable format (with decimals) as {string}
|
|
415
|
+
* @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
|
|
416
|
+
* @param src Source wallet/lnurl-withdraw of the swap
|
|
417
|
+
* @param dst Destination smart chain address, bitcoin on-chain address, lightning invoice, LNURL-pay
|
|
418
|
+
* @param options Options for the swap
|
|
419
|
+
*/
|
|
420
|
+
swap<C extends ChainIds<T>>(srcToken: Token<C> | string, dstToken: Token<C> | string, amount: bigint | string | undefined, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dst: string | LNURLPay | LightningInvoiceCreateService, options?: FromBTCLNOptions | SpvFromBTCOptions | FromBTCOptions | ToBTCOptions | (ToBTCLNOptions & {
|
|
328
421
|
comment?: string;
|
|
329
422
|
}) | FromBTCLNAutoOptions): Promise<ISwap<T[C]>>;
|
|
330
423
|
/**
|
|
@@ -368,106 +461,118 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
|
|
|
368
461
|
*/
|
|
369
462
|
getSwapById<C extends ChainIds<T>>(id: string, chainId: C, signer?: string): Promise<ISwap<T[C]>>;
|
|
370
463
|
/**
|
|
371
|
-
* Returns the swap with a proper return type, or undefined
|
|
464
|
+
* Returns the swap with a proper return type, or `undefined` if not found or has wrong type
|
|
372
465
|
*
|
|
373
|
-
* @param id
|
|
374
|
-
* @param chainId
|
|
375
|
-
* @param swapType
|
|
376
|
-
* @param signer
|
|
466
|
+
* @param id An ID of the swap ({@link ISwap.getId})
|
|
467
|
+
* @param chainId Chain identifier of the smart chain where the swap was initiated
|
|
468
|
+
* @param swapType Type of the swap
|
|
469
|
+
* @param signer An optional required smart chain signer address to fetch the swap for
|
|
377
470
|
*/
|
|
378
471
|
getTypedSwapById<C extends ChainIds<T>, S extends SwapType>(id: string, chainId: C, swapType: S, signer?: string): Promise<SwapTypeMapping<T[C]>[S] | undefined>;
|
|
379
472
|
private syncSwapsForChain;
|
|
380
473
|
/**
|
|
381
|
-
*
|
|
474
|
+
* Deletes the swaps from the persistent storage backend. Note that some data (like lightning network
|
|
475
|
+
* amounts and bolt11 invoices) are purely off-chain and can never be recovered later just from
|
|
476
|
+
* on-chain data!
|
|
477
|
+
*
|
|
478
|
+
* @param chainId Optional, to only delete swaps for this smart chain
|
|
479
|
+
* @param signer Optional, to only delete swaps for this smart chain signer (`chainId` param must be
|
|
480
|
+
* set to delete only signer's swaps)
|
|
481
|
+
*/
|
|
482
|
+
wipeStorage<C extends ChainIds<T>>(chainId?: C, signer?: string): Promise<void>;
|
|
483
|
+
/**
|
|
484
|
+
* Synchronizes swaps from on-chain, this is ran automatically when SDK is initialized, hence
|
|
485
|
+
* should only be ran manually when `dontCheckPastSwaps=true` is passed in the swapper options,
|
|
486
|
+
* also deletes expired quotes
|
|
382
487
|
*
|
|
383
|
-
* @param chainId
|
|
384
|
-
* @param signer
|
|
488
|
+
* @param chainId Optional chain identifier to only run swap sync for a single smart chain
|
|
489
|
+
* @param signer Optional signer to only run swap sync for swaps initiated by this signer
|
|
385
490
|
*/
|
|
386
491
|
_syncSwaps<C extends ChainIds<T>>(chainId?: C, signer?: string): Promise<void>;
|
|
387
492
|
/**
|
|
388
|
-
*
|
|
493
|
+
* Recovers swaps from on-chain historical data.
|
|
494
|
+
*
|
|
495
|
+
* Please note that the recovered swaps might not be complete (i.e. missing amounts or addresses), as some
|
|
496
|
+
* of the swap data is purely off-chain and can never be recovered purely from on-chain data. This
|
|
497
|
+
* functions tries to recover as much swap data as possible.
|
|
389
498
|
*
|
|
390
|
-
* @param chainId
|
|
391
|
-
* @param signer
|
|
392
|
-
* @param startBlockheight
|
|
499
|
+
* @param chainId Smart chain identifier string to recover the swaps from
|
|
500
|
+
* @param signer Signer address to recover the swaps for
|
|
501
|
+
* @param startBlockheight Optional starting blockheight for swap data recovery, will only check swaps
|
|
502
|
+
* initiated after this blockheight
|
|
393
503
|
*/
|
|
394
504
|
recoverSwaps<C extends ChainIds<T>>(chainId: C, signer: string, startBlockheight?: number): Promise<ISwap<T[C]>[]>;
|
|
395
|
-
|
|
505
|
+
/**
|
|
506
|
+
* Returns the {@link Token} object for a given token
|
|
507
|
+
*
|
|
508
|
+
* @param tickerOrAddress Token to return the object for, can use multiple formats:
|
|
509
|
+
* - a) token ticker, such as `"BTC"`, `"SOL"`, etc.
|
|
510
|
+
* - b) token ticker prefixed with smart chain identifier, such as `"SOLANA-SOL"`, `"SOLANA-USDC"`, etc.
|
|
511
|
+
* - c) token address
|
|
512
|
+
*/
|
|
513
|
+
getToken(tickerOrAddress: string): Token<ChainIds<T>>;
|
|
396
514
|
/**
|
|
397
515
|
* Creates a child swapper instance with a given smart chain
|
|
398
516
|
*
|
|
399
|
-
* @param chainIdentifier
|
|
517
|
+
* @param chainIdentifier Smart chain identifier for the created child swapper instance
|
|
400
518
|
*/
|
|
401
519
|
withChain<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SwapperWithChain<T, ChainIdentifier>;
|
|
402
520
|
/**
|
|
403
|
-
* Returns supported smart chains
|
|
521
|
+
* Returns an array of all the supported smart chains
|
|
404
522
|
*/
|
|
405
523
|
getSmartChains(): ChainIds<T>[];
|
|
406
524
|
/**
|
|
407
525
|
* Returns whether the SDK supports a given swap type on a given chain based on currently known LPs
|
|
408
526
|
*
|
|
409
|
-
* @param chainId
|
|
410
|
-
* @param swapType
|
|
527
|
+
* @param chainId Smart chain identifier string
|
|
528
|
+
* @param swapType Swap protocol type
|
|
411
529
|
*/
|
|
412
530
|
supportsSwapType<ChainIdentifier extends ChainIds<T>, Type extends SwapType>(chainId: ChainIdentifier, swapType: Type): SupportsSwapType<T[ChainIdentifier], Type>;
|
|
413
531
|
/**
|
|
414
|
-
*
|
|
415
|
-
*
|
|
416
|
-
* @param srcToken
|
|
417
|
-
* @param dstToken
|
|
532
|
+
* @internal
|
|
418
533
|
*/
|
|
419
534
|
getSwapType<C extends ChainIds<T>>(srcToken: BtcToken<true>, dstToken: SCToken<C>): (SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
|
|
535
|
+
/**
|
|
536
|
+
* @internal
|
|
537
|
+
*/
|
|
420
538
|
getSwapType<C extends ChainIds<T>>(srcToken: BtcToken<false>, dstToken: SCToken<C>): (SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SwapType.SPV_VAULT_FROM_BTC : SwapType.FROM_BTC);
|
|
539
|
+
/**
|
|
540
|
+
* @internal
|
|
541
|
+
*/
|
|
421
542
|
getSwapType<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<false>): SwapType.TO_BTC;
|
|
543
|
+
/**
|
|
544
|
+
* @internal
|
|
545
|
+
*/
|
|
422
546
|
getSwapType<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
|
|
547
|
+
/**
|
|
548
|
+
* Returns type of the swap based on input and output tokens specified
|
|
549
|
+
*
|
|
550
|
+
* @param srcToken Source token
|
|
551
|
+
* @param dstToken Destination token
|
|
552
|
+
*/
|
|
423
553
|
getSwapType<C extends ChainIds<T>>(srcToken: Token<C>, dstToken: Token<C>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN;
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
readonly requiresInputWallet: false;
|
|
442
|
-
readonly requiresOutputWallet: true;
|
|
443
|
-
readonly supportsGasDrop: false;
|
|
444
|
-
};
|
|
445
|
-
readonly 6: {
|
|
446
|
-
readonly requiresInputWallet: true;
|
|
447
|
-
readonly requiresOutputWallet: false;
|
|
448
|
-
readonly supportsGasDrop: true;
|
|
449
|
-
};
|
|
450
|
-
readonly 7: {
|
|
451
|
-
readonly requiresInputWallet: false;
|
|
452
|
-
readonly requiresOutputWallet: false;
|
|
453
|
-
readonly supportsGasDrop: true;
|
|
454
|
-
};
|
|
455
|
-
readonly 4: {
|
|
456
|
-
readonly requiresInputWallet: false;
|
|
457
|
-
readonly requiresOutputWallet: false;
|
|
458
|
-
readonly supportsGasDrop: false;
|
|
459
|
-
};
|
|
460
|
-
readonly 5: {
|
|
461
|
-
readonly requiresInputWallet: false;
|
|
462
|
-
readonly requiresOutputWallet: false;
|
|
463
|
-
readonly supportsGasDrop: false;
|
|
464
|
-
};
|
|
465
|
-
};
|
|
554
|
+
/**
|
|
555
|
+
* Helper information about various swap protocol and their features:
|
|
556
|
+
* - `requiresInputWallet`: Whether a swap requires a connected wallet on the input chain able to sign
|
|
557
|
+
* arbitrary transaction
|
|
558
|
+
* - `requiresOutputWallet`: Whether a swap requires a connected wallet on the output chain able to sign
|
|
559
|
+
* arbitrary transactions
|
|
560
|
+
* - `supportsGasDrop`: Whether a swap supports the "gas drop" feature, allowing to user to receive a small
|
|
561
|
+
* amount of native token as part of the swap when swapping to smart chains
|
|
562
|
+
*
|
|
563
|
+
* Uses a `Record` type here, use the {@link SwapProtocolInfo} import for a literal readonly type, with
|
|
564
|
+
* pre-filled exact values in the type.
|
|
565
|
+
*/
|
|
566
|
+
readonly SwapTypeInfo: Record<SwapType, {
|
|
567
|
+
requiresInputWallet: boolean;
|
|
568
|
+
requiresOutputWallet: boolean;
|
|
569
|
+
supportsGasDrop: boolean;
|
|
570
|
+
}>;
|
|
466
571
|
/**
|
|
467
572
|
* Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
|
|
468
573
|
*
|
|
469
|
-
* @param srcToken
|
|
470
|
-
* @param dstToken
|
|
574
|
+
* @param srcToken Source token
|
|
575
|
+
* @param dstToken Destination token
|
|
471
576
|
*/
|
|
472
577
|
getSwapLimits<C extends ChainIds<T>, A extends Token<C>, B extends Token<C>>(srcToken: A, dstToken: B): {
|
|
473
578
|
input: {
|
|
@@ -480,7 +585,7 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
|
|
|
480
585
|
};
|
|
481
586
|
};
|
|
482
587
|
/**
|
|
483
|
-
* Returns supported tokens
|
|
588
|
+
* Returns an array of supported tokens either on the input or on the output of a swap
|
|
484
589
|
*
|
|
485
590
|
* @param input Whether to return input tokens or output tokens
|
|
486
591
|
*/
|
|
@@ -494,7 +599,7 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
|
|
|
494
599
|
/**
|
|
495
600
|
* Returns the set of supported token addresses by all the intermediaries we know of offering a specific swapType service
|
|
496
601
|
*
|
|
497
|
-
* @param chainIdentifier
|
|
602
|
+
* @param chainIdentifier Chain identifier string
|
|
498
603
|
* @param swapType Specific swap type for which to obtain supported tokens
|
|
499
604
|
*/
|
|
500
605
|
private getSupportedTokenAddresses;
|
|
@@ -503,29 +608,5 @@ export declare class Swapper<T extends MultiChain> extends EventEmitter<{
|
|
|
503
608
|
* or tokens that you can swap from (if input=false) to a given token
|
|
504
609
|
*/
|
|
505
610
|
getSwapCounterTokens(token: Token, input: boolean): Token[];
|
|
506
|
-
/**
|
|
507
|
-
* Returns swap bounds (minimums & maximums) for different swap types & tokens
|
|
508
|
-
* @deprecated Use getSwapLimits() instead!
|
|
509
|
-
*/
|
|
510
|
-
getSwapBounds<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SwapBounds;
|
|
511
|
-
getSwapBounds(): MultichainSwapBounds;
|
|
512
|
-
/**
|
|
513
|
-
* Returns maximum possible swap amount
|
|
514
|
-
* @deprecated Use getSwapLimits() instead!
|
|
515
|
-
*
|
|
516
|
-
* @param chainIdentifier
|
|
517
|
-
* @param type Type of the swap
|
|
518
|
-
* @param token Token of the swap
|
|
519
|
-
*/
|
|
520
|
-
getMaximum<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, type: SwapType, token: string): bigint;
|
|
521
|
-
/**
|
|
522
|
-
* Returns minimum possible swap amount
|
|
523
|
-
* @deprecated Use getSwapLimits() instead!
|
|
524
|
-
*
|
|
525
|
-
* @param chainIdentifier
|
|
526
|
-
* @param type Type of swap
|
|
527
|
-
* @param token Token of the swap
|
|
528
|
-
*/
|
|
529
|
-
getMinimum<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, type: SwapType, token: string): bigint;
|
|
530
611
|
}
|
|
531
612
|
export {};
|