@atomiqlabs/sdk 7.0.11 → 8.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -29
- package/dist/SmartChainAssets.d.ts +11 -3
- package/dist/SmartChainAssets.js +7 -3
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +68 -0
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +2 -0
- package/dist/bitcoin/LightningNetworkApi.d.ts +12 -0
- package/dist/bitcoin/LightningNetworkApi.js +2 -0
- package/dist/bitcoin/coinselect2/accumulative.d.ts +6 -0
- package/dist/bitcoin/coinselect2/accumulative.js +52 -0
- package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -0
- package/dist/bitcoin/coinselect2/blackjack.js +38 -0
- package/dist/bitcoin/coinselect2/index.d.ts +19 -0
- package/dist/bitcoin/coinselect2/index.js +69 -0
- package/dist/bitcoin/coinselect2/utils.d.ts +71 -0
- package/dist/bitcoin/coinselect2/utils.js +123 -0
- package/dist/bitcoin/mempool/MempoolApi.d.ts +350 -0
- package/dist/bitcoin/mempool/MempoolApi.js +311 -0
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +44 -0
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +48 -0
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +119 -0
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +361 -0
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +22 -0
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +105 -0
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +93 -0
- package/dist/bitcoin/wallet/BitcoinWallet.js +273 -0
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +28 -0
- package/dist/bitcoin/wallet/IBitcoinWallet.js +20 -0
- package/dist/bitcoin/wallet/MinimalBitcoinWalletInterface.d.ts +21 -0
- package/dist/bitcoin/wallet/MinimalBitcoinWalletInterface.js +2 -0
- package/dist/bitcoin/wallet/MinimalLightningNetworkWalletInterface.d.ts +7 -0
- package/dist/bitcoin/wallet/MinimalLightningNetworkWalletInterface.js +2 -0
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +40 -0
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +86 -0
- package/dist/enums/FeeType.d.ts +8 -0
- package/dist/enums/FeeType.js +12 -0
- package/dist/enums/SwapAmountType.d.ts +8 -0
- package/dist/enums/SwapAmountType.js +12 -0
- package/dist/enums/SwapDirection.d.ts +8 -0
- package/dist/enums/SwapDirection.js +12 -0
- package/dist/enums/SwapType.d.ts +14 -0
- package/dist/enums/SwapType.js +18 -0
- package/dist/errors/IntermediaryError.d.ts +9 -0
- package/dist/errors/IntermediaryError.js +26 -0
- package/dist/errors/PaymentAuthError.d.ts +11 -0
- package/dist/errors/PaymentAuthError.js +23 -0
- package/dist/errors/RequestError.d.ts +18 -0
- package/dist/errors/RequestError.js +46 -0
- package/dist/errors/UserError.d.ts +7 -0
- package/dist/errors/UserError.js +15 -0
- package/dist/events/UnifiedSwapEventListener.d.ts +23 -0
- package/dist/events/UnifiedSwapEventListener.js +130 -0
- package/dist/http/HttpUtils.d.ts +27 -0
- package/dist/http/HttpUtils.js +91 -0
- package/dist/http/paramcoders/IParamReader.d.ts +8 -0
- package/dist/http/paramcoders/IParamReader.js +2 -0
- package/dist/http/paramcoders/ParamDecoder.d.ts +44 -0
- package/dist/http/paramcoders/ParamDecoder.js +132 -0
- package/dist/http/paramcoders/ParamEncoder.d.ts +20 -0
- package/dist/http/paramcoders/ParamEncoder.js +31 -0
- package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -0
- package/dist/http/paramcoders/SchemaVerifier.js +145 -0
- package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -0
- package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -0
- package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -0
- package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -0
- package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -0
- package/dist/http/paramcoders/client/StreamingFetchPromise.js +174 -0
- package/dist/index.d.ts +82 -4
- package/dist/index.js +128 -4
- package/dist/intermediaries/Intermediary.d.ts +111 -0
- package/dist/intermediaries/Intermediary.js +115 -0
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +166 -0
- package/dist/intermediaries/IntermediaryDiscovery.js +390 -0
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +436 -0
- package/dist/intermediaries/apis/IntermediaryAPI.js +600 -0
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +154 -0
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +136 -0
- package/dist/lnurl/LNURL.d.ts +102 -0
- package/dist/lnurl/LNURL.js +321 -0
- package/dist/prices/RedundantSwapPrice.d.ts +89 -0
- package/dist/prices/RedundantSwapPrice.js +202 -0
- package/dist/prices/SingleSwapPrice.d.ts +31 -0
- package/dist/prices/SingleSwapPrice.js +41 -0
- package/dist/prices/SwapPriceWithChain.d.ts +70 -0
- package/dist/prices/SwapPriceWithChain.js +91 -0
- package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -0
- package/dist/prices/abstract/ICachedSwapPrice.js +62 -0
- package/dist/prices/abstract/IPriceProvider.d.ts +81 -0
- package/dist/prices/abstract/IPriceProvider.js +74 -0
- package/dist/prices/abstract/ISwapPrice.d.ts +117 -0
- package/dist/prices/abstract/ISwapPrice.js +219 -0
- package/dist/prices/providers/BinancePriceProvider.d.ts +16 -0
- package/dist/prices/providers/BinancePriceProvider.js +23 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +17 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.js +23 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +19 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +23 -0
- package/dist/prices/providers/CustomPriceProvider.d.ts +13 -0
- package/dist/prices/providers/CustomPriceProvider.js +24 -0
- package/dist/prices/providers/KrakenPriceProvider.d.ts +29 -0
- package/dist/prices/providers/KrakenPriceProvider.js +36 -0
- package/dist/prices/providers/OKXPriceProvider.d.ts +28 -0
- package/dist/prices/providers/OKXPriceProvider.js +23 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +14 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +18 -0
- package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -0
- package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -0
- package/dist/storage/IUnifiedStorage.d.ts +73 -0
- package/dist/storage/IUnifiedStorage.js +2 -0
- package/dist/storage/UnifiedSwapStorage.d.ts +82 -0
- package/dist/storage/UnifiedSwapStorage.js +83 -0
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +39 -0
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +275 -0
- package/dist/{storage → storage-browser}/LocalStorageManager.d.ts +1 -0
- package/dist/{storage → storage-browser}/LocalStorageManager.js +2 -1
- package/dist/swapper/Swapper.d.ts +533 -0
- package/dist/swapper/Swapper.js +1566 -0
- package/dist/swapper/SwapperFactory.d.ts +87 -0
- package/dist/{SwapperFactory.js → swapper/SwapperFactory.js} +40 -22
- package/dist/swapper/SwapperUtils.d.ts +153 -0
- package/dist/swapper/SwapperUtils.js +420 -0
- package/dist/swapper/SwapperWithChain.d.ts +214 -0
- package/dist/swapper/SwapperWithChain.js +315 -0
- package/dist/swapper/SwapperWithSigner.d.ts +178 -0
- package/dist/swapper/SwapperWithSigner.js +172 -0
- package/dist/swaps/IAddressSwap.d.ts +13 -0
- package/dist/swaps/IAddressSwap.js +13 -0
- package/dist/swaps/IBTCWalletSwap.d.ts +55 -0
- package/dist/swaps/IBTCWalletSwap.js +17 -0
- package/dist/swaps/IClaimableSwap.d.ts +17 -0
- package/dist/swaps/IClaimableSwap.js +14 -0
- package/dist/swaps/IClaimableSwapWrapper.d.ts +5 -0
- package/dist/swaps/IClaimableSwapWrapper.js +2 -0
- package/dist/swaps/IRefundableSwap.d.ts +17 -0
- package/dist/swaps/IRefundableSwap.js +13 -0
- package/dist/swaps/ISwap.d.ts +207 -0
- package/dist/swaps/ISwap.js +264 -0
- package/dist/swaps/ISwapWithGasDrop.d.ts +15 -0
- package/dist/swaps/ISwapWithGasDrop.js +11 -0
- package/dist/swaps/ISwapWrapper.d.ts +153 -0
- package/dist/swaps/ISwapWrapper.js +227 -0
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +53 -0
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +116 -0
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +70 -0
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +132 -0
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +85 -0
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +122 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +86 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +115 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +93 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +121 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +45 -0
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +65 -0
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +263 -0
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +933 -0
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +110 -0
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +307 -0
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +236 -0
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +898 -0
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +125 -0
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +393 -0
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +245 -0
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +841 -0
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +120 -0
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +294 -0
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +228 -0
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +721 -0
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +37 -0
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +93 -0
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +86 -0
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +213 -0
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +170 -0
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +520 -0
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +50 -0
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +109 -0
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +93 -0
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +217 -0
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +315 -0
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1098 -0
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +125 -0
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +631 -0
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +107 -0
- package/dist/swaps/trusted/ln/LnForGasSwap.js +343 -0
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +21 -0
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +62 -0
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +164 -0
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +520 -0
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +48 -0
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +74 -0
- package/dist/types/AmountData.d.ts +9 -0
- package/dist/types/AmountData.js +2 -0
- package/dist/types/CustomPriceFunction.d.ts +5 -0
- package/dist/types/CustomPriceFunction.js +2 -0
- package/dist/types/PriceInfoType.d.ts +28 -0
- package/dist/types/PriceInfoType.js +57 -0
- package/dist/types/SwapExecutionAction.d.ts +7 -0
- package/dist/types/SwapExecutionAction.js +2 -0
- package/dist/types/SwapWithSigner.d.ts +14 -0
- package/dist/types/SwapWithSigner.js +40 -0
- package/dist/types/Token.d.ts +53 -0
- package/dist/types/Token.js +58 -0
- package/dist/types/TokenAmount.d.ts +57 -0
- package/dist/types/TokenAmount.js +47 -0
- package/dist/types/fees/Fee.d.ts +49 -0
- package/dist/types/fees/Fee.js +2 -0
- package/dist/types/fees/FeeBreakdown.d.ts +10 -0
- package/dist/types/fees/FeeBreakdown.js +2 -0
- package/dist/types/fees/PercentagePPM.d.ts +15 -0
- package/dist/types/fees/PercentagePPM.js +17 -0
- package/dist/types/lnurl/LNURLPay.d.ts +54 -0
- package/dist/types/lnurl/LNURLPay.js +28 -0
- package/dist/types/lnurl/LNURLWithdraw.d.ts +42 -0
- package/dist/types/lnurl/LNURLWithdraw.js +24 -0
- package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -0
- package/dist/utils/AutomaticClockDriftCorrection.js +70 -0
- package/dist/utils/BitcoinUtils.d.ts +13 -0
- package/dist/utils/BitcoinUtils.js +98 -0
- package/dist/utils/BitcoinWalletUtils.d.ts +7 -0
- package/dist/utils/BitcoinWalletUtils.js +14 -0
- package/dist/utils/Logger.d.ts +7 -0
- package/dist/utils/Logger.js +12 -0
- package/dist/utils/RetryUtils.d.ts +21 -0
- package/dist/utils/RetryUtils.js +66 -0
- package/dist/utils/SwapUtils.d.ts +31 -0
- package/dist/utils/SwapUtils.js +18 -0
- package/dist/{Utils.d.ts → utils/TimeoutUtils.d.ts} +9 -3
- package/dist/utils/TimeoutUtils.js +55 -0
- package/dist/utils/TokenUtils.d.ts +11 -0
- package/dist/utils/TokenUtils.js +29 -0
- package/dist/utils/TypeUtils.d.ts +7 -0
- package/dist/utils/TypeUtils.js +2 -0
- package/dist/utils/Utils.d.ts +57 -0
- package/dist/utils/Utils.js +178 -0
- package/package.json +14 -6
- package/src/SmartChainAssets.ts +11 -3
- package/src/bitcoin/BitcoinRpcWithAddressIndex.ts +87 -0
- package/src/bitcoin/LightningNetworkApi.ts +16 -0
- package/src/bitcoin/coinselect2/accumulative.ts +68 -0
- package/src/bitcoin/coinselect2/blackjack.ts +49 -0
- package/src/bitcoin/coinselect2/index.ts +92 -0
- package/src/bitcoin/coinselect2/utils.ts +189 -0
- package/src/bitcoin/mempool/MempoolApi.ts +554 -0
- package/src/bitcoin/mempool/MempoolBitcoinBlock.ts +88 -0
- package/src/bitcoin/mempool/MempoolBitcoinRpc.ts +437 -0
- package/src/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.ts +134 -0
- package/src/bitcoin/wallet/BitcoinWallet.ts +375 -0
- package/src/bitcoin/wallet/IBitcoinWallet.ts +44 -0
- package/src/bitcoin/wallet/MinimalBitcoinWalletInterface.ts +19 -0
- package/src/bitcoin/wallet/MinimalLightningNetworkWalletInterface.ts +7 -0
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +108 -0
- package/src/enums/FeeType.ts +9 -0
- package/src/enums/SwapAmountType.ts +9 -0
- package/src/enums/SwapDirection.ts +9 -0
- package/src/enums/SwapType.ts +15 -0
- package/src/errors/IntermediaryError.ts +24 -0
- package/src/errors/PaymentAuthError.ts +26 -0
- package/src/errors/RequestError.ts +51 -0
- package/src/errors/UserError.ts +14 -0
- package/src/events/UnifiedSwapEventListener.ts +171 -0
- package/src/http/HttpUtils.ts +92 -0
- package/src/http/paramcoders/IParamReader.ts +10 -0
- package/src/http/paramcoders/ParamDecoder.ts +142 -0
- package/src/http/paramcoders/ParamEncoder.ts +37 -0
- package/src/http/paramcoders/SchemaVerifier.ts +153 -0
- package/src/http/paramcoders/client/ResponseParamDecoder.ts +58 -0
- package/src/http/paramcoders/client/StreamParamEncoder.ts +29 -0
- package/src/http/paramcoders/client/StreamingFetchPromise.ts +193 -0
- package/src/index.ts +102 -4
- package/src/intermediaries/Intermediary.ts +204 -0
- package/src/intermediaries/IntermediaryDiscovery.ts +485 -0
- package/src/intermediaries/apis/IntermediaryAPI.ts +940 -0
- package/src/intermediaries/apis/TrustedIntermediaryAPI.ts +257 -0
- package/src/lnurl/LNURL.ts +403 -0
- package/src/prices/RedundantSwapPrice.ts +245 -0
- package/src/prices/SingleSwapPrice.ts +47 -0
- package/src/prices/SwapPriceWithChain.ts +157 -0
- package/src/prices/abstract/ICachedSwapPrice.ts +86 -0
- package/src/prices/abstract/IPriceProvider.ts +128 -0
- package/src/prices/abstract/ISwapPrice.ts +328 -0
- package/src/prices/providers/BinancePriceProvider.ts +41 -0
- package/src/prices/providers/CoinGeckoPriceProvider.ts +40 -0
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +44 -0
- package/src/prices/providers/CustomPriceProvider.ts +29 -0
- package/src/prices/providers/KrakenPriceProvider.ts +74 -0
- package/src/prices/providers/OKXPriceProvider.ts +53 -0
- package/src/prices/providers/abstract/ExchangePriceProvider.ts +29 -0
- package/src/prices/providers/abstract/HttpPriceProvider.ts +15 -0
- package/src/storage/IUnifiedStorage.ts +83 -0
- package/src/storage/UnifiedSwapStorage.ts +104 -0
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +328 -0
- package/src/{storage → storage-browser}/LocalStorageManager.ts +2 -1
- package/src/swapper/Swapper.ts +2107 -0
- package/src/{SwapperFactory.ts → swapper/SwapperFactory.ts} +116 -75
- package/src/swapper/SwapperUtils.ts +510 -0
- package/src/swapper/SwapperWithChain.ts +464 -0
- package/src/swapper/SwapperWithSigner.ts +300 -0
- package/src/swaps/IAddressSwap.ts +20 -0
- package/src/swaps/IBTCWalletSwap.ts +77 -0
- package/src/swaps/IClaimableSwap.ts +30 -0
- package/src/swaps/IClaimableSwapWrapper.ts +9 -0
- package/src/swaps/IRefundableSwap.ts +29 -0
- package/src/swaps/ISwap.ts +490 -0
- package/src/swaps/ISwapWithGasDrop.ts +19 -0
- package/src/swaps/ISwapWrapper.ts +344 -0
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +168 -0
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +197 -0
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +210 -0
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +150 -0
- package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +219 -0
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +84 -0
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +1082 -0
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +429 -0
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1078 -0
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +549 -0
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +974 -0
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +443 -0
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +860 -0
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +104 -0
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +256 -0
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +716 -0
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +151 -0
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +299 -0
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +1394 -0
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +796 -0
- package/src/swaps/trusted/ln/LnForGasSwap.ts +402 -0
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +70 -0
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +633 -0
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +110 -0
- package/src/types/AmountData.ts +9 -0
- package/src/types/CustomPriceFunction.ts +5 -0
- package/src/types/PriceInfoType.ts +67 -0
- package/src/types/SwapExecutionAction.ts +8 -0
- package/src/types/SwapWithSigner.ts +57 -0
- package/src/types/Token.ts +90 -0
- package/src/types/TokenAmount.ts +110 -0
- package/src/types/fees/Fee.ts +55 -0
- package/src/types/fees/FeeBreakdown.ts +11 -0
- package/src/types/fees/PercentagePPM.ts +24 -0
- package/src/types/lnurl/LNURLPay.ts +72 -0
- package/src/types/lnurl/LNURLWithdraw.ts +55 -0
- package/src/utils/AutomaticClockDriftCorrection.ts +71 -0
- package/src/utils/BitcoinUtils.ts +86 -0
- package/src/utils/BitcoinWalletUtils.ts +16 -0
- package/src/utils/Logger.ts +15 -0
- package/src/utils/RetryUtils.ts +71 -0
- package/src/utils/SwapUtils.ts +38 -0
- package/src/utils/TimeoutUtils.ts +50 -0
- package/src/utils/TokenUtils.ts +25 -0
- package/src/utils/TypeUtils.ts +9 -0
- package/src/utils/Utils.ts +182 -0
- package/dist/SwapperFactory.d.ts +0 -52
- package/dist/Utils.js +0 -37
- package/dist/fs-storage/FileSystemStorageManager.d.ts +0 -15
- package/dist/fs-storage/FileSystemStorageManager.js +0 -60
- package/dist/fs-storage/index.d.ts +0 -1
- package/dist/fs-storage/index.js +0 -17
- package/src/SmartChainAssets.js +0 -75
- package/src/SwapperFactory.js +0 -120
- package/src/Utils.js +0 -37
- package/src/Utils.ts +0 -31
- package/src/fs-storage/FileSystemStorageManager.ts +0 -71
- package/src/fs-storage/index.ts +0 -1
- package/src/index.js +0 -21
- package/src/storage/LocalStorageManager.js +0 -72
|
@@ -1,54 +1,42 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ChainData,
|
|
3
3
|
BitcoinNetwork,
|
|
4
|
-
BitcoinRpc,
|
|
5
|
-
BaseTokenType,
|
|
6
4
|
ChainType,
|
|
7
5
|
StorageObject,
|
|
8
|
-
IStorageManager, Messenger
|
|
6
|
+
IStorageManager, Messenger, ChainInitializer
|
|
9
7
|
} from "@atomiqlabs/base";
|
|
10
|
-
import {
|
|
11
|
-
BitcoinTokens,
|
|
12
|
-
BtcToken, CustomPriceFunction, CustomPriceProvider,
|
|
13
|
-
MempoolApi,
|
|
14
|
-
MempoolBitcoinRpc, RedundantSwapPrice,
|
|
15
|
-
RedundantSwapPriceAssets, SCToken, SingleSwapPrice, Swapper,
|
|
16
|
-
SwapperOptions
|
|
17
|
-
} from "@atomiqlabs/sdk-lib";
|
|
18
|
-
import {SmartChainAssets} from "./SmartChainAssets";
|
|
19
|
-
import {LocalStorageManager} from "./storage/LocalStorageManager";
|
|
8
|
+
import {SmartChainAssets, SmartChainAssetTickers} from "../SmartChainAssets";
|
|
20
9
|
import {NostrMessenger} from "@atomiqlabs/messenger-nostr";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
10
|
+
import {Swapper, SwapperOptions} from "./Swapper";
|
|
11
|
+
import {MempoolApi} from "../bitcoin/mempool/MempoolApi";
|
|
12
|
+
import {MempoolBitcoinRpc} from "../bitcoin/mempool/MempoolBitcoinRpc";
|
|
13
|
+
import {CustomPriceProvider} from "../prices/providers/CustomPriceProvider";
|
|
14
|
+
import {BitcoinTokens, BtcToken, SCToken} from "../types/Token";
|
|
15
|
+
import {SwapType} from "../enums/SwapType";
|
|
16
|
+
import {SwapTypeMapping} from "../utils/SwapUtils";
|
|
17
|
+
import {RedundantSwapPrice, RedundantSwapPriceAssets} from "../prices/RedundantSwapPrice";
|
|
18
|
+
import {LocalStorageManager} from "../storage-browser/LocalStorageManager";
|
|
19
|
+
import {SingleSwapPrice} from "../prices/SingleSwapPrice";
|
|
20
|
+
import {CustomPriceFunction} from "../types/CustomPriceFunction";
|
|
21
|
+
|
|
22
|
+
//Helper types
|
|
23
|
+
type ChainTypeDict<T extends ChainInitializer<any, any, any>> = {[K in T["chainId"]]: T["chainType"]};
|
|
24
|
+
type ToMultichain<T extends readonly ChainInitializer<any, any, any>[]> =
|
|
25
|
+
(T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]]
|
|
26
|
+
? ChainTypeDict<First> & ToMultichain<Rest>
|
|
27
|
+
: {});
|
|
34
28
|
|
|
35
29
|
type TokensDict<T extends ChainInitializer<any, any, any>> = {
|
|
36
|
-
[K in T["chainId"]]:
|
|
37
|
-
[val in keyof T["tokens"]]: SCToken<K>
|
|
38
|
-
}
|
|
30
|
+
[K in T["chainId"]]: TypedChainTokens<T>
|
|
39
31
|
};
|
|
40
32
|
type GetAllTokens<T extends readonly ChainInitializer<any, any, any>[]> =
|
|
41
33
|
(T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]]
|
|
42
34
|
? TokensDict<First> & GetAllTokens<Rest>
|
|
43
35
|
: unknown);
|
|
44
36
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
type GetAllTokenResolvers<T extends readonly ChainInitializer<any, any, any>[]> =
|
|
49
|
-
(T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]]
|
|
50
|
-
? TokenResolverDict<First> & GetAllTokenResolvers<Rest>
|
|
51
|
-
: unknown);
|
|
37
|
+
type TokenResolverDict<T extends ChainInitializer<any, any, any>> = {
|
|
38
|
+
[K in T["chainId"]]: TypedChainTokenResolver<T>
|
|
39
|
+
};
|
|
52
40
|
|
|
53
41
|
type OptionsDict<T extends ChainInitializer<any, any, any>> = {[K in T["chainId"]]: T["options"]};
|
|
54
42
|
type GetAllOptions<T extends readonly ChainInitializer<any, any, any>[]> =
|
|
@@ -56,51 +44,100 @@ type GetAllOptions<T extends readonly ChainInitializer<any, any, any>[]> =
|
|
|
56
44
|
? OptionsDict<First> & GetAllOptions<Rest>
|
|
57
45
|
: unknown);
|
|
58
46
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
chains: GetAllOptions<T>
|
|
67
|
-
} & {
|
|
47
|
+
//Exported types
|
|
48
|
+
/**
|
|
49
|
+
* Configuration options for creating a typed Swapper instance
|
|
50
|
+
* @category Core
|
|
51
|
+
*/
|
|
52
|
+
export type TypedSwapperOptions<T extends readonly ChainInitializer<any, any, any>[]> = {
|
|
53
|
+
chains: GetAllOptions<T>,
|
|
68
54
|
chainStorageCtor?: <T extends StorageObject>(name: string) => IStorageManager<T>,
|
|
69
55
|
pricingFeeDifferencePPM?: bigint,
|
|
56
|
+
getPriceFn?: CustomPriceFunction,
|
|
70
57
|
mempoolApi?: MempoolApi | MempoolBitcoinRpc | string | string[],
|
|
71
58
|
messenger?: Messenger,
|
|
72
|
-
|
|
59
|
+
} & SwapperOptions;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Token resolver for a specific chain
|
|
63
|
+
* @category Core
|
|
64
|
+
*/
|
|
65
|
+
export type TypedChainTokenResolver<T extends ChainInitializer<any, any, any>> = {
|
|
66
|
+
getToken: (address: string) => SCToken<T["chainId"]>
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Token resolvers for all chains
|
|
71
|
+
* @category Core
|
|
72
|
+
*/
|
|
73
|
+
export type TypedTokenResolvers<T extends readonly ChainInitializer<any, any, any>[]> =
|
|
74
|
+
(T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]]
|
|
75
|
+
? TokenResolverDict<First> & TypedTokenResolvers<Rest>
|
|
76
|
+
: unknown);
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Token definitions for a specific chain
|
|
80
|
+
* @category Core
|
|
81
|
+
*/
|
|
82
|
+
export type TypedChainTokens<T extends ChainInitializer<any, any, any>> = {
|
|
83
|
+
[val in keyof T["tokens"]]: SCToken<T["chainId"]>
|
|
73
84
|
};
|
|
74
85
|
|
|
75
|
-
|
|
86
|
+
/**
|
|
87
|
+
* All tokens including Bitcoin tokens
|
|
88
|
+
* @category Core
|
|
89
|
+
*/
|
|
90
|
+
export type TypedTokens<T extends readonly ChainInitializer<any, ChainType, any>[]> = GetAllTokens<T> & {
|
|
91
|
+
BITCOIN: {
|
|
92
|
+
BTC: BtcToken<false>,
|
|
93
|
+
BTCLN: BtcToken<true>
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Type alias for a Swapper instance with typed chain support
|
|
99
|
+
* @category Core
|
|
100
|
+
*/
|
|
101
|
+
export type TypedSwapper<T extends readonly ChainInitializer<any, ChainType, any>[]> = Swapper<ToMultichain<T>>;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Type alias for a specific swap type on a chain
|
|
105
|
+
* @category Core
|
|
106
|
+
*/
|
|
107
|
+
export type TypedSwap<
|
|
108
|
+
T extends ChainInitializer<any, ChainType, any>,
|
|
109
|
+
S extends SwapType
|
|
110
|
+
> = SwapTypeMapping<T["chainType"]>[S];
|
|
111
|
+
|
|
112
|
+
const registries: {[key in BitcoinNetwork]?: string} = {
|
|
76
113
|
[BitcoinNetwork.MAINNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry-mainnet.json?ref=main",
|
|
77
114
|
[BitcoinNetwork.TESTNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry.json?ref=main",
|
|
78
115
|
[BitcoinNetwork.TESTNET4]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry-testnet4.json?ref=main"
|
|
79
116
|
}
|
|
80
117
|
|
|
81
|
-
const trustedIntermediaries = {
|
|
118
|
+
const trustedIntermediaries: {[key in BitcoinNetwork]?: string} = {
|
|
82
119
|
[BitcoinNetwork.MAINNET]: "https://node3.gethopa.com:34100",
|
|
83
120
|
[BitcoinNetwork.TESTNET]: "https://node3.gethopa.com:24100"
|
|
84
121
|
}
|
|
85
122
|
|
|
86
|
-
const mempoolUrls = {
|
|
123
|
+
const mempoolUrls: {[key in BitcoinNetwork]?: string[]} = {
|
|
87
124
|
[BitcoinNetwork.MAINNET]: [
|
|
88
125
|
"https://mempool.space/api/",
|
|
89
|
-
"https://mempool.holdings/api/",
|
|
126
|
+
// "https://mempool.holdings/api/",
|
|
90
127
|
"https://mempool.fra.mempool.space/api/",
|
|
91
128
|
"https://mempool.va1.mempool.space/api/",
|
|
92
129
|
"https://mempool.tk7.mempool.space/api/"
|
|
93
130
|
],
|
|
94
131
|
[BitcoinNetwork.TESTNET]: [
|
|
95
132
|
"https://mempool.space/testnet/api/",
|
|
96
|
-
"https://mempool.holdings/testnet/api/",
|
|
133
|
+
// "https://mempool.holdings/testnet/api/",
|
|
97
134
|
"https://mempool.fra.mempool.space/testnet/api/",
|
|
98
135
|
"https://mempool.va1.mempool.space/testnet/api/",
|
|
99
136
|
"https://mempool.tk7.mempool.space/testnet/api/"
|
|
100
137
|
],
|
|
101
138
|
[BitcoinNetwork.TESTNET4]: [
|
|
102
139
|
"https://mempool.space/testnet4/api/",
|
|
103
|
-
"https://mempool.holdings/testnet4/api/",
|
|
140
|
+
// "https://mempool.holdings/testnet4/api/",
|
|
104
141
|
"https://mempool.fra.mempool.space/testnet4/api/",
|
|
105
142
|
"https://mempool.va1.mempool.space/testnet4/api/",
|
|
106
143
|
"https://mempool.tk7.mempool.space/testnet4/api/"
|
|
@@ -111,55 +148,58 @@ const nostrUrls: string[] = [
|
|
|
111
148
|
"wss://relay.damus.io", "wss://nostr.einundzwanzig.space", "wss://relay01.lnfi.network/", "wss://relay.puresignal.news/", "wss://relay.fountain.fm/", "wss://sendit.nosflare.com/"
|
|
112
149
|
];
|
|
113
150
|
|
|
114
|
-
|
|
151
|
+
/**
|
|
152
|
+
* Factory class for creating and initializing Swapper instances with typed chain support
|
|
153
|
+
* @category Core
|
|
154
|
+
*/
|
|
155
|
+
export class SwapperFactory<T extends readonly ChainInitializer<any, ChainType, any>[]> {
|
|
115
156
|
|
|
116
|
-
Tokens:
|
|
117
|
-
BITCOIN: {
|
|
118
|
-
BTC: BtcToken<false>,
|
|
119
|
-
BTCLN: BtcToken<true>
|
|
120
|
-
}
|
|
121
|
-
} = {
|
|
157
|
+
Tokens: TypedTokens<T> = {
|
|
122
158
|
BITCOIN: BitcoinTokens
|
|
123
159
|
} as any;
|
|
124
|
-
TokenResolver:
|
|
160
|
+
TokenResolver: TypedTokenResolvers<T> = {} as any;
|
|
125
161
|
|
|
126
162
|
constructor(readonly initializers: T) {
|
|
127
163
|
this.initializers = initializers;
|
|
128
164
|
initializers.forEach(initializer => {
|
|
129
165
|
const addressMap: {[tokenAddress: string]: SCToken} = {};
|
|
130
166
|
|
|
131
|
-
this.Tokens[initializer.chainId] = {} as any;
|
|
167
|
+
const tokens = (this.Tokens[initializer.chainId as keyof GetAllTokens<T>] = {} as any);
|
|
132
168
|
|
|
133
169
|
for(let ticker in initializer.tokens) {
|
|
134
170
|
const assetData = initializer.tokens[ticker] as any;
|
|
135
|
-
|
|
171
|
+
tokens[ticker] = addressMap[assetData.address] = {
|
|
136
172
|
chain: "SC",
|
|
137
173
|
chainId: initializer.chainId,
|
|
138
174
|
address: assetData.address,
|
|
139
|
-
name: SmartChainAssets[ticker]?.name ?? ticker,
|
|
175
|
+
name: SmartChainAssets[ticker as SmartChainAssetTickers]?.name ?? ticker,
|
|
140
176
|
decimals: assetData.decimals,
|
|
141
177
|
displayDecimals: assetData.displayDecimals,
|
|
142
178
|
ticker
|
|
143
179
|
} as any;
|
|
144
180
|
}
|
|
145
181
|
|
|
146
|
-
this.TokenResolver[initializer.chainId] = {
|
|
182
|
+
this.TokenResolver[initializer.chainId as keyof TypedTokenResolvers<T>] = {
|
|
147
183
|
getToken: (address: string) => addressMap[address]
|
|
148
184
|
} as any;
|
|
149
185
|
});
|
|
150
186
|
}
|
|
151
187
|
|
|
152
|
-
newSwapper(options:
|
|
153
|
-
options.bitcoinNetwork ??= BitcoinNetwork.MAINNET
|
|
188
|
+
newSwapper(options: TypedSwapperOptions<T>): TypedSwapper<T> {
|
|
189
|
+
options.bitcoinNetwork ??= BitcoinNetwork.MAINNET;
|
|
154
190
|
options.storagePrefix ??= "atomiqsdk-"+options.bitcoinNetwork+"-";
|
|
155
191
|
options.messenger ??= new NostrMessenger(options.bitcoinNetwork, nostrUrls);
|
|
156
|
-
|
|
157
192
|
options.defaultTrustedIntermediaryUrl ??= trustedIntermediaries[options.bitcoinNetwork];
|
|
158
|
-
|
|
159
193
|
options.registryUrl ??= registries[options.bitcoinNetwork];
|
|
160
194
|
|
|
161
|
-
|
|
162
|
-
|
|
195
|
+
let bitcoinRpc: MempoolBitcoinRpc;
|
|
196
|
+
if(options.mempoolApi!=null) {
|
|
197
|
+
bitcoinRpc = options.mempoolApi instanceof MempoolBitcoinRpc ? options.mempoolApi : new MempoolBitcoinRpc(options.mempoolApi);
|
|
198
|
+
} else {
|
|
199
|
+
const urls = mempoolUrls[options.bitcoinNetwork];
|
|
200
|
+
if(urls==null) throw new Error(`No pre-configured urls for ${BitcoinNetwork[options.bitcoinNetwork]} network were found, please explicitly pass mempoolApi parameter!`);
|
|
201
|
+
bitcoinRpc = new MempoolBitcoinRpc(urls);
|
|
202
|
+
}
|
|
163
203
|
|
|
164
204
|
const pricingAssets: (RedundantSwapPriceAssets<ToMultichain<T>>[number] & {ticker: string, name: string})[] = [];
|
|
165
205
|
Object.keys(SmartChainAssets).forEach((ticker) => {
|
|
@@ -167,7 +207,7 @@ export class SwapperFactory<T extends readonly ChainInitializer<any, any, any>[]
|
|
|
167
207
|
for(let {tokens, chainId} of this.initializers) {
|
|
168
208
|
if(tokens[ticker]!=null) chains[chainId] = tokens[ticker];
|
|
169
209
|
}
|
|
170
|
-
const assetData = SmartChainAssets[ticker];
|
|
210
|
+
const assetData = SmartChainAssets[ticker as SmartChainAssetTickers];
|
|
171
211
|
pricingAssets.push({
|
|
172
212
|
...assetData.pricing,
|
|
173
213
|
chains,
|
|
@@ -176,12 +216,13 @@ export class SwapperFactory<T extends readonly ChainInitializer<any, any, any>[]
|
|
|
176
216
|
})
|
|
177
217
|
});
|
|
178
218
|
|
|
179
|
-
options.chainStorageCtor ??= (name: string) => new LocalStorageManager(name);
|
|
219
|
+
options.chainStorageCtor ??= <T extends StorageObject>(name: string) => new LocalStorageManager<T>(name);
|
|
180
220
|
|
|
181
221
|
const chains: {[key in T[number]["chainId"]]: ChainData<any>} = {} as any;
|
|
182
222
|
for(let {initializer, chainId} of this.initializers) {
|
|
183
|
-
|
|
184
|
-
|
|
223
|
+
const chainOptions = options.chains[chainId as keyof GetAllOptions<T>];
|
|
224
|
+
if(chainOptions==null) continue;
|
|
225
|
+
chains[chainId as T[number]["chainId"]] = initializer(chainOptions, bitcoinRpc, options.bitcoinNetwork, options.chainStorageCtor) as any;
|
|
185
226
|
}
|
|
186
227
|
|
|
187
228
|
const swapPricing = options.getPriceFn!=null ?
|
|
@@ -203,7 +244,7 @@ export class SwapperFactory<T extends readonly ChainInitializer<any, any, any>[]
|
|
|
203
244
|
);
|
|
204
245
|
}
|
|
205
246
|
|
|
206
|
-
async newSwapperInitialized(options:
|
|
247
|
+
async newSwapperInitialized(options: TypedSwapperOptions<T>): Promise<TypedSwapper<T>> {
|
|
207
248
|
const swapper = this.newSwapper(options);
|
|
208
249
|
await swapper.init();
|
|
209
250
|
return swapper;
|