@atomiqlabs/sdk 8.9.1 → 8.9.3
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 +770 -770
- package/dist/swapper/Swapper.js +1758 -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 +2570 -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,140 +1,140 @@
|
|
|
1
|
-
import {Address, Transaction} from "@scure/btc-signer";
|
|
2
|
-
import {BTC_NETWORK} from "@scure/btc-signer/utils";
|
|
3
|
-
import {CoinselectAddressTypes} from "../coinselect2";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* UTXO data structure for Bitcoin wallets
|
|
7
|
-
*
|
|
8
|
-
* @category Bitcoin
|
|
9
|
-
*/
|
|
10
|
-
export type BitcoinWalletUtxo = {
|
|
11
|
-
vout: number,
|
|
12
|
-
txId: string,
|
|
13
|
-
value: number,
|
|
14
|
-
type: CoinselectAddressTypes,
|
|
15
|
-
outputScript: Buffer,
|
|
16
|
-
address: string,
|
|
17
|
-
cpfp?: {
|
|
18
|
-
txVsize: number,
|
|
19
|
-
txEffectiveFeeRate: number
|
|
20
|
-
},
|
|
21
|
-
confirmed: boolean
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Base UTXO data structure used for maximum spendable balance calculation, doesn't contain all the fields necessary
|
|
26
|
-
* for constructing the full transaction.
|
|
27
|
-
*
|
|
28
|
-
* @category Bitcoin
|
|
29
|
-
*/
|
|
30
|
-
export type BitcoinWalletUtxoBase = Omit<BitcoinWalletUtxo, "txId" | "vout" | "outputScript" | "address" | "confirmed">;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Type guard to check if an object implements {@link IBitcoinWallet}
|
|
34
|
-
*
|
|
35
|
-
* @category Bitcoin
|
|
36
|
-
*/
|
|
37
|
-
export function isIBitcoinWallet(val: any): val is IBitcoinWallet {
|
|
38
|
-
return val!==null &&
|
|
39
|
-
typeof(val.sendTransaction)==="function" &&
|
|
40
|
-
typeof(val.fundPsbt)==="function" &&
|
|
41
|
-
typeof(val.signPsbt)==="function" &&
|
|
42
|
-
typeof(val.getFeeRate)==="function" &&
|
|
43
|
-
typeof(val.getTransactionFee)==="function" &&
|
|
44
|
-
typeof(val.getFundedPsbtFee)==="function" &&
|
|
45
|
-
typeof(val.getReceiveAddress)==="function" &&
|
|
46
|
-
typeof(val.getBalance)==="function" &&
|
|
47
|
-
typeof(val.getSpendableBalance)==="function";
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Interface to be implemented by Bitcoin wallets
|
|
52
|
-
*
|
|
53
|
-
* @category Bitcoin
|
|
54
|
-
*/
|
|
55
|
-
export interface IBitcoinWallet {
|
|
56
|
-
/**
|
|
57
|
-
* Signs and broadcasts a transaction sending `amount` of sats to `address`, optionally with the
|
|
58
|
-
* `feeRate` sats/vB fee rate.
|
|
59
|
-
*
|
|
60
|
-
* @param address Destination address of the transaction
|
|
61
|
-
* @param amount Amount of satoshis to send (1 BTC = 100,000,000 sats)
|
|
62
|
-
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
63
|
-
*/
|
|
64
|
-
sendTransaction(address: string, amount: bigint, feeRate?: number): Promise<string>;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Funds (populates the inputs) for a given PSBT from wallet's UTXO set
|
|
68
|
-
*
|
|
69
|
-
* @param psbt PSBT to add the inputs to
|
|
70
|
-
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
71
|
-
* @param utxos Pre-fetched list of UTXOs to spend from
|
|
72
|
-
* @param spendFully Instructs the wallet to spend all the passed UTXOs in the transaction without creating any
|
|
73
|
-
* change output, if the `feeRate` is passed, it will also enforce that the feeRate in sats/vB for the resulting
|
|
74
|
-
* transaction is not more than 50% and 10 sats/vB larger (considering also the CPFP adjustments)
|
|
75
|
-
*/
|
|
76
|
-
fundPsbt(psbt: Transaction, feeRate?: number, utxos?: BitcoinWalletUtxo[], spendFully?: boolean): Promise<Transaction>;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Signs inputs in the provided PSBT
|
|
80
|
-
*
|
|
81
|
-
* @param psbt A PSBT to sign
|
|
82
|
-
* @param signInputs Indices of the inputs to sign
|
|
83
|
-
*/
|
|
84
|
-
signPsbt(psbt: Transaction, signInputs: number[]): Promise<Transaction>;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Returns the current fee rate in sats/vB
|
|
88
|
-
*/
|
|
89
|
-
getFeeRate(): Promise<number>;
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Estimates a total fee in satoshis for a given transaction
|
|
93
|
-
*
|
|
94
|
-
* @param address Destination address of the transaction
|
|
95
|
-
* @param amount Amount of satoshis to send (1 BTC = 100,000,000 sats)
|
|
96
|
-
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
97
|
-
*/
|
|
98
|
-
getTransactionFee(address: string, amount: bigint, feeRate?: number): Promise<number>;
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Estimates a total fee in satoshis for a given transaction as identified by the PSBT
|
|
102
|
-
*
|
|
103
|
-
* @param psbt A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated
|
|
104
|
-
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
105
|
-
*/
|
|
106
|
-
getFundedPsbtFee(psbt: Transaction, feeRate?: number): Promise<number>;
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Returns the bitcoin address suitable for receiving funds
|
|
110
|
-
*/
|
|
111
|
-
getReceiveAddress(): string;
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Returns confirmed and unconfirmed balance in satoshis of the wallet
|
|
115
|
-
*/
|
|
116
|
-
getBalance(): Promise<{
|
|
117
|
-
confirmedBalance: bigint,
|
|
118
|
-
unconfirmedBalance: bigint
|
|
119
|
-
}>;
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Returns the maximum spendable balance in satoshis given a specific PSBT that should be funded
|
|
123
|
-
*
|
|
124
|
-
* @param psbt A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated
|
|
125
|
-
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
126
|
-
* @param outputAddressType Expected output address type, if known
|
|
127
|
-
* @param utxos Optional pre-fetched UTXOs
|
|
128
|
-
*/
|
|
129
|
-
getSpendableBalance(psbt?: Transaction, feeRate?: number, outputAddressType?: CoinselectAddressTypes, utxos?: BitcoinWalletUtxoBase[]): Promise<{
|
|
130
|
-
balance: bigint,
|
|
131
|
-
feeRate: number,
|
|
132
|
-
totalFee: number
|
|
133
|
-
}>;
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Returns a list of available UTXOs for the wallet
|
|
137
|
-
*/
|
|
138
|
-
getUtxoPool?(): Promise<BitcoinWalletUtxo[]>;
|
|
139
|
-
|
|
140
|
-
}
|
|
1
|
+
import {Address, Transaction} from "@scure/btc-signer";
|
|
2
|
+
import {BTC_NETWORK} from "@scure/btc-signer/utils";
|
|
3
|
+
import {CoinselectAddressTypes} from "../coinselect2";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* UTXO data structure for Bitcoin wallets
|
|
7
|
+
*
|
|
8
|
+
* @category Bitcoin
|
|
9
|
+
*/
|
|
10
|
+
export type BitcoinWalletUtxo = {
|
|
11
|
+
vout: number,
|
|
12
|
+
txId: string,
|
|
13
|
+
value: number,
|
|
14
|
+
type: CoinselectAddressTypes,
|
|
15
|
+
outputScript: Buffer,
|
|
16
|
+
address: string,
|
|
17
|
+
cpfp?: {
|
|
18
|
+
txVsize: number,
|
|
19
|
+
txEffectiveFeeRate: number
|
|
20
|
+
},
|
|
21
|
+
confirmed: boolean
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Base UTXO data structure used for maximum spendable balance calculation, doesn't contain all the fields necessary
|
|
26
|
+
* for constructing the full transaction.
|
|
27
|
+
*
|
|
28
|
+
* @category Bitcoin
|
|
29
|
+
*/
|
|
30
|
+
export type BitcoinWalletUtxoBase = Omit<BitcoinWalletUtxo, "txId" | "vout" | "outputScript" | "address" | "confirmed">;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Type guard to check if an object implements {@link IBitcoinWallet}
|
|
34
|
+
*
|
|
35
|
+
* @category Bitcoin
|
|
36
|
+
*/
|
|
37
|
+
export function isIBitcoinWallet(val: any): val is IBitcoinWallet {
|
|
38
|
+
return val!==null &&
|
|
39
|
+
typeof(val.sendTransaction)==="function" &&
|
|
40
|
+
typeof(val.fundPsbt)==="function" &&
|
|
41
|
+
typeof(val.signPsbt)==="function" &&
|
|
42
|
+
typeof(val.getFeeRate)==="function" &&
|
|
43
|
+
typeof(val.getTransactionFee)==="function" &&
|
|
44
|
+
typeof(val.getFundedPsbtFee)==="function" &&
|
|
45
|
+
typeof(val.getReceiveAddress)==="function" &&
|
|
46
|
+
typeof(val.getBalance)==="function" &&
|
|
47
|
+
typeof(val.getSpendableBalance)==="function";
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Interface to be implemented by Bitcoin wallets
|
|
52
|
+
*
|
|
53
|
+
* @category Bitcoin
|
|
54
|
+
*/
|
|
55
|
+
export interface IBitcoinWallet {
|
|
56
|
+
/**
|
|
57
|
+
* Signs and broadcasts a transaction sending `amount` of sats to `address`, optionally with the
|
|
58
|
+
* `feeRate` sats/vB fee rate.
|
|
59
|
+
*
|
|
60
|
+
* @param address Destination address of the transaction
|
|
61
|
+
* @param amount Amount of satoshis to send (1 BTC = 100,000,000 sats)
|
|
62
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
63
|
+
*/
|
|
64
|
+
sendTransaction(address: string, amount: bigint, feeRate?: number): Promise<string>;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Funds (populates the inputs) for a given PSBT from wallet's UTXO set
|
|
68
|
+
*
|
|
69
|
+
* @param psbt PSBT to add the inputs to
|
|
70
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
71
|
+
* @param utxos Pre-fetched list of UTXOs to spend from
|
|
72
|
+
* @param spendFully Instructs the wallet to spend all the passed UTXOs in the transaction without creating any
|
|
73
|
+
* change output, if the `feeRate` is passed, it will also enforce that the feeRate in sats/vB for the resulting
|
|
74
|
+
* transaction is not more than 50% and 10 sats/vB larger (considering also the CPFP adjustments)
|
|
75
|
+
*/
|
|
76
|
+
fundPsbt(psbt: Transaction, feeRate?: number, utxos?: BitcoinWalletUtxo[], spendFully?: boolean): Promise<Transaction>;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Signs inputs in the provided PSBT
|
|
80
|
+
*
|
|
81
|
+
* @param psbt A PSBT to sign
|
|
82
|
+
* @param signInputs Indices of the inputs to sign
|
|
83
|
+
*/
|
|
84
|
+
signPsbt(psbt: Transaction, signInputs: number[]): Promise<Transaction>;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Returns the current fee rate in sats/vB
|
|
88
|
+
*/
|
|
89
|
+
getFeeRate(): Promise<number>;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Estimates a total fee in satoshis for a given transaction
|
|
93
|
+
*
|
|
94
|
+
* @param address Destination address of the transaction
|
|
95
|
+
* @param amount Amount of satoshis to send (1 BTC = 100,000,000 sats)
|
|
96
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
97
|
+
*/
|
|
98
|
+
getTransactionFee(address: string, amount: bigint, feeRate?: number): Promise<number>;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Estimates a total fee in satoshis for a given transaction as identified by the PSBT
|
|
102
|
+
*
|
|
103
|
+
* @param psbt A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated
|
|
104
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
105
|
+
*/
|
|
106
|
+
getFundedPsbtFee(psbt: Transaction, feeRate?: number): Promise<number>;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Returns the bitcoin address suitable for receiving funds
|
|
110
|
+
*/
|
|
111
|
+
getReceiveAddress(): string;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Returns confirmed and unconfirmed balance in satoshis of the wallet
|
|
115
|
+
*/
|
|
116
|
+
getBalance(): Promise<{
|
|
117
|
+
confirmedBalance: bigint,
|
|
118
|
+
unconfirmedBalance: bigint
|
|
119
|
+
}>;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Returns the maximum spendable balance in satoshis given a specific PSBT that should be funded
|
|
123
|
+
*
|
|
124
|
+
* @param psbt A PSBT to which additional inputs from wallet's UTXO set will be added and fee estimated
|
|
125
|
+
* @param feeRate Optional fee rate in sats/vB to use for the transaction
|
|
126
|
+
* @param outputAddressType Expected output address type, if known
|
|
127
|
+
* @param utxos Optional pre-fetched UTXOs
|
|
128
|
+
*/
|
|
129
|
+
getSpendableBalance(psbt?: Transaction, feeRate?: number, outputAddressType?: CoinselectAddressTypes, utxos?: BitcoinWalletUtxoBase[]): Promise<{
|
|
130
|
+
balance: bigint,
|
|
131
|
+
feeRate: number,
|
|
132
|
+
totalFee: number
|
|
133
|
+
}>;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Returns a list of available UTXOs for the wallet
|
|
137
|
+
*/
|
|
138
|
+
getUtxoPool?(): Promise<BitcoinWalletUtxo[]>;
|
|
139
|
+
|
|
140
|
+
}
|