@atomiqlabs/sdk 8.6.6 → 8.6.7
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 +52 -51
- package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -6
- package/dist/bitcoin/coinselect2/blackjack.js +38 -37
- package/dist/bitcoin/coinselect2/index.d.ts +19 -17
- package/dist/bitcoin/coinselect2/index.js +69 -69
- package/dist/bitcoin/coinselect2/utils.d.ts +77 -75
- package/dist/bitcoin/coinselect2/utils.js +123 -123
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +130 -128
- package/dist/bitcoin/wallet/BitcoinWallet.js +322 -322
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +78 -78
- package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -20
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +101 -99
- 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 +91 -90
- package/dist/http/paramcoders/IParamReader.d.ts +8 -8
- package/dist/http/paramcoders/IParamReader.js +2 -2
- package/dist/http/paramcoders/ParamDecoder.d.ts +44 -42
- package/dist/http/paramcoders/ParamDecoder.js +137 -137
- package/dist/http/paramcoders/ParamEncoder.d.ts +20 -18
- 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 +13 -11
- 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 +174 -173
- 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 +199 -198
- package/dist/intermediaries/IntermediaryDiscovery.js +406 -406
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +439 -437
- package/dist/intermediaries/apis/IntermediaryAPI.js +603 -603
- 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 -168
- package/dist/prices/abstract/ISwapPrice.js +279 -279
- 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 +687 -686
- 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 +14 -13
- package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
- package/dist/swaps/IBTCWalletSwap.js +18 -17
- package/dist/swaps/IClaimableSwap.d.ts +49 -49
- package/dist/swaps/IClaimableSwap.js +15 -14
- 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 +14 -13
- package/dist/swaps/ISwap.d.ts +387 -386
- package/dist/swaps/ISwap.js +346 -346
- package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
- package/dist/swaps/ISwapWithGasDrop.js +12 -11
- package/dist/swaps/ISwapWrapper.d.ts +285 -283
- 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 +135 -133
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +169 -169
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +115 -114
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +134 -134
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +101 -98
- 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 +531 -529
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +184 -181
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +418 -418
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +583 -581
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +228 -225
- 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 +191 -190
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +378 -378
- 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 +127 -125
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +242 -241
- 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 +128 -127
- 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 +214 -213
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +756 -756
- 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 +69 -68
- 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 +57 -56
- 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 +43 -42
- 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 +60 -59
- 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 +18 -17
- package/dist/types/lnurl/LNURLPay.d.ts +61 -61
- package/dist/types/lnurl/LNURLPay.js +31 -30
- package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
- package/dist/types/lnurl/LNURLWithdraw.js +27 -26
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
- package/dist/types/wallets/LightningInvoiceCreateService.js +15 -14
- 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 +70 -69
- package/dist/utils/BitcoinUtils.d.ts +14 -12
- package/dist/utils/BitcoinUtils.js +102 -101
- package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
- package/dist/utils/BitcoinWalletUtils.js +14 -13
- package/dist/utils/Logger.d.ts +7 -7
- package/dist/utils/Logger.js +12 -11
- package/dist/utils/RetryUtils.d.ts +22 -22
- package/dist/utils/RetryUtils.js +67 -66
- 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 +55 -54
- package/dist/utils/TokenUtils.d.ts +19 -19
- package/dist/utils/TokenUtils.js +37 -36
- package/dist/utils/TypeUtils.d.ts +7 -7
- package/dist/utils/TypeUtils.js +2 -2
- package/dist/utils/Utils.d.ts +58 -56
- package/dist/utils/Utils.js +194 -193
- package/package.json +1 -1
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Response of the LNURL-pay link
|
|
3
|
-
*
|
|
4
|
-
* @category Lightning
|
|
5
|
-
*/
|
|
6
|
-
export type LNURLPayParams = {
|
|
7
|
-
tag: "payRequest";
|
|
8
|
-
callback: string;
|
|
9
|
-
domain: string;
|
|
10
|
-
minSendable: number;
|
|
11
|
-
maxSendable: number;
|
|
12
|
-
metadata: string;
|
|
13
|
-
decodedMetadata: string[][];
|
|
14
|
-
commentAllowed: number;
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* Response of the LNURL-pay link with the added original url
|
|
18
|
-
*
|
|
19
|
-
* @category Lightning
|
|
20
|
-
*/
|
|
21
|
-
export type LNURLPayParamsWithUrl = LNURLPayParams & {
|
|
22
|
-
url: string;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Parsed LNURL-pay specification
|
|
26
|
-
*
|
|
27
|
-
* @category Lightning
|
|
28
|
-
*/
|
|
29
|
-
export type LNURLPay = {
|
|
30
|
-
type: "pay";
|
|
31
|
-
min: bigint;
|
|
32
|
-
max: bigint;
|
|
33
|
-
commentMaxLength: number;
|
|
34
|
-
shortDescription?: string;
|
|
35
|
-
longDescription?: string;
|
|
36
|
-
icon?: string;
|
|
37
|
-
params: LNURLPayParamsWithUrl;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Type guard for {@link LNURLPayParams}
|
|
41
|
-
*
|
|
42
|
-
* @category Lightning
|
|
43
|
-
* @internal
|
|
44
|
-
*/
|
|
45
|
-
export declare function isLNURLPayParams(obj: any): obj is LNURLPayParams;
|
|
46
|
-
/**
|
|
47
|
-
* Type guard for {@link LNURLPay}
|
|
48
|
-
*
|
|
49
|
-
* @category Lightning
|
|
50
|
-
*/
|
|
51
|
-
export declare function isLNURLPay(value: any): value is LNURLPay;
|
|
52
|
-
/**
|
|
53
|
-
* Decoded LNURL-pay success action, revealed after a lightning payment is finished
|
|
54
|
-
*
|
|
55
|
-
* @category Lightning
|
|
56
|
-
*/
|
|
57
|
-
export type LNURLDecodedSuccessAction = {
|
|
58
|
-
description: string;
|
|
59
|
-
text?: string;
|
|
60
|
-
url?: string;
|
|
61
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Response of the LNURL-pay link
|
|
3
|
+
*
|
|
4
|
+
* @category Lightning
|
|
5
|
+
*/
|
|
6
|
+
export type LNURLPayParams = {
|
|
7
|
+
tag: "payRequest";
|
|
8
|
+
callback: string;
|
|
9
|
+
domain: string;
|
|
10
|
+
minSendable: number;
|
|
11
|
+
maxSendable: number;
|
|
12
|
+
metadata: string;
|
|
13
|
+
decodedMetadata: string[][];
|
|
14
|
+
commentAllowed: number;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Response of the LNURL-pay link with the added original url
|
|
18
|
+
*
|
|
19
|
+
* @category Lightning
|
|
20
|
+
*/
|
|
21
|
+
export type LNURLPayParamsWithUrl = LNURLPayParams & {
|
|
22
|
+
url: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Parsed LNURL-pay specification
|
|
26
|
+
*
|
|
27
|
+
* @category Lightning
|
|
28
|
+
*/
|
|
29
|
+
export type LNURLPay = {
|
|
30
|
+
type: "pay";
|
|
31
|
+
min: bigint;
|
|
32
|
+
max: bigint;
|
|
33
|
+
commentMaxLength: number;
|
|
34
|
+
shortDescription?: string;
|
|
35
|
+
longDescription?: string;
|
|
36
|
+
icon?: string;
|
|
37
|
+
params: LNURLPayParamsWithUrl;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Type guard for {@link LNURLPayParams}
|
|
41
|
+
*
|
|
42
|
+
* @category Lightning
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
export declare function isLNURLPayParams(obj: any): obj is LNURLPayParams;
|
|
46
|
+
/**
|
|
47
|
+
* Type guard for {@link LNURLPay}
|
|
48
|
+
*
|
|
49
|
+
* @category Lightning
|
|
50
|
+
*/
|
|
51
|
+
export declare function isLNURLPay(value: any): value is LNURLPay;
|
|
52
|
+
/**
|
|
53
|
+
* Decoded LNURL-pay success action, revealed after a lightning payment is finished
|
|
54
|
+
*
|
|
55
|
+
* @category Lightning
|
|
56
|
+
*/
|
|
57
|
+
export type LNURLDecodedSuccessAction = {
|
|
58
|
+
description: string;
|
|
59
|
+
text?: string;
|
|
60
|
+
url?: string;
|
|
61
|
+
};
|
|
@@ -1,30 +1,31 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isLNURLPayParams =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* @
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Type guard for {@link LNURLPay}
|
|
16
|
-
*
|
|
17
|
-
* @category Lightning
|
|
18
|
-
*/
|
|
19
|
-
function isLNURLPay(value) {
|
|
20
|
-
return (typeof value === "object" &&
|
|
21
|
-
value != null &&
|
|
22
|
-
value.type === "pay" &&
|
|
23
|
-
typeof (value.min) === "bigint" &&
|
|
24
|
-
typeof (value.max) === "bigint" &&
|
|
25
|
-
typeof value.commentMaxLength === "number" &&
|
|
26
|
-
(value.shortDescription === undefined || typeof value.shortDescription === "string") &&
|
|
27
|
-
(value.longDescription === undefined || typeof value.longDescription === "string") &&
|
|
28
|
-
(value.icon === undefined || typeof value.icon === "string") &&
|
|
29
|
-
isLNURLPayParams(value.params));
|
|
30
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isLNURLPay = exports.isLNURLPayParams = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Type guard for {@link LNURLPayParams}
|
|
6
|
+
*
|
|
7
|
+
* @category Lightning
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
function isLNURLPayParams(obj) {
|
|
11
|
+
return obj.tag === "payRequest";
|
|
12
|
+
}
|
|
13
|
+
exports.isLNURLPayParams = isLNURLPayParams;
|
|
14
|
+
/**
|
|
15
|
+
* Type guard for {@link LNURLPay}
|
|
16
|
+
*
|
|
17
|
+
* @category Lightning
|
|
18
|
+
*/
|
|
19
|
+
function isLNURLPay(value) {
|
|
20
|
+
return (typeof value === "object" &&
|
|
21
|
+
value != null &&
|
|
22
|
+
value.type === "pay" &&
|
|
23
|
+
typeof (value.min) === "bigint" &&
|
|
24
|
+
typeof (value.max) === "bigint" &&
|
|
25
|
+
typeof value.commentMaxLength === "number" &&
|
|
26
|
+
(value.shortDescription === undefined || typeof value.shortDescription === "string") &&
|
|
27
|
+
(value.longDescription === undefined || typeof value.longDescription === "string") &&
|
|
28
|
+
(value.icon === undefined || typeof value.icon === "string") &&
|
|
29
|
+
isLNURLPayParams(value.params));
|
|
30
|
+
}
|
|
31
|
+
exports.isLNURLPay = isLNURLPay;
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Response of the LNURL-withdraw link
|
|
3
|
-
*
|
|
4
|
-
* @category Lightning
|
|
5
|
-
*/
|
|
6
|
-
export type LNURLWithdrawParams = {
|
|
7
|
-
tag: "withdrawRequest";
|
|
8
|
-
k1: string;
|
|
9
|
-
callback: string;
|
|
10
|
-
domain: string;
|
|
11
|
-
minWithdrawable: number;
|
|
12
|
-
maxWithdrawable: number;
|
|
13
|
-
defaultDescription: string;
|
|
14
|
-
balanceCheck?: string;
|
|
15
|
-
payLink?: string;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Response of the LNURL-withdraw link with the added original url
|
|
19
|
-
*
|
|
20
|
-
* @category Lightning
|
|
21
|
-
*/
|
|
22
|
-
export type LNURLWithdrawParamsWithUrl = LNURLWithdrawParams & {
|
|
23
|
-
url: string;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Parsed LNURL-withdraw specification
|
|
27
|
-
*
|
|
28
|
-
* @category Lightning
|
|
29
|
-
*/
|
|
30
|
-
export type LNURLWithdraw = {
|
|
31
|
-
type: "withdraw";
|
|
32
|
-
min: bigint;
|
|
33
|
-
max: bigint;
|
|
34
|
-
params: LNURLWithdrawParamsWithUrl;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Type guard for {@link LNURLWithdraw}
|
|
38
|
-
*
|
|
39
|
-
* @category Lightning
|
|
40
|
-
*/
|
|
41
|
-
export declare function isLNURLWithdraw(value: any): value is LNURLWithdraw;
|
|
42
|
-
/**
|
|
43
|
-
* Type guard for {@link LNURLWithdrawParams}
|
|
44
|
-
*
|
|
45
|
-
* @category Lightning
|
|
46
|
-
* @internal
|
|
47
|
-
*/
|
|
48
|
-
export declare function isLNURLWithdrawParams(obj: any): obj is LNURLWithdrawParams;
|
|
1
|
+
/**
|
|
2
|
+
* Response of the LNURL-withdraw link
|
|
3
|
+
*
|
|
4
|
+
* @category Lightning
|
|
5
|
+
*/
|
|
6
|
+
export type LNURLWithdrawParams = {
|
|
7
|
+
tag: "withdrawRequest";
|
|
8
|
+
k1: string;
|
|
9
|
+
callback: string;
|
|
10
|
+
domain: string;
|
|
11
|
+
minWithdrawable: number;
|
|
12
|
+
maxWithdrawable: number;
|
|
13
|
+
defaultDescription: string;
|
|
14
|
+
balanceCheck?: string;
|
|
15
|
+
payLink?: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Response of the LNURL-withdraw link with the added original url
|
|
19
|
+
*
|
|
20
|
+
* @category Lightning
|
|
21
|
+
*/
|
|
22
|
+
export type LNURLWithdrawParamsWithUrl = LNURLWithdrawParams & {
|
|
23
|
+
url: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Parsed LNURL-withdraw specification
|
|
27
|
+
*
|
|
28
|
+
* @category Lightning
|
|
29
|
+
*/
|
|
30
|
+
export type LNURLWithdraw = {
|
|
31
|
+
type: "withdraw";
|
|
32
|
+
min: bigint;
|
|
33
|
+
max: bigint;
|
|
34
|
+
params: LNURLWithdrawParamsWithUrl;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Type guard for {@link LNURLWithdraw}
|
|
38
|
+
*
|
|
39
|
+
* @category Lightning
|
|
40
|
+
*/
|
|
41
|
+
export declare function isLNURLWithdraw(value: any): value is LNURLWithdraw;
|
|
42
|
+
/**
|
|
43
|
+
* Type guard for {@link LNURLWithdrawParams}
|
|
44
|
+
*
|
|
45
|
+
* @category Lightning
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
export declare function isLNURLWithdrawParams(obj: any): obj is LNURLWithdrawParams;
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isLNURLWithdraw =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
value
|
|
13
|
-
value.
|
|
14
|
-
typeof (value.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Type guard for {@link LNURLWithdrawParams}
|
|
20
|
-
*
|
|
21
|
-
* @category Lightning
|
|
22
|
-
* @internal
|
|
23
|
-
*/
|
|
24
|
-
function isLNURLWithdrawParams(obj) {
|
|
25
|
-
return obj.tag === "withdrawRequest";
|
|
26
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isLNURLWithdrawParams = exports.isLNURLWithdraw = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Type guard for {@link LNURLWithdraw}
|
|
6
|
+
*
|
|
7
|
+
* @category Lightning
|
|
8
|
+
*/
|
|
9
|
+
function isLNURLWithdraw(value) {
|
|
10
|
+
return (typeof value === "object" &&
|
|
11
|
+
value != null &&
|
|
12
|
+
value.type === "withdraw" &&
|
|
13
|
+
typeof (value.min) === "bigint" &&
|
|
14
|
+
typeof (value.max) === "bigint" &&
|
|
15
|
+
isLNURLWithdrawParams(value.params));
|
|
16
|
+
}
|
|
17
|
+
exports.isLNURLWithdraw = isLNURLWithdraw;
|
|
18
|
+
/**
|
|
19
|
+
* Type guard for {@link LNURLWithdrawParams}
|
|
20
|
+
*
|
|
21
|
+
* @category Lightning
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
function isLNURLWithdrawParams(obj) {
|
|
25
|
+
return obj.tag === "withdrawRequest";
|
|
26
|
+
}
|
|
27
|
+
exports.isLNURLWithdrawParams = isLNURLWithdrawParams;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Invoice getter callback for the {@link LightningInvoiceCreateService}
|
|
3
|
-
*
|
|
4
|
-
* @category Lightning
|
|
5
|
-
*/
|
|
6
|
-
export type LightningWalletCallback = (valueSats: number, abortSignal?: AbortSignal) => Promise<string>;
|
|
7
|
-
/**
|
|
8
|
-
* Service that creates on-demand fixed amount bolt11 lightning network invoices, optionally
|
|
9
|
-
* specifying minimum and maximum swappable sats amount. This used for exact input Smart chain ->
|
|
10
|
-
* Lightning swaps.
|
|
11
|
-
*
|
|
12
|
-
* @category Lightning
|
|
13
|
-
*/
|
|
14
|
-
export type LightningInvoiceCreateService = {
|
|
15
|
-
getInvoice: LightningWalletCallback;
|
|
16
|
-
minMsats?: bigint;
|
|
17
|
-
maxMSats?: bigint;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Type guard for {@link LightningInvoiceCreateService}
|
|
21
|
-
*
|
|
22
|
-
* @internal
|
|
23
|
-
*/
|
|
24
|
-
export declare function isLightningInvoiceCreateService(obj: any): obj is LightningInvoiceCreateService;
|
|
1
|
+
/**
|
|
2
|
+
* Invoice getter callback for the {@link LightningInvoiceCreateService}
|
|
3
|
+
*
|
|
4
|
+
* @category Lightning
|
|
5
|
+
*/
|
|
6
|
+
export type LightningWalletCallback = (valueSats: number, abortSignal?: AbortSignal) => Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Service that creates on-demand fixed amount bolt11 lightning network invoices, optionally
|
|
9
|
+
* specifying minimum and maximum swappable sats amount. This used for exact input Smart chain ->
|
|
10
|
+
* Lightning swaps.
|
|
11
|
+
*
|
|
12
|
+
* @category Lightning
|
|
13
|
+
*/
|
|
14
|
+
export type LightningInvoiceCreateService = {
|
|
15
|
+
getInvoice: LightningWalletCallback;
|
|
16
|
+
minMsats?: bigint;
|
|
17
|
+
maxMSats?: bigint;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Type guard for {@link LightningInvoiceCreateService}
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export declare function isLightningInvoiceCreateService(obj: any): obj is LightningInvoiceCreateService;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isLightningInvoiceCreateService =
|
|
4
|
-
/**
|
|
5
|
-
* Type guard for {@link LightningInvoiceCreateService}
|
|
6
|
-
*
|
|
7
|
-
* @internal
|
|
8
|
-
*/
|
|
9
|
-
function isLightningInvoiceCreateService(obj) {
|
|
10
|
-
return typeof (obj) === "object" &&
|
|
11
|
-
typeof (obj.getInvoice) === "function" &&
|
|
12
|
-
(obj.minMsats == null || typeof (obj.minMsats) === "bigint") &&
|
|
13
|
-
(obj.maxMSats == null || typeof (obj.maxMSats) === "bigint");
|
|
14
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isLightningInvoiceCreateService = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Type guard for {@link LightningInvoiceCreateService}
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
function isLightningInvoiceCreateService(obj) {
|
|
10
|
+
return typeof (obj) === "object" &&
|
|
11
|
+
typeof (obj.getInvoice) === "function" &&
|
|
12
|
+
(obj.minMsats == null || typeof (obj.minMsats) === "bigint") &&
|
|
13
|
+
(obj.maxMSats == null || typeof (obj.maxMSats) === "bigint");
|
|
14
|
+
}
|
|
15
|
+
exports.isLightningInvoiceCreateService = isLightningInvoiceCreateService;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { Transaction } from "@scure/btc-signer";
|
|
2
|
-
/**
|
|
3
|
-
* A type with minimum possible required data about a bitcoin wallet to be able to estimate fees and produce unsigned
|
|
4
|
-
* funded PSBTs with address's UTXOs
|
|
5
|
-
*
|
|
6
|
-
* @category Bitcoin
|
|
7
|
-
*/
|
|
8
|
-
export type MinimalBitcoinWalletInterface = {
|
|
9
|
-
address: string;
|
|
10
|
-
publicKey: string;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* A type with minimum possible required data about a bitcoin wallet to be able to estimate fees and sign PSBTs
|
|
14
|
-
*
|
|
15
|
-
* @category Bitcoin
|
|
16
|
-
*/
|
|
17
|
-
export type MinimalBitcoinWalletInterfaceWithSigner = MinimalBitcoinWalletInterface & {
|
|
18
|
-
signPsbt: (psbtToSign: {
|
|
19
|
-
psbt: Transaction;
|
|
20
|
-
psbtHex: string;
|
|
21
|
-
psbtBase64: string;
|
|
22
|
-
}, signInputs: number[]) => Promise<Transaction | string>;
|
|
23
|
-
};
|
|
1
|
+
import { Transaction } from "@scure/btc-signer";
|
|
2
|
+
/**
|
|
3
|
+
* A type with minimum possible required data about a bitcoin wallet to be able to estimate fees and produce unsigned
|
|
4
|
+
* funded PSBTs with address's UTXOs
|
|
5
|
+
*
|
|
6
|
+
* @category Bitcoin
|
|
7
|
+
*/
|
|
8
|
+
export type MinimalBitcoinWalletInterface = {
|
|
9
|
+
address: string;
|
|
10
|
+
publicKey: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* A type with minimum possible required data about a bitcoin wallet to be able to estimate fees and sign PSBTs
|
|
14
|
+
*
|
|
15
|
+
* @category Bitcoin
|
|
16
|
+
*/
|
|
17
|
+
export type MinimalBitcoinWalletInterfaceWithSigner = MinimalBitcoinWalletInterface & {
|
|
18
|
+
signPsbt: (psbtToSign: {
|
|
19
|
+
psbt: Transaction;
|
|
20
|
+
psbtHex: string;
|
|
21
|
+
psbtBase64: string;
|
|
22
|
+
}, signInputs: number[]) => Promise<Transaction | string>;
|
|
23
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A type with minimum possible required functionality to be usable with lightning network swaps, i.e.
|
|
3
|
-
* a function to pay bolt11 lightning network invoices.
|
|
4
|
-
*
|
|
5
|
-
* @category Lightning
|
|
6
|
-
*/
|
|
7
|
-
export type MinimalLightningNetworkWalletInterface = {
|
|
8
|
-
payInvoice: (bolt11PaymentRequest: string) => Promise<string>;
|
|
9
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* A type with minimum possible required functionality to be usable with lightning network swaps, i.e.
|
|
3
|
+
* a function to pay bolt11 lightning network invoices.
|
|
4
|
+
*
|
|
5
|
+
* @category Lightning
|
|
6
|
+
*/
|
|
7
|
+
export type MinimalLightningNetworkWalletInterface = {
|
|
8
|
+
payInvoice: (bolt11PaymentRequest: string) => Promise<string>;
|
|
9
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function correctClock(): Promise<void>;
|
|
1
|
+
export declare function correctClock(): Promise<void>;
|
|
@@ -1,69 +1,70 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.correctClock =
|
|
4
|
-
const TimeoutUtils_1 = require("./TimeoutUtils");
|
|
5
|
-
const headerUrls = ["https://api.atomiq.exchange/"];
|
|
6
|
-
async function getHeaderTimestamp(url) {
|
|
7
|
-
const timeStart = performance.now();
|
|
8
|
-
const resp = await fetch(url, { method: "HEAD", signal: (0, TimeoutUtils_1.timeoutSignal)(3000) });
|
|
9
|
-
const timeDelta = performance.now() - timeStart;
|
|
10
|
-
const dateHeaderValue = resp.headers.get("Date");
|
|
11
|
-
if (dateHeaderValue == null)
|
|
12
|
-
throw new Error("Date header not returned!");
|
|
13
|
-
return { delta: timeDelta, timestamp: new Date(dateHeaderValue).getTime() };
|
|
14
|
-
}
|
|
15
|
-
async function getBinanceTimestamp() {
|
|
16
|
-
const timeStart = performance.now();
|
|
17
|
-
const resp = await fetch("https://api.binance.com/api/v3/time", { signal: (0, TimeoutUtils_1.timeoutSignal)(3000) });
|
|
18
|
-
const timeDelta = performance.now() - timeStart;
|
|
19
|
-
const obj = await resp.json();
|
|
20
|
-
if (obj == null || obj.serverTime == null)
|
|
21
|
-
throw new Error("Timestamp not returned!");
|
|
22
|
-
return { delta: timeDelta, timestamp: Math.floor(obj.serverTime) };
|
|
23
|
-
}
|
|
24
|
-
async function getOKXTimestamp() {
|
|
25
|
-
const timeStart = performance.now();
|
|
26
|
-
const resp = await fetch("https://www.okx.com/api/v5/public/time", { signal: (0, TimeoutUtils_1.timeoutSignal)(3000) });
|
|
27
|
-
const timeDelta = performance.now() - timeStart;
|
|
28
|
-
const obj = await resp.json();
|
|
29
|
-
if (obj == null || obj.data == null || obj.data[0] == null || obj.data[0].ts == null)
|
|
30
|
-
throw new Error("Timestamp not returned!");
|
|
31
|
-
return { delta: timeDelta, timestamp: Math.floor(obj.data[0].ts) };
|
|
32
|
-
}
|
|
33
|
-
async function getAisenseApiTimestamp() {
|
|
34
|
-
const timeStart = performance.now();
|
|
35
|
-
const resp = await fetch("https://aisenseapi.com/services/v1/timestamp", { signal: (0, TimeoutUtils_1.timeoutSignal)(3000) });
|
|
36
|
-
const timeDelta = performance.now() - timeStart;
|
|
37
|
-
const obj = await resp.json();
|
|
38
|
-
if (obj == null || obj.timestamp == null)
|
|
39
|
-
throw new Error("Timestamp not returned!");
|
|
40
|
-
return { delta: timeDelta, timestamp: Math.floor(obj.timestamp * 1000) };
|
|
41
|
-
}
|
|
42
|
-
async function correctClock() {
|
|
43
|
-
const dateNow = Date._now ?? Date.now;
|
|
44
|
-
const dateStart = performance.now();
|
|
45
|
-
try {
|
|
46
|
-
let result = await Promise.any([
|
|
47
|
-
...headerUrls.map(url => getHeaderTimestamp(url)),
|
|
48
|
-
getAisenseApiTimestamp(),
|
|
49
|
-
getBinanceTimestamp(),
|
|
50
|
-
getOKXTimestamp()
|
|
51
|
-
]);
|
|
52
|
-
const desiredTime = result.timestamp - (result.delta / 2);
|
|
53
|
-
if (Math.abs(Date.now() - desiredTime) < 2000) {
|
|
54
|
-
console.log("AutomaticClockDriftCorrection: correctClock(): Time drift too small, not adjusting!");
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
const timeDrift = dateStart - desiredTime;
|
|
58
|
-
console.log(`AutomaticClockDriftCorrection: correctClock(): Time correction perf.now: ${dateStart}, server: ${desiredTime}, time diff: ${timeDrift}`);
|
|
59
|
-
Date._now = dateNow;
|
|
60
|
-
Date.now = () => {
|
|
61
|
-
return Math.floor(performance.now() - timeDrift);
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
catch (e) {
|
|
65
|
-
if (e instanceof AggregateError)
|
|
66
|
-
e.message = "Cannot sync time! All servers responded negatively!";
|
|
67
|
-
throw e;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.correctClock = void 0;
|
|
4
|
+
const TimeoutUtils_1 = require("./TimeoutUtils");
|
|
5
|
+
const headerUrls = ["https://api.atomiq.exchange/"];
|
|
6
|
+
async function getHeaderTimestamp(url) {
|
|
7
|
+
const timeStart = performance.now();
|
|
8
|
+
const resp = await fetch(url, { method: "HEAD", signal: (0, TimeoutUtils_1.timeoutSignal)(3000) });
|
|
9
|
+
const timeDelta = performance.now() - timeStart;
|
|
10
|
+
const dateHeaderValue = resp.headers.get("Date");
|
|
11
|
+
if (dateHeaderValue == null)
|
|
12
|
+
throw new Error("Date header not returned!");
|
|
13
|
+
return { delta: timeDelta, timestamp: new Date(dateHeaderValue).getTime() };
|
|
14
|
+
}
|
|
15
|
+
async function getBinanceTimestamp() {
|
|
16
|
+
const timeStart = performance.now();
|
|
17
|
+
const resp = await fetch("https://api.binance.com/api/v3/time", { signal: (0, TimeoutUtils_1.timeoutSignal)(3000) });
|
|
18
|
+
const timeDelta = performance.now() - timeStart;
|
|
19
|
+
const obj = await resp.json();
|
|
20
|
+
if (obj == null || obj.serverTime == null)
|
|
21
|
+
throw new Error("Timestamp not returned!");
|
|
22
|
+
return { delta: timeDelta, timestamp: Math.floor(obj.serverTime) };
|
|
23
|
+
}
|
|
24
|
+
async function getOKXTimestamp() {
|
|
25
|
+
const timeStart = performance.now();
|
|
26
|
+
const resp = await fetch("https://www.okx.com/api/v5/public/time", { signal: (0, TimeoutUtils_1.timeoutSignal)(3000) });
|
|
27
|
+
const timeDelta = performance.now() - timeStart;
|
|
28
|
+
const obj = await resp.json();
|
|
29
|
+
if (obj == null || obj.data == null || obj.data[0] == null || obj.data[0].ts == null)
|
|
30
|
+
throw new Error("Timestamp not returned!");
|
|
31
|
+
return { delta: timeDelta, timestamp: Math.floor(obj.data[0].ts) };
|
|
32
|
+
}
|
|
33
|
+
async function getAisenseApiTimestamp() {
|
|
34
|
+
const timeStart = performance.now();
|
|
35
|
+
const resp = await fetch("https://aisenseapi.com/services/v1/timestamp", { signal: (0, TimeoutUtils_1.timeoutSignal)(3000) });
|
|
36
|
+
const timeDelta = performance.now() - timeStart;
|
|
37
|
+
const obj = await resp.json();
|
|
38
|
+
if (obj == null || obj.timestamp == null)
|
|
39
|
+
throw new Error("Timestamp not returned!");
|
|
40
|
+
return { delta: timeDelta, timestamp: Math.floor(obj.timestamp * 1000) };
|
|
41
|
+
}
|
|
42
|
+
async function correctClock() {
|
|
43
|
+
const dateNow = Date._now ?? Date.now;
|
|
44
|
+
const dateStart = performance.now();
|
|
45
|
+
try {
|
|
46
|
+
let result = await Promise.any([
|
|
47
|
+
...headerUrls.map(url => getHeaderTimestamp(url)),
|
|
48
|
+
getAisenseApiTimestamp(),
|
|
49
|
+
getBinanceTimestamp(),
|
|
50
|
+
getOKXTimestamp()
|
|
51
|
+
]);
|
|
52
|
+
const desiredTime = result.timestamp - (result.delta / 2);
|
|
53
|
+
if (Math.abs(Date.now() - desiredTime) < 2000) {
|
|
54
|
+
console.log("AutomaticClockDriftCorrection: correctClock(): Time drift too small, not adjusting!");
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const timeDrift = dateStart - desiredTime;
|
|
58
|
+
console.log(`AutomaticClockDriftCorrection: correctClock(): Time correction perf.now: ${dateStart}, server: ${desiredTime}, time diff: ${timeDrift}`);
|
|
59
|
+
Date._now = dateNow;
|
|
60
|
+
Date.now = () => {
|
|
61
|
+
return Math.floor(performance.now() - timeDrift);
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
if (e instanceof AggregateError)
|
|
66
|
+
e.message = "Cannot sync time! All servers responded negatively!";
|
|
67
|
+
throw e;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.correctClock = correctClock;
|