@atomiqlabs/sdk 8.9.1 → 8.9.2
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 +765 -770
- package/dist/swapper/Swapper.js +1749 -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 +2557 -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/api/ApiTypes.js
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createApiEndpoint = exports.toApiLNURL = exports.toApiToken = exports.toApiAmount = void 0;
|
|
4
|
-
const Token_1 = require("../types/Token");
|
|
5
|
-
const TokenAmount_1 = require("../types/TokenAmount");
|
|
6
|
-
const ApiParser_1 = require("./ApiParser");
|
|
7
|
-
/**
|
|
8
|
-
* Converts a TokenAmount to the serializable ApiAmount format
|
|
9
|
-
*
|
|
10
|
-
* @category API
|
|
11
|
-
*/
|
|
12
|
-
function toApiAmount(tokenAmount) {
|
|
13
|
-
return {
|
|
14
|
-
amount: tokenAmount.amount,
|
|
15
|
-
rawAmount: tokenAmount.rawAmount != null ? tokenAmount.rawAmount.toString() : "0",
|
|
16
|
-
decimals: tokenAmount.token.decimals,
|
|
17
|
-
symbol: tokenAmount.token.ticker,
|
|
18
|
-
chain: tokenAmount.token.chainId
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
exports.toApiAmount = toApiAmount;
|
|
22
|
-
/**
|
|
23
|
-
* Converts a Token to the serializable ApiToken format
|
|
24
|
-
*
|
|
25
|
-
* @category API
|
|
26
|
-
*/
|
|
27
|
-
function toApiToken(token) {
|
|
28
|
-
return {
|
|
29
|
-
id: `${token.chainId}-${token.ticker}`,
|
|
30
|
-
chainId: token.chainId,
|
|
31
|
-
ticker: token.ticker,
|
|
32
|
-
name: token.name,
|
|
33
|
-
decimals: token.decimals,
|
|
34
|
-
address: token.address
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
exports.toApiToken = toApiToken;
|
|
38
|
-
/**
|
|
39
|
-
* Converts LNURL data to the serializable API format
|
|
40
|
-
*
|
|
41
|
-
* @category API
|
|
42
|
-
*/
|
|
43
|
-
function toApiLNURL(lnurl, swapper) {
|
|
44
|
-
if (lnurl.type === "pay") {
|
|
45
|
-
return {
|
|
46
|
-
type: "pay",
|
|
47
|
-
min: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.min, Token_1.BitcoinTokens.BTCLN, swapper.prices)),
|
|
48
|
-
max: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.max, Token_1.BitcoinTokens.BTCLN, swapper.prices)),
|
|
49
|
-
commentMaxLength: lnurl.commentMaxLength,
|
|
50
|
-
...(lnurl.shortDescription != null ? { shortDescription: lnurl.shortDescription } : {}),
|
|
51
|
-
...(lnurl.longDescription != null ? { longDescription: lnurl.longDescription } : {}),
|
|
52
|
-
...(lnurl.icon != null ? { icon: lnurl.icon } : {}),
|
|
53
|
-
params: lnurl.params
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
type: "withdraw",
|
|
58
|
-
min: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.min, Token_1.BitcoinTokens.BTCLN, swapper.prices)),
|
|
59
|
-
max: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.max, Token_1.BitcoinTokens.BTCLN, swapper.prices)),
|
|
60
|
-
params: lnurl.params
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
exports.toApiLNURL = toApiLNURL;
|
|
64
|
-
function createApiEndpoint(type, description, callback, inputSchema) {
|
|
65
|
-
return {
|
|
66
|
-
type,
|
|
67
|
-
description,
|
|
68
|
-
callback,
|
|
69
|
-
inputSchema,
|
|
70
|
-
callbackRaw: (input, abortSignal) => {
|
|
71
|
-
return callback((0, ApiParser_1.parseApiInput)(inputSchema, input), abortSignal);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
exports.createApiEndpoint = createApiEndpoint;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createApiEndpoint = exports.toApiLNURL = exports.toApiToken = exports.toApiAmount = void 0;
|
|
4
|
+
const Token_1 = require("../types/Token");
|
|
5
|
+
const TokenAmount_1 = require("../types/TokenAmount");
|
|
6
|
+
const ApiParser_1 = require("./ApiParser");
|
|
7
|
+
/**
|
|
8
|
+
* Converts a TokenAmount to the serializable ApiAmount format
|
|
9
|
+
*
|
|
10
|
+
* @category API
|
|
11
|
+
*/
|
|
12
|
+
function toApiAmount(tokenAmount) {
|
|
13
|
+
return {
|
|
14
|
+
amount: tokenAmount.amount,
|
|
15
|
+
rawAmount: tokenAmount.rawAmount != null ? tokenAmount.rawAmount.toString() : "0",
|
|
16
|
+
decimals: tokenAmount.token.decimals,
|
|
17
|
+
symbol: tokenAmount.token.ticker,
|
|
18
|
+
chain: tokenAmount.token.chainId
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exports.toApiAmount = toApiAmount;
|
|
22
|
+
/**
|
|
23
|
+
* Converts a Token to the serializable ApiToken format
|
|
24
|
+
*
|
|
25
|
+
* @category API
|
|
26
|
+
*/
|
|
27
|
+
function toApiToken(token) {
|
|
28
|
+
return {
|
|
29
|
+
id: `${token.chainId}-${token.ticker}`,
|
|
30
|
+
chainId: token.chainId,
|
|
31
|
+
ticker: token.ticker,
|
|
32
|
+
name: token.name,
|
|
33
|
+
decimals: token.decimals,
|
|
34
|
+
address: token.address
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
exports.toApiToken = toApiToken;
|
|
38
|
+
/**
|
|
39
|
+
* Converts LNURL data to the serializable API format
|
|
40
|
+
*
|
|
41
|
+
* @category API
|
|
42
|
+
*/
|
|
43
|
+
function toApiLNURL(lnurl, swapper) {
|
|
44
|
+
if (lnurl.type === "pay") {
|
|
45
|
+
return {
|
|
46
|
+
type: "pay",
|
|
47
|
+
min: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.min, Token_1.BitcoinTokens.BTCLN, swapper.prices)),
|
|
48
|
+
max: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.max, Token_1.BitcoinTokens.BTCLN, swapper.prices)),
|
|
49
|
+
commentMaxLength: lnurl.commentMaxLength,
|
|
50
|
+
...(lnurl.shortDescription != null ? { shortDescription: lnurl.shortDescription } : {}),
|
|
51
|
+
...(lnurl.longDescription != null ? { longDescription: lnurl.longDescription } : {}),
|
|
52
|
+
...(lnurl.icon != null ? { icon: lnurl.icon } : {}),
|
|
53
|
+
params: lnurl.params
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
type: "withdraw",
|
|
58
|
+
min: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.min, Token_1.BitcoinTokens.BTCLN, swapper.prices)),
|
|
59
|
+
max: toApiAmount((0, TokenAmount_1.toTokenAmount)(lnurl.max, Token_1.BitcoinTokens.BTCLN, swapper.prices)),
|
|
60
|
+
params: lnurl.params
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
exports.toApiLNURL = toApiLNURL;
|
|
64
|
+
function createApiEndpoint(type, description, callback, inputSchema) {
|
|
65
|
+
return {
|
|
66
|
+
type,
|
|
67
|
+
description,
|
|
68
|
+
callback,
|
|
69
|
+
inputSchema,
|
|
70
|
+
callbackRaw: (input, abortSignal) => {
|
|
71
|
+
return callback((0, ApiParser_1.parseApiInput)(inputSchema, input), abortSignal);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
exports.createApiEndpoint = createApiEndpoint;
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { SwapExecutionAction } from "../types/SwapExecutionAction";
|
|
2
|
-
import { ApiAmount } from "./ApiTypes";
|
|
3
|
-
/**
|
|
4
|
-
* Strips non-serializable fields (functions, complex objects) from SwapExecutionAction types.
|
|
5
|
-
* Uses key-remapping to truly omit function keys from the resulting type.
|
|
6
|
-
*
|
|
7
|
-
* - SignSmartChainTransaction: functions removed, txs → string[]
|
|
8
|
-
* - SignPSBT: functions removed, txs[].psbt (Transaction object) omitted
|
|
9
|
-
* - SendToAddress: functions removed, txs[].amount (TokenAmount) → ApiAmount
|
|
10
|
-
* - Wait: functions removed, data fields kept as-is
|
|
11
|
-
*
|
|
12
|
-
* @category API
|
|
13
|
-
*/
|
|
14
|
-
export type SerializedAction<T extends SwapExecutionAction> = T["type"] extends "SignSmartChainTransaction" ? {
|
|
15
|
-
[K in keyof T as T[K] extends Function ? never : K]: K extends "txs" ? string[] : T[K];
|
|
16
|
-
} : T["type"] extends "SignPSBT" ? {
|
|
17
|
-
[K in keyof T as T[K] extends Function ? never : K]: K extends "txs" ? (T extends {
|
|
18
|
-
txs: (infer U)[];
|
|
19
|
-
} ? Omit<U, "psbt">[] : never) : T[K];
|
|
20
|
-
} : T["type"] extends "SendToAddress" ? {
|
|
21
|
-
[K in keyof T as T[K] extends Function ? never : K]: K extends "txs" ? (T extends {
|
|
22
|
-
txs: (infer U)[];
|
|
23
|
-
} ? (Omit<U, "amount"> & {
|
|
24
|
-
amount: ApiAmount;
|
|
25
|
-
})[] : never) : T[K];
|
|
26
|
-
} : {
|
|
27
|
-
[K in keyof T as T[K] extends Function ? never : K]: T[K];
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* Runtime serializer that strips non-serializable fields from a SwapExecutionAction.
|
|
31
|
-
* Matches the compile-time SerializedAction<T> type.
|
|
32
|
-
*
|
|
33
|
-
* @param action The swap execution action to serialize
|
|
34
|
-
* @param txSerializer Optional chain-specific transaction serializer for SignSmartChainTransaction actions.
|
|
35
|
-
* Accepts the chain identifier and raw transaction, returns the serialized string.
|
|
36
|
-
* Falls back to JSON.stringify if not provided.
|
|
37
|
-
*
|
|
38
|
-
* @category API
|
|
39
|
-
*/
|
|
40
|
-
export declare function serializeAction(action: SwapExecutionAction, txSerializer?: (chainId: string, tx: any) => Promise<string>): Promise<SerializedAction<SwapExecutionAction>>;
|
|
1
|
+
import { SwapExecutionAction } from "../types/SwapExecutionAction";
|
|
2
|
+
import { ApiAmount } from "./ApiTypes";
|
|
3
|
+
/**
|
|
4
|
+
* Strips non-serializable fields (functions, complex objects) from SwapExecutionAction types.
|
|
5
|
+
* Uses key-remapping to truly omit function keys from the resulting type.
|
|
6
|
+
*
|
|
7
|
+
* - SignSmartChainTransaction: functions removed, txs → string[]
|
|
8
|
+
* - SignPSBT: functions removed, txs[].psbt (Transaction object) omitted
|
|
9
|
+
* - SendToAddress: functions removed, txs[].amount (TokenAmount) → ApiAmount
|
|
10
|
+
* - Wait: functions removed, data fields kept as-is
|
|
11
|
+
*
|
|
12
|
+
* @category API
|
|
13
|
+
*/
|
|
14
|
+
export type SerializedAction<T extends SwapExecutionAction> = T["type"] extends "SignSmartChainTransaction" ? {
|
|
15
|
+
[K in keyof T as T[K] extends Function ? never : K]: K extends "txs" ? string[] : T[K];
|
|
16
|
+
} : T["type"] extends "SignPSBT" ? {
|
|
17
|
+
[K in keyof T as T[K] extends Function ? never : K]: K extends "txs" ? (T extends {
|
|
18
|
+
txs: (infer U)[];
|
|
19
|
+
} ? Omit<U, "psbt">[] : never) : T[K];
|
|
20
|
+
} : T["type"] extends "SendToAddress" ? {
|
|
21
|
+
[K in keyof T as T[K] extends Function ? never : K]: K extends "txs" ? (T extends {
|
|
22
|
+
txs: (infer U)[];
|
|
23
|
+
} ? (Omit<U, "amount"> & {
|
|
24
|
+
amount: ApiAmount;
|
|
25
|
+
})[] : never) : T[K];
|
|
26
|
+
} : {
|
|
27
|
+
[K in keyof T as T[K] extends Function ? never : K]: T[K];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Runtime serializer that strips non-serializable fields from a SwapExecutionAction.
|
|
31
|
+
* Matches the compile-time SerializedAction<T> type.
|
|
32
|
+
*
|
|
33
|
+
* @param action The swap execution action to serialize
|
|
34
|
+
* @param txSerializer Optional chain-specific transaction serializer for SignSmartChainTransaction actions.
|
|
35
|
+
* Accepts the chain identifier and raw transaction, returns the serialized string.
|
|
36
|
+
* Falls back to JSON.stringify if not provided.
|
|
37
|
+
*
|
|
38
|
+
* @category API
|
|
39
|
+
*/
|
|
40
|
+
export declare function serializeAction(action: SwapExecutionAction, txSerializer?: (chainId: string, tx: any) => Promise<string>): Promise<SerializedAction<SwapExecutionAction>>;
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.serializeAction = void 0;
|
|
4
|
-
const ApiTypes_1 = require("./ApiTypes");
|
|
5
|
-
/**
|
|
6
|
-
* Runtime serializer that strips non-serializable fields from a SwapExecutionAction.
|
|
7
|
-
* Matches the compile-time SerializedAction<T> type.
|
|
8
|
-
*
|
|
9
|
-
* @param action The swap execution action to serialize
|
|
10
|
-
* @param txSerializer Optional chain-specific transaction serializer for SignSmartChainTransaction actions.
|
|
11
|
-
* Accepts the chain identifier and raw transaction, returns the serialized string.
|
|
12
|
-
* Falls back to JSON.stringify if not provided.
|
|
13
|
-
*
|
|
14
|
-
* @category API
|
|
15
|
-
*/
|
|
16
|
-
async function serializeAction(action, txSerializer) {
|
|
17
|
-
switch (action.type) {
|
|
18
|
-
case "SendToAddress": {
|
|
19
|
-
const { waitForTransactions, ...rest } = action;
|
|
20
|
-
return {
|
|
21
|
-
...rest,
|
|
22
|
-
txs: rest.txs.map(tx => ({
|
|
23
|
-
type: tx.type,
|
|
24
|
-
address: tx.address,
|
|
25
|
-
hyperlink: tx.hyperlink,
|
|
26
|
-
amount: (0, ApiTypes_1.toApiAmount)(tx.amount)
|
|
27
|
-
}))
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
case "SignPSBT": {
|
|
31
|
-
const { submitPsbt, txs, ...rest } = action;
|
|
32
|
-
return {
|
|
33
|
-
...rest,
|
|
34
|
-
txs: txs.map(tx => {
|
|
35
|
-
const { psbt, ...txRest } = tx;
|
|
36
|
-
return txRest;
|
|
37
|
-
})
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
case "SignSmartChainTransaction": {
|
|
41
|
-
const { submitTransactions, ...rest } = action;
|
|
42
|
-
return {
|
|
43
|
-
...rest,
|
|
44
|
-
txs: await Promise.all(rest.txs.map(tx => txSerializer != null
|
|
45
|
-
? txSerializer(rest.chain, tx)
|
|
46
|
-
: Promise.resolve(JSON.stringify(tx))))
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
case "Wait": {
|
|
50
|
-
const { wait, ...rest } = action;
|
|
51
|
-
return rest;
|
|
52
|
-
}
|
|
53
|
-
default: {
|
|
54
|
-
const _exhaustive = action;
|
|
55
|
-
throw new Error(`Unknown action type: ${_exhaustive.type}`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.serializeAction = serializeAction;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeAction = void 0;
|
|
4
|
+
const ApiTypes_1 = require("./ApiTypes");
|
|
5
|
+
/**
|
|
6
|
+
* Runtime serializer that strips non-serializable fields from a SwapExecutionAction.
|
|
7
|
+
* Matches the compile-time SerializedAction<T> type.
|
|
8
|
+
*
|
|
9
|
+
* @param action The swap execution action to serialize
|
|
10
|
+
* @param txSerializer Optional chain-specific transaction serializer for SignSmartChainTransaction actions.
|
|
11
|
+
* Accepts the chain identifier and raw transaction, returns the serialized string.
|
|
12
|
+
* Falls back to JSON.stringify if not provided.
|
|
13
|
+
*
|
|
14
|
+
* @category API
|
|
15
|
+
*/
|
|
16
|
+
async function serializeAction(action, txSerializer) {
|
|
17
|
+
switch (action.type) {
|
|
18
|
+
case "SendToAddress": {
|
|
19
|
+
const { waitForTransactions, ...rest } = action;
|
|
20
|
+
return {
|
|
21
|
+
...rest,
|
|
22
|
+
txs: rest.txs.map(tx => ({
|
|
23
|
+
type: tx.type,
|
|
24
|
+
address: tx.address,
|
|
25
|
+
hyperlink: tx.hyperlink,
|
|
26
|
+
amount: (0, ApiTypes_1.toApiAmount)(tx.amount)
|
|
27
|
+
}))
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
case "SignPSBT": {
|
|
31
|
+
const { submitPsbt, txs, ...rest } = action;
|
|
32
|
+
return {
|
|
33
|
+
...rest,
|
|
34
|
+
txs: txs.map(tx => {
|
|
35
|
+
const { psbt, ...txRest } = tx;
|
|
36
|
+
return txRest;
|
|
37
|
+
})
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
case "SignSmartChainTransaction": {
|
|
41
|
+
const { submitTransactions, ...rest } = action;
|
|
42
|
+
return {
|
|
43
|
+
...rest,
|
|
44
|
+
txs: await Promise.all(rest.txs.map(tx => txSerializer != null
|
|
45
|
+
? txSerializer(rest.chain, tx)
|
|
46
|
+
: Promise.resolve(JSON.stringify(tx))))
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
case "Wait": {
|
|
50
|
+
const { wait, ...rest } = action;
|
|
51
|
+
return rest;
|
|
52
|
+
}
|
|
53
|
+
default: {
|
|
54
|
+
const _exhaustive = action;
|
|
55
|
+
throw new Error(`Unknown action type: ${_exhaustive.type}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.serializeAction = serializeAction;
|
package/dist/api/SwapperApi.d.ts
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { MultiChain, Swapper } from "../swapper/Swapper";
|
|
2
|
-
import { ApiEndpoint } from "./ApiTypes";
|
|
3
|
-
import { CreateSwapInput, CreateSwapOutput, GetSpendableBalanceInput, GetSpendableBalanceOutput, GetSupportedTokensInput, GetSupportedTokensOutput, GetSwapCounterTokensInput, GetSwapCounterTokensOutput, GetSwapLimitsInput, GetSwapLimitsOutput, GetSwapStatusInput, GetSwapStatusOutput, ListPendingSwapsInput, ListPendingSwapsOutput, ListSwapsInput, ListSwapsOutput, ParseAddressInput, ParseAddressOutput, SettleWithLnurlInput, SettleWithLnurlOutput, SubmitTransactionInput, SubmitTransactionOutput } from "./ApiEndpoints";
|
|
4
|
-
export type SwapperApiConfig = {
|
|
5
|
-
syncOnGetStatus?: boolean;
|
|
6
|
-
idempotentTxSubmission?: boolean;
|
|
7
|
-
};
|
|
8
|
-
export declare class SwapperApi<T extends MultiChain> {
|
|
9
|
-
private swapper;
|
|
10
|
-
private readonly config?;
|
|
11
|
-
readonly endpoints: {
|
|
12
|
-
createSwap: ApiEndpoint<CreateSwapInput, CreateSwapOutput, "POST">;
|
|
13
|
-
listSwaps: ApiEndpoint<ListSwapsInput, ListSwapsOutput, "GET">;
|
|
14
|
-
listPendingSwaps: ApiEndpoint<ListPendingSwapsInput, ListPendingSwapsOutput, "GET">;
|
|
15
|
-
getSupportedTokens: ApiEndpoint<GetSupportedTokensInput, GetSupportedTokensOutput, "GET">;
|
|
16
|
-
getSwapCounterTokens: ApiEndpoint<GetSwapCounterTokensInput, GetSwapCounterTokensOutput, "GET">;
|
|
17
|
-
getSwapLimits: ApiEndpoint<GetSwapLimitsInput, GetSwapLimitsOutput, "GET">;
|
|
18
|
-
parseAddress: ApiEndpoint<ParseAddressInput, ParseAddressOutput, "GET">;
|
|
19
|
-
getSpendableBalance: ApiEndpoint<GetSpendableBalanceInput, GetSpendableBalanceOutput, "GET">;
|
|
20
|
-
getSwapStatus: ApiEndpoint<GetSwapStatusInput, GetSwapStatusOutput, "GET">;
|
|
21
|
-
submitTransaction: ApiEndpoint<SubmitTransactionInput, SubmitTransactionOutput, "POST">;
|
|
22
|
-
settleWithLnurl: ApiEndpoint<SettleWithLnurlInput, SettleWithLnurlOutput, "POST">;
|
|
23
|
-
};
|
|
24
|
-
constructor(swapper: Swapper<T>, config?: SwapperApiConfig | undefined);
|
|
25
|
-
private txSerializer;
|
|
26
|
-
init(): Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Should be ran periodically, this synchronizes the swap's state with the on-chain data and also purges
|
|
29
|
-
* expired swaps from the persistent storage
|
|
30
|
-
*/
|
|
31
|
-
sync(): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Optionally good to run this periodically, such that any LPs that are dropped off because they are unresponsive
|
|
34
|
-
* can be found again.
|
|
35
|
-
*/
|
|
36
|
-
reloadLps(): Promise<void>;
|
|
37
|
-
private createSwap;
|
|
38
|
-
private validateSwapListInput;
|
|
39
|
-
private createListedSwapOutputs;
|
|
40
|
-
private listSwaps;
|
|
41
|
-
private listPendingSwaps;
|
|
42
|
-
private getSupportedTokens;
|
|
43
|
-
private getSwapCounterTokens;
|
|
44
|
-
private getSwapLimits;
|
|
45
|
-
private parseAddress;
|
|
46
|
-
private getSpendableBalance;
|
|
47
|
-
private getSwapStatus;
|
|
48
|
-
private submitTransaction;
|
|
49
|
-
private settleWithLnurl;
|
|
50
|
-
}
|
|
1
|
+
import { MultiChain, Swapper } from "../swapper/Swapper";
|
|
2
|
+
import { ApiEndpoint } from "./ApiTypes";
|
|
3
|
+
import { CreateSwapInput, CreateSwapOutput, GetSpendableBalanceInput, GetSpendableBalanceOutput, GetSupportedTokensInput, GetSupportedTokensOutput, GetSwapCounterTokensInput, GetSwapCounterTokensOutput, GetSwapLimitsInput, GetSwapLimitsOutput, GetSwapStatusInput, GetSwapStatusOutput, ListPendingSwapsInput, ListPendingSwapsOutput, ListSwapsInput, ListSwapsOutput, ParseAddressInput, ParseAddressOutput, SettleWithLnurlInput, SettleWithLnurlOutput, SubmitTransactionInput, SubmitTransactionOutput } from "./ApiEndpoints";
|
|
4
|
+
export type SwapperApiConfig = {
|
|
5
|
+
syncOnGetStatus?: boolean;
|
|
6
|
+
idempotentTxSubmission?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare class SwapperApi<T extends MultiChain> {
|
|
9
|
+
private swapper;
|
|
10
|
+
private readonly config?;
|
|
11
|
+
readonly endpoints: {
|
|
12
|
+
createSwap: ApiEndpoint<CreateSwapInput, CreateSwapOutput, "POST">;
|
|
13
|
+
listSwaps: ApiEndpoint<ListSwapsInput, ListSwapsOutput, "GET">;
|
|
14
|
+
listPendingSwaps: ApiEndpoint<ListPendingSwapsInput, ListPendingSwapsOutput, "GET">;
|
|
15
|
+
getSupportedTokens: ApiEndpoint<GetSupportedTokensInput, GetSupportedTokensOutput, "GET">;
|
|
16
|
+
getSwapCounterTokens: ApiEndpoint<GetSwapCounterTokensInput, GetSwapCounterTokensOutput, "GET">;
|
|
17
|
+
getSwapLimits: ApiEndpoint<GetSwapLimitsInput, GetSwapLimitsOutput, "GET">;
|
|
18
|
+
parseAddress: ApiEndpoint<ParseAddressInput, ParseAddressOutput, "GET">;
|
|
19
|
+
getSpendableBalance: ApiEndpoint<GetSpendableBalanceInput, GetSpendableBalanceOutput, "GET">;
|
|
20
|
+
getSwapStatus: ApiEndpoint<GetSwapStatusInput, GetSwapStatusOutput, "GET">;
|
|
21
|
+
submitTransaction: ApiEndpoint<SubmitTransactionInput, SubmitTransactionOutput, "POST">;
|
|
22
|
+
settleWithLnurl: ApiEndpoint<SettleWithLnurlInput, SettleWithLnurlOutput, "POST">;
|
|
23
|
+
};
|
|
24
|
+
constructor(swapper: Swapper<T>, config?: SwapperApiConfig | undefined);
|
|
25
|
+
private txSerializer;
|
|
26
|
+
init(): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Should be ran periodically, this synchronizes the swap's state with the on-chain data and also purges
|
|
29
|
+
* expired swaps from the persistent storage
|
|
30
|
+
*/
|
|
31
|
+
sync(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Optionally good to run this periodically, such that any LPs that are dropped off because they are unresponsive
|
|
34
|
+
* can be found again.
|
|
35
|
+
*/
|
|
36
|
+
reloadLps(): Promise<void>;
|
|
37
|
+
private createSwap;
|
|
38
|
+
private validateSwapListInput;
|
|
39
|
+
private createListedSwapOutputs;
|
|
40
|
+
private listSwaps;
|
|
41
|
+
private listPendingSwaps;
|
|
42
|
+
private getSupportedTokens;
|
|
43
|
+
private getSwapCounterTokens;
|
|
44
|
+
private getSwapLimits;
|
|
45
|
+
private parseAddress;
|
|
46
|
+
private getSpendableBalance;
|
|
47
|
+
private getSwapStatus;
|
|
48
|
+
private submitTransaction;
|
|
49
|
+
private settleWithLnurl;
|
|
50
|
+
}
|