@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,21 +1,21 @@
|
|
|
1
|
-
import { ChainType } from "@atomiqlabs/base";
|
|
2
|
-
import { TokenAmount } from "../types/TokenAmount";
|
|
3
|
-
import { SCToken } from "../types/Token";
|
|
4
|
-
/**
|
|
5
|
-
* Type guard to check if a swap has gas drop functionality
|
|
6
|
-
*
|
|
7
|
-
* @category Swaps/Types
|
|
8
|
-
*/
|
|
9
|
-
export declare function isSwapWithGasDrop(swap: any): swap is ISwapWithGasDrop<any>;
|
|
10
|
-
/**
|
|
11
|
-
* Interface for swaps with gas drop functionality
|
|
12
|
-
*
|
|
13
|
-
* @category Swaps/Types
|
|
14
|
-
*/
|
|
15
|
-
export interface ISwapWithGasDrop<T extends ChainType> {
|
|
16
|
-
/**
|
|
17
|
-
* Returns the output of the "gas drop", additional native token received by the user on
|
|
18
|
-
* the destination chain
|
|
19
|
-
*/
|
|
20
|
-
getGasDropOutput(): TokenAmount<SCToken<T["ChainId"]>>;
|
|
21
|
-
}
|
|
1
|
+
import { ChainType } from "@atomiqlabs/base";
|
|
2
|
+
import { TokenAmount } from "../types/TokenAmount";
|
|
3
|
+
import { SCToken } from "../types/Token";
|
|
4
|
+
/**
|
|
5
|
+
* Type guard to check if a swap has gas drop functionality
|
|
6
|
+
*
|
|
7
|
+
* @category Swaps/Types
|
|
8
|
+
*/
|
|
9
|
+
export declare function isSwapWithGasDrop(swap: any): swap is ISwapWithGasDrop<any>;
|
|
10
|
+
/**
|
|
11
|
+
* Interface for swaps with gas drop functionality
|
|
12
|
+
*
|
|
13
|
+
* @category Swaps/Types
|
|
14
|
+
*/
|
|
15
|
+
export interface ISwapWithGasDrop<T extends ChainType> {
|
|
16
|
+
/**
|
|
17
|
+
* Returns the output of the "gas drop", additional native token received by the user on
|
|
18
|
+
* the destination chain
|
|
19
|
+
*/
|
|
20
|
+
getGasDropOutput(): TokenAmount<SCToken<T["ChainId"]>>;
|
|
21
|
+
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSwapWithGasDrop =
|
|
4
|
-
/**
|
|
5
|
-
* Type guard to check if a swap has gas drop functionality
|
|
6
|
-
*
|
|
7
|
-
* @category Swaps/Types
|
|
8
|
-
*/
|
|
9
|
-
function isSwapWithGasDrop(swap) {
|
|
10
|
-
return swap != null && typeof (swap.getGasDropOutput) === "function";
|
|
11
|
-
}
|
|
12
|
-
exports.isSwapWithGasDrop = isSwapWithGasDrop;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSwapWithGasDrop = isSwapWithGasDrop;
|
|
4
|
+
/**
|
|
5
|
+
* Type guard to check if a swap has gas drop functionality
|
|
6
|
+
*
|
|
7
|
+
* @category Swaps/Types
|
|
8
|
+
*/
|
|
9
|
+
function isSwapWithGasDrop(swap) {
|
|
10
|
+
return swap != null && typeof (swap.getGasDropOutput) === "function";
|
|
11
|
+
}
|
|
@@ -1,284 +1,283 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
*
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
*
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
* Base
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
* @
|
|
161
|
-
* @
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
* @param
|
|
179
|
-
* @param
|
|
180
|
-
* @param
|
|
181
|
-
* @param
|
|
182
|
-
* @param
|
|
183
|
-
* @param
|
|
184
|
-
* @param
|
|
185
|
-
* @
|
|
186
|
-
* @
|
|
187
|
-
*
|
|
188
|
-
* @
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
* @param
|
|
202
|
-
* @
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
*
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
* @
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
*
|
|
249
|
-
*
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
*
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
*
|
|
278
|
-
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}
|
|
1
|
+
import { ChainEvent, ChainType } from "@atomiqlabs/base";
|
|
2
|
+
import { EventEmitter } from "events";
|
|
3
|
+
import { ISwap } from "./ISwap";
|
|
4
|
+
import { ISwapPrice } from "../prices/abstract/ISwapPrice";
|
|
5
|
+
import { UnifiedSwapEventListener } from "../events/UnifiedSwapEventListener";
|
|
6
|
+
import { SwapType } from "../enums/SwapType";
|
|
7
|
+
import { UnifiedSwapStorage } from "../storage/UnifiedSwapStorage";
|
|
8
|
+
import { SCToken } from "../types/Token";
|
|
9
|
+
import { PriceInfoType } from "../types/PriceInfoType";
|
|
10
|
+
export declare const DEFAULT_MAX_PARALLEL_SWAP_TICKS = 50;
|
|
11
|
+
export declare const DEFAULT_MAX_PARALLEL_SWAP_SYNCS = 50;
|
|
12
|
+
/**
|
|
13
|
+
* Options for swap wrapper configuration
|
|
14
|
+
*
|
|
15
|
+
* @category Swaps/Base
|
|
16
|
+
*/
|
|
17
|
+
export type ISwapWrapperOptions = {
|
|
18
|
+
getRequestTimeout?: number;
|
|
19
|
+
postRequestTimeout?: number;
|
|
20
|
+
/**
|
|
21
|
+
* How many swaps to call `_tick()` for in parallel
|
|
22
|
+
*/
|
|
23
|
+
maxParallelSwapTicks?: number;
|
|
24
|
+
/**
|
|
25
|
+
* How many swaps to call `_sync()` for in parallel
|
|
26
|
+
*/
|
|
27
|
+
maxParallelSwapSyncs?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Whether to save swaps that are not initialized into the persistent storage
|
|
30
|
+
*/
|
|
31
|
+
saveUninitializedSwaps?: boolean;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Token configuration for wrapper constructors
|
|
35
|
+
*
|
|
36
|
+
* @category Swaps/Base
|
|
37
|
+
*/
|
|
38
|
+
export type WrapperCtorTokens<T extends ChainType = ChainType> = {
|
|
39
|
+
[tokenAddress: string]: SCToken<T["ChainId"]>;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Type definition linking wrapper and swap types
|
|
43
|
+
*
|
|
44
|
+
* @category Swaps/Base
|
|
45
|
+
*/
|
|
46
|
+
export type SwapTypeDefinition<T extends ChainType, W extends ISwapWrapper<T, any>, S extends ISwap<T>> = {
|
|
47
|
+
Wrapper: W;
|
|
48
|
+
Swap: S;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Base abstract class for swap handler implementations
|
|
52
|
+
*
|
|
53
|
+
* @category Swaps/Base
|
|
54
|
+
*/
|
|
55
|
+
export declare abstract class ISwapWrapper<T extends ChainType, D extends SwapTypeDefinition<T, ISwapWrapper<T, D>, ISwap<T, D>>, O extends ISwapWrapperOptions = ISwapWrapperOptions> {
|
|
56
|
+
/**
|
|
57
|
+
* Swap type
|
|
58
|
+
*/
|
|
59
|
+
abstract readonly TYPE: SwapType;
|
|
60
|
+
/**
|
|
61
|
+
* Function for deserializing swaps
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
abstract readonly _swapDeserializer: new (wrapper: D["Wrapper"], data: any) => D["Swap"];
|
|
65
|
+
/**
|
|
66
|
+
* Logger instance
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
protected readonly logger: import("../utils/Logger").LoggerType;
|
|
70
|
+
/**
|
|
71
|
+
* Persistent storage backend for the swaps
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
protected readonly unifiedStorage: UnifiedSwapStorage<T>;
|
|
75
|
+
/**
|
|
76
|
+
* Smart chain events listener for listening to and parsing of on-chain events
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
protected readonly unifiedChainEvents: UnifiedSwapEventListener<T>;
|
|
80
|
+
/**
|
|
81
|
+
* States of the swaps where {@link ISwap._tick} should be called every second
|
|
82
|
+
* @internal
|
|
83
|
+
*/
|
|
84
|
+
protected readonly tickSwapState?: Array<D["Swap"]["_state"]>;
|
|
85
|
+
/**
|
|
86
|
+
* In-memory mapping of pending (not initiated) swaps, utilizing weak references to automatically
|
|
87
|
+
* free memory when swaps are dereferenced in not initiated state
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
90
|
+
protected readonly pendingSwaps: Map<string, WeakRef<D["Swap"]>>;
|
|
91
|
+
/**
|
|
92
|
+
* Whether this wrapper is initialized (have to call {@link init} to initialize a wrapper)
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
protected isInitialized: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* An interval for calling tick functions on the underlying swaps
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
protected tickInterval?: NodeJS.Timeout;
|
|
101
|
+
/**
|
|
102
|
+
* An internal abort controller for the running tick handler
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
protected tickAbortController?: AbortController;
|
|
106
|
+
/**
|
|
107
|
+
* States of the swaps in pending (non-final state), these are checked automatically on initial swap synchronization
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
110
|
+
abstract readonly _pendingSwapStates: Array<D["Swap"]["_state"]>;
|
|
111
|
+
/**
|
|
112
|
+
* Chain interface of the underlying smart chain
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
readonly _chain: T["ChainInterface"];
|
|
116
|
+
/**
|
|
117
|
+
* Pricing API
|
|
118
|
+
* @internal
|
|
119
|
+
*/
|
|
120
|
+
readonly _prices: ISwapPrice;
|
|
121
|
+
/**
|
|
122
|
+
* Wrapper options
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
readonly _options: O;
|
|
126
|
+
/**
|
|
127
|
+
* Tokens indexed by their token address
|
|
128
|
+
* @internal
|
|
129
|
+
*/
|
|
130
|
+
readonly _tokens: {
|
|
131
|
+
[tokenAddress: string]: SCToken<T["ChainId"]>;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Chain identifier string of this wrapper
|
|
135
|
+
*/
|
|
136
|
+
readonly chainIdentifier: T["ChainId"];
|
|
137
|
+
/**
|
|
138
|
+
* Event emitter emitting `"swapState"` event when swap's state changes
|
|
139
|
+
*/
|
|
140
|
+
readonly events: EventEmitter<{
|
|
141
|
+
swapState: [D["Swap"]];
|
|
142
|
+
}>;
|
|
143
|
+
constructor(chainIdentifier: T["ChainId"], unifiedStorage: UnifiedSwapStorage<T>, unifiedChainEvents: UnifiedSwapEventListener<T>, chain: T["ChainInterface"], prices: ISwapPrice, tokens: WrapperCtorTokens, options: O, events?: EventEmitter<{
|
|
144
|
+
swapState: [ISwap];
|
|
145
|
+
}>);
|
|
146
|
+
/**
|
|
147
|
+
* Parses the provided gas amount from its `string` or `bigint` representation to `bigint` base units.
|
|
148
|
+
*
|
|
149
|
+
* Defaults to `0n` if no gasAmount is provided
|
|
150
|
+
*
|
|
151
|
+
* @param gasAmount
|
|
152
|
+
* @internal
|
|
153
|
+
*/
|
|
154
|
+
protected parseGasAmount(gasAmount?: string | bigint): bigint;
|
|
155
|
+
/**
|
|
156
|
+
* Pre-fetches swap price for a given swap
|
|
157
|
+
*
|
|
158
|
+
* @param amountData Amount data
|
|
159
|
+
* @param abortSignal Abort signal
|
|
160
|
+
* @returns Price of the token in uSats (micro sats)
|
|
161
|
+
* @internal
|
|
162
|
+
*/
|
|
163
|
+
protected preFetchPrice(amountData: {
|
|
164
|
+
token: string;
|
|
165
|
+
}, abortSignal?: AbortSignal): Promise<bigint | undefined>;
|
|
166
|
+
/**
|
|
167
|
+
* Pre-fetches bitcoin's USD price
|
|
168
|
+
*
|
|
169
|
+
* @param abortSignal Abort signal
|
|
170
|
+
* @internal
|
|
171
|
+
*/
|
|
172
|
+
protected preFetchUsdPrice(abortSignal?: AbortSignal): Promise<number | undefined>;
|
|
173
|
+
/**
|
|
174
|
+
* Verifies returned price for swaps
|
|
175
|
+
*
|
|
176
|
+
* @param lpServiceData Service data for the service in question (TO_BTCLN, TO_BTC, etc.) of the given intermediary
|
|
177
|
+
* @param send Whether this is a send (Smart chain -> Bitcoin) or receive (Bitcoin -> Smart chain) swap
|
|
178
|
+
* @param amountSats Amount in BTC
|
|
179
|
+
* @param amountToken Amount in token
|
|
180
|
+
* @param token Token used in the swap
|
|
181
|
+
* @param feeData Fee data as returned by the intermediary
|
|
182
|
+
* @param pricePrefetchPromise Optional price pre-fetch promise
|
|
183
|
+
* @param usdPricePrefetchPromise Optiona USD price pre-fetch promise
|
|
184
|
+
* @param abortSignal Abort signal
|
|
185
|
+
* @returns Price info object
|
|
186
|
+
* @throws {IntermediaryError} if the calculated fee is too high
|
|
187
|
+
*
|
|
188
|
+
* @internal
|
|
189
|
+
*/
|
|
190
|
+
protected verifyReturnedPrice(lpServiceData: {
|
|
191
|
+
swapBaseFee: number;
|
|
192
|
+
swapFeePPM: number;
|
|
193
|
+
}, send: boolean, amountSats: bigint, amountToken: bigint, token: string, feeData: {
|
|
194
|
+
networkFee?: bigint;
|
|
195
|
+
swapFeeBtc?: bigint;
|
|
196
|
+
}, pricePrefetchPromise?: Promise<bigint | undefined>, usdPricePrefetchPromise?: Promise<number | undefined>, abortSignal?: AbortSignal): Promise<PriceInfoType>;
|
|
197
|
+
/**
|
|
198
|
+
* Processes a single smart chain on-chain event
|
|
199
|
+
*
|
|
200
|
+
* @param event Smart chain event to process
|
|
201
|
+
* @param swap A swap related to the event
|
|
202
|
+
* @internal
|
|
203
|
+
*/
|
|
204
|
+
protected abstract processEvent?(event: ChainEvent<T["Data"]>, swap: D["Swap"]): Promise<void>;
|
|
205
|
+
/**
|
|
206
|
+
* Starts the interval calling the {@link ISwap._tick} on all the known swaps in tick-enabled states
|
|
207
|
+
* @internal
|
|
208
|
+
*/
|
|
209
|
+
protected startTickInterval(): void;
|
|
210
|
+
/**
|
|
211
|
+
* Runs checks on passed swaps, syncing their state from on-chain data
|
|
212
|
+
*
|
|
213
|
+
* @param pastSwaps Swaps to check
|
|
214
|
+
* @internal
|
|
215
|
+
*/
|
|
216
|
+
protected _checkPastSwaps(pastSwaps: D["Swap"][]): Promise<{
|
|
217
|
+
changedSwaps: D["Swap"][];
|
|
218
|
+
removeSwaps: D["Swap"][];
|
|
219
|
+
}>;
|
|
220
|
+
/**
|
|
221
|
+
* Initializes the swap wrapper, needs to be called before any other action can be taken
|
|
222
|
+
*
|
|
223
|
+
* @param noTimers Whether to skip scheduling a tick timer for the swaps, if the tick timer is not initiated
|
|
224
|
+
* the swap states depending on e.g. expiry can be out of sync with the actual expiration of the swap
|
|
225
|
+
* @param noCheckPastSwaps Whether to skip checking past swaps on initialization (by default all pending swaps
|
|
226
|
+
* are re-checked on init, and their state is synchronized from the on-chain data)
|
|
227
|
+
*/
|
|
228
|
+
init(noTimers?: boolean, noCheckPastSwaps?: boolean): Promise<void>;
|
|
229
|
+
/**
|
|
230
|
+
* Un-subscribes from event listeners on the smart chain, terminates the tick interval and stops this wrapper
|
|
231
|
+
*/
|
|
232
|
+
stop(): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* Runs checks on all the known pending swaps, syncing their state from on-chain data
|
|
235
|
+
*
|
|
236
|
+
* @remarks Doesn't work properly if you pass non-persisted swaps
|
|
237
|
+
*
|
|
238
|
+
* @param pastSwaps Optional array of past swaps to check, otherwise all relevant swaps will be fetched
|
|
239
|
+
* from the persistent storage
|
|
240
|
+
* @param noSave Whether to skip saving the swap changes in the persistent storage
|
|
241
|
+
*/
|
|
242
|
+
checkPastSwaps(pastSwaps?: D["Swap"][], noSave?: boolean): Promise<{
|
|
243
|
+
removeSwaps: D["Swap"][];
|
|
244
|
+
changedSwaps: D["Swap"][];
|
|
245
|
+
}>;
|
|
246
|
+
/**
|
|
247
|
+
* Invokes {@link ISwap._tick} on all the known swaps
|
|
248
|
+
*
|
|
249
|
+
* @param swaps Optional array of swaps to invoke `_tick()` on, otherwise all relevant swaps will be fetched
|
|
250
|
+
* from the persistent storage
|
|
251
|
+
* @param abortSignal Abort signal
|
|
252
|
+
*/
|
|
253
|
+
tick(swaps?: D["Swap"][], abortSignal?: AbortSignal): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Returns the smart chain's native token used to pay for fees
|
|
256
|
+
* @internal
|
|
257
|
+
*/
|
|
258
|
+
_getNativeToken(): SCToken<T["ChainId"]>;
|
|
259
|
+
/**
|
|
260
|
+
* Saves the swap, if it is not initiated it is only saved to pending swaps
|
|
261
|
+
*
|
|
262
|
+
* @param swap Swap to save
|
|
263
|
+
*
|
|
264
|
+
* @internal
|
|
265
|
+
*/
|
|
266
|
+
_saveSwapData(swap: D["Swap"]): Promise<void>;
|
|
267
|
+
/**
|
|
268
|
+
* Removes the swap from the persistent storage and pending swaps
|
|
269
|
+
*
|
|
270
|
+
* @param swap Swap to remove
|
|
271
|
+
*
|
|
272
|
+
* @internal
|
|
273
|
+
*/
|
|
274
|
+
_removeSwapData(swap: D["Swap"]): Promise<void>;
|
|
275
|
+
/**
|
|
276
|
+
* Retrieves a swap by its ID from the pending swap mapping
|
|
277
|
+
*
|
|
278
|
+
* @param id
|
|
279
|
+
*
|
|
280
|
+
* @internal
|
|
281
|
+
*/
|
|
282
|
+
_getPendingSwap(id: string): D["Swap"] | null;
|
|
283
|
+
}
|