@atomiqlabs/sdk 8.9.0 → 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 -765
- package/dist/swapper/Swapper.js +1749 -1749
- 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 -2557
- 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,218 +1,218 @@
|
|
|
1
|
-
import {IEscrowSwap, IEscrowSwapInit, isIEscrowSwapInit} from "./IEscrowSwap";
|
|
2
|
-
import {ChainType, SignatureData, SignatureVerificationError, SwapData} from "@atomiqlabs/base";
|
|
3
|
-
import {IEscrowSwapDefinition, IEscrowSwapWrapper} from "./IEscrowSwapWrapper";
|
|
4
|
-
import {SwapTypeDefinition} from "../ISwapWrapper";
|
|
5
|
-
import {TokenAmount, toTokenAmount} from "../../types/TokenAmount";
|
|
6
|
-
import {SCToken} from "../../types/Token";
|
|
7
|
-
import {timeoutPromise} from "../../utils/TimeoutUtils";
|
|
8
|
-
|
|
9
|
-
export type IEscrowSelfInitSwapInit<T extends SwapData> = IEscrowSwapInit<T> & {
|
|
10
|
-
feeRate: string,
|
|
11
|
-
signatureData?: SignatureData,
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export function isIEscrowSelfInitSwapInit<T extends SwapData>(obj: any): obj is IEscrowSelfInitSwapInit<T> {
|
|
15
|
-
return typeof obj === "object" &&
|
|
16
|
-
typeof(obj.feeRate) === "string" &&
|
|
17
|
-
(obj.signatureData == null || (
|
|
18
|
-
typeof(obj.signatureData) === "object" &&
|
|
19
|
-
typeof(obj.signatureData.prefix)==="string" &&
|
|
20
|
-
typeof(obj.signatureData.timeout)==="string" &&
|
|
21
|
-
typeof(obj.signatureData.signature)==="string"
|
|
22
|
-
)) &&
|
|
23
|
-
isIEscrowSwapInit(obj);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export type IEscrowSelfInitSwapDefinition<T extends ChainType, W extends IEscrowSwapWrapper<T, any>, S extends IEscrowSelfInitSwap<T>> = SwapTypeDefinition<T, W, S>;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives) where the
|
|
30
|
-
* user needs to initiate the escrow on the smart chain side
|
|
31
|
-
*
|
|
32
|
-
* @category Swaps/Abstract
|
|
33
|
-
*/
|
|
34
|
-
export abstract class IEscrowSelfInitSwap<
|
|
35
|
-
T extends ChainType = ChainType,
|
|
36
|
-
D extends IEscrowSelfInitSwapDefinition<T, IEscrowSwapWrapper<T, D>, IEscrowSelfInitSwap<T, D, S>> = IEscrowSwapDefinition<T, IEscrowSwapWrapper<T, any>, IEscrowSelfInitSwap<T, any, any>>,
|
|
37
|
-
S extends number = number
|
|
38
|
-
> extends IEscrowSwap<T, D, S> {
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Fee rate to be used for the escrow initiation transaction
|
|
42
|
-
* @internal
|
|
43
|
-
*/
|
|
44
|
-
protected readonly feeRate: string;
|
|
45
|
-
/**
|
|
46
|
-
* Signature data received from the intermediary (LP) allowing the user
|
|
47
|
-
* to initiate the swap escrow
|
|
48
|
-
* @internal
|
|
49
|
-
*/
|
|
50
|
-
protected signatureData?: SignatureData;
|
|
51
|
-
|
|
52
|
-
protected constructor(wrapper: D["Wrapper"], obj: any);
|
|
53
|
-
protected constructor(wrapper: D["Wrapper"], swapInit: IEscrowSelfInitSwapInit<T["Data"]>);
|
|
54
|
-
protected constructor(
|
|
55
|
-
wrapper: D["Wrapper"],
|
|
56
|
-
swapInitOrObj: IEscrowSelfInitSwapInit<T["Data"]> | any,
|
|
57
|
-
) {
|
|
58
|
-
super(wrapper, swapInitOrObj);
|
|
59
|
-
|
|
60
|
-
if(isIEscrowSelfInitSwapInit(swapInitOrObj)) {
|
|
61
|
-
this.feeRate = swapInitOrObj.feeRate;
|
|
62
|
-
this.signatureData = swapInitOrObj.signatureData;
|
|
63
|
-
} else {
|
|
64
|
-
if(swapInitOrObj.signature!=null) this.signatureData ={
|
|
65
|
-
prefix: swapInitOrObj.prefix,
|
|
66
|
-
timeout: swapInitOrObj.timeout,
|
|
67
|
-
signature: swapInitOrObj.signature
|
|
68
|
-
};
|
|
69
|
-
this.feeRate = swapInitOrObj.feeRate;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
//////////////////////////////
|
|
74
|
-
//// Watchdogs
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Periodically checks for init signature's expiry
|
|
78
|
-
*
|
|
79
|
-
* @param intervalSeconds How often to check (in seconds), default to 5s
|
|
80
|
-
* @param abortSignal
|
|
81
|
-
* @internal
|
|
82
|
-
*/
|
|
83
|
-
protected async watchdogWaitTillSignatureExpiry(intervalSeconds?: number, abortSignal?: AbortSignal): Promise<void> {
|
|
84
|
-
if(this._data==null || this.signatureData==null)
|
|
85
|
-
throw new Error("Tried to await signature expiry but data or signature is null, invalid state?");
|
|
86
|
-
|
|
87
|
-
intervalSeconds ??= 5;
|
|
88
|
-
let expired = false
|
|
89
|
-
while(!expired) {
|
|
90
|
-
await timeoutPromise(intervalSeconds*1000, abortSignal);
|
|
91
|
-
try {
|
|
92
|
-
expired = await this._contract.isInitAuthorizationExpired(this._data, this.signatureData);
|
|
93
|
-
} catch (e) {
|
|
94
|
-
this.logger.error("watchdogWaitTillSignatureExpiry(): Error when checking signature expiry: ", e);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
if(abortSignal!=null) abortSignal.throwIfAborted();
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
//////////////////////////////
|
|
102
|
-
//// Amounts & fees
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Get the estimated smart chain fee of the commit transaction
|
|
106
|
-
* @internal
|
|
107
|
-
*/
|
|
108
|
-
protected getCommitFee(): Promise<bigint> {
|
|
109
|
-
return this._contract.getCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Returns the transaction fee paid on the smart chain side to initiate the escrow
|
|
114
|
-
*/
|
|
115
|
-
async getSmartChainNetworkFee(): Promise<TokenAmount<SCToken<T["ChainId"]>, true>> {
|
|
116
|
-
const swapContract: T["Contract"] = this._contract;
|
|
117
|
-
return toTokenAmount(
|
|
118
|
-
await (
|
|
119
|
-
swapContract.getRawCommitFee!=null ?
|
|
120
|
-
swapContract.getRawCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate) :
|
|
121
|
-
swapContract.getCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate)
|
|
122
|
-
),
|
|
123
|
-
this.wrapper._getNativeToken(),
|
|
124
|
-
this.wrapper._prices
|
|
125
|
-
);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Checks if the initiator/sender has enough balance on the smart chain side
|
|
130
|
-
* to cover the transaction fee for processing the swap
|
|
131
|
-
*/
|
|
132
|
-
abstract hasEnoughForTxFees(): Promise<{
|
|
133
|
-
enoughBalance: boolean,
|
|
134
|
-
balance: TokenAmount<SCToken<T["ChainId"]>, true>,
|
|
135
|
-
required: TokenAmount<SCToken<T["ChainId"]>, true>
|
|
136
|
-
}>;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
//////////////////////////////
|
|
140
|
-
//// Commit and claim
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Returns transactions for initiating (committing) the escrow on the smart chain side. After sending the
|
|
144
|
-
* transactions manually be sure to call the {@link waitTillCommited} function to wait till the initiation
|
|
145
|
-
* transaction is observed, processed by the SDK and state of the swap properly updated.
|
|
146
|
-
*
|
|
147
|
-
* @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
|
|
148
|
-
* (this is handled on swap creation, if you commit right after quoting, you can use `skipChecks=true`)
|
|
149
|
-
*/
|
|
150
|
-
abstract txsCommit(skipChecks?: boolean): Promise<T["TX"][]>;
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Initiates (commits) the escrow on the smart chain side
|
|
154
|
-
*
|
|
155
|
-
* @param _signer Signer to sign the transactions with, must be the same as used in the initialization
|
|
156
|
-
* @param abortSignal Abort signal
|
|
157
|
-
* @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
|
|
158
|
-
* (this is handled on swap creation, if you commit right after quoting, you can use `skipChecks=true`)
|
|
159
|
-
* @param onBeforeTxSent Callback called before the transactions are broadcasted
|
|
160
|
-
*/
|
|
161
|
-
abstract commit(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, skipChecks?: boolean, onBeforeTxSent?: (txId: string) => void): Promise<string>;
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Waits till a swap is initiated (committed) on-chain, should be called after sending the commit
|
|
165
|
-
* transactions ({@link txsCommit}) manually to wait till the SDK processes the escrow
|
|
166
|
-
* initialization and updates the swap state accordingly
|
|
167
|
-
*
|
|
168
|
-
* @param abortSignal AbortSignal
|
|
169
|
-
*/
|
|
170
|
-
abstract waitTillCommited(abortSignal?: AbortSignal): Promise<void>
|
|
171
|
-
|
|
172
|
-
//////////////////////////////
|
|
173
|
-
//// Quote verification
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Checks if the swap's quote is expired for good (i.e. the swap strictly cannot be committed on-chain anymore)
|
|
177
|
-
*/
|
|
178
|
-
async _verifyQuoteDefinitelyExpired(): Promise<boolean> {
|
|
179
|
-
if(this._data==null || this.signatureData==null) throw new Error("data or signature data are null!");
|
|
180
|
-
|
|
181
|
-
return this._contract.isInitAuthorizationExpired(
|
|
182
|
-
this._data!, this.signatureData!
|
|
183
|
-
);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Checks if the swap's quote is still valid
|
|
188
|
-
*/
|
|
189
|
-
async _verifyQuoteValid(): Promise<boolean> {
|
|
190
|
-
if(this._data==null || this.signatureData==null) throw new Error("data or signature data are null!");
|
|
191
|
-
|
|
192
|
-
try {
|
|
193
|
-
await this._contract.isValidInitAuthorization(
|
|
194
|
-
this._getInitiator(), this._data!, this.signatureData!, this.feeRate
|
|
195
|
-
);
|
|
196
|
-
return true;
|
|
197
|
-
} catch (e) {
|
|
198
|
-
if(e instanceof SignatureVerificationError) {
|
|
199
|
-
return false;
|
|
200
|
-
}
|
|
201
|
-
throw e;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* @inheritDoc
|
|
207
|
-
*/
|
|
208
|
-
serialize(): any {
|
|
209
|
-
return {
|
|
210
|
-
...super.serialize(),
|
|
211
|
-
prefix: this.signatureData?.prefix,
|
|
212
|
-
timeout: this.signatureData?.timeout,
|
|
213
|
-
signature: this.signatureData?.signature,
|
|
214
|
-
feeRate: this.feeRate==null ? null : this.feeRate.toString(),
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
|
|
1
|
+
import {IEscrowSwap, IEscrowSwapInit, isIEscrowSwapInit} from "./IEscrowSwap";
|
|
2
|
+
import {ChainType, SignatureData, SignatureVerificationError, SwapData} from "@atomiqlabs/base";
|
|
3
|
+
import {IEscrowSwapDefinition, IEscrowSwapWrapper} from "./IEscrowSwapWrapper";
|
|
4
|
+
import {SwapTypeDefinition} from "../ISwapWrapper";
|
|
5
|
+
import {TokenAmount, toTokenAmount} from "../../types/TokenAmount";
|
|
6
|
+
import {SCToken} from "../../types/Token";
|
|
7
|
+
import {timeoutPromise} from "../../utils/TimeoutUtils";
|
|
8
|
+
|
|
9
|
+
export type IEscrowSelfInitSwapInit<T extends SwapData> = IEscrowSwapInit<T> & {
|
|
10
|
+
feeRate: string,
|
|
11
|
+
signatureData?: SignatureData,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export function isIEscrowSelfInitSwapInit<T extends SwapData>(obj: any): obj is IEscrowSelfInitSwapInit<T> {
|
|
15
|
+
return typeof obj === "object" &&
|
|
16
|
+
typeof(obj.feeRate) === "string" &&
|
|
17
|
+
(obj.signatureData == null || (
|
|
18
|
+
typeof(obj.signatureData) === "object" &&
|
|
19
|
+
typeof(obj.signatureData.prefix)==="string" &&
|
|
20
|
+
typeof(obj.signatureData.timeout)==="string" &&
|
|
21
|
+
typeof(obj.signatureData.signature)==="string"
|
|
22
|
+
)) &&
|
|
23
|
+
isIEscrowSwapInit(obj);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type IEscrowSelfInitSwapDefinition<T extends ChainType, W extends IEscrowSwapWrapper<T, any>, S extends IEscrowSelfInitSwap<T>> = SwapTypeDefinition<T, W, S>;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives) where the
|
|
30
|
+
* user needs to initiate the escrow on the smart chain side
|
|
31
|
+
*
|
|
32
|
+
* @category Swaps/Abstract
|
|
33
|
+
*/
|
|
34
|
+
export abstract class IEscrowSelfInitSwap<
|
|
35
|
+
T extends ChainType = ChainType,
|
|
36
|
+
D extends IEscrowSelfInitSwapDefinition<T, IEscrowSwapWrapper<T, D>, IEscrowSelfInitSwap<T, D, S>> = IEscrowSwapDefinition<T, IEscrowSwapWrapper<T, any>, IEscrowSelfInitSwap<T, any, any>>,
|
|
37
|
+
S extends number = number
|
|
38
|
+
> extends IEscrowSwap<T, D, S> {
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Fee rate to be used for the escrow initiation transaction
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
protected readonly feeRate: string;
|
|
45
|
+
/**
|
|
46
|
+
* Signature data received from the intermediary (LP) allowing the user
|
|
47
|
+
* to initiate the swap escrow
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
protected signatureData?: SignatureData;
|
|
51
|
+
|
|
52
|
+
protected constructor(wrapper: D["Wrapper"], obj: any);
|
|
53
|
+
protected constructor(wrapper: D["Wrapper"], swapInit: IEscrowSelfInitSwapInit<T["Data"]>);
|
|
54
|
+
protected constructor(
|
|
55
|
+
wrapper: D["Wrapper"],
|
|
56
|
+
swapInitOrObj: IEscrowSelfInitSwapInit<T["Data"]> | any,
|
|
57
|
+
) {
|
|
58
|
+
super(wrapper, swapInitOrObj);
|
|
59
|
+
|
|
60
|
+
if(isIEscrowSelfInitSwapInit(swapInitOrObj)) {
|
|
61
|
+
this.feeRate = swapInitOrObj.feeRate;
|
|
62
|
+
this.signatureData = swapInitOrObj.signatureData;
|
|
63
|
+
} else {
|
|
64
|
+
if(swapInitOrObj.signature!=null) this.signatureData ={
|
|
65
|
+
prefix: swapInitOrObj.prefix,
|
|
66
|
+
timeout: swapInitOrObj.timeout,
|
|
67
|
+
signature: swapInitOrObj.signature
|
|
68
|
+
};
|
|
69
|
+
this.feeRate = swapInitOrObj.feeRate;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
//////////////////////////////
|
|
74
|
+
//// Watchdogs
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Periodically checks for init signature's expiry
|
|
78
|
+
*
|
|
79
|
+
* @param intervalSeconds How often to check (in seconds), default to 5s
|
|
80
|
+
* @param abortSignal
|
|
81
|
+
* @internal
|
|
82
|
+
*/
|
|
83
|
+
protected async watchdogWaitTillSignatureExpiry(intervalSeconds?: number, abortSignal?: AbortSignal): Promise<void> {
|
|
84
|
+
if(this._data==null || this.signatureData==null)
|
|
85
|
+
throw new Error("Tried to await signature expiry but data or signature is null, invalid state?");
|
|
86
|
+
|
|
87
|
+
intervalSeconds ??= 5;
|
|
88
|
+
let expired = false
|
|
89
|
+
while(!expired) {
|
|
90
|
+
await timeoutPromise(intervalSeconds*1000, abortSignal);
|
|
91
|
+
try {
|
|
92
|
+
expired = await this._contract.isInitAuthorizationExpired(this._data, this.signatureData);
|
|
93
|
+
} catch (e) {
|
|
94
|
+
this.logger.error("watchdogWaitTillSignatureExpiry(): Error when checking signature expiry: ", e);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if(abortSignal!=null) abortSignal.throwIfAborted();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
//////////////////////////////
|
|
102
|
+
//// Amounts & fees
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Get the estimated smart chain fee of the commit transaction
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
108
|
+
protected getCommitFee(): Promise<bigint> {
|
|
109
|
+
return this._contract.getCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Returns the transaction fee paid on the smart chain side to initiate the escrow
|
|
114
|
+
*/
|
|
115
|
+
async getSmartChainNetworkFee(): Promise<TokenAmount<SCToken<T["ChainId"]>, true>> {
|
|
116
|
+
const swapContract: T["Contract"] = this._contract;
|
|
117
|
+
return toTokenAmount(
|
|
118
|
+
await (
|
|
119
|
+
swapContract.getRawCommitFee!=null ?
|
|
120
|
+
swapContract.getRawCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate) :
|
|
121
|
+
swapContract.getCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate)
|
|
122
|
+
),
|
|
123
|
+
this.wrapper._getNativeToken(),
|
|
124
|
+
this.wrapper._prices
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Checks if the initiator/sender has enough balance on the smart chain side
|
|
130
|
+
* to cover the transaction fee for processing the swap
|
|
131
|
+
*/
|
|
132
|
+
abstract hasEnoughForTxFees(): Promise<{
|
|
133
|
+
enoughBalance: boolean,
|
|
134
|
+
balance: TokenAmount<SCToken<T["ChainId"]>, true>,
|
|
135
|
+
required: TokenAmount<SCToken<T["ChainId"]>, true>
|
|
136
|
+
}>;
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
//////////////////////////////
|
|
140
|
+
//// Commit and claim
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Returns transactions for initiating (committing) the escrow on the smart chain side. After sending the
|
|
144
|
+
* transactions manually be sure to call the {@link waitTillCommited} function to wait till the initiation
|
|
145
|
+
* transaction is observed, processed by the SDK and state of the swap properly updated.
|
|
146
|
+
*
|
|
147
|
+
* @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
|
|
148
|
+
* (this is handled on swap creation, if you commit right after quoting, you can use `skipChecks=true`)
|
|
149
|
+
*/
|
|
150
|
+
abstract txsCommit(skipChecks?: boolean): Promise<T["TX"][]>;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Initiates (commits) the escrow on the smart chain side
|
|
154
|
+
*
|
|
155
|
+
* @param _signer Signer to sign the transactions with, must be the same as used in the initialization
|
|
156
|
+
* @param abortSignal Abort signal
|
|
157
|
+
* @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
|
|
158
|
+
* (this is handled on swap creation, if you commit right after quoting, you can use `skipChecks=true`)
|
|
159
|
+
* @param onBeforeTxSent Callback called before the transactions are broadcasted
|
|
160
|
+
*/
|
|
161
|
+
abstract commit(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, skipChecks?: boolean, onBeforeTxSent?: (txId: string) => void): Promise<string>;
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Waits till a swap is initiated (committed) on-chain, should be called after sending the commit
|
|
165
|
+
* transactions ({@link txsCommit}) manually to wait till the SDK processes the escrow
|
|
166
|
+
* initialization and updates the swap state accordingly
|
|
167
|
+
*
|
|
168
|
+
* @param abortSignal AbortSignal
|
|
169
|
+
*/
|
|
170
|
+
abstract waitTillCommited(abortSignal?: AbortSignal): Promise<void>
|
|
171
|
+
|
|
172
|
+
//////////////////////////////
|
|
173
|
+
//// Quote verification
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Checks if the swap's quote is expired for good (i.e. the swap strictly cannot be committed on-chain anymore)
|
|
177
|
+
*/
|
|
178
|
+
async _verifyQuoteDefinitelyExpired(): Promise<boolean> {
|
|
179
|
+
if(this._data==null || this.signatureData==null) throw new Error("data or signature data are null!");
|
|
180
|
+
|
|
181
|
+
return this._contract.isInitAuthorizationExpired(
|
|
182
|
+
this._data!, this.signatureData!
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Checks if the swap's quote is still valid
|
|
188
|
+
*/
|
|
189
|
+
async _verifyQuoteValid(): Promise<boolean> {
|
|
190
|
+
if(this._data==null || this.signatureData==null) throw new Error("data or signature data are null!");
|
|
191
|
+
|
|
192
|
+
try {
|
|
193
|
+
await this._contract.isValidInitAuthorization(
|
|
194
|
+
this._getInitiator(), this._data!, this.signatureData!, this.feeRate
|
|
195
|
+
);
|
|
196
|
+
return true;
|
|
197
|
+
} catch (e) {
|
|
198
|
+
if(e instanceof SignatureVerificationError) {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
throw e;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* @inheritDoc
|
|
207
|
+
*/
|
|
208
|
+
serialize(): any {
|
|
209
|
+
return {
|
|
210
|
+
...super.serialize(),
|
|
211
|
+
prefix: this.signatureData?.prefix,
|
|
212
|
+
timeout: this.signatureData?.timeout,
|
|
213
|
+
signature: this.signatureData?.signature,
|
|
214
|
+
feeRate: this.feeRate==null ? null : this.feeRate.toString(),
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
|
|
218
218
|
}
|