@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
|
@@ -8,24 +8,34 @@ const UserError_1 = require("../errors/UserError");
|
|
|
8
8
|
const Token_1 = require("../types/Token");
|
|
9
9
|
/**
|
|
10
10
|
* Chain-specific wrapper around Swapper for a particular blockchain
|
|
11
|
+
*
|
|
11
12
|
* @category Core
|
|
12
13
|
*/
|
|
13
14
|
class SwapperWithChain {
|
|
15
|
+
/**
|
|
16
|
+
* Intermediary discovery instance
|
|
17
|
+
*/
|
|
14
18
|
get intermediaryDiscovery() {
|
|
15
19
|
return this.swapper.intermediaryDiscovery;
|
|
16
20
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
get bitcoinRpc() {
|
|
21
|
-
return this.swapper.bitcoinRpc;
|
|
22
|
-
}
|
|
23
|
-
get bitcoinNetwork() {
|
|
24
|
-
return this.swapper.bitcoinNetwork;
|
|
25
|
-
}
|
|
21
|
+
/**
|
|
22
|
+
* Miscellaneous utility functions
|
|
23
|
+
*/
|
|
26
24
|
get Utils() {
|
|
27
25
|
return this.swapper.Utils;
|
|
28
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Helper information about various swap protocol and their features:
|
|
29
|
+
* - `requiresInputWallet`: Whether a swap requires a connected wallet on the input chain able to sign
|
|
30
|
+
* arbitrary transaction
|
|
31
|
+
* - `requiresOutputWallet`: Whether a swap requires a connected wallet on the output chain able to sign
|
|
32
|
+
* arbitrary transactions
|
|
33
|
+
* - `supportsGasDrop`: Whether a swap supports the "gas drop" feature, allowing to user to receive a small
|
|
34
|
+
* amount of native token as part of the swap when swapping to smart chains
|
|
35
|
+
*
|
|
36
|
+
* Uses a `Record` type here, use the {@link SwapProtocolInfo} import for a literal readonly type, with
|
|
37
|
+
* pre-filled exact values in the type.
|
|
38
|
+
*/
|
|
29
39
|
get SwapTypeInfo() {
|
|
30
40
|
return this.swapper.SwapTypeInfo;
|
|
31
41
|
}
|
|
@@ -34,38 +44,164 @@ class SwapperWithChain {
|
|
|
34
44
|
this.chainIdentifier = chainIdentifier;
|
|
35
45
|
this.prices = new SwapPriceWithChain_1.SwapPriceWithChain(swapper.prices, chainIdentifier);
|
|
36
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Creates Smart chain -> Bitcoin ({@link SwapType.TO_BTC}) swap
|
|
49
|
+
*
|
|
50
|
+
* @param signer Signer's address on the source chain
|
|
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
|
+
*/
|
|
37
58
|
createToBTCSwap(signer, tokenAddress, address, amount, exactIn, additionalParams, options) {
|
|
38
59
|
return this.swapper.createToBTCSwap(this.chainIdentifier, signer, tokenAddress, address, amount, exactIn, additionalParams, options);
|
|
39
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap
|
|
63
|
+
*
|
|
64
|
+
* @param signer Signer's address on the source chain
|
|
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(signer, tokenAddress, paymentRequest, additionalParams, options) {
|
|
41
72
|
return this.swapper.createToBTCLNSwap(this.chainIdentifier, signer, tokenAddress, paymentRequest, additionalParams, options);
|
|
42
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via LNURL-pay link
|
|
76
|
+
*
|
|
77
|
+
* @param signer Signer's address on the source chain
|
|
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
|
+
*/
|
|
43
85
|
createToBTCLNSwapViaLNURL(signer, tokenAddress, lnurlPay, amount, exactIn, additionalParams, options) {
|
|
44
86
|
return this.swapper.createToBTCLNSwapViaLNURL(this.chainIdentifier, signer, tokenAddress, lnurlPay, amount, exactIn, additionalParams, options);
|
|
45
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Creates Smart chain -> Bitcoin Lightning ({@link SwapType.TO_BTCLN}) swap via {@link LightningInvoiceCreateService}
|
|
90
|
+
*
|
|
91
|
+
* @param signer Signer's address on the source chain
|
|
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
|
+
*/
|
|
46
99
|
createToBTCLNSwapViaInvoiceCreateService(signer, tokenAddress, service, amount, exactIn, additionalParams, options) {
|
|
47
100
|
return this.swapper.createToBTCLNSwapViaInvoiceCreateService(this.chainIdentifier, signer, tokenAddress, service, amount, exactIn, additionalParams, options);
|
|
48
101
|
}
|
|
49
|
-
|
|
50
|
-
|
|
102
|
+
/**
|
|
103
|
+
* Creates Bitcoin -> Smart chain ({@link SwapType.SPV_VAULT_FROM_BTC}) swap
|
|
104
|
+
*
|
|
105
|
+
* @param recipient Recipient address on the destination chain
|
|
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
|
+
async createFromBTCSwapNew(recipient, tokenAddress, amount, exactOut = false, additionalParams, options) {
|
|
113
|
+
return this.swapper.createFromBTCSwapNew(this.chainIdentifier, recipient, tokenAddress, amount, exactOut, additionalParams, options);
|
|
51
114
|
}
|
|
52
|
-
|
|
53
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Creates LEGACY Bitcoin -> Smart chain ({@link SwapType.FROM_BTC}) swap
|
|
117
|
+
*
|
|
118
|
+
* @param recipient Recipient address on the destination chain
|
|
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
|
+
*/
|
|
125
|
+
createFromBTCSwap(recipient, tokenAddress, amount, exactOut, additionalParams, options) {
|
|
126
|
+
return this.swapper.createFromBTCSwap(this.chainIdentifier, recipient, tokenAddress, amount, exactOut, additionalParams, options);
|
|
54
127
|
}
|
|
55
|
-
|
|
56
|
-
|
|
128
|
+
/**
|
|
129
|
+
* Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap
|
|
130
|
+
*
|
|
131
|
+
* @param recipient Recipient address on the destination chain
|
|
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
|
+
*/
|
|
138
|
+
createFromBTCLNSwap(recipient, tokenAddress, amount, exactOut, additionalParams, options) {
|
|
139
|
+
return this.swapper.createFromBTCLNSwap(this.chainIdentifier, recipient, tokenAddress, amount, exactOut, additionalParams, options);
|
|
57
140
|
}
|
|
58
|
-
|
|
59
|
-
|
|
141
|
+
/**
|
|
142
|
+
* Creates LEGACY Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN}) swap, withdrawing from
|
|
143
|
+
* an LNURL-withdraw link
|
|
144
|
+
*
|
|
145
|
+
* @param recipient Recipient address on the destination chain
|
|
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
|
+
*/
|
|
152
|
+
createFromBTCLNSwapViaLNURL(recipient, tokenAddress, lnurl, amount, exactOut, additionalParams) {
|
|
153
|
+
return this.swapper.createFromBTCLNSwapViaLNURL(this.chainIdentifier, recipient, tokenAddress, lnurl, amount, exactOut, additionalParams);
|
|
60
154
|
}
|
|
61
|
-
|
|
62
|
-
|
|
155
|
+
/**
|
|
156
|
+
* Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap
|
|
157
|
+
*
|
|
158
|
+
* @param recipient Recipient address on the destination chain
|
|
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
|
+
*/
|
|
165
|
+
createFromBTCLNSwapNew(recipient, tokenAddress, amount, exactOut, additionalParams, options) {
|
|
166
|
+
return this.swapper.createFromBTCLNSwapNew(this.chainIdentifier, recipient, tokenAddress, amount, exactOut, additionalParams, options);
|
|
63
167
|
}
|
|
64
|
-
|
|
65
|
-
|
|
168
|
+
/**
|
|
169
|
+
* Creates Bitcoin Lightning -> Smart chain ({@link SwapType.FROM_BTCLN_AUTO}) swap, withdrawing from
|
|
170
|
+
* an LNURL-withdraw link
|
|
171
|
+
*
|
|
172
|
+
* @param recipient Recipient address on the destination chain
|
|
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
|
+
*/
|
|
180
|
+
createFromBTCLNSwapNewViaLNURL(recipient, tokenAddress, lnurl, amount, exactOut, additionalParams, options) {
|
|
181
|
+
return this.swapper.createFromBTCLNSwapNewViaLNURL(this.chainIdentifier, recipient, tokenAddress, lnurl, amount, exactOut, additionalParams, options);
|
|
66
182
|
}
|
|
67
|
-
|
|
68
|
-
|
|
183
|
+
/**
|
|
184
|
+
* Creates a trusted Bitcoin Lightning -> Smart chain ({@link SwapType.TRUSTED_FROM_BTCLN}) gas swap
|
|
185
|
+
*
|
|
186
|
+
* @param recipient Recipient address on the destination chain
|
|
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(recipient, amount, trustedIntermediaryOrUrl) {
|
|
192
|
+
return this.swapper.createTrustedLNForGasSwap(this.chainIdentifier, recipient, amount, trustedIntermediaryOrUrl);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Creates a trusted Bitcoin -> Smart chain ({@link SwapType.TRUSTED_FROM_BTC}) gas swap
|
|
196
|
+
*
|
|
197
|
+
* @param recipient Recipient address on the destination chain
|
|
198
|
+
* @param amount Amount of native token to receive, in base units
|
|
199
|
+
* @param refundAddress Bitcoin refund address, in case the swap fails the funds are refunded here
|
|
200
|
+
* @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
|
|
201
|
+
* @throws {Error} If no trusted intermediary specified
|
|
202
|
+
*/
|
|
203
|
+
createTrustedOnchainForGasSwap(recipient, amount, refundAddress, trustedIntermediaryOrUrl) {
|
|
204
|
+
return this.swapper.createTrustedOnchainForGasSwap(this.chainIdentifier, recipient, amount, refundAddress, trustedIntermediaryOrUrl);
|
|
69
205
|
}
|
|
70
206
|
/**
|
|
71
207
|
* Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
|
|
@@ -135,6 +271,48 @@ class SwapperWithChain {
|
|
|
135
271
|
getSwapById(id, signer) {
|
|
136
272
|
return this.swapper.getSwapById(id, this.chainIdentifier, signer);
|
|
137
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Returns the swap with a proper return type, or `undefined` if not found or has wrong type
|
|
276
|
+
*
|
|
277
|
+
* @param id An ID of the swap ({@link ISwap.getId})
|
|
278
|
+
* @param swapType Type of the swap
|
|
279
|
+
* @param signer An optional required smart chain signer address to fetch the swap for
|
|
280
|
+
*/
|
|
281
|
+
async getTypedSwapById(id, swapType, signer) {
|
|
282
|
+
return this.swapper.getTypedSwapById(id, this.chainIdentifier, swapType, signer);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Synchronizes swaps from on-chain, this is ran automatically when SDK is initialized, hence
|
|
286
|
+
* should only be ran manually when `dontCheckPastSwaps=true` is passed in the swapper options,
|
|
287
|
+
* also deletes expired quotes
|
|
288
|
+
*
|
|
289
|
+
* @param signer Optional signer to only run swap sync for swaps initiated by this signer
|
|
290
|
+
*/
|
|
291
|
+
async _syncSwaps(signer) {
|
|
292
|
+
return this.swapper._syncSwaps(this.chainIdentifier, signer);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Recovers swaps from on-chain historical data.
|
|
296
|
+
*
|
|
297
|
+
* Please note that the recovered swaps might not be complete (i.e. missing amounts or addresses), as some
|
|
298
|
+
* of the swap data is purely off-chain and can never be recovered purely from on-chain data. This
|
|
299
|
+
* functions tries to recover as much swap data as possible.
|
|
300
|
+
*
|
|
301
|
+
* @param signer Signer address to recover the swaps for
|
|
302
|
+
* @param startBlockheight Optional starting blockheight for swap data recovery, will only check swaps
|
|
303
|
+
* initiated after this blockheight
|
|
304
|
+
*/
|
|
305
|
+
async recoverSwaps(signer, startBlockheight) {
|
|
306
|
+
return this.swapper.recoverSwaps(this.chainIdentifier, signer, startBlockheight);
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Returns the {@link Token} object for a given token
|
|
310
|
+
*
|
|
311
|
+
* @param tickerOrAddress Token to return the object for, can use multiple formats:
|
|
312
|
+
* - a) token ticker, such as `"BTC"`, `"SOL"`, etc.
|
|
313
|
+
* - b) token ticker prefixed with smart chain identifier, such as `"SOLANA-SOL"`, `"SOLANA-USDC"`, etc.
|
|
314
|
+
* - c) token address
|
|
315
|
+
*/
|
|
138
316
|
getToken(tickerOrAddress) {
|
|
139
317
|
//Btc tokens - BTC, BTCLN, BTC-LN
|
|
140
318
|
if (tickerOrAddress === "BTC")
|
|
@@ -146,43 +324,48 @@ class SwapperWithChain {
|
|
|
146
324
|
const [chainId, ticker] = tickerOrAddress.split("-");
|
|
147
325
|
if (chainId !== this.chainIdentifier)
|
|
148
326
|
throw new UserError_1.UserError(`Invalid chainId specified in ticker: ${chainId}, swapper chainId: ${this.chainIdentifier}`);
|
|
149
|
-
const token = this.swapper.
|
|
327
|
+
const token = this.swapper._tokensByTicker[this.chainIdentifier]?.[ticker];
|
|
150
328
|
if (token == null)
|
|
151
329
|
throw new UserError_1.UserError(`Not found ticker: ${ticker} for chainId: ${chainId}`);
|
|
152
330
|
return token;
|
|
153
331
|
}
|
|
154
|
-
const chain = this.swapper.
|
|
332
|
+
const chain = this.swapper._chains[this.chainIdentifier];
|
|
155
333
|
if (chain.chainInterface.isValidToken(tickerOrAddress)) {
|
|
156
334
|
//Try to find in known token addresses
|
|
157
|
-
const token = this.swapper.
|
|
335
|
+
const token = this.swapper._tokens[this.chainIdentifier]?.[tickerOrAddress];
|
|
158
336
|
if (token != null)
|
|
159
337
|
return token;
|
|
160
338
|
}
|
|
161
339
|
else {
|
|
162
340
|
//Check in known tickers
|
|
163
|
-
const token = this.swapper.
|
|
341
|
+
const token = this.swapper._tokensByTicker[this.chainIdentifier]?.[tickerOrAddress];
|
|
164
342
|
if (token != null)
|
|
165
343
|
return token;
|
|
166
344
|
}
|
|
167
345
|
throw new UserError_1.UserError(`Specified token address or ticker ${tickerOrAddress} not found for chainId: ${this.chainIdentifier}!`);
|
|
168
346
|
}
|
|
169
347
|
/**
|
|
170
|
-
*
|
|
348
|
+
* Returns whether the SDK supports a given swap type on this chain based on currently known LPs
|
|
349
|
+
*
|
|
350
|
+
* @param swapType Swap protocol type
|
|
171
351
|
*/
|
|
172
|
-
async _syncSwaps(signer) {
|
|
173
|
-
return this.swapper._syncSwaps(this.chainIdentifier, signer);
|
|
174
|
-
}
|
|
175
352
|
supportsSwapType(swapType) {
|
|
176
353
|
return this.swapper.supportsSwapType(this.chainIdentifier, swapType);
|
|
177
354
|
}
|
|
355
|
+
/**
|
|
356
|
+
* Returns type of the swap based on input and output tokens specified
|
|
357
|
+
*
|
|
358
|
+
* @param srcToken Source token
|
|
359
|
+
* @param dstToken Destination token
|
|
360
|
+
*/
|
|
178
361
|
getSwapType(srcToken, dstToken) {
|
|
179
362
|
return this.swapper.getSwapType(srcToken, dstToken);
|
|
180
363
|
}
|
|
181
364
|
/**
|
|
182
365
|
* Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
|
|
183
366
|
*
|
|
184
|
-
* @param srcToken
|
|
185
|
-
* @param dstToken
|
|
367
|
+
* @param srcToken Source token
|
|
368
|
+
* @param dstToken Destination token
|
|
186
369
|
*/
|
|
187
370
|
getSwapLimits(srcToken, dstToken) {
|
|
188
371
|
return this.swapper.getSwapLimits(srcToken, dstToken);
|
|
@@ -204,7 +387,7 @@ class SwapperWithChain {
|
|
|
204
387
|
if (chainTokens == null)
|
|
205
388
|
return;
|
|
206
389
|
for (let tokenAddress of chainTokens) {
|
|
207
|
-
const token = this.swapper.
|
|
390
|
+
const token = this.swapper._tokens?.[this.chainIdentifier]?.[tokenAddress];
|
|
208
391
|
if (token != null)
|
|
209
392
|
tokens.push(token);
|
|
210
393
|
}
|
|
@@ -279,37 +462,8 @@ class SwapperWithChain {
|
|
|
279
462
|
*
|
|
280
463
|
* @param signer Signer to use for the new swapper instance
|
|
281
464
|
*/
|
|
282
|
-
|
|
465
|
+
withSigner(signer) {
|
|
283
466
|
return new SwapperWithSigner_1.SwapperWithSigner(this, signer);
|
|
284
467
|
}
|
|
285
|
-
///////////////////////////////////
|
|
286
|
-
/// Deprecated
|
|
287
|
-
/**
|
|
288
|
-
* Returns swap bounds (minimums & maximums) for different swap types & tokens
|
|
289
|
-
* @deprecated Use getSwapLimits() instead!
|
|
290
|
-
*/
|
|
291
|
-
getSwapBounds() {
|
|
292
|
-
return this.swapper.getSwapBounds(this.chainIdentifier);
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Returns maximum possible swap amount
|
|
296
|
-
* @deprecated Use getSwapLimits() instead!
|
|
297
|
-
*
|
|
298
|
-
* @param type Type of the swap
|
|
299
|
-
* @param token Token of the swap
|
|
300
|
-
*/
|
|
301
|
-
getMaximum(type, token) {
|
|
302
|
-
return this.swapper.getMaximum(this.chainIdentifier, type, token);
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Returns minimum possible swap amount
|
|
306
|
-
* @deprecated Use getSwapLimits() instead!
|
|
307
|
-
*
|
|
308
|
-
* @param type Type of swap
|
|
309
|
-
* @param token Token of the swap
|
|
310
|
-
*/
|
|
311
|
-
getMinimum(type, token) {
|
|
312
|
-
return this.swapper.getMinimum(this.chainIdentifier, type, token);
|
|
313
|
-
}
|
|
314
468
|
}
|
|
315
469
|
exports.SwapperWithChain = SwapperWithChain;
|