@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
|
@@ -5,16 +5,34 @@ import { Intermediary, SingleChainReputationType } from "../../../intermediaries
|
|
|
5
5
|
import { IEscrowSwapWrapper } from "../IEscrowSwapWrapper";
|
|
6
6
|
import { AmountData } from "../../../types/AmountData";
|
|
7
7
|
export type IToBTCDefinition<T extends ChainType, W extends IToBTCWrapper<T, any>, S extends IToBTCSwap<T>> = SwapTypeDefinition<T, W, S>;
|
|
8
|
+
/**
|
|
9
|
+
* Base class for wrappers of escrow-based Smart chain -> Bitcoin (on-chain & lightning) swaps
|
|
10
|
+
*
|
|
11
|
+
* @category Swaps
|
|
12
|
+
*/
|
|
8
13
|
export declare abstract class IToBTCWrapper<T extends ChainType, D extends IToBTCDefinition<T, IToBTCWrapper<T, D>, IToBTCSwap<T, D>>, O extends ISwapWrapperOptions = ISwapWrapperOptions> extends IEscrowSwapWrapper<T, D, O> {
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
protected readonly tickSwapState: ToBTCSwapState[];
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
readonly _pendingSwapStates: ToBTCSwapState[];
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
readonly _refundableSwapStates: ToBTCSwapState[];
|
|
9
26
|
/**
|
|
10
27
|
* Pre-fetches intermediary's reputation, doesn't throw, instead aborts via abortController and returns null
|
|
11
28
|
*
|
|
12
29
|
* @param amountData
|
|
13
30
|
* @param lp Intermediary
|
|
14
31
|
* @param abortController
|
|
15
|
-
* @protected
|
|
16
32
|
* @returns Intermediary's reputation or null if failed
|
|
17
33
|
* @throws {IntermediaryError} If the intermediary vault doesn't exist
|
|
34
|
+
*
|
|
35
|
+
* @internal
|
|
18
36
|
*/
|
|
19
37
|
protected preFetchIntermediaryReputation(amountData: Omit<AmountData, "amount">, lp: Intermediary, abortController: AbortController): Promise<SingleChainReputationType | undefined>;
|
|
20
38
|
/**
|
|
@@ -24,14 +42,21 @@ export declare abstract class IToBTCWrapper<T extends ChainType, D extends IToBT
|
|
|
24
42
|
* @param amountData
|
|
25
43
|
* @param claimHash optional hash of the swap or null
|
|
26
44
|
* @param abortController
|
|
27
|
-
* @protected
|
|
28
45
|
* @returns Fee rate
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
29
48
|
*/
|
|
30
49
|
protected preFetchFeeRate(signer: string, amountData: Omit<AmountData, "amount">, claimHash: string | undefined, abortController: AbortController): Promise<string | undefined>;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
50
|
+
/**
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
34
53
|
protected processEventInitialize(swap: D["Swap"], event: InitializeEvent<T["Data"]>): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
35
57
|
protected processEventClaim(swap: D["Swap"], event: ClaimEvent<T["Data"]>): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
36
61
|
protected processEventRefund(swap: D["Swap"], event: RefundEvent<T["Data"]>): Promise<boolean>;
|
|
37
62
|
}
|
|
@@ -4,18 +4,32 @@ exports.IToBTCWrapper = void 0;
|
|
|
4
4
|
const IToBTCSwap_1 = require("./IToBTCSwap");
|
|
5
5
|
const IntermediaryError_1 = require("../../../errors/IntermediaryError");
|
|
6
6
|
const IEscrowSwapWrapper_1 = require("../IEscrowSwapWrapper");
|
|
7
|
+
/**
|
|
8
|
+
* Base class for wrappers of escrow-based Smart chain -> Bitcoin (on-chain & lightning) swaps
|
|
9
|
+
*
|
|
10
|
+
* @category Swaps
|
|
11
|
+
*/
|
|
7
12
|
class IToBTCWrapper extends IEscrowSwapWrapper_1.IEscrowSwapWrapper {
|
|
8
13
|
constructor() {
|
|
9
14
|
super(...arguments);
|
|
10
|
-
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
this.tickSwapState = [IToBTCSwap_1.ToBTCSwapState.CREATED, IToBTCSwap_1.ToBTCSwapState.COMMITED, IToBTCSwap_1.ToBTCSwapState.SOFT_CLAIMED];
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
this._pendingSwapStates = [
|
|
11
23
|
IToBTCSwap_1.ToBTCSwapState.CREATED,
|
|
12
24
|
IToBTCSwap_1.ToBTCSwapState.QUOTE_SOFT_EXPIRED,
|
|
13
25
|
IToBTCSwap_1.ToBTCSwapState.COMMITED,
|
|
14
26
|
IToBTCSwap_1.ToBTCSwapState.SOFT_CLAIMED,
|
|
15
27
|
IToBTCSwap_1.ToBTCSwapState.REFUNDABLE
|
|
16
28
|
];
|
|
17
|
-
|
|
18
|
-
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
this._refundableSwapStates = [IToBTCSwap_1.ToBTCSwapState.REFUNDABLE];
|
|
19
33
|
}
|
|
20
34
|
/**
|
|
21
35
|
* Pre-fetches intermediary's reputation, doesn't throw, instead aborts via abortController and returns null
|
|
@@ -23,12 +37,13 @@ class IToBTCWrapper extends IEscrowSwapWrapper_1.IEscrowSwapWrapper {
|
|
|
23
37
|
* @param amountData
|
|
24
38
|
* @param lp Intermediary
|
|
25
39
|
* @param abortController
|
|
26
|
-
* @protected
|
|
27
40
|
* @returns Intermediary's reputation or null if failed
|
|
28
41
|
* @throws {IntermediaryError} If the intermediary vault doesn't exist
|
|
42
|
+
*
|
|
43
|
+
* @internal
|
|
29
44
|
*/
|
|
30
45
|
preFetchIntermediaryReputation(amountData, lp, abortController) {
|
|
31
|
-
return lp.getReputation(this.chainIdentifier, this.
|
|
46
|
+
return lp.getReputation(this.chainIdentifier, this._contract, [amountData.token.toString()], abortController.signal).then(res => {
|
|
32
47
|
if (res == null)
|
|
33
48
|
throw new IntermediaryError_1.IntermediaryError("Invalid data returned - invalid LP vault");
|
|
34
49
|
return res;
|
|
@@ -45,46 +60,56 @@ class IToBTCWrapper extends IEscrowSwapWrapper_1.IEscrowSwapWrapper {
|
|
|
45
60
|
* @param amountData
|
|
46
61
|
* @param claimHash optional hash of the swap or null
|
|
47
62
|
* @param abortController
|
|
48
|
-
* @protected
|
|
49
63
|
* @returns Fee rate
|
|
64
|
+
*
|
|
65
|
+
* @internal
|
|
50
66
|
*/
|
|
51
67
|
preFetchFeeRate(signer, amountData, claimHash, abortController) {
|
|
52
|
-
return this.
|
|
68
|
+
return this._contract.getInitPayInFeeRate(signer, this._chain.randomAddress(), amountData.token, claimHash)
|
|
53
69
|
.catch(e => {
|
|
54
70
|
this.logger.warn("preFetchFeeRate(): Error: ", e);
|
|
55
71
|
abortController.abort(e);
|
|
56
72
|
return undefined;
|
|
57
73
|
});
|
|
58
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
59
78
|
async processEventInitialize(swap, event) {
|
|
60
|
-
if (swap.
|
|
61
|
-
swap.
|
|
62
|
-
if (swap.
|
|
63
|
-
swap.
|
|
79
|
+
if (swap._state === IToBTCSwap_1.ToBTCSwapState.CREATED || swap._state === IToBTCSwap_1.ToBTCSwapState.QUOTE_SOFT_EXPIRED) {
|
|
80
|
+
swap._state = IToBTCSwap_1.ToBTCSwapState.COMMITED;
|
|
81
|
+
if (swap._commitTxId == null)
|
|
82
|
+
swap._commitTxId = event.meta?.txId;
|
|
64
83
|
return true;
|
|
65
84
|
}
|
|
66
85
|
return false;
|
|
67
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
68
90
|
async processEventClaim(swap, event) {
|
|
69
|
-
if (swap.
|
|
91
|
+
if (swap._state !== IToBTCSwap_1.ToBTCSwapState.REFUNDED && swap._state !== IToBTCSwap_1.ToBTCSwapState.CLAIMED) {
|
|
70
92
|
await swap._setPaymentResult({
|
|
71
93
|
secret: event.result,
|
|
72
94
|
txId: Buffer.from(event.result, "hex").reverse().toString("hex")
|
|
73
95
|
}).catch(e => {
|
|
74
96
|
this.logger.warn(`processEventClaim(): Failed to set payment result ${event.result}: `, e);
|
|
75
97
|
});
|
|
76
|
-
swap.
|
|
77
|
-
if (swap.
|
|
78
|
-
swap.
|
|
98
|
+
swap._state = IToBTCSwap_1.ToBTCSwapState.CLAIMED;
|
|
99
|
+
if (swap._claimTxId == null)
|
|
100
|
+
swap._claimTxId = event.meta?.txId;
|
|
79
101
|
return true;
|
|
80
102
|
}
|
|
81
103
|
return false;
|
|
82
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
83
108
|
processEventRefund(swap, event) {
|
|
84
|
-
if (swap.
|
|
85
|
-
swap.
|
|
86
|
-
if (swap.
|
|
87
|
-
swap.
|
|
109
|
+
if (swap._state !== IToBTCSwap_1.ToBTCSwapState.CLAIMED && swap._state !== IToBTCSwap_1.ToBTCSwapState.REFUNDED) {
|
|
110
|
+
swap._state = IToBTCSwap_1.ToBTCSwapState.REFUNDED;
|
|
111
|
+
if (swap._refundTxId == null)
|
|
112
|
+
swap._refundTxId = event.meta?.txId;
|
|
88
113
|
return Promise.resolve(true);
|
|
89
114
|
}
|
|
90
115
|
return Promise.resolve(false);
|
|
@@ -18,31 +18,56 @@ export type ToBTCLNSwapInit<T extends SwapData> = IToBTCSwapInit<T> & {
|
|
|
18
18
|
};
|
|
19
19
|
export declare function isToBTCLNSwapInit<T extends SwapData>(obj: any): obj is ToBTCLNSwapInit<T>;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Escrow based (HTLC) swap for Smart chains -> Bitcoin lightning
|
|
22
|
+
*
|
|
22
23
|
* @category Swaps
|
|
23
24
|
*/
|
|
24
25
|
export declare class ToBTCLNSwap<T extends ChainType = ChainType> extends IToBTCSwap<T, ToBTCLNDefinition<T>> {
|
|
25
|
-
private readonly usesClaimHashAsId;
|
|
26
|
-
protected outputToken: BtcToken<true>;
|
|
27
26
|
protected readonly TYPE = SwapType.TO_BTCLN;
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
protected readonly outputToken: BtcToken<true>;
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
28
34
|
protected readonly logger: LoggerType;
|
|
35
|
+
private readonly usesClaimHashAsId;
|
|
29
36
|
private readonly confidence;
|
|
30
|
-
private
|
|
31
|
-
readonly paymentHash?: string;
|
|
32
|
-
lnurl?: string;
|
|
33
|
-
successAction?: LNURLPaySuccessAction;
|
|
37
|
+
private pr?;
|
|
34
38
|
private secret?;
|
|
39
|
+
private lnurl?;
|
|
40
|
+
private successAction?;
|
|
41
|
+
/**
|
|
42
|
+
* Sets the LNURL data for the swap
|
|
43
|
+
*
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
_setLNURLData(lnurl: string, successAction?: LNURLPaySuccessAction): void;
|
|
35
47
|
constructor(wrapper: ToBTCLNWrapper<T>, init: ToBTCLNSwapInit<T["Data"]>);
|
|
36
48
|
constructor(wrapper: ToBTCLNWrapper<T>, obj: any);
|
|
49
|
+
/**
|
|
50
|
+
* @inheritDoc
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
37
53
|
_setPaymentResult(result: {
|
|
38
54
|
secret?: string;
|
|
39
55
|
txId?: string;
|
|
40
56
|
}, check?: boolean): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* @inheritDoc
|
|
59
|
+
*/
|
|
41
60
|
getOutputToken(): BtcToken<true>;
|
|
61
|
+
/**
|
|
62
|
+
* @inheritDoc
|
|
63
|
+
*/
|
|
42
64
|
getOutput(): TokenAmount<T["ChainId"], BtcToken<true>>;
|
|
65
|
+
/**
|
|
66
|
+
* @inheritDoc
|
|
67
|
+
*/
|
|
43
68
|
getOutputTxId(): string | null;
|
|
44
69
|
/**
|
|
45
|
-
*
|
|
70
|
+
* @inheritDoc
|
|
46
71
|
*/
|
|
47
72
|
getOutputAddress(): string | null;
|
|
48
73
|
/**
|
|
@@ -50,37 +75,53 @@ export declare class ToBTCLNSwap<T extends ChainType = ChainType> extends IToBTC
|
|
|
50
75
|
*/
|
|
51
76
|
getSecret(): string | null;
|
|
52
77
|
/**
|
|
53
|
-
* Returns the confidence of the intermediary that this payment will succeed
|
|
54
|
-
*
|
|
78
|
+
* Returns the confidence of the intermediary that this payment will succeed.
|
|
79
|
+
*
|
|
80
|
+
* @returns Decimal value between 0 and 1, where 0 is not likely and 1 is very likely
|
|
55
81
|
*/
|
|
56
82
|
getConfidence(): number;
|
|
57
83
|
/**
|
|
58
|
-
* Checks whether a swap is likely to fail, based on the confidence as reported by the LP
|
|
84
|
+
* Checks whether a swap is likely to fail, based on the confidence as reported by the intermediary (LP)
|
|
59
85
|
*/
|
|
60
86
|
willLikelyFail(): boolean;
|
|
61
87
|
/**
|
|
62
|
-
* Tries to detect if the target lightning invoice is a non-custodial mobile wallet, care must be taken
|
|
63
|
-
* for such a wallet to be online when attempting to make a swap
|
|
88
|
+
* Tries to detect if the target lightning invoice is a non-custodial mobile wallet, extract care must be taken
|
|
89
|
+
* for such a wallet **to be online** when attempting to make a swap sending to such a wallet
|
|
64
90
|
*/
|
|
65
91
|
isPayingToNonCustodialWallet(): boolean;
|
|
66
|
-
|
|
67
|
-
|
|
92
|
+
/**
|
|
93
|
+
* @inheritDoc
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
protected getIdentifierHash(): Buffer;
|
|
97
|
+
/**
|
|
98
|
+
* @inheritDoc
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
68
101
|
protected getLpIdentifier(): string;
|
|
69
102
|
/**
|
|
70
|
-
*
|
|
103
|
+
* Returns the payment hash of the swap, i.e. a payment hash of the lightning network invoice that
|
|
104
|
+
* is about to be paid
|
|
105
|
+
*/
|
|
106
|
+
getPaymentHash(): Buffer | null;
|
|
107
|
+
/**
|
|
108
|
+
* Whether this is an LNURL-pay swap
|
|
71
109
|
*/
|
|
72
110
|
isLNURL(): boolean;
|
|
73
111
|
/**
|
|
74
|
-
* Gets the used LNURL or null if this is not an LNURL-pay swap
|
|
112
|
+
* Gets the used LNURL-pay link or `null` if this is not an LNURL-pay swap
|
|
75
113
|
*/
|
|
76
114
|
getLNURL(): string | null;
|
|
77
115
|
/**
|
|
78
|
-
* Checks whether this LNURL payment contains a success
|
|
116
|
+
* Checks whether this LNURL-pay payment contains a success action
|
|
79
117
|
*/
|
|
80
118
|
hasSuccessAction(): boolean;
|
|
81
119
|
/**
|
|
82
|
-
* Returns the success action after a successful payment, else null
|
|
120
|
+
* Returns the success action after a successful payment, else `null`
|
|
83
121
|
*/
|
|
84
122
|
getSuccessAction(): LNURLDecodedSuccessAction | null;
|
|
123
|
+
/**
|
|
124
|
+
* @inheritDoc
|
|
125
|
+
*/
|
|
85
126
|
serialize(): any;
|
|
86
127
|
}
|
|
@@ -25,16 +25,29 @@ const SNOWFLAKE_LIST = new Set([
|
|
|
25
25
|
"03a6ce61fcaacd38d31d4e3ce2d506602818e3856b4b44faff1dde9642ba705976"
|
|
26
26
|
]);
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Escrow based (HTLC) swap for Smart chains -> Bitcoin lightning
|
|
29
|
+
*
|
|
29
30
|
* @category Swaps
|
|
30
31
|
*/
|
|
31
32
|
class ToBTCLNSwap extends IToBTCSwap_1.IToBTCSwap {
|
|
33
|
+
/**
|
|
34
|
+
* Sets the LNURL data for the swap
|
|
35
|
+
*
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
_setLNURLData(lnurl, successAction) {
|
|
39
|
+
this.lnurl = lnurl;
|
|
40
|
+
this.successAction = successAction;
|
|
41
|
+
}
|
|
32
42
|
constructor(wrapper, initOrObj) {
|
|
33
43
|
if (isToBTCLNSwapInit(initOrObj) && initOrObj.url != null)
|
|
34
44
|
initOrObj.url += "/tobtcln";
|
|
35
45
|
super(wrapper, initOrObj);
|
|
36
|
-
this.outputToken = Token_1.BitcoinTokens.BTCLN;
|
|
37
46
|
this.TYPE = SwapType_1.SwapType.TO_BTCLN;
|
|
47
|
+
/**
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
this.outputToken = Token_1.BitcoinTokens.BTCLN;
|
|
38
51
|
if (isToBTCLNSwapInit(initOrObj)) {
|
|
39
52
|
this.confidence = initOrObj.confidence;
|
|
40
53
|
this.pr = initOrObj.pr;
|
|
@@ -50,49 +63,63 @@ class ToBTCLNSwap extends IToBTCSwap_1.IToBTCSwap {
|
|
|
50
63
|
this.secret = initOrObj.secret;
|
|
51
64
|
this.usesClaimHashAsId = initOrObj.usesClaimHashAsId ?? false;
|
|
52
65
|
}
|
|
53
|
-
const paymentHash = this.getPaymentHash();
|
|
54
|
-
if (paymentHash != null)
|
|
55
|
-
this.paymentHash = paymentHash.toString("hex");
|
|
56
66
|
this.logger = (0, Logger_1.getLogger)("ToBTCLN(" + this.getIdentifierHashString() + "): ");
|
|
57
67
|
this.tryRecomputeSwapPrice();
|
|
58
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* @inheritDoc
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
59
73
|
_setPaymentResult(result, check = false) {
|
|
60
74
|
if (result == null)
|
|
61
75
|
return Promise.resolve(false);
|
|
62
76
|
if (result.secret == null)
|
|
63
77
|
throw new IntermediaryError_1.IntermediaryError("No payment secret returned!");
|
|
78
|
+
const secretBuffer = buffer_1.Buffer.from(result.secret, "hex");
|
|
79
|
+
const hash = buffer_1.Buffer.from((0, sha2_1.sha256)(secretBuffer));
|
|
64
80
|
if (check) {
|
|
65
|
-
const
|
|
66
|
-
const hash = buffer_1.Buffer.from((0, sha2_1.sha256)(secretBuffer));
|
|
67
|
-
const claimHash = this.wrapper.contract.getHashForHtlc(hash);
|
|
81
|
+
const claimHash = this.wrapper._contract.getHashForHtlc(hash);
|
|
68
82
|
const expectedClaimHash = buffer_1.Buffer.from(this.getClaimHash(), "hex");
|
|
69
83
|
if (!claimHash.equals(expectedClaimHash))
|
|
70
84
|
throw new IntermediaryError_1.IntermediaryError("Invalid payment secret returned");
|
|
71
85
|
}
|
|
86
|
+
this.pr ??= hash.toString("hex");
|
|
72
87
|
this.secret = result.secret;
|
|
73
88
|
return Promise.resolve(true);
|
|
74
89
|
}
|
|
75
90
|
//////////////////////////////
|
|
76
91
|
//// Amounts & fees
|
|
92
|
+
/**
|
|
93
|
+
* @inheritDoc
|
|
94
|
+
*/
|
|
77
95
|
getOutputToken() {
|
|
78
96
|
return Token_1.BitcoinTokens.BTCLN;
|
|
79
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* @inheritDoc
|
|
100
|
+
*/
|
|
80
101
|
getOutput() {
|
|
81
102
|
if (this.pr == null || !this.pr.toLowerCase().startsWith("ln"))
|
|
82
|
-
return (0, TokenAmount_1.toTokenAmount)(null, this.outputToken, this.wrapper.
|
|
103
|
+
return (0, TokenAmount_1.toTokenAmount)(null, this.outputToken, this.wrapper._prices, this.pricingInfo);
|
|
83
104
|
const parsedPR = (0, bolt11_1.decode)(this.pr);
|
|
84
105
|
if (parsedPR.millisatoshis == null)
|
|
85
106
|
throw new Error("Swap invoice has no msat amount field!");
|
|
86
107
|
const amount = (BigInt(parsedPR.millisatoshis) + 999n) / 1000n;
|
|
87
|
-
return (0, TokenAmount_1.toTokenAmount)(amount, this.outputToken, this.wrapper.
|
|
108
|
+
return (0, TokenAmount_1.toTokenAmount)(amount, this.outputToken, this.wrapper._prices, this.pricingInfo);
|
|
88
109
|
}
|
|
89
110
|
//////////////////////////////
|
|
90
111
|
//// Getters & utils
|
|
112
|
+
/**
|
|
113
|
+
* @inheritDoc
|
|
114
|
+
*/
|
|
91
115
|
getOutputTxId() {
|
|
92
|
-
|
|
116
|
+
const paymentHash = this.getPaymentHash();
|
|
117
|
+
if (paymentHash == null)
|
|
118
|
+
return null;
|
|
119
|
+
return paymentHash.toString("hex");
|
|
93
120
|
}
|
|
94
121
|
/**
|
|
95
|
-
*
|
|
122
|
+
* @inheritDoc
|
|
96
123
|
*/
|
|
97
124
|
getOutputAddress() {
|
|
98
125
|
return this.lnurl ?? this.pr ?? null;
|
|
@@ -104,14 +131,15 @@ class ToBTCLNSwap extends IToBTCSwap_1.IToBTCSwap {
|
|
|
104
131
|
return this.secret ?? null;
|
|
105
132
|
}
|
|
106
133
|
/**
|
|
107
|
-
* Returns the confidence of the intermediary that this payment will succeed
|
|
108
|
-
*
|
|
134
|
+
* Returns the confidence of the intermediary that this payment will succeed.
|
|
135
|
+
*
|
|
136
|
+
* @returns Decimal value between 0 and 1, where 0 is not likely and 1 is very likely
|
|
109
137
|
*/
|
|
110
138
|
getConfidence() {
|
|
111
139
|
return this.confidence;
|
|
112
140
|
}
|
|
113
141
|
/**
|
|
114
|
-
* Checks whether a swap is likely to fail, based on the confidence as reported by the LP
|
|
142
|
+
* Checks whether a swap is likely to fail, based on the confidence as reported by the intermediary (LP)
|
|
115
143
|
*/
|
|
116
144
|
willLikelyFail() {
|
|
117
145
|
if (this.pr == null || !this.pr.toLowerCase().startsWith("ln"))
|
|
@@ -127,8 +155,8 @@ class ToBTCLNSwap extends IToBTCSwap_1.IToBTCSwap {
|
|
|
127
155
|
return this.confidence === 0;
|
|
128
156
|
}
|
|
129
157
|
/**
|
|
130
|
-
* Tries to detect if the target lightning invoice is a non-custodial mobile wallet, care must be taken
|
|
131
|
-
* for such a wallet to be online when attempting to make a swap
|
|
158
|
+
* Tries to detect if the target lightning invoice is a non-custodial mobile wallet, extract care must be taken
|
|
159
|
+
* for such a wallet **to be online** when attempting to make a swap sending to such a wallet
|
|
132
160
|
*/
|
|
133
161
|
isPayingToNonCustodialWallet() {
|
|
134
162
|
if (this.pr == null || !this.pr.toLowerCase().startsWith("ln"))
|
|
@@ -139,64 +167,79 @@ class ToBTCLNSwap extends IToBTCSwap_1.IToBTCSwap {
|
|
|
139
167
|
}
|
|
140
168
|
return false;
|
|
141
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* @inheritDoc
|
|
172
|
+
* @internal
|
|
173
|
+
*/
|
|
142
174
|
getIdentifierHash() {
|
|
143
175
|
const idBuffer = this.usesClaimHashAsId
|
|
144
176
|
? buffer_1.Buffer.from(this.getClaimHash(), "hex")
|
|
145
177
|
: this.getPaymentHash();
|
|
146
|
-
if (this.
|
|
178
|
+
if (this._randomNonce == null)
|
|
147
179
|
return idBuffer;
|
|
148
|
-
return buffer_1.Buffer.concat([idBuffer, buffer_1.Buffer.from(this.
|
|
180
|
+
return buffer_1.Buffer.concat([idBuffer, buffer_1.Buffer.from(this._randomNonce, "hex")]);
|
|
149
181
|
}
|
|
150
|
-
|
|
182
|
+
/**
|
|
183
|
+
* @inheritDoc
|
|
184
|
+
* @internal
|
|
185
|
+
*/
|
|
186
|
+
getLpIdentifier() {
|
|
151
187
|
if (this.pr == null)
|
|
152
|
-
return
|
|
188
|
+
return this._data.getEscrowHash();
|
|
153
189
|
if (this.pr.toLowerCase().startsWith("ln")) {
|
|
154
190
|
const parsed = (0, bolt11_1.decode)(this.pr);
|
|
155
191
|
if (parsed.tagsObject.payment_hash == null)
|
|
156
192
|
throw new Error("Swap invoice has no payment hash field!");
|
|
157
|
-
return
|
|
193
|
+
return parsed.tagsObject.payment_hash;
|
|
158
194
|
}
|
|
159
|
-
return
|
|
195
|
+
return this.pr;
|
|
160
196
|
}
|
|
161
|
-
|
|
197
|
+
/**
|
|
198
|
+
* Returns the payment hash of the swap, i.e. a payment hash of the lightning network invoice that
|
|
199
|
+
* is about to be paid
|
|
200
|
+
*/
|
|
201
|
+
getPaymentHash() {
|
|
162
202
|
if (this.pr == null)
|
|
163
|
-
return
|
|
203
|
+
return null;
|
|
164
204
|
if (this.pr.toLowerCase().startsWith("ln")) {
|
|
165
205
|
const parsed = (0, bolt11_1.decode)(this.pr);
|
|
166
206
|
if (parsed.tagsObject.payment_hash == null)
|
|
167
207
|
throw new Error("Swap invoice has no payment hash field!");
|
|
168
|
-
return parsed.tagsObject.payment_hash;
|
|
208
|
+
return buffer_1.Buffer.from(parsed.tagsObject.payment_hash, "hex");
|
|
169
209
|
}
|
|
170
|
-
return this.pr;
|
|
210
|
+
return buffer_1.Buffer.from(this.pr, "hex");
|
|
171
211
|
}
|
|
172
212
|
//////////////////////////////
|
|
173
213
|
//// LNURL-pay
|
|
174
214
|
/**
|
|
175
|
-
*
|
|
215
|
+
* Whether this is an LNURL-pay swap
|
|
176
216
|
*/
|
|
177
217
|
isLNURL() {
|
|
178
218
|
return this.lnurl != null;
|
|
179
219
|
}
|
|
180
220
|
/**
|
|
181
|
-
* Gets the used LNURL or null if this is not an LNURL-pay swap
|
|
221
|
+
* Gets the used LNURL-pay link or `null` if this is not an LNURL-pay swap
|
|
182
222
|
*/
|
|
183
223
|
getLNURL() {
|
|
184
224
|
return this.lnurl ?? null;
|
|
185
225
|
}
|
|
186
226
|
/**
|
|
187
|
-
* Checks whether this LNURL payment contains a success
|
|
227
|
+
* Checks whether this LNURL-pay payment contains a success action
|
|
188
228
|
*/
|
|
189
229
|
hasSuccessAction() {
|
|
190
230
|
return this.successAction != null;
|
|
191
231
|
}
|
|
192
232
|
/**
|
|
193
|
-
* Returns the success action after a successful payment, else null
|
|
233
|
+
* Returns the success action after a successful payment, else `null`
|
|
194
234
|
*/
|
|
195
235
|
getSuccessAction() {
|
|
196
236
|
return LNURL_1.LNURL.decodeSuccessAction(this.successAction, this.secret);
|
|
197
237
|
}
|
|
198
238
|
//////////////////////////////
|
|
199
239
|
//// Storage
|
|
240
|
+
/**
|
|
241
|
+
* @inheritDoc
|
|
242
|
+
*/
|
|
200
243
|
serialize() {
|
|
201
244
|
return {
|
|
202
245
|
...super.serialize(),
|