@atomiqlabs/sdk 8.9.1 → 8.9.2
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/api/index.d.ts +1 -1
- package/api/index.js +3 -3
- package/dist/ApiList.d.ts +37 -37
- package/dist/ApiList.js +30 -30
- package/dist/SmartChainAssets.d.ts +181 -181
- package/dist/SmartChainAssets.js +181 -181
- package/dist/api/ApiEndpoints.d.ts +393 -393
- package/dist/api/ApiEndpoints.js +2 -2
- package/dist/api/ApiParser.d.ts +10 -10
- package/dist/api/ApiParser.js +134 -134
- package/dist/api/ApiTypes.d.ts +157 -157
- package/dist/api/ApiTypes.js +75 -75
- package/dist/api/SerializedAction.d.ts +40 -40
- package/dist/api/SerializedAction.js +59 -59
- package/dist/api/SwapperApi.d.ts +50 -50
- package/dist/api/SwapperApi.js +431 -431
- package/dist/api/index.d.ts +5 -5
- package/dist/api/index.js +24 -24
- 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 +24 -24
- package/dist/events/UnifiedSwapEventListener.js +138 -138
- package/dist/http/HttpUtils.d.ts +29 -29
- package/dist/http/HttpUtils.js +97 -97
- 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 +17 -17
- package/dist/http/paramcoders/client/StreamingFetchPromise.js +175 -175
- package/dist/index.d.ts +86 -86
- package/dist/index.js +159 -159
- package/dist/intermediaries/Intermediary.d.ts +178 -178
- package/dist/intermediaries/Intermediary.js +166 -166
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +216 -216
- package/dist/intermediaries/IntermediaryDiscovery.js +424 -424
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +607 -607
- package/dist/intermediaries/apis/IntermediaryAPI.js +764 -764
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
- package/dist/intermediaries/auth/SignedKeyBasedAuth.d.ts +14 -14
- package/dist/intermediaries/auth/SignedKeyBasedAuth.js +68 -68
- 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 +127 -127
- package/dist/storage/IUnifiedStorage.js +2 -2
- package/dist/storage/UnifiedSwapStorage.d.ts +120 -120
- package/dist/storage/UnifiedSwapStorage.js +154 -154
- 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 +765 -770
- package/dist/swapper/Swapper.js +1749 -1758
- package/dist/swapper/SwapperFactory.d.ts +135 -135
- package/dist/swapper/SwapperFactory.js +162 -162
- package/dist/swapper/SwapperUtils.d.ts +222 -222
- package/dist/swapper/SwapperUtils.js +519 -519
- 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 +453 -453
- package/dist/swaps/ISwap.js +371 -371
- package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
- package/dist/swaps/ISwapWithGasDrop.js +12 -12
- package/dist/swaps/ISwapWrapper.d.ts +295 -295
- package/dist/swaps/ISwapWrapper.js +373 -373
- 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 +172 -172
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +129 -129
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +167 -167
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +107 -107
- 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 +64 -64
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +82 -82
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +547 -547
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1419 -1419
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +192 -192
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +432 -432
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +650 -650
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1577 -1577
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +237 -237
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +525 -525
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +491 -491
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1463 -1463
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +204 -204
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +406 -406
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +446 -446
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +1097 -1097
- 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 +252 -252
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +535 -535
- 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 +134 -134
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +286 -286
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +694 -694
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1687 -1687
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +259 -259
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +947 -947
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +302 -302
- package/dist/swaps/trusted/ln/LnForGasSwap.js +625 -625
- 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 +343 -343
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +698 -698
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +71 -71
- 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 +195 -195
- package/dist/types/SwapExecutionAction.js +106 -106
- package/dist/types/SwapExecutionStep.d.ts +144 -144
- package/dist/types/SwapExecutionStep.js +87 -87
- 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 +75 -75
- package/dist/types/TokenAmount.js +85 -85
- 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 +18 -18
- package/dist/utils/BitcoinUtils.js +174 -174
- 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 +69 -69
- package/dist/utils/Utils.js +214 -214
- package/package.json +46 -46
- package/src/SmartChainAssets.ts +186 -186
- package/src/api/ApiEndpoints.ts +427 -427
- package/src/api/ApiParser.ts +138 -138
- package/src/api/ApiTypes.ts +229 -229
- package/src/api/SerializedAction.ts +97 -97
- package/src/api/SwapperApi.ts +545 -545
- package/src/api/index.ts +5 -5
- 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 +181 -181
- package/src/http/HttpUtils.ts +97 -97
- 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 +194 -194
- package/src/index.ts +141 -141
- package/src/intermediaries/Intermediary.ts +280 -280
- package/src/intermediaries/IntermediaryDiscovery.ts +548 -548
- package/src/intermediaries/apis/IntermediaryAPI.ts +1247 -1247
- package/src/intermediaries/auth/SignedKeyBasedAuth.ts +69 -69
- 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 +136 -136
- package/src/storage/UnifiedSwapStorage.ts +175 -175
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +350 -350
- package/src/storage-browser/LocalStorageManager.ts +106 -106
- package/src/swapper/Swapper.ts +2557 -2570
- package/src/swapper/SwapperFactory.ts +307 -307
- package/src/swapper/SwapperUtils.ts +610 -610
- 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 +775 -775
- package/src/swaps/ISwapWithGasDrop.ts +25 -25
- package/src/swaps/ISwapWrapper.ts +564 -564
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +217 -217
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +271 -271
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +284 -284
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +172 -172
- 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 +1670 -1671
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +603 -603
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1883 -1883
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +752 -752
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +1753 -1753
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +612 -612
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +1327 -1327
- 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 +787 -787
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +206 -206
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +403 -403
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +2148 -2148
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +1238 -1238
- package/src/swaps/trusted/ln/LnForGasSwap.ts +753 -753
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +90 -90
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +843 -843
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +133 -133
- 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 +323 -323
- package/src/types/SwapExecutionStep.ts +224 -224
- 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 +167 -167
- 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 +164 -164
- 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 +221 -221
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import {HttpPriceProvider} from "./HttpPriceProvider";
|
|
2
|
-
import {CoinType} from "../../abstract/IPriceProvider";
|
|
3
|
-
import {MultiChain} from "../../../swapper/Swapper";
|
|
4
|
-
|
|
5
|
-
export abstract class ExchangePriceProvider<T extends MultiChain> extends HttpPriceProvider<T> {
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Fetches the price on the specific exchange pair
|
|
9
|
-
*
|
|
10
|
-
* @param pair
|
|
11
|
-
* @param abortSignal
|
|
12
|
-
* @protected
|
|
13
|
-
*/
|
|
14
|
-
protected abstract fetchPair(pair: string, abortSignal?: AbortSignal): Promise<number>;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @inheritDoc
|
|
18
|
-
*/
|
|
19
|
-
protected async fetchPrice(token: CoinType, abortSignal?: AbortSignal): Promise<bigint> {
|
|
20
|
-
const pairs: string[] = token.coinId.split(";");
|
|
21
|
-
const prices: number[] = await Promise.all(pairs.map(pair => {
|
|
22
|
-
let invert = pair.startsWith("!");
|
|
23
|
-
if(invert) pair = pair.substring(1);
|
|
24
|
-
return this.fetchPair(pair, abortSignal).then(value => invert ? 1/value : value);
|
|
25
|
-
}));
|
|
26
|
-
|
|
27
|
-
const price = prices.reduce((previousValue, currentValue) => previousValue * currentValue, 1);
|
|
28
|
-
|
|
29
|
-
return BigInt(Math.floor(price*100000000000000));
|
|
30
|
-
}
|
|
31
|
-
|
|
1
|
+
import {HttpPriceProvider} from "./HttpPriceProvider";
|
|
2
|
+
import {CoinType} from "../../abstract/IPriceProvider";
|
|
3
|
+
import {MultiChain} from "../../../swapper/Swapper";
|
|
4
|
+
|
|
5
|
+
export abstract class ExchangePriceProvider<T extends MultiChain> extends HttpPriceProvider<T> {
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Fetches the price on the specific exchange pair
|
|
9
|
+
*
|
|
10
|
+
* @param pair
|
|
11
|
+
* @param abortSignal
|
|
12
|
+
* @protected
|
|
13
|
+
*/
|
|
14
|
+
protected abstract fetchPair(pair: string, abortSignal?: AbortSignal): Promise<number>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @inheritDoc
|
|
18
|
+
*/
|
|
19
|
+
protected async fetchPrice(token: CoinType, abortSignal?: AbortSignal): Promise<bigint> {
|
|
20
|
+
const pairs: string[] = token.coinId.split(";");
|
|
21
|
+
const prices: number[] = await Promise.all(pairs.map(pair => {
|
|
22
|
+
let invert = pair.startsWith("!");
|
|
23
|
+
if(invert) pair = pair.substring(1);
|
|
24
|
+
return this.fetchPair(pair, abortSignal).then(value => invert ? 1/value : value);
|
|
25
|
+
}));
|
|
26
|
+
|
|
27
|
+
const price = prices.reduce((previousValue, currentValue) => previousValue * currentValue, 1);
|
|
28
|
+
|
|
29
|
+
return BigInt(Math.floor(price*100000000000000));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
32
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {CtorCoinTypes, IPriceProvider} from "../../abstract/IPriceProvider";
|
|
2
|
-
import {MultiChain} from "../../../swapper/Swapper";
|
|
3
|
-
|
|
4
|
-
export abstract class HttpPriceProvider<T extends MultiChain> extends IPriceProvider<T> {
|
|
5
|
-
|
|
6
|
-
url: string;
|
|
7
|
-
httpRequestTimeout?: number;
|
|
8
|
-
|
|
9
|
-
protected constructor(coinsMap: CtorCoinTypes<T>, url: string, httpRequestTimeout?: number) {
|
|
10
|
-
super(coinsMap);
|
|
11
|
-
this.url = url;
|
|
12
|
-
this.httpRequestTimeout = httpRequestTimeout;
|
|
13
|
-
}
|
|
14
|
-
|
|
1
|
+
import {CtorCoinTypes, IPriceProvider} from "../../abstract/IPriceProvider";
|
|
2
|
+
import {MultiChain} from "../../../swapper/Swapper";
|
|
3
|
+
|
|
4
|
+
export abstract class HttpPriceProvider<T extends MultiChain> extends IPriceProvider<T> {
|
|
5
|
+
|
|
6
|
+
url: string;
|
|
7
|
+
httpRequestTimeout?: number;
|
|
8
|
+
|
|
9
|
+
protected constructor(coinsMap: CtorCoinTypes<T>, url: string, httpRequestTimeout?: number) {
|
|
10
|
+
super(coinsMap);
|
|
11
|
+
this.url = url;
|
|
12
|
+
this.httpRequestTimeout = httpRequestTimeout;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
15
|
}
|
|
@@ -1,136 +1,136 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Params for querying the storage
|
|
4
|
-
*
|
|
5
|
-
* @category Storage
|
|
6
|
-
*/
|
|
7
|
-
export type QueryParams = {
|
|
8
|
-
/**
|
|
9
|
-
* Key that should be matched
|
|
10
|
-
*/
|
|
11
|
-
key: string,
|
|
12
|
-
/**
|
|
13
|
-
* A value that the key needs to have, if an array is passed, the conditions are `OR`-ed
|
|
14
|
-
*/
|
|
15
|
-
value: any | any[]
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Base type for stored objects, every storage object MUST have an `id` field. The object might also specify a `_meta`
|
|
20
|
-
* field which gets carried to the delete/save operations (and can be used to implement optimistic concurrency)
|
|
21
|
-
*
|
|
22
|
-
* @category Storage
|
|
23
|
-
*/
|
|
24
|
-
export type UnifiedStoredObject = {id: string, _meta?: any} & any;
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Defines simple indexes (for queries that use a single key)
|
|
28
|
-
*
|
|
29
|
-
* @category Storage
|
|
30
|
-
*/
|
|
31
|
-
export type UnifiedStorageIndexes = readonly {
|
|
32
|
-
key: string,
|
|
33
|
-
type: "number" | "string" | "boolean",
|
|
34
|
-
unique: boolean,
|
|
35
|
-
nullable: boolean
|
|
36
|
-
}[];
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Defines composite indexes (for queries that use multiple keys)
|
|
40
|
-
*
|
|
41
|
-
* @category Storage
|
|
42
|
-
*/
|
|
43
|
-
export type UnifiedStorageCompositeIndexes = readonly {
|
|
44
|
-
keys: readonly string[],
|
|
45
|
-
unique: boolean
|
|
46
|
-
}[];
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Interface for a generic unified storage implementations
|
|
50
|
-
*
|
|
51
|
-
* @category Storage
|
|
52
|
-
*/
|
|
53
|
-
export interface IUnifiedStorage<I extends UnifiedStorageIndexes, C extends UnifiedStorageCompositeIndexes> {
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Initializes the storage with given indexes and composite indexes
|
|
57
|
-
*
|
|
58
|
-
* @param indexes
|
|
59
|
-
* @param compositeIndexes
|
|
60
|
-
*/
|
|
61
|
-
init(indexes: I, compositeIndexes: C): Promise<void>;
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Params are specified in the following way:
|
|
65
|
-
* - [[condition1, condition2]] - returns all rows where condition1 AND condition2 is met
|
|
66
|
-
* - [[condition1], [condition2]] - returns all rows where condition1 OR condition2 is met
|
|
67
|
-
* - [[condition1, condition2], [condition3]] - returns all rows where (condition1 AND condition2) OR condition3 is met
|
|
68
|
-
*
|
|
69
|
-
* You can also add an optional `_meta` field in the returned unified storage object which gets attached to that
|
|
70
|
-
* returned object and will be present for subsequent saves and removal of this object, if you specify the `_meta`
|
|
71
|
-
* field here, you need to explicitly handle it in the all the saving and remove functions and not simply serialize
|
|
72
|
-
* it into the storage
|
|
73
|
-
*
|
|
74
|
-
* @param params
|
|
75
|
-
*/
|
|
76
|
-
query(params: Array<Array<QueryParams>>): Promise<Array<UnifiedStoredObject>>;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Saves an object to storage, updating indexes as needed
|
|
80
|
-
*
|
|
81
|
-
* If the object contains a `_meta` field, this will be also present in the to-be-saved value, to mutate the `_meta`
|
|
82
|
-
* field of the object that is saved, you can mutate the `_meta` field directly on the passed value, which then
|
|
83
|
-
* gets reflected automatically in the existing object. The mutated `_meta` field is copied even if the function
|
|
84
|
-
* throws, hence the implementations must be careful with setting the `_meta` field on the still in-flight requests
|
|
85
|
-
* that might fail.
|
|
86
|
-
*
|
|
87
|
-
* @param value Object to save (must have an id property)
|
|
88
|
-
*/
|
|
89
|
-
save(value: UnifiedStoredObject): Promise<void>;
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Saves multiple objects to storage in a batch operation
|
|
93
|
-
*
|
|
94
|
-
* If the objects contain a `_meta` field, this will be also present in the to-be-saved values, to mutate the `_meta`
|
|
95
|
-
* field of the objects that are saved, you can mutate the `_meta` field directly on the passed values, which then
|
|
96
|
-
* gets reflected automatically in the existing objects. The mutated `_meta` field is copied even if the function
|
|
97
|
-
* throws, hence the implementations must be careful with setting the `_meta` field on the still in-flight requests
|
|
98
|
-
* that might fail.
|
|
99
|
-
*
|
|
100
|
-
* @param value Array of objects to save
|
|
101
|
-
* @param lenient In lenient mode the persistency layer doesn't throw on individual swap failures due to
|
|
102
|
-
* optimistic concurrency, or other (implementation specific), this flag is to be used when the saving of the swap
|
|
103
|
-
* isn't mission-critical for executing next steps (e.g. in tick or sync loops)
|
|
104
|
-
*/
|
|
105
|
-
saveAll(value: UnifiedStoredObject[], lenient?: boolean): Promise<void>;
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Removes an object from storage
|
|
109
|
-
*
|
|
110
|
-
* If the object contains a `_meta` field, this will be also present in the to-be-removed value, to mutate the `_meta`
|
|
111
|
-
* field of the object that is saved, you can mutate the `_meta` field directly on the passed value, which then
|
|
112
|
-
* gets reflected automatically in the existing object. The mutated `_meta` field is copied even if the function
|
|
113
|
-
* throws, hence the implementations must be careful with setting the `_meta` field on the still in-flight requests
|
|
114
|
-
* that might fail.
|
|
115
|
-
*
|
|
116
|
-
* @param value Object to remove (must have an id property)
|
|
117
|
-
*/
|
|
118
|
-
remove(value: UnifiedStoredObject): Promise<void>;
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Removes multiple objects from storage in a batch operation
|
|
122
|
-
*
|
|
123
|
-
* If the objects contain a `_meta` field, this will be also present in the to-be-removed values, to mutate the `_meta`
|
|
124
|
-
* field of the objects that are saved, you can mutate the `_meta` field directly on the passed values, which then
|
|
125
|
-
* gets reflected automatically in the existing objects. The mutated `_meta` field is copied even if the function
|
|
126
|
-
* throws, hence the implementations must be careful with setting the `_meta` field on the still in-flight requests
|
|
127
|
-
* that might fail.
|
|
128
|
-
*
|
|
129
|
-
* @param value Array of objects to remove
|
|
130
|
-
* @param lenient In lenient mode the persistency layer doesn't throw on individual swap failures due to
|
|
131
|
-
* optimistic concurrency, or other (implementation specific), this flag is to be used when the saving of the swap
|
|
132
|
-
* isn't mission-critical for executing next steps (e.g. in tick or sync loops)
|
|
133
|
-
*/
|
|
134
|
-
removeAll(value: UnifiedStoredObject[], lenient?: boolean): Promise<void>;
|
|
135
|
-
|
|
136
|
-
}
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* Params for querying the storage
|
|
4
|
+
*
|
|
5
|
+
* @category Storage
|
|
6
|
+
*/
|
|
7
|
+
export type QueryParams = {
|
|
8
|
+
/**
|
|
9
|
+
* Key that should be matched
|
|
10
|
+
*/
|
|
11
|
+
key: string,
|
|
12
|
+
/**
|
|
13
|
+
* A value that the key needs to have, if an array is passed, the conditions are `OR`-ed
|
|
14
|
+
*/
|
|
15
|
+
value: any | any[]
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Base type for stored objects, every storage object MUST have an `id` field. The object might also specify a `_meta`
|
|
20
|
+
* field which gets carried to the delete/save operations (and can be used to implement optimistic concurrency)
|
|
21
|
+
*
|
|
22
|
+
* @category Storage
|
|
23
|
+
*/
|
|
24
|
+
export type UnifiedStoredObject = {id: string, _meta?: any} & any;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Defines simple indexes (for queries that use a single key)
|
|
28
|
+
*
|
|
29
|
+
* @category Storage
|
|
30
|
+
*/
|
|
31
|
+
export type UnifiedStorageIndexes = readonly {
|
|
32
|
+
key: string,
|
|
33
|
+
type: "number" | "string" | "boolean",
|
|
34
|
+
unique: boolean,
|
|
35
|
+
nullable: boolean
|
|
36
|
+
}[];
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Defines composite indexes (for queries that use multiple keys)
|
|
40
|
+
*
|
|
41
|
+
* @category Storage
|
|
42
|
+
*/
|
|
43
|
+
export type UnifiedStorageCompositeIndexes = readonly {
|
|
44
|
+
keys: readonly string[],
|
|
45
|
+
unique: boolean
|
|
46
|
+
}[];
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Interface for a generic unified storage implementations
|
|
50
|
+
*
|
|
51
|
+
* @category Storage
|
|
52
|
+
*/
|
|
53
|
+
export interface IUnifiedStorage<I extends UnifiedStorageIndexes, C extends UnifiedStorageCompositeIndexes> {
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Initializes the storage with given indexes and composite indexes
|
|
57
|
+
*
|
|
58
|
+
* @param indexes
|
|
59
|
+
* @param compositeIndexes
|
|
60
|
+
*/
|
|
61
|
+
init(indexes: I, compositeIndexes: C): Promise<void>;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Params are specified in the following way:
|
|
65
|
+
* - [[condition1, condition2]] - returns all rows where condition1 AND condition2 is met
|
|
66
|
+
* - [[condition1], [condition2]] - returns all rows where condition1 OR condition2 is met
|
|
67
|
+
* - [[condition1, condition2], [condition3]] - returns all rows where (condition1 AND condition2) OR condition3 is met
|
|
68
|
+
*
|
|
69
|
+
* You can also add an optional `_meta` field in the returned unified storage object which gets attached to that
|
|
70
|
+
* returned object and will be present for subsequent saves and removal of this object, if you specify the `_meta`
|
|
71
|
+
* field here, you need to explicitly handle it in the all the saving and remove functions and not simply serialize
|
|
72
|
+
* it into the storage
|
|
73
|
+
*
|
|
74
|
+
* @param params
|
|
75
|
+
*/
|
|
76
|
+
query(params: Array<Array<QueryParams>>): Promise<Array<UnifiedStoredObject>>;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Saves an object to storage, updating indexes as needed
|
|
80
|
+
*
|
|
81
|
+
* If the object contains a `_meta` field, this will be also present in the to-be-saved value, to mutate the `_meta`
|
|
82
|
+
* field of the object that is saved, you can mutate the `_meta` field directly on the passed value, which then
|
|
83
|
+
* gets reflected automatically in the existing object. The mutated `_meta` field is copied even if the function
|
|
84
|
+
* throws, hence the implementations must be careful with setting the `_meta` field on the still in-flight requests
|
|
85
|
+
* that might fail.
|
|
86
|
+
*
|
|
87
|
+
* @param value Object to save (must have an id property)
|
|
88
|
+
*/
|
|
89
|
+
save(value: UnifiedStoredObject): Promise<void>;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Saves multiple objects to storage in a batch operation
|
|
93
|
+
*
|
|
94
|
+
* If the objects contain a `_meta` field, this will be also present in the to-be-saved values, to mutate the `_meta`
|
|
95
|
+
* field of the objects that are saved, you can mutate the `_meta` field directly on the passed values, which then
|
|
96
|
+
* gets reflected automatically in the existing objects. The mutated `_meta` field is copied even if the function
|
|
97
|
+
* throws, hence the implementations must be careful with setting the `_meta` field on the still in-flight requests
|
|
98
|
+
* that might fail.
|
|
99
|
+
*
|
|
100
|
+
* @param value Array of objects to save
|
|
101
|
+
* @param lenient In lenient mode the persistency layer doesn't throw on individual swap failures due to
|
|
102
|
+
* optimistic concurrency, or other (implementation specific), this flag is to be used when the saving of the swap
|
|
103
|
+
* isn't mission-critical for executing next steps (e.g. in tick or sync loops)
|
|
104
|
+
*/
|
|
105
|
+
saveAll(value: UnifiedStoredObject[], lenient?: boolean): Promise<void>;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Removes an object from storage
|
|
109
|
+
*
|
|
110
|
+
* If the object contains a `_meta` field, this will be also present in the to-be-removed value, to mutate the `_meta`
|
|
111
|
+
* field of the object that is saved, you can mutate the `_meta` field directly on the passed value, which then
|
|
112
|
+
* gets reflected automatically in the existing object. The mutated `_meta` field is copied even if the function
|
|
113
|
+
* throws, hence the implementations must be careful with setting the `_meta` field on the still in-flight requests
|
|
114
|
+
* that might fail.
|
|
115
|
+
*
|
|
116
|
+
* @param value Object to remove (must have an id property)
|
|
117
|
+
*/
|
|
118
|
+
remove(value: UnifiedStoredObject): Promise<void>;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Removes multiple objects from storage in a batch operation
|
|
122
|
+
*
|
|
123
|
+
* If the objects contain a `_meta` field, this will be also present in the to-be-removed values, to mutate the `_meta`
|
|
124
|
+
* field of the objects that are saved, you can mutate the `_meta` field directly on the passed values, which then
|
|
125
|
+
* gets reflected automatically in the existing objects. The mutated `_meta` field is copied even if the function
|
|
126
|
+
* throws, hence the implementations must be careful with setting the `_meta` field on the still in-flight requests
|
|
127
|
+
* that might fail.
|
|
128
|
+
*
|
|
129
|
+
* @param value Array of objects to remove
|
|
130
|
+
* @param lenient In lenient mode the persistency layer doesn't throw on individual swap failures due to
|
|
131
|
+
* optimistic concurrency, or other (implementation specific), this flag is to be used when the saving of the swap
|
|
132
|
+
* isn't mission-critical for executing next steps (e.g. in tick or sync loops)
|
|
133
|
+
*/
|
|
134
|
+
removeAll(value: UnifiedStoredObject[], lenient?: boolean): Promise<void>;
|
|
135
|
+
|
|
136
|
+
}
|