@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,315 @@
|
|
|
1
|
+
import { ISwap, ISwapInit } from "../ISwap";
|
|
2
|
+
import { ChainType, SpvWithdrawalClaimedState, SpvWithdrawalClosedState, SpvWithdrawalFrontedState } from "@atomiqlabs/base";
|
|
3
|
+
import { SwapType } from "../../enums/SwapType";
|
|
4
|
+
import { SpvFromBTCTypeDefinition, SpvFromBTCWrapper } from "./SpvFromBTCWrapper";
|
|
5
|
+
import { Transaction } from "@scure/btc-signer";
|
|
6
|
+
import { Fee } from "../../types/fees/Fee";
|
|
7
|
+
import { IBitcoinWallet } from "../../bitcoin/wallet/IBitcoinWallet";
|
|
8
|
+
import { IBTCWalletSwap } from "../IBTCWalletSwap";
|
|
9
|
+
import { ISwapWithGasDrop } from "../ISwapWithGasDrop";
|
|
10
|
+
import { MinimalBitcoinWalletInterface, MinimalBitcoinWalletInterfaceWithSigner } from "../../bitcoin/wallet/MinimalBitcoinWalletInterface";
|
|
11
|
+
import { IClaimableSwap } from "../IClaimableSwap";
|
|
12
|
+
import { FeeType } from "../../enums/FeeType";
|
|
13
|
+
import { TokenAmount } from "../../types/TokenAmount";
|
|
14
|
+
import { BtcToken, SCToken } from "../../types/Token";
|
|
15
|
+
import { LoggerType } from "../../utils/Logger";
|
|
16
|
+
import { PriceInfoType } from "../../types/PriceInfoType";
|
|
17
|
+
/**
|
|
18
|
+
* State enum for SPV FromBTC swaps
|
|
19
|
+
* @category Swaps
|
|
20
|
+
*/
|
|
21
|
+
export declare enum SpvFromBTCSwapState {
|
|
22
|
+
CLOSED = -5,
|
|
23
|
+
FAILED = -4,
|
|
24
|
+
DECLINED = -3,
|
|
25
|
+
QUOTE_EXPIRED = -2,
|
|
26
|
+
QUOTE_SOFT_EXPIRED = -1,
|
|
27
|
+
CREATED = 0,
|
|
28
|
+
SIGNED = 1,
|
|
29
|
+
POSTED = 2,
|
|
30
|
+
BROADCASTED = 3,
|
|
31
|
+
FRONTED = 4,
|
|
32
|
+
BTC_TX_CONFIRMED = 5,
|
|
33
|
+
CLAIMED = 6
|
|
34
|
+
}
|
|
35
|
+
export type SpvFromBTCSwapInit = ISwapInit & {
|
|
36
|
+
quoteId: string;
|
|
37
|
+
recipient: string;
|
|
38
|
+
vaultOwner: string;
|
|
39
|
+
vaultId: bigint;
|
|
40
|
+
vaultRequiredConfirmations: number;
|
|
41
|
+
vaultTokenMultipliers: bigint[];
|
|
42
|
+
vaultBtcAddress: string;
|
|
43
|
+
vaultUtxo: string;
|
|
44
|
+
vaultUtxoValue: bigint;
|
|
45
|
+
btcDestinationAddress: string;
|
|
46
|
+
btcAmount: bigint;
|
|
47
|
+
btcAmountSwap: bigint;
|
|
48
|
+
btcAmountGas: bigint;
|
|
49
|
+
minimumBtcFeeRate: number;
|
|
50
|
+
outputTotalSwap: bigint;
|
|
51
|
+
outputSwapToken: string;
|
|
52
|
+
outputTotalGas: bigint;
|
|
53
|
+
outputGasToken: string;
|
|
54
|
+
gasSwapFeeBtc: bigint;
|
|
55
|
+
gasSwapFee: bigint;
|
|
56
|
+
callerFeeShare: bigint;
|
|
57
|
+
frontingFeeShare: bigint;
|
|
58
|
+
executionFeeShare: bigint;
|
|
59
|
+
genesisSmartChainBlockHeight: number;
|
|
60
|
+
gasPricingInfo?: PriceInfoType;
|
|
61
|
+
};
|
|
62
|
+
export declare function isSpvFromBTCSwapInit(obj: any): obj is SpvFromBTCSwapInit;
|
|
63
|
+
export declare class SpvFromBTCSwap<T extends ChainType> extends ISwap<T, SpvFromBTCTypeDefinition<T>> implements IBTCWalletSwap, ISwapWithGasDrop<T>, IClaimableSwap<T, SpvFromBTCTypeDefinition<T>, SpvFromBTCSwapState> {
|
|
64
|
+
readonly TYPE = SwapType.SPV_VAULT_FROM_BTC;
|
|
65
|
+
protected readonly logger: LoggerType;
|
|
66
|
+
readonly quoteId: string;
|
|
67
|
+
readonly recipient: string;
|
|
68
|
+
readonly vaultOwner: string;
|
|
69
|
+
readonly vaultId: bigint;
|
|
70
|
+
readonly vaultRequiredConfirmations: number;
|
|
71
|
+
readonly vaultTokenMultipliers: bigint[];
|
|
72
|
+
readonly vaultBtcAddress: string;
|
|
73
|
+
readonly vaultUtxo: string;
|
|
74
|
+
readonly vaultUtxoValue: bigint;
|
|
75
|
+
readonly btcDestinationAddress: string;
|
|
76
|
+
readonly btcAmount: bigint;
|
|
77
|
+
readonly btcAmountSwap: bigint;
|
|
78
|
+
readonly btcAmountGas: bigint;
|
|
79
|
+
readonly minimumBtcFeeRate: number;
|
|
80
|
+
readonly outputTotalSwap: bigint;
|
|
81
|
+
readonly outputSwapToken: string;
|
|
82
|
+
readonly outputTotalGas: bigint;
|
|
83
|
+
readonly outputGasToken: string;
|
|
84
|
+
readonly gasSwapFeeBtc: bigint;
|
|
85
|
+
readonly gasSwapFee: bigint;
|
|
86
|
+
readonly callerFeeShare: bigint;
|
|
87
|
+
readonly frontingFeeShare: bigint;
|
|
88
|
+
readonly executionFeeShare: bigint;
|
|
89
|
+
readonly genesisSmartChainBlockHeight: number;
|
|
90
|
+
gasPricingInfo?: PriceInfoType;
|
|
91
|
+
senderAddress?: string;
|
|
92
|
+
claimTxId?: string;
|
|
93
|
+
frontTxId?: string;
|
|
94
|
+
data?: T["SpvVaultWithdrawalData"];
|
|
95
|
+
constructor(wrapper: SpvFromBTCWrapper<T>, init: SpvFromBTCSwapInit);
|
|
96
|
+
constructor(wrapper: SpvFromBTCWrapper<T>, obj: any);
|
|
97
|
+
protected upgradeVersion(): void;
|
|
98
|
+
/**
|
|
99
|
+
* In case swapFee in BTC is not supplied it recalculates it based on swap price
|
|
100
|
+
* @protected
|
|
101
|
+
*/
|
|
102
|
+
protected tryCalculateSwapFee(): void;
|
|
103
|
+
refreshPriceData(): Promise<void>;
|
|
104
|
+
_getInitiator(): string;
|
|
105
|
+
_getEscrowHash(): string | null;
|
|
106
|
+
getId(): string;
|
|
107
|
+
getQuoteExpiry(): number;
|
|
108
|
+
verifyQuoteValid(): Promise<boolean>;
|
|
109
|
+
getOutputAddress(): string | null;
|
|
110
|
+
getOutputTxId(): string | null;
|
|
111
|
+
getInputAddress(): string | null;
|
|
112
|
+
getInputTxId(): string | null;
|
|
113
|
+
requiresAction(): boolean;
|
|
114
|
+
isFinished(): boolean;
|
|
115
|
+
isClaimable(): boolean;
|
|
116
|
+
isSuccessful(): boolean;
|
|
117
|
+
isFailed(): boolean;
|
|
118
|
+
isQuoteExpired(): boolean;
|
|
119
|
+
isQuoteSoftExpired(): boolean;
|
|
120
|
+
protected getInputSwapAmountWithoutFee(): bigint;
|
|
121
|
+
protected getInputGasAmountWithoutFee(): bigint;
|
|
122
|
+
protected getInputAmountWithoutFee(): bigint;
|
|
123
|
+
protected getOutputWithoutFee(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>>;
|
|
124
|
+
protected getSwapFee(): Fee<T["ChainId"], BtcToken<false>, SCToken<T["ChainId"]>>;
|
|
125
|
+
protected getWatchtowerFee(): Fee<T["ChainId"], BtcToken<false>, SCToken<T["ChainId"]>>;
|
|
126
|
+
getFee(): Fee<T["ChainId"], BtcToken<false>, SCToken<T["ChainId"]>>;
|
|
127
|
+
getFeeBreakdown(): [
|
|
128
|
+
{
|
|
129
|
+
type: FeeType.SWAP;
|
|
130
|
+
fee: Fee<T["ChainId"], BtcToken<false>, SCToken<T["ChainId"]>>;
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: FeeType.NETWORK_OUTPUT;
|
|
134
|
+
fee: Fee<T["ChainId"], BtcToken<false>, SCToken<T["ChainId"]>>;
|
|
135
|
+
}
|
|
136
|
+
];
|
|
137
|
+
getOutputToken(): SCToken<T["ChainId"]>;
|
|
138
|
+
getOutput(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>>;
|
|
139
|
+
getGasDropOutput(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>>;
|
|
140
|
+
getInputWithoutFee(): TokenAmount<T["ChainId"], BtcToken<false>>;
|
|
141
|
+
getInputToken(): BtcToken<false>;
|
|
142
|
+
getInput(): TokenAmount<T["ChainId"], BtcToken<false>>;
|
|
143
|
+
getRequiredConfirmationsCount(): number;
|
|
144
|
+
getTransactionDetails(): Promise<{
|
|
145
|
+
in0txid: string;
|
|
146
|
+
in0vout: number;
|
|
147
|
+
in0sequence: number;
|
|
148
|
+
vaultAmount: bigint;
|
|
149
|
+
vaultScript: Uint8Array;
|
|
150
|
+
in1sequence: number;
|
|
151
|
+
out1script: Uint8Array;
|
|
152
|
+
out2amount: bigint;
|
|
153
|
+
out2script: Uint8Array;
|
|
154
|
+
locktime: number;
|
|
155
|
+
}>;
|
|
156
|
+
/**
|
|
157
|
+
* Returns the raw PSBT (not funded), the wallet should fund the PSBT (add its inputs), set the nSequence field of the
|
|
158
|
+
* 2nd input (input 1 - indexing from 0) to the value returned in `in1sequence`, sign the PSBT and then pass
|
|
159
|
+
* it back to the SDK with `swap.submitPsbt()`
|
|
160
|
+
*/
|
|
161
|
+
getPsbt(): Promise<{
|
|
162
|
+
psbt: Transaction;
|
|
163
|
+
psbtHex: string;
|
|
164
|
+
psbtBase64: string;
|
|
165
|
+
in1sequence: number;
|
|
166
|
+
}>;
|
|
167
|
+
/**
|
|
168
|
+
* Returns the PSBT that is already funded with wallet's UTXOs (runs a coin-selection algorithm to choose UTXOs to use),
|
|
169
|
+
* also returns inputs indices that need to be signed by the wallet before submitting the PSBT back to the SDK with
|
|
170
|
+
* `swap.submitPsbt()`
|
|
171
|
+
*
|
|
172
|
+
* @param _bitcoinWallet Sender's bitcoin wallet
|
|
173
|
+
* @param feeRate Optional fee rate for the transaction, needs to be at least as big as {minimumBtcFeeRate} field
|
|
174
|
+
* @param additionalOutputs additional outputs to add to the PSBT - can be used to collect fees from users
|
|
175
|
+
*/
|
|
176
|
+
getFundedPsbt(_bitcoinWallet: IBitcoinWallet | MinimalBitcoinWalletInterface, feeRate?: number, additionalOutputs?: ({
|
|
177
|
+
amount: bigint;
|
|
178
|
+
outputScript: Uint8Array;
|
|
179
|
+
} | {
|
|
180
|
+
amount: bigint;
|
|
181
|
+
address: string;
|
|
182
|
+
})[]): Promise<{
|
|
183
|
+
psbt: Transaction;
|
|
184
|
+
psbtHex: string;
|
|
185
|
+
psbtBase64: string;
|
|
186
|
+
signInputs: number[];
|
|
187
|
+
}>;
|
|
188
|
+
/**
|
|
189
|
+
* Submits a PSBT signed by the wallet back to the SDK
|
|
190
|
+
*
|
|
191
|
+
* @param _psbt A psbt - either a Transaction object or a hex or base64 encoded PSBT string
|
|
192
|
+
*/
|
|
193
|
+
submitPsbt(_psbt: Transaction | string): Promise<string>;
|
|
194
|
+
estimateBitcoinFee(_bitcoinWallet: IBitcoinWallet | MinimalBitcoinWalletInterface, feeRate?: number): Promise<TokenAmount<any, BtcToken<false>> | null>;
|
|
195
|
+
sendBitcoinTransaction(wallet: IBitcoinWallet | MinimalBitcoinWalletInterfaceWithSigner, feeRate?: number): Promise<string>;
|
|
196
|
+
/**
|
|
197
|
+
* Executes the swap with the provided bitcoin wallet,
|
|
198
|
+
*
|
|
199
|
+
* @param wallet Bitcoin wallet to use to sign the bitcoin transaction
|
|
200
|
+
* @param callbacks Callbacks to track the progress of the swap
|
|
201
|
+
* @param options Optional options for the swap like feeRate, AbortSignal, and timeouts/intervals
|
|
202
|
+
*
|
|
203
|
+
* @returns {boolean} Whether a swap was settled automatically by swap watchtowers or requires manual claim by the
|
|
204
|
+
* user, in case `false` is returned the user should call `swap.claim()` to settle the swap on the destination manually
|
|
205
|
+
*/
|
|
206
|
+
execute(wallet: IBitcoinWallet | MinimalBitcoinWalletInterfaceWithSigner, callbacks?: {
|
|
207
|
+
onSourceTransactionSent?: (sourceTxId: string) => void;
|
|
208
|
+
onSourceTransactionConfirmationStatus?: (sourceTxId?: string, confirmations?: number, targetConfirations?: number, etaMs?: number) => void;
|
|
209
|
+
onSourceTransactionConfirmed?: (sourceTxId: string) => void;
|
|
210
|
+
onSwapSettled?: (destinationTxId: string) => void;
|
|
211
|
+
}, options?: {
|
|
212
|
+
feeRate?: number;
|
|
213
|
+
abortSignal?: AbortSignal;
|
|
214
|
+
btcTxCheckIntervalSeconds?: number;
|
|
215
|
+
maxWaitTillAutomaticSettlementSeconds?: number;
|
|
216
|
+
}): Promise<boolean>;
|
|
217
|
+
txsExecute(options?: {
|
|
218
|
+
bitcoinWallet?: MinimalBitcoinWalletInterface;
|
|
219
|
+
}): Promise<{
|
|
220
|
+
name: "Payment";
|
|
221
|
+
description: string;
|
|
222
|
+
chain: string;
|
|
223
|
+
txs: ({
|
|
224
|
+
type: string;
|
|
225
|
+
psbt: Transaction;
|
|
226
|
+
psbtHex: string;
|
|
227
|
+
psbtBase64: string;
|
|
228
|
+
in1sequence: number;
|
|
229
|
+
} | {
|
|
230
|
+
type: string;
|
|
231
|
+
psbt: Transaction;
|
|
232
|
+
psbtHex: string;
|
|
233
|
+
psbtBase64: string;
|
|
234
|
+
signInputs: number[];
|
|
235
|
+
})[];
|
|
236
|
+
}[]>;
|
|
237
|
+
/**
|
|
238
|
+
* Checks whether a bitcoin payment was already made, returns the payment or null when no payment has been made.
|
|
239
|
+
*/
|
|
240
|
+
protected getBitcoinPayment(): Promise<{
|
|
241
|
+
txId: string;
|
|
242
|
+
confirmations: number;
|
|
243
|
+
targetConfirmations: number;
|
|
244
|
+
inputAddresses?: string[];
|
|
245
|
+
} | null>;
|
|
246
|
+
/**
|
|
247
|
+
* Waits till the bitcoin transaction confirms and swap becomes claimable
|
|
248
|
+
*
|
|
249
|
+
* @param updateCallback Callback called when txId is found, and also called with subsequent confirmations
|
|
250
|
+
* @param checkIntervalSeconds How often to check the bitcoin transaction
|
|
251
|
+
* @param abortSignal Abort signal
|
|
252
|
+
* @throws {Error} if in invalid state (must be CLAIM_COMMITED)
|
|
253
|
+
*/
|
|
254
|
+
waitForBitcoinTransaction(updateCallback?: (txId?: string, confirmations?: number, targetConfirmations?: number, txEtaMs?: number) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<string>;
|
|
255
|
+
/**
|
|
256
|
+
* Returns transactions required to claim the swap on-chain (and possibly also sync the bitcoin light client)
|
|
257
|
+
* after a bitcoin transaction was sent and confirmed
|
|
258
|
+
*
|
|
259
|
+
* @throws {Error} If the swap is in invalid state (must be BTC_TX_CONFIRMED)
|
|
260
|
+
*/
|
|
261
|
+
txsClaim(_signer?: string | T["Signer"] | T["NativeSigner"]): Promise<T["TX"][]>;
|
|
262
|
+
/**
|
|
263
|
+
* Claims and finishes the swap
|
|
264
|
+
*
|
|
265
|
+
* @param _signer Signer to sign the transactions with, can also be different to the initializer
|
|
266
|
+
* @param abortSignal Abort signal to stop waiting for transaction confirmation
|
|
267
|
+
*/
|
|
268
|
+
claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal): Promise<string>;
|
|
269
|
+
/**
|
|
270
|
+
* Periodically checks the chain to see whether the swap was finished (claimed or refunded)
|
|
271
|
+
*
|
|
272
|
+
* @param abortSignal
|
|
273
|
+
* @param interval How often to check (in seconds), default to 5s
|
|
274
|
+
* @protected
|
|
275
|
+
*/
|
|
276
|
+
protected watchdogWaitTillResult(abortSignal?: AbortSignal, interval?: number): Promise<SpvWithdrawalClaimedState | SpvWithdrawalFrontedState | SpvWithdrawalClosedState>;
|
|
277
|
+
/**
|
|
278
|
+
* Waits till the swap is successfully executed
|
|
279
|
+
*
|
|
280
|
+
* @param maxWaitTimeSeconds Maximum time in seconds to wait for the swap to be settled
|
|
281
|
+
* @param abortSignal
|
|
282
|
+
* @throws {Error} If swap is in invalid state (must be BTC_TX_CONFIRMED)
|
|
283
|
+
* @throws {Error} If the LP refunded sooner than we were able to claim
|
|
284
|
+
* @returns {boolean} whether the swap was claimed or fronted automatically or not, if the swap was not claimed
|
|
285
|
+
* the user can claim manually through `swap.claim()`
|
|
286
|
+
*/
|
|
287
|
+
waitTillClaimedOrFronted(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
|
|
288
|
+
/**
|
|
289
|
+
* Waits till the bitcoin transaction confirms and swap is claimed
|
|
290
|
+
*
|
|
291
|
+
* @param abortSignal Abort signal
|
|
292
|
+
* @param checkIntervalSeconds How often to check the bitcoin transaction
|
|
293
|
+
* @param updateCallback Callback called when txId is found, and also called with subsequent confirmations
|
|
294
|
+
* @throws {Error} if in invalid state (must be CLAIM_COMMITED)
|
|
295
|
+
*/
|
|
296
|
+
waitTillExecuted(updateCallback?: (txId?: string, confirmations?: number, targetConfirmations?: number, txEtaMs?: number) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<void>;
|
|
297
|
+
serialize(): any;
|
|
298
|
+
/**
|
|
299
|
+
* For internal use! Used to set the txId of the bitcoin payment from the on-chain events listener
|
|
300
|
+
*
|
|
301
|
+
* @param txId
|
|
302
|
+
*/
|
|
303
|
+
_setBitcoinTxId(txId: string): Promise<void>;
|
|
304
|
+
_syncStateFromBitcoin(save?: boolean): Promise<boolean>;
|
|
305
|
+
/**
|
|
306
|
+
* Checks the swap's state on-chain and compares it to its internal state, updates/changes it according to on-chain
|
|
307
|
+
* data
|
|
308
|
+
*
|
|
309
|
+
* @private
|
|
310
|
+
*/
|
|
311
|
+
private syncStateFromChain;
|
|
312
|
+
_sync(save?: boolean): Promise<boolean>;
|
|
313
|
+
_tick(save?: boolean): Promise<boolean>;
|
|
314
|
+
_shouldCheckWithdrawalState(frontingAddress?: string | null, vaultDataUtxo?: string | null): Promise<boolean>;
|
|
315
|
+
}
|