@atomiqlabs/sdk 8.6.4 → 8.6.6
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/SmartChainAssets.d.ts +181 -181
- package/dist/SmartChainAssets.js +181 -181
- package/dist/bitcoin/coinselect2/accumulative.d.ts +6 -6
- package/dist/bitcoin/coinselect2/accumulative.js +51 -52
- package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -6
- package/dist/bitcoin/coinselect2/blackjack.js +37 -38
- package/dist/bitcoin/coinselect2/index.d.ts +17 -19
- package/dist/bitcoin/coinselect2/index.js +69 -69
- package/dist/bitcoin/coinselect2/utils.d.ts +75 -77
- package/dist/bitcoin/coinselect2/utils.js +123 -123
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +128 -130
- package/dist/bitcoin/wallet/BitcoinWallet.js +322 -322
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +78 -78
- package/dist/bitcoin/wallet/IBitcoinWallet.js +20 -21
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +99 -101
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +176 -176
- package/dist/enums/FeeType.d.ts +15 -15
- package/dist/enums/FeeType.js +19 -19
- package/dist/enums/SwapAmountType.d.ts +15 -15
- package/dist/enums/SwapAmountType.js +19 -19
- package/dist/enums/SwapDirection.d.ts +15 -15
- package/dist/enums/SwapDirection.js +19 -19
- package/dist/enums/SwapSide.d.ts +15 -15
- package/dist/enums/SwapSide.js +19 -19
- package/dist/enums/SwapType.d.ts +75 -75
- package/dist/enums/SwapType.js +79 -79
- package/dist/errors/IntermediaryError.d.ts +13 -13
- package/dist/errors/IntermediaryError.js +27 -27
- package/dist/errors/RequestError.d.ts +32 -32
- package/dist/errors/RequestError.js +54 -54
- package/dist/errors/UserError.d.ts +8 -8
- package/dist/errors/UserError.js +16 -16
- package/dist/events/UnifiedSwapEventListener.d.ts +23 -23
- package/dist/events/UnifiedSwapEventListener.js +130 -130
- package/dist/http/HttpUtils.d.ts +27 -27
- package/dist/http/HttpUtils.js +90 -91
- package/dist/http/paramcoders/IParamReader.d.ts +8 -8
- package/dist/http/paramcoders/IParamReader.js +2 -2
- package/dist/http/paramcoders/ParamDecoder.d.ts +42 -44
- package/dist/http/paramcoders/ParamDecoder.js +137 -137
- package/dist/http/paramcoders/ParamEncoder.d.ts +18 -20
- package/dist/http/paramcoders/ParamEncoder.js +36 -36
- package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
- package/dist/http/paramcoders/SchemaVerifier.js +145 -145
- package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
- package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
- package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +11 -13
- package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
- package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -16
- package/dist/http/paramcoders/client/StreamingFetchPromise.js +173 -174
- package/dist/index.d.ts +85 -85
- package/dist/index.js +158 -158
- package/dist/intermediaries/Intermediary.d.ts +157 -157
- package/dist/intermediaries/Intermediary.js +142 -142
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +198 -199
- package/dist/intermediaries/IntermediaryDiscovery.js +406 -406
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +437 -438
- package/dist/intermediaries/apis/IntermediaryAPI.js +603 -602
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
- package/dist/lnurl/LNURL.d.ts +102 -102
- package/dist/lnurl/LNURL.js +321 -321
- package/dist/prices/RedundantSwapPrice.d.ts +110 -110
- package/dist/prices/RedundantSwapPrice.js +222 -222
- package/dist/prices/SingleSwapPrice.d.ts +34 -34
- package/dist/prices/SingleSwapPrice.js +44 -44
- package/dist/prices/SwapPriceWithChain.d.ts +107 -107
- package/dist/prices/SwapPriceWithChain.js +128 -128
- package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
- package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
- package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
- package/dist/prices/abstract/IPriceProvider.js +74 -74
- package/dist/prices/abstract/ISwapPrice.d.ts +168 -166
- package/dist/prices/abstract/ISwapPrice.js +279 -267
- package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
- package/dist/prices/providers/BinancePriceProvider.js +30 -30
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
- package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
- package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
- package/dist/prices/providers/CustomPriceProvider.js +35 -35
- package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
- package/dist/prices/providers/KrakenPriceProvider.js +45 -45
- package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
- package/dist/prices/providers/OKXPriceProvider.js +29 -29
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
- package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
- package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
- package/dist/storage/IUnifiedStorage.d.ts +85 -85
- package/dist/storage/IUnifiedStorage.js +2 -2
- package/dist/storage/UnifiedSwapStorage.d.ts +114 -114
- package/dist/storage/UnifiedSwapStorage.js +116 -116
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
- package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
- package/dist/storage-browser/LocalStorageManager.js +93 -93
- package/dist/swapper/Swapper.d.ts +686 -687
- package/dist/swapper/Swapper.js +1603 -1603
- package/dist/swapper/SwapperFactory.d.ts +135 -135
- package/dist/swapper/SwapperFactory.js +162 -162
- package/dist/swapper/SwapperUtils.d.ts +200 -200
- package/dist/swapper/SwapperUtils.js +467 -467
- package/dist/swapper/SwapperWithChain.d.ts +404 -404
- package/dist/swapper/SwapperWithChain.js +469 -469
- package/dist/swapper/SwapperWithSigner.d.ts +322 -322
- package/dist/swapper/SwapperWithSigner.js +318 -318
- package/dist/swaps/IAddressSwap.d.ts +22 -22
- package/dist/swaps/IAddressSwap.js +13 -14
- package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
- package/dist/swaps/IBTCWalletSwap.js +17 -18
- package/dist/swaps/IClaimableSwap.d.ts +49 -49
- package/dist/swaps/IClaimableSwap.js +14 -15
- package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
- package/dist/swaps/IClaimableSwapWrapper.js +2 -2
- package/dist/swaps/IRefundableSwap.d.ts +43 -43
- package/dist/swaps/IRefundableSwap.js +13 -14
- package/dist/swaps/ISwap.d.ts +386 -387
- package/dist/swaps/ISwap.js +346 -341
- package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
- package/dist/swaps/ISwapWithGasDrop.js +11 -12
- package/dist/swaps/ISwapWrapper.d.ts +283 -284
- package/dist/swaps/ISwapWrapper.js +353 -353
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +133 -135
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +169 -169
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +114 -115
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +134 -134
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +98 -101
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +130 -130
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +58 -58
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +78 -78
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +529 -531
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +181 -184
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +418 -417
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +581 -583
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +225 -228
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +506 -506
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +458 -458
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1126 -1126
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +190 -191
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +378 -377
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +403 -403
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +924 -924
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +62 -62
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +112 -112
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +125 -127
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +241 -242
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +520 -520
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +127 -128
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +278 -278
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +630 -630
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1443 -1443
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +213 -207
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +756 -755
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +261 -261
- package/dist/swaps/trusted/ln/LnForGasSwap.js +511 -511
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +82 -82
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +342 -342
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +715 -715
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +68 -69
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +92 -92
- package/dist/types/AmountData.d.ts +10 -10
- package/dist/types/AmountData.js +2 -2
- package/dist/types/CustomPriceFunction.d.ts +11 -11
- package/dist/types/CustomPriceFunction.js +2 -2
- package/dist/types/PriceInfoType.d.ts +28 -28
- package/dist/types/PriceInfoType.js +56 -57
- package/dist/types/SwapExecutionAction.d.ts +88 -88
- package/dist/types/SwapExecutionAction.js +2 -2
- package/dist/types/SwapStateInfo.d.ts +5 -5
- package/dist/types/SwapStateInfo.js +2 -2
- package/dist/types/SwapWithSigner.d.ts +17 -17
- package/dist/types/SwapWithSigner.js +42 -43
- package/dist/types/Token.d.ts +99 -99
- package/dist/types/Token.js +76 -76
- package/dist/types/TokenAmount.d.ts +69 -69
- package/dist/types/TokenAmount.js +59 -60
- package/dist/types/fees/Fee.d.ts +50 -50
- package/dist/types/fees/Fee.js +2 -2
- package/dist/types/fees/FeeBreakdown.d.ts +11 -11
- package/dist/types/fees/FeeBreakdown.js +2 -2
- package/dist/types/fees/PercentagePPM.d.ts +17 -17
- package/dist/types/fees/PercentagePPM.js +17 -18
- package/dist/types/lnurl/LNURLPay.d.ts +61 -61
- package/dist/types/lnurl/LNURLPay.js +30 -31
- package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
- package/dist/types/lnurl/LNURLWithdraw.js +26 -27
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
- package/dist/types/wallets/LightningInvoiceCreateService.js +14 -15
- package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
- package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
- package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
- package/dist/utils/AutomaticClockDriftCorrection.js +69 -70
- package/dist/utils/BitcoinUtils.d.ts +12 -14
- package/dist/utils/BitcoinUtils.js +101 -102
- package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
- package/dist/utils/BitcoinWalletUtils.js +13 -14
- package/dist/utils/Logger.d.ts +7 -7
- package/dist/utils/Logger.js +11 -12
- package/dist/utils/RetryUtils.d.ts +22 -22
- package/dist/utils/RetryUtils.js +66 -67
- package/dist/utils/SwapUtils.d.ts +88 -88
- package/dist/utils/SwapUtils.js +72 -72
- package/dist/utils/TimeoutUtils.d.ts +17 -17
- package/dist/utils/TimeoutUtils.js +54 -55
- package/dist/utils/TokenUtils.d.ts +19 -19
- package/dist/utils/TokenUtils.js +36 -37
- package/dist/utils/TypeUtils.d.ts +7 -7
- package/dist/utils/TypeUtils.js +2 -2
- package/dist/utils/Utils.d.ts +56 -58
- package/dist/utils/Utils.js +193 -194
- package/package.json +1 -1
- package/src/intermediaries/apis/IntermediaryAPI.ts +4 -2
- package/src/prices/abstract/ISwapPrice.ts +19 -6
- package/src/swaps/ISwap.ts +17 -6
- package/src/swaps/ISwapWrapper.ts +4 -3
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +4 -2
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +4 -1
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +2 -2
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +4 -2
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +6 -6
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +5 -5
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +4 -1
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +10 -2
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +1 -1
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +1 -1
|
@@ -1,101 +1,98 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
* @param
|
|
29
|
-
* @param
|
|
30
|
-
* @param
|
|
31
|
-
* @param
|
|
32
|
-
* @param
|
|
33
|
-
* @param
|
|
34
|
-
* @param
|
|
35
|
-
* @param
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* @
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
* @param
|
|
69
|
-
*
|
|
70
|
-
* @
|
|
71
|
-
* @
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* @
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* @
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
*/
|
|
100
|
-
_getHtlcTimeout(data: SwapData): bigint;
|
|
101
|
-
}
|
|
1
|
+
import { ChainType, LightningNetworkApi, LNNodeLiquidity, SwapData } from "@atomiqlabs/base";
|
|
2
|
+
import { IFromBTCDefinition, IFromBTCWrapper } from "./IFromBTCWrapper";
|
|
3
|
+
import { ISwapWrapperOptions, WrapperCtorTokens } from "../../ISwapWrapper";
|
|
4
|
+
import { UnifiedSwapStorage } from "../../../storage/UnifiedSwapStorage";
|
|
5
|
+
import { UnifiedSwapEventListener } from "../../../events/UnifiedSwapEventListener";
|
|
6
|
+
import { ISwapPrice } from "../../../prices/abstract/ISwapPrice";
|
|
7
|
+
import { EventEmitter } from "events";
|
|
8
|
+
import { Buffer } from "buffer";
|
|
9
|
+
import { Intermediary } from "../../../intermediaries/Intermediary";
|
|
10
|
+
import { PaymentRequestObject, TagsObject } from "@atomiqlabs/bolt11";
|
|
11
|
+
import { IEscrowSwap } from "../IEscrowSwap";
|
|
12
|
+
import { LNURLWithdrawParamsWithUrl } from "../../../types/lnurl/LNURLWithdraw";
|
|
13
|
+
export type IFromBTCLNDefinition<T extends ChainType, W extends IFromBTCLNWrapper<T, any>, S extends IEscrowSwap<T>> = IFromBTCDefinition<T, W, S>;
|
|
14
|
+
/**
|
|
15
|
+
* Base class for wrappers of escrow-based Lightning -> Smart chain swaps
|
|
16
|
+
*
|
|
17
|
+
* @category Swaps/Abstract
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class IFromBTCLNWrapper<T extends ChainType, D extends IFromBTCLNDefinition<T, IFromBTCLNWrapper<T, D>, IEscrowSwap<T, D>>, O extends ISwapWrapperOptions = ISwapWrapperOptions> extends IFromBTCWrapper<T, D, O> {
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
protected readonly lnApi: LightningNetworkApi;
|
|
24
|
+
/**
|
|
25
|
+
* @param chainIdentifier
|
|
26
|
+
* @param unifiedStorage Storage interface for the current environment
|
|
27
|
+
* @param unifiedChainEvents On-chain event listener
|
|
28
|
+
* @param chain
|
|
29
|
+
* @param contract Underlying contract handling the swaps
|
|
30
|
+
* @param prices Swap pricing handler
|
|
31
|
+
* @param tokens
|
|
32
|
+
* @param swapDataDeserializer Deserializer for SwapData
|
|
33
|
+
* @param lnApi
|
|
34
|
+
* @param options
|
|
35
|
+
* @param events Instance to use for emitting events
|
|
36
|
+
*/
|
|
37
|
+
constructor(chainIdentifier: string, unifiedStorage: UnifiedSwapStorage<T>, unifiedChainEvents: UnifiedSwapEventListener<T>, chain: T["ChainInterface"], contract: T["Contract"], prices: ISwapPrice, tokens: WrapperCtorTokens, swapDataDeserializer: new (data: any) => T["Data"], lnApi: LightningNetworkApi, options: O, events?: EventEmitter<{
|
|
38
|
+
swapState: [IEscrowSwap];
|
|
39
|
+
}>);
|
|
40
|
+
/**
|
|
41
|
+
* Generates a new 32-byte secret to be used as pre-image for lightning network invoice & HTLC swap
|
|
42
|
+
*
|
|
43
|
+
* @returns Hash pre-image & payment hash
|
|
44
|
+
*
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
protected getSecretAndHash(): {
|
|
48
|
+
secret: Buffer;
|
|
49
|
+
paymentHash: Buffer;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Pre-fetches intermediary's LN node capacity, doesn't throw, instead returns null
|
|
53
|
+
*
|
|
54
|
+
* @param pubkeyPromise Promise that resolves when we receive "lnPublicKey" param from the intermediary through
|
|
55
|
+
* streaming
|
|
56
|
+
*
|
|
57
|
+
* @returns LN Node liquidity
|
|
58
|
+
*
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
protected preFetchLnCapacity(pubkeyPromise: Promise<string | null>): Promise<LNNodeLiquidity | null>;
|
|
62
|
+
/**
|
|
63
|
+
* Verifies whether the intermediary's lightning node has enough inbound capacity to receive the LN payment
|
|
64
|
+
*
|
|
65
|
+
* @param lp Intermediary
|
|
66
|
+
* @param decodedPr Decoded bolt11 lightning network invoice
|
|
67
|
+
* @param lnCapacityPrefetchPromise Pre-fetch for LN node capacity, preFetchLnCapacity()
|
|
68
|
+
* @param abortSignal Abort signal
|
|
69
|
+
*
|
|
70
|
+
* @throws {IntermediaryError} if the lightning network node doesn't have enough inbound liquidity
|
|
71
|
+
* @throws {Error} if the lightning network node's inbound liquidity might be enough, but the swap would
|
|
72
|
+
* deplete more than half of the liquidity
|
|
73
|
+
*
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
protected verifyLnNodeCapacity(lp: Intermediary, decodedPr: PaymentRequestObject & {
|
|
77
|
+
tagsObject: TagsObject;
|
|
78
|
+
}, lnCapacityPrefetchPromise?: Promise<LNNodeLiquidity | null>, abortSignal?: AbortSignal): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Parses and fetches lnurl withdraw params from the specified lnurl
|
|
81
|
+
*
|
|
82
|
+
* @param lnurl LNURL to be parsed and fetched
|
|
83
|
+
* @param abortSignal Abort signal
|
|
84
|
+
*
|
|
85
|
+
* @throws {UserError} if the LNURL is invalid or if it's not a LNURL-withdraw
|
|
86
|
+
*
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
protected getLNURLWithdraw(lnurl: string | LNURLWithdrawParamsWithUrl, abortSignal: AbortSignal): Promise<LNURLWithdrawParamsWithUrl>;
|
|
90
|
+
/**
|
|
91
|
+
* Returns the swap expiry, leaving enough time for the user to claim the HTLC
|
|
92
|
+
*
|
|
93
|
+
* @param data Parsed swap data
|
|
94
|
+
*
|
|
95
|
+
* @internal
|
|
96
|
+
*/
|
|
97
|
+
_getHtlcTimeout(data: SwapData): bigint;
|
|
98
|
+
}
|
|
@@ -1,130 +1,130 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IFromBTCLNWrapper = void 0;
|
|
4
|
-
const IFromBTCWrapper_1 = require("./IFromBTCWrapper");
|
|
5
|
-
const buffer_1 = require("buffer");
|
|
6
|
-
const Utils_1 = require("../../../utils/Utils");
|
|
7
|
-
const IntermediaryError_1 = require("../../../errors/IntermediaryError");
|
|
8
|
-
const LNURL_1 = require("../../../lnurl/LNURL");
|
|
9
|
-
const UserError_1 = require("../../../errors/UserError");
|
|
10
|
-
const sha256_1 = require("@noble/hashes/sha256");
|
|
11
|
-
/**
|
|
12
|
-
* Base class for wrappers of escrow-based Lightning -> Smart chain swaps
|
|
13
|
-
*
|
|
14
|
-
* @category Swaps/Abstract
|
|
15
|
-
*/
|
|
16
|
-
class IFromBTCLNWrapper extends IFromBTCWrapper_1.IFromBTCWrapper {
|
|
17
|
-
/**
|
|
18
|
-
* @param chainIdentifier
|
|
19
|
-
* @param unifiedStorage Storage interface for the current environment
|
|
20
|
-
* @param unifiedChainEvents On-chain event listener
|
|
21
|
-
* @param chain
|
|
22
|
-
* @param contract Underlying contract handling the swaps
|
|
23
|
-
* @param prices Swap pricing handler
|
|
24
|
-
* @param tokens
|
|
25
|
-
* @param swapDataDeserializer Deserializer for SwapData
|
|
26
|
-
* @param lnApi
|
|
27
|
-
* @param options
|
|
28
|
-
* @param events Instance to use for emitting events
|
|
29
|
-
*/
|
|
30
|
-
constructor(chainIdentifier, unifiedStorage, unifiedChainEvents, chain, contract, prices, tokens, swapDataDeserializer, lnApi, options, events) {
|
|
31
|
-
super(chainIdentifier, unifiedStorage, unifiedChainEvents, chain, contract, prices, tokens, swapDataDeserializer, options, events);
|
|
32
|
-
this.lnApi = lnApi;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Generates a new 32-byte secret to be used as pre-image for lightning network invoice & HTLC swap
|
|
36
|
-
*
|
|
37
|
-
* @returns Hash pre-image & payment hash
|
|
38
|
-
*
|
|
39
|
-
* @internal
|
|
40
|
-
*/
|
|
41
|
-
getSecretAndHash() {
|
|
42
|
-
const secret = (0, Utils_1.randomBytes)(32);
|
|
43
|
-
const paymentHash = buffer_1.Buffer.from((0, sha256_1.sha256)(secret));
|
|
44
|
-
return { secret, paymentHash };
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Pre-fetches intermediary's LN node capacity, doesn't throw, instead returns null
|
|
48
|
-
*
|
|
49
|
-
* @param pubkeyPromise Promise that resolves when we receive "lnPublicKey" param from the intermediary through
|
|
50
|
-
* streaming
|
|
51
|
-
*
|
|
52
|
-
* @returns LN Node liquidity
|
|
53
|
-
*
|
|
54
|
-
* @internal
|
|
55
|
-
*/
|
|
56
|
-
preFetchLnCapacity(pubkeyPromise) {
|
|
57
|
-
return pubkeyPromise.then(pubkey => {
|
|
58
|
-
if (pubkey == null)
|
|
59
|
-
return null;
|
|
60
|
-
return this.lnApi.getLNNodeLiquidity(pubkey);
|
|
61
|
-
}).catch(e => {
|
|
62
|
-
this.logger.warn("preFetchLnCapacity(): Error: ", e);
|
|
63
|
-
return null;
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Verifies whether the intermediary's lightning node has enough inbound capacity to receive the LN payment
|
|
68
|
-
*
|
|
69
|
-
* @param lp Intermediary
|
|
70
|
-
* @param decodedPr Decoded bolt11 lightning network invoice
|
|
71
|
-
* @param lnCapacityPrefetchPromise Pre-fetch for LN node capacity, preFetchLnCapacity()
|
|
72
|
-
* @param abortSignal Abort signal
|
|
73
|
-
*
|
|
74
|
-
* @throws {IntermediaryError} if the lightning network node doesn't have enough inbound liquidity
|
|
75
|
-
* @throws {Error} if the lightning network node's inbound liquidity might be enough, but the swap would
|
|
76
|
-
* deplete more than half of the liquidity
|
|
77
|
-
*
|
|
78
|
-
* @internal
|
|
79
|
-
*/
|
|
80
|
-
async verifyLnNodeCapacity(lp, decodedPr, lnCapacityPrefetchPromise, abortSignal) {
|
|
81
|
-
if (decodedPr.payeeNodeKey == null)
|
|
82
|
-
throw new Error("Unable to extract payee pubkey from the swap invoice!");
|
|
83
|
-
if (decodedPr.millisatoshis == null)
|
|
84
|
-
throw new Error("Swap invoice doesn't contains msat amount field!");
|
|
85
|
-
const _result = await lnCapacityPrefetchPromise ?? await this.lnApi.getLNNodeLiquidity(decodedPr.payeeNodeKey);
|
|
86
|
-
if (_result === null)
|
|
87
|
-
throw new IntermediaryError_1.IntermediaryError("LP's lightning node not found in the lightning network graph!");
|
|
88
|
-
if (abortSignal != null)
|
|
89
|
-
abortSignal.throwIfAborted();
|
|
90
|
-
lp.lnData = _result;
|
|
91
|
-
if (decodedPr.payeeNodeKey !== _result.publicKey)
|
|
92
|
-
throw new IntermediaryError_1.IntermediaryError("Invalid pr returned - payee pubkey");
|
|
93
|
-
const amountIn = (BigInt(decodedPr.millisatoshis) + 999n) / 1000n;
|
|
94
|
-
if (_result.capacity < amountIn)
|
|
95
|
-
throw new IntermediaryError_1.IntermediaryError("LP's lightning node doesn't have enough inbound capacity for the swap!");
|
|
96
|
-
if ((_result.capacity / 2n) < amountIn)
|
|
97
|
-
throw new Error("LP's lightning node probably doesn't have enough inbound capacity for the swap!");
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Parses and fetches lnurl withdraw params from the specified lnurl
|
|
101
|
-
*
|
|
102
|
-
* @param lnurl LNURL to be parsed and fetched
|
|
103
|
-
* @param abortSignal Abort signal
|
|
104
|
-
*
|
|
105
|
-
* @throws {UserError} if the LNURL is invalid or if it's not a LNURL-withdraw
|
|
106
|
-
*
|
|
107
|
-
* @internal
|
|
108
|
-
*/
|
|
109
|
-
async getLNURLWithdraw(lnurl, abortSignal) {
|
|
110
|
-
if (typeof (lnurl) !== "string")
|
|
111
|
-
return lnurl;
|
|
112
|
-
const res = await LNURL_1.LNURL.getLNURL(lnurl, true, this._options.getRequestTimeout, abortSignal);
|
|
113
|
-
if (res == null)
|
|
114
|
-
throw new UserError_1.UserError("Invalid LNURL");
|
|
115
|
-
if (res.tag !== "withdrawRequest")
|
|
116
|
-
throw new UserError_1.UserError("Not a LNURL-withdrawal");
|
|
117
|
-
return res;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Returns the swap expiry, leaving enough time for the user to claim the HTLC
|
|
121
|
-
*
|
|
122
|
-
* @param data Parsed swap data
|
|
123
|
-
*
|
|
124
|
-
* @internal
|
|
125
|
-
*/
|
|
126
|
-
_getHtlcTimeout(data) {
|
|
127
|
-
return data.getExpiry() - 600n;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
exports.IFromBTCLNWrapper = IFromBTCLNWrapper;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IFromBTCLNWrapper = void 0;
|
|
4
|
+
const IFromBTCWrapper_1 = require("./IFromBTCWrapper");
|
|
5
|
+
const buffer_1 = require("buffer");
|
|
6
|
+
const Utils_1 = require("../../../utils/Utils");
|
|
7
|
+
const IntermediaryError_1 = require("../../../errors/IntermediaryError");
|
|
8
|
+
const LNURL_1 = require("../../../lnurl/LNURL");
|
|
9
|
+
const UserError_1 = require("../../../errors/UserError");
|
|
10
|
+
const sha256_1 = require("@noble/hashes/sha256");
|
|
11
|
+
/**
|
|
12
|
+
* Base class for wrappers of escrow-based Lightning -> Smart chain swaps
|
|
13
|
+
*
|
|
14
|
+
* @category Swaps/Abstract
|
|
15
|
+
*/
|
|
16
|
+
class IFromBTCLNWrapper extends IFromBTCWrapper_1.IFromBTCWrapper {
|
|
17
|
+
/**
|
|
18
|
+
* @param chainIdentifier
|
|
19
|
+
* @param unifiedStorage Storage interface for the current environment
|
|
20
|
+
* @param unifiedChainEvents On-chain event listener
|
|
21
|
+
* @param chain
|
|
22
|
+
* @param contract Underlying contract handling the swaps
|
|
23
|
+
* @param prices Swap pricing handler
|
|
24
|
+
* @param tokens
|
|
25
|
+
* @param swapDataDeserializer Deserializer for SwapData
|
|
26
|
+
* @param lnApi
|
|
27
|
+
* @param options
|
|
28
|
+
* @param events Instance to use for emitting events
|
|
29
|
+
*/
|
|
30
|
+
constructor(chainIdentifier, unifiedStorage, unifiedChainEvents, chain, contract, prices, tokens, swapDataDeserializer, lnApi, options, events) {
|
|
31
|
+
super(chainIdentifier, unifiedStorage, unifiedChainEvents, chain, contract, prices, tokens, swapDataDeserializer, options, events);
|
|
32
|
+
this.lnApi = lnApi;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Generates a new 32-byte secret to be used as pre-image for lightning network invoice & HTLC swap
|
|
36
|
+
*
|
|
37
|
+
* @returns Hash pre-image & payment hash
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
getSecretAndHash() {
|
|
42
|
+
const secret = (0, Utils_1.randomBytes)(32);
|
|
43
|
+
const paymentHash = buffer_1.Buffer.from((0, sha256_1.sha256)(secret));
|
|
44
|
+
return { secret, paymentHash };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Pre-fetches intermediary's LN node capacity, doesn't throw, instead returns null
|
|
48
|
+
*
|
|
49
|
+
* @param pubkeyPromise Promise that resolves when we receive "lnPublicKey" param from the intermediary through
|
|
50
|
+
* streaming
|
|
51
|
+
*
|
|
52
|
+
* @returns LN Node liquidity
|
|
53
|
+
*
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
preFetchLnCapacity(pubkeyPromise) {
|
|
57
|
+
return pubkeyPromise.then(pubkey => {
|
|
58
|
+
if (pubkey == null)
|
|
59
|
+
return null;
|
|
60
|
+
return this.lnApi.getLNNodeLiquidity(pubkey);
|
|
61
|
+
}).catch(e => {
|
|
62
|
+
this.logger.warn("preFetchLnCapacity(): Error: ", e);
|
|
63
|
+
return null;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Verifies whether the intermediary's lightning node has enough inbound capacity to receive the LN payment
|
|
68
|
+
*
|
|
69
|
+
* @param lp Intermediary
|
|
70
|
+
* @param decodedPr Decoded bolt11 lightning network invoice
|
|
71
|
+
* @param lnCapacityPrefetchPromise Pre-fetch for LN node capacity, preFetchLnCapacity()
|
|
72
|
+
* @param abortSignal Abort signal
|
|
73
|
+
*
|
|
74
|
+
* @throws {IntermediaryError} if the lightning network node doesn't have enough inbound liquidity
|
|
75
|
+
* @throws {Error} if the lightning network node's inbound liquidity might be enough, but the swap would
|
|
76
|
+
* deplete more than half of the liquidity
|
|
77
|
+
*
|
|
78
|
+
* @internal
|
|
79
|
+
*/
|
|
80
|
+
async verifyLnNodeCapacity(lp, decodedPr, lnCapacityPrefetchPromise, abortSignal) {
|
|
81
|
+
if (decodedPr.payeeNodeKey == null)
|
|
82
|
+
throw new Error("Unable to extract payee pubkey from the swap invoice!");
|
|
83
|
+
if (decodedPr.millisatoshis == null)
|
|
84
|
+
throw new Error("Swap invoice doesn't contains msat amount field!");
|
|
85
|
+
const _result = await lnCapacityPrefetchPromise ?? await this.lnApi.getLNNodeLiquidity(decodedPr.payeeNodeKey);
|
|
86
|
+
if (_result === null)
|
|
87
|
+
throw new IntermediaryError_1.IntermediaryError("LP's lightning node not found in the lightning network graph!");
|
|
88
|
+
if (abortSignal != null)
|
|
89
|
+
abortSignal.throwIfAborted();
|
|
90
|
+
lp.lnData = _result;
|
|
91
|
+
if (decodedPr.payeeNodeKey !== _result.publicKey)
|
|
92
|
+
throw new IntermediaryError_1.IntermediaryError("Invalid pr returned - payee pubkey");
|
|
93
|
+
const amountIn = (BigInt(decodedPr.millisatoshis) + 999n) / 1000n;
|
|
94
|
+
if (_result.capacity < amountIn)
|
|
95
|
+
throw new IntermediaryError_1.IntermediaryError("LP's lightning node doesn't have enough inbound capacity for the swap!");
|
|
96
|
+
if ((_result.capacity / 2n) < amountIn)
|
|
97
|
+
throw new Error("LP's lightning node probably doesn't have enough inbound capacity for the swap!");
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Parses and fetches lnurl withdraw params from the specified lnurl
|
|
101
|
+
*
|
|
102
|
+
* @param lnurl LNURL to be parsed and fetched
|
|
103
|
+
* @param abortSignal Abort signal
|
|
104
|
+
*
|
|
105
|
+
* @throws {UserError} if the LNURL is invalid or if it's not a LNURL-withdraw
|
|
106
|
+
*
|
|
107
|
+
* @internal
|
|
108
|
+
*/
|
|
109
|
+
async getLNURLWithdraw(lnurl, abortSignal) {
|
|
110
|
+
if (typeof (lnurl) !== "string")
|
|
111
|
+
return lnurl;
|
|
112
|
+
const res = await LNURL_1.LNURL.getLNURL(lnurl, true, this._options.getRequestTimeout, abortSignal);
|
|
113
|
+
if (res == null)
|
|
114
|
+
throw new UserError_1.UserError("Invalid LNURL");
|
|
115
|
+
if (res.tag !== "withdrawRequest")
|
|
116
|
+
throw new UserError_1.UserError("Not a LNURL-withdrawal");
|
|
117
|
+
return res;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Returns the swap expiry, leaving enough time for the user to claim the HTLC
|
|
121
|
+
*
|
|
122
|
+
* @param data Parsed swap data
|
|
123
|
+
*
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
126
|
+
_getHtlcTimeout(data) {
|
|
127
|
+
return data.getExpiry() - 600n;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.IFromBTCLNWrapper = IFromBTCLNWrapper;
|