@atomiqlabs/sdk 8.9.1 → 8.9.3
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/LICENSE +201 -201
- package/README.md +1760 -1760
- package/api/index.d.ts +1 -1
- package/api/index.js +3 -3
- package/dist/ApiList.d.ts +37 -37
- package/dist/ApiList.js +30 -30
- package/dist/SmartChainAssets.d.ts +181 -181
- package/dist/SmartChainAssets.js +181 -181
- package/dist/api/ApiEndpoints.d.ts +393 -393
- package/dist/api/ApiEndpoints.js +2 -2
- package/dist/api/ApiParser.d.ts +10 -10
- package/dist/api/ApiParser.js +134 -134
- package/dist/api/ApiTypes.d.ts +157 -157
- package/dist/api/ApiTypes.js +75 -75
- package/dist/api/SerializedAction.d.ts +40 -40
- package/dist/api/SerializedAction.js +59 -59
- package/dist/api/SwapperApi.d.ts +50 -50
- package/dist/api/SwapperApi.js +431 -431
- package/dist/api/index.d.ts +5 -5
- package/dist/api/index.js +24 -24
- package/dist/bitcoin/coinselect2/accumulative.d.ts +7 -7
- package/dist/bitcoin/coinselect2/accumulative.js +52 -52
- package/dist/bitcoin/coinselect2/blackjack.d.ts +7 -7
- package/dist/bitcoin/coinselect2/blackjack.js +38 -38
- package/dist/bitcoin/coinselect2/index.d.ts +20 -20
- package/dist/bitcoin/coinselect2/index.js +69 -69
- package/dist/bitcoin/coinselect2/utils.d.ts +82 -82
- package/dist/bitcoin/coinselect2/utils.js +158 -158
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +113 -113
- package/dist/bitcoin/wallet/BitcoinWallet.js +335 -335
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +116 -116
- package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -21
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +106 -106
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +196 -196
- package/dist/enums/FeeType.d.ts +15 -15
- package/dist/enums/FeeType.js +19 -19
- package/dist/enums/SwapAmountType.d.ts +15 -15
- package/dist/enums/SwapAmountType.js +19 -19
- package/dist/enums/SwapDirection.d.ts +15 -15
- package/dist/enums/SwapDirection.js +19 -19
- package/dist/enums/SwapSide.d.ts +15 -15
- package/dist/enums/SwapSide.js +19 -19
- package/dist/enums/SwapType.d.ts +75 -75
- package/dist/enums/SwapType.js +79 -79
- package/dist/errors/IntermediaryError.d.ts +13 -13
- package/dist/errors/IntermediaryError.js +27 -27
- package/dist/errors/RequestError.d.ts +32 -32
- package/dist/errors/RequestError.js +54 -54
- package/dist/errors/UserError.d.ts +8 -8
- package/dist/errors/UserError.js +16 -16
- package/dist/events/UnifiedSwapEventListener.d.ts +24 -24
- package/dist/events/UnifiedSwapEventListener.js +138 -138
- package/dist/http/HttpUtils.d.ts +29 -29
- package/dist/http/HttpUtils.js +97 -97
- package/dist/http/paramcoders/IParamReader.d.ts +8 -8
- package/dist/http/paramcoders/IParamReader.js +2 -2
- package/dist/http/paramcoders/ParamDecoder.d.ts +44 -44
- package/dist/http/paramcoders/ParamDecoder.js +137 -137
- package/dist/http/paramcoders/ParamEncoder.d.ts +20 -20
- package/dist/http/paramcoders/ParamEncoder.js +36 -36
- package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
- package/dist/http/paramcoders/SchemaVerifier.js +145 -145
- package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
- package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
- package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -13
- package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
- package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +17 -17
- package/dist/http/paramcoders/client/StreamingFetchPromise.js +175 -175
- package/dist/index.d.ts +86 -86
- package/dist/index.js +159 -159
- package/dist/intermediaries/Intermediary.d.ts +178 -178
- package/dist/intermediaries/Intermediary.js +166 -166
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +216 -216
- package/dist/intermediaries/IntermediaryDiscovery.js +424 -424
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +607 -607
- package/dist/intermediaries/apis/IntermediaryAPI.js +764 -764
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
- package/dist/intermediaries/auth/SignedKeyBasedAuth.d.ts +14 -14
- package/dist/intermediaries/auth/SignedKeyBasedAuth.js +68 -68
- package/dist/lnurl/LNURL.d.ts +102 -102
- package/dist/lnurl/LNURL.js +321 -321
- package/dist/prices/RedundantSwapPrice.d.ts +110 -110
- package/dist/prices/RedundantSwapPrice.js +222 -222
- package/dist/prices/SingleSwapPrice.d.ts +34 -34
- package/dist/prices/SingleSwapPrice.js +44 -44
- package/dist/prices/SwapPriceWithChain.d.ts +107 -107
- package/dist/prices/SwapPriceWithChain.js +128 -128
- package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
- package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
- package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
- package/dist/prices/abstract/IPriceProvider.js +74 -74
- package/dist/prices/abstract/ISwapPrice.d.ts +168 -168
- package/dist/prices/abstract/ISwapPrice.js +279 -279
- package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
- package/dist/prices/providers/BinancePriceProvider.js +30 -30
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
- package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
- package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
- package/dist/prices/providers/CustomPriceProvider.js +35 -35
- package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
- package/dist/prices/providers/KrakenPriceProvider.js +45 -45
- package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
- package/dist/prices/providers/OKXPriceProvider.js +29 -29
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
- package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
- package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
- package/dist/storage/IUnifiedStorage.d.ts +127 -127
- package/dist/storage/IUnifiedStorage.js +2 -2
- package/dist/storage/UnifiedSwapStorage.d.ts +120 -120
- package/dist/storage/UnifiedSwapStorage.js +154 -154
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
- package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
- package/dist/storage-browser/LocalStorageManager.js +93 -93
- package/dist/swapper/Swapper.d.ts +770 -770
- package/dist/swapper/Swapper.js +1758 -1758
- package/dist/swapper/SwapperFactory.d.ts +135 -135
- package/dist/swapper/SwapperFactory.js +162 -162
- package/dist/swapper/SwapperUtils.d.ts +222 -222
- package/dist/swapper/SwapperUtils.js +519 -519
- package/dist/swapper/SwapperWithChain.d.ts +404 -404
- package/dist/swapper/SwapperWithChain.js +469 -469
- package/dist/swapper/SwapperWithSigner.d.ts +322 -322
- package/dist/swapper/SwapperWithSigner.js +318 -318
- package/dist/swaps/IAddressSwap.d.ts +22 -22
- package/dist/swaps/IAddressSwap.js +14 -14
- package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
- package/dist/swaps/IBTCWalletSwap.js +18 -18
- package/dist/swaps/IClaimableSwap.d.ts +49 -49
- package/dist/swaps/IClaimableSwap.js +15 -15
- package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
- package/dist/swaps/IClaimableSwapWrapper.js +2 -2
- package/dist/swaps/IRefundableSwap.d.ts +43 -43
- package/dist/swaps/IRefundableSwap.js +14 -14
- package/dist/swaps/ISwap.d.ts +453 -453
- package/dist/swaps/ISwap.js +371 -371
- package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
- package/dist/swaps/ISwapWithGasDrop.js +12 -12
- package/dist/swaps/ISwapWrapper.d.ts +295 -295
- package/dist/swaps/ISwapWrapper.js +373 -373
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +139 -139
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +172 -172
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +129 -129
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +167 -167
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +107 -107
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +130 -130
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +64 -64
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +82 -82
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +547 -547
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1419 -1419
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +192 -192
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +432 -432
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +650 -650
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1577 -1577
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +237 -237
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +525 -525
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +491 -491
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1463 -1463
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +204 -204
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +406 -406
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +446 -446
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +1097 -1097
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +68 -68
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +117 -117
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +127 -127
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +252 -252
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +535 -535
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +134 -134
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +286 -286
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +694 -694
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1687 -1687
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +259 -259
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +947 -947
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +302 -302
- package/dist/swaps/trusted/ln/LnForGasSwap.js +625 -625
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +82 -82
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +343 -343
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +698 -698
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +71 -71
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +93 -93
- package/dist/types/AmountData.d.ts +10 -10
- package/dist/types/AmountData.js +2 -2
- package/dist/types/CustomPriceFunction.d.ts +11 -11
- package/dist/types/CustomPriceFunction.js +2 -2
- package/dist/types/PriceInfoType.d.ts +28 -28
- package/dist/types/PriceInfoType.js +57 -57
- package/dist/types/SwapExecutionAction.d.ts +195 -195
- package/dist/types/SwapExecutionAction.js +106 -106
- package/dist/types/SwapExecutionStep.d.ts +144 -144
- package/dist/types/SwapExecutionStep.js +87 -87
- package/dist/types/SwapStateInfo.d.ts +5 -5
- package/dist/types/SwapStateInfo.js +2 -2
- package/dist/types/SwapWithSigner.d.ts +17 -17
- package/dist/types/SwapWithSigner.js +43 -43
- package/dist/types/Token.d.ts +99 -99
- package/dist/types/Token.js +76 -76
- package/dist/types/TokenAmount.d.ts +75 -75
- package/dist/types/TokenAmount.js +85 -85
- package/dist/types/fees/Fee.d.ts +50 -50
- package/dist/types/fees/Fee.js +2 -2
- package/dist/types/fees/FeeBreakdown.d.ts +11 -11
- package/dist/types/fees/FeeBreakdown.js +2 -2
- package/dist/types/fees/PercentagePPM.d.ts +17 -17
- package/dist/types/fees/PercentagePPM.js +18 -18
- package/dist/types/lnurl/LNURLPay.d.ts +61 -61
- package/dist/types/lnurl/LNURLPay.js +31 -31
- package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
- package/dist/types/lnurl/LNURLWithdraw.js +27 -27
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
- package/dist/types/wallets/LightningInvoiceCreateService.js +15 -15
- package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
- package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
- package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
- package/dist/utils/AutomaticClockDriftCorrection.js +70 -70
- package/dist/utils/BitcoinUtils.d.ts +18 -18
- package/dist/utils/BitcoinUtils.js +174 -174
- package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
- package/dist/utils/BitcoinWalletUtils.js +14 -14
- package/dist/utils/Logger.d.ts +7 -7
- package/dist/utils/Logger.js +12 -12
- package/dist/utils/RetryUtils.d.ts +22 -22
- package/dist/utils/RetryUtils.js +67 -67
- package/dist/utils/SwapUtils.d.ts +88 -88
- package/dist/utils/SwapUtils.js +72 -72
- package/dist/utils/TimeoutUtils.d.ts +17 -17
- package/dist/utils/TimeoutUtils.js +55 -55
- package/dist/utils/TokenUtils.d.ts +19 -19
- package/dist/utils/TokenUtils.js +37 -37
- package/dist/utils/TypeUtils.d.ts +7 -7
- package/dist/utils/TypeUtils.js +2 -2
- package/dist/utils/Utils.d.ts +69 -69
- package/dist/utils/Utils.js +214 -214
- package/package.json +46 -46
- package/src/SmartChainAssets.ts +186 -186
- package/src/api/ApiEndpoints.ts +427 -427
- package/src/api/ApiParser.ts +138 -138
- package/src/api/ApiTypes.ts +229 -229
- package/src/api/SerializedAction.ts +97 -97
- package/src/api/SwapperApi.ts +545 -545
- package/src/api/index.ts +5 -5
- package/src/bitcoin/coinselect2/accumulative.ts +69 -69
- package/src/bitcoin/coinselect2/blackjack.ts +50 -50
- package/src/bitcoin/coinselect2/index.ts +93 -93
- package/src/bitcoin/coinselect2/utils.ts +236 -236
- package/src/bitcoin/wallet/BitcoinWallet.ts +439 -439
- package/src/bitcoin/wallet/IBitcoinWallet.ts +140 -140
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +225 -225
- package/src/enums/FeeType.ts +15 -15
- package/src/enums/SwapAmountType.ts +16 -16
- package/src/enums/SwapDirection.ts +15 -15
- package/src/enums/SwapSide.ts +16 -16
- package/src/enums/SwapType.ts +75 -75
- package/src/errors/IntermediaryError.ts +28 -28
- package/src/errors/RequestError.ts +64 -64
- package/src/errors/UserError.ts +15 -15
- package/src/events/UnifiedSwapEventListener.ts +181 -181
- package/src/http/HttpUtils.ts +97 -97
- package/src/http/paramcoders/IParamReader.ts +9 -9
- package/src/http/paramcoders/ParamDecoder.ts +145 -145
- package/src/http/paramcoders/ParamEncoder.ts +40 -40
- package/src/http/paramcoders/SchemaVerifier.ts +153 -153
- package/src/http/paramcoders/client/ResponseParamDecoder.ts +57 -57
- package/src/http/paramcoders/client/StreamParamEncoder.ts +28 -28
- package/src/http/paramcoders/client/StreamingFetchPromise.ts +194 -194
- package/src/index.ts +141 -141
- package/src/intermediaries/Intermediary.ts +280 -280
- package/src/intermediaries/IntermediaryDiscovery.ts +548 -548
- package/src/intermediaries/apis/IntermediaryAPI.ts +1247 -1247
- package/src/intermediaries/auth/SignedKeyBasedAuth.ts +69 -69
- package/src/lnurl/LNURL.ts +402 -402
- package/src/prices/RedundantSwapPrice.ts +264 -264
- package/src/prices/SingleSwapPrice.ts +50 -50
- package/src/prices/SwapPriceWithChain.ts +194 -194
- package/src/prices/abstract/ICachedSwapPrice.ts +85 -85
- package/src/prices/abstract/IPriceProvider.ts +127 -127
- package/src/prices/abstract/ISwapPrice.ts +390 -390
- package/src/prices/providers/BinancePriceProvider.ts +48 -48
- package/src/prices/providers/CoinGeckoPriceProvider.ts +46 -46
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +49 -49
- package/src/prices/providers/CustomPriceProvider.ts +40 -40
- package/src/prices/providers/KrakenPriceProvider.ts +83 -83
- package/src/prices/providers/OKXPriceProvider.ts +59 -59
- package/src/prices/providers/abstract/ExchangePriceProvider.ts +31 -31
- package/src/prices/providers/abstract/HttpPriceProvider.ts +14 -14
- package/src/storage/IUnifiedStorage.ts +136 -136
- package/src/storage/UnifiedSwapStorage.ts +175 -175
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +350 -350
- package/src/storage-browser/LocalStorageManager.ts +106 -106
- package/src/swapper/Swapper.ts +2570 -2570
- package/src/swapper/SwapperFactory.ts +307 -307
- package/src/swapper/SwapperUtils.ts +610 -610
- package/src/swapper/SwapperWithChain.ts +707 -707
- package/src/swapper/SwapperWithSigner.ts +511 -511
- package/src/swaps/IAddressSwap.ts +30 -30
- package/src/swaps/IBTCWalletSwap.ts +92 -92
- package/src/swaps/IClaimableSwap.ts +65 -65
- package/src/swaps/IClaimableSwapWrapper.ts +17 -17
- package/src/swaps/IRefundableSwap.ts +58 -58
- package/src/swaps/ISwap.ts +775 -775
- package/src/swaps/ISwapWithGasDrop.ts +25 -25
- package/src/swaps/ISwapWrapper.ts +564 -564
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +217 -217
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +271 -271
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +284 -284
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +172 -172
- package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +300 -300
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +107 -107
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +1670 -1671
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +603 -603
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +1883 -1883
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +752 -752
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +1753 -1753
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +612 -612
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +1327 -1327
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +138 -138
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +304 -304
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +787 -787
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +206 -206
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +403 -403
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +2148 -2148
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +1238 -1238
- package/src/swaps/trusted/ln/LnForGasSwap.ts +753 -753
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +90 -90
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +843 -843
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +133 -133
- package/src/types/AmountData.ts +9 -9
- package/src/types/CustomPriceFunction.ts +11 -11
- package/src/types/PriceInfoType.ts +66 -66
- package/src/types/SwapExecutionAction.ts +323 -323
- package/src/types/SwapExecutionStep.ts +224 -224
- package/src/types/SwapStateInfo.ts +6 -6
- package/src/types/SwapWithSigner.ts +61 -61
- package/src/types/Token.ts +163 -163
- package/src/types/TokenAmount.ts +167 -167
- package/src/types/fees/Fee.ts +56 -56
- package/src/types/fees/FeeBreakdown.ts +11 -11
- package/src/types/fees/PercentagePPM.ts +26 -26
- package/src/types/lnurl/LNURLPay.ts +79 -79
- package/src/types/lnurl/LNURLWithdraw.ts +61 -61
- package/src/types/wallets/LightningInvoiceCreateService.ts +30 -30
- package/src/types/wallets/MinimalBitcoinWalletInterface.ts +21 -21
- package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +9 -9
- package/src/utils/AutomaticClockDriftCorrection.ts +71 -71
- package/src/utils/BitcoinUtils.ts +164 -164
- package/src/utils/BitcoinWalletUtils.ts +15 -15
- package/src/utils/Logger.ts +14 -14
- package/src/utils/RetryUtils.ts +78 -78
- package/src/utils/SwapUtils.ts +99 -99
- package/src/utils/TimeoutUtils.ts +49 -49
- package/src/utils/TokenUtils.ts +33 -33
- package/src/utils/TypeUtils.ts +8 -8
- package/src/utils/Utils.ts +221 -221
package/dist/types/Token.d.ts
CHANGED
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type for all token types (BTC or smart chain)
|
|
3
|
-
*
|
|
4
|
-
* @category Tokens
|
|
5
|
-
*/
|
|
6
|
-
export type Token<ChainIdentifier extends string = string> = {
|
|
7
|
-
/**
|
|
8
|
-
* Chain identifier for the token's chain
|
|
9
|
-
*/
|
|
10
|
-
chainId: ChainIdentifier | "BITCOIN" | "LIGHTNING";
|
|
11
|
-
/**
|
|
12
|
-
* Ticker of the token
|
|
13
|
-
*/
|
|
14
|
-
ticker: string;
|
|
15
|
-
/**
|
|
16
|
-
* Full name of the token
|
|
17
|
-
*/
|
|
18
|
-
name: string;
|
|
19
|
-
/**
|
|
20
|
-
* Actual decimal places of the tokens
|
|
21
|
-
*/
|
|
22
|
-
decimals: number;
|
|
23
|
-
/**
|
|
24
|
-
* The decimal places that should be rendered and displayed to the user
|
|
25
|
-
*/
|
|
26
|
-
displayDecimals?: number;
|
|
27
|
-
/**
|
|
28
|
-
* Address of the token contract, or `""` for Bitcoin
|
|
29
|
-
*/
|
|
30
|
-
address: string;
|
|
31
|
-
/**
|
|
32
|
-
* Legacy chain identifier distinguishing between Smart Chain and Bitcoin tokens
|
|
33
|
-
*/
|
|
34
|
-
chain: "SC" | "BTC";
|
|
35
|
-
/**
|
|
36
|
-
* Legacy lightning flag, determines whether a Bitcoin token is an Lightning or on-chain one
|
|
37
|
-
*/
|
|
38
|
-
lightning?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Equality check between tokens
|
|
41
|
-
*/
|
|
42
|
-
equals: (other: Token) => boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Returns the
|
|
45
|
-
*/
|
|
46
|
-
toString: () => string;
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* Type guard for a {@link Token} type, encompassing all tokens (BTC or smart chain)
|
|
50
|
-
*
|
|
51
|
-
* @category Tokens
|
|
52
|
-
*/
|
|
53
|
-
export declare function isToken(obj: any): obj is Token;
|
|
54
|
-
/**
|
|
55
|
-
* Bitcoin token type (BTC on on-chain or lightning)
|
|
56
|
-
*
|
|
57
|
-
* @category Tokens
|
|
58
|
-
*/
|
|
59
|
-
export type BtcToken<L = boolean> = Token & {
|
|
60
|
-
chainId: L extends true ? "LIGHTNING" : "BITCOIN";
|
|
61
|
-
ticker: "BTC";
|
|
62
|
-
name: L extends true ? "Bitcoin (lightning L2)" : "Bitcoin (on-chain L1)";
|
|
63
|
-
decimals: 8;
|
|
64
|
-
displayDecimals: 8;
|
|
65
|
-
address: "";
|
|
66
|
-
chain: "BTC";
|
|
67
|
-
lightning: L;
|
|
68
|
-
toString: () => L extends true ? "BTC-LN" : "BTC";
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Type guard for {@link BtcToken} (token on the bitcoin network - lightning or on-chain)
|
|
72
|
-
*
|
|
73
|
-
* @category Tokens
|
|
74
|
-
*/
|
|
75
|
-
export declare function isBtcToken(obj: any): obj is BtcToken;
|
|
76
|
-
/**
|
|
77
|
-
* Predefined Bitcoin token constants
|
|
78
|
-
*
|
|
79
|
-
* @category Tokens
|
|
80
|
-
*/
|
|
81
|
-
export declare const BitcoinTokens: {
|
|
82
|
-
BTC: BtcToken<false>;
|
|
83
|
-
BTCLN: BtcToken<true>;
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* Token on the smart chain
|
|
87
|
-
*
|
|
88
|
-
* @category Tokens
|
|
89
|
-
*/
|
|
90
|
-
export type SCToken<ChainIdentifier extends string = string> = Token<ChainIdentifier> & {
|
|
91
|
-
chainId: ChainIdentifier;
|
|
92
|
-
chain: "SC";
|
|
93
|
-
toString: () => `${ChainIdentifier}-${string}`;
|
|
94
|
-
};
|
|
95
|
-
/**
|
|
96
|
-
* Type guard for {@link SCToken} (token on the smart chain)
|
|
97
|
-
* @category Tokens
|
|
98
|
-
*/
|
|
99
|
-
export declare function isSCToken<ChainIdentifier extends string = string>(obj: any, chainIdentifier?: ChainIdentifier[]): obj is SCToken<ChainIdentifier>;
|
|
1
|
+
/**
|
|
2
|
+
* Type for all token types (BTC or smart chain)
|
|
3
|
+
*
|
|
4
|
+
* @category Tokens
|
|
5
|
+
*/
|
|
6
|
+
export type Token<ChainIdentifier extends string = string> = {
|
|
7
|
+
/**
|
|
8
|
+
* Chain identifier for the token's chain
|
|
9
|
+
*/
|
|
10
|
+
chainId: ChainIdentifier | "BITCOIN" | "LIGHTNING";
|
|
11
|
+
/**
|
|
12
|
+
* Ticker of the token
|
|
13
|
+
*/
|
|
14
|
+
ticker: string;
|
|
15
|
+
/**
|
|
16
|
+
* Full name of the token
|
|
17
|
+
*/
|
|
18
|
+
name: string;
|
|
19
|
+
/**
|
|
20
|
+
* Actual decimal places of the tokens
|
|
21
|
+
*/
|
|
22
|
+
decimals: number;
|
|
23
|
+
/**
|
|
24
|
+
* The decimal places that should be rendered and displayed to the user
|
|
25
|
+
*/
|
|
26
|
+
displayDecimals?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Address of the token contract, or `""` for Bitcoin
|
|
29
|
+
*/
|
|
30
|
+
address: string;
|
|
31
|
+
/**
|
|
32
|
+
* Legacy chain identifier distinguishing between Smart Chain and Bitcoin tokens
|
|
33
|
+
*/
|
|
34
|
+
chain: "SC" | "BTC";
|
|
35
|
+
/**
|
|
36
|
+
* Legacy lightning flag, determines whether a Bitcoin token is an Lightning or on-chain one
|
|
37
|
+
*/
|
|
38
|
+
lightning?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Equality check between tokens
|
|
41
|
+
*/
|
|
42
|
+
equals: (other: Token) => boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Returns the
|
|
45
|
+
*/
|
|
46
|
+
toString: () => string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Type guard for a {@link Token} type, encompassing all tokens (BTC or smart chain)
|
|
50
|
+
*
|
|
51
|
+
* @category Tokens
|
|
52
|
+
*/
|
|
53
|
+
export declare function isToken(obj: any): obj is Token;
|
|
54
|
+
/**
|
|
55
|
+
* Bitcoin token type (BTC on on-chain or lightning)
|
|
56
|
+
*
|
|
57
|
+
* @category Tokens
|
|
58
|
+
*/
|
|
59
|
+
export type BtcToken<L = boolean> = Token & {
|
|
60
|
+
chainId: L extends true ? "LIGHTNING" : "BITCOIN";
|
|
61
|
+
ticker: "BTC";
|
|
62
|
+
name: L extends true ? "Bitcoin (lightning L2)" : "Bitcoin (on-chain L1)";
|
|
63
|
+
decimals: 8;
|
|
64
|
+
displayDecimals: 8;
|
|
65
|
+
address: "";
|
|
66
|
+
chain: "BTC";
|
|
67
|
+
lightning: L;
|
|
68
|
+
toString: () => L extends true ? "BTC-LN" : "BTC";
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Type guard for {@link BtcToken} (token on the bitcoin network - lightning or on-chain)
|
|
72
|
+
*
|
|
73
|
+
* @category Tokens
|
|
74
|
+
*/
|
|
75
|
+
export declare function isBtcToken(obj: any): obj is BtcToken;
|
|
76
|
+
/**
|
|
77
|
+
* Predefined Bitcoin token constants
|
|
78
|
+
*
|
|
79
|
+
* @category Tokens
|
|
80
|
+
*/
|
|
81
|
+
export declare const BitcoinTokens: {
|
|
82
|
+
BTC: BtcToken<false>;
|
|
83
|
+
BTCLN: BtcToken<true>;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Token on the smart chain
|
|
87
|
+
*
|
|
88
|
+
* @category Tokens
|
|
89
|
+
*/
|
|
90
|
+
export type SCToken<ChainIdentifier extends string = string> = Token<ChainIdentifier> & {
|
|
91
|
+
chainId: ChainIdentifier;
|
|
92
|
+
chain: "SC";
|
|
93
|
+
toString: () => `${ChainIdentifier}-${string}`;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Type guard for {@link SCToken} (token on the smart chain)
|
|
97
|
+
* @category Tokens
|
|
98
|
+
*/
|
|
99
|
+
export declare function isSCToken<ChainIdentifier extends string = string>(obj: any, chainIdentifier?: ChainIdentifier[]): obj is SCToken<ChainIdentifier>;
|
package/dist/types/Token.js
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSCToken = exports.BitcoinTokens = exports.isBtcToken = exports.isToken = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Type guard for a {@link Token} type, encompassing all tokens (BTC or smart chain)
|
|
6
|
-
*
|
|
7
|
-
* @category Tokens
|
|
8
|
-
*/
|
|
9
|
-
function isToken(obj) {
|
|
10
|
-
return typeof (obj) === "object" &&
|
|
11
|
-
(obj.chain === "SC" || obj.chain === "BTC") &&
|
|
12
|
-
typeof (obj.ticker) === "string" &&
|
|
13
|
-
typeof (obj.decimals) === "number" &&
|
|
14
|
-
typeof (obj.name) === "string";
|
|
15
|
-
}
|
|
16
|
-
exports.isToken = isToken;
|
|
17
|
-
/**
|
|
18
|
-
* Type guard for {@link BtcToken} (token on the bitcoin network - lightning or on-chain)
|
|
19
|
-
*
|
|
20
|
-
* @category Tokens
|
|
21
|
-
*/
|
|
22
|
-
function isBtcToken(obj) {
|
|
23
|
-
return typeof (obj) === "object" &&
|
|
24
|
-
obj.chain === "BTC" &&
|
|
25
|
-
typeof (obj.lightning) === "boolean" &&
|
|
26
|
-
typeof (obj.ticker) === "string" &&
|
|
27
|
-
typeof (obj.decimals) === "number" &&
|
|
28
|
-
typeof (obj.name) === "string";
|
|
29
|
-
}
|
|
30
|
-
exports.isBtcToken = isBtcToken;
|
|
31
|
-
/**
|
|
32
|
-
* Predefined Bitcoin token constants
|
|
33
|
-
*
|
|
34
|
-
* @category Tokens
|
|
35
|
-
*/
|
|
36
|
-
exports.BitcoinTokens = {
|
|
37
|
-
BTC: {
|
|
38
|
-
chain: "BTC",
|
|
39
|
-
chainId: "BITCOIN",
|
|
40
|
-
lightning: false,
|
|
41
|
-
ticker: "BTC",
|
|
42
|
-
decimals: 8,
|
|
43
|
-
displayDecimals: 8,
|
|
44
|
-
name: "Bitcoin (on-chain L1)",
|
|
45
|
-
address: "",
|
|
46
|
-
equals: (other) => other.chainId === "BITCOIN" && other.ticker === "BTC",
|
|
47
|
-
toString: () => "BTC"
|
|
48
|
-
},
|
|
49
|
-
BTCLN: {
|
|
50
|
-
chain: "BTC",
|
|
51
|
-
chainId: "LIGHTNING",
|
|
52
|
-
lightning: true,
|
|
53
|
-
ticker: "BTC",
|
|
54
|
-
decimals: 8,
|
|
55
|
-
displayDecimals: 8,
|
|
56
|
-
name: "Bitcoin (lightning L2)",
|
|
57
|
-
address: "",
|
|
58
|
-
equals: (other) => other.chainId === "LIGHTNING" && other.ticker === "BTC",
|
|
59
|
-
toString: () => "BTC-LN"
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Type guard for {@link SCToken} (token on the smart chain)
|
|
64
|
-
* @category Tokens
|
|
65
|
-
*/
|
|
66
|
-
function isSCToken(obj, chainIdentifier) {
|
|
67
|
-
return typeof (obj) === "object" &&
|
|
68
|
-
obj.chain === "SC" &&
|
|
69
|
-
typeof (obj.chainId) === "string" &&
|
|
70
|
-
(chainIdentifier == null || chainIdentifier.includes(obj.chainId)) &&
|
|
71
|
-
typeof (obj.address) === "string" &&
|
|
72
|
-
typeof (obj.ticker) === "string" &&
|
|
73
|
-
typeof (obj.decimals) === "number" &&
|
|
74
|
-
typeof (obj.name) === "string";
|
|
75
|
-
}
|
|
76
|
-
exports.isSCToken = isSCToken;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSCToken = exports.BitcoinTokens = exports.isBtcToken = exports.isToken = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Type guard for a {@link Token} type, encompassing all tokens (BTC or smart chain)
|
|
6
|
+
*
|
|
7
|
+
* @category Tokens
|
|
8
|
+
*/
|
|
9
|
+
function isToken(obj) {
|
|
10
|
+
return typeof (obj) === "object" &&
|
|
11
|
+
(obj.chain === "SC" || obj.chain === "BTC") &&
|
|
12
|
+
typeof (obj.ticker) === "string" &&
|
|
13
|
+
typeof (obj.decimals) === "number" &&
|
|
14
|
+
typeof (obj.name) === "string";
|
|
15
|
+
}
|
|
16
|
+
exports.isToken = isToken;
|
|
17
|
+
/**
|
|
18
|
+
* Type guard for {@link BtcToken} (token on the bitcoin network - lightning or on-chain)
|
|
19
|
+
*
|
|
20
|
+
* @category Tokens
|
|
21
|
+
*/
|
|
22
|
+
function isBtcToken(obj) {
|
|
23
|
+
return typeof (obj) === "object" &&
|
|
24
|
+
obj.chain === "BTC" &&
|
|
25
|
+
typeof (obj.lightning) === "boolean" &&
|
|
26
|
+
typeof (obj.ticker) === "string" &&
|
|
27
|
+
typeof (obj.decimals) === "number" &&
|
|
28
|
+
typeof (obj.name) === "string";
|
|
29
|
+
}
|
|
30
|
+
exports.isBtcToken = isBtcToken;
|
|
31
|
+
/**
|
|
32
|
+
* Predefined Bitcoin token constants
|
|
33
|
+
*
|
|
34
|
+
* @category Tokens
|
|
35
|
+
*/
|
|
36
|
+
exports.BitcoinTokens = {
|
|
37
|
+
BTC: {
|
|
38
|
+
chain: "BTC",
|
|
39
|
+
chainId: "BITCOIN",
|
|
40
|
+
lightning: false,
|
|
41
|
+
ticker: "BTC",
|
|
42
|
+
decimals: 8,
|
|
43
|
+
displayDecimals: 8,
|
|
44
|
+
name: "Bitcoin (on-chain L1)",
|
|
45
|
+
address: "",
|
|
46
|
+
equals: (other) => other.chainId === "BITCOIN" && other.ticker === "BTC",
|
|
47
|
+
toString: () => "BTC"
|
|
48
|
+
},
|
|
49
|
+
BTCLN: {
|
|
50
|
+
chain: "BTC",
|
|
51
|
+
chainId: "LIGHTNING",
|
|
52
|
+
lightning: true,
|
|
53
|
+
ticker: "BTC",
|
|
54
|
+
decimals: 8,
|
|
55
|
+
displayDecimals: 8,
|
|
56
|
+
name: "Bitcoin (lightning L2)",
|
|
57
|
+
address: "",
|
|
58
|
+
equals: (other) => other.chainId === "LIGHTNING" && other.ticker === "BTC",
|
|
59
|
+
toString: () => "BTC-LN"
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Type guard for {@link SCToken} (token on the smart chain)
|
|
64
|
+
* @category Tokens
|
|
65
|
+
*/
|
|
66
|
+
function isSCToken(obj, chainIdentifier) {
|
|
67
|
+
return typeof (obj) === "object" &&
|
|
68
|
+
obj.chain === "SC" &&
|
|
69
|
+
typeof (obj.chainId) === "string" &&
|
|
70
|
+
(chainIdentifier == null || chainIdentifier.includes(obj.chainId)) &&
|
|
71
|
+
typeof (obj.address) === "string" &&
|
|
72
|
+
typeof (obj.ticker) === "string" &&
|
|
73
|
+
typeof (obj.decimals) === "number" &&
|
|
74
|
+
typeof (obj.name) === "string";
|
|
75
|
+
}
|
|
76
|
+
exports.isSCToken = isSCToken;
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
import { ISwapPrice } from "../prices/abstract/ISwapPrice";
|
|
2
|
-
import { Token } from "./Token";
|
|
3
|
-
import { PriceInfoType } from "./PriceInfoType";
|
|
4
|
-
/**
|
|
5
|
-
* Represents a token amount along with its formatted values and USD valuation helpers
|
|
6
|
-
*
|
|
7
|
-
* @category Tokens
|
|
8
|
-
*/
|
|
9
|
-
export type TokenAmount<T extends Token = Token, Known extends boolean = boolean> = {
|
|
10
|
-
/**
|
|
11
|
-
* Raw amount in base units represented as bigint, might be `undefined` when the amount is unknown
|
|
12
|
-
*/
|
|
13
|
-
rawAmount: Known extends true ? bigint : undefined;
|
|
14
|
-
/**
|
|
15
|
-
* Human readable amount with decimal places, might be empty string `""` when the amount is unknown
|
|
16
|
-
*/
|
|
17
|
-
amount: string;
|
|
18
|
-
/**
|
|
19
|
-
* Number representation of the decimal token amount (can lose precision!), might be `NaN` when
|
|
20
|
-
* the amount is unknown
|
|
21
|
-
*/
|
|
22
|
-
_amount: number;
|
|
23
|
-
/**
|
|
24
|
-
* Token associated with this amount
|
|
25
|
-
*/
|
|
26
|
-
token: T;
|
|
27
|
-
/**
|
|
28
|
-
* Fetches the current USD value of the amount, might return `NaN` when the amount is unknown
|
|
29
|
-
*
|
|
30
|
-
* @param abortSignal
|
|
31
|
-
* @param preFetchedUsdPrice You can supply a pre-fetched usd price to the pricing function
|
|
32
|
-
* @returns A promise resolving to the current USD value of the token amount
|
|
33
|
-
*/
|
|
34
|
-
currentUsdValue: (abortSignal?: AbortSignal, preFetchedUsdPrice?: number) => Promise<number>;
|
|
35
|
-
/**
|
|
36
|
-
* Gets USD value of the amount, if this amount was returned from a swap it uses the USD value
|
|
37
|
-
* when the swap was created, otherwise fetches the usd value on-demand, might return `NaN`
|
|
38
|
-
* when the amount is unknown
|
|
39
|
-
*
|
|
40
|
-
* @param abortSignal
|
|
41
|
-
* @param preFetchedUsdPrice You can supply a pre-fetched usd price to the pricing function
|
|
42
|
-
* @returns A promise resolving to the current USD value of the token amount
|
|
43
|
-
*/
|
|
44
|
-
usdValue: (abortSignal?: AbortSignal, preFetchedUsdPrice?: number) => Promise<number>;
|
|
45
|
-
/**
|
|
46
|
-
* USD value of the amount when swap was created - only present for token amounts obtained
|
|
47
|
-
* from swaps, left for convenience only, use usdValue() instead, which automatically
|
|
48
|
-
* recognizes which pricing to use (either past value if available or fetches it on-demand),
|
|
49
|
-
* might be `NaN` when the amount is unknown
|
|
50
|
-
*/
|
|
51
|
-
pastUsdValue?: number;
|
|
52
|
-
/**
|
|
53
|
-
* Returns the string representation of the amount along with the token ticker in format: `"{amount} {ticker}"`,
|
|
54
|
-
* in case the anmount is unknown returns `"??? {ticker}"`
|
|
55
|
-
*/
|
|
56
|
-
toString: () => string;
|
|
57
|
-
/**
|
|
58
|
-
* Whether the token amount contains an unknown or undefined amount, in this case numeric values are `NaN`,
|
|
59
|
-
* raw amount is `undefined`, string representation is `""` and `toString()` returns `"??? {ticker}"`
|
|
60
|
-
*/
|
|
61
|
-
isUnknown: Known extends true ? false : true;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* Type guard for {@link TokenAmount}
|
|
65
|
-
*
|
|
66
|
-
* @category Tokens
|
|
67
|
-
*/
|
|
68
|
-
export declare function isTokenAmount<T extends Token = Token, Known extends boolean = boolean>(obj: any, token?: T, known?: Known): obj is TokenAmount<T, Known>;
|
|
69
|
-
/**
|
|
70
|
-
* Factory function to create a TokenAmount
|
|
71
|
-
*
|
|
72
|
-
* @category Tokens
|
|
73
|
-
* @internal
|
|
74
|
-
*/
|
|
75
|
-
export declare function toTokenAmount<T extends Token = Token, Known extends boolean = boolean>(amount: Known extends true ? bigint : null, token: T, prices: ISwapPrice, pricingInfo?: PriceInfoType): TokenAmount<T, Known>;
|
|
1
|
+
import { ISwapPrice } from "../prices/abstract/ISwapPrice";
|
|
2
|
+
import { Token } from "./Token";
|
|
3
|
+
import { PriceInfoType } from "./PriceInfoType";
|
|
4
|
+
/**
|
|
5
|
+
* Represents a token amount along with its formatted values and USD valuation helpers
|
|
6
|
+
*
|
|
7
|
+
* @category Tokens
|
|
8
|
+
*/
|
|
9
|
+
export type TokenAmount<T extends Token = Token, Known extends boolean = boolean> = {
|
|
10
|
+
/**
|
|
11
|
+
* Raw amount in base units represented as bigint, might be `undefined` when the amount is unknown
|
|
12
|
+
*/
|
|
13
|
+
rawAmount: Known extends true ? bigint : undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Human readable amount with decimal places, might be empty string `""` when the amount is unknown
|
|
16
|
+
*/
|
|
17
|
+
amount: string;
|
|
18
|
+
/**
|
|
19
|
+
* Number representation of the decimal token amount (can lose precision!), might be `NaN` when
|
|
20
|
+
* the amount is unknown
|
|
21
|
+
*/
|
|
22
|
+
_amount: number;
|
|
23
|
+
/**
|
|
24
|
+
* Token associated with this amount
|
|
25
|
+
*/
|
|
26
|
+
token: T;
|
|
27
|
+
/**
|
|
28
|
+
* Fetches the current USD value of the amount, might return `NaN` when the amount is unknown
|
|
29
|
+
*
|
|
30
|
+
* @param abortSignal
|
|
31
|
+
* @param preFetchedUsdPrice You can supply a pre-fetched usd price to the pricing function
|
|
32
|
+
* @returns A promise resolving to the current USD value of the token amount
|
|
33
|
+
*/
|
|
34
|
+
currentUsdValue: (abortSignal?: AbortSignal, preFetchedUsdPrice?: number) => Promise<number>;
|
|
35
|
+
/**
|
|
36
|
+
* Gets USD value of the amount, if this amount was returned from a swap it uses the USD value
|
|
37
|
+
* when the swap was created, otherwise fetches the usd value on-demand, might return `NaN`
|
|
38
|
+
* when the amount is unknown
|
|
39
|
+
*
|
|
40
|
+
* @param abortSignal
|
|
41
|
+
* @param preFetchedUsdPrice You can supply a pre-fetched usd price to the pricing function
|
|
42
|
+
* @returns A promise resolving to the current USD value of the token amount
|
|
43
|
+
*/
|
|
44
|
+
usdValue: (abortSignal?: AbortSignal, preFetchedUsdPrice?: number) => Promise<number>;
|
|
45
|
+
/**
|
|
46
|
+
* USD value of the amount when swap was created - only present for token amounts obtained
|
|
47
|
+
* from swaps, left for convenience only, use usdValue() instead, which automatically
|
|
48
|
+
* recognizes which pricing to use (either past value if available or fetches it on-demand),
|
|
49
|
+
* might be `NaN` when the amount is unknown
|
|
50
|
+
*/
|
|
51
|
+
pastUsdValue?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Returns the string representation of the amount along with the token ticker in format: `"{amount} {ticker}"`,
|
|
54
|
+
* in case the anmount is unknown returns `"??? {ticker}"`
|
|
55
|
+
*/
|
|
56
|
+
toString: () => string;
|
|
57
|
+
/**
|
|
58
|
+
* Whether the token amount contains an unknown or undefined amount, in this case numeric values are `NaN`,
|
|
59
|
+
* raw amount is `undefined`, string representation is `""` and `toString()` returns `"??? {ticker}"`
|
|
60
|
+
*/
|
|
61
|
+
isUnknown: Known extends true ? false : true;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Type guard for {@link TokenAmount}
|
|
65
|
+
*
|
|
66
|
+
* @category Tokens
|
|
67
|
+
*/
|
|
68
|
+
export declare function isTokenAmount<T extends Token = Token, Known extends boolean = boolean>(obj: any, token?: T, known?: Known): obj is TokenAmount<T, Known>;
|
|
69
|
+
/**
|
|
70
|
+
* Factory function to create a TokenAmount
|
|
71
|
+
*
|
|
72
|
+
* @category Tokens
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
75
|
+
export declare function toTokenAmount<T extends Token = Token, Known extends boolean = boolean>(amount: Known extends true ? bigint : null, token: T, prices: ISwapPrice, pricingInfo?: PriceInfoType): TokenAmount<T, Known>;
|