@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
|
@@ -18,7 +18,7 @@ import { LNURLWithdraw } from "../../../../types/lnurl/LNURLWithdraw";
|
|
|
18
18
|
import { PriceInfoType } from "../../../../types/PriceInfoType";
|
|
19
19
|
/**
|
|
20
20
|
* State enum for FromBTCLNAuto swaps
|
|
21
|
-
* @category Swaps
|
|
21
|
+
* @category Swaps/Lightning → Smart chain
|
|
22
22
|
*/
|
|
23
23
|
export declare enum FromBTCLNAutoSwapState {
|
|
24
24
|
FAILED = -4,
|
|
@@ -31,11 +31,11 @@ export declare enum FromBTCLNAutoSwapState {
|
|
|
31
31
|
CLAIM_CLAIMED = 3
|
|
32
32
|
}
|
|
33
33
|
export type FromBTCLNAutoSwapInit<T extends SwapData> = IEscrowSwapInit<T> & {
|
|
34
|
-
pr
|
|
35
|
-
secret
|
|
34
|
+
pr?: string;
|
|
35
|
+
secret?: string;
|
|
36
36
|
initialSwapData: T;
|
|
37
|
-
btcAmountSwap
|
|
38
|
-
btcAmountGas
|
|
37
|
+
btcAmountSwap?: bigint;
|
|
38
|
+
btcAmountGas?: bigint;
|
|
39
39
|
gasSwapFeeBtc: bigint;
|
|
40
40
|
gasSwapFee: bigint;
|
|
41
41
|
gasPricingInfo?: PriceInfoType;
|
|
@@ -44,47 +44,125 @@ export type FromBTCLNAutoSwapInit<T extends SwapData> = IEscrowSwapInit<T> & {
|
|
|
44
44
|
lnurlCallback?: string;
|
|
45
45
|
};
|
|
46
46
|
export declare function isFromBTCLNAutoSwapInit<T extends SwapData>(obj: any): obj is FromBTCLNAutoSwapInit<T>;
|
|
47
|
+
/**
|
|
48
|
+
* New escrow based (HTLC) swaps for Bitcoin Lightning -> Smart chain swaps not requiring manual settlement on
|
|
49
|
+
* the destination by the user, and instead letting the LP initiate the escrow. Permissionless watchtower network
|
|
50
|
+
* handles the claiming of HTLC, with the swap secret broadcasted over Nostr. Also adds a possibility for the user
|
|
51
|
+
* to receive a native token on the destination chain as part of the swap (a "gas drop" feature).
|
|
52
|
+
*
|
|
53
|
+
* @category Swaps/Lightning → Smart chain
|
|
54
|
+
*/
|
|
47
55
|
export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends IEscrowSwap<T, FromBTCLNAutoDefinition<T>> implements IAddressSwap, ISwapWithGasDrop<T>, IClaimableSwap<T, FromBTCLNAutoDefinition<T>, FromBTCLNAutoSwapState> {
|
|
56
|
+
protected readonly TYPE: SwapType.FROM_BTCLN_AUTO;
|
|
57
|
+
/**
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
48
60
|
protected readonly logger: LoggerType;
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
49
64
|
protected readonly inputToken: BtcToken<true>;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
private readonly lnurlFailSignal;
|
|
66
|
+
private readonly usesClaimHashAsId;
|
|
67
|
+
private readonly initialSwapData;
|
|
68
|
+
private readonly btcAmountSwap?;
|
|
69
|
+
private readonly btcAmountGas?;
|
|
70
|
+
private readonly gasSwapFeeBtc;
|
|
71
|
+
private readonly gasSwapFee;
|
|
72
|
+
private readonly gasPricingInfo?;
|
|
73
|
+
/**
|
|
74
|
+
* In case the swap is recovered from on-chain data, the pr saved here is just a payment hash,
|
|
75
|
+
* as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
|
|
76
|
+
* data
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
private pr?;
|
|
80
|
+
private secret?;
|
|
81
|
+
private lnurl?;
|
|
82
|
+
private lnurlK1?;
|
|
83
|
+
private lnurlCallback?;
|
|
84
|
+
private prPosted?;
|
|
85
|
+
private broadcastTickCounter;
|
|
86
|
+
/**
|
|
87
|
+
* Sets the LNURL data for the swap
|
|
88
|
+
*
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
_setLNURLData(lnurl: string, lnurlK1: string, lnurlCallback: string): void;
|
|
65
92
|
constructor(wrapper: FromBTCLNAutoWrapper<T>, init: FromBTCLNAutoSwapInit<T["Data"]>);
|
|
66
93
|
constructor(wrapper: FromBTCLNAutoWrapper<T>, obj: any);
|
|
94
|
+
/**
|
|
95
|
+
* @inheritDoc
|
|
96
|
+
* @internal
|
|
97
|
+
*/
|
|
98
|
+
protected getSwapData(): T["Data"];
|
|
99
|
+
/**
|
|
100
|
+
* @inheritDoc
|
|
101
|
+
* @internal
|
|
102
|
+
*/
|
|
67
103
|
protected upgradeVersion(): void;
|
|
68
104
|
/**
|
|
69
|
-
*
|
|
70
|
-
* @
|
|
105
|
+
* @inheritDoc
|
|
106
|
+
* @internal
|
|
71
107
|
*/
|
|
72
108
|
protected tryRecomputeSwapPrice(): void;
|
|
109
|
+
/**
|
|
110
|
+
* @inheritDoc
|
|
111
|
+
*/
|
|
73
112
|
refreshPriceData(): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* @inheritDoc
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
74
117
|
_getEscrowHash(): string | null;
|
|
118
|
+
/**
|
|
119
|
+
* @inheritDoc
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
75
122
|
_getInitiator(): string;
|
|
123
|
+
/**
|
|
124
|
+
* @inheritDoc
|
|
125
|
+
*/
|
|
76
126
|
getId(): string;
|
|
127
|
+
/**
|
|
128
|
+
* @inheritDoc
|
|
129
|
+
*/
|
|
77
130
|
getOutputAddress(): string | null;
|
|
131
|
+
/**
|
|
132
|
+
* @inheritDoc
|
|
133
|
+
*/
|
|
78
134
|
getOutputTxId(): string | null;
|
|
135
|
+
/**
|
|
136
|
+
* @inheritDoc
|
|
137
|
+
*/
|
|
79
138
|
requiresAction(): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* @inheritDoc
|
|
141
|
+
* @internal
|
|
142
|
+
*/
|
|
80
143
|
protected getIdentifierHashString(): string;
|
|
81
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Returns the payment hash of the swap and lightning network invoice, or `null` if not known (i.e. if
|
|
146
|
+
* the swap was recovered from on-chain data, the payment hash might not be known)
|
|
147
|
+
*
|
|
148
|
+
* @internal
|
|
149
|
+
*/
|
|
150
|
+
protected getPaymentHash(): Buffer | null;
|
|
151
|
+
/**
|
|
152
|
+
* @inheritDoc
|
|
153
|
+
*/
|
|
82
154
|
getInputAddress(): string | null;
|
|
83
|
-
|
|
155
|
+
/**
|
|
156
|
+
* @inheritDoc
|
|
157
|
+
*/
|
|
158
|
+
getInputTxId(): string | null;
|
|
84
159
|
/**
|
|
85
160
|
* Returns the lightning network BOLT11 invoice that needs to be paid as an input to the swap
|
|
86
161
|
*/
|
|
87
162
|
getAddress(): string;
|
|
163
|
+
/**
|
|
164
|
+
* @inheritDoc
|
|
165
|
+
*/
|
|
88
166
|
getHyperlink(): string;
|
|
89
167
|
/**
|
|
90
168
|
* Returns the timeout time (in UNIX milliseconds) when the swap will definitelly be considered as expired
|
|
@@ -95,29 +173,123 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
|
|
|
95
173
|
* Returns timeout time (in UNIX milliseconds) when the swap htlc will expire
|
|
96
174
|
*/
|
|
97
175
|
getHtlcTimeoutTime(): number | null;
|
|
176
|
+
/**
|
|
177
|
+
* @inheritDoc
|
|
178
|
+
*/
|
|
98
179
|
isFinished(): boolean;
|
|
180
|
+
/**
|
|
181
|
+
* @inheritDoc
|
|
182
|
+
*/
|
|
99
183
|
isClaimable(): boolean;
|
|
184
|
+
/**
|
|
185
|
+
* @inheritDoc
|
|
186
|
+
*/
|
|
100
187
|
isSuccessful(): boolean;
|
|
188
|
+
/**
|
|
189
|
+
* @inheritDoc
|
|
190
|
+
*/
|
|
101
191
|
isFailed(): boolean;
|
|
192
|
+
/**
|
|
193
|
+
* @inheritDoc
|
|
194
|
+
*/
|
|
102
195
|
isQuoteExpired(): boolean;
|
|
196
|
+
/**
|
|
197
|
+
* @inheritDoc
|
|
198
|
+
*/
|
|
103
199
|
isQuoteSoftExpired(): boolean;
|
|
200
|
+
/**
|
|
201
|
+
* @inheritDoc
|
|
202
|
+
*/
|
|
104
203
|
_verifyQuoteDefinitelyExpired(): Promise<boolean>;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
204
|
+
/**
|
|
205
|
+
* @inheritDoc
|
|
206
|
+
*/
|
|
207
|
+
_verifyQuoteValid(): Promise<boolean>;
|
|
208
|
+
/**
|
|
209
|
+
* Returns the satoshi amount of the lightning network invoice, or `null` if the lightning network
|
|
210
|
+
* invoice is not known (i.e. when the swap was recovered from on-chain data, the paid invoice
|
|
211
|
+
* cannot be recovered because it is purely off-chain)
|
|
212
|
+
*
|
|
213
|
+
* @internal
|
|
214
|
+
*/
|
|
215
|
+
protected getLightningInvoiceSats(): bigint | null;
|
|
216
|
+
/**
|
|
217
|
+
* Returns the watchtower fee paid in BTC satoshis, or null if known (i.e. if the swap was recovered from
|
|
218
|
+
* on-chain data)
|
|
219
|
+
*
|
|
220
|
+
* @protected
|
|
221
|
+
*/
|
|
222
|
+
protected getWatchtowerFeeAmountBtc(): bigint | null;
|
|
223
|
+
/**
|
|
224
|
+
* Returns the input amount for the actual swap (excluding the input amount used to cover the "gas drop"
|
|
225
|
+
* part of the swap), excluding fees
|
|
226
|
+
*
|
|
227
|
+
* @internal
|
|
228
|
+
*/
|
|
229
|
+
protected getInputSwapAmountWithoutFee(): bigint | null;
|
|
230
|
+
/**
|
|
231
|
+
* Returns the input amount purely for the "gas drop" part of the swap (this much BTC in sats will be
|
|
232
|
+
* swapped into the native gas token on the destination chain), excluding fees
|
|
233
|
+
*
|
|
234
|
+
* @internal
|
|
235
|
+
*/
|
|
236
|
+
protected getInputGasAmountWithoutFee(): bigint | null;
|
|
237
|
+
/**
|
|
238
|
+
* Get total btc amount in sats on the input, excluding the swap fee and watchtower fee
|
|
239
|
+
*
|
|
240
|
+
* @internal
|
|
241
|
+
*/
|
|
242
|
+
protected getInputAmountWithoutFee(): bigint | null;
|
|
243
|
+
/**
|
|
244
|
+
* Returns the "would be" output amount if the swap charged no swap fee
|
|
245
|
+
*
|
|
246
|
+
* @internal
|
|
247
|
+
*/
|
|
111
248
|
protected getOutputAmountWithoutFee(): bigint;
|
|
249
|
+
/**
|
|
250
|
+
* @inheritDoc
|
|
251
|
+
*/
|
|
112
252
|
getInputToken(): BtcToken<true>;
|
|
253
|
+
/**
|
|
254
|
+
* @inheritDoc
|
|
255
|
+
*/
|
|
113
256
|
getInput(): TokenAmount<T["ChainId"], BtcToken<true>>;
|
|
257
|
+
/**
|
|
258
|
+
* @inheritDoc
|
|
259
|
+
*/
|
|
114
260
|
getInputWithoutFee(): TokenAmount<T["ChainId"], BtcToken<true>>;
|
|
261
|
+
/**
|
|
262
|
+
* @inheritDoc
|
|
263
|
+
*/
|
|
115
264
|
getOutputToken(): SCToken<T["ChainId"]>;
|
|
265
|
+
/**
|
|
266
|
+
* @inheritDoc
|
|
267
|
+
*/
|
|
116
268
|
getOutput(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
|
|
269
|
+
/**
|
|
270
|
+
* @inheritDoc
|
|
271
|
+
*/
|
|
117
272
|
getGasDropOutput(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
|
|
273
|
+
/**
|
|
274
|
+
* Returns the swap fee charged by the intermediary (LP) on this swap
|
|
275
|
+
*
|
|
276
|
+
* @internal
|
|
277
|
+
*/
|
|
118
278
|
protected getSwapFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
|
|
279
|
+
/**
|
|
280
|
+
* Returns the fee to be paid to watchtowers on the destination chain to automatically
|
|
281
|
+
* process and settle this swap without requiring any user interaction
|
|
282
|
+
*
|
|
283
|
+
* @internal
|
|
284
|
+
*/
|
|
119
285
|
protected getWatchtowerFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
|
|
286
|
+
/**
|
|
287
|
+
* @inheritDoc
|
|
288
|
+
*/
|
|
120
289
|
getFee(): Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
|
|
290
|
+
/**
|
|
291
|
+
* @inheritDoc
|
|
292
|
+
*/
|
|
121
293
|
getFeeBreakdown(): [
|
|
122
294
|
{
|
|
123
295
|
type: FeeType.SWAP;
|
|
@@ -128,6 +300,7 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
|
|
|
128
300
|
fee: Fee<T["ChainId"], BtcToken<true>, SCToken<T["ChainId"]>>;
|
|
129
301
|
}
|
|
130
302
|
];
|
|
303
|
+
private isValidSecretPreimage;
|
|
131
304
|
/**
|
|
132
305
|
* Executes the swap with the provided bitcoin lightning network wallet or LNURL
|
|
133
306
|
*
|
|
@@ -135,6 +308,8 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
|
|
|
135
308
|
* link, wallet is not required and the LN invoice can be paid externally as well (just pass null or undefined here)
|
|
136
309
|
* @param callbacks Callbacks to track the progress of the swap
|
|
137
310
|
* @param options Optional options for the swap like feeRate, AbortSignal, and timeouts/intervals
|
|
311
|
+
* @param secret A swap secret to broadcast to watchtowers, generally only needed if the swap
|
|
312
|
+
* was recovered from on-chain data, or the pre-image was generated outside the SDK
|
|
138
313
|
*
|
|
139
314
|
* @returns {boolean} Whether a swap was settled automatically by swap watchtowers or requires manual claim by the
|
|
140
315
|
* user, in case `false` is returned the user should call `swap.claim()` to settle the swap on the destination manually
|
|
@@ -146,78 +321,126 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
|
|
|
146
321
|
abortSignal?: AbortSignal;
|
|
147
322
|
lightningTxCheckIntervalSeconds?: number;
|
|
148
323
|
maxWaitTillAutomaticSettlementSeconds?: number;
|
|
149
|
-
}): Promise<boolean>;
|
|
324
|
+
}, secret?: string): Promise<boolean>;
|
|
325
|
+
/**
|
|
326
|
+
* @inheritDoc
|
|
327
|
+
*/
|
|
150
328
|
txsExecute(): Promise<{
|
|
151
329
|
name: "Payment";
|
|
152
330
|
description: string;
|
|
153
|
-
chain:
|
|
331
|
+
chain: "LIGHTNING";
|
|
154
332
|
txs: {
|
|
333
|
+
type: "BOLT11_PAYMENT_REQUEST";
|
|
155
334
|
address: string;
|
|
156
335
|
hyperlink: string;
|
|
157
336
|
}[];
|
|
158
337
|
}[]>;
|
|
159
338
|
/**
|
|
160
|
-
* Checks whether the LP received the LN payment
|
|
339
|
+
* Checks whether the LP received the LN payment
|
|
161
340
|
*
|
|
162
341
|
* @param save If the new swap state should be saved
|
|
342
|
+
*
|
|
343
|
+
* @internal
|
|
163
344
|
*/
|
|
164
345
|
_checkIntermediaryPaymentReceived(save?: boolean): Promise<boolean | null>;
|
|
346
|
+
/**
|
|
347
|
+
* Checks and overrides the swap data for this swap. This is used to set the swap data from
|
|
348
|
+
* on-chain events.
|
|
349
|
+
*
|
|
350
|
+
* @param data Swap data of the escrow swap
|
|
351
|
+
* @param save If the new data should be saved
|
|
352
|
+
*
|
|
353
|
+
* @internal
|
|
354
|
+
*/
|
|
165
355
|
_saveRealSwapData(data: T["Data"], save?: boolean): Promise<boolean>;
|
|
166
356
|
/**
|
|
167
357
|
* Checks the data returned by the intermediary in the payment auth request
|
|
168
358
|
*
|
|
169
359
|
* @param data Parsed swap data as returned by the intermediary
|
|
170
|
-
*
|
|
360
|
+
*
|
|
171
361
|
* @throws {IntermediaryError} If the returned are not valid
|
|
172
362
|
* @throws {Error} If the swap is already committed on-chain
|
|
363
|
+
*
|
|
364
|
+
* @private
|
|
173
365
|
*/
|
|
174
|
-
|
|
366
|
+
private checkIntermediaryReturnedData;
|
|
175
367
|
/**
|
|
176
|
-
* Waits till
|
|
368
|
+
* Waits till a lightning network payment is received by the intermediary, and the intermediary
|
|
369
|
+
* initiates the swap HTLC on the smart chain side. After the HTLC is initiated you can wait
|
|
370
|
+
* for an automatic settlement by the watchtowers with the {@link waitTillClaimed} function,
|
|
371
|
+
* or settle manually using the {@link claim} or {@link txsClaim} functions.
|
|
372
|
+
*
|
|
373
|
+
* If this swap is using an LNURL-withdraw link as input, it automatically posts the
|
|
374
|
+
* generated invoice to the LNURL service to pay it.
|
|
177
375
|
*
|
|
178
376
|
* @param onPaymentReceived Callback as for when the LP reports having received the ln payment
|
|
179
|
-
* @param checkIntervalSeconds How often to poll the intermediary for answer (default 5 seconds)
|
|
180
377
|
* @param abortSignal Abort signal to stop waiting for payment
|
|
378
|
+
* @param checkIntervalSeconds How often to poll the intermediary for answer (default 5 seconds)
|
|
181
379
|
*/
|
|
182
380
|
waitForPayment(onPaymentReceived?: (txId: string) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
|
|
381
|
+
/**
|
|
382
|
+
* Waits till the intermediary (LP) initiates the swap HTLC escrow on the destination smart chain side
|
|
383
|
+
*
|
|
384
|
+
* @param checkIntervalSeconds How often to check via a polling watchdog
|
|
385
|
+
* @param abortSignal Abort signal
|
|
386
|
+
*
|
|
387
|
+
* @internal
|
|
388
|
+
*/
|
|
183
389
|
protected waitTillCommited(checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<void>;
|
|
184
390
|
/**
|
|
185
|
-
*
|
|
186
|
-
* (hash preimage)
|
|
391
|
+
* @inheritDoc
|
|
187
392
|
*
|
|
188
393
|
* @param _signer Optional signer address to use for claiming the swap, can also be different from the initializer
|
|
189
|
-
* @
|
|
394
|
+
* @param secret A swap secret to use for the claim transaction, generally only needed if the swap
|
|
395
|
+
* was recovered from on-chain data, or the pre-image was generated outside the SDK
|
|
396
|
+
*
|
|
397
|
+
* @throws {Error} If in invalid state (must be {@link FromBTCLNAutoSwapState.CLAIM_COMMITED})
|
|
190
398
|
*/
|
|
191
|
-
txsClaim(_signer?: T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
|
|
399
|
+
txsClaim(_signer?: T["Signer"] | T["NativeSigner"], secret?: string): Promise<T["TX"][]>;
|
|
192
400
|
/**
|
|
193
|
-
*
|
|
401
|
+
* @inheritDoc
|
|
194
402
|
*
|
|
195
403
|
* @param _signer Signer to sign the transactions with, can also be different to the initializer
|
|
196
404
|
* @param abortSignal Abort signal to stop waiting for transaction confirmation
|
|
405
|
+
* @param onBeforeTxSent
|
|
406
|
+
* @param secret A swap secret to use for the claim transaction, generally only needed if the swap
|
|
407
|
+
* was recovered from on-chain data, or the pre-image was generated outside the SDK
|
|
197
408
|
*/
|
|
198
|
-
claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal): Promise<string>;
|
|
409
|
+
claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, onBeforeTxSent?: (txId: string) => void, secret?: string): Promise<string>;
|
|
199
410
|
/**
|
|
200
|
-
* Waits till the swap is successfully claimed
|
|
411
|
+
* Waits till the swap is successfully settled (claimed), should be called after sending the claim (settlement)
|
|
412
|
+
* transactions manually to wait till the SDK processes the settlement and updates the swap state accordingly.
|
|
201
413
|
*
|
|
202
414
|
* @param maxWaitTimeSeconds Maximum time in seconds to wait for the swap to be settled
|
|
203
415
|
* @param abortSignal AbortSignal
|
|
204
|
-
* @
|
|
416
|
+
* @param secret A swap secret to broadcast to watchtowers, generally only needed if the swap
|
|
417
|
+
* was recovered from on-chain data, or the pre-image was generated outside the SDK
|
|
418
|
+
*
|
|
419
|
+
* @throws {Error} If swap is in invalid state (must be {@link FromBTCLNAutoSwapState.CLAIM_COMMITED})
|
|
205
420
|
* @throws {Error} If the LP refunded sooner than we were able to claim
|
|
206
421
|
* @returns {boolean} whether the swap was claimed in time or not
|
|
207
422
|
*/
|
|
208
|
-
waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
|
|
423
|
+
waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal, secret?: string): Promise<boolean>;
|
|
209
424
|
/**
|
|
210
|
-
*
|
|
425
|
+
* Whether this swap uses an LNURL-withdraw link
|
|
211
426
|
*/
|
|
212
427
|
isLNURL(): boolean;
|
|
213
428
|
/**
|
|
214
|
-
* Gets the used LNURL or null if this is not an LNURL-withdraw swap
|
|
429
|
+
* Gets the used LNURL or `null` if this is not an LNURL-withdraw swap
|
|
215
430
|
*/
|
|
216
431
|
getLNURL(): string | null;
|
|
217
432
|
/**
|
|
218
|
-
* Pay the generated lightning network invoice with LNURL-withdraw
|
|
433
|
+
* Pay the generated lightning network invoice with an LNURL-withdraw link, this
|
|
434
|
+
* is useful when you want to display a lightning payment QR code and also want to
|
|
435
|
+
* allow payments using LNURL-withdraw NFC cards.
|
|
436
|
+
*
|
|
437
|
+
* Note that the swap needs to be created **without** an LNURL to begin with for this function
|
|
438
|
+
* to work. If this swap is already using an LNURL-withdraw link, this function throws.
|
|
219
439
|
*/
|
|
220
440
|
settleWithLNURLWithdraw(lnurl: string | LNURLWithdraw): Promise<void>;
|
|
441
|
+
/**
|
|
442
|
+
* @inheritDoc
|
|
443
|
+
*/
|
|
221
444
|
serialize(): any;
|
|
222
445
|
/**
|
|
223
446
|
* Checks the swap's state on-chain and compares it to its internal state, updates/changes it according to on-chain
|
|
@@ -226,11 +449,49 @@ export declare class FromBTCLNAutoSwap<T extends ChainType = ChainType> extends
|
|
|
226
449
|
* @private
|
|
227
450
|
*/
|
|
228
451
|
private syncStateFromChain;
|
|
229
|
-
|
|
452
|
+
/**
|
|
453
|
+
* @inheritDoc
|
|
454
|
+
* @internal
|
|
455
|
+
*/
|
|
456
|
+
_shouldFetchOnchainState(): boolean;
|
|
457
|
+
/**
|
|
458
|
+
* @inheritDoc
|
|
459
|
+
* @internal
|
|
460
|
+
*/
|
|
230
461
|
_shouldFetchExpiryStatus(): boolean;
|
|
462
|
+
/**
|
|
463
|
+
* @inheritDoc
|
|
464
|
+
* @internal
|
|
465
|
+
*/
|
|
231
466
|
_shouldCheckIntermediary(): boolean;
|
|
467
|
+
/**
|
|
468
|
+
* @inheritDoc
|
|
469
|
+
* @internal
|
|
470
|
+
*/
|
|
232
471
|
_sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState, skipLpCheck?: boolean): Promise<boolean>;
|
|
233
|
-
|
|
234
|
-
|
|
472
|
+
/**
|
|
473
|
+
* @inheritDoc
|
|
474
|
+
* @internal
|
|
475
|
+
*/
|
|
476
|
+
_forciblySetOnchainState(commitStatus: SwapCommitState): Promise<boolean>;
|
|
477
|
+
/**
|
|
478
|
+
* Broadcasts the swap secret to the underlying data propagation layer (e.g. Nostr by default)
|
|
479
|
+
*
|
|
480
|
+
* @param noCheckExpiry Whether a swap expiration check should be skipped broadcasting
|
|
481
|
+
* @param secret An optional secret pre-image for the swap to broadcast
|
|
482
|
+
*
|
|
483
|
+
* @internal
|
|
484
|
+
*/
|
|
485
|
+
_broadcastSecret(noCheckExpiry?: boolean, secret?: string): Promise<void>;
|
|
486
|
+
/**
|
|
487
|
+
* @inheritDoc
|
|
488
|
+
* @internal
|
|
489
|
+
*/
|
|
235
490
|
_tick(save?: boolean): Promise<boolean>;
|
|
491
|
+
/**
|
|
492
|
+
* Forcibly sets the swap secret pre-image from on-chain data
|
|
493
|
+
*
|
|
494
|
+
* @internal
|
|
495
|
+
*/
|
|
496
|
+
_setSwapSecret(secret: string): void;
|
|
236
497
|
}
|