@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
|
@@ -7,24 +7,36 @@ const SwapWithSigner_1 = require("../types/SwapWithSigner");
|
|
|
7
7
|
* @category Core
|
|
8
8
|
*/
|
|
9
9
|
class SwapperWithSigner {
|
|
10
|
+
/**
|
|
11
|
+
* Pricing API used by the SDK
|
|
12
|
+
*/
|
|
10
13
|
get prices() {
|
|
11
14
|
return this.swapper.prices;
|
|
12
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Intermediary discovery instance
|
|
18
|
+
*/
|
|
13
19
|
get intermediaryDiscovery() {
|
|
14
20
|
return this.swapper.intermediaryDiscovery;
|
|
15
21
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
get bitcoinRpc() {
|
|
20
|
-
return this.swapper.bitcoinRpc;
|
|
21
|
-
}
|
|
22
|
-
get bitcoinNetwork() {
|
|
23
|
-
return this.swapper.bitcoinNetwork;
|
|
24
|
-
}
|
|
22
|
+
/**
|
|
23
|
+
* Miscellaneous utility functions
|
|
24
|
+
*/
|
|
25
25
|
get Utils() {
|
|
26
26
|
return this.swapper.Utils;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Helper information about various swap protocol and their features:
|
|
30
|
+
* - `requiresInputWallet`: Whether a swap requires a connected wallet on the input chain able to sign
|
|
31
|
+
* arbitrary transaction
|
|
32
|
+
* - `requiresOutputWallet`: Whether a swap requires a connected wallet on the output chain able to sign
|
|
33
|
+
* arbitrary transactions
|
|
34
|
+
* - `supportsGasDrop`: Whether a swap supports the "gas drop" feature, allowing to user to receive a small
|
|
35
|
+
* amount of native token as part of the swap when swapping to smart chains
|
|
36
|
+
*
|
|
37
|
+
* Uses a `Record` type here, use the {@link SwapProtocolInfo} import for a literal readonly type, with
|
|
38
|
+
* pre-filled exact values in the type.
|
|
39
|
+
*/
|
|
28
40
|
get SwapTypeInfo() {
|
|
29
41
|
return this.swapper.SwapTypeInfo;
|
|
30
42
|
}
|
|
@@ -33,43 +45,162 @@ class SwapperWithSigner {
|
|
|
33
45
|
this.signer = signer;
|
|
34
46
|
this.chainIdentifier = swapper.chainIdentifier;
|
|
35
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Creates Smart chain -> Bitcoin ({@link SwapType.TO_BTC}) swap
|
|
50
|
+
*
|
|
51
|
+
* @param tokenAddress Token address to pay with
|
|
52
|
+
* @param address Recipient's bitcoin address
|
|
53
|
+
* @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
|
|
54
|
+
* @param exactIn Whether to use exact in instead of exact out
|
|
55
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
56
|
+
* @param options Additional options for the swap
|
|
57
|
+
*/
|
|
36
58
|
createToBTCSwap(tokenAddress, address, amount, exactIn, additionalParams, options) {
|
|
37
59
|
return this.swapper.createToBTCSwap(this.signer.getAddress(), tokenAddress, address, amount, exactIn, additionalParams, options)
|
|
38
60
|
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
39
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap
|
|
64
|
+
*
|
|
65
|
+
* @param tokenAddress Token address to pay with
|
|
66
|
+
* @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount), and the swap
|
|
67
|
+
* amount is taken from this fixed amount, hence only exact output swaps are supported
|
|
68
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
69
|
+
* @param options Additional options for the swap
|
|
70
|
+
*/
|
|
40
71
|
createToBTCLNSwap(tokenAddress, paymentRequest, additionalParams, options) {
|
|
41
72
|
return this.swapper.createToBTCLNSwap(this.signer.getAddress(), tokenAddress, paymentRequest, additionalParams, options)
|
|
42
73
|
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
43
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via LNURL-pay link
|
|
77
|
+
*
|
|
78
|
+
* @param tokenAddress Token address to pay with
|
|
79
|
+
* @param lnurlPay LNURL-pay link to use for the payment
|
|
80
|
+
* @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
|
|
81
|
+
* @param exactIn Whether to do an exact in swap instead of exact out
|
|
82
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
83
|
+
* @param options Additional options for the swap
|
|
84
|
+
*/
|
|
44
85
|
createToBTCLNSwapViaLNURL(tokenAddress, lnurlPay, amount, exactIn, additionalParams, options) {
|
|
45
86
|
return this.swapper.createToBTCLNSwapViaLNURL(this.signer.getAddress(), tokenAddress, lnurlPay, amount, exactIn, additionalParams, options)
|
|
46
87
|
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
47
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via {@link LightningInvoiceCreateService}
|
|
91
|
+
*
|
|
92
|
+
* @param tokenAddress Token address to pay with
|
|
93
|
+
* @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
|
|
94
|
+
* @param amount Amount to send in token based units (if `exactIn=true`) or receive in satoshis (if `exactIn=false`)
|
|
95
|
+
* @param exactIn Whether to do an exact in swap instead of exact out
|
|
96
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
97
|
+
* @param options Additional options for the swap
|
|
98
|
+
*/
|
|
99
|
+
createToBTCLNSwapViaInvoiceCreateService(tokenAddress, service, amount, exactIn, additionalParams, options) {
|
|
100
|
+
return this.swapper.createToBTCLNSwapViaInvoiceCreateService(this.signer.getAddress(), tokenAddress, service, amount, exactIn, additionalParams, options)
|
|
101
|
+
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Creates Bitcoin -> Smart chain ({@link SwapType.SPV_VAULT_FROM_BTC}) swap
|
|
105
|
+
*
|
|
106
|
+
* @param tokenAddress Token address to receive
|
|
107
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
108
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
109
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
110
|
+
* @param options Additional options for the swap
|
|
111
|
+
*/
|
|
112
|
+
createFromBTCSwapNew(tokenAddress, amount, exactOut, additionalParams, options) {
|
|
113
|
+
return this.swapper.createFromBTCSwapNew(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
|
|
114
|
+
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Creates LEGACY Bitcoin -> Smart chain ({@link SwapType.FROM_BTC}) swap
|
|
118
|
+
*
|
|
119
|
+
* @param tokenAddress Token address to receive
|
|
120
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
121
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
122
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
123
|
+
* @param options Additional options for the swap
|
|
124
|
+
*/
|
|
48
125
|
createFromBTCSwap(tokenAddress, amount, exactOut, additionalParams, options) {
|
|
49
126
|
return this.swapper.createFromBTCSwap(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
|
|
50
127
|
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
51
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap
|
|
131
|
+
*
|
|
132
|
+
* @param tokenAddress Token address to receive
|
|
133
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
134
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
135
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
136
|
+
* @param options Additional options for the swap
|
|
137
|
+
*/
|
|
52
138
|
createFromBTCLNSwap(tokenAddress, amount, exactOut, additionalParams, options) {
|
|
53
139
|
return this.swapper.createFromBTCLNSwap(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
|
|
54
140
|
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
55
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap, withdrawing from
|
|
144
|
+
* an LNURL-withdraw link
|
|
145
|
+
*
|
|
146
|
+
* @param tokenAddress Token address to receive
|
|
147
|
+
* @param lnurl LNURL-withdraw link to pull the funds from
|
|
148
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
149
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
150
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
151
|
+
*/
|
|
56
152
|
createFromBTCLNSwapViaLNURL(tokenAddress, lnurl, amount, exactOut, additionalParams) {
|
|
57
153
|
return this.swapper.createFromBTCLNSwapViaLNURL(this.signer.getAddress(), tokenAddress, lnurl, amount, exactOut, additionalParams)
|
|
58
154
|
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
59
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap
|
|
158
|
+
*
|
|
159
|
+
* @param tokenAddress Token address to receive
|
|
160
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
161
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
162
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
163
|
+
* @param options Additional options for the swap
|
|
164
|
+
*/
|
|
60
165
|
createFromBTCLNSwapNew(tokenAddress, amount, exactOut, additionalParams, options) {
|
|
61
166
|
return this.swapper.createFromBTCLNSwapNew(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
|
|
62
167
|
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
63
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap, withdrawing from
|
|
171
|
+
* an LNURL-withdraw link
|
|
172
|
+
*
|
|
173
|
+
* @param tokenAddress Token address to receive
|
|
174
|
+
* @param lnurl LNURL-withdraw link to pull the funds from
|
|
175
|
+
* @param amount Amount to send in satoshis (if `exactOut=false`) or receive in token based units (if `exactOut=true`)
|
|
176
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
177
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
178
|
+
* @param options Additional options for the swap
|
|
179
|
+
*/
|
|
64
180
|
createFromBTCLNSwapNewViaLNURL(tokenAddress, lnurl, amount, exactOut, additionalParams, options) {
|
|
65
181
|
return this.swapper.createFromBTCLNSwapNewViaLNURL(this.signer.getAddress(), tokenAddress, lnurl, amount, exactOut, additionalParams, options)
|
|
66
182
|
.then(swap => (0, SwapWithSigner_1.wrapSwapWithSigner)(swap, this.signer));
|
|
67
183
|
}
|
|
68
|
-
|
|
69
|
-
|
|
184
|
+
/**
|
|
185
|
+
* Creates a trusted Bitcoin Lightning -> Smart chain ({@link SwapType.TRUSTED_FROM_BTCLN}) gas swap
|
|
186
|
+
*
|
|
187
|
+
* @param amount Amount of native token to receive, in base units
|
|
188
|
+
* @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
|
|
189
|
+
* @throws {Error} If no trusted intermediary specified
|
|
190
|
+
*/
|
|
191
|
+
createTrustedLNForGasSwap(amount, trustedIntermediaryOrUrl) {
|
|
192
|
+
return this.swapper.createTrustedLNForGasSwap(this.signer.getAddress(), amount, trustedIntermediaryOrUrl);
|
|
70
193
|
}
|
|
71
|
-
|
|
72
|
-
|
|
194
|
+
/**
|
|
195
|
+
* Creates a trusted Bitcoin -> Smart chain ({@link SwapType.TRUSTED_FROM_BTC}) gas swap
|
|
196
|
+
*
|
|
197
|
+
* @param amount Amount of native token to receive, in base units
|
|
198
|
+
* @param refundAddress Bitcoin refund address, in case the swap fails the funds are refunded here
|
|
199
|
+
* @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
|
|
200
|
+
* @throws {Error} If no trusted intermediary specified
|
|
201
|
+
*/
|
|
202
|
+
createTrustedOnchainForGasSwap(amount, refundAddress, trustedIntermediaryOrUrl) {
|
|
203
|
+
return this.swapper.createTrustedOnchainForGasSwap(this.signer.getAddress(), amount, refundAddress, trustedIntermediaryOrUrl);
|
|
73
204
|
}
|
|
74
205
|
/**
|
|
75
206
|
* Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
|
|
@@ -111,23 +242,67 @@ class SwapperWithSigner {
|
|
|
111
242
|
getSwapById(id) {
|
|
112
243
|
return this.swapper.getSwapById(id, this.signer.getAddress());
|
|
113
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* Returns the swap with a proper return type, or `undefined` if not found or has wrong type
|
|
247
|
+
*
|
|
248
|
+
* @param id An ID of the swap ({@link ISwap.getId})
|
|
249
|
+
* @param swapType Type of the swap
|
|
250
|
+
*/
|
|
251
|
+
async getTypedSwapById(id, swapType) {
|
|
252
|
+
return this.swapper.getTypedSwapById(id, swapType, this.signer.getAddress());
|
|
253
|
+
}
|
|
114
254
|
/**
|
|
115
255
|
* Synchronizes swaps from chain, this is usually ran when SDK is initialized, deletes expired quotes
|
|
116
256
|
*/
|
|
117
257
|
async _syncSwaps() {
|
|
118
258
|
return this.swapper._syncSwaps(this.signer.getAddress());
|
|
119
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Recovers swaps from on-chain historical data.
|
|
262
|
+
*
|
|
263
|
+
* Please note that the recovered swaps might not be complete (i.e. missing amounts or addresses), as some
|
|
264
|
+
* of the swap data is purely off-chain and can never be recovered purely from on-chain data. This
|
|
265
|
+
* functions tries to recover as much swap data as possible.
|
|
266
|
+
*
|
|
267
|
+
* @param startBlockheight Optional starting blockheight for swap data recovery, will only check swaps
|
|
268
|
+
* initiated after this blockheight
|
|
269
|
+
*/
|
|
270
|
+
async recoverSwaps(startBlockheight) {
|
|
271
|
+
return this.swapper.recoverSwaps(this.signer.getAddress(), startBlockheight);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Returns the {@link Token} object for a given token
|
|
275
|
+
*
|
|
276
|
+
* @param tickerOrAddress Token to return the object for, can use multiple formats:
|
|
277
|
+
* - a) token ticker, such as `"BTC"`, `"SOL"`, etc.
|
|
278
|
+
* - b) token ticker prefixed with smart chain identifier, such as `"SOLANA-SOL"`, `"SOLANA-USDC"`, etc.
|
|
279
|
+
* - c) token address
|
|
280
|
+
*/
|
|
281
|
+
getToken(tickerOrAddress) {
|
|
282
|
+
return this.swapper.getToken(tickerOrAddress);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Returns whether the SDK supports a given swap type on this chain based on currently known LPs
|
|
286
|
+
*
|
|
287
|
+
* @param swapType Swap protocol type
|
|
288
|
+
*/
|
|
120
289
|
supportsSwapType(swapType) {
|
|
121
290
|
return this.swapper.supportsSwapType(swapType);
|
|
122
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Returns type of the swap based on input and output tokens specified
|
|
294
|
+
*
|
|
295
|
+
* @param srcToken Source token
|
|
296
|
+
* @param dstToken Destination token
|
|
297
|
+
*/
|
|
123
298
|
getSwapType(srcToken, dstToken) {
|
|
124
299
|
return this.swapper.getSwapType(srcToken, dstToken);
|
|
125
300
|
}
|
|
126
301
|
/**
|
|
127
302
|
* Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
|
|
128
303
|
*
|
|
129
|
-
* @param srcToken
|
|
130
|
-
* @param dstToken
|
|
304
|
+
* @param srcToken Source token
|
|
305
|
+
* @param dstToken Destination token
|
|
131
306
|
*/
|
|
132
307
|
getSwapLimits(srcToken, dstToken) {
|
|
133
308
|
return this.swapper.getSwapLimits(srcToken, dstToken);
|
|
@@ -139,34 +314,5 @@ class SwapperWithSigner {
|
|
|
139
314
|
getSwapCounterTokens(token, input) {
|
|
140
315
|
return this.swapper.getSwapCounterTokens(token, input);
|
|
141
316
|
}
|
|
142
|
-
///////////////////////////////////
|
|
143
|
-
/// Deprecated
|
|
144
|
-
/**
|
|
145
|
-
* Returns swap bounds (minimums & maximums) for different swap types & tokens
|
|
146
|
-
* @deprecated Use getSwapLimits() instead!
|
|
147
|
-
*/
|
|
148
|
-
getSwapBounds() {
|
|
149
|
-
return this.swapper.getSwapBounds();
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Returns maximum possible swap amount
|
|
153
|
-
* @deprecated Use getSwapLimits() instead!
|
|
154
|
-
*
|
|
155
|
-
* @param type Type of the swap
|
|
156
|
-
* @param token Token of the swap
|
|
157
|
-
*/
|
|
158
|
-
getMaximum(type, token) {
|
|
159
|
-
return this.swapper.getMaximum(type, token);
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Returns minimum possible swap amount
|
|
163
|
-
* @deprecated Use getSwapLimits() instead!
|
|
164
|
-
*
|
|
165
|
-
* @param type Type of swap
|
|
166
|
-
* @param token Token of the swap
|
|
167
|
-
*/
|
|
168
|
-
getMinimum(type, token) {
|
|
169
|
-
return this.swapper.getMinimum(type, token);
|
|
170
|
-
}
|
|
171
317
|
}
|
|
172
318
|
exports.SwapperWithSigner = SwapperWithSigner;
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Type guard to check if an object is an IAddressSwap
|
|
2
|
+
* Type guard to check if an object is an {@link IAddressSwap}
|
|
3
|
+
*
|
|
3
4
|
* @category Swaps
|
|
4
5
|
*/
|
|
5
6
|
export declare function isIAddressSwap(obj: any): obj is IAddressSwap;
|
|
6
7
|
/**
|
|
7
8
|
* Interface for swaps which require a user to send funds to a specific address
|
|
9
|
+
*
|
|
8
10
|
* @category Swaps
|
|
9
11
|
*/
|
|
10
12
|
export interface IAddressSwap {
|
|
13
|
+
/**
|
|
14
|
+
* An address to which the user needs to send funds on the source chain
|
|
15
|
+
*/
|
|
11
16
|
getAddress(): string;
|
|
17
|
+
/**
|
|
18
|
+
* A hyperlink representation of the address + amount that the user needs to sends on the source chain.
|
|
19
|
+
* This is suitable to be displayed in a form of QR code.
|
|
20
|
+
*/
|
|
12
21
|
getHyperlink(): string;
|
|
13
22
|
}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isIAddressSwap = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Type guard to check if an object is an IAddressSwap
|
|
5
|
+
* Type guard to check if an object is an {@link IAddressSwap}
|
|
6
|
+
*
|
|
6
7
|
* @category Swaps
|
|
7
8
|
*/
|
|
8
9
|
function isIAddressSwap(obj) {
|
|
@@ -4,22 +4,24 @@ import { MinimalBitcoinWalletInterface, MinimalBitcoinWalletInterfaceWithSigner
|
|
|
4
4
|
import { TokenAmount } from "../types/TokenAmount";
|
|
5
5
|
import { BtcToken } from "../types/Token";
|
|
6
6
|
/**
|
|
7
|
-
* Type guard to check if an object is an IBTCWalletSwap
|
|
7
|
+
* Type guard to check if an object is an {@link IBTCWalletSwap}
|
|
8
|
+
*
|
|
8
9
|
* @category Swaps
|
|
9
10
|
*/
|
|
10
11
|
export declare function isIBTCWalletSwap(obj: any): obj is IBTCWalletSwap;
|
|
11
12
|
/**
|
|
12
13
|
* Interface for swaps requiring Bitcoin wallet interaction
|
|
14
|
+
*
|
|
13
15
|
* @category Swaps
|
|
14
16
|
*/
|
|
15
17
|
export interface IBTCWalletSwap {
|
|
16
18
|
/**
|
|
17
19
|
* Returns the PSBT that is already funded with wallet's UTXOs (runs a coin-selection algorithm to choose UTXOs to use),
|
|
18
20
|
* also returns inputs indices that need to be signed by the wallet before submitting the PSBT back to the SDK with
|
|
19
|
-
*
|
|
21
|
+
* {@link submitPsbt}
|
|
20
22
|
*
|
|
21
23
|
* @param _bitcoinWallet Sender's bitcoin wallet
|
|
22
|
-
* @param feeRate Optional fee rate for the transaction
|
|
24
|
+
* @param feeRate Optional fee rate in sats/vB for the transaction
|
|
23
25
|
* @param additionalOutputs additional outputs to add to the PSBT - can be used to collect fees from users
|
|
24
26
|
*/
|
|
25
27
|
getFundedPsbt(_bitcoinWallet: IBitcoinWallet | MinimalBitcoinWalletInterface, feeRate?: number, additionalOutputs?: ({
|
|
@@ -37,19 +39,35 @@ export interface IBTCWalletSwap {
|
|
|
37
39
|
/**
|
|
38
40
|
* Submits a PSBT signed by the wallet back to the SDK
|
|
39
41
|
*
|
|
40
|
-
* @param psbt A
|
|
42
|
+
* @param psbt A PSBT, either a Transaction object or a hex or base64 encoded PSBT string
|
|
41
43
|
*/
|
|
42
44
|
submitPsbt(psbt: Transaction | string): Promise<string>;
|
|
45
|
+
/**
|
|
46
|
+
* Estimates a bitcoin on-chain fee paid for the bitcoin swap transaction
|
|
47
|
+
*
|
|
48
|
+
* @param wallet Sender's bitcoin wallet
|
|
49
|
+
* @param feeRate Optional fee rate in sats/vB for the transaction
|
|
50
|
+
*/
|
|
43
51
|
estimateBitcoinFee(wallet: IBitcoinWallet | MinimalBitcoinWalletInterface, feeRate?: number): Promise<TokenAmount<any, BtcToken<false>> | null>;
|
|
52
|
+
/**
|
|
53
|
+
* Sends a swap bitcoin transaction via the passed bitcoin wallet
|
|
54
|
+
*
|
|
55
|
+
* @param wallet Sender's bitcoin wallet
|
|
56
|
+
* @param feeRate Optional fee rate in sats/vB for the transaction
|
|
57
|
+
*/
|
|
44
58
|
sendBitcoinTransaction(wallet: IBitcoinWallet | MinimalBitcoinWalletInterfaceWithSigner, feeRate?: number): Promise<string>;
|
|
45
59
|
/**
|
|
46
|
-
* Waits till the bitcoin transaction
|
|
60
|
+
* Waits till the bitcoin transaction gets the required number of confirmations
|
|
47
61
|
*
|
|
48
62
|
* @param updateCallback Callback called when txId is found, and also called with subsequent confirmations
|
|
49
63
|
* @param checkIntervalSeconds How often to check the bitcoin transaction
|
|
50
64
|
* @param abortSignal Abort signal
|
|
51
|
-
* @throws {Error} if in invalid state
|
|
65
|
+
* @throws {Error} if in invalid state
|
|
52
66
|
*/
|
|
53
67
|
waitForBitcoinTransaction(updateCallback?: (txId?: string, confirmations?: number, targetConfirmations?: number, txEtaMs?: number) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<string>;
|
|
68
|
+
/**
|
|
69
|
+
* Returns the number of confirmations required for the bitcoin transaction for this swap
|
|
70
|
+
* to complete and settle
|
|
71
|
+
*/
|
|
54
72
|
getRequiredConfirmationsCount(): number;
|
|
55
73
|
}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isIBTCWalletSwap = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Type guard to check if an object is an IBTCWalletSwap
|
|
5
|
+
* Type guard to check if an object is an {@link IBTCWalletSwap}
|
|
6
|
+
*
|
|
6
7
|
* @category Swaps
|
|
7
8
|
*/
|
|
8
9
|
function isIBTCWalletSwap(obj) {
|
|
@@ -2,16 +2,48 @@ import { ChainType } from "@atomiqlabs/base";
|
|
|
2
2
|
import { ISwap } from "./ISwap";
|
|
3
3
|
import { ISwapWrapper, SwapTypeDefinition } from "./ISwapWrapper";
|
|
4
4
|
/**
|
|
5
|
-
* Type guard to check if an object is an IClaimableSwap
|
|
5
|
+
* Type guard to check if an object is an {@link IClaimableSwap}
|
|
6
|
+
*
|
|
6
7
|
* @category Swaps
|
|
7
8
|
*/
|
|
8
9
|
export declare function isIClaimableSwap(obj: any): obj is IClaimableSwap;
|
|
9
10
|
/**
|
|
10
|
-
* Interface for swaps that can
|
|
11
|
+
* Interface for swaps that can end up in a claimable state, requiring the user to claim the
|
|
12
|
+
* assets on the destination chain.
|
|
13
|
+
*
|
|
11
14
|
* @category Swaps
|
|
12
15
|
*/
|
|
13
16
|
export interface IClaimableSwap<T extends ChainType = ChainType, D extends SwapTypeDefinition<T, ISwapWrapper<T, D>, IClaimableSwap<T, D, S>> = SwapTypeDefinition<T, ISwapWrapper<T, any>, IClaimableSwap<T, any, any>>, S extends number = number> extends ISwap<T, D, S> {
|
|
17
|
+
/**
|
|
18
|
+
* Checks whether a swap currently requires a manual claiming (settlement)
|
|
19
|
+
*/
|
|
14
20
|
isClaimable(): boolean;
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Returns transactions for settling (claiming) the swap if the swap requires manual settlement, you can check
|
|
23
|
+
* so with {@link isClaimable}. After sending the transaction manually be sure to call the {@link waitTillClaimed}
|
|
24
|
+
* function to wait till the claim transaction is observed, processed by the SDK and state of the swap
|
|
25
|
+
* properly updated.
|
|
26
|
+
*
|
|
27
|
+
* @param _signer Address of the signer to create the refund transactions for
|
|
28
|
+
*/
|
|
29
|
+
txsClaim(_signer?: string | T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
|
|
30
|
+
/**
|
|
31
|
+
* Settles the swap by claiming the funds on the destination chain if the swap requires manual settlement,
|
|
32
|
+
* you can check so with {@link isClaimable}
|
|
33
|
+
*
|
|
34
|
+
* @param _signer Signer to use for signing the settlement transactions
|
|
35
|
+
* @param abortSignal Abort signal
|
|
36
|
+
* @param onBeforeTxSent Optional callback triggered before the claim transaction is broadcasted
|
|
37
|
+
*/
|
|
38
|
+
claim(_signer?: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, onBeforeTxSent?: (txId: string) => void): Promise<string>;
|
|
39
|
+
/**
|
|
40
|
+
* Waits till the swap is successfully settled (claimed), should be called after sending the claim (settlement)
|
|
41
|
+
* transactions manually to wait till the SDK processes the settlement and updates the swap state accordingly
|
|
42
|
+
*
|
|
43
|
+
* @param maxWaitTimeSeconds Maximum time in seconds to wait for the swap to be settled
|
|
44
|
+
* @param abortSignal AbortSignal
|
|
45
|
+
*
|
|
46
|
+
* @returns {boolean} whether the swap was claimed in time or not
|
|
47
|
+
*/
|
|
48
|
+
waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
|
|
17
49
|
}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isIClaimableSwap = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Type guard to check if an object is an IClaimableSwap
|
|
5
|
+
* Type guard to check if an object is an {@link IClaimableSwap}
|
|
6
|
+
*
|
|
6
7
|
* @category Swaps
|
|
7
8
|
*/
|
|
8
9
|
function isIClaimableSwap(obj) {
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { ISwap } from "./ISwap";
|
|
2
2
|
import { IClaimableSwap } from "./IClaimableSwap";
|
|
3
|
+
/**
|
|
4
|
+
* Interface for a swap wrapper for swaps that can end up in a claimable state, requiring the user to claim the
|
|
5
|
+
* assets on the destination chain.
|
|
6
|
+
*
|
|
7
|
+
* @category Swaps
|
|
8
|
+
*/
|
|
3
9
|
export interface IClaimableSwapWrapper<T extends ISwap & IClaimableSwap = ISwap & IClaimableSwap> {
|
|
4
|
-
|
|
10
|
+
/**
|
|
11
|
+
* A list of swap states when the swap is potentially claimable
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
_claimableSwapStates: T["_state"][];
|
|
5
15
|
}
|
|
@@ -2,16 +2,42 @@ import { ChainType } from "@atomiqlabs/base";
|
|
|
2
2
|
import { ISwap } from "./ISwap";
|
|
3
3
|
import { ISwapWrapper, SwapTypeDefinition } from "./ISwapWrapper";
|
|
4
4
|
/**
|
|
5
|
-
* Type guard to check if an object is an IRefundableSwap
|
|
5
|
+
* Type guard to check if an object is an {@link IRefundableSwap}
|
|
6
|
+
*
|
|
6
7
|
* @category Swaps
|
|
7
8
|
*/
|
|
8
9
|
export declare function isIRefundableSwap(obj: any): obj is IRefundableSwap;
|
|
9
10
|
/**
|
|
10
|
-
* Interface for swaps that can be refunded
|
|
11
|
+
* Interface for swaps that can be refunded in case of failure
|
|
12
|
+
*
|
|
11
13
|
* @category Swaps
|
|
12
14
|
*/
|
|
13
15
|
export interface IRefundableSwap<T extends ChainType = ChainType, D extends SwapTypeDefinition<T, ISwapWrapper<T, D>, IRefundableSwap<T, D, S>> = SwapTypeDefinition<T, ISwapWrapper<T, any>, IRefundableSwap<T, any, any>>, S extends number = number> extends ISwap<T, D, S> {
|
|
16
|
+
/**
|
|
17
|
+
* Checks whether a swap is currently refundable
|
|
18
|
+
*/
|
|
14
19
|
isRefundable(): boolean;
|
|
15
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Returns transactions for refunding the swap if the swap is in refundable state, you can check so with
|
|
22
|
+
* {@link isRefundable}. After sending the transaction manually be sure to call the {@link waitTillRefunded}
|
|
23
|
+
* function to wait till the refund transaction is observed, processed by the SDK and state of the swap
|
|
24
|
+
* properly updated.
|
|
25
|
+
*
|
|
26
|
+
* @param _signer Address of the signer to create the refund transactions for
|
|
27
|
+
*/
|
|
28
|
+
txsRefund(_signer?: string): Promise<T["TX"][]>;
|
|
29
|
+
/**
|
|
30
|
+
* Refunds the swap if the swap is in refundable state, you can check so with {@link isRefundable}
|
|
31
|
+
*
|
|
32
|
+
* @param _signer Signer to sign the transactions with, must be the same as used in the initialization
|
|
33
|
+
* @param abortSignal Abort signal
|
|
34
|
+
*/
|
|
16
35
|
refund(_signer?: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal): Promise<string>;
|
|
36
|
+
/**
|
|
37
|
+
* Waits till a swap is refunded, should be called after sending the refund transactions manually to
|
|
38
|
+
* wait till the SDK processes the refund and updates the swap state accordingly
|
|
39
|
+
*
|
|
40
|
+
* @param abortSignal AbortSignal
|
|
41
|
+
*/
|
|
42
|
+
waitTillRefunded(abortSignal?: AbortSignal): Promise<void>;
|
|
17
43
|
}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isIRefundableSwap = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Type guard to check if an object is an IRefundableSwap
|
|
5
|
+
* Type guard to check if an object is an {@link IRefundableSwap}
|
|
6
|
+
*
|
|
6
7
|
* @category Swaps
|
|
7
8
|
*/
|
|
8
9
|
function isIRefundableSwap(obj) {
|