@atomiqlabs/sdk 8.8.3 → 8.8.4
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/LICENSE +201 -201
- package/README.md +1760 -1760
- package/dist/SmartChainAssets.d.ts +181 -181
- package/dist/SmartChainAssets.js +181 -181
- package/dist/bitcoin/coinselect2/accumulative.d.ts +7 -7
- package/dist/bitcoin/coinselect2/accumulative.js +52 -52
- package/dist/bitcoin/coinselect2/blackjack.d.ts +7 -7
- package/dist/bitcoin/coinselect2/blackjack.js +38 -38
- package/dist/bitcoin/coinselect2/index.d.ts +20 -20
- package/dist/bitcoin/coinselect2/index.js +69 -69
- package/dist/bitcoin/coinselect2/utils.d.ts +82 -82
- package/dist/bitcoin/coinselect2/utils.js +158 -158
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +113 -113
- package/dist/bitcoin/wallet/BitcoinWallet.js +335 -335
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +116 -116
- package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -21
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +106 -106
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +196 -196
- 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 +132 -132
- package/dist/http/HttpUtils.d.ts +27 -27
- package/dist/http/HttpUtils.js +91 -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 +44 -44
- package/dist/http/paramcoders/ParamDecoder.js +137 -137
- package/dist/http/paramcoders/ParamEncoder.d.ts +20 -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 +13 -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 +174 -174
- package/dist/index.d.ts +85 -85
- package/dist/index.js +158 -158
- package/dist/intermediaries/Intermediary.d.ts +178 -178
- package/dist/intermediaries/Intermediary.js +166 -166
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +211 -211
- package/dist/intermediaries/IntermediaryDiscovery.js +424 -424
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +450 -450
- package/dist/intermediaries/apis/IntermediaryAPI.js +618 -618
- 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 +732 -732
- package/dist/swapper/Swapper.js +1713 -1713
- package/dist/swapper/SwapperFactory.d.ts +135 -135
- package/dist/swapper/SwapperFactory.js +162 -162
- package/dist/swapper/SwapperUtils.d.ts +206 -206
- package/dist/swapper/SwapperUtils.js +481 -481
- 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 -14
- package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
- package/dist/swaps/IBTCWalletSwap.js +18 -18
- package/dist/swaps/IClaimableSwap.d.ts +49 -49
- package/dist/swaps/IClaimableSwap.js +15 -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 +14 -14
- package/dist/swaps/ISwap.d.ts +392 -392
- package/dist/swaps/ISwap.js +349 -349
- package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
- package/dist/swaps/ISwapWithGasDrop.js +12 -12
- package/dist/swaps/ISwapWrapper.d.ts +285 -285
- 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 +139 -139
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +170 -170
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +128 -128
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +167 -167
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +105 -105
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +129 -129
- 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 +64 -64
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +82 -82
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +531 -531
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +190 -190
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +432 -432
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +583 -583
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +235 -235
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +525 -525
- 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 +202 -202
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +406 -406
- 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 +68 -68
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +117 -117
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +127 -127
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +251 -251
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +536 -536
- 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 +132 -132
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +286 -286
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +637 -637
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1448 -1448
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +257 -257
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +947 -947
- 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 +83 -83
- 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 -69
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +93 -93
- 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 -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 +43 -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 +60 -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 +18 -18
- package/dist/types/lnurl/LNURLPay.d.ts +61 -61
- package/dist/types/lnurl/LNURLPay.js +31 -31
- package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
- package/dist/types/lnurl/LNURLWithdraw.js +27 -27
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
- package/dist/types/wallets/LightningInvoiceCreateService.js +15 -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 +70 -70
- package/dist/utils/BitcoinUtils.d.ts +16 -16
- package/dist/utils/BitcoinUtils.js +141 -141
- package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
- package/dist/utils/BitcoinWalletUtils.js +14 -14
- package/dist/utils/Logger.d.ts +7 -7
- package/dist/utils/Logger.js +12 -12
- package/dist/utils/RetryUtils.d.ts +22 -22
- package/dist/utils/RetryUtils.js +67 -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 +55 -55
- package/dist/utils/TokenUtils.d.ts +19 -19
- package/dist/utils/TokenUtils.js +37 -37
- package/dist/utils/TypeUtils.d.ts +7 -7
- package/dist/utils/TypeUtils.js +2 -2
- package/dist/utils/Utils.d.ts +67 -67
- package/dist/utils/Utils.js +208 -208
- package/package.json +43 -43
- package/src/SmartChainAssets.ts +186 -186
- package/src/bitcoin/coinselect2/accumulative.ts +69 -69
- package/src/bitcoin/coinselect2/blackjack.ts +50 -50
- package/src/bitcoin/coinselect2/index.ts +93 -93
- package/src/bitcoin/coinselect2/utils.ts +236 -236
- package/src/bitcoin/wallet/BitcoinWallet.ts +439 -439
- package/src/bitcoin/wallet/IBitcoinWallet.ts +140 -140
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +225 -225
- package/src/enums/FeeType.ts +15 -15
- package/src/enums/SwapAmountType.ts +16 -16
- package/src/enums/SwapDirection.ts +15 -15
- package/src/enums/SwapSide.ts +16 -16
- package/src/enums/SwapType.ts +75 -75
- package/src/errors/IntermediaryError.ts +28 -28
- package/src/errors/RequestError.ts +64 -64
- package/src/errors/UserError.ts +15 -15
- package/src/events/UnifiedSwapEventListener.ts +173 -173
- package/src/http/HttpUtils.ts +91 -91
- package/src/http/paramcoders/IParamReader.ts +9 -9
- package/src/http/paramcoders/ParamDecoder.ts +145 -145
- package/src/http/paramcoders/ParamEncoder.ts +40 -40
- package/src/http/paramcoders/SchemaVerifier.ts +153 -153
- package/src/http/paramcoders/client/ResponseParamDecoder.ts +57 -57
- package/src/http/paramcoders/client/StreamParamEncoder.ts +28 -28
- package/src/http/paramcoders/client/StreamingFetchPromise.ts +192 -192
- package/src/index.ts +140 -140
- package/src/intermediaries/Intermediary.ts +280 -280
- package/src/intermediaries/IntermediaryDiscovery.ts +541 -541
- package/src/intermediaries/apis/IntermediaryAPI.ts +963 -963
- package/src/intermediaries/apis/TrustedIntermediaryAPI.ts +257 -257
- package/src/lnurl/LNURL.ts +402 -402
- package/src/prices/RedundantSwapPrice.ts +264 -264
- package/src/prices/SingleSwapPrice.ts +50 -50
- package/src/prices/SwapPriceWithChain.ts +194 -194
- package/src/prices/abstract/ICachedSwapPrice.ts +85 -85
- package/src/prices/abstract/IPriceProvider.ts +127 -127
- package/src/prices/abstract/ISwapPrice.ts +390 -390
- package/src/prices/providers/BinancePriceProvider.ts +48 -48
- package/src/prices/providers/CoinGeckoPriceProvider.ts +46 -46
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +49 -49
- package/src/prices/providers/CustomPriceProvider.ts +40 -40
- package/src/prices/providers/KrakenPriceProvider.ts +83 -83
- package/src/prices/providers/OKXPriceProvider.ts +59 -59
- package/src/prices/providers/abstract/ExchangePriceProvider.ts +31 -31
- package/src/prices/providers/abstract/HttpPriceProvider.ts +14 -14
- package/src/storage/IUnifiedStorage.ts +95 -95
- package/src/storage/UnifiedSwapStorage.ts +141 -141
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +350 -350
- package/src/storage-browser/LocalStorageManager.ts +106 -106
- package/src/swapper/Swapper.ts +2488 -2488
- package/src/swapper/SwapperFactory.ts +307 -307
- package/src/swapper/SwapperUtils.ts +570 -570
- package/src/swapper/SwapperWithChain.ts +707 -707
- package/src/swapper/SwapperWithSigner.ts +511 -511
- package/src/swaps/IAddressSwap.ts +30 -30
- package/src/swaps/IBTCWalletSwap.ts +92 -92
- package/src/swaps/IClaimableSwap.ts +65 -65
- package/src/swaps/IClaimableSwapWrapper.ts +17 -17
- package/src/swaps/IRefundableSwap.ts +58 -58
- package/src/swaps/ISwap.ts +703 -703
- package/src/swaps/ISwapWithGasDrop.ts +25 -25
- package/src/swaps/ISwapWrapper.ts +539 -539
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +217 -217
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +269 -269
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +282 -282
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +169 -169
- package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +300 -300
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +107 -107
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +1473 -1474
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +601 -601
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1582 -1582
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +750 -750
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +1299 -1299
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +610 -610
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +1096 -1096
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +138 -138
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +304 -304
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +786 -786
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +206 -206
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +401 -401
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +1812 -1812
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +1236 -1236
- package/src/swaps/trusted/ln/LnForGasSwap.ts +589 -589
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +91 -91
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +862 -862
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +131 -131
- package/src/types/AmountData.ts +9 -9
- package/src/types/CustomPriceFunction.ts +11 -11
- package/src/types/PriceInfoType.ts +66 -66
- package/src/types/SwapExecutionAction.ts +99 -99
- package/src/types/SwapStateInfo.ts +6 -6
- package/src/types/SwapWithSigner.ts +61 -61
- package/src/types/Token.ts +163 -163
- package/src/types/TokenAmount.ts +132 -132
- package/src/types/fees/Fee.ts +56 -56
- package/src/types/fees/FeeBreakdown.ts +11 -11
- package/src/types/fees/PercentagePPM.ts +26 -26
- package/src/types/lnurl/LNURLPay.ts +79 -79
- package/src/types/lnurl/LNURLWithdraw.ts +61 -61
- package/src/types/wallets/LightningInvoiceCreateService.ts +30 -30
- package/src/types/wallets/MinimalBitcoinWalletInterface.ts +21 -21
- package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +9 -9
- package/src/utils/AutomaticClockDriftCorrection.ts +71 -71
- package/src/utils/BitcoinUtils.ts +132 -132
- package/src/utils/BitcoinWalletUtils.ts +15 -15
- package/src/utils/Logger.ts +14 -14
- package/src/utils/RetryUtils.ts +78 -78
- package/src/utils/SwapUtils.ts +99 -99
- package/src/utils/TimeoutUtils.ts +49 -49
- package/src/utils/TokenUtils.ts +33 -33
- package/src/utils/TypeUtils.ts +8 -8
- package/src/utils/Utils.ts +212 -212
package/src/utils/Utils.ts
CHANGED
|
@@ -1,212 +1,212 @@
|
|
|
1
|
-
import {Buffer} from "buffer";
|
|
2
|
-
import {randomBytes as randomBytesNoble} from "@noble/hashes/utils";
|
|
3
|
-
import {sha256} from "@noble/hashes/sha2";
|
|
4
|
-
import {BigIntBufferUtils, ChainType} from "@atomiqlabs/base";
|
|
5
|
-
import {IFromBTCLNWrapper} from "../swaps/escrow_swaps/frombtc/IFromBTCLNWrapper";
|
|
6
|
-
import {UserError} from "../errors/UserError";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Returns a promise that rejects if the passed promise resolves to `undefined` or `null`
|
|
10
|
-
*
|
|
11
|
-
* @param promise Promise to check resolve value of
|
|
12
|
-
* @param msg Optional message to pass to the thrown `Error`
|
|
13
|
-
* @category Utilities
|
|
14
|
-
*/
|
|
15
|
-
export function throwIfUndefined<T>(promise: Promise<T | undefined>, msg?: string): Promise<T> {
|
|
16
|
-
return promise.then(val => {
|
|
17
|
-
if(val==undefined) throw new Error(msg ?? "Promise value is undefined!");
|
|
18
|
-
return val;
|
|
19
|
-
})
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Returns a promise that resolves when any of the passed promises resolves, and rejects if all the underlying
|
|
24
|
-
* promises fail with an array of errors returned by the respective promises
|
|
25
|
-
*
|
|
26
|
-
* @param promises A list of promises
|
|
27
|
-
* @category Utilities
|
|
28
|
-
*/
|
|
29
|
-
export function promiseAny<T>(promises: Promise<T>[]): Promise<T> {
|
|
30
|
-
return new Promise<T>((resolve: ((val: T) => void) | null, reject) => {
|
|
31
|
-
let numRejected = 0;
|
|
32
|
-
const rejectReasons = Array(promises.length);
|
|
33
|
-
|
|
34
|
-
promises.forEach((promise, index) => {
|
|
35
|
-
promise.then((val) => {
|
|
36
|
-
if(resolve!=null) resolve(val);
|
|
37
|
-
resolve = null;
|
|
38
|
-
}).catch(err => {
|
|
39
|
-
rejectReasons[index] = err;
|
|
40
|
-
numRejected++;
|
|
41
|
-
if(numRejected===promises.length) {
|
|
42
|
-
reject(rejectReasons);
|
|
43
|
-
}
|
|
44
|
-
})
|
|
45
|
-
})
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Maps an array to object properties using the translation function
|
|
51
|
-
*
|
|
52
|
-
* @param array
|
|
53
|
-
* @param translator
|
|
54
|
-
*/
|
|
55
|
-
export function mapArrayToObject<T extends string[], O>(array: T, translator: (key: T[number]) => O): {[key in T[number]]: O} {
|
|
56
|
-
const obj: any = {};
|
|
57
|
-
array.forEach((item) => {
|
|
58
|
-
obj[item] = translator(item);
|
|
59
|
-
});
|
|
60
|
-
return obj;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Maps a JS object to another JS object based on the translation function, the translation function is called for every
|
|
65
|
-
* property (value/key) of the old object and returns the new value of for this property
|
|
66
|
-
*
|
|
67
|
-
* @param obj
|
|
68
|
-
* @param translator
|
|
69
|
-
*/
|
|
70
|
-
export function objectMap<
|
|
71
|
-
InputObject extends {[key in string]: any},
|
|
72
|
-
OutputObject extends {[key in keyof InputObject]: any}
|
|
73
|
-
>(
|
|
74
|
-
obj: InputObject,
|
|
75
|
-
translator: <InputKey extends Extract<keyof InputObject, string>>(
|
|
76
|
-
value: InputObject[InputKey],
|
|
77
|
-
key: InputKey
|
|
78
|
-
) => OutputObject[InputKey]
|
|
79
|
-
): {[key in keyof InputObject]: OutputObject[key]} {
|
|
80
|
-
const resp: {[key in keyof InputObject]?: OutputObject[key]} = {};
|
|
81
|
-
for(let key in obj) {
|
|
82
|
-
resp[key] = translator(obj[key], key);
|
|
83
|
-
}
|
|
84
|
-
return resp as {[key in keyof InputObject]: OutputObject[key]};
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Maps the entries from the map to the array using the translator function
|
|
89
|
-
*
|
|
90
|
-
* @param map
|
|
91
|
-
* @param translator
|
|
92
|
-
*/
|
|
93
|
-
export function mapToArray<K, V, Output>(map: Map<K, V>, translator: (key: K, value: V) => Output): Output[] {
|
|
94
|
-
const arr: Output[] = Array(map.size);
|
|
95
|
-
let pointer = 0;
|
|
96
|
-
for(let entry of map.entries()) {
|
|
97
|
-
arr[pointer++] = translator(entry[0], entry[1]);
|
|
98
|
-
}
|
|
99
|
-
return arr;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Creates a new abort controller that will abort if the passed abort signal aborts
|
|
104
|
-
*
|
|
105
|
-
* @param abortSignal
|
|
106
|
-
*/
|
|
107
|
-
export function extendAbortController(abortSignal?: AbortSignal) {
|
|
108
|
-
const _abortController = new AbortController();
|
|
109
|
-
if(abortSignal!=null) {
|
|
110
|
-
abortSignal.throwIfAborted();
|
|
111
|
-
abortSignal.onabort = () => _abortController.abort(abortSignal.reason);
|
|
112
|
-
}
|
|
113
|
-
return _abortController;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export function bigIntMin(a: bigint, b: bigint): bigint;
|
|
117
|
-
export function bigIntMin(a?: bigint, b?: bigint): bigint | undefined;
|
|
118
|
-
export function bigIntMin(a?: bigint, b?: bigint): bigint | undefined {
|
|
119
|
-
if(a==null) return b;
|
|
120
|
-
if(b==null) return a;
|
|
121
|
-
return a > b ? b : a;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export function bigIntMax(a: bigint, b: bigint): bigint;
|
|
125
|
-
export function bigIntMax(a?: bigint, b?: bigint): bigint | undefined;
|
|
126
|
-
export function bigIntMax(a?: bigint, b?: bigint): bigint | undefined {
|
|
127
|
-
if(a==null) return b;
|
|
128
|
-
if(b==null) return a;
|
|
129
|
-
return b > a ? b : a;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export function bigIntCompare(a: bigint, b: bigint): -1 | 0 | 1 {
|
|
133
|
-
return a > b ? 1 : a===b ? 0 : -1;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
export function toBigInt(value: string): bigint;
|
|
137
|
-
export function toBigInt(value: undefined): undefined;
|
|
138
|
-
export function toBigInt(value: string | undefined): bigint | undefined {
|
|
139
|
-
if(value==null) return undefined;
|
|
140
|
-
return BigInt(value);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export function randomBytes(bytesLength: number): Buffer {
|
|
144
|
-
return Buffer.from(randomBytesNoble(bytesLength));
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
export function getTxoHash(outputScriptHex: string, value: number) {
|
|
148
|
-
return Buffer.from(sha256(Buffer.concat([
|
|
149
|
-
BigIntBufferUtils.toBuffer(BigInt(value), "le", 8),
|
|
150
|
-
Buffer.from(outputScriptHex, "hex")
|
|
151
|
-
])));
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
export function fromDecimal(amount: string, decimalCount: number) {
|
|
155
|
-
if (amount.includes(".")) {
|
|
156
|
-
const [before, after] = amount.split(".");
|
|
157
|
-
if (decimalCount < 0) {
|
|
158
|
-
return BigInt(before.substring(0, before.length + decimalCount));
|
|
159
|
-
}
|
|
160
|
-
if (after.length > decimalCount) {
|
|
161
|
-
//Cut the last digits
|
|
162
|
-
return BigInt((before === "0" ? "" : before) + after.substring(0, decimalCount));
|
|
163
|
-
}
|
|
164
|
-
return BigInt((before === "0" ? "" : before) + after.padEnd(decimalCount, "0"));
|
|
165
|
-
} else {
|
|
166
|
-
if (decimalCount < 0) {
|
|
167
|
-
return BigInt(amount.substring(0, amount.length + decimalCount));
|
|
168
|
-
} else {
|
|
169
|
-
return BigInt(amount + "0".repeat(decimalCount));
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
export function toDecimal(amount: bigint, decimalCount: number, cut?: boolean, displayDecimals?: number) {
|
|
176
|
-
if (decimalCount <= 0) {
|
|
177
|
-
return amount.toString(10) + "0".repeat(-decimalCount);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
const amountStr = amount.toString(10).padStart(decimalCount + 1, "0");
|
|
181
|
-
|
|
182
|
-
const splitPoint = amountStr.length - decimalCount;
|
|
183
|
-
|
|
184
|
-
const decimalPart = amountStr.substring(splitPoint, amountStr.length);
|
|
185
|
-
let cutTo = decimalPart.length;
|
|
186
|
-
if (cut && cutTo > 0) {
|
|
187
|
-
for (let i = decimalPart.length - 1; i--; i >= 0) {
|
|
188
|
-
if (decimalPart.charAt(i) === "0") {
|
|
189
|
-
cutTo = i;
|
|
190
|
-
} else break;
|
|
191
|
-
}
|
|
192
|
-
if (cutTo === 0) cutTo = 1;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (displayDecimals === 0) return amountStr.substring(0, splitPoint);
|
|
196
|
-
if (displayDecimals != null && cutTo > displayDecimals) cutTo = displayDecimals;
|
|
197
|
-
return amountStr.substring(0, splitPoint) + "." + decimalPart.substring(0, cutTo);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
export function parseHashValueExact32Bytes(value?: Buffer | string, variableName?: string): Buffer | undefined {
|
|
201
|
-
let hash: Buffer | undefined;
|
|
202
|
-
if(typeof(value)==="string") {
|
|
203
|
-
if(value.length!==64)
|
|
204
|
-
throw new UserError(`Invalid ${variableName} length, must be exactly 64 hexadecimal characters!`)
|
|
205
|
-
hash = Buffer.from(value, "hex");
|
|
206
|
-
} else {
|
|
207
|
-
hash = value;
|
|
208
|
-
}
|
|
209
|
-
if(hash!=null && hash.length!==32)
|
|
210
|
-
throw new UserError(`Invalid ${variableName} length, must be exactly 32 bytes!`);
|
|
211
|
-
return hash;
|
|
212
|
-
}
|
|
1
|
+
import {Buffer} from "buffer";
|
|
2
|
+
import {randomBytes as randomBytesNoble} from "@noble/hashes/utils";
|
|
3
|
+
import {sha256} from "@noble/hashes/sha2";
|
|
4
|
+
import {BigIntBufferUtils, ChainType} from "@atomiqlabs/base";
|
|
5
|
+
import {IFromBTCLNWrapper} from "../swaps/escrow_swaps/frombtc/IFromBTCLNWrapper";
|
|
6
|
+
import {UserError} from "../errors/UserError";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Returns a promise that rejects if the passed promise resolves to `undefined` or `null`
|
|
10
|
+
*
|
|
11
|
+
* @param promise Promise to check resolve value of
|
|
12
|
+
* @param msg Optional message to pass to the thrown `Error`
|
|
13
|
+
* @category Utilities
|
|
14
|
+
*/
|
|
15
|
+
export function throwIfUndefined<T>(promise: Promise<T | undefined>, msg?: string): Promise<T> {
|
|
16
|
+
return promise.then(val => {
|
|
17
|
+
if(val==undefined) throw new Error(msg ?? "Promise value is undefined!");
|
|
18
|
+
return val;
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Returns a promise that resolves when any of the passed promises resolves, and rejects if all the underlying
|
|
24
|
+
* promises fail with an array of errors returned by the respective promises
|
|
25
|
+
*
|
|
26
|
+
* @param promises A list of promises
|
|
27
|
+
* @category Utilities
|
|
28
|
+
*/
|
|
29
|
+
export function promiseAny<T>(promises: Promise<T>[]): Promise<T> {
|
|
30
|
+
return new Promise<T>((resolve: ((val: T) => void) | null, reject) => {
|
|
31
|
+
let numRejected = 0;
|
|
32
|
+
const rejectReasons = Array(promises.length);
|
|
33
|
+
|
|
34
|
+
promises.forEach((promise, index) => {
|
|
35
|
+
promise.then((val) => {
|
|
36
|
+
if(resolve!=null) resolve(val);
|
|
37
|
+
resolve = null;
|
|
38
|
+
}).catch(err => {
|
|
39
|
+
rejectReasons[index] = err;
|
|
40
|
+
numRejected++;
|
|
41
|
+
if(numRejected===promises.length) {
|
|
42
|
+
reject(rejectReasons);
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Maps an array to object properties using the translation function
|
|
51
|
+
*
|
|
52
|
+
* @param array
|
|
53
|
+
* @param translator
|
|
54
|
+
*/
|
|
55
|
+
export function mapArrayToObject<T extends string[], O>(array: T, translator: (key: T[number]) => O): {[key in T[number]]: O} {
|
|
56
|
+
const obj: any = {};
|
|
57
|
+
array.forEach((item) => {
|
|
58
|
+
obj[item] = translator(item);
|
|
59
|
+
});
|
|
60
|
+
return obj;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Maps a JS object to another JS object based on the translation function, the translation function is called for every
|
|
65
|
+
* property (value/key) of the old object and returns the new value of for this property
|
|
66
|
+
*
|
|
67
|
+
* @param obj
|
|
68
|
+
* @param translator
|
|
69
|
+
*/
|
|
70
|
+
export function objectMap<
|
|
71
|
+
InputObject extends {[key in string]: any},
|
|
72
|
+
OutputObject extends {[key in keyof InputObject]: any}
|
|
73
|
+
>(
|
|
74
|
+
obj: InputObject,
|
|
75
|
+
translator: <InputKey extends Extract<keyof InputObject, string>>(
|
|
76
|
+
value: InputObject[InputKey],
|
|
77
|
+
key: InputKey
|
|
78
|
+
) => OutputObject[InputKey]
|
|
79
|
+
): {[key in keyof InputObject]: OutputObject[key]} {
|
|
80
|
+
const resp: {[key in keyof InputObject]?: OutputObject[key]} = {};
|
|
81
|
+
for(let key in obj) {
|
|
82
|
+
resp[key] = translator(obj[key], key);
|
|
83
|
+
}
|
|
84
|
+
return resp as {[key in keyof InputObject]: OutputObject[key]};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Maps the entries from the map to the array using the translator function
|
|
89
|
+
*
|
|
90
|
+
* @param map
|
|
91
|
+
* @param translator
|
|
92
|
+
*/
|
|
93
|
+
export function mapToArray<K, V, Output>(map: Map<K, V>, translator: (key: K, value: V) => Output): Output[] {
|
|
94
|
+
const arr: Output[] = Array(map.size);
|
|
95
|
+
let pointer = 0;
|
|
96
|
+
for(let entry of map.entries()) {
|
|
97
|
+
arr[pointer++] = translator(entry[0], entry[1]);
|
|
98
|
+
}
|
|
99
|
+
return arr;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Creates a new abort controller that will abort if the passed abort signal aborts
|
|
104
|
+
*
|
|
105
|
+
* @param abortSignal
|
|
106
|
+
*/
|
|
107
|
+
export function extendAbortController(abortSignal?: AbortSignal) {
|
|
108
|
+
const _abortController = new AbortController();
|
|
109
|
+
if(abortSignal!=null) {
|
|
110
|
+
abortSignal.throwIfAborted();
|
|
111
|
+
abortSignal.onabort = () => _abortController.abort(abortSignal.reason);
|
|
112
|
+
}
|
|
113
|
+
return _abortController;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export function bigIntMin(a: bigint, b: bigint): bigint;
|
|
117
|
+
export function bigIntMin(a?: bigint, b?: bigint): bigint | undefined;
|
|
118
|
+
export function bigIntMin(a?: bigint, b?: bigint): bigint | undefined {
|
|
119
|
+
if(a==null) return b;
|
|
120
|
+
if(b==null) return a;
|
|
121
|
+
return a > b ? b : a;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export function bigIntMax(a: bigint, b: bigint): bigint;
|
|
125
|
+
export function bigIntMax(a?: bigint, b?: bigint): bigint | undefined;
|
|
126
|
+
export function bigIntMax(a?: bigint, b?: bigint): bigint | undefined {
|
|
127
|
+
if(a==null) return b;
|
|
128
|
+
if(b==null) return a;
|
|
129
|
+
return b > a ? b : a;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export function bigIntCompare(a: bigint, b: bigint): -1 | 0 | 1 {
|
|
133
|
+
return a > b ? 1 : a===b ? 0 : -1;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export function toBigInt(value: string): bigint;
|
|
137
|
+
export function toBigInt(value: undefined): undefined;
|
|
138
|
+
export function toBigInt(value: string | undefined): bigint | undefined {
|
|
139
|
+
if(value==null) return undefined;
|
|
140
|
+
return BigInt(value);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export function randomBytes(bytesLength: number): Buffer {
|
|
144
|
+
return Buffer.from(randomBytesNoble(bytesLength));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export function getTxoHash(outputScriptHex: string, value: number) {
|
|
148
|
+
return Buffer.from(sha256(Buffer.concat([
|
|
149
|
+
BigIntBufferUtils.toBuffer(BigInt(value), "le", 8),
|
|
150
|
+
Buffer.from(outputScriptHex, "hex")
|
|
151
|
+
])));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export function fromDecimal(amount: string, decimalCount: number) {
|
|
155
|
+
if (amount.includes(".")) {
|
|
156
|
+
const [before, after] = amount.split(".");
|
|
157
|
+
if (decimalCount < 0) {
|
|
158
|
+
return BigInt(before.substring(0, before.length + decimalCount));
|
|
159
|
+
}
|
|
160
|
+
if (after.length > decimalCount) {
|
|
161
|
+
//Cut the last digits
|
|
162
|
+
return BigInt((before === "0" ? "" : before) + after.substring(0, decimalCount));
|
|
163
|
+
}
|
|
164
|
+
return BigInt((before === "0" ? "" : before) + after.padEnd(decimalCount, "0"));
|
|
165
|
+
} else {
|
|
166
|
+
if (decimalCount < 0) {
|
|
167
|
+
return BigInt(amount.substring(0, amount.length + decimalCount));
|
|
168
|
+
} else {
|
|
169
|
+
return BigInt(amount + "0".repeat(decimalCount));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export function toDecimal(amount: bigint, decimalCount: number, cut?: boolean, displayDecimals?: number) {
|
|
176
|
+
if (decimalCount <= 0) {
|
|
177
|
+
return amount.toString(10) + "0".repeat(-decimalCount);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const amountStr = amount.toString(10).padStart(decimalCount + 1, "0");
|
|
181
|
+
|
|
182
|
+
const splitPoint = amountStr.length - decimalCount;
|
|
183
|
+
|
|
184
|
+
const decimalPart = amountStr.substring(splitPoint, amountStr.length);
|
|
185
|
+
let cutTo = decimalPart.length;
|
|
186
|
+
if (cut && cutTo > 0) {
|
|
187
|
+
for (let i = decimalPart.length - 1; i--; i >= 0) {
|
|
188
|
+
if (decimalPart.charAt(i) === "0") {
|
|
189
|
+
cutTo = i;
|
|
190
|
+
} else break;
|
|
191
|
+
}
|
|
192
|
+
if (cutTo === 0) cutTo = 1;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
if (displayDecimals === 0) return amountStr.substring(0, splitPoint);
|
|
196
|
+
if (displayDecimals != null && cutTo > displayDecimals) cutTo = displayDecimals;
|
|
197
|
+
return amountStr.substring(0, splitPoint) + "." + decimalPart.substring(0, cutTo);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export function parseHashValueExact32Bytes(value?: Buffer | string, variableName?: string): Buffer | undefined {
|
|
201
|
+
let hash: Buffer | undefined;
|
|
202
|
+
if(typeof(value)==="string") {
|
|
203
|
+
if(value.length!==64)
|
|
204
|
+
throw new UserError(`Invalid ${variableName} length, must be exactly 64 hexadecimal characters!`)
|
|
205
|
+
hash = Buffer.from(value, "hex");
|
|
206
|
+
} else {
|
|
207
|
+
hash = value;
|
|
208
|
+
}
|
|
209
|
+
if(hash!=null && hash.length!==32)
|
|
210
|
+
throw new UserError(`Invalid ${variableName} length, must be exactly 32 bytes!`);
|
|
211
|
+
return hash;
|
|
212
|
+
}
|