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