@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,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.utils = exports.DUST_THRESHOLDS = void 0;
|
|
4
|
+
const Logger_1 = require("../../utils/Logger");
|
|
5
|
+
const logger = (0, Logger_1.getLogger)("CoinSelect: ");
|
|
6
|
+
// baseline estimates, used to improve performance
|
|
7
|
+
const TX_EMPTY_SIZE = 4 + 1 + 1 + 4;
|
|
8
|
+
const TX_INPUT_BASE = 32 + 4 + 1 + 4;
|
|
9
|
+
const WITNESS_OVERHEAD = 2 / 4;
|
|
10
|
+
const P2WPKH_WITNESS = (1 + 1 + 72 + 1 + 33) / 4;
|
|
11
|
+
const P2TR_WITNESS = (1 + 1 + 65) / 4;
|
|
12
|
+
const TX_INPUT_PUBKEYHASH = 107;
|
|
13
|
+
const TX_INPUT_P2SH_P2WPKH = 23 + P2WPKH_WITNESS + 1;
|
|
14
|
+
const TX_INPUT_P2WPKH = 0 + P2WPKH_WITNESS;
|
|
15
|
+
const TX_INPUT_P2WSH = 0 + (1 + 1 + 64) / 4;
|
|
16
|
+
const TX_INPUT_P2TR = 0 + P2TR_WITNESS;
|
|
17
|
+
const TX_OUTPUT_BASE = 8 + 1;
|
|
18
|
+
const TX_OUTPUT_PUBKEYHASH = 25;
|
|
19
|
+
const TX_OUTPUT_P2SH_P2WPKH = 23;
|
|
20
|
+
const TX_OUTPUT_P2WPKH = 22;
|
|
21
|
+
const TX_OUTPUT_P2WSH = 34;
|
|
22
|
+
const TX_OUTPUT_P2TR = 34;
|
|
23
|
+
const INPUT_BYTES = {
|
|
24
|
+
"p2sh-p2wpkh": TX_INPUT_P2SH_P2WPKH,
|
|
25
|
+
"p2wpkh": TX_INPUT_P2WPKH,
|
|
26
|
+
"p2tr": TX_INPUT_P2TR,
|
|
27
|
+
"p2pkh": TX_INPUT_PUBKEYHASH,
|
|
28
|
+
"p2wsh": TX_INPUT_P2WSH
|
|
29
|
+
};
|
|
30
|
+
function inputBytes(input) {
|
|
31
|
+
if (input.script == null && input.type == null)
|
|
32
|
+
throw new Error("Needs either script or type defined!");
|
|
33
|
+
return TX_INPUT_BASE + (input.script ? input.script.length : INPUT_BYTES[input.type]);
|
|
34
|
+
}
|
|
35
|
+
const OUTPUT_BYTES = {
|
|
36
|
+
"p2sh-p2wpkh": TX_OUTPUT_P2SH_P2WPKH,
|
|
37
|
+
"p2wpkh": TX_OUTPUT_P2WPKH,
|
|
38
|
+
"p2tr": TX_OUTPUT_P2TR,
|
|
39
|
+
"p2pkh": TX_OUTPUT_PUBKEYHASH,
|
|
40
|
+
"p2wsh": TX_OUTPUT_P2WSH
|
|
41
|
+
};
|
|
42
|
+
function outputBytes(output) {
|
|
43
|
+
if (output.script == null && output.type == null)
|
|
44
|
+
throw new Error("Needs either script or type defined!");
|
|
45
|
+
return TX_OUTPUT_BASE + (output.script ? output.script.length : OUTPUT_BYTES[output.type]);
|
|
46
|
+
}
|
|
47
|
+
exports.DUST_THRESHOLDS = {
|
|
48
|
+
"p2sh-p2wpkh": 540,
|
|
49
|
+
"p2wpkh": 294,
|
|
50
|
+
"p2tr": 330,
|
|
51
|
+
"p2pkh": 546,
|
|
52
|
+
"p2wsh": 330
|
|
53
|
+
};
|
|
54
|
+
function dustThreshold(output) {
|
|
55
|
+
return exports.DUST_THRESHOLDS[output.type];
|
|
56
|
+
}
|
|
57
|
+
function transactionBytes(inputs, outputs, changeType) {
|
|
58
|
+
let size = TX_EMPTY_SIZE;
|
|
59
|
+
let isSegwit = false;
|
|
60
|
+
if (changeType != null && changeType !== "p2pkh") {
|
|
61
|
+
size += WITNESS_OVERHEAD;
|
|
62
|
+
isSegwit = true;
|
|
63
|
+
}
|
|
64
|
+
for (let input of inputs) {
|
|
65
|
+
if (!isSegwit && (input.type !== "p2pkh")) {
|
|
66
|
+
isSegwit = true;
|
|
67
|
+
size += WITNESS_OVERHEAD;
|
|
68
|
+
}
|
|
69
|
+
size += inputBytes(input);
|
|
70
|
+
}
|
|
71
|
+
for (let output of outputs) {
|
|
72
|
+
size += outputBytes(output);
|
|
73
|
+
}
|
|
74
|
+
return Math.ceil(size);
|
|
75
|
+
}
|
|
76
|
+
function uintOrNaN(v) {
|
|
77
|
+
if (typeof v !== 'number')
|
|
78
|
+
return NaN;
|
|
79
|
+
if (!isFinite(v))
|
|
80
|
+
return NaN;
|
|
81
|
+
if (Math.floor(v) !== v)
|
|
82
|
+
return NaN;
|
|
83
|
+
if (v < 0)
|
|
84
|
+
return NaN;
|
|
85
|
+
return v;
|
|
86
|
+
}
|
|
87
|
+
function sumForgiving(range) {
|
|
88
|
+
return range.reduce((a, x) => a + (isFinite(x.value) ? x.value : 0), 0);
|
|
89
|
+
}
|
|
90
|
+
function sumOrNaN(range) {
|
|
91
|
+
return range.reduce((a, x) => a + uintOrNaN(x.value), 0);
|
|
92
|
+
}
|
|
93
|
+
function finalize(inputs, outputs, feeRate, changeType, cpfpAddFee = 0) {
|
|
94
|
+
const bytesAccum = transactionBytes(inputs, outputs, changeType);
|
|
95
|
+
logger.debug("finalize(): Transaction bytes: ", bytesAccum);
|
|
96
|
+
const feeAfterExtraOutput = (feeRate * (bytesAccum + outputBytes({ type: changeType }))) + cpfpAddFee;
|
|
97
|
+
logger.debug("finalize(): TX fee after adding change output: ", feeAfterExtraOutput);
|
|
98
|
+
const remainderAfterExtraOutput = Math.floor(sumOrNaN(inputs) - (sumOrNaN(outputs) + feeAfterExtraOutput));
|
|
99
|
+
logger.debug("finalize(): Leaves change (changeType=" + changeType + ") value: ", remainderAfterExtraOutput);
|
|
100
|
+
// is it worth a change output?
|
|
101
|
+
if (remainderAfterExtraOutput >= dustThreshold({ type: changeType })) {
|
|
102
|
+
outputs = outputs.concat({ value: remainderAfterExtraOutput, type: changeType });
|
|
103
|
+
}
|
|
104
|
+
const fee = sumOrNaN(inputs) - sumOrNaN(outputs);
|
|
105
|
+
logger.debug("finalize(): Re-calculated total fee: ", fee);
|
|
106
|
+
if (!isFinite(fee))
|
|
107
|
+
return { fee: (feeRate * bytesAccum) + cpfpAddFee };
|
|
108
|
+
return {
|
|
109
|
+
inputs: inputs,
|
|
110
|
+
outputs: outputs,
|
|
111
|
+
fee: fee
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
exports.utils = {
|
|
115
|
+
dustThreshold: dustThreshold,
|
|
116
|
+
finalize: finalize,
|
|
117
|
+
inputBytes: inputBytes,
|
|
118
|
+
outputBytes: outputBytes,
|
|
119
|
+
sumOrNaN: sumOrNaN,
|
|
120
|
+
sumForgiving: sumForgiving,
|
|
121
|
+
transactionBytes: transactionBytes,
|
|
122
|
+
uintOrNaN: uintOrNaN
|
|
123
|
+
};
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { Buffer } from "buffer";
|
|
4
|
+
/**
|
|
5
|
+
* Bitcoin transaction confirmation status
|
|
6
|
+
* @category Bitcoin
|
|
7
|
+
*/
|
|
8
|
+
export type BitcoinTransactionStatus = {
|
|
9
|
+
confirmed: boolean;
|
|
10
|
+
block_height: number;
|
|
11
|
+
block_hash: string;
|
|
12
|
+
block_time: number;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Bitcoin transaction output
|
|
16
|
+
* @category Bitcoin
|
|
17
|
+
*/
|
|
18
|
+
export type TxVout = {
|
|
19
|
+
scriptpubkey: string;
|
|
20
|
+
scriptpubkey_asm: string;
|
|
21
|
+
scriptpubkey_type: string;
|
|
22
|
+
scriptpubkey_address: string;
|
|
23
|
+
value: number;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Bitcoin transaction input
|
|
27
|
+
* @category Bitcoin
|
|
28
|
+
*/
|
|
29
|
+
export type TxVin = {
|
|
30
|
+
txid: string;
|
|
31
|
+
vout: number;
|
|
32
|
+
prevout: TxVout;
|
|
33
|
+
scriptsig: string;
|
|
34
|
+
scriptsig_asm: string;
|
|
35
|
+
witness: string[];
|
|
36
|
+
is_coinbase: boolean;
|
|
37
|
+
sequence: number;
|
|
38
|
+
inner_witnessscript_asm: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Full Bitcoin transaction data
|
|
42
|
+
* @category Bitcoin
|
|
43
|
+
*/
|
|
44
|
+
export type BitcoinTransaction = {
|
|
45
|
+
txid: string;
|
|
46
|
+
version: number;
|
|
47
|
+
locktime: number;
|
|
48
|
+
vin: TxVin[];
|
|
49
|
+
vout: TxVout[];
|
|
50
|
+
size: number;
|
|
51
|
+
weight: number;
|
|
52
|
+
fee: number;
|
|
53
|
+
status: BitcoinTransactionStatus;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Bitcoin block data
|
|
57
|
+
* @category Bitcoin
|
|
58
|
+
*/
|
|
59
|
+
export type BlockData = {
|
|
60
|
+
bits: number;
|
|
61
|
+
difficulty: number;
|
|
62
|
+
extras: any;
|
|
63
|
+
height: number;
|
|
64
|
+
id: string;
|
|
65
|
+
mediantime: number;
|
|
66
|
+
merkle_root: string;
|
|
67
|
+
nonce: number;
|
|
68
|
+
previousblockhash: string;
|
|
69
|
+
size: number;
|
|
70
|
+
timestamp: number;
|
|
71
|
+
tx_count: number;
|
|
72
|
+
version: number;
|
|
73
|
+
weight: number;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Bitcoin block header data
|
|
77
|
+
* @category Bitcoin
|
|
78
|
+
*/
|
|
79
|
+
export type BitcoinBlockHeader = {
|
|
80
|
+
id: string;
|
|
81
|
+
height: number;
|
|
82
|
+
version: number;
|
|
83
|
+
timestamp: number;
|
|
84
|
+
tx_count: number;
|
|
85
|
+
size: number;
|
|
86
|
+
weight: number;
|
|
87
|
+
merkle_root: string;
|
|
88
|
+
previousblockhash: string;
|
|
89
|
+
mediantime: number;
|
|
90
|
+
nonce: number;
|
|
91
|
+
bits: number;
|
|
92
|
+
difficulty: number;
|
|
93
|
+
};
|
|
94
|
+
export type LNNodeInfo = {
|
|
95
|
+
public_key: string;
|
|
96
|
+
alias: string;
|
|
97
|
+
first_seen: number;
|
|
98
|
+
updated_at: number;
|
|
99
|
+
color: string;
|
|
100
|
+
sockets: string;
|
|
101
|
+
as_number: number;
|
|
102
|
+
city_id: number;
|
|
103
|
+
country_id: number;
|
|
104
|
+
subdivision_id: number;
|
|
105
|
+
longtitude: number;
|
|
106
|
+
latitude: number;
|
|
107
|
+
iso_code: string;
|
|
108
|
+
as_organization: string;
|
|
109
|
+
city: {
|
|
110
|
+
[lang: string]: string;
|
|
111
|
+
};
|
|
112
|
+
country: {
|
|
113
|
+
[lang: string]: string;
|
|
114
|
+
};
|
|
115
|
+
subdivision: {
|
|
116
|
+
[lang: string]: string;
|
|
117
|
+
};
|
|
118
|
+
active_channel_count: number;
|
|
119
|
+
capacity: string;
|
|
120
|
+
opened_channel_count: number;
|
|
121
|
+
closed_channel_count: number;
|
|
122
|
+
};
|
|
123
|
+
export type AddressInfo = {
|
|
124
|
+
address: string;
|
|
125
|
+
chain_stats: {
|
|
126
|
+
funded_txo_count: number;
|
|
127
|
+
funded_txo_sum: number;
|
|
128
|
+
spent_txo_count: number;
|
|
129
|
+
spent_txo_sum: number;
|
|
130
|
+
tx_count: number;
|
|
131
|
+
};
|
|
132
|
+
mempool_stats: {
|
|
133
|
+
funded_txo_count: number;
|
|
134
|
+
funded_txo_sum: number;
|
|
135
|
+
spent_txo_count: number;
|
|
136
|
+
spent_txo_sum: number;
|
|
137
|
+
tx_count: number;
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
export type TransactionCPFPData = {
|
|
141
|
+
ancestors: {
|
|
142
|
+
txid: string;
|
|
143
|
+
fee: number;
|
|
144
|
+
weight: number;
|
|
145
|
+
}[];
|
|
146
|
+
descendants: {
|
|
147
|
+
txid: string;
|
|
148
|
+
fee: number;
|
|
149
|
+
weight: number;
|
|
150
|
+
}[];
|
|
151
|
+
effectiveFeePerVsize: number;
|
|
152
|
+
sigops: number;
|
|
153
|
+
adjustedVsize: number;
|
|
154
|
+
};
|
|
155
|
+
export type BitcoinFees = {
|
|
156
|
+
fastestFee: number;
|
|
157
|
+
halfHourFee: number;
|
|
158
|
+
hourFee: number;
|
|
159
|
+
economyFee: number;
|
|
160
|
+
minimumFee: number;
|
|
161
|
+
};
|
|
162
|
+
export type BitcoinPendingBlock = {
|
|
163
|
+
blockSize: number;
|
|
164
|
+
blockVSize: number;
|
|
165
|
+
nTx: number;
|
|
166
|
+
totalFees: number;
|
|
167
|
+
medianFee: number;
|
|
168
|
+
feeRange: number[];
|
|
169
|
+
};
|
|
170
|
+
export type BlockStatus = {
|
|
171
|
+
in_best_chain: boolean;
|
|
172
|
+
height: number;
|
|
173
|
+
next_best: string;
|
|
174
|
+
};
|
|
175
|
+
export type TransactionProof = {
|
|
176
|
+
block_height: number;
|
|
177
|
+
merkle: string[];
|
|
178
|
+
pos: number;
|
|
179
|
+
};
|
|
180
|
+
export type TransactionOutspend = {
|
|
181
|
+
spent: boolean;
|
|
182
|
+
txid: string;
|
|
183
|
+
vin: number;
|
|
184
|
+
status: BitcoinTransactionStatus;
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* Mempool.space REST API client for Bitcoin blockchain data
|
|
188
|
+
* @category Bitcoin
|
|
189
|
+
*/
|
|
190
|
+
export declare class MempoolApi {
|
|
191
|
+
backends: {
|
|
192
|
+
url: string;
|
|
193
|
+
operational: boolean | null;
|
|
194
|
+
}[];
|
|
195
|
+
timeout: number;
|
|
196
|
+
/**
|
|
197
|
+
* Returns api url that should be operational
|
|
198
|
+
*
|
|
199
|
+
* @private
|
|
200
|
+
*/
|
|
201
|
+
private getOperationalApi;
|
|
202
|
+
/**
|
|
203
|
+
* Returns api urls that are maybe operational, in case none is considered operational returns all of the price
|
|
204
|
+
* apis such that they can be tested again whether they are operational
|
|
205
|
+
*
|
|
206
|
+
* @private
|
|
207
|
+
*/
|
|
208
|
+
private getMaybeOperationalApis;
|
|
209
|
+
/**
|
|
210
|
+
* Sends a GET or POST request to the mempool api, handling the non-200 responses as errors & throwing
|
|
211
|
+
*
|
|
212
|
+
* @param url
|
|
213
|
+
* @param path
|
|
214
|
+
* @param responseType
|
|
215
|
+
* @param type
|
|
216
|
+
* @param body
|
|
217
|
+
*/
|
|
218
|
+
private _request;
|
|
219
|
+
/**
|
|
220
|
+
* Sends request in parallel to multiple maybe operational api urls
|
|
221
|
+
*
|
|
222
|
+
* @param path
|
|
223
|
+
* @param responseType
|
|
224
|
+
* @param type
|
|
225
|
+
* @param body
|
|
226
|
+
* @private
|
|
227
|
+
*/
|
|
228
|
+
private requestFromMaybeOperationalUrls;
|
|
229
|
+
/**
|
|
230
|
+
* Sends a request to mempool API, first tries to use the operational API (if any) and if that fails it falls back
|
|
231
|
+
* to using maybe operational price APIs
|
|
232
|
+
*
|
|
233
|
+
* @param path
|
|
234
|
+
* @param responseType
|
|
235
|
+
* @param type
|
|
236
|
+
* @param body
|
|
237
|
+
* @private
|
|
238
|
+
*/
|
|
239
|
+
private request;
|
|
240
|
+
constructor(url?: string | string[], timeout?: number);
|
|
241
|
+
/**
|
|
242
|
+
* Returns information about a specific lightning network node as identified by the public key (in hex encoding)
|
|
243
|
+
*
|
|
244
|
+
* @param pubkey
|
|
245
|
+
*/
|
|
246
|
+
getLNNodeInfo(pubkey: string): Promise<LNNodeInfo | null>;
|
|
247
|
+
/**
|
|
248
|
+
* Returns on-chain transaction as identified by its txId
|
|
249
|
+
*
|
|
250
|
+
* @param txId
|
|
251
|
+
*/
|
|
252
|
+
getTransaction(txId: string): Promise<BitcoinTransaction | null>;
|
|
253
|
+
/**
|
|
254
|
+
* Returns raw binary encoded bitcoin transaction, also strips the witness data from the transaction
|
|
255
|
+
*
|
|
256
|
+
* @param txId
|
|
257
|
+
*/
|
|
258
|
+
getRawTransaction(txId: string): Promise<Buffer | null>;
|
|
259
|
+
/**
|
|
260
|
+
* Returns confirmed & unconfirmed balance of the specific bitcoin address
|
|
261
|
+
*
|
|
262
|
+
* @param address
|
|
263
|
+
*/
|
|
264
|
+
getAddressBalances(address: string): Promise<{
|
|
265
|
+
confirmedBalance: bigint;
|
|
266
|
+
unconfirmedBalance: bigint;
|
|
267
|
+
}>;
|
|
268
|
+
/**
|
|
269
|
+
* Returns CPFP (children pays for parent) data for a given transaction
|
|
270
|
+
*
|
|
271
|
+
* @param txId
|
|
272
|
+
*/
|
|
273
|
+
getCPFPData(txId: string): Promise<TransactionCPFPData>;
|
|
274
|
+
/**
|
|
275
|
+
* Returns UTXOs (unspent transaction outputs) for a given address
|
|
276
|
+
*
|
|
277
|
+
* @param address
|
|
278
|
+
*/
|
|
279
|
+
getAddressUTXOs(address: string): Promise<{
|
|
280
|
+
txid: string;
|
|
281
|
+
vout: number;
|
|
282
|
+
status: {
|
|
283
|
+
confirmed: boolean;
|
|
284
|
+
block_height: number;
|
|
285
|
+
block_hash: string;
|
|
286
|
+
block_time: number;
|
|
287
|
+
};
|
|
288
|
+
value: bigint;
|
|
289
|
+
}[]>;
|
|
290
|
+
/**
|
|
291
|
+
* Returns current on-chain bitcoin fees
|
|
292
|
+
*/
|
|
293
|
+
getFees(): Promise<BitcoinFees>;
|
|
294
|
+
/**
|
|
295
|
+
* Returns all transactions for a given address
|
|
296
|
+
*
|
|
297
|
+
* @param address
|
|
298
|
+
*/
|
|
299
|
+
getAddressTransactions(address: string): Promise<BitcoinTransaction[]>;
|
|
300
|
+
/**
|
|
301
|
+
* Returns expected pending (mempool) blocks
|
|
302
|
+
*/
|
|
303
|
+
getPendingBlocks(): Promise<BitcoinPendingBlock[]>;
|
|
304
|
+
/**
|
|
305
|
+
* Returns the blockheight of the current bitcoin blockchain's tip
|
|
306
|
+
*/
|
|
307
|
+
getTipBlockHeight(): Promise<number>;
|
|
308
|
+
/**
|
|
309
|
+
* Returns the bitcoin blockheader as identified by its blockhash
|
|
310
|
+
*
|
|
311
|
+
* @param blockhash
|
|
312
|
+
*/
|
|
313
|
+
getBlockHeader(blockhash: string): Promise<BitcoinBlockHeader>;
|
|
314
|
+
/**
|
|
315
|
+
* Returns the block status
|
|
316
|
+
*
|
|
317
|
+
* @param blockhash
|
|
318
|
+
*/
|
|
319
|
+
getBlockStatus(blockhash: string): Promise<BlockStatus>;
|
|
320
|
+
/**
|
|
321
|
+
* Returns the transaction's proof (merkle proof)
|
|
322
|
+
*
|
|
323
|
+
* @param txId
|
|
324
|
+
*/
|
|
325
|
+
getTransactionProof(txId: string): Promise<TransactionProof>;
|
|
326
|
+
/**
|
|
327
|
+
* Returns the transaction's proof (merkle proof)
|
|
328
|
+
*
|
|
329
|
+
* @param txId
|
|
330
|
+
*/
|
|
331
|
+
getOutspends(txId: string): Promise<TransactionOutspend[]>;
|
|
332
|
+
/**
|
|
333
|
+
* Returns blockhash of a block at a specific blockheight
|
|
334
|
+
*
|
|
335
|
+
* @param height
|
|
336
|
+
*/
|
|
337
|
+
getBlockHash(height: number): Promise<string>;
|
|
338
|
+
/**
|
|
339
|
+
* Returns past 15 blockheaders before (and including) the specified height
|
|
340
|
+
*
|
|
341
|
+
* @param endHeight
|
|
342
|
+
*/
|
|
343
|
+
getPast15BlockHeaders(endHeight: number): Promise<BlockData[]>;
|
|
344
|
+
/**
|
|
345
|
+
* Sends raw hex encoded bitcoin transaction
|
|
346
|
+
*
|
|
347
|
+
* @param transactionHex
|
|
348
|
+
*/
|
|
349
|
+
sendTransaction(transactionHex: string): Promise<string>;
|
|
350
|
+
}
|