@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
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Execution step describing destination-side setup required before the swap can continue.
|
|
3
|
-
*
|
|
4
|
-
* @category Swap Steps
|
|
5
|
-
*/
|
|
6
|
-
export type SwapExecutionStepSetup<Chain extends string = string> = {
|
|
7
|
-
type: "Setup",
|
|
8
|
-
side: "destination",
|
|
9
|
-
chain: Chain,
|
|
10
|
-
title: string,
|
|
11
|
-
description: string,
|
|
12
|
-
/**
|
|
13
|
-
* Current status of the setup step.
|
|
14
|
-
*
|
|
15
|
-
* - `awaiting`: The setup transaction or action still needs to be performed.
|
|
16
|
-
* - `completed`: The setup was already completed successfully.
|
|
17
|
-
* - `soft_expired`: The setup should be treated as expired by the user, but it may still progress because of in-flight or background processing.
|
|
18
|
-
* - `expired`: The setup can no longer be performed because the swap expired.
|
|
19
|
-
*/
|
|
20
|
-
status: "awaiting" | "completed" | "soft_expired" | "expired",
|
|
21
|
-
setupTxId?: string
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Type guard for {@link SwapExecutionStepSetup}
|
|
26
|
-
*
|
|
27
|
-
* @category Swap Steps
|
|
28
|
-
*/
|
|
29
|
-
export function isSwapExecutionStepSetup<Chain extends string = string>(obj: any, chain?: Chain): obj is SwapExecutionStepSetup<Chain> {
|
|
30
|
-
return typeof(obj) === "object" &&
|
|
31
|
-
obj.type === "Setup" &&
|
|
32
|
-
obj.side === "destination" &&
|
|
33
|
-
typeof(obj.chain) === "string" &&
|
|
34
|
-
(chain==null || obj.chain===chain) &&
|
|
35
|
-
typeof(obj.title) === "string" &&
|
|
36
|
-
typeof(obj.description) === "string" &&
|
|
37
|
-
(
|
|
38
|
-
obj.status === "awaiting" ||
|
|
39
|
-
obj.status === "completed" ||
|
|
40
|
-
obj.status === "soft_expired" ||
|
|
41
|
-
obj.status === "expired"
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Execution step describing the user payment that initiates or funds the swap.
|
|
47
|
-
*
|
|
48
|
-
* @category Swap Steps
|
|
49
|
-
*/
|
|
50
|
-
export type SwapExecutionStepPayment<Chain extends string = string> = {
|
|
51
|
-
type: "Payment",
|
|
52
|
-
side: "source",
|
|
53
|
-
chain: Chain,
|
|
54
|
-
title: string,
|
|
55
|
-
description: string,
|
|
56
|
-
/**
|
|
57
|
-
* Current status of the payment step.
|
|
58
|
-
*
|
|
59
|
-
* - `inactive`: The payment step is not yet active because a previous step must complete first.
|
|
60
|
-
* - `awaiting`: The payment is expected, but no payment transaction is known yet.
|
|
61
|
-
* - `received`: A payment transaction is known, but it is not yet fully confirmed.
|
|
62
|
-
* - `confirmed`: The payment was confirmed and fully satisfies the swap requirements.
|
|
63
|
-
* - `soft_expired`: The payment should be treated as expired by the user, but it may still progress because of in-flight or background processing.
|
|
64
|
-
* - `expired`: The payment step can no longer be completed because the swap expired.
|
|
65
|
-
*/
|
|
66
|
-
status: "inactive" | "awaiting" | "received" | "confirmed" | "soft_expired" | "expired",
|
|
67
|
-
/**
|
|
68
|
-
* Optional confirmation progress for Bitcoin on-chain payments.
|
|
69
|
-
*/
|
|
70
|
-
confirmations?: {
|
|
71
|
-
/**
|
|
72
|
-
* Number of confirmations currently observed for the payment.
|
|
73
|
-
*/
|
|
74
|
-
current: number,
|
|
75
|
-
/**
|
|
76
|
-
* Number of confirmations required before the payment is considered final.
|
|
77
|
-
*/
|
|
78
|
-
target: number,
|
|
79
|
-
/**
|
|
80
|
-
* Estimated remaining time in seconds until the target confirmation count is reached.
|
|
81
|
-
*
|
|
82
|
-
* Can be `-1` if the estimate is not available.
|
|
83
|
-
*/
|
|
84
|
-
etaSeconds: number
|
|
85
|
-
},
|
|
86
|
-
initTxId?: string,
|
|
87
|
-
settleTxId?: string
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Type guard for {@link SwapExecutionStepPayment}
|
|
92
|
-
*
|
|
93
|
-
* @category Swap Steps
|
|
94
|
-
*/
|
|
95
|
-
export function isSwapExecutionStepPayment<Chain extends string = string>(obj: any, chain?: Chain): obj is SwapExecutionStepPayment<Chain> {
|
|
96
|
-
return typeof(obj) === "object" &&
|
|
97
|
-
obj.type === "Payment" &&
|
|
98
|
-
obj.side === "source" &&
|
|
99
|
-
typeof(obj.chain) === "string" &&
|
|
100
|
-
(chain==null || obj.chain===chain) &&
|
|
101
|
-
typeof(obj.title) === "string" &&
|
|
102
|
-
typeof(obj.description) === "string" &&
|
|
103
|
-
(
|
|
104
|
-
obj.status === "inactive" ||
|
|
105
|
-
obj.status === "awaiting" ||
|
|
106
|
-
obj.status === "received" ||
|
|
107
|
-
obj.status === "confirmed" ||
|
|
108
|
-
obj.status === "soft_expired" ||
|
|
109
|
-
obj.status === "expired"
|
|
110
|
-
) &&
|
|
111
|
-
(
|
|
112
|
-
obj.confirmations == null ||
|
|
113
|
-
(
|
|
114
|
-
typeof(obj.confirmations) === "object" &&
|
|
115
|
-
typeof(obj.confirmations.current) === "number" &&
|
|
116
|
-
typeof(obj.confirmations.target) === "number" &&
|
|
117
|
-
typeof(obj.confirmations.etaSeconds) === "number"
|
|
118
|
-
)
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Execution step describing payout or settlement on the destination side of the swap.
|
|
124
|
-
*
|
|
125
|
-
* @category Swap Steps
|
|
126
|
-
*/
|
|
127
|
-
export type SwapExecutionStepSettlement<
|
|
128
|
-
Chain extends string = string,
|
|
129
|
-
AdditionalStatuses extends "awaiting_automatic" | "awaiting_manual" | "soft_settled" = "awaiting_automatic" | "awaiting_manual" | "soft_settled"
|
|
130
|
-
> = {
|
|
131
|
-
type: "Settlement",
|
|
132
|
-
side: "destination",
|
|
133
|
-
chain: Chain,
|
|
134
|
-
title: string,
|
|
135
|
-
description: string,
|
|
136
|
-
/**
|
|
137
|
-
* Current status of the settlement step.
|
|
138
|
-
*
|
|
139
|
-
* - `inactive`: The settlement step is not yet active because a previous step must complete first.
|
|
140
|
-
* - `waiting_lp`: The swap is waiting for the intermediary (LP) to create or process the destination-side payout.
|
|
141
|
-
* - `awaiting_automatic`: The swap is waiting for automatic settlement by watchtowers.
|
|
142
|
-
* - `awaiting_manual`: The swap is ready for manual destination-side settlement by the user.
|
|
143
|
-
* - `soft_settled`: The user already received the payout, but the swap is not yet fully finalized on the source side.
|
|
144
|
-
* - `soft_expired`: The settlement should be treated as expired by the user, but it may still progress because of in-flight or background processing.
|
|
145
|
-
* - `settled`: The settlement completed successfully.
|
|
146
|
-
* - `expired`: Settlement is no longer possible because the swap expired or failed.
|
|
147
|
-
*/
|
|
148
|
-
status: "inactive" | "waiting_lp" | "soft_expired" | "settled" | "expired" | AdditionalStatuses,
|
|
149
|
-
initTxId?: string,
|
|
150
|
-
settleTxId?: string
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Type guard for {@link SwapExecutionStepSettlement}
|
|
155
|
-
*
|
|
156
|
-
* @category Swap Steps
|
|
157
|
-
*/
|
|
158
|
-
export function isSwapExecutionStepSettlement<Chain extends string = string>(obj: any, chain?: Chain): obj is SwapExecutionStepSettlement<Chain> {
|
|
159
|
-
return typeof(obj) === "object" &&
|
|
160
|
-
obj.type === "Settlement" &&
|
|
161
|
-
obj.side === "destination" &&
|
|
162
|
-
typeof(obj.chain) === "string" &&
|
|
163
|
-
(chain==null || obj.chain===chain) &&
|
|
164
|
-
typeof(obj.title) === "string" &&
|
|
165
|
-
typeof(obj.description) === "string" &&
|
|
166
|
-
(
|
|
167
|
-
obj.status === "inactive" ||
|
|
168
|
-
obj.status === "waiting_lp" ||
|
|
169
|
-
obj.status === "awaiting_automatic" ||
|
|
170
|
-
obj.status === "awaiting_manual" ||
|
|
171
|
-
obj.status === "soft_settled" ||
|
|
172
|
-
obj.status === "soft_expired" ||
|
|
173
|
-
obj.status === "settled" ||
|
|
174
|
-
obj.status === "expired"
|
|
175
|
-
);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Execution step describing a source-side refund path after a failed swap.
|
|
180
|
-
*
|
|
181
|
-
* @category Swap Steps
|
|
182
|
-
*/
|
|
183
|
-
export type SwapExecutionStepRefund<Chain extends string = string> = {
|
|
184
|
-
type: "Refund",
|
|
185
|
-
side: "source",
|
|
186
|
-
chain: Chain,
|
|
187
|
-
title: string,
|
|
188
|
-
description: string,
|
|
189
|
-
/**
|
|
190
|
-
* Current status of the refund step.
|
|
191
|
-
*
|
|
192
|
-
* - `inactive`: The refund path is not currently available.
|
|
193
|
-
* - `awaiting`: The swap can be refunded and the user may perform the refund action.
|
|
194
|
-
* - `refunded`: The refund was completed successfully.
|
|
195
|
-
*/
|
|
196
|
-
status: "inactive" | "awaiting" | "refunded",
|
|
197
|
-
refundTxId?: string
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Type guard for {@link SwapExecutionStepRefund}
|
|
202
|
-
*
|
|
203
|
-
* @category Swap Steps
|
|
204
|
-
*/
|
|
205
|
-
export function isSwapExecutionStepRefund<Chain extends string = string>(obj: any, chain?: Chain): obj is SwapExecutionStepRefund<Chain> {
|
|
206
|
-
return typeof(obj) === "object" &&
|
|
207
|
-
obj.type === "Refund" &&
|
|
208
|
-
obj.side === "source" &&
|
|
209
|
-
typeof(obj.chain) === "string" &&
|
|
210
|
-
(chain==null || obj.chain===chain) &&
|
|
211
|
-
typeof(obj.title) === "string" &&
|
|
212
|
-
typeof(obj.description) === "string" &&
|
|
213
|
-
(obj.status === "inactive" || obj.status === "awaiting" || obj.status === "refunded");
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Union of all supported swap execution step variants.
|
|
218
|
-
*
|
|
219
|
-
* @category Swap Steps
|
|
220
|
-
*/
|
|
221
|
-
export type SwapExecutionStep = SwapExecutionStepSetup |
|
|
222
|
-
SwapExecutionStepPayment |
|
|
223
|
-
SwapExecutionStepSettlement |
|
|
224
|
-
SwapExecutionStepRefund;
|
|
1
|
+
/**
|
|
2
|
+
* Execution step describing destination-side setup required before the swap can continue.
|
|
3
|
+
*
|
|
4
|
+
* @category Swap Steps
|
|
5
|
+
*/
|
|
6
|
+
export type SwapExecutionStepSetup<Chain extends string = string> = {
|
|
7
|
+
type: "Setup",
|
|
8
|
+
side: "destination",
|
|
9
|
+
chain: Chain,
|
|
10
|
+
title: string,
|
|
11
|
+
description: string,
|
|
12
|
+
/**
|
|
13
|
+
* Current status of the setup step.
|
|
14
|
+
*
|
|
15
|
+
* - `awaiting`: The setup transaction or action still needs to be performed.
|
|
16
|
+
* - `completed`: The setup was already completed successfully.
|
|
17
|
+
* - `soft_expired`: The setup should be treated as expired by the user, but it may still progress because of in-flight or background processing.
|
|
18
|
+
* - `expired`: The setup can no longer be performed because the swap expired.
|
|
19
|
+
*/
|
|
20
|
+
status: "awaiting" | "completed" | "soft_expired" | "expired",
|
|
21
|
+
setupTxId?: string
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Type guard for {@link SwapExecutionStepSetup}
|
|
26
|
+
*
|
|
27
|
+
* @category Swap Steps
|
|
28
|
+
*/
|
|
29
|
+
export function isSwapExecutionStepSetup<Chain extends string = string>(obj: any, chain?: Chain): obj is SwapExecutionStepSetup<Chain> {
|
|
30
|
+
return typeof(obj) === "object" &&
|
|
31
|
+
obj.type === "Setup" &&
|
|
32
|
+
obj.side === "destination" &&
|
|
33
|
+
typeof(obj.chain) === "string" &&
|
|
34
|
+
(chain==null || obj.chain===chain) &&
|
|
35
|
+
typeof(obj.title) === "string" &&
|
|
36
|
+
typeof(obj.description) === "string" &&
|
|
37
|
+
(
|
|
38
|
+
obj.status === "awaiting" ||
|
|
39
|
+
obj.status === "completed" ||
|
|
40
|
+
obj.status === "soft_expired" ||
|
|
41
|
+
obj.status === "expired"
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Execution step describing the user payment that initiates or funds the swap.
|
|
47
|
+
*
|
|
48
|
+
* @category Swap Steps
|
|
49
|
+
*/
|
|
50
|
+
export type SwapExecutionStepPayment<Chain extends string = string> = {
|
|
51
|
+
type: "Payment",
|
|
52
|
+
side: "source",
|
|
53
|
+
chain: Chain,
|
|
54
|
+
title: string,
|
|
55
|
+
description: string,
|
|
56
|
+
/**
|
|
57
|
+
* Current status of the payment step.
|
|
58
|
+
*
|
|
59
|
+
* - `inactive`: The payment step is not yet active because a previous step must complete first.
|
|
60
|
+
* - `awaiting`: The payment is expected, but no payment transaction is known yet.
|
|
61
|
+
* - `received`: A payment transaction is known, but it is not yet fully confirmed.
|
|
62
|
+
* - `confirmed`: The payment was confirmed and fully satisfies the swap requirements.
|
|
63
|
+
* - `soft_expired`: The payment should be treated as expired by the user, but it may still progress because of in-flight or background processing.
|
|
64
|
+
* - `expired`: The payment step can no longer be completed because the swap expired.
|
|
65
|
+
*/
|
|
66
|
+
status: "inactive" | "awaiting" | "received" | "confirmed" | "soft_expired" | "expired",
|
|
67
|
+
/**
|
|
68
|
+
* Optional confirmation progress for Bitcoin on-chain payments.
|
|
69
|
+
*/
|
|
70
|
+
confirmations?: {
|
|
71
|
+
/**
|
|
72
|
+
* Number of confirmations currently observed for the payment.
|
|
73
|
+
*/
|
|
74
|
+
current: number,
|
|
75
|
+
/**
|
|
76
|
+
* Number of confirmations required before the payment is considered final.
|
|
77
|
+
*/
|
|
78
|
+
target: number,
|
|
79
|
+
/**
|
|
80
|
+
* Estimated remaining time in seconds until the target confirmation count is reached.
|
|
81
|
+
*
|
|
82
|
+
* Can be `-1` if the estimate is not available.
|
|
83
|
+
*/
|
|
84
|
+
etaSeconds: number
|
|
85
|
+
},
|
|
86
|
+
initTxId?: string,
|
|
87
|
+
settleTxId?: string
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Type guard for {@link SwapExecutionStepPayment}
|
|
92
|
+
*
|
|
93
|
+
* @category Swap Steps
|
|
94
|
+
*/
|
|
95
|
+
export function isSwapExecutionStepPayment<Chain extends string = string>(obj: any, chain?: Chain): obj is SwapExecutionStepPayment<Chain> {
|
|
96
|
+
return typeof(obj) === "object" &&
|
|
97
|
+
obj.type === "Payment" &&
|
|
98
|
+
obj.side === "source" &&
|
|
99
|
+
typeof(obj.chain) === "string" &&
|
|
100
|
+
(chain==null || obj.chain===chain) &&
|
|
101
|
+
typeof(obj.title) === "string" &&
|
|
102
|
+
typeof(obj.description) === "string" &&
|
|
103
|
+
(
|
|
104
|
+
obj.status === "inactive" ||
|
|
105
|
+
obj.status === "awaiting" ||
|
|
106
|
+
obj.status === "received" ||
|
|
107
|
+
obj.status === "confirmed" ||
|
|
108
|
+
obj.status === "soft_expired" ||
|
|
109
|
+
obj.status === "expired"
|
|
110
|
+
) &&
|
|
111
|
+
(
|
|
112
|
+
obj.confirmations == null ||
|
|
113
|
+
(
|
|
114
|
+
typeof(obj.confirmations) === "object" &&
|
|
115
|
+
typeof(obj.confirmations.current) === "number" &&
|
|
116
|
+
typeof(obj.confirmations.target) === "number" &&
|
|
117
|
+
typeof(obj.confirmations.etaSeconds) === "number"
|
|
118
|
+
)
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Execution step describing payout or settlement on the destination side of the swap.
|
|
124
|
+
*
|
|
125
|
+
* @category Swap Steps
|
|
126
|
+
*/
|
|
127
|
+
export type SwapExecutionStepSettlement<
|
|
128
|
+
Chain extends string = string,
|
|
129
|
+
AdditionalStatuses extends "awaiting_automatic" | "awaiting_manual" | "soft_settled" = "awaiting_automatic" | "awaiting_manual" | "soft_settled"
|
|
130
|
+
> = {
|
|
131
|
+
type: "Settlement",
|
|
132
|
+
side: "destination",
|
|
133
|
+
chain: Chain,
|
|
134
|
+
title: string,
|
|
135
|
+
description: string,
|
|
136
|
+
/**
|
|
137
|
+
* Current status of the settlement step.
|
|
138
|
+
*
|
|
139
|
+
* - `inactive`: The settlement step is not yet active because a previous step must complete first.
|
|
140
|
+
* - `waiting_lp`: The swap is waiting for the intermediary (LP) to create or process the destination-side payout.
|
|
141
|
+
* - `awaiting_automatic`: The swap is waiting for automatic settlement by watchtowers.
|
|
142
|
+
* - `awaiting_manual`: The swap is ready for manual destination-side settlement by the user.
|
|
143
|
+
* - `soft_settled`: The user already received the payout, but the swap is not yet fully finalized on the source side.
|
|
144
|
+
* - `soft_expired`: The settlement should be treated as expired by the user, but it may still progress because of in-flight or background processing.
|
|
145
|
+
* - `settled`: The settlement completed successfully.
|
|
146
|
+
* - `expired`: Settlement is no longer possible because the swap expired or failed.
|
|
147
|
+
*/
|
|
148
|
+
status: "inactive" | "waiting_lp" | "soft_expired" | "settled" | "expired" | AdditionalStatuses,
|
|
149
|
+
initTxId?: string,
|
|
150
|
+
settleTxId?: string
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Type guard for {@link SwapExecutionStepSettlement}
|
|
155
|
+
*
|
|
156
|
+
* @category Swap Steps
|
|
157
|
+
*/
|
|
158
|
+
export function isSwapExecutionStepSettlement<Chain extends string = string>(obj: any, chain?: Chain): obj is SwapExecutionStepSettlement<Chain> {
|
|
159
|
+
return typeof(obj) === "object" &&
|
|
160
|
+
obj.type === "Settlement" &&
|
|
161
|
+
obj.side === "destination" &&
|
|
162
|
+
typeof(obj.chain) === "string" &&
|
|
163
|
+
(chain==null || obj.chain===chain) &&
|
|
164
|
+
typeof(obj.title) === "string" &&
|
|
165
|
+
typeof(obj.description) === "string" &&
|
|
166
|
+
(
|
|
167
|
+
obj.status === "inactive" ||
|
|
168
|
+
obj.status === "waiting_lp" ||
|
|
169
|
+
obj.status === "awaiting_automatic" ||
|
|
170
|
+
obj.status === "awaiting_manual" ||
|
|
171
|
+
obj.status === "soft_settled" ||
|
|
172
|
+
obj.status === "soft_expired" ||
|
|
173
|
+
obj.status === "settled" ||
|
|
174
|
+
obj.status === "expired"
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Execution step describing a source-side refund path after a failed swap.
|
|
180
|
+
*
|
|
181
|
+
* @category Swap Steps
|
|
182
|
+
*/
|
|
183
|
+
export type SwapExecutionStepRefund<Chain extends string = string> = {
|
|
184
|
+
type: "Refund",
|
|
185
|
+
side: "source",
|
|
186
|
+
chain: Chain,
|
|
187
|
+
title: string,
|
|
188
|
+
description: string,
|
|
189
|
+
/**
|
|
190
|
+
* Current status of the refund step.
|
|
191
|
+
*
|
|
192
|
+
* - `inactive`: The refund path is not currently available.
|
|
193
|
+
* - `awaiting`: The swap can be refunded and the user may perform the refund action.
|
|
194
|
+
* - `refunded`: The refund was completed successfully.
|
|
195
|
+
*/
|
|
196
|
+
status: "inactive" | "awaiting" | "refunded",
|
|
197
|
+
refundTxId?: string
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Type guard for {@link SwapExecutionStepRefund}
|
|
202
|
+
*
|
|
203
|
+
* @category Swap Steps
|
|
204
|
+
*/
|
|
205
|
+
export function isSwapExecutionStepRefund<Chain extends string = string>(obj: any, chain?: Chain): obj is SwapExecutionStepRefund<Chain> {
|
|
206
|
+
return typeof(obj) === "object" &&
|
|
207
|
+
obj.type === "Refund" &&
|
|
208
|
+
obj.side === "source" &&
|
|
209
|
+
typeof(obj.chain) === "string" &&
|
|
210
|
+
(chain==null || obj.chain===chain) &&
|
|
211
|
+
typeof(obj.title) === "string" &&
|
|
212
|
+
typeof(obj.description) === "string" &&
|
|
213
|
+
(obj.status === "inactive" || obj.status === "awaiting" || obj.status === "refunded");
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Union of all supported swap execution step variants.
|
|
218
|
+
*
|
|
219
|
+
* @category Swap Steps
|
|
220
|
+
*/
|
|
221
|
+
export type SwapExecutionStep = SwapExecutionStepSetup |
|
|
222
|
+
SwapExecutionStepPayment |
|
|
223
|
+
SwapExecutionStepSettlement |
|
|
224
|
+
SwapExecutionStepRefund;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export type SwapStateInfo<S extends number> = {
|
|
3
|
-
state: S,
|
|
4
|
-
name: string,
|
|
5
|
-
description: string
|
|
6
|
-
};
|
|
1
|
+
|
|
2
|
+
export type SwapStateInfo<S extends number> = {
|
|
3
|
+
state: S,
|
|
4
|
+
name: string,
|
|
5
|
+
description: string
|
|
6
|
+
};
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import {ISwap} from "../swaps/ISwap";
|
|
2
|
-
import {ChainType} from "@atomiqlabs/base";
|
|
3
|
-
import {IToBTCSwap} from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
|
|
4
|
-
import {IFromBTCSelfInitSwap} from "../swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap";
|
|
5
|
-
import {FromBTCLNSwap} from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
|
|
6
|
-
import {FromBTCLNAutoSwap} from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
|
|
7
|
-
import {SpvFromBTCSwap} from "../swaps/spv_swaps/SpvFromBTCSwap";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Proxy type that auto-injects a smart chain signer into swap methods
|
|
11
|
-
*
|
|
12
|
-
* @category Swaps/Base
|
|
13
|
-
*/
|
|
14
|
-
export type SwapWithSigner<T extends ISwap> = {
|
|
15
|
-
[K in keyof T]:
|
|
16
|
-
K extends "commit" ? (abortSignal?: AbortSignal, skipChecks?: boolean) => Promise<string> :
|
|
17
|
-
K extends "refund" ? (abortSignal?: AbortSignal) => Promise<string> :
|
|
18
|
-
K extends "claim" ? (abortSignal?: AbortSignal) => Promise<string> :
|
|
19
|
-
K extends "commitAndClaim" ? (abortSignal?: AbortSignal, skipChecks?: boolean) => Promise<string> :
|
|
20
|
-
T[K];
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Wraps a swap with automatic signer injection for methods like commit, refund, and claim
|
|
25
|
-
*
|
|
26
|
-
* @category Swaps
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
|
-
export function wrapSwapWithSigner<C extends ChainType, T extends ISwap<C>>(swap: T, signer: C["Signer"]): SwapWithSigner<T> {
|
|
30
|
-
return new Proxy(swap, {
|
|
31
|
-
get: (target, prop, receiver) => {
|
|
32
|
-
if (prop === "commit") {
|
|
33
|
-
if(swap instanceof IToBTCSwap || swap instanceof IFromBTCSelfInitSwap) {
|
|
34
|
-
return (abortSignal?: AbortSignal, skipChecks?: boolean) =>
|
|
35
|
-
swap.commit(signer, abortSignal, skipChecks);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
if (prop === "refund") {
|
|
39
|
-
if(swap instanceof IToBTCSwap) {
|
|
40
|
-
return (abortSignal?: AbortSignal) =>
|
|
41
|
-
swap.refund(signer, abortSignal);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (prop === "claim") {
|
|
45
|
-
if(swap instanceof IFromBTCSelfInitSwap || swap instanceof FromBTCLNAutoSwap || swap instanceof SpvFromBTCSwap) {
|
|
46
|
-
return (abortSignal?: AbortSignal) =>
|
|
47
|
-
swap.claim(signer, abortSignal);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (prop === "commitAndClaim") {
|
|
51
|
-
if(swap instanceof FromBTCLNSwap) {
|
|
52
|
-
return (abortSignal?: AbortSignal, skipChecks?: boolean) =>
|
|
53
|
-
swap.commitAndClaim(signer, abortSignal, skipChecks);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Delegate other properties and methods to the original instance
|
|
58
|
-
return Reflect.get(target, prop, receiver);
|
|
59
|
-
}
|
|
60
|
-
}) as SwapWithSigner<T>;
|
|
61
|
-
}
|
|
1
|
+
import {ISwap} from "../swaps/ISwap";
|
|
2
|
+
import {ChainType} from "@atomiqlabs/base";
|
|
3
|
+
import {IToBTCSwap} from "../swaps/escrow_swaps/tobtc/IToBTCSwap";
|
|
4
|
+
import {IFromBTCSelfInitSwap} from "../swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap";
|
|
5
|
+
import {FromBTCLNSwap} from "../swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap";
|
|
6
|
+
import {FromBTCLNAutoSwap} from "../swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap";
|
|
7
|
+
import {SpvFromBTCSwap} from "../swaps/spv_swaps/SpvFromBTCSwap";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Proxy type that auto-injects a smart chain signer into swap methods
|
|
11
|
+
*
|
|
12
|
+
* @category Swaps/Base
|
|
13
|
+
*/
|
|
14
|
+
export type SwapWithSigner<T extends ISwap> = {
|
|
15
|
+
[K in keyof T]:
|
|
16
|
+
K extends "commit" ? (abortSignal?: AbortSignal, skipChecks?: boolean) => Promise<string> :
|
|
17
|
+
K extends "refund" ? (abortSignal?: AbortSignal) => Promise<string> :
|
|
18
|
+
K extends "claim" ? (abortSignal?: AbortSignal) => Promise<string> :
|
|
19
|
+
K extends "commitAndClaim" ? (abortSignal?: AbortSignal, skipChecks?: boolean) => Promise<string> :
|
|
20
|
+
T[K];
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Wraps a swap with automatic signer injection for methods like commit, refund, and claim
|
|
25
|
+
*
|
|
26
|
+
* @category Swaps
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export function wrapSwapWithSigner<C extends ChainType, T extends ISwap<C>>(swap: T, signer: C["Signer"]): SwapWithSigner<T> {
|
|
30
|
+
return new Proxy(swap, {
|
|
31
|
+
get: (target, prop, receiver) => {
|
|
32
|
+
if (prop === "commit") {
|
|
33
|
+
if(swap instanceof IToBTCSwap || swap instanceof IFromBTCSelfInitSwap) {
|
|
34
|
+
return (abortSignal?: AbortSignal, skipChecks?: boolean) =>
|
|
35
|
+
swap.commit(signer, abortSignal, skipChecks);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (prop === "refund") {
|
|
39
|
+
if(swap instanceof IToBTCSwap) {
|
|
40
|
+
return (abortSignal?: AbortSignal) =>
|
|
41
|
+
swap.refund(signer, abortSignal);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (prop === "claim") {
|
|
45
|
+
if(swap instanceof IFromBTCSelfInitSwap || swap instanceof FromBTCLNAutoSwap || swap instanceof SpvFromBTCSwap) {
|
|
46
|
+
return (abortSignal?: AbortSignal) =>
|
|
47
|
+
swap.claim(signer, abortSignal);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (prop === "commitAndClaim") {
|
|
51
|
+
if(swap instanceof FromBTCLNSwap) {
|
|
52
|
+
return (abortSignal?: AbortSignal, skipChecks?: boolean) =>
|
|
53
|
+
swap.commitAndClaim(signer, abortSignal, skipChecks);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Delegate other properties and methods to the original instance
|
|
58
|
+
return Reflect.get(target, prop, receiver);
|
|
59
|
+
}
|
|
60
|
+
}) as SwapWithSigner<T>;
|
|
61
|
+
}
|