@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,420 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SwapperUtils = void 0;
|
|
4
|
+
const bolt11_1 = require("@atomiqlabs/bolt11");
|
|
5
|
+
const btc_signer_1 = require("@scure/btc-signer");
|
|
6
|
+
const LNURL_1 = require("../lnurl/LNURL");
|
|
7
|
+
const SwapType_1 = require("../enums/SwapType");
|
|
8
|
+
const SingleAddressBitcoinWallet_1 = require("../bitcoin/wallet/SingleAddressBitcoinWallet");
|
|
9
|
+
const base_1 = require("@atomiqlabs/base");
|
|
10
|
+
const Utils_1 = require("../utils/Utils");
|
|
11
|
+
const TokenAmount_1 = require("../types/TokenAmount");
|
|
12
|
+
const Token_1 = require("../types/Token");
|
|
13
|
+
const LNURLWithdraw_1 = require("../types/lnurl/LNURLWithdraw");
|
|
14
|
+
const LNURLPay_1 = require("../types/lnurl/LNURLPay");
|
|
15
|
+
const BitcoinWalletUtils_1 = require("../utils/BitcoinWalletUtils");
|
|
16
|
+
/**
|
|
17
|
+
* Utility class providing helper methods for swap operations
|
|
18
|
+
* @category Core
|
|
19
|
+
*/
|
|
20
|
+
class SwapperUtils {
|
|
21
|
+
constructor(root) {
|
|
22
|
+
this.bitcoinNetwork = root.bitcoinNetwork;
|
|
23
|
+
this.root = root;
|
|
24
|
+
}
|
|
25
|
+
isValidSmartChainAddress(address, chainId) {
|
|
26
|
+
if (chainId != null) {
|
|
27
|
+
if (this.root.chains[chainId] == null)
|
|
28
|
+
throw new Error(`Unknown chain id: ${chainId}`);
|
|
29
|
+
return this.root.chains[chainId].chainInterface.isValidAddress(address);
|
|
30
|
+
}
|
|
31
|
+
for (let chainId of this.root.getSmartChains()) {
|
|
32
|
+
if (this.root.chains[chainId].chainInterface.isValidAddress(address))
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns true if string is a valid BOLT11 bitcoin lightning invoice
|
|
39
|
+
*
|
|
40
|
+
* @param lnpr
|
|
41
|
+
*/
|
|
42
|
+
isLightningInvoice(lnpr) {
|
|
43
|
+
try {
|
|
44
|
+
(0, bolt11_1.decode)(lnpr);
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
catch (e) { }
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Returns true if string is a valid bitcoin address
|
|
52
|
+
*
|
|
53
|
+
* @param addr
|
|
54
|
+
*/
|
|
55
|
+
isValidBitcoinAddress(addr) {
|
|
56
|
+
try {
|
|
57
|
+
(0, btc_signer_1.Address)(this.bitcoinNetwork).decode(addr);
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Returns true if string is a valid BOLT11 bitcoin lightning invoice WITH AMOUNT
|
|
66
|
+
*
|
|
67
|
+
* @param lnpr
|
|
68
|
+
*/
|
|
69
|
+
isValidLightningInvoice(lnpr) {
|
|
70
|
+
try {
|
|
71
|
+
const parsed = (0, bolt11_1.decode)(lnpr);
|
|
72
|
+
if (parsed.millisatoshis != null)
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
catch (e) { }
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Returns true if string is a valid LNURL (no checking on type is performed)
|
|
80
|
+
*
|
|
81
|
+
* @param lnurl
|
|
82
|
+
*/
|
|
83
|
+
isValidLNURL(lnurl) {
|
|
84
|
+
return LNURL_1.LNURL.isLNURL(lnurl);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Returns type and data about an LNURL
|
|
88
|
+
*
|
|
89
|
+
* @param lnurl
|
|
90
|
+
* @param shouldRetry
|
|
91
|
+
*/
|
|
92
|
+
getLNURLTypeAndData(lnurl, shouldRetry) {
|
|
93
|
+
return LNURL_1.LNURL.getLNURLType(lnurl, shouldRetry);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Returns satoshi value of BOLT11 bitcoin lightning invoice WITH AMOUNT, returns null otherwise
|
|
97
|
+
*
|
|
98
|
+
* @param lnpr
|
|
99
|
+
*/
|
|
100
|
+
getLightningInvoiceValue(lnpr) {
|
|
101
|
+
const parsed = (0, bolt11_1.decode)(lnpr);
|
|
102
|
+
if (parsed.millisatoshis != null)
|
|
103
|
+
return (BigInt(parsed.millisatoshis) + 999n) / 1000n;
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
parseBitcoinAddress(resultText) {
|
|
107
|
+
let _amount = undefined;
|
|
108
|
+
if (resultText.includes("?")) {
|
|
109
|
+
const arr = resultText.split("?");
|
|
110
|
+
resultText = arr[0];
|
|
111
|
+
const params = arr[1].split("&");
|
|
112
|
+
for (let param of params) {
|
|
113
|
+
const arr2 = param.split("=");
|
|
114
|
+
const key = arr2[0];
|
|
115
|
+
const value = decodeURIComponent(arr2[1]);
|
|
116
|
+
if (key === "amount") {
|
|
117
|
+
_amount = (0, Utils_1.fromDecimal)(parseFloat(value).toFixed(8), 8);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (this.isValidBitcoinAddress(resultText)) {
|
|
122
|
+
return {
|
|
123
|
+
address: resultText,
|
|
124
|
+
type: "BITCOIN",
|
|
125
|
+
swapType: SwapType_1.SwapType.TO_BTC,
|
|
126
|
+
amount: _amount == null ? undefined : (0, TokenAmount_1.toTokenAmount)(_amount, Token_1.BitcoinTokens.BTC, this.root.prices)
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
parseLNURLSync(resultText) {
|
|
132
|
+
if (this.isValidLNURL(resultText)) {
|
|
133
|
+
return {
|
|
134
|
+
address: resultText,
|
|
135
|
+
type: "LNURL",
|
|
136
|
+
swapType: null
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
async parseLNURL(resultText) {
|
|
142
|
+
if (this.isValidLNURL(resultText)) {
|
|
143
|
+
try {
|
|
144
|
+
const result = await this.getLNURLTypeAndData(resultText);
|
|
145
|
+
if (result == null)
|
|
146
|
+
throw new Error("Invalid LNURL specified!");
|
|
147
|
+
const swapType = (0, LNURLPay_1.isLNURLPay)(result) ? SwapType_1.SwapType.TO_BTCLN : (0, LNURLWithdraw_1.isLNURLWithdraw)(result) ? SwapType_1.SwapType.FROM_BTCLN : null;
|
|
148
|
+
if (swapType == null)
|
|
149
|
+
return null;
|
|
150
|
+
const response = {
|
|
151
|
+
address: resultText,
|
|
152
|
+
type: "LNURL",
|
|
153
|
+
swapType,
|
|
154
|
+
lnurl: result
|
|
155
|
+
};
|
|
156
|
+
if (result.min === result.max) {
|
|
157
|
+
return {
|
|
158
|
+
...response,
|
|
159
|
+
amount: result.min == null ? undefined : (0, TokenAmount_1.toTokenAmount)(result.min, Token_1.BitcoinTokens.BTCLN, this.root.prices)
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
return {
|
|
164
|
+
...response,
|
|
165
|
+
min: result.min == null ? undefined : (0, TokenAmount_1.toTokenAmount)(result.min, Token_1.BitcoinTokens.BTCLN, this.root.prices),
|
|
166
|
+
max: result.min == null ? undefined : (0, TokenAmount_1.toTokenAmount)(result.max, Token_1.BitcoinTokens.BTCLN, this.root.prices)
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch (e) {
|
|
171
|
+
throw new Error("Failed to contact LNURL service, check your internet connection and retry later.");
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
parseLightningInvoice(resultText) {
|
|
177
|
+
if (this.isLightningInvoice(resultText)) {
|
|
178
|
+
if (this.isValidLightningInvoice(resultText)) {
|
|
179
|
+
const amount = this.getLightningInvoiceValue(resultText);
|
|
180
|
+
if (amount == null)
|
|
181
|
+
throw new Error();
|
|
182
|
+
return {
|
|
183
|
+
address: resultText,
|
|
184
|
+
type: "LIGHTNING",
|
|
185
|
+
swapType: SwapType_1.SwapType.TO_BTCLN,
|
|
186
|
+
amount: (0, TokenAmount_1.toTokenAmount)(amount, Token_1.BitcoinTokens.BTCLN, this.root.prices)
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
throw new Error("Lightning invoice needs to contain an amount!");
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
parseSmartchainAddress(resultText) {
|
|
196
|
+
for (let chainId of this.root.getSmartChains()) {
|
|
197
|
+
if (this.root.chains[chainId].chainInterface.isValidAddress(resultText)) {
|
|
198
|
+
return {
|
|
199
|
+
address: resultText,
|
|
200
|
+
type: chainId,
|
|
201
|
+
swapType: null
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* General parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, also fetches LNURL data
|
|
209
|
+
* (hence returns Promise)
|
|
210
|
+
*
|
|
211
|
+
* @param addressString Address to parse
|
|
212
|
+
* @throws {Error} Error in address parsing
|
|
213
|
+
* @returns Address data or null if address doesn't conform to any known format
|
|
214
|
+
*/
|
|
215
|
+
async parseAddress(addressString) {
|
|
216
|
+
if (addressString.startsWith("bitcoin:")) {
|
|
217
|
+
const parsedBitcoinAddress = this.parseBitcoinAddress(addressString.substring(8));
|
|
218
|
+
if (parsedBitcoinAddress != null)
|
|
219
|
+
return parsedBitcoinAddress;
|
|
220
|
+
throw new Error("Invalid bitcoin address!");
|
|
221
|
+
}
|
|
222
|
+
const parsedBitcoinAddress = this.parseBitcoinAddress(addressString);
|
|
223
|
+
if (parsedBitcoinAddress != null)
|
|
224
|
+
return parsedBitcoinAddress;
|
|
225
|
+
if (addressString.startsWith("lightning:")) {
|
|
226
|
+
const resultText = addressString.substring(10);
|
|
227
|
+
const resultLnurl = await this.parseLNURL(resultText);
|
|
228
|
+
if (resultLnurl != null)
|
|
229
|
+
return resultLnurl;
|
|
230
|
+
const resultLightningInvoice = this.parseLightningInvoice(resultText);
|
|
231
|
+
if (resultLightningInvoice != null)
|
|
232
|
+
return resultLightningInvoice;
|
|
233
|
+
throw new Error("Invalid lightning network invoice or LNURL!");
|
|
234
|
+
}
|
|
235
|
+
const resultLnurl = await this.parseLNURL(addressString);
|
|
236
|
+
if (resultLnurl != null)
|
|
237
|
+
return resultLnurl;
|
|
238
|
+
const resultLightningInvoice = this.parseLightningInvoice(addressString);
|
|
239
|
+
if (resultLightningInvoice != null)
|
|
240
|
+
return resultLightningInvoice;
|
|
241
|
+
return this.parseSmartchainAddress(addressString);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Synchronous general parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, doesn't fetch
|
|
245
|
+
* LNURL data, reports swapType: null instead to prevent returning a Promise
|
|
246
|
+
*
|
|
247
|
+
* @param addressString Address to parse
|
|
248
|
+
* @throws {Error} Error in address parsing
|
|
249
|
+
* @returns Address data or null if address doesn't conform to any known format
|
|
250
|
+
*/
|
|
251
|
+
parseAddressSync(addressString) {
|
|
252
|
+
if (addressString.startsWith("bitcoin:")) {
|
|
253
|
+
const parsedBitcoinAddress = this.parseBitcoinAddress(addressString.substring(8));
|
|
254
|
+
if (parsedBitcoinAddress != null)
|
|
255
|
+
return parsedBitcoinAddress;
|
|
256
|
+
throw new Error("Invalid bitcoin address!");
|
|
257
|
+
}
|
|
258
|
+
const parsedBitcoinAddress = this.parseBitcoinAddress(addressString);
|
|
259
|
+
if (parsedBitcoinAddress != null)
|
|
260
|
+
return parsedBitcoinAddress;
|
|
261
|
+
if (addressString.startsWith("lightning:")) {
|
|
262
|
+
const resultText = addressString.substring(10);
|
|
263
|
+
const resultLnurl = this.parseLNURLSync(resultText);
|
|
264
|
+
if (resultLnurl != null)
|
|
265
|
+
return resultLnurl;
|
|
266
|
+
const resultLightningInvoice = this.parseLightningInvoice(resultText);
|
|
267
|
+
if (resultLightningInvoice != null)
|
|
268
|
+
return resultLightningInvoice;
|
|
269
|
+
throw new Error("Invalid lightning network invoice or LNURL!");
|
|
270
|
+
}
|
|
271
|
+
const resultLnurl = this.parseLNURLSync(addressString);
|
|
272
|
+
if (resultLnurl != null)
|
|
273
|
+
return resultLnurl;
|
|
274
|
+
const resultLightningInvoice = this.parseLightningInvoice(addressString);
|
|
275
|
+
if (resultLightningInvoice != null)
|
|
276
|
+
return resultLightningInvoice;
|
|
277
|
+
return this.parseSmartchainAddress(addressString);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Returns a random PSBT that can be used for fee estimation, the last output (the LP output) is omitted
|
|
281
|
+
* to allow for coinselection algorithm to determine maximum sendable amount there
|
|
282
|
+
*
|
|
283
|
+
* @param chainIdentifier
|
|
284
|
+
* @param includeGasToken Whether to return the PSBT also with the gas token amount (increases the vSize by 8)
|
|
285
|
+
*/
|
|
286
|
+
getRandomSpvVaultPsbt(chainIdentifier, includeGasToken) {
|
|
287
|
+
const wrapper = this.root.chains[chainIdentifier].wrappers[SwapType_1.SwapType.SPV_VAULT_FROM_BTC];
|
|
288
|
+
if (wrapper == null)
|
|
289
|
+
throw new Error("Chain doesn't support spv vault swaps!");
|
|
290
|
+
return wrapper.getDummySwapPsbt(includeGasToken);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Returns the spendable balance of a bitcoin wallet
|
|
294
|
+
*
|
|
295
|
+
* @param wallet
|
|
296
|
+
* @param targetChain
|
|
297
|
+
* @param options Additional options
|
|
298
|
+
*/
|
|
299
|
+
async getBitcoinSpendableBalance(wallet, targetChain, options) {
|
|
300
|
+
let bitcoinWallet;
|
|
301
|
+
if (typeof (wallet) === "string") {
|
|
302
|
+
bitcoinWallet = new SingleAddressBitcoinWallet_1.SingleAddressBitcoinWallet(this.root.bitcoinRpc, this.bitcoinNetwork, { address: wallet, publicKey: "" });
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
bitcoinWallet = (0, BitcoinWalletUtils_1.toBitcoinWallet)(wallet, this.root.bitcoinRpc, this.bitcoinNetwork);
|
|
306
|
+
}
|
|
307
|
+
let feeRate = options?.feeRate ?? await bitcoinWallet.getFeeRate();
|
|
308
|
+
if (options?.minFeeRate != null)
|
|
309
|
+
feeRate = Math.max(feeRate, options.minFeeRate);
|
|
310
|
+
let result;
|
|
311
|
+
if (targetChain != null && this.root.supportsSwapType(targetChain, SwapType_1.SwapType.SPV_VAULT_FROM_BTC)) {
|
|
312
|
+
result = await bitcoinWallet.getSpendableBalance(this.getRandomSpvVaultPsbt(targetChain, options?.gasDrop), feeRate);
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
result = await bitcoinWallet.getSpendableBalance(undefined, feeRate);
|
|
316
|
+
}
|
|
317
|
+
return {
|
|
318
|
+
balance: (0, TokenAmount_1.toTokenAmount)(result.balance, Token_1.BitcoinTokens.BTC, this.root.prices),
|
|
319
|
+
feeRate: result.feeRate
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Returns the maximum spendable balance of the wallet, deducting the fee needed to initiate a swap for native balances
|
|
324
|
+
*/
|
|
325
|
+
async getSpendableBalance(wallet, token, options) {
|
|
326
|
+
if (this.root.chains[token.chainId] == null)
|
|
327
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + token.chainId);
|
|
328
|
+
const { swapContract, chainInterface } = this.root.chains[token.chainId];
|
|
329
|
+
let signer;
|
|
330
|
+
if (typeof (wallet) === "string") {
|
|
331
|
+
signer = wallet;
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
const abstractSigner = (0, base_1.isAbstractSigner)(wallet) ? wallet : await chainInterface.wrapSigner(wallet);
|
|
335
|
+
signer = abstractSigner.getAddress();
|
|
336
|
+
}
|
|
337
|
+
let finalBalance;
|
|
338
|
+
if (chainInterface.getNativeCurrencyAddress() !== token.address) {
|
|
339
|
+
finalBalance = await chainInterface.getBalance(signer, token.address);
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
let [balance, commitFee] = await Promise.all([
|
|
343
|
+
chainInterface.getBalance(signer, token.address),
|
|
344
|
+
swapContract.getCommitFee(signer,
|
|
345
|
+
//Use large amount, such that the fee for wrapping more tokens is always included!
|
|
346
|
+
await swapContract.createSwapData(base_1.ChainSwapType.HTLC, signer, chainInterface.randomAddress(), token.address, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn, swapContract.getHashForHtlc((0, Utils_1.randomBytes)(32)).toString("hex"), base_1.BigIntBufferUtils.fromBuffer((0, Utils_1.randomBytes)(8)), BigInt(Math.floor(Date.now() / 1000)), true, false, base_1.BigIntBufferUtils.fromBuffer((0, Utils_1.randomBytes)(2)), base_1.BigIntBufferUtils.fromBuffer((0, Utils_1.randomBytes)(2))), options?.feeRate)
|
|
347
|
+
]);
|
|
348
|
+
if (options?.feeMultiplier != null) {
|
|
349
|
+
commitFee = commitFee * (BigInt(Math.floor(options.feeMultiplier * 1000000))) / 1000000n;
|
|
350
|
+
}
|
|
351
|
+
finalBalance = (0, Utils_1.bigIntMax)(balance - commitFee, 0n);
|
|
352
|
+
}
|
|
353
|
+
return (0, TokenAmount_1.toTokenAmount)(finalBalance, token, this.root.prices);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Returns the address of the native currency of the chain
|
|
357
|
+
*/
|
|
358
|
+
getNativeToken(chainIdentifier) {
|
|
359
|
+
if (this.root.chains[chainIdentifier] == null)
|
|
360
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + chainIdentifier);
|
|
361
|
+
return this.root.tokens[chainIdentifier][this.root.chains[chainIdentifier].chainInterface.getNativeCurrencyAddress()];
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Returns a random signer for a given smart chain
|
|
365
|
+
*
|
|
366
|
+
* @param chainIdentifier
|
|
367
|
+
*/
|
|
368
|
+
randomSigner(chainIdentifier) {
|
|
369
|
+
if (this.root.chains[chainIdentifier] == null)
|
|
370
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + chainIdentifier);
|
|
371
|
+
return this.root.chains[chainIdentifier].chainInterface.randomSigner();
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Returns a random address for a given smart chain
|
|
375
|
+
*
|
|
376
|
+
* @param chainIdentifier
|
|
377
|
+
*/
|
|
378
|
+
randomAddress(chainIdentifier) {
|
|
379
|
+
if (this.root.chains[chainIdentifier] == null)
|
|
380
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + chainIdentifier);
|
|
381
|
+
return this.root.chains[chainIdentifier].chainInterface.randomAddress();
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Signs and broadcasts the supplied smart chain transaction
|
|
385
|
+
*/
|
|
386
|
+
sendAndConfirm(chainIdentifier, signer, txs, abortSignal, onBeforePublish) {
|
|
387
|
+
if (this.root.chains[chainIdentifier] == null)
|
|
388
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + chainIdentifier);
|
|
389
|
+
return this.root.chains[chainIdentifier].chainInterface.sendAndConfirm(signer, txs, true, abortSignal, false, onBeforePublish);
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Broadcasts already signed smart chain transactions
|
|
393
|
+
*/
|
|
394
|
+
sendSignedAndConfirm(chainIdentifier, txs, abortSignal, onBeforePublish) {
|
|
395
|
+
if (this.root.chains[chainIdentifier] == null)
|
|
396
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + chainIdentifier);
|
|
397
|
+
return this.root.chains[chainIdentifier].chainInterface.sendSignedAndConfirm(txs, true, abortSignal, false, onBeforePublish);
|
|
398
|
+
}
|
|
399
|
+
serializeUnsignedTransaction(chainIdentifier, tx) {
|
|
400
|
+
if (this.root.chains[chainIdentifier] == null)
|
|
401
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + chainIdentifier);
|
|
402
|
+
return this.root.chains[chainIdentifier].chainInterface.serializeTx(tx);
|
|
403
|
+
}
|
|
404
|
+
deserializeUnsignedTransaction(chainIdentifier, tx) {
|
|
405
|
+
if (this.root.chains[chainIdentifier] == null)
|
|
406
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + chainIdentifier);
|
|
407
|
+
return this.root.chains[chainIdentifier].chainInterface.deserializeTx(tx);
|
|
408
|
+
}
|
|
409
|
+
serializeSignedTransaction(chainIdentifier, tx) {
|
|
410
|
+
if (this.root.chains[chainIdentifier] == null)
|
|
411
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + chainIdentifier);
|
|
412
|
+
return this.root.chains[chainIdentifier].chainInterface.serializeSignedTx(tx);
|
|
413
|
+
}
|
|
414
|
+
deserializeSignedTransaction(chainIdentifier, tx) {
|
|
415
|
+
if (this.root.chains[chainIdentifier] == null)
|
|
416
|
+
throw new Error("Invalid chain identifier! Unknown chain: " + chainIdentifier);
|
|
417
|
+
return this.root.chains[chainIdentifier].chainInterface.deserializeSignedTx(tx);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
exports.SwapperUtils = SwapperUtils;
|
|
@@ -0,0 +1,214 @@
|
|
|
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, Swapper } 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 { InvoiceCreateService, 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 { SpvFromBTCOptions } from "../swaps/spv_swaps/SpvFromBTCWrapper";
|
|
21
|
+
import { SpvFromBTCSwap } from "../swaps/spv_swaps/SpvFromBTCSwap";
|
|
22
|
+
import { OnchainForGasSwap } from "../swaps/trusted/onchain/OnchainForGasSwap";
|
|
23
|
+
import { SwapperWithSigner } from "./SwapperWithSigner";
|
|
24
|
+
import { FromBTCLNAutoOptions } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper";
|
|
25
|
+
import { FromBTCLNAutoSwap } from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
|
|
26
|
+
import { SwapAmountType } from "../enums/SwapAmountType";
|
|
27
|
+
import { IClaimableSwap } from "../swaps/IClaimableSwap";
|
|
28
|
+
import { TokenAmount } from "../types/TokenAmount";
|
|
29
|
+
import { BtcToken, SCToken, Token } from "../types/Token";
|
|
30
|
+
import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
|
|
31
|
+
import { LNURLPay } from "../types/lnurl/LNURLPay";
|
|
32
|
+
/**
|
|
33
|
+
* Chain-specific wrapper around Swapper for a particular blockchain
|
|
34
|
+
* @category Core
|
|
35
|
+
*/
|
|
36
|
+
export declare class SwapperWithChain<T extends MultiChain, ChainIdentifier extends ChainIds<T>> {
|
|
37
|
+
readonly chainIdentifier: ChainIdentifier;
|
|
38
|
+
readonly swapper: Swapper<T>;
|
|
39
|
+
readonly prices: SwapPriceWithChain<T, ChainIdentifier>;
|
|
40
|
+
get intermediaryDiscovery(): IntermediaryDiscovery;
|
|
41
|
+
get mempoolApi(): MempoolApi;
|
|
42
|
+
get bitcoinRpc(): MempoolBitcoinRpc;
|
|
43
|
+
get bitcoinNetwork(): BTC_NETWORK;
|
|
44
|
+
get Utils(): SwapperUtils<T>;
|
|
45
|
+
get SwapTypeInfo(): {
|
|
46
|
+
readonly 2: {
|
|
47
|
+
readonly requiresInputWallet: true;
|
|
48
|
+
readonly requiresOutputWallet: false;
|
|
49
|
+
readonly supportsGasDrop: false;
|
|
50
|
+
};
|
|
51
|
+
readonly 3: {
|
|
52
|
+
readonly requiresInputWallet: true;
|
|
53
|
+
readonly requiresOutputWallet: false;
|
|
54
|
+
readonly supportsGasDrop: false;
|
|
55
|
+
};
|
|
56
|
+
readonly 0: {
|
|
57
|
+
readonly requiresInputWallet: false;
|
|
58
|
+
readonly requiresOutputWallet: true;
|
|
59
|
+
readonly supportsGasDrop: false;
|
|
60
|
+
};
|
|
61
|
+
readonly 1: {
|
|
62
|
+
readonly requiresInputWallet: false;
|
|
63
|
+
readonly requiresOutputWallet: true;
|
|
64
|
+
readonly supportsGasDrop: false;
|
|
65
|
+
};
|
|
66
|
+
readonly 6: {
|
|
67
|
+
readonly requiresInputWallet: true;
|
|
68
|
+
readonly requiresOutputWallet: false;
|
|
69
|
+
readonly supportsGasDrop: true;
|
|
70
|
+
};
|
|
71
|
+
readonly 7: {
|
|
72
|
+
readonly requiresInputWallet: false;
|
|
73
|
+
readonly requiresOutputWallet: false;
|
|
74
|
+
readonly supportsGasDrop: true;
|
|
75
|
+
};
|
|
76
|
+
readonly 4: {
|
|
77
|
+
readonly requiresInputWallet: false;
|
|
78
|
+
readonly requiresOutputWallet: false;
|
|
79
|
+
readonly supportsGasDrop: false;
|
|
80
|
+
};
|
|
81
|
+
readonly 5: {
|
|
82
|
+
readonly requiresInputWallet: false;
|
|
83
|
+
readonly requiresOutputWallet: false;
|
|
84
|
+
readonly supportsGasDrop: false;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
constructor(swapper: Swapper<T>, chainIdentifier: ChainIdentifier);
|
|
88
|
+
createToBTCSwap(signer: string, tokenAddress: string, address: string, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
|
|
89
|
+
createToBTCLNSwap(signer: string, tokenAddress: string, paymentRequest: string, additionalParams?: Record<string, any>, options?: ToBTCLNOptions & {
|
|
90
|
+
comment?: string;
|
|
91
|
+
}): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
92
|
+
createToBTCLNSwapViaLNURL(signer: string, tokenAddress: string, lnurlPay: string | LNURLPay, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
93
|
+
createToBTCLNSwapViaInvoiceCreateService(signer: string, tokenAddress: string, service: InvoiceCreateService, amount: bigint, exactIn?: boolean, additionalParams?: Record<string, any>, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
94
|
+
createFromBTCSwap(signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCOptions): Promise<FromBTCSwap<T[ChainIdentifier]>>;
|
|
95
|
+
createFromBTCLNSwap(signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNOptions): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
|
|
96
|
+
createFromBTCLNSwapViaLNURL(signer: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>): Promise<FromBTCLNSwap<T[ChainIdentifier]>>;
|
|
97
|
+
createFromBTCLNSwapNew(signer: string, tokenAddress: string, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
|
|
98
|
+
createFromBTCLNSwapNewViaLNURL(signer: string, tokenAddress: string, lnurl: string | LNURLWithdraw, amount: bigint, exactOut?: boolean, additionalParams?: Record<string, any>, options?: FromBTCLNAutoOptions): Promise<FromBTCLNAutoSwap<T[ChainIdentifier]>>;
|
|
99
|
+
createTrustedLNForGasSwap(signer: string, amount: bigint, trustedIntermediaryUrl?: string): Promise<LnForGasSwap<T[ChainIdentifier]>>;
|
|
100
|
+
createTrustedOnchainForGasSwap(signer: string, amount: bigint, refundAddress?: string, trustedIntermediaryUrl?: string): Promise<OnchainForGasSwap<T[ChainIdentifier]>>;
|
|
101
|
+
create(signer: string, 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]>>;
|
|
102
|
+
create(signer: string, 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]>)>;
|
|
103
|
+
create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>, amount: bigint, exactIn: boolean, address: string): Promise<ToBTCSwap<T[ChainIdentifier]>>;
|
|
104
|
+
create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: boolean, lnurlPay: string | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
105
|
+
create(signer: string, srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint, exactIn: false, lightningInvoice: string | LNURLWithdraw | LNURLPay): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
106
|
+
swap(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoOptions : FromBTCLNOptions)): Promise<SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? FromBTCLNAutoSwap<T[ChainIdentifier]> : FromBTCLNSwap<T[ChainIdentifier]>>;
|
|
107
|
+
swap(srcToken: BtcToken<false>, dstToken: SCToken<ChainIdentifier>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string, dstSmartchainWallet: string, options?: (SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCOptions : FromBTCOptions)): Promise<(SupportsSwapType<T[ChainIdentifier], SwapType.SPV_VAULT_FROM_BTC> extends true ? SpvFromBTCSwap<T[ChainIdentifier]> : FromBTCSwap<T[ChainIdentifier]>)>;
|
|
108
|
+
swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstAddress: string, options?: ToBTCOptions): Promise<ToBTCSwap<T[ChainIdentifier]>>;
|
|
109
|
+
swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint | string, exactIn: boolean | SwapAmountType, src: string, dstLnurlPayOrInvoiceCreateService: string | LNURLPay | InvoiceCreateService, options?: ToBTCLNOptions & {
|
|
110
|
+
comment?: string;
|
|
111
|
+
}): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
112
|
+
swap(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>, amount: bigint | string, exactIn: false | SwapAmountType.EXACT_OUT, src: string, dstLightningInvoice: string, options?: ToBTCLNOptions): Promise<ToBTCLNSwap<T[ChainIdentifier]>>;
|
|
113
|
+
swap(srcToken: Token<ChainIdentifier> | string, dstToken: Token<ChainIdentifier> | string, amount: bigint | string, exactIn: boolean | SwapAmountType, src: undefined | string | LNURLWithdraw, dst: string | LNURLPay | InvoiceCreateService, options?: FromBTCLNOptions | SpvFromBTCOptions | FromBTCOptions | ToBTCOptions | (ToBTCLNOptions & {
|
|
114
|
+
comment?: string;
|
|
115
|
+
}) | FromBTCLNAutoOptions): Promise<ISwap<T[ChainIdentifier]>>;
|
|
116
|
+
/**
|
|
117
|
+
* Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
|
|
118
|
+
*/
|
|
119
|
+
getAllSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Returns swaps that are in-progress and are claimable for the specific chain, optionally also for a specific signer's address
|
|
122
|
+
*/
|
|
123
|
+
getActionableSwaps(signer?: string): Promise<ISwap<T[ChainIdentifier]>[]>;
|
|
124
|
+
/**
|
|
125
|
+
* Returns swaps that are refundable for the specific chain, optionally also for a specific signer's address
|
|
126
|
+
*/
|
|
127
|
+
getRefundableSwaps(signer?: string): Promise<IToBTCSwap<T[ChainIdentifier]>[]>;
|
|
128
|
+
/**
|
|
129
|
+
* Returns swaps that are due to be claimed/settled manually for the specific chain,
|
|
130
|
+
* optionally also for a specific signer's address
|
|
131
|
+
*/
|
|
132
|
+
getClaimableSwaps(signer?: string): Promise<IClaimableSwap<T[ChainIdentifier]>[]>;
|
|
133
|
+
/**
|
|
134
|
+
* Returns swap with a specific id (identifier) on a specific chain and optionally with a signer
|
|
135
|
+
*/
|
|
136
|
+
getSwapById(id: string, signer?: string): Promise<ISwap<T[ChainIdentifier]>>;
|
|
137
|
+
getToken(tickerOrAddress: string): Token<ChainIdentifier>;
|
|
138
|
+
/**
|
|
139
|
+
* Synchronizes swaps from chain, this is usually ran when SDK is initialized, deletes expired quotes
|
|
140
|
+
*/
|
|
141
|
+
_syncSwaps(signer?: string): Promise<void>;
|
|
142
|
+
supportsSwapType<Type extends SwapType>(swapType: Type): SupportsSwapType<T[ChainIdentifier], Type>;
|
|
143
|
+
/**
|
|
144
|
+
* Returns type of the swap based on input and output tokens specified
|
|
145
|
+
*
|
|
146
|
+
* @param srcToken
|
|
147
|
+
* @param dstToken
|
|
148
|
+
*/
|
|
149
|
+
getSwapType(srcToken: BtcToken<true>, dstToken: SCToken<ChainIdentifier>): (SupportsSwapType<T[ChainIdentifier], SwapType.FROM_BTCLN_AUTO> extends true ? SwapType.FROM_BTCLN_AUTO : SwapType.FROM_BTCLN);
|
|
150
|
+
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);
|
|
151
|
+
getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<false>): SwapType.TO_BTC;
|
|
152
|
+
getSwapType(srcToken: SCToken<ChainIdentifier>, dstToken: BtcToken<true>): SwapType.TO_BTCLN;
|
|
153
|
+
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;
|
|
154
|
+
/**
|
|
155
|
+
* Returns minimum/maximum limits for inputs and outputs for a swap between given tokens
|
|
156
|
+
*
|
|
157
|
+
* @param srcToken
|
|
158
|
+
* @param dstToken
|
|
159
|
+
*/
|
|
160
|
+
getSwapLimits<A extends Token<ChainIdentifier>, B extends Token<ChainIdentifier>>(srcToken: A, dstToken: B): {
|
|
161
|
+
input: {
|
|
162
|
+
min: TokenAmount<string, A>;
|
|
163
|
+
max?: TokenAmount<string, A>;
|
|
164
|
+
};
|
|
165
|
+
output: {
|
|
166
|
+
min: TokenAmount<string, B>;
|
|
167
|
+
max?: TokenAmount<string, B>;
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* Returns a set of supported tokens by all the intermediaries offering a specific swap service
|
|
172
|
+
*
|
|
173
|
+
* @param _swapType Swap service type to check supported tokens for
|
|
174
|
+
*/
|
|
175
|
+
private getSupportedTokens;
|
|
176
|
+
/**
|
|
177
|
+
* Returns the set of supported tokens by all the intermediaries we know of offering a specific swapType service
|
|
178
|
+
*
|
|
179
|
+
* @param swapType Specific swap type for which to obtain supported tokens
|
|
180
|
+
*/
|
|
181
|
+
private getSupportedTokenAddresses;
|
|
182
|
+
/**
|
|
183
|
+
* Returns tokens that you can swap to (if input=true) from a given token,
|
|
184
|
+
* or tokens that you can swap from (if input=false) to a given token
|
|
185
|
+
*/
|
|
186
|
+
getSwapCounterTokens(token: Token, input: boolean): Token<ChainIdentifier>[];
|
|
187
|
+
/**
|
|
188
|
+
* Creates a child swapper instance with a signer
|
|
189
|
+
*
|
|
190
|
+
* @param signer Signer to use for the new swapper instance
|
|
191
|
+
*/
|
|
192
|
+
withChain(signer: T[ChainIdentifier]["Signer"]): SwapperWithSigner<T, ChainIdentifier>;
|
|
193
|
+
/**
|
|
194
|
+
* Returns swap bounds (minimums & maximums) for different swap types & tokens
|
|
195
|
+
* @deprecated Use getSwapLimits() instead!
|
|
196
|
+
*/
|
|
197
|
+
getSwapBounds(): SwapBounds;
|
|
198
|
+
/**
|
|
199
|
+
* Returns maximum possible swap amount
|
|
200
|
+
* @deprecated Use getSwapLimits() instead!
|
|
201
|
+
*
|
|
202
|
+
* @param type Type of the swap
|
|
203
|
+
* @param token Token of the swap
|
|
204
|
+
*/
|
|
205
|
+
getMaximum(type: SwapType, token: string): bigint;
|
|
206
|
+
/**
|
|
207
|
+
* Returns minimum possible swap amount
|
|
208
|
+
* @deprecated Use getSwapLimits() instead!
|
|
209
|
+
*
|
|
210
|
+
* @param type Type of swap
|
|
211
|
+
* @param token Token of the swap
|
|
212
|
+
*/
|
|
213
|
+
getMinimum(type: SwapType, token: string): bigint;
|
|
214
|
+
}
|