@atomiqlabs/sdk 7.0.12 → 8.0.8
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} +37 -19
- 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} +113 -72
- 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,533 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ISwapPrice } from "../prices/abstract/ISwapPrice";
|
|
3
|
+
import { BitcoinNetwork, BtcRelay, ChainData, ChainType, Messenger, RelaySynchronizer } from "@atomiqlabs/base";
|
|
4
|
+
import { InvoiceCreateService, ToBTCLNOptions, ToBTCLNWrapper } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper";
|
|
5
|
+
import { ToBTCOptions, ToBTCWrapper } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper";
|
|
6
|
+
import { FromBTCLNOptions, FromBTCLNWrapper } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper";
|
|
7
|
+
import { FromBTCOptions, FromBTCWrapper } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper";
|
|
8
|
+
import { IntermediaryDiscovery, MultichainSwapBounds, SwapBounds } from "../intermediaries/IntermediaryDiscovery";
|
|
9
|
+
import { ISwap } from "../swaps/ISwap";
|
|
10
|
+
import { SwapType } from "../enums/SwapType";
|
|
11
|
+
import { FromBTCLNSwap } from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
|
|
12
|
+
import { FromBTCSwap } from "../swaps/escrow_swaps/frombtc/onchain/FromBTCSwap";
|
|
13
|
+
import { ToBTCLNSwap } from "../swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap";
|
|
14
|
+
import { ToBTCSwap } from "../swaps/escrow_swaps/tobtc/onchain/ToBTCSwap";
|
|
15
|
+
import { LnForGasWrapper } from "../swaps/trusted/ln/LnForGasWrapper";
|
|
16
|
+
import { LnForGasSwap } from "../swaps/trusted/ln/LnForGasSwap";
|
|
17
|
+
import { EventEmitter } from "events";
|
|
18
|
+
import { Intermediary } from "../intermediaries/Intermediary";
|
|
19
|
+
import { WrapperCtorTokens } from "../swaps/ISwapWrapper";
|
|
20
|
+
import { SwapperWithChain } from "./SwapperWithChain";
|
|
21
|
+
import { OnchainForGasSwap } from "../swaps/trusted/onchain/OnchainForGasSwap";
|
|
22
|
+
import { OnchainForGasWrapper } from "../swaps/trusted/onchain/OnchainForGasWrapper";
|
|
23
|
+
import { BTC_NETWORK } from "@scure/btc-signer/utils";
|
|
24
|
+
import { IUnifiedStorage } from "../storage/IUnifiedStorage";
|
|
25
|
+
import { UnifiedSwapStorage, UnifiedSwapStorageCompositeIndexes, UnifiedSwapStorageIndexes } from "../storage/UnifiedSwapStorage";
|
|
26
|
+
import { UnifiedSwapEventListener } from "../events/UnifiedSwapEventListener";
|
|
27
|
+
import { IToBTCSwap } from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
|
|
28
|
+
import { SpvFromBTCOptions, SpvFromBTCWrapper } from "../swaps/spv_swaps/SpvFromBTCWrapper";
|
|
29
|
+
import { SpvFromBTCSwap } from "../swaps/spv_swaps/SpvFromBTCSwap";
|
|
30
|
+
import { SwapperUtils } from "./SwapperUtils";
|
|
31
|
+
import { FromBTCLNAutoOptions, FromBTCLNAutoWrapper } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper";
|
|
32
|
+
import { FromBTCLNAutoSwap } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
|
|
33
|
+
import { SwapAmountType } from "../enums/SwapAmountType";
|
|
34
|
+
import { IClaimableSwap } from "../swaps/IClaimableSwap";
|
|
35
|
+
import { SwapTypeMapping } from "../utils/SwapUtils";
|
|
36
|
+
import { MempoolBitcoinBlock } from "../bitcoin/mempool/MempoolBitcoinBlock";
|
|
37
|
+
import { MempoolBitcoinRpc } from "../bitcoin/mempool/MempoolBitcoinRpc";
|
|
38
|
+
import { MempoolApi } from "../bitcoin/mempool/MempoolApi";
|
|
39
|
+
import { TokenAmount } from "../types/TokenAmount";
|
|
40
|
+
import { BtcToken, SCToken, Token } from "../types/Token";
|
|
41
|
+
import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
|
|
42
|
+
import { LNURLPay } from "../types/lnurl/LNURLPay";
|
|
43
|
+
import { NotNever } from "../utils/TypeUtils";
|
|
44
|
+
/**
|
|
45
|
+
* Configuration options for the Swapper
|
|
46
|
+
* @category Core
|
|
47
|
+
*/
|
|
48
|
+
export type SwapperOptions = {
|
|
49
|
+
intermediaryUrl?: string | string[];
|
|
50
|
+
registryUrl?: string;
|
|
51
|
+
bitcoinNetwork?: BitcoinNetwork;
|
|
52
|
+
getRequestTimeout?: number;
|
|
53
|
+
postRequestTimeout?: number;
|
|
54
|
+
defaultAdditionalParameters?: {
|
|
55
|
+
[key: string]: any;
|
|
56
|
+
};
|
|
57
|
+
storagePrefix?: string;
|
|
58
|
+
defaultTrustedIntermediaryUrl?: string;
|
|
59
|
+
swapStorage?: <T extends ChainType>(chainId: T["ChainId"]) => IUnifiedStorage<UnifiedSwapStorageIndexes, UnifiedSwapStorageCompositeIndexes>;
|
|
60
|
+
noTimers?: boolean;
|
|
61
|
+
noEvents?: boolean;
|
|
62
|
+
noSwapCache?: boolean;
|
|
63
|
+
dontCheckPastSwaps?: boolean;
|
|
64
|
+
dontFetchLPs?: boolean;
|
|
65
|
+
saveUninitializedSwaps?: boolean;
|
|
66
|
+
automaticClockDriftCorrection?: boolean;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Type representing multiple blockchain configurations
|
|
70
|
+
* @category Core
|
|
71
|
+
*/
|
|
72
|
+
export type MultiChain = {
|
|
73
|
+
[chainIdentifier in string]: ChainType;
|
|
74
|
+
};
|
|
75
|
+
type ChainSpecificData<T extends ChainType> = {
|
|
76
|
+
wrappers: {
|
|
77
|
+
[SwapType.TO_BTCLN]: ToBTCLNWrapper<T>;
|
|
78
|
+
[SwapType.TO_BTC]: ToBTCWrapper<T>;
|
|
79
|
+
[SwapType.FROM_BTCLN]: FromBTCLNWrapper<T>;
|
|
80
|
+
[SwapType.FROM_BTC]: FromBTCWrapper<T>;
|
|
81
|
+
[SwapType.TRUSTED_FROM_BTCLN]: LnForGasWrapper<T>;
|
|
82
|
+
[SwapType.TRUSTED_FROM_BTC]: OnchainForGasWrapper<T>;
|
|
83
|
+
[SwapType.SPV_VAULT_FROM_BTC]: SpvFromBTCWrapper<T>;
|
|
84
|
+
[SwapType.FROM_BTCLN_AUTO]: FromBTCLNAutoWrapper<T>;
|
|
85
|
+
};
|
|
86
|
+
chainEvents: T["Events"];
|
|
87
|
+
swapContract: T["Contract"];
|
|
88
|
+
spvVaultContract: T["SpvVaultContract"];
|
|
89
|
+
chainInterface: T["ChainInterface"];
|
|
90
|
+
btcRelay: BtcRelay<any, T["TX"], MempoolBitcoinBlock, T["Signer"]>;
|
|
91
|
+
synchronizer: RelaySynchronizer<any, T["TX"], MempoolBitcoinBlock>;
|
|
92
|
+
unifiedChainEvents: UnifiedSwapEventListener<T>;
|
|
93
|
+
unifiedSwapStorage: UnifiedSwapStorage<T>;
|
|
94
|
+
reviver: (val: any) => ISwap<T>;
|
|
95
|
+
};
|
|
96
|
+
type MultiChainData<T extends MultiChain> = {
|
|
97
|
+
[chainIdentifier in keyof T]: ChainSpecificData<T[chainIdentifier]>;
|
|
98
|
+
};
|
|
99
|
+
type CtorMultiChainData<T extends MultiChain> = {
|
|
100
|
+
[chainIdentifier in keyof T]: ChainData<T[chainIdentifier]>;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Type extracting chain identifiers from a MultiChain type
|
|
104
|
+
* @category Core
|
|
105
|
+
*/
|
|
106
|
+
export type ChainIds<T extends MultiChain> = keyof T & string;
|
|
107
|
+
/**
|
|
108
|
+
* Type helper to check if a chain supports a specific swap type
|
|
109
|
+
* @category Core
|
|
110
|
+
*/
|
|
111
|
+
export type SupportsSwapType<C extends ChainType, Type extends SwapType> = Type extends SwapType.SPV_VAULT_FROM_BTC ? NotNever<C["SpvVaultContract"]> : Type extends (SwapType.TRUSTED_FROM_BTCLN | SwapType.TRUSTED_FROM_BTC) ? true : Type extends SwapType.FROM_BTCLN_AUTO ? (C["Contract"]["supportsInitWithoutClaimer"] extends true ? true : false) : NotNever<C["Contract"]>;
|
|
112
|
+
/**
|
|
113
|
+
* Core orchestrator for all swap operations with multi-chain support
|
|
114
|
+
* @category Core
|
|
115
|
+
*/
|
|
116
|
+
export declare class Swapper<T extends MultiChain> extends EventEmitter<{
|
|
117
|
+
lpsRemoved: [Intermediary[]];
|
|
118
|
+
lpsAdded: [Intermediary[]];
|
|
119
|
+
swapState: [ISwap];
|
|
120
|
+
swapLimitsChanged: [];
|
|
121
|
+
}> {
|
|
122
|
+
protected readonly logger: import("../utils/Logger").LoggerType;
|
|
123
|
+
protected readonly swapStateListener: (swap: ISwap) => void;
|
|
124
|
+
private defaultTrustedIntermediary?;
|
|
125
|
+
private readonly _bitcoinNetwork;
|
|
126
|
+
private readonly options;
|
|
127
|
+
readonly chains: MultiChainData<T>;
|
|
128
|
+
readonly prices: ISwapPrice<T>;
|
|
129
|
+
readonly intermediaryDiscovery: IntermediaryDiscovery;
|
|
130
|
+
readonly mempoolApi: MempoolApi;
|
|
131
|
+
readonly bitcoinRpc: MempoolBitcoinRpc;
|
|
132
|
+
readonly bitcoinNetwork: BTC_NETWORK;
|
|
133
|
+
readonly messenger: Messenger;
|
|
134
|
+
readonly Utils: SwapperUtils<T>;
|
|
135
|
+
readonly tokens: {
|
|
136
|
+
[chainId: string]: {
|
|
137
|
+
[tokenAddress: string]: SCToken;
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
readonly tokensByTicker: {
|
|
141
|
+
[chainId: string]: {
|
|
142
|
+
[tokenTicker: string]: SCToken;
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
constructor(bitcoinRpc: MempoolBitcoinRpc, chainsData: CtorMultiChainData<T>, pricing: ISwapPrice<T>, tokens: WrapperCtorTokens<T>, messenger: Messenger, options?: SwapperOptions);
|
|
146
|
+
private _init;
|
|
147
|
+
private initPromise?;
|
|
148
|
+
private initialized;
|
|
149
|
+
/**
|
|
150
|
+
* Initializes the swap storage and loads existing swaps, needs to be called before any other action
|
|
151
|
+
*/
|
|
152
|
+
init(): Promise<void>;
|
|
153
|
+
/**
|
|
154
|
+
* Stops listening for onchain events and closes this Swapper instance
|
|
155
|
+
*/
|
|
156
|
+
stop(): Promise<void>;
|
|
157
|
+
/**
|
|
158
|
+
* Creates swap & handles intermediary, quote selection
|
|
159
|
+
*
|
|
160
|
+
* @param chainIdentifier
|
|
161
|
+
* @param create Callback to create the
|
|
162
|
+
* @param amountData Amount data as passed to the function
|
|
163
|
+
* @param swapType Swap type of the execution
|
|
164
|
+
* @param maxWaitTimeMS Maximum waiting time after the first intermediary returns the quote
|
|
165
|
+
* @private
|
|
166
|
+
* @throws {Error} when no intermediary was found
|
|
167
|
+
* @throws {Error} if the chain with the provided identifier cannot be found
|
|
168
|
+
*/
|
|
169
|
+
private createSwap;
|
|
170
|
+
/**
|
|
171
|
+
* Creates To BTC swap
|
|
172
|
+
*
|
|
173
|
+
* @param chainIdentifier
|
|
174
|
+
* @param signer
|
|
175
|
+
* @param tokenAddress Token address to pay with
|
|
176
|
+
* @param address Recipient's bitcoin address
|
|
177
|
+
* @param amount Amount to send in satoshis (bitcoin's smallest denomination)
|
|
178
|
+
* @param exactIn Whether to use exact in instead of exact out
|
|
179
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
180
|
+
* @param options
|
|
181
|
+
*/
|
|
182
|
+
createToBTCSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, address: string, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
|
|
183
|
+
/**
|
|
184
|
+
* Creates To BTCLN swap
|
|
185
|
+
*
|
|
186
|
+
* @param chainIdentifier
|
|
187
|
+
* @param signer
|
|
188
|
+
* @param tokenAddress Token address to pay with
|
|
189
|
+
* @param paymentRequest BOLT11 lightning network invoice to be paid (needs to have a fixed amount)
|
|
190
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
191
|
+
* @param options
|
|
192
|
+
*/
|
|
193
|
+
createToBTCLNSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, paymentRequest: string, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
194
|
+
/**
|
|
195
|
+
* Creates To BTCLN swap via LNURL-pay
|
|
196
|
+
*
|
|
197
|
+
* @param chainIdentifier
|
|
198
|
+
* @param signer
|
|
199
|
+
* @param tokenAddress Token address to pay with
|
|
200
|
+
* @param lnurlPay LNURL-pay link to use for the payment
|
|
201
|
+
* @param amount Amount to be paid in sats
|
|
202
|
+
* @param exactIn Whether to do an exact in swap instead of exact out
|
|
203
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
204
|
+
* @param options
|
|
205
|
+
*/
|
|
206
|
+
createToBTCLNSwapViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, lnurlPay: string | LNURLPay, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions & {
|
|
207
|
+
comment?: string;
|
|
208
|
+
}): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
209
|
+
/**
|
|
210
|
+
* Creates To BTCLN swap via InvoiceCreationService
|
|
211
|
+
*
|
|
212
|
+
* @param chainIdentifier
|
|
213
|
+
* @param signer
|
|
214
|
+
* @param tokenAddress Token address to pay with
|
|
215
|
+
* @param service Invoice create service object which facilitates the creation of fixed amount LN invoices
|
|
216
|
+
* @param amount Amount to be paid in sats
|
|
217
|
+
* @param exactIn Whether to do an exact in swap instead of exact out
|
|
218
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
219
|
+
* @param options
|
|
220
|
+
*/
|
|
221
|
+
createToBTCLNSwapViaInvoiceCreateService<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, service: InvoiceCreateService, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any> | undefined, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
222
|
+
/**
|
|
223
|
+
* Creates From BTC swap
|
|
224
|
+
*
|
|
225
|
+
* @param chainIdentifier
|
|
226
|
+
* @param signer
|
|
227
|
+
* @param tokenAddress Token address to receive
|
|
228
|
+
* @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
|
|
229
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
230
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
231
|
+
* @param options
|
|
232
|
+
*/
|
|
233
|
+
createFromBTCSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: SpvFromBTCOptions): Promise<SpvFromBTCSwap<T[ChainIdentifier]>>;
|
|
234
|
+
/**
|
|
235
|
+
* Creates From BTC swap
|
|
236
|
+
*
|
|
237
|
+
* @param chainIdentifier
|
|
238
|
+
* @param signer
|
|
239
|
+
* @param tokenAddress Token address to receive
|
|
240
|
+
* @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
|
|
241
|
+
* @param exactOut Whether to use a exact out instead of exact in
|
|
242
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
243
|
+
* @param options
|
|
244
|
+
*/
|
|
245
|
+
createFromBTCSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCOptions): Promise<FromBTCSwap<T[ChainIdentifier]>>;
|
|
246
|
+
/**
|
|
247
|
+
* Creates From BTCLN swap
|
|
248
|
+
*
|
|
249
|
+
* @param chainIdentifier
|
|
250
|
+
* @param signer
|
|
251
|
+
* @param tokenAddress Token address to receive
|
|
252
|
+
* @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
|
|
253
|
+
* @param exactOut Whether to use exact out instead of exact in
|
|
254
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
255
|
+
* @param options
|
|
256
|
+
*/
|
|
257
|
+
createFromBTCLNSwap<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNOptions): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
|
|
258
|
+
/**
|
|
259
|
+
* Creates From BTCLN swap, withdrawing from LNURL-withdraw
|
|
260
|
+
*
|
|
261
|
+
* @param chainIdentifier
|
|
262
|
+
* @param signer
|
|
263
|
+
* @param tokenAddress Token address to receive
|
|
264
|
+
* @param lnurl LNURL-withdraw to pull the funds from
|
|
265
|
+
* @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
|
|
266
|
+
* @param exactOut Whether to use exact out instead of exact in
|
|
267
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
268
|
+
*/
|
|
269
|
+
createFromBTCLNSwapViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
|
|
270
|
+
/**
|
|
271
|
+
* Creates From BTCLN swap using new protocol
|
|
272
|
+
*
|
|
273
|
+
* @param chainIdentifier
|
|
274
|
+
* @param signer
|
|
275
|
+
* @param tokenAddress Token address to receive
|
|
276
|
+
* @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
|
|
277
|
+
* @param exactOut Whether to use exact out instead of exact in
|
|
278
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
279
|
+
* @param options
|
|
280
|
+
*/
|
|
281
|
+
createFromBTCLNSwapNew<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
|
|
282
|
+
/**
|
|
283
|
+
* Creates From BTCLN swap using new protocol, withdrawing from LNURL-withdraw
|
|
284
|
+
*
|
|
285
|
+
* @param chainIdentifier
|
|
286
|
+
* @param signer
|
|
287
|
+
* @param tokenAddress Token address to receive
|
|
288
|
+
* @param lnurl LNURL-withdraw to pull the funds from
|
|
289
|
+
* @param amount Amount to receive, in satoshis (bitcoin's smallest denomination)
|
|
290
|
+
* @param exactOut Whether to use exact out instead of exact in
|
|
291
|
+
* @param additionalParams Additional parameters sent to the LP when creating the swap
|
|
292
|
+
* @param options
|
|
293
|
+
*/
|
|
294
|
+
createFromBTCLNSwapNewViaLNURL<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any> | undefined, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
|
|
295
|
+
/**
|
|
296
|
+
* Creates trusted LN for Gas swap
|
|
297
|
+
*
|
|
298
|
+
* @param chainId
|
|
299
|
+
* @param signer
|
|
300
|
+
* @param amount Amount of native token to receive, in base units
|
|
301
|
+
* @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
|
|
302
|
+
* @throws {Error} If no trusted intermediary specified
|
|
303
|
+
*/
|
|
304
|
+
createTrustedLNForGasSwap<C extends ChainIds<T>>(chainId: C, signer: string, amount: bigint, trustedIntermediaryOrUrl?: Intermediary | string): Promise<LnForGasSwap<T[C]>>;
|
|
305
|
+
/**
|
|
306
|
+
* Creates trusted BTC on-chain for Gas swap
|
|
307
|
+
*
|
|
308
|
+
* @param chainId
|
|
309
|
+
* @param signer
|
|
310
|
+
* @param amount Amount of native token to receive, in base units
|
|
311
|
+
* @param refundAddress Bitcoin refund address, in case the swap fails
|
|
312
|
+
* @param trustedIntermediaryOrUrl URL or Intermediary object of the trusted intermediary to use, otherwise uses default
|
|
313
|
+
* @throws {Error} If no trusted intermediary specified
|
|
314
|
+
*/
|
|
315
|
+
createTrustedOnchainForGasSwap<C extends ChainIds<T>>(chainId: C, signer: string, amount: bigint, refundAddress?: string, trustedIntermediaryOrUrl?: Intermediary | string): Promise<OnchainForGasSwap<T[C]>>;
|
|
316
|
+
create<C extends ChainIds<T>>(signer: string, srcToken: BtcToken<true>, dstToken: SCToken<C>, amount: bigint, exactIn: boolean, lnurlWithdraw?: string | LNURLWithdraw): Promise<(SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[C]> : FromBTCLNSwap<T[C]>)>;
|
|
317
|
+
create<C extends ChainIds<T>>(signer: string, srcToken: BtcToken<false>, dstToken: SCToken<C>, amount: bigint, exactIn: boolean): Promise<(SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[C]> : FromBTCSwap<T[C]>)>;
|
|
318
|
+
create<C extends ChainIds<T>>(signer: string, srcToken: SCToken<C>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[C]>>;
|
|
319
|
+
create<C extends ChainIds<T>>(signer: string, srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[C]>>;
|
|
320
|
+
create<C extends ChainIds<T>>(signer: string, srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: bigint, exactIn: false, lightningInvoice: string): Promise<ToBTCLNSwap<T[C]>>;
|
|
321
|
+
create<C extends ChainIds<T>>(signer: string, srcToken: Token<C>, dstToken: Token<C>, amount: bigint, exactIn: boolean, addressLnurlLightningInvoice?: string | LNURLWithdraw | LNURLPay): Promise<ISwap<T[C]>>;
|
|
322
|
+
swap<C extends ChainIds<T>>(srcToken: BtcToken<true>, dstToken: SCToken<C>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dstSmartchainWallet: string, options?: (SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoOptions : FromBTCLNOptions)): Promise<(SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[C]> : FromBTCLNSwap<T[C]>)>;
|
|
323
|
+
swap<C extends ChainIds<T>>(srcToken: BtcToken<false>, dstToken: SCToken<C>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string, dstSmartchainWallet: string, options?: (SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCOptions : FromBTCOptions)): Promise<(SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[C]> : FromBTCSwap<T[C]>)>;
|
|
324
|
+
swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<false>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstAddress: string, options?: ToBTCOptions): Promise<ToBTCSwap<T[C]>>;
|
|
325
|
+
swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstLnurlPayOrInvoiceCreateService: string | LNURLPay | InvoiceCreateService, options?: ToBTCLNOptions & {
|
|
326
|
+
comment?: string;
|
|
327
|
+
}): Promise<ToBTCLNSwap<T[C]>>;
|
|
328
|
+
swap<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>, amount: bigint | string, exactIn: false | SwapAmountType.EXACT_OUT, src: string, dstLightningInvoice: string, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[C]>>;
|
|
329
|
+
swap<C extends ChainIds<T>>(srcToken: Token<C> | string, dstToken: Token<C> | string, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dst: string | LNURLPay | InvoiceCreateService, options?: FromBTCLNOptions | SpvFromBTCOptions | FromBTCOptions | ToBTCOptions | (ToBTCLNOptions & {
|
|
330
|
+
comment?: string;
|
|
331
|
+
}) | FromBTCLNAutoOptions): Promise<ISwap<T[C]>>;
|
|
332
|
+
/**
|
|
333
|
+
* Returns all swaps
|
|
334
|
+
*/
|
|
335
|
+
getAllSwaps(): Promise<ISwap[]>;
|
|
336
|
+
/**
|
|
337
|
+
* Returns all swaps for the specific chain, and optionally also for a specific signer's address
|
|
338
|
+
*/
|
|
339
|
+
getAllSwaps<C extends ChainIds<T>>(chainId: C, signer?: string): Promise<ISwap<T[C]>[]>;
|
|
340
|
+
/**
|
|
341
|
+
* Returns all swaps where an action is required (either claim or refund)
|
|
342
|
+
*/
|
|
343
|
+
getActionableSwaps(): Promise<ISwap[]>;
|
|
344
|
+
/**
|
|
345
|
+
* Returns swaps where an action is required (either claim or refund) for the specific chain, and optionally also for a specific signer's address
|
|
346
|
+
*/
|
|
347
|
+
getActionableSwaps<C extends ChainIds<T>>(chainId: C, signer?: string): Promise<ISwap<T[C]>[]>;
|
|
348
|
+
/**
|
|
349
|
+
* Returns all swaps that are refundable
|
|
350
|
+
*/
|
|
351
|
+
getRefundableSwaps(): Promise<IToBTCSwap[]>;
|
|
352
|
+
/**
|
|
353
|
+
* Returns swaps which are refundable for the specific chain, and optionally also for a specific signer's address
|
|
354
|
+
*/
|
|
355
|
+
getRefundableSwaps<C extends ChainIds<T>>(chainId: C, signer?: string): Promise<IToBTCSwap<T[C]>[]>;
|
|
356
|
+
/**
|
|
357
|
+
* Returns all swaps that are manually claimable
|
|
358
|
+
*/
|
|
359
|
+
getClaimableSwaps(): Promise<IClaimableSwap[]>;
|
|
360
|
+
/**
|
|
361
|
+
* Returns all swaps that are manually claimable for the specific chain, and optionally also for a specific signer's address
|
|
362
|
+
*/
|
|
363
|
+
getClaimableSwaps<C extends ChainIds<T>>(chainId: C, signer?: string): Promise<IClaimableSwap<T[C]>[]>;
|
|
364
|
+
/**
|
|
365
|
+
* Returns swap with a specific id (identifier)
|
|
366
|
+
*/
|
|
367
|
+
getSwapById(id: string): Promise<ISwap>;
|
|
368
|
+
/**
|
|
369
|
+
* Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
|
|
370
|
+
*/
|
|
371
|
+
getSwapById<C extends ChainIds<T>>(id: string, chainId: C, signer?: string): Promise<ISwap<T[C]>>;
|
|
372
|
+
/**
|
|
373
|
+
* Returns the swap with a proper return type, or undefined, if not found, or has wrong type
|
|
374
|
+
*
|
|
375
|
+
* @param id
|
|
376
|
+
* @param chainId
|
|
377
|
+
* @param swapType
|
|
378
|
+
* @param signer
|
|
379
|
+
*/
|
|
380
|
+
getTypedSwapById<C extends ChainIds<T>, S extends SwapType>(id: string, chainId: C, swapType: S, signer?: string): Promise<SwapTypeMapping<T[C]>[S] | undefined>;
|
|
381
|
+
private syncSwapsForChain;
|
|
382
|
+
/**
|
|
383
|
+
* Synchronizes swaps from chain, this is usually ran when SDK is initialized, deletes expired quotes
|
|
384
|
+
*
|
|
385
|
+
* @param chainId
|
|
386
|
+
* @param signer
|
|
387
|
+
*/
|
|
388
|
+
_syncSwaps<C extends ChainIds<T>>(chainId?: C, signer?: string): Promise<void>;
|
|
389
|
+
/**
|
|
390
|
+
* Attempts to recover partial swap data from on-chain historical data
|
|
391
|
+
*
|
|
392
|
+
* @param chainId
|
|
393
|
+
* @param signer
|
|
394
|
+
* @param startBlockheight
|
|
395
|
+
*/
|
|
396
|
+
recoverSwaps<C extends ChainIds<T>>(chainId: C, signer: string, startBlockheight?: number): Promise<ISwap<T[C]>[]>;
|
|
397
|
+
getToken(tickerOrAddress: string): Token;
|
|
398
|
+
/**
|
|
399
|
+
* Creates a child swapper instance with a given smart chain
|
|
400
|
+
*
|
|
401
|
+
* @param chainIdentifier
|
|
402
|
+
*/
|
|
403
|
+
withChain<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SwapperWithChain<T, ChainIdentifier>;
|
|
404
|
+
/**
|
|
405
|
+
* Returns supported smart chains
|
|
406
|
+
*/
|
|
407
|
+
getSmartChains(): ChainIds<T>[];
|
|
408
|
+
/**
|
|
409
|
+
* Returns whether the SDK supports a given swap type on a given chain based on currently known LPs
|
|
410
|
+
*
|
|
411
|
+
* @param chainId
|
|
412
|
+
* @param swapType
|
|
413
|
+
*/
|
|
414
|
+
supportsSwapType<ChainIdentifier extends ChainIds<T>, Type extends SwapType>(chainId: ChainIdentifier, swapType: Type): SupportsSwapType<T[ChainIdentifier], Type>;
|
|
415
|
+
/**
|
|
416
|
+
* Returns type of the swap based on input and output tokens specified
|
|
417
|
+
*
|
|
418
|
+
* @param srcToken
|
|
419
|
+
* @param dstToken
|
|
420
|
+
*/
|
|
421
|
+
getSwapType<C extends ChainIds<T>>(srcToken: BtcToken<true>, dstToken: SCToken<C>): (SupportsSwapType<T[C], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
|
|
422
|
+
getSwapType<C extends ChainIds<T>>(srcToken: BtcToken<false>, dstToken: SCToken<C>): (SupportsSwapType<T[C], SwapType.SPV_VAULT_FROM_BTC> extends true ? SwapType.SPV_VAULT_FROM_BTC : SwapType.FROM_BTC);
|
|
423
|
+
getSwapType<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<false>): SwapType.TO_BTC;
|
|
424
|
+
getSwapType<C extends ChainIds<T>>(srcToken: SCToken<C>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
|
|
425
|
+
getSwapType<C extends ChainIds<T>>(srcToken: Token<C>, dstToken: Token<C>): SwapType.FROM_BTCLN_AUTO | SwapType.FROM_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTC | SwapType.TO_BTC | SwapType.TO_BTCLN;
|
|
426
|
+
readonly SwapTypeInfo: {
|
|
427
|
+
readonly 2: {
|
|
428
|
+
readonly requiresInputWallet: true;
|
|
429
|
+
readonly requiresOutputWallet: false;
|
|
430
|
+
readonly supportsGasDrop: false;
|
|
431
|
+
};
|
|
432
|
+
readonly 3: {
|
|
433
|
+
readonly requiresInputWallet: true;
|
|
434
|
+
readonly requiresOutputWallet: false;
|
|
435
|
+
readonly supportsGasDrop: false;
|
|
436
|
+
};
|
|
437
|
+
readonly 0: {
|
|
438
|
+
readonly requiresInputWallet: false;
|
|
439
|
+
readonly requiresOutputWallet: true;
|
|
440
|
+
readonly supportsGasDrop: false;
|
|
441
|
+
};
|
|
442
|
+
readonly 1: {
|
|
443
|
+
readonly requiresInputWallet: false;
|
|
444
|
+
readonly requiresOutputWallet: true;
|
|
445
|
+
readonly supportsGasDrop: false;
|
|
446
|
+
};
|
|
447
|
+
readonly 6: {
|
|
448
|
+
readonly requiresInputWallet: true;
|
|
449
|
+
readonly requiresOutputWallet: false;
|
|
450
|
+
readonly supportsGasDrop: true;
|
|
451
|
+
};
|
|
452
|
+
readonly 7: {
|
|
453
|
+
readonly requiresInputWallet: false;
|
|
454
|
+
readonly requiresOutputWallet: false;
|
|
455
|
+
readonly supportsGasDrop: true;
|
|
456
|
+
};
|
|
457
|
+
readonly 4: {
|
|
458
|
+
readonly requiresInputWallet: false;
|
|
459
|
+
readonly requiresOutputWallet: false;
|
|
460
|
+
readonly supportsGasDrop: false;
|
|
461
|
+
};
|
|
462
|
+
readonly 5: {
|
|
463
|
+
readonly requiresInputWallet: false;
|
|
464
|
+
readonly requiresOutputWallet: false;
|
|
465
|
+
readonly supportsGasDrop: false;
|
|
466
|
+
};
|
|
467
|
+
};
|
|
468
|
+
/**
|
|
469
|
+
* Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
|
|
470
|
+
*
|
|
471
|
+
* @param srcToken
|
|
472
|
+
* @param dstToken
|
|
473
|
+
*/
|
|
474
|
+
getSwapLimits<C extends ChainIds<T>, A extends Token<C>, B extends Token<C>>(srcToken: A, dstToken: B): {
|
|
475
|
+
input: {
|
|
476
|
+
min: TokenAmount<string, A>;
|
|
477
|
+
max?: TokenAmount<string, A>;
|
|
478
|
+
};
|
|
479
|
+
output: {
|
|
480
|
+
min: TokenAmount<string, B>;
|
|
481
|
+
max?: TokenAmount<string, B>;
|
|
482
|
+
};
|
|
483
|
+
};
|
|
484
|
+
/**
|
|
485
|
+
* Returns supported tokens for a given direction
|
|
486
|
+
*
|
|
487
|
+
* @param input Whether to return input tokens or output tokens
|
|
488
|
+
*/
|
|
489
|
+
getSupportedTokens(input: boolean): Token[];
|
|
490
|
+
/**
|
|
491
|
+
* Returns a set of supported tokens by all the intermediaries offering a specific swap service
|
|
492
|
+
*
|
|
493
|
+
* @param _swapType Swap service type to check supported tokens for
|
|
494
|
+
*/
|
|
495
|
+
private getSupportedTokensForSwapType;
|
|
496
|
+
/**
|
|
497
|
+
* Returns the set of supported token addresses by all the intermediaries we know of offering a specific swapType service
|
|
498
|
+
*
|
|
499
|
+
* @param chainIdentifier
|
|
500
|
+
* @param swapType Specific swap type for which to obtain supported tokens
|
|
501
|
+
*/
|
|
502
|
+
private getSupportedTokenAddresses;
|
|
503
|
+
/**
|
|
504
|
+
* Returns tokens that you can swap to (if input=true) from a given token,
|
|
505
|
+
* or tokens that you can swap from (if input=false) to a given token
|
|
506
|
+
*/
|
|
507
|
+
getSwapCounterTokens(token: Token, input: boolean): Token[];
|
|
508
|
+
/**
|
|
509
|
+
* Returns swap bounds (minimums & maximums) for different swap types & tokens
|
|
510
|
+
* @deprecated Use getSwapLimits() instead!
|
|
511
|
+
*/
|
|
512
|
+
getSwapBounds<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SwapBounds;
|
|
513
|
+
getSwapBounds(): MultichainSwapBounds;
|
|
514
|
+
/**
|
|
515
|
+
* Returns maximum possible swap amount
|
|
516
|
+
* @deprecated Use getSwapLimits() instead!
|
|
517
|
+
*
|
|
518
|
+
* @param chainIdentifier
|
|
519
|
+
* @param type Type of the swap
|
|
520
|
+
* @param token Token of the swap
|
|
521
|
+
*/
|
|
522
|
+
getMaximum<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, type: SwapType, token: string): bigint;
|
|
523
|
+
/**
|
|
524
|
+
* Returns minimum possible swap amount
|
|
525
|
+
* @deprecated Use getSwapLimits() instead!
|
|
526
|
+
*
|
|
527
|
+
* @param chainIdentifier
|
|
528
|
+
* @param type Type of swap
|
|
529
|
+
* @param token Token of the swap
|
|
530
|
+
*/
|
|
531
|
+
getMinimum<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, type: SwapType, token: string): bigint;
|
|
532
|
+
}
|
|
533
|
+
export {};
|