@atomiqlabs/sdk 7.0.11 → 8.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -29
- package/dist/SmartChainAssets.d.ts +11 -3
- package/dist/SmartChainAssets.js +7 -3
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +68 -0
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +2 -0
- package/dist/bitcoin/LightningNetworkApi.d.ts +12 -0
- package/dist/bitcoin/LightningNetworkApi.js +2 -0
- package/dist/bitcoin/coinselect2/accumulative.d.ts +6 -0
- package/dist/bitcoin/coinselect2/accumulative.js +52 -0
- package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -0
- package/dist/bitcoin/coinselect2/blackjack.js +38 -0
- package/dist/bitcoin/coinselect2/index.d.ts +19 -0
- package/dist/bitcoin/coinselect2/index.js +69 -0
- package/dist/bitcoin/coinselect2/utils.d.ts +71 -0
- package/dist/bitcoin/coinselect2/utils.js +123 -0
- package/dist/bitcoin/mempool/MempoolApi.d.ts +350 -0
- package/dist/bitcoin/mempool/MempoolApi.js +311 -0
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +44 -0
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +48 -0
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +119 -0
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +361 -0
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +22 -0
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +105 -0
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +93 -0
- package/dist/bitcoin/wallet/BitcoinWallet.js +273 -0
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +28 -0
- package/dist/bitcoin/wallet/IBitcoinWallet.js +20 -0
- package/dist/bitcoin/wallet/MinimalBitcoinWalletInterface.d.ts +21 -0
- package/dist/bitcoin/wallet/MinimalBitcoinWalletInterface.js +2 -0
- package/dist/bitcoin/wallet/MinimalLightningNetworkWalletInterface.d.ts +7 -0
- package/dist/bitcoin/wallet/MinimalLightningNetworkWalletInterface.js +2 -0
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +40 -0
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +86 -0
- package/dist/enums/FeeType.d.ts +8 -0
- package/dist/enums/FeeType.js +12 -0
- package/dist/enums/SwapAmountType.d.ts +8 -0
- package/dist/enums/SwapAmountType.js +12 -0
- package/dist/enums/SwapDirection.d.ts +8 -0
- package/dist/enums/SwapDirection.js +12 -0
- package/dist/enums/SwapType.d.ts +14 -0
- package/dist/enums/SwapType.js +18 -0
- package/dist/errors/IntermediaryError.d.ts +9 -0
- package/dist/errors/IntermediaryError.js +26 -0
- package/dist/errors/PaymentAuthError.d.ts +11 -0
- package/dist/errors/PaymentAuthError.js +23 -0
- package/dist/errors/RequestError.d.ts +18 -0
- package/dist/errors/RequestError.js +46 -0
- package/dist/errors/UserError.d.ts +7 -0
- package/dist/errors/UserError.js +15 -0
- package/dist/events/UnifiedSwapEventListener.d.ts +23 -0
- package/dist/events/UnifiedSwapEventListener.js +130 -0
- package/dist/http/HttpUtils.d.ts +27 -0
- package/dist/http/HttpUtils.js +91 -0
- package/dist/http/paramcoders/IParamReader.d.ts +8 -0
- package/dist/http/paramcoders/IParamReader.js +2 -0
- package/dist/http/paramcoders/ParamDecoder.d.ts +44 -0
- package/dist/http/paramcoders/ParamDecoder.js +132 -0
- package/dist/http/paramcoders/ParamEncoder.d.ts +20 -0
- package/dist/http/paramcoders/ParamEncoder.js +31 -0
- package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -0
- package/dist/http/paramcoders/SchemaVerifier.js +145 -0
- package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -0
- package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -0
- package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -0
- package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -0
- package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -0
- package/dist/http/paramcoders/client/StreamingFetchPromise.js +174 -0
- package/dist/index.d.ts +82 -4
- package/dist/index.js +128 -4
- package/dist/intermediaries/Intermediary.d.ts +111 -0
- package/dist/intermediaries/Intermediary.js +115 -0
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +166 -0
- package/dist/intermediaries/IntermediaryDiscovery.js +390 -0
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +436 -0
- package/dist/intermediaries/apis/IntermediaryAPI.js +600 -0
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +154 -0
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +136 -0
- package/dist/lnurl/LNURL.d.ts +102 -0
- package/dist/lnurl/LNURL.js +321 -0
- package/dist/prices/RedundantSwapPrice.d.ts +89 -0
- package/dist/prices/RedundantSwapPrice.js +202 -0
- package/dist/prices/SingleSwapPrice.d.ts +31 -0
- package/dist/prices/SingleSwapPrice.js +41 -0
- package/dist/prices/SwapPriceWithChain.d.ts +70 -0
- package/dist/prices/SwapPriceWithChain.js +91 -0
- package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -0
- package/dist/prices/abstract/ICachedSwapPrice.js +62 -0
- package/dist/prices/abstract/IPriceProvider.d.ts +81 -0
- package/dist/prices/abstract/IPriceProvider.js +74 -0
- package/dist/prices/abstract/ISwapPrice.d.ts +117 -0
- package/dist/prices/abstract/ISwapPrice.js +219 -0
- package/dist/prices/providers/BinancePriceProvider.d.ts +16 -0
- package/dist/prices/providers/BinancePriceProvider.js +23 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +17 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.js +23 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +19 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +23 -0
- package/dist/prices/providers/CustomPriceProvider.d.ts +13 -0
- package/dist/prices/providers/CustomPriceProvider.js +24 -0
- package/dist/prices/providers/KrakenPriceProvider.d.ts +29 -0
- package/dist/prices/providers/KrakenPriceProvider.js +36 -0
- package/dist/prices/providers/OKXPriceProvider.d.ts +28 -0
- package/dist/prices/providers/OKXPriceProvider.js +23 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +14 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +18 -0
- package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -0
- package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -0
- package/dist/storage/IUnifiedStorage.d.ts +73 -0
- package/dist/storage/IUnifiedStorage.js +2 -0
- package/dist/storage/UnifiedSwapStorage.d.ts +82 -0
- package/dist/storage/UnifiedSwapStorage.js +83 -0
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +39 -0
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +275 -0
- package/dist/{storage → storage-browser}/LocalStorageManager.d.ts +1 -0
- package/dist/{storage → storage-browser}/LocalStorageManager.js +2 -1
- package/dist/swapper/Swapper.d.ts +533 -0
- package/dist/swapper/Swapper.js +1566 -0
- package/dist/swapper/SwapperFactory.d.ts +87 -0
- package/dist/{SwapperFactory.js → swapper/SwapperFactory.js} +40 -22
- package/dist/swapper/SwapperUtils.d.ts +153 -0
- package/dist/swapper/SwapperUtils.js +420 -0
- package/dist/swapper/SwapperWithChain.d.ts +214 -0
- package/dist/swapper/SwapperWithChain.js +315 -0
- package/dist/swapper/SwapperWithSigner.d.ts +178 -0
- package/dist/swapper/SwapperWithSigner.js +172 -0
- package/dist/swaps/IAddressSwap.d.ts +13 -0
- package/dist/swaps/IAddressSwap.js +13 -0
- package/dist/swaps/IBTCWalletSwap.d.ts +55 -0
- package/dist/swaps/IBTCWalletSwap.js +17 -0
- package/dist/swaps/IClaimableSwap.d.ts +17 -0
- package/dist/swaps/IClaimableSwap.js +14 -0
- package/dist/swaps/IClaimableSwapWrapper.d.ts +5 -0
- package/dist/swaps/IClaimableSwapWrapper.js +2 -0
- package/dist/swaps/IRefundableSwap.d.ts +17 -0
- package/dist/swaps/IRefundableSwap.js +13 -0
- package/dist/swaps/ISwap.d.ts +207 -0
- package/dist/swaps/ISwap.js +264 -0
- package/dist/swaps/ISwapWithGasDrop.d.ts +15 -0
- package/dist/swaps/ISwapWithGasDrop.js +11 -0
- package/dist/swaps/ISwapWrapper.d.ts +153 -0
- package/dist/swaps/ISwapWrapper.js +227 -0
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +53 -0
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +116 -0
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +70 -0
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +132 -0
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +85 -0
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +122 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +86 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +115 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +93 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +121 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +45 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +65 -0
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +263 -0
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +933 -0
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +110 -0
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +307 -0
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +236 -0
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +898 -0
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +125 -0
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +393 -0
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +245 -0
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +841 -0
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +120 -0
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +294 -0
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +228 -0
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +721 -0
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +37 -0
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +93 -0
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +86 -0
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +213 -0
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +170 -0
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +520 -0
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +50 -0
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +109 -0
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +93 -0
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +217 -0
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +315 -0
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1098 -0
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +125 -0
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +631 -0
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +107 -0
- package/dist/swaps/trusted/ln/LnForGasSwap.js +343 -0
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +21 -0
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +62 -0
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +164 -0
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +520 -0
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +48 -0
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +74 -0
- package/dist/types/AmountData.d.ts +9 -0
- package/dist/types/AmountData.js +2 -0
- package/dist/types/CustomPriceFunction.d.ts +5 -0
- package/dist/types/CustomPriceFunction.js +2 -0
- package/dist/types/PriceInfoType.d.ts +28 -0
- package/dist/types/PriceInfoType.js +57 -0
- package/dist/types/SwapExecutionAction.d.ts +7 -0
- package/dist/types/SwapExecutionAction.js +2 -0
- package/dist/types/SwapWithSigner.d.ts +14 -0
- package/dist/types/SwapWithSigner.js +40 -0
- package/dist/types/Token.d.ts +53 -0
- package/dist/types/Token.js +58 -0
- package/dist/types/TokenAmount.d.ts +57 -0
- package/dist/types/TokenAmount.js +47 -0
- package/dist/types/fees/Fee.d.ts +49 -0
- package/dist/types/fees/Fee.js +2 -0
- package/dist/types/fees/FeeBreakdown.d.ts +10 -0
- package/dist/types/fees/FeeBreakdown.js +2 -0
- package/dist/types/fees/PercentagePPM.d.ts +15 -0
- package/dist/types/fees/PercentagePPM.js +17 -0
- package/dist/types/lnurl/LNURLPay.d.ts +54 -0
- package/dist/types/lnurl/LNURLPay.js +28 -0
- package/dist/types/lnurl/LNURLWithdraw.d.ts +42 -0
- package/dist/types/lnurl/LNURLWithdraw.js +24 -0
- package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -0
- package/dist/utils/AutomaticClockDriftCorrection.js +70 -0
- package/dist/utils/BitcoinUtils.d.ts +13 -0
- package/dist/utils/BitcoinUtils.js +98 -0
- package/dist/utils/BitcoinWalletUtils.d.ts +7 -0
- package/dist/utils/BitcoinWalletUtils.js +14 -0
- package/dist/utils/Logger.d.ts +7 -0
- package/dist/utils/Logger.js +12 -0
- package/dist/utils/RetryUtils.d.ts +21 -0
- package/dist/utils/RetryUtils.js +66 -0
- package/dist/utils/SwapUtils.d.ts +31 -0
- package/dist/utils/SwapUtils.js +18 -0
- package/dist/{Utils.d.ts → utils/TimeoutUtils.d.ts} +9 -3
- package/dist/utils/TimeoutUtils.js +55 -0
- package/dist/utils/TokenUtils.d.ts +11 -0
- package/dist/utils/TokenUtils.js +29 -0
- package/dist/utils/TypeUtils.d.ts +7 -0
- package/dist/utils/TypeUtils.js +2 -0
- package/dist/utils/Utils.d.ts +57 -0
- package/dist/utils/Utils.js +178 -0
- package/package.json +14 -6
- package/src/SmartChainAssets.ts +11 -3
- package/src/bitcoin/BitcoinRpcWithAddressIndex.ts +87 -0
- package/src/bitcoin/LightningNetworkApi.ts +16 -0
- package/src/bitcoin/coinselect2/accumulative.ts +68 -0
- package/src/bitcoin/coinselect2/blackjack.ts +49 -0
- package/src/bitcoin/coinselect2/index.ts +92 -0
- package/src/bitcoin/coinselect2/utils.ts +189 -0
- package/src/bitcoin/mempool/MempoolApi.ts +554 -0
- package/src/bitcoin/mempool/MempoolBitcoinBlock.ts +88 -0
- package/src/bitcoin/mempool/MempoolBitcoinRpc.ts +437 -0
- package/src/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.ts +134 -0
- package/src/bitcoin/wallet/BitcoinWallet.ts +375 -0
- package/src/bitcoin/wallet/IBitcoinWallet.ts +44 -0
- package/src/bitcoin/wallet/MinimalBitcoinWalletInterface.ts +19 -0
- package/src/bitcoin/wallet/MinimalLightningNetworkWalletInterface.ts +7 -0
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +108 -0
- package/src/enums/FeeType.ts +9 -0
- package/src/enums/SwapAmountType.ts +9 -0
- package/src/enums/SwapDirection.ts +9 -0
- package/src/enums/SwapType.ts +15 -0
- package/src/errors/IntermediaryError.ts +24 -0
- package/src/errors/PaymentAuthError.ts +26 -0
- package/src/errors/RequestError.ts +51 -0
- package/src/errors/UserError.ts +14 -0
- package/src/events/UnifiedSwapEventListener.ts +171 -0
- package/src/http/HttpUtils.ts +92 -0
- package/src/http/paramcoders/IParamReader.ts +10 -0
- package/src/http/paramcoders/ParamDecoder.ts +142 -0
- package/src/http/paramcoders/ParamEncoder.ts +37 -0
- package/src/http/paramcoders/SchemaVerifier.ts +153 -0
- package/src/http/paramcoders/client/ResponseParamDecoder.ts +58 -0
- package/src/http/paramcoders/client/StreamParamEncoder.ts +29 -0
- package/src/http/paramcoders/client/StreamingFetchPromise.ts +193 -0
- package/src/index.ts +102 -4
- package/src/intermediaries/Intermediary.ts +204 -0
- package/src/intermediaries/IntermediaryDiscovery.ts +485 -0
- package/src/intermediaries/apis/IntermediaryAPI.ts +940 -0
- package/src/intermediaries/apis/TrustedIntermediaryAPI.ts +257 -0
- package/src/lnurl/LNURL.ts +403 -0
- package/src/prices/RedundantSwapPrice.ts +245 -0
- package/src/prices/SingleSwapPrice.ts +47 -0
- package/src/prices/SwapPriceWithChain.ts +157 -0
- package/src/prices/abstract/ICachedSwapPrice.ts +86 -0
- package/src/prices/abstract/IPriceProvider.ts +128 -0
- package/src/prices/abstract/ISwapPrice.ts +328 -0
- package/src/prices/providers/BinancePriceProvider.ts +41 -0
- package/src/prices/providers/CoinGeckoPriceProvider.ts +40 -0
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +44 -0
- package/src/prices/providers/CustomPriceProvider.ts +29 -0
- package/src/prices/providers/KrakenPriceProvider.ts +74 -0
- package/src/prices/providers/OKXPriceProvider.ts +53 -0
- package/src/prices/providers/abstract/ExchangePriceProvider.ts +29 -0
- package/src/prices/providers/abstract/HttpPriceProvider.ts +15 -0
- package/src/storage/IUnifiedStorage.ts +83 -0
- package/src/storage/UnifiedSwapStorage.ts +104 -0
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +328 -0
- package/src/{storage → storage-browser}/LocalStorageManager.ts +2 -1
- package/src/swapper/Swapper.ts +2107 -0
- package/src/{SwapperFactory.ts → swapper/SwapperFactory.ts} +116 -75
- package/src/swapper/SwapperUtils.ts +510 -0
- package/src/swapper/SwapperWithChain.ts +464 -0
- package/src/swapper/SwapperWithSigner.ts +300 -0
- package/src/swaps/IAddressSwap.ts +20 -0
- package/src/swaps/IBTCWalletSwap.ts +77 -0
- package/src/swaps/IClaimableSwap.ts +30 -0
- package/src/swaps/IClaimableSwapWrapper.ts +9 -0
- package/src/swaps/IRefundableSwap.ts +29 -0
- package/src/swaps/ISwap.ts +490 -0
- package/src/swaps/ISwapWithGasDrop.ts +19 -0
- package/src/swaps/ISwapWrapper.ts +344 -0
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +168 -0
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +197 -0
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +210 -0
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +150 -0
- package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +219 -0
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +84 -0
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +1082 -0
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +429 -0
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1078 -0
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +549 -0
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +974 -0
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +443 -0
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +860 -0
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +104 -0
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +256 -0
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +716 -0
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +151 -0
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +299 -0
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +1394 -0
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +796 -0
- package/src/swaps/trusted/ln/LnForGasSwap.ts +402 -0
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +70 -0
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +633 -0
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +110 -0
- package/src/types/AmountData.ts +9 -0
- package/src/types/CustomPriceFunction.ts +5 -0
- package/src/types/PriceInfoType.ts +67 -0
- package/src/types/SwapExecutionAction.ts +8 -0
- package/src/types/SwapWithSigner.ts +57 -0
- package/src/types/Token.ts +90 -0
- package/src/types/TokenAmount.ts +110 -0
- package/src/types/fees/Fee.ts +55 -0
- package/src/types/fees/FeeBreakdown.ts +11 -0
- package/src/types/fees/PercentagePPM.ts +24 -0
- package/src/types/lnurl/LNURLPay.ts +72 -0
- package/src/types/lnurl/LNURLWithdraw.ts +55 -0
- package/src/utils/AutomaticClockDriftCorrection.ts +71 -0
- package/src/utils/BitcoinUtils.ts +86 -0
- package/src/utils/BitcoinWalletUtils.ts +16 -0
- package/src/utils/Logger.ts +15 -0
- package/src/utils/RetryUtils.ts +71 -0
- package/src/utils/SwapUtils.ts +38 -0
- package/src/utils/TimeoutUtils.ts +50 -0
- package/src/utils/TokenUtils.ts +25 -0
- package/src/utils/TypeUtils.ts +9 -0
- package/src/utils/Utils.ts +182 -0
- package/dist/SwapperFactory.d.ts +0 -52
- package/dist/Utils.js +0 -37
- package/dist/fs-storage/FileSystemStorageManager.d.ts +0 -15
- package/dist/fs-storage/FileSystemStorageManager.js +0 -60
- package/dist/fs-storage/index.d.ts +0 -1
- package/dist/fs-storage/index.js +0 -17
- package/src/SmartChainAssets.js +0 -75
- package/src/SwapperFactory.js +0 -120
- package/src/Utils.js +0 -37
- package/src/Utils.ts +0 -31
- package/src/fs-storage/FileSystemStorageManager.ts +0 -71
- package/src/fs-storage/index.ts +0 -1
- package/src/index.js +0 -21
- package/src/storage/LocalStorageManager.js +0 -72
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import {IntermediaryDiscovery, SwapBounds} from "../intermediaries/IntermediaryDiscovery";
|
|
2
|
+
import {SwapType} from "../enums/SwapType";
|
|
3
|
+
import {LnForGasSwap} from "../swaps/trusted/ln/LnForGasSwap";
|
|
4
|
+
import {ISwap} from "../swaps/ISwap";
|
|
5
|
+
import {IToBTCSwap} from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
|
|
6
|
+
import {ChainIds, MultiChain, SupportsSwapType} from "./Swapper";
|
|
7
|
+
import {FromBTCLNSwap} from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
|
|
8
|
+
import {FromBTCSwap} from "../swaps/escrow_swaps/frombtc/onchain/FromBTCSwap";
|
|
9
|
+
import {ToBTCLNSwap} from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap";
|
|
10
|
+
import {ToBTCSwap} from "../swaps/escrow_swaps/tobtc/onchain/ToBTCSwap";
|
|
11
|
+
import {SwapPriceWithChain} from "../prices/SwapPriceWithChain";
|
|
12
|
+
import {MempoolApi} from "../bitcoin/mempool/MempoolApi";
|
|
13
|
+
import {MempoolBitcoinRpc} from "../bitcoin/mempool/MempoolBitcoinRpc";
|
|
14
|
+
import {BTC_NETWORK} from "@scure/btc-signer/utils";
|
|
15
|
+
import {ToBTCOptions} from "../swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
|
|
16
|
+
import {ToBTCLNOptions} from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
|
|
17
|
+
import {FromBTCOptions} from "../swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
|
|
18
|
+
import {FromBTCLNOptions} from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
|
|
19
|
+
import {SwapperUtils} from "./SwapperUtils";
|
|
20
|
+
import {SpvFromBTCSwap} from "../swaps/spv_swaps/SpvFromBTCSwap";
|
|
21
|
+
import {SwapperWithChain} from "./SwapperWithChain";
|
|
22
|
+
import {SwapWithSigner, wrapSwapWithSigner} from "../types/SwapWithSigner";
|
|
23
|
+
import {OnchainForGasSwap} from "../swaps/trusted/onchain/OnchainForGasSwap";
|
|
24
|
+
import {FromBTCLNAutoSwap} from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
|
|
25
|
+
import {FromBTCLNAutoOptions} from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper";
|
|
26
|
+
import {TokenAmount} from "../types/TokenAmount";
|
|
27
|
+
import {BtcToken, SCToken, Token} from "../types/Token";
|
|
28
|
+
import {LNURLWithdraw} from "../types/lnurl/LNURLWithdraw";
|
|
29
|
+
import {LNURLPay} from "../types/lnurl/LNURLPay";
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Chain and signer-specific wrapper for automatic signer injection into swap methods
|
|
33
|
+
* @category Core
|
|
34
|
+
*/
|
|
35
|
+
export class SwapperWithSigner<T extends MultiChain, ChainIdentifier extends ChainIds<T>> {
|
|
36
|
+
|
|
37
|
+
readonly chainIdentifier: ChainIdentifier;
|
|
38
|
+
readonly swapper: SwapperWithChain<T, ChainIdentifier>;
|
|
39
|
+
readonly signer: T[ChainIdentifier]["Signer"];
|
|
40
|
+
|
|
41
|
+
get prices(): SwapPriceWithChain<T, ChainIdentifier> {
|
|
42
|
+
return this.swapper.prices;
|
|
43
|
+
}
|
|
44
|
+
get intermediaryDiscovery(): IntermediaryDiscovery {
|
|
45
|
+
return this.swapper.intermediaryDiscovery;
|
|
46
|
+
}
|
|
47
|
+
get mempoolApi(): MempoolApi {
|
|
48
|
+
return this.swapper.mempoolApi;
|
|
49
|
+
}
|
|
50
|
+
get bitcoinRpc(): MempoolBitcoinRpc {
|
|
51
|
+
return this.swapper.bitcoinRpc;
|
|
52
|
+
}
|
|
53
|
+
get bitcoinNetwork(): BTC_NETWORK {
|
|
54
|
+
return this.swapper.bitcoinNetwork;
|
|
55
|
+
}
|
|
56
|
+
get Utils(): SwapperUtils<T> {
|
|
57
|
+
return this.swapper.Utils;
|
|
58
|
+
}
|
|
59
|
+
get SwapTypeInfo() {
|
|
60
|
+
return this.swapper.SwapTypeInfo;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
constructor(swapper: SwapperWithChain<T, ChainIdentifier>, signer: T[ChainIdentifier]["Signer"]) {
|
|
64
|
+
this.swapper = swapper;
|
|
65
|
+
this.signer = signer;
|
|
66
|
+
this.chainIdentifier = swapper.chainIdentifier;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
createToBTCSwap(
|
|
70
|
+
tokenAddress: string,
|
|
71
|
+
address: string,
|
|
72
|
+
amount: bigint,
|
|
73
|
+
exactIn?: boolean,
|
|
74
|
+
additionalParams?: Record<string, any>,
|
|
75
|
+
options?: ToBTCOptions
|
|
76
|
+
): Promise<SwapWithSigner<ToBTCSwap<T[ChainIdentifier]>>> {
|
|
77
|
+
return this.swapper.createToBTCSwap(this.signer.getAddress(), tokenAddress, address, amount, exactIn, additionalParams, options)
|
|
78
|
+
.then(swap => wrapSwapWithSigner(swap, this.signer));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
createToBTCLNSwap(
|
|
82
|
+
tokenAddress: string,
|
|
83
|
+
paymentRequest: string,
|
|
84
|
+
additionalParams?: Record<string, any>,
|
|
85
|
+
options?: ToBTCLNOptions & {comment?: string}
|
|
86
|
+
): Promise<SwapWithSigner<ToBTCLNSwap<T[ChainIdentifier]>>> {
|
|
87
|
+
return this.swapper.createToBTCLNSwap(this.signer.getAddress(), tokenAddress, paymentRequest, additionalParams, options)
|
|
88
|
+
.then(swap => wrapSwapWithSigner(swap, this.signer));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
createToBTCLNSwapViaLNURL(
|
|
92
|
+
tokenAddress: string,
|
|
93
|
+
lnurlPay: string | LNURLPay,
|
|
94
|
+
amount: bigint,
|
|
95
|
+
exactIn?: boolean,
|
|
96
|
+
additionalParams?: Record<string, any>,
|
|
97
|
+
options?: ToBTCLNOptions
|
|
98
|
+
): Promise<SwapWithSigner<ToBTCLNSwap<T[ChainIdentifier]>>> {
|
|
99
|
+
return this.swapper.createToBTCLNSwapViaLNURL(this.signer.getAddress(), tokenAddress, lnurlPay, amount, exactIn, additionalParams, options)
|
|
100
|
+
.then(swap => wrapSwapWithSigner(swap, this.signer));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
createFromBTCSwap(
|
|
104
|
+
tokenAddress: string,
|
|
105
|
+
amount: bigint,
|
|
106
|
+
exactOut?: boolean,
|
|
107
|
+
additionalParams?: Record<string, any>,
|
|
108
|
+
options?: FromBTCOptions
|
|
109
|
+
): Promise<SwapWithSigner<FromBTCSwap<T[ChainIdentifier]>>> {
|
|
110
|
+
return this.swapper.createFromBTCSwap(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
|
|
111
|
+
.then(swap => wrapSwapWithSigner(swap, this.signer));
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
createFromBTCLNSwap(
|
|
115
|
+
tokenAddress: string,
|
|
116
|
+
amount: bigint,
|
|
117
|
+
exactOut?: boolean,
|
|
118
|
+
additionalParams?: Record<string, any>,
|
|
119
|
+
options?: FromBTCLNOptions
|
|
120
|
+
): Promise<SwapWithSigner<FromBTCLNSwap<T[ChainIdentifier]>>> {
|
|
121
|
+
return this.swapper.createFromBTCLNSwap(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
|
|
122
|
+
.then(swap => wrapSwapWithSigner(swap, this.signer));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
createFromBTCLNSwapViaLNURL(
|
|
126
|
+
tokenAddress: string,
|
|
127
|
+
lnurl: string | LNURLWithdraw,
|
|
128
|
+
amount: bigint,
|
|
129
|
+
exactOut?: boolean,
|
|
130
|
+
additionalParams?: Record<string, any>
|
|
131
|
+
): Promise<SwapWithSigner<FromBTCLNSwap<T[ChainIdentifier]>>> {
|
|
132
|
+
return this.swapper.createFromBTCLNSwapViaLNURL(this.signer.getAddress(), tokenAddress, lnurl, amount, exactOut, additionalParams)
|
|
133
|
+
.then(swap => wrapSwapWithSigner(swap, this.signer));
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
createFromBTCLNSwapNew(
|
|
137
|
+
tokenAddress: string,
|
|
138
|
+
amount: bigint,
|
|
139
|
+
exactOut?: boolean,
|
|
140
|
+
additionalParams?: Record<string, any>,
|
|
141
|
+
options?: FromBTCLNAutoOptions
|
|
142
|
+
): Promise<SwapWithSigner<FromBTCLNAutoSwap<T[ChainIdentifier]>>> {
|
|
143
|
+
return this.swapper.createFromBTCLNSwapNew(this.signer.getAddress(), tokenAddress, amount, exactOut, additionalParams, options)
|
|
144
|
+
.then(swap => wrapSwapWithSigner(swap, this.signer));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
createFromBTCLNSwapNewViaLNURL(
|
|
148
|
+
tokenAddress: string,
|
|
149
|
+
lnurl: string | LNURLWithdraw,
|
|
150
|
+
amount: bigint,
|
|
151
|
+
exactOut?: boolean,
|
|
152
|
+
additionalParams?: Record<string, any>,
|
|
153
|
+
options?: FromBTCLNAutoOptions
|
|
154
|
+
): Promise<SwapWithSigner<FromBTCLNAutoSwap<T[ChainIdentifier]>>> {
|
|
155
|
+
return this.swapper.createFromBTCLNSwapNewViaLNURL(this.signer.getAddress(), tokenAddress, lnurl, amount, exactOut, additionalParams, options)
|
|
156
|
+
.then(swap => wrapSwapWithSigner(swap, this.signer));
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
createTrustedLNForGasSwap(amount: bigint, trustedIntermediaryUrl?: string): Promise<LnForGasSwap<T[ChainIdentifier]>> {
|
|
160
|
+
return this.swapper.createTrustedLNForGasSwap(this.signer.getAddress(), amount, trustedIntermediaryUrl);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
createTrustedOnchainForGasSwap(amount: bigint, refundAddress?: string, trustedIntermediaryUrl?: string): Promise<OnchainForGasSwap<T[ChainIdentifier]>> {
|
|
164
|
+
return this.swapper.createTrustedOnchainForGasSwap(this.signer.getAddress(), amount, refundAddress, trustedIntermediaryUrl);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
create(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean, lnurlWithdraw?: string | LNURLWithdraw): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>)>;
|
|
168
|
+
create(srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>, amount: bigint, exactIn: boolean): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
|
|
169
|
+
create(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[ChainIdentifier]>>;
|
|
170
|
+
create(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
171
|
+
create(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: false, lightningInvoice: string | LNURLWithdraw | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
172
|
+
/**
|
|
173
|
+
* Creates a swap from srcToken to dstToken, of a specific token amount, either specifying input amount (exactIn=true)
|
|
174
|
+
* or output amount (exactIn=false), NOTE: For regular -> BTC-LN (lightning) swaps the passed amount is ignored and
|
|
175
|
+
* invoice's pre-set amount is used instead.
|
|
176
|
+
*
|
|
177
|
+
* @param srcToken Source token of the swap, user pays this token
|
|
178
|
+
* @param dstToken Destination token of the swap, user receives this token
|
|
179
|
+
* @param amount Amount of the swap
|
|
180
|
+
* @param exactIn Whether the amount specified is an input amount (exactIn=true) or an output amount (exactIn=false)
|
|
181
|
+
* @param addressLnurlLightningInvoice Bitcoin on-chain address, lightning invoice, LNURL-pay to pay or
|
|
182
|
+
* LNURL-withdrawal to withdraw money from
|
|
183
|
+
*/
|
|
184
|
+
create(srcToken: Token<ChainIdentifier>, dstToken: Token<ChainIdentifier>, amount: bigint, exactIn: boolean, addressLnurlLightningInvoice?: string | LNURLWithdraw | LNURLPay): Promise<SwapWithSigner<ISwap<T[ChainIdentifier]>>> {
|
|
185
|
+
return this.swapper.create(this.signer.getAddress(), srcToken as any, dstToken as any, amount, exactIn, addressLnurlLightningInvoice as any)
|
|
186
|
+
.then(swap => wrapSwapWithSigner(swap, this.signer));
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
|
|
191
|
+
*/
|
|
192
|
+
getAllSwaps(): Promise<ISwap<T[ChainIdentifier]>[]> {
|
|
193
|
+
return this.swapper.getAllSwaps(this.signer.getAddress());
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
|
|
198
|
+
*/
|
|
199
|
+
getActionableSwaps(): Promise<ISwap<T[ChainIdentifier]>[]> {
|
|
200
|
+
return this.swapper.getActionableSwaps(this.signer.getAddress());
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Returns swaps that are refundable for the specific chain, optionally also for a specific signer's address
|
|
205
|
+
*/
|
|
206
|
+
getRefundableSwaps(): Promise<IToBTCSwap<T[ChainIdentifier]>[]> {
|
|
207
|
+
return this.swapper.getRefundableSwaps(this.signer.getAddress());
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
|
|
212
|
+
*/
|
|
213
|
+
getSwapById(id: string): Promise<ISwap<T[ChainIdentifier]>> {
|
|
214
|
+
return this.swapper.getSwapById(id, this.signer.getAddress());
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Synchronizes swaps from chain, this is usually ran when SDK is initialized, deletes expired quotes
|
|
219
|
+
*/
|
|
220
|
+
async _syncSwaps(): Promise<void> {
|
|
221
|
+
return this.swapper._syncSwaps(this.signer.getAddress());
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
supportsSwapType<
|
|
225
|
+
Type extends SwapType
|
|
226
|
+
>(swapType: Type): SupportsSwapType<T[ChainIdentifier], Type> {
|
|
227
|
+
return this.swapper.supportsSwapType(swapType);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Returns type of the swap based on input and output tokens specified
|
|
232
|
+
*
|
|
233
|
+
* @param srcToken
|
|
234
|
+
* @param dstToken
|
|
235
|
+
*/
|
|
236
|
+
getSwapType(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
|
|
237
|
+
getSwapType(srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SwapType.SPV_VAULT_FROM_BTC : SwapType.FROM_BTC);
|
|
238
|
+
getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>): SwapType.TO_BTC;
|
|
239
|
+
getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
|
|
240
|
+
getSwapType(srcToken: Token<ChainIdentifier>, dstToken: Token<ChainIdentifier>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN;
|
|
241
|
+
getSwapType(srcToken: Token<ChainIdentifier>, dstToken: Token<ChainIdentifier>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN {
|
|
242
|
+
return this.swapper.getSwapType(srcToken, dstToken);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
|
|
247
|
+
*
|
|
248
|
+
* @param srcToken
|
|
249
|
+
* @param dstToken
|
|
250
|
+
*/
|
|
251
|
+
getSwapLimits<A extends Token<ChainIdentifier>, B extends Token<ChainIdentifier>>(srcToken: A, dstToken: B): {
|
|
252
|
+
input: {min: TokenAmount<string, A>, max?: TokenAmount<string, A>},
|
|
253
|
+
output: {min: TokenAmount<string, B>, max?: TokenAmount<string, B>}
|
|
254
|
+
} {
|
|
255
|
+
return this.swapper.getSwapLimits<A, B>(srcToken, dstToken);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Returns tokens that you can swap to (if input=true) from a given token,
|
|
260
|
+
* or tokens that you can swap from (if input=false) to a given token
|
|
261
|
+
*/
|
|
262
|
+
getSwapCounterTokens(token: Token, input: boolean): Token<ChainIdentifier>[] {
|
|
263
|
+
return this.swapper.getSwapCounterTokens(token, input);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
///////////////////////////////////
|
|
268
|
+
/// Deprecated
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Returns swap bounds (minimums & maximums) for different swap types & tokens
|
|
272
|
+
* @deprecated Use getSwapLimits() instead!
|
|
273
|
+
*/
|
|
274
|
+
getSwapBounds(): SwapBounds {
|
|
275
|
+
return this.swapper.getSwapBounds();
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Returns maximum possible swap amount
|
|
280
|
+
* @deprecated Use getSwapLimits() instead!
|
|
281
|
+
*
|
|
282
|
+
* @param type Type of the swap
|
|
283
|
+
* @param token Token of the swap
|
|
284
|
+
*/
|
|
285
|
+
getMaximum(type: SwapType, token: string): bigint {
|
|
286
|
+
return this.swapper.getMaximum(type, token);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Returns minimum possible swap amount
|
|
291
|
+
* @deprecated Use getSwapLimits() instead!
|
|
292
|
+
*
|
|
293
|
+
* @param type Type of swap
|
|
294
|
+
* @param token Token of the swap
|
|
295
|
+
*/
|
|
296
|
+
getMinimum(type: SwapType, token: string): bigint {
|
|
297
|
+
return this.swapper.getMinimum(type, token);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guard to check if an object is an IAddressSwap
|
|
3
|
+
* @category Swaps
|
|
4
|
+
*/
|
|
5
|
+
export function isIAddressSwap(obj: any): obj is IAddressSwap {
|
|
6
|
+
return obj!=null &&
|
|
7
|
+
typeof(obj.getAddress) === "function" &&
|
|
8
|
+
typeof(obj.getHyperlink) === "function";
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Interface for swaps which require a user to send funds to a specific address
|
|
13
|
+
* @category Swaps
|
|
14
|
+
*/
|
|
15
|
+
export interface IAddressSwap {
|
|
16
|
+
|
|
17
|
+
getAddress(): string;
|
|
18
|
+
getHyperlink(): string;
|
|
19
|
+
|
|
20
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import {IBitcoinWallet} from "../bitcoin/wallet/IBitcoinWallet";
|
|
2
|
+
import {Transaction} from "@scure/btc-signer";
|
|
3
|
+
import {
|
|
4
|
+
MinimalBitcoinWalletInterface,
|
|
5
|
+
MinimalBitcoinWalletInterfaceWithSigner
|
|
6
|
+
} from "../bitcoin/wallet/MinimalBitcoinWalletInterface";
|
|
7
|
+
import {TokenAmount} from "../types/TokenAmount";
|
|
8
|
+
import {BtcToken} from "../types/Token";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Type guard to check if an object is an IBTCWalletSwap
|
|
12
|
+
* @category Swaps
|
|
13
|
+
*/
|
|
14
|
+
export function isIBTCWalletSwap(obj: any): obj is IBTCWalletSwap {
|
|
15
|
+
return obj!=null &&
|
|
16
|
+
typeof(obj.getFundedPsbt) === "function" &&
|
|
17
|
+
typeof(obj.submitPsbt) === "function" &&
|
|
18
|
+
typeof(obj.estimateBitcoinFee) === "function" &&
|
|
19
|
+
typeof(obj.sendBitcoinTransaction) === "function" &&
|
|
20
|
+
typeof(obj.waitForBitcoinTransaction) === "function" &&
|
|
21
|
+
typeof(obj.getRequiredConfirmationsCount) === "function";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Interface for swaps requiring Bitcoin wallet interaction
|
|
26
|
+
* @category Swaps
|
|
27
|
+
*/
|
|
28
|
+
export interface IBTCWalletSwap {
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Returns the PSBT that is already funded with wallet's UTXOs (runs a coin-selection algorithm to choose UTXOs to use),
|
|
32
|
+
* also returns inputs indices that need to be signed by the wallet before submitting the PSBT back to the SDK with
|
|
33
|
+
* `swap.submitPsbt()`
|
|
34
|
+
*
|
|
35
|
+
* @param _bitcoinWallet Sender's bitcoin wallet
|
|
36
|
+
* @param feeRate Optional fee rate for the transaction, needs to be at least as big as {minimumBtcFeeRate} field
|
|
37
|
+
* @param additionalOutputs additional outputs to add to the PSBT - can be used to collect fees from users
|
|
38
|
+
*/
|
|
39
|
+
getFundedPsbt(
|
|
40
|
+
_bitcoinWallet: IBitcoinWallet | MinimalBitcoinWalletInterface,
|
|
41
|
+
feeRate?: number,
|
|
42
|
+
additionalOutputs?: ({amount: bigint, outputScript: Uint8Array} | {amount: bigint, address: string})[]
|
|
43
|
+
): Promise<{psbt: Transaction, psbtHex: string, psbtBase64: string, signInputs: number[]}>;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Submits a PSBT signed by the wallet back to the SDK
|
|
47
|
+
*
|
|
48
|
+
* @param psbt A psbt - either a Transaction object or a hex or base64 encoded PSBT string
|
|
49
|
+
*/
|
|
50
|
+
submitPsbt(psbt: Transaction | string): Promise<string>;
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
estimateBitcoinFee(wallet: IBitcoinWallet | MinimalBitcoinWalletInterface, feeRate?: number): Promise<TokenAmount<any, BtcToken<false>> | null>;
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
sendBitcoinTransaction(
|
|
57
|
+
wallet: IBitcoinWallet | MinimalBitcoinWalletInterfaceWithSigner,
|
|
58
|
+
feeRate?: number
|
|
59
|
+
): Promise<string>;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Waits till the bitcoin transaction confirms
|
|
63
|
+
*
|
|
64
|
+
* @param updateCallback Callback called when txId is found, and also called with subsequent confirmations
|
|
65
|
+
* @param checkIntervalSeconds How often to check the bitcoin transaction
|
|
66
|
+
* @param abortSignal Abort signal
|
|
67
|
+
* @throws {Error} if in invalid state (must be CLAIM_COMMITED)
|
|
68
|
+
*/
|
|
69
|
+
waitForBitcoinTransaction(
|
|
70
|
+
updateCallback?: (txId?: string, confirmations?: number, targetConfirmations?: number, txEtaMs?: number) => void,
|
|
71
|
+
checkIntervalSeconds?: number,
|
|
72
|
+
abortSignal?: AbortSignal,
|
|
73
|
+
): Promise<string>;
|
|
74
|
+
|
|
75
|
+
getRequiredConfirmationsCount(): number;
|
|
76
|
+
|
|
77
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {ChainType} from "@atomiqlabs/base";
|
|
2
|
+
import {ISwap} from "./ISwap";
|
|
3
|
+
import {ISwapWrapper, SwapTypeDefinition} from "./ISwapWrapper";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Type guard to check if an object is an IClaimableSwap
|
|
7
|
+
* @category Swaps
|
|
8
|
+
*/
|
|
9
|
+
export function isIClaimableSwap(obj: any): obj is IClaimableSwap {
|
|
10
|
+
return obj!=null &&
|
|
11
|
+
typeof(obj.isClaimable) === "function" &&
|
|
12
|
+
typeof(obj.txsClaim) === "function" &&
|
|
13
|
+
typeof(obj.claim) === "function";
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Interface for swaps that can be claimed
|
|
18
|
+
* @category Swaps
|
|
19
|
+
*/
|
|
20
|
+
export interface IClaimableSwap<
|
|
21
|
+
T extends ChainType = ChainType,
|
|
22
|
+
D extends SwapTypeDefinition<T, ISwapWrapper<T, D>, IClaimableSwap<T, D, S>> = SwapTypeDefinition<T, ISwapWrapper<T, any>, IClaimableSwap<T, any, any>>,
|
|
23
|
+
S extends number = number
|
|
24
|
+
> extends ISwap<T, D, S> {
|
|
25
|
+
|
|
26
|
+
isClaimable(): boolean;
|
|
27
|
+
txsClaim(_signer?: T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
|
|
28
|
+
claim(_signer?: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal): Promise<string>;
|
|
29
|
+
|
|
30
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {ChainType} from "@atomiqlabs/base";
|
|
2
|
+
import {ISwap} from "./ISwap";
|
|
3
|
+
import {ISwapWrapper, SwapTypeDefinition} from "./ISwapWrapper";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Type guard to check if an object is an IRefundableSwap
|
|
7
|
+
* @category Swaps
|
|
8
|
+
*/
|
|
9
|
+
export function isIRefundableSwap(obj: any): obj is IRefundableSwap {
|
|
10
|
+
return typeof(obj.isRefundable) === "function" &&
|
|
11
|
+
typeof(obj.txsRefund) === "function" &&
|
|
12
|
+
typeof(obj.refund) === "function";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Interface for swaps that can be refunded
|
|
17
|
+
* @category Swaps
|
|
18
|
+
*/
|
|
19
|
+
export interface IRefundableSwap<
|
|
20
|
+
T extends ChainType = ChainType,
|
|
21
|
+
D extends SwapTypeDefinition<T, ISwapWrapper<T, D>, IRefundableSwap<T, D, S>> = SwapTypeDefinition<T, ISwapWrapper<T, any>, IRefundableSwap<T, any, any>>,
|
|
22
|
+
S extends number = number
|
|
23
|
+
> extends ISwap<T, D, S> {
|
|
24
|
+
|
|
25
|
+
isRefundable(): boolean;
|
|
26
|
+
txsRefund(_signer?: T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
|
|
27
|
+
refund(_signer?: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal): Promise<string>;
|
|
28
|
+
|
|
29
|
+
}
|