@atomiqlabs/sdk 7.0.12 → 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} +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,87 @@
|
|
|
1
|
+
import { ChainType, StorageObject, IStorageManager, Messenger, ChainInitializer } from "@atomiqlabs/base";
|
|
2
|
+
import { Swapper, SwapperOptions } from "./Swapper";
|
|
3
|
+
import { MempoolApi } from "../bitcoin/mempool/MempoolApi";
|
|
4
|
+
import { MempoolBitcoinRpc } from "../bitcoin/mempool/MempoolBitcoinRpc";
|
|
5
|
+
import { BtcToken, SCToken } from "../types/Token";
|
|
6
|
+
import { SwapType } from "../enums/SwapType";
|
|
7
|
+
import { SwapTypeMapping } from "../utils/SwapUtils";
|
|
8
|
+
import { CustomPriceFunction } from "../types/CustomPriceFunction";
|
|
9
|
+
type ChainTypeDict<T extends ChainInitializer<any, any, any>> = {
|
|
10
|
+
[K in T["chainId"]]: T["chainType"];
|
|
11
|
+
};
|
|
12
|
+
type ToMultichain<T extends readonly ChainInitializer<any, any, any>[]> = (T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]] ? ChainTypeDict<First> & ToMultichain<Rest> : {});
|
|
13
|
+
type TokensDict<T extends ChainInitializer<any, any, any>> = {
|
|
14
|
+
[K in T["chainId"]]: TypedChainTokens<T>;
|
|
15
|
+
};
|
|
16
|
+
type GetAllTokens<T extends readonly ChainInitializer<any, any, any>[]> = (T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]] ? TokensDict<First> & GetAllTokens<Rest> : unknown);
|
|
17
|
+
type TokenResolverDict<T extends ChainInitializer<any, any, any>> = {
|
|
18
|
+
[K in T["chainId"]]: TypedChainTokenResolver<T>;
|
|
19
|
+
};
|
|
20
|
+
type OptionsDict<T extends ChainInitializer<any, any, any>> = {
|
|
21
|
+
[K in T["chainId"]]: T["options"];
|
|
22
|
+
};
|
|
23
|
+
type GetAllOptions<T extends readonly ChainInitializer<any, any, any>[]> = (T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]] ? OptionsDict<First> & GetAllOptions<Rest> : unknown);
|
|
24
|
+
/**
|
|
25
|
+
* Configuration options for creating a typed Swapper instance
|
|
26
|
+
* @category Core
|
|
27
|
+
*/
|
|
28
|
+
export type TypedSwapperOptions<T extends readonly ChainInitializer<any, any, any>[]> = {
|
|
29
|
+
chains: GetAllOptions<T>;
|
|
30
|
+
chainStorageCtor?: <T extends StorageObject>(name: string) => IStorageManager<T>;
|
|
31
|
+
pricingFeeDifferencePPM?: bigint;
|
|
32
|
+
getPriceFn?: CustomPriceFunction;
|
|
33
|
+
mempoolApi?: MempoolApi | MempoolBitcoinRpc | string | string[];
|
|
34
|
+
messenger?: Messenger;
|
|
35
|
+
} & SwapperOptions;
|
|
36
|
+
/**
|
|
37
|
+
* Token resolver for a specific chain
|
|
38
|
+
* @category Core
|
|
39
|
+
*/
|
|
40
|
+
export type TypedChainTokenResolver<T extends ChainInitializer<any, any, any>> = {
|
|
41
|
+
getToken: (address: string) => SCToken<T["chainId"]>;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Token resolvers for all chains
|
|
45
|
+
* @category Core
|
|
46
|
+
*/
|
|
47
|
+
export type TypedTokenResolvers<T extends readonly ChainInitializer<any, any, any>[]> = (T extends readonly [infer First extends ChainInitializer<any, any, any>, ...infer Rest extends ChainInitializer<any, any, any>[]] ? TokenResolverDict<First> & TypedTokenResolvers<Rest> : unknown);
|
|
48
|
+
/**
|
|
49
|
+
* Token definitions for a specific chain
|
|
50
|
+
* @category Core
|
|
51
|
+
*/
|
|
52
|
+
export type TypedChainTokens<T extends ChainInitializer<any, any, any>> = {
|
|
53
|
+
[val in keyof T["tokens"]]: SCToken<T["chainId"]>;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* All tokens including Bitcoin tokens
|
|
57
|
+
* @category Core
|
|
58
|
+
*/
|
|
59
|
+
export type TypedTokens<T extends readonly ChainInitializer<any, ChainType, any>[]> = GetAllTokens<T> & {
|
|
60
|
+
BITCOIN: {
|
|
61
|
+
BTC: BtcToken<false>;
|
|
62
|
+
BTCLN: BtcToken<true>;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Type alias for a Swapper instance with typed chain support
|
|
67
|
+
* @category Core
|
|
68
|
+
*/
|
|
69
|
+
export type TypedSwapper<T extends readonly ChainInitializer<any, ChainType, any>[]> = Swapper<ToMultichain<T>>;
|
|
70
|
+
/**
|
|
71
|
+
* Type alias for a specific swap type on a chain
|
|
72
|
+
* @category Core
|
|
73
|
+
*/
|
|
74
|
+
export type TypedSwap<T extends ChainInitializer<any, ChainType, any>, S extends SwapType> = SwapTypeMapping<T["chainType"]>[S];
|
|
75
|
+
/**
|
|
76
|
+
* Factory class for creating and initializing Swapper instances with typed chain support
|
|
77
|
+
* @category Core
|
|
78
|
+
*/
|
|
79
|
+
export declare class SwapperFactory<T extends readonly ChainInitializer<any, ChainType, any>[]> {
|
|
80
|
+
readonly initializers: T;
|
|
81
|
+
Tokens: TypedTokens<T>;
|
|
82
|
+
TokenResolver: TypedTokenResolvers<T>;
|
|
83
|
+
constructor(initializers: T);
|
|
84
|
+
newSwapper(options: TypedSwapperOptions<T>): TypedSwapper<T>;
|
|
85
|
+
newSwapperInitialized(options: TypedSwapperOptions<T>): Promise<TypedSwapper<T>>;
|
|
86
|
+
}
|
|
87
|
+
export {};
|
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SwapperFactory = void 0;
|
|
4
4
|
const base_1 = require("@atomiqlabs/base");
|
|
5
|
-
const
|
|
6
|
-
const SmartChainAssets_1 = require("./SmartChainAssets");
|
|
7
|
-
const LocalStorageManager_1 = require("./storage/LocalStorageManager");
|
|
5
|
+
const SmartChainAssets_1 = require("../SmartChainAssets");
|
|
8
6
|
const messenger_nostr_1 = require("@atomiqlabs/messenger-nostr");
|
|
7
|
+
const Swapper_1 = require("./Swapper");
|
|
8
|
+
const MempoolBitcoinRpc_1 = require("../bitcoin/mempool/MempoolBitcoinRpc");
|
|
9
|
+
const CustomPriceProvider_1 = require("../prices/providers/CustomPriceProvider");
|
|
10
|
+
const Token_1 = require("../types/Token");
|
|
11
|
+
const RedundantSwapPrice_1 = require("../prices/RedundantSwapPrice");
|
|
12
|
+
const LocalStorageManager_1 = require("../storage-browser/LocalStorageManager");
|
|
13
|
+
const SingleSwapPrice_1 = require("../prices/SingleSwapPrice");
|
|
9
14
|
const registries = {
|
|
10
15
|
[base_1.BitcoinNetwork.MAINNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry-mainnet.json?ref=main",
|
|
11
16
|
[base_1.BitcoinNetwork.TESTNET]: "https://api.github.com/repos/adambor/SolLightning-registry/contents/registry.json?ref=main",
|
|
@@ -41,20 +46,24 @@ const mempoolUrls = {
|
|
|
41
46
|
const nostrUrls = [
|
|
42
47
|
"wss://relay.damus.io", "wss://nostr.einundzwanzig.space", "wss://relay01.lnfi.network/", "wss://relay.puresignal.news/", "wss://relay.fountain.fm/", "wss://sendit.nosflare.com/"
|
|
43
48
|
];
|
|
49
|
+
/**
|
|
50
|
+
* Factory class for creating and initializing Swapper instances with typed chain support
|
|
51
|
+
* @category Core
|
|
52
|
+
*/
|
|
44
53
|
class SwapperFactory {
|
|
45
54
|
constructor(initializers) {
|
|
46
55
|
this.initializers = initializers;
|
|
47
56
|
this.Tokens = {
|
|
48
|
-
BITCOIN:
|
|
57
|
+
BITCOIN: Token_1.BitcoinTokens
|
|
49
58
|
};
|
|
50
59
|
this.TokenResolver = {};
|
|
51
60
|
this.initializers = initializers;
|
|
52
61
|
initializers.forEach(initializer => {
|
|
53
62
|
const addressMap = {};
|
|
54
|
-
this.Tokens[initializer.chainId] = {};
|
|
63
|
+
const tokens = (this.Tokens[initializer.chainId] = {});
|
|
55
64
|
for (let ticker in initializer.tokens) {
|
|
56
65
|
const assetData = initializer.tokens[ticker];
|
|
57
|
-
|
|
66
|
+
tokens[ticker] = addressMap[assetData.address] = {
|
|
58
67
|
chain: "SC",
|
|
59
68
|
chainId: initializer.chainId,
|
|
60
69
|
address: assetData.address,
|
|
@@ -70,13 +79,21 @@ class SwapperFactory {
|
|
|
70
79
|
});
|
|
71
80
|
}
|
|
72
81
|
newSwapper(options) {
|
|
73
|
-
options.bitcoinNetwork
|
|
74
|
-
options.storagePrefix
|
|
75
|
-
options.messenger
|
|
76
|
-
options.defaultTrustedIntermediaryUrl
|
|
77
|
-
options.registryUrl
|
|
78
|
-
|
|
79
|
-
|
|
82
|
+
options.bitcoinNetwork ??= base_1.BitcoinNetwork.MAINNET;
|
|
83
|
+
options.storagePrefix ??= "atomiqsdk-" + options.bitcoinNetwork + "-";
|
|
84
|
+
options.messenger ??= new messenger_nostr_1.NostrMessenger(options.bitcoinNetwork, nostrUrls);
|
|
85
|
+
options.defaultTrustedIntermediaryUrl ??= trustedIntermediaries[options.bitcoinNetwork];
|
|
86
|
+
options.registryUrl ??= registries[options.bitcoinNetwork];
|
|
87
|
+
let bitcoinRpc;
|
|
88
|
+
if (options.mempoolApi != null) {
|
|
89
|
+
bitcoinRpc = options.mempoolApi instanceof MempoolBitcoinRpc_1.MempoolBitcoinRpc ? options.mempoolApi : new MempoolBitcoinRpc_1.MempoolBitcoinRpc(options.mempoolApi);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const urls = mempoolUrls[options.bitcoinNetwork];
|
|
93
|
+
if (urls == null)
|
|
94
|
+
throw new Error(`No pre-configured urls for ${base_1.BitcoinNetwork[options.bitcoinNetwork]} network were found, please explicitly pass mempoolApi parameter!`);
|
|
95
|
+
bitcoinRpc = new MempoolBitcoinRpc_1.MempoolBitcoinRpc(urls);
|
|
96
|
+
}
|
|
80
97
|
const pricingAssets = [];
|
|
81
98
|
Object.keys(SmartChainAssets_1.SmartChainAssets).forEach((ticker) => {
|
|
82
99
|
const chains = {};
|
|
@@ -92,22 +109,23 @@ class SwapperFactory {
|
|
|
92
109
|
name: assetData.name
|
|
93
110
|
});
|
|
94
111
|
});
|
|
95
|
-
options.chainStorageCtor
|
|
112
|
+
options.chainStorageCtor ??= (name) => new LocalStorageManager_1.LocalStorageManager(name);
|
|
96
113
|
const chains = {};
|
|
97
114
|
for (let { initializer, chainId } of this.initializers) {
|
|
98
|
-
|
|
115
|
+
const chainOptions = options.chains[chainId];
|
|
116
|
+
if (chainOptions == null)
|
|
99
117
|
continue;
|
|
100
|
-
chains[chainId] = initializer(
|
|
118
|
+
chains[chainId] = initializer(chainOptions, bitcoinRpc, options.bitcoinNetwork, options.chainStorageCtor);
|
|
101
119
|
}
|
|
102
120
|
const swapPricing = options.getPriceFn != null ?
|
|
103
|
-
new
|
|
121
|
+
new SingleSwapPrice_1.SingleSwapPrice(options.pricingFeeDifferencePPM ?? 10000n, new CustomPriceProvider_1.CustomPriceProvider(pricingAssets.map(val => {
|
|
104
122
|
return {
|
|
105
123
|
coinId: val.ticker,
|
|
106
124
|
chains: val.chains
|
|
107
125
|
};
|
|
108
126
|
}), options.getPriceFn)) :
|
|
109
|
-
|
|
110
|
-
return new
|
|
127
|
+
RedundantSwapPrice_1.RedundantSwapPrice.createFromTokenMap(options.pricingFeeDifferencePPM ?? 10000n, pricingAssets);
|
|
128
|
+
return new Swapper_1.Swapper(bitcoinRpc, chains, swapPricing, pricingAssets, options.messenger, options);
|
|
111
129
|
}
|
|
112
130
|
async newSwapperInitialized(options) {
|
|
113
131
|
const swapper = this.newSwapper(options);
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { Transaction } from "@scure/btc-signer";
|
|
2
|
+
import { BTC_NETWORK } from "@scure/btc-signer/utils";
|
|
3
|
+
import { SwapType } from "../enums/SwapType";
|
|
4
|
+
import { ChainIds, MultiChain, Swapper } from "./Swapper";
|
|
5
|
+
import { IBitcoinWallet } from "../bitcoin/wallet/IBitcoinWallet";
|
|
6
|
+
import { MinimalBitcoinWalletInterface } from "../bitcoin/wallet/MinimalBitcoinWalletInterface";
|
|
7
|
+
import { TokenAmount } from "../types/TokenAmount";
|
|
8
|
+
import { SCToken } from "../types/Token";
|
|
9
|
+
import { LNURLWithdraw } from "../types/lnurl/LNURLWithdraw";
|
|
10
|
+
import { LNURLPay } from "../types/lnurl/LNURLPay";
|
|
11
|
+
/**
|
|
12
|
+
* Utility class providing helper methods for swap operations
|
|
13
|
+
* @category Core
|
|
14
|
+
*/
|
|
15
|
+
export declare class SwapperUtils<T extends MultiChain> {
|
|
16
|
+
readonly bitcoinNetwork: BTC_NETWORK;
|
|
17
|
+
private readonly root;
|
|
18
|
+
constructor(root: Swapper<T>);
|
|
19
|
+
isValidSmartChainAddress(address: string, chainId?: ChainIds<T>): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Returns true if string is a valid BOLT11 bitcoin lightning invoice
|
|
22
|
+
*
|
|
23
|
+
* @param lnpr
|
|
24
|
+
*/
|
|
25
|
+
isLightningInvoice(lnpr: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Returns true if string is a valid bitcoin address
|
|
28
|
+
*
|
|
29
|
+
* @param addr
|
|
30
|
+
*/
|
|
31
|
+
isValidBitcoinAddress(addr: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Returns true if string is a valid BOLT11 bitcoin lightning invoice WITH AMOUNT
|
|
34
|
+
*
|
|
35
|
+
* @param lnpr
|
|
36
|
+
*/
|
|
37
|
+
isValidLightningInvoice(lnpr: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Returns true if string is a valid LNURL (no checking on type is performed)
|
|
40
|
+
*
|
|
41
|
+
* @param lnurl
|
|
42
|
+
*/
|
|
43
|
+
isValidLNURL(lnurl: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Returns type and data about an LNURL
|
|
46
|
+
*
|
|
47
|
+
* @param lnurl
|
|
48
|
+
* @param shouldRetry
|
|
49
|
+
*/
|
|
50
|
+
getLNURLTypeAndData(lnurl: string, shouldRetry?: boolean): Promise<LNURLPay | LNURLWithdraw | null>;
|
|
51
|
+
/**
|
|
52
|
+
* Returns satoshi value of BOLT11 bitcoin lightning invoice WITH AMOUNT, returns null otherwise
|
|
53
|
+
*
|
|
54
|
+
* @param lnpr
|
|
55
|
+
*/
|
|
56
|
+
getLightningInvoiceValue(lnpr: string): bigint | null;
|
|
57
|
+
private parseBitcoinAddress;
|
|
58
|
+
private parseLNURLSync;
|
|
59
|
+
private parseLNURL;
|
|
60
|
+
private parseLightningInvoice;
|
|
61
|
+
private parseSmartchainAddress;
|
|
62
|
+
/**
|
|
63
|
+
* General parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, also fetches LNURL data
|
|
64
|
+
* (hence returns Promise)
|
|
65
|
+
*
|
|
66
|
+
* @param addressString Address to parse
|
|
67
|
+
* @throws {Error} Error in address parsing
|
|
68
|
+
* @returns Address data or null if address doesn't conform to any known format
|
|
69
|
+
*/
|
|
70
|
+
parseAddress(addressString: string): Promise<{
|
|
71
|
+
address: string;
|
|
72
|
+
type: "BITCOIN" | "LIGHTNING" | "LNURL" | ChainIds<T>;
|
|
73
|
+
swapType: SwapType.TO_BTC | SwapType.TO_BTCLN | SwapType.SPV_VAULT_FROM_BTC | SwapType.FROM_BTCLN | null;
|
|
74
|
+
lnurl?: LNURLPay | LNURLWithdraw;
|
|
75
|
+
min?: TokenAmount;
|
|
76
|
+
max?: TokenAmount;
|
|
77
|
+
amount?: TokenAmount;
|
|
78
|
+
} | null>;
|
|
79
|
+
/**
|
|
80
|
+
* Synchronous general parser for bitcoin addresses, LNURLs, lightning invoices, smart chain addresses, doesn't fetch
|
|
81
|
+
* LNURL data, reports swapType: null instead to prevent returning a Promise
|
|
82
|
+
*
|
|
83
|
+
* @param addressString Address to parse
|
|
84
|
+
* @throws {Error} Error in address parsing
|
|
85
|
+
* @returns Address data or null if address doesn't conform to any known format
|
|
86
|
+
*/
|
|
87
|
+
parseAddressSync(addressString: string): {
|
|
88
|
+
address: string;
|
|
89
|
+
type: "BITCOIN" | "LIGHTNING" | "LNURL" | ChainIds<T>;
|
|
90
|
+
swapType: SwapType.TO_BTC | SwapType.TO_BTCLN | SwapType.SPV_VAULT_FROM_BTC | null;
|
|
91
|
+
min?: TokenAmount;
|
|
92
|
+
max?: TokenAmount;
|
|
93
|
+
amount?: TokenAmount;
|
|
94
|
+
} | null;
|
|
95
|
+
/**
|
|
96
|
+
* Returns a random PSBT that can be used for fee estimation, the last output (the LP output) is omitted
|
|
97
|
+
* to allow for coinselection algorithm to determine maximum sendable amount there
|
|
98
|
+
*
|
|
99
|
+
* @param chainIdentifier
|
|
100
|
+
* @param includeGasToken Whether to return the PSBT also with the gas token amount (increases the vSize by 8)
|
|
101
|
+
*/
|
|
102
|
+
getRandomSpvVaultPsbt<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, includeGasToken?: boolean): Transaction;
|
|
103
|
+
/**
|
|
104
|
+
* Returns the spendable balance of a bitcoin wallet
|
|
105
|
+
*
|
|
106
|
+
* @param wallet
|
|
107
|
+
* @param targetChain
|
|
108
|
+
* @param options Additional options
|
|
109
|
+
*/
|
|
110
|
+
getBitcoinSpendableBalance(wallet: string | IBitcoinWallet | MinimalBitcoinWalletInterface, targetChain?: ChainIds<T>, options?: {
|
|
111
|
+
gasDrop?: boolean;
|
|
112
|
+
feeRate?: number;
|
|
113
|
+
minFeeRate?: number;
|
|
114
|
+
}): Promise<{
|
|
115
|
+
balance: TokenAmount;
|
|
116
|
+
feeRate: number;
|
|
117
|
+
}>;
|
|
118
|
+
/**
|
|
119
|
+
* Returns the maximum spendable balance of the wallet, deducting the fee needed to initiate a swap for native balances
|
|
120
|
+
*/
|
|
121
|
+
getSpendableBalance<ChainIdentifier extends ChainIds<T>>(wallet: string | T[ChainIdentifier]["Signer"] | T[ChainIdentifier]["NativeSigner"], token: SCToken<ChainIdentifier>, options?: {
|
|
122
|
+
feeMultiplier?: number;
|
|
123
|
+
feeRate?: any;
|
|
124
|
+
}): Promise<TokenAmount>;
|
|
125
|
+
/**
|
|
126
|
+
* Returns the address of the native currency of the chain
|
|
127
|
+
*/
|
|
128
|
+
getNativeToken<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): SCToken<ChainIdentifier>;
|
|
129
|
+
/**
|
|
130
|
+
* Returns a random signer for a given smart chain
|
|
131
|
+
*
|
|
132
|
+
* @param chainIdentifier
|
|
133
|
+
*/
|
|
134
|
+
randomSigner<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): T[ChainIdentifier]["Signer"];
|
|
135
|
+
/**
|
|
136
|
+
* Returns a random address for a given smart chain
|
|
137
|
+
*
|
|
138
|
+
* @param chainIdentifier
|
|
139
|
+
*/
|
|
140
|
+
randomAddress<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier): string;
|
|
141
|
+
/**
|
|
142
|
+
* Signs and broadcasts the supplied smart chain transaction
|
|
143
|
+
*/
|
|
144
|
+
sendAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, signer: T[ChainIdentifier]["NativeSigner"] | T[ChainIdentifier]["Signer"], txs: T[ChainIdentifier]["TX"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
|
|
145
|
+
/**
|
|
146
|
+
* Broadcasts already signed smart chain transactions
|
|
147
|
+
*/
|
|
148
|
+
sendSignedAndConfirm<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, txs: T[ChainIdentifier]["SignedTXType"][], abortSignal?: AbortSignal, onBeforePublish?: (txId: string, rawTx: string) => Promise<void>): Promise<string[]>;
|
|
149
|
+
serializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["TX"]): Promise<string>;
|
|
150
|
+
deserializeUnsignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["TX"]>;
|
|
151
|
+
serializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: T[ChainIdentifier]["SignedTXType"]): Promise<string>;
|
|
152
|
+
deserializeSignedTransaction<ChainIdentifier extends ChainIds<T>>(chainIdentifier: ChainIdentifier, tx: string): Promise<T[ChainIdentifier]["SignedTXType"]>;
|
|
153
|
+
}
|