@atomiqlabs/sdk 8.1.8 → 8.3.1
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/dist/bitcoin/wallet/BitcoinWallet.d.ts +41 -5
- package/dist/bitcoin/wallet/BitcoinWallet.js +36 -1
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +52 -2
- package/dist/bitcoin/wallet/IBitcoinWallet.js +2 -1
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +42 -7
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +36 -1
- package/dist/enums/FeeType.d.ts +7 -0
- package/dist/enums/FeeType.js +7 -0
- package/dist/enums/SwapAmountType.d.ts +7 -0
- package/dist/enums/SwapAmountType.js +7 -0
- package/dist/enums/SwapDirection.d.ts +7 -0
- package/dist/enums/SwapDirection.js +7 -0
- package/dist/enums/SwapType.d.ts +62 -1
- package/dist/enums/SwapType.js +62 -1
- package/dist/errors/IntermediaryError.d.ts +4 -0
- package/dist/errors/IntermediaryError.js +1 -0
- package/dist/errors/RequestError.d.ts +15 -1
- package/dist/errors/RequestError.js +8 -0
- package/dist/errors/UserError.d.ts +1 -0
- package/dist/errors/UserError.js +1 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.js +3 -4
- package/dist/intermediaries/Intermediary.d.ts +57 -10
- package/dist/intermediaries/Intermediary.js +37 -10
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +55 -22
- package/dist/intermediaries/IntermediaryDiscovery.js +35 -22
- package/dist/prices/RedundantSwapPrice.d.ts +24 -3
- package/dist/prices/RedundantSwapPrice.js +21 -1
- package/dist/prices/SingleSwapPrice.d.ts +9 -6
- package/dist/prices/SingleSwapPrice.js +10 -7
- package/dist/prices/SwapPriceWithChain.d.ts +54 -16
- package/dist/prices/SwapPriceWithChain.js +58 -20
- package/dist/prices/abstract/ISwapPrice.d.ts +94 -45
- package/dist/prices/abstract/ISwapPrice.js +103 -55
- package/dist/prices/providers/BinancePriceProvider.d.ts +7 -0
- package/dist/prices/providers/BinancePriceProvider.js +7 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +6 -0
- package/dist/prices/providers/CoinGeckoPriceProvider.js +6 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +6 -0
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +6 -0
- package/dist/prices/providers/CustomPriceProvider.d.ts +11 -0
- package/dist/prices/providers/CustomPriceProvider.js +11 -0
- package/dist/prices/providers/KrakenPriceProvider.d.ts +9 -0
- package/dist/prices/providers/KrakenPriceProvider.js +9 -0
- package/dist/prices/providers/OKXPriceProvider.d.ts +6 -0
- package/dist/prices/providers/OKXPriceProvider.js +6 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +3 -0
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +3 -0
- package/dist/storage/IUnifiedStorage.d.ts +19 -7
- package/dist/storage/UnifiedSwapStorage.d.ts +33 -3
- package/dist/storage/UnifiedSwapStorage.js +29 -1
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +31 -7
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +29 -6
- package/dist/storage-browser/LocalStorageManager.d.ts +25 -1
- package/dist/storage-browser/LocalStorageManager.js +25 -1
- package/dist/swapper/Swapper.d.ts +302 -221
- package/dist/swapper/Swapper.js +376 -344
- package/dist/swapper/SwapperFactory.d.ts +41 -17
- package/dist/swapper/SwapperFactory.js +23 -2
- package/dist/swapper/SwapperUtils.d.ts +75 -28
- package/dist/swapper/SwapperUtils.js +107 -60
- package/dist/swapper/SwapperWithChain.d.ts +286 -91
- package/dist/swapper/SwapperWithChain.js +218 -64
- package/dist/swapper/SwapperWithSigner.d.ts +229 -80
- package/dist/swapper/SwapperWithSigner.js +190 -44
- package/dist/swaps/IAddressSwap.d.ts +10 -1
- package/dist/swaps/IAddressSwap.js +2 -1
- package/dist/swaps/IBTCWalletSwap.d.ts +24 -6
- package/dist/swaps/IBTCWalletSwap.js +2 -1
- package/dist/swaps/IClaimableSwap.d.ts +36 -4
- package/dist/swaps/IClaimableSwap.js +2 -1
- package/dist/swaps/IClaimableSwapWrapper.d.ts +11 -1
- package/dist/swaps/IRefundableSwap.d.ts +29 -3
- package/dist/swaps/IRefundableSwap.js +2 -1
- package/dist/swaps/ISwap.d.ts +159 -21
- package/dist/swaps/ISwap.js +90 -33
- package/dist/swaps/ISwapWithGasDrop.d.ts +6 -0
- package/dist/swaps/ISwapWithGasDrop.js +1 -0
- package/dist/swaps/ISwapWrapper.d.ts +157 -48
- package/dist/swaps/ISwapWrapper.js +130 -72
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +49 -6
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +22 -12
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +65 -12
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +38 -19
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +39 -9
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +30 -21
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +31 -15
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +33 -18
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +94 -29
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +90 -27
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +22 -9
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +24 -11
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +275 -58
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +516 -239
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +76 -25
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +131 -49
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +311 -51
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +542 -193
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +87 -26
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +147 -58
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +209 -53
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +449 -242
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +77 -23
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +116 -46
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +197 -56
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +326 -189
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +30 -5
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +44 -19
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +60 -19
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +74 -31
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +76 -50
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +106 -101
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +36 -13
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +65 -19
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +46 -17
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +82 -27
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +328 -92
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +460 -219
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +76 -24
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +244 -124
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +146 -18
- package/dist/swaps/trusted/ln/LnForGasSwap.js +173 -43
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +29 -10
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +30 -11
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +200 -47
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +230 -78
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +34 -12
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +33 -14
- package/dist/types/AmountData.d.ts +2 -1
- package/dist/types/CustomPriceFunction.d.ts +7 -1
- package/dist/types/SwapExecutionAction.d.ts +74 -4
- package/dist/types/SwapWithSigner.d.ts +4 -1
- package/dist/types/SwapWithSigner.js +5 -2
- package/dist/types/Token.d.ts +11 -5
- package/dist/types/Token.js +6 -3
- package/dist/types/TokenAmount.d.ts +3 -0
- package/dist/types/TokenAmount.js +2 -0
- package/dist/types/fees/Fee.d.ts +2 -1
- package/dist/types/fees/FeeBreakdown.d.ts +2 -1
- package/dist/types/fees/PercentagePPM.d.ts +2 -0
- package/dist/types/fees/PercentagePPM.js +1 -0
- package/dist/types/lnurl/LNURLPay.d.ts +14 -6
- package/dist/types/lnurl/LNURLPay.js +6 -2
- package/dist/types/lnurl/LNURLWithdraw.d.ts +12 -5
- package/dist/types/lnurl/LNURLWithdraw.js +6 -2
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +20 -0
- package/dist/types/wallets/LightningInvoiceCreateService.js +15 -0
- package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +3 -1
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +3 -1
- package/dist/utils/BitcoinUtils.d.ts +1 -0
- package/dist/utils/BitcoinUtils.js +5 -1
- package/dist/utils/SwapUtils.d.ts +56 -1
- package/dist/utils/SwapUtils.js +53 -1
- package/dist/utils/TokenUtils.d.ts +10 -2
- package/dist/utils/TokenUtils.js +12 -4
- package/package.json +3 -3
- package/src/bitcoin/wallet/BitcoinWallet.ts +41 -5
- package/src/bitcoin/wallet/IBitcoinWallet.ts +57 -2
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +42 -6
- package/src/enums/FeeType.ts +7 -0
- package/src/enums/SwapAmountType.ts +7 -0
- package/src/enums/SwapDirection.ts +7 -0
- package/src/enums/SwapType.ts +62 -2
- package/src/errors/IntermediaryError.ts +4 -0
- package/src/errors/RequestError.ts +15 -1
- package/src/errors/UserError.ts +1 -0
- package/src/index.ts +6 -5
- package/src/intermediaries/Intermediary.ts +57 -10
- package/src/intermediaries/IntermediaryDiscovery.ts +60 -27
- package/src/prices/RedundantSwapPrice.ts +24 -4
- package/src/prices/SingleSwapPrice.ts +10 -7
- package/src/prices/SwapPriceWithChain.ts +59 -21
- package/src/prices/abstract/ISwapPrice.ts +114 -65
- package/src/prices/providers/BinancePriceProvider.ts +7 -0
- package/src/prices/providers/CoinGeckoPriceProvider.ts +6 -0
- package/src/prices/providers/CoinPaprikaPriceProvider.ts +6 -0
- package/src/prices/providers/CustomPriceProvider.ts +11 -0
- package/src/prices/providers/KrakenPriceProvider.ts +9 -0
- package/src/prices/providers/OKXPriceProvider.ts +6 -0
- package/src/prices/providers/abstract/ExchangePriceProvider.ts +3 -0
- package/src/storage/IUnifiedStorage.ts +19 -7
- package/src/storage/UnifiedSwapStorage.ts +33 -3
- package/src/storage-browser/IndexedDBUnifiedStorage.ts +31 -8
- package/src/storage-browser/LocalStorageManager.ts +25 -1
- package/src/swapper/Swapper.ts +512 -378
- package/src/swapper/SwapperFactory.ts +44 -21
- package/src/swapper/SwapperUtils.ts +107 -60
- package/src/swapper/SwapperWithChain.ts +320 -81
- package/src/swapper/SwapperWithSigner.ts +263 -56
- package/src/swaps/IAddressSwap.ts +11 -1
- package/src/swaps/IBTCWalletSwap.ts +24 -8
- package/src/swaps/IClaimableSwap.ts +39 -4
- package/src/swaps/IClaimableSwapWrapper.ts +11 -2
- package/src/swaps/IRefundableSwap.ts +32 -3
- package/src/swaps/ISwap.ts +221 -82
- package/src/swaps/ISwapWithGasDrop.ts +6 -0
- package/src/swaps/ISwapWrapper.ts +212 -94
- package/src/swaps/escrow_swaps/IEscrowSelfInitSwap.ts +62 -18
- package/src/swaps/escrow_swaps/IEscrowSwap.ts +83 -37
- package/src/swaps/escrow_swaps/IEscrowSwapWrapper.ts +61 -30
- package/src/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.ts +37 -19
- package/src/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.ts +120 -51
- package/src/swaps/escrow_swaps/frombtc/IFromBTCWrapper.ts +24 -11
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.ts +559 -256
- package/src/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.ts +155 -61
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.ts +590 -226
- package/src/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.ts +177 -74
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.ts +470 -243
- package/src/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.ts +141 -59
- package/src/swaps/escrow_swaps/tobtc/IToBTCSwap.ts +352 -193
- package/src/swaps/escrow_swaps/tobtc/IToBTCWrapper.ts +48 -23
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.ts +86 -39
- package/src/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.ts +110 -110
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.ts +88 -33
- package/src/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.ts +101 -31
- package/src/swaps/spv_swaps/SpvFromBTCSwap.ts +534 -263
- package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +289 -148
- package/src/swaps/trusted/ln/LnForGasSwap.ts +184 -45
- package/src/swaps/trusted/ln/LnForGasWrapper.ts +34 -15
- package/src/swaps/trusted/onchain/OnchainForGasSwap.ts +260 -86
- package/src/swaps/trusted/onchain/OnchainForGasWrapper.ts +41 -19
- package/src/types/AmountData.ts +2 -1
- package/src/types/CustomPriceFunction.ts +7 -1
- package/src/types/SwapExecutionAction.ts +84 -5
- package/src/types/SwapWithSigner.ts +7 -3
- package/src/types/Token.ts +12 -5
- package/src/types/TokenAmount.ts +3 -0
- package/src/types/fees/Fee.ts +2 -1
- package/src/types/fees/FeeBreakdown.ts +2 -1
- package/src/types/fees/PercentagePPM.ts +2 -0
- package/src/types/lnurl/LNURLPay.ts +14 -6
- package/src/types/lnurl/LNURLWithdraw.ts +12 -5
- package/src/types/wallets/LightningInvoiceCreateService.ts +26 -0
- package/src/types/wallets/MinimalBitcoinWalletInterface.ts +3 -1
- package/src/types/wallets/MinimalLightningNetworkWalletInterface.ts +3 -1
- package/src/utils/BitcoinUtils.ts +5 -0
- package/src/utils/SwapUtils.ts +61 -1
- package/src/utils/TokenUtils.ts +12 -4
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.d.ts +0 -68
- package/dist/bitcoin/BitcoinRpcWithAddressIndex.js +0 -2
- package/dist/bitcoin/LightningNetworkApi.d.ts +0 -12
- package/dist/bitcoin/LightningNetworkApi.js +0 -2
- package/dist/bitcoin/mempool/MempoolApi.d.ts +0 -350
- package/dist/bitcoin/mempool/MempoolApi.js +0 -311
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.d.ts +0 -44
- package/dist/bitcoin/mempool/MempoolBitcoinBlock.js +0 -48
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.d.ts +0 -119
- package/dist/bitcoin/mempool/MempoolBitcoinRpc.js +0 -361
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.d.ts +0 -22
- package/dist/bitcoin/mempool/synchronizer/MempoolBtcRelaySynchronizer.js +0 -105
- package/dist/errors/PaymentAuthError.d.ts +0 -11
- package/dist/errors/PaymentAuthError.js +0 -23
- package/src/errors/PaymentAuthError.ts +0 -26
|
@@ -3,26 +3,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.IEscrowSwapWrapper = void 0;
|
|
4
4
|
const ISwapWrapper_1 = require("../ISwapWrapper");
|
|
5
5
|
const base_1 = require("@atomiqlabs/base");
|
|
6
|
+
/**
|
|
7
|
+
* Base class for wrappers of escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives)
|
|
8
|
+
*
|
|
9
|
+
* @category Swaps
|
|
10
|
+
*/
|
|
6
11
|
class IEscrowSwapWrapper extends ISwapWrapper_1.ISwapWrapper {
|
|
7
12
|
constructor(chainIdentifier, unifiedStorage, unifiedChainEvents, chain, contract, prices, tokens, swapDataDeserializer, options, events) {
|
|
8
13
|
super(chainIdentifier, unifiedStorage, unifiedChainEvents, chain, prices, tokens, options, events);
|
|
9
|
-
this.
|
|
10
|
-
this.
|
|
14
|
+
this._swapDataDeserializer = swapDataDeserializer;
|
|
15
|
+
this._contract = contract;
|
|
11
16
|
}
|
|
12
17
|
/**
|
|
13
18
|
* Pre-fetches signature verification data from the server's pre-sent promise, doesn't throw, instead returns null
|
|
14
19
|
*
|
|
15
20
|
* @param signDataPrefetch Promise that resolves when we receive "signDataPrefetch" from the LP in streaming mode
|
|
16
|
-
* @protected
|
|
17
21
|
* @returns Pre-fetched signature verification data or null if failed
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
18
24
|
*/
|
|
19
25
|
preFetchSignData(signDataPrefetch) {
|
|
20
|
-
if (this.
|
|
26
|
+
if (this._contract.preFetchForInitSignatureVerification == null)
|
|
21
27
|
return Promise.resolve(undefined);
|
|
22
28
|
return signDataPrefetch.then(obj => {
|
|
23
29
|
if (obj == null)
|
|
24
30
|
return undefined;
|
|
25
|
-
return this.
|
|
31
|
+
return this._contract.preFetchForInitSignatureVerification(obj);
|
|
26
32
|
}).catch(e => {
|
|
27
33
|
this.logger.error("preFetchSignData(): Error: ", e);
|
|
28
34
|
});
|
|
@@ -36,20 +42,22 @@ class IEscrowSwapWrapper extends ISwapWrapper_1.ISwapWrapper {
|
|
|
36
42
|
* @param feeRatePromise Pre-fetched fee rate promise
|
|
37
43
|
* @param preFetchSignatureVerificationData Pre-fetched signature verification data
|
|
38
44
|
* @param abortSignal
|
|
39
|
-
* @protected
|
|
40
45
|
* @returns Swap initialization signature expiry
|
|
41
46
|
* @throws {SignatureVerificationError} when swap init signature is invalid
|
|
47
|
+
*
|
|
48
|
+
* @internal
|
|
42
49
|
*/
|
|
43
50
|
async verifyReturnedSignature(initiator, data, signature, feeRatePromise, preFetchSignatureVerificationData, abortSignal) {
|
|
44
51
|
const [feeRate, preFetchedSignatureData] = await Promise.all([feeRatePromise, preFetchSignatureVerificationData]);
|
|
45
|
-
await this.
|
|
46
|
-
return await this.
|
|
52
|
+
await this._contract.isValidInitAuthorization(initiator, data, signature, feeRate, preFetchedSignatureData);
|
|
53
|
+
return await this._contract.getInitAuthorizationExpiry(data, signature, preFetchedSignatureData);
|
|
47
54
|
}
|
|
48
55
|
/**
|
|
49
56
|
* Processes a single SC on-chain event
|
|
50
|
-
* @private
|
|
51
57
|
* @param event
|
|
52
58
|
* @param swap
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
53
61
|
*/
|
|
54
62
|
async processEvent(event, swap) {
|
|
55
63
|
if (swap == null)
|
|
@@ -57,22 +65,22 @@ class IEscrowSwapWrapper extends ISwapWrapper_1.ISwapWrapper {
|
|
|
57
65
|
let swapChanged = false;
|
|
58
66
|
if (event instanceof base_1.InitializeEvent) {
|
|
59
67
|
swapChanged = await this.processEventInitialize(swap, event);
|
|
60
|
-
if (event.meta?.txId != null && swap.
|
|
61
|
-
swap.
|
|
68
|
+
if (event.meta?.txId != null && swap._commitTxId !== event.meta.txId) {
|
|
69
|
+
swap._commitTxId = event.meta.txId;
|
|
62
70
|
swapChanged ||= true;
|
|
63
71
|
}
|
|
64
72
|
}
|
|
65
73
|
if (event instanceof base_1.ClaimEvent) {
|
|
66
74
|
swapChanged = await this.processEventClaim(swap, event);
|
|
67
|
-
if (event.meta?.txId != null && swap.
|
|
68
|
-
swap.
|
|
75
|
+
if (event.meta?.txId != null && swap._claimTxId !== event.meta.txId) {
|
|
76
|
+
swap._claimTxId = event.meta.txId;
|
|
69
77
|
swapChanged ||= true;
|
|
70
78
|
}
|
|
71
79
|
}
|
|
72
80
|
if (event instanceof base_1.RefundEvent) {
|
|
73
81
|
swapChanged = await this.processEventRefund(swap, event);
|
|
74
|
-
if (event.meta?.txId != null && swap.
|
|
75
|
-
swap.
|
|
82
|
+
if (event.meta?.txId != null && swap._refundTxId !== event.meta.txId) {
|
|
83
|
+
swap._refundTxId = event.meta.txId;
|
|
76
84
|
swapChanged ||= true;
|
|
77
85
|
}
|
|
78
86
|
}
|
|
@@ -81,6 +89,10 @@ class IEscrowSwapWrapper extends ISwapWrapper_1.ISwapWrapper {
|
|
|
81
89
|
await swap._saveAndEmit();
|
|
82
90
|
}
|
|
83
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* @inheritDoc
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
84
96
|
async _checkPastSwaps(pastSwaps) {
|
|
85
97
|
const changedSwaps = [];
|
|
86
98
|
const removeSwaps = [];
|
|
@@ -91,13 +103,13 @@ class IEscrowSwapWrapper extends ISwapWrapper_1.ISwapWrapper {
|
|
|
91
103
|
//Check expiry
|
|
92
104
|
swapExpiredStatus[pastSwap.getId()] = await pastSwap._verifyQuoteDefinitelyExpired();
|
|
93
105
|
}
|
|
94
|
-
if (pastSwap.
|
|
106
|
+
if (pastSwap._shouldFetchOnchainState()) {
|
|
95
107
|
//Add to swaps for which status should be checked
|
|
96
|
-
if (pastSwap.
|
|
108
|
+
if (pastSwap._data != null)
|
|
97
109
|
checkStatusSwaps.push(pastSwap);
|
|
98
110
|
}
|
|
99
111
|
}
|
|
100
|
-
const swapStatuses = await this.
|
|
112
|
+
const swapStatuses = await this._contract.getCommitStatuses(checkStatusSwaps.map(val => ({ signer: val._getInitiator(), swapData: val._data })));
|
|
101
113
|
for (let pastSwap of checkStatusSwaps) {
|
|
102
114
|
const escrowHash = pastSwap.getEscrowHash();
|
|
103
115
|
const shouldSave = await pastSwap._sync(false, swapExpiredStatus[pastSwap.getId()], escrowHash == null ? undefined : swapStatuses[escrowHash]);
|
|
@@ -115,8 +127,5 @@ class IEscrowSwapWrapper extends ISwapWrapper_1.ISwapWrapper {
|
|
|
115
127
|
removeSwaps
|
|
116
128
|
};
|
|
117
129
|
}
|
|
118
|
-
recoverFromSwapDataAndState(init, state, lp) {
|
|
119
|
-
return Promise.resolve(null);
|
|
120
|
-
}
|
|
121
130
|
}
|
|
122
131
|
exports.IEscrowSwapWrapper = IEscrowSwapWrapper;
|
|
@@ -14,7 +14,15 @@ import { PaymentRequestObject, TagsObject } from "@atomiqlabs/bolt11";
|
|
|
14
14
|
import { IEscrowSwap } from "../IEscrowSwap";
|
|
15
15
|
import { LNURLWithdrawParamsWithUrl } from "../../../types/lnurl/LNURLWithdraw";
|
|
16
16
|
export type IFromBTCLNDefinition<T extends ChainType, W extends IFromBTCLNWrapper<T, any>, S extends IEscrowSwap<T>> = IFromBTCDefinition<T, W, S>;
|
|
17
|
+
/**
|
|
18
|
+
* Base class for wrappers of escrow-based Lightning -> Smart chain swaps
|
|
19
|
+
*
|
|
20
|
+
* @category Swaps
|
|
21
|
+
*/
|
|
17
22
|
export declare abstract class IFromBTCLNWrapper<T extends ChainType, D extends IFromBTCLNDefinition<T, IFromBTCLNWrapper<T, D>, IEscrowSwap<T, D>>, O extends ISwapWrapperOptions = ISwapWrapperOptions> extends IFromBTCWrapper<T, D, O> {
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
18
26
|
protected readonly lnApi: LightningNetworkApi;
|
|
19
27
|
/**
|
|
20
28
|
* @param chainIdentifier
|
|
@@ -33,16 +41,11 @@ export declare abstract class IFromBTCLNWrapper<T extends ChainType, D extends I
|
|
|
33
41
|
swapState: [IEscrowSwap];
|
|
34
42
|
}>);
|
|
35
43
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* @param data Parsed swap data
|
|
39
|
-
*/
|
|
40
|
-
getHtlcTimeout(data: SwapData): bigint;
|
|
41
|
-
/**
|
|
42
|
-
* Generates a new 32-byte secret to be used as pre-image for lightning network invoice & HTLC swap\
|
|
44
|
+
* Generates a new 32-byte secret to be used as pre-image for lightning network invoice & HTLC swap
|
|
43
45
|
*
|
|
44
|
-
* @private
|
|
45
46
|
* @returns Hash pre-image & payment hash
|
|
47
|
+
*
|
|
48
|
+
* @internal
|
|
46
49
|
*/
|
|
47
50
|
protected getSecretAndHash(): {
|
|
48
51
|
secret: Buffer;
|
|
@@ -51,10 +54,12 @@ export declare abstract class IFromBTCLNWrapper<T extends ChainType, D extends I
|
|
|
51
54
|
/**
|
|
52
55
|
* Pre-fetches intermediary's LN node capacity, doesn't throw, instead returns null
|
|
53
56
|
*
|
|
54
|
-
* @param pubkeyPromise Promise that resolves when we receive "lnPublicKey" param from the intermediary
|
|
57
|
+
* @param pubkeyPromise Promise that resolves when we receive "lnPublicKey" param from the intermediary through
|
|
55
58
|
* streaming
|
|
56
|
-
*
|
|
59
|
+
*
|
|
57
60
|
* @returns LN Node liquidity
|
|
61
|
+
*
|
|
62
|
+
* @internal
|
|
58
63
|
*/
|
|
59
64
|
protected preFetchLnCapacity(pubkeyPromise: Promise<string | null>): Promise<LNNodeLiquidity | null>;
|
|
60
65
|
/**
|
|
@@ -62,13 +67,14 @@ export declare abstract class IFromBTCLNWrapper<T extends ChainType, D extends I
|
|
|
62
67
|
*
|
|
63
68
|
* @param lp Intermediary
|
|
64
69
|
* @param decodedPr Decoded bolt11 lightning network invoice
|
|
65
|
-
* @param amountIn Amount to be paid for the swap in sats
|
|
66
70
|
* @param lnCapacityPrefetchPromise Pre-fetch for LN node capacity, preFetchLnCapacity()
|
|
67
|
-
* @param abortSignal
|
|
68
|
-
*
|
|
71
|
+
* @param abortSignal Abort signal
|
|
72
|
+
*
|
|
69
73
|
* @throws {IntermediaryError} if the lightning network node doesn't have enough inbound liquidity
|
|
70
74
|
* @throws {Error} if the lightning network node's inbound liquidity might be enough, but the swap would
|
|
71
75
|
* deplete more than half of the liquidity
|
|
76
|
+
*
|
|
77
|
+
* @internal
|
|
72
78
|
*/
|
|
73
79
|
protected verifyLnNodeCapacity(lp: Intermediary, decodedPr: PaymentRequestObject & {
|
|
74
80
|
tagsObject: TagsObject;
|
|
@@ -77,9 +83,19 @@ export declare abstract class IFromBTCLNWrapper<T extends ChainType, D extends I
|
|
|
77
83
|
* Parses and fetches lnurl withdraw params from the specified lnurl
|
|
78
84
|
*
|
|
79
85
|
* @param lnurl LNURL to be parsed and fetched
|
|
80
|
-
* @param abortSignal
|
|
81
|
-
*
|
|
86
|
+
* @param abortSignal Abort signal
|
|
87
|
+
*
|
|
82
88
|
* @throws {UserError} if the LNURL is invalid or if it's not a LNURL-withdraw
|
|
89
|
+
*
|
|
90
|
+
* @internal
|
|
83
91
|
*/
|
|
84
92
|
protected getLNURLWithdraw(lnurl: string | LNURLWithdrawParamsWithUrl, abortSignal: AbortSignal): Promise<LNURLWithdrawParamsWithUrl>;
|
|
93
|
+
/**
|
|
94
|
+
* Returns the swap expiry, leaving enough time for the user to claim the HTLC
|
|
95
|
+
*
|
|
96
|
+
* @param data Parsed swap data
|
|
97
|
+
*
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
_getHtlcTimeout(data: SwapData): bigint;
|
|
85
101
|
}
|
|
@@ -8,6 +8,11 @@ const IntermediaryError_1 = require("../../../errors/IntermediaryError");
|
|
|
8
8
|
const LNURL_1 = require("../../../lnurl/LNURL");
|
|
9
9
|
const UserError_1 = require("../../../errors/UserError");
|
|
10
10
|
const sha256_1 = require("@noble/hashes/sha256");
|
|
11
|
+
/**
|
|
12
|
+
* Base class for wrappers of escrow-based Lightning -> Smart chain swaps
|
|
13
|
+
*
|
|
14
|
+
* @category Swaps
|
|
15
|
+
*/
|
|
11
16
|
class IFromBTCLNWrapper extends IFromBTCWrapper_1.IFromBTCWrapper {
|
|
12
17
|
/**
|
|
13
18
|
* @param chainIdentifier
|
|
@@ -27,18 +32,11 @@ class IFromBTCLNWrapper extends IFromBTCWrapper_1.IFromBTCWrapper {
|
|
|
27
32
|
this.lnApi = lnApi;
|
|
28
33
|
}
|
|
29
34
|
/**
|
|
30
|
-
*
|
|
35
|
+
* Generates a new 32-byte secret to be used as pre-image for lightning network invoice & HTLC swap
|
|
31
36
|
*
|
|
32
|
-
* @param data Parsed swap data
|
|
33
|
-
*/
|
|
34
|
-
getHtlcTimeout(data) {
|
|
35
|
-
return data.getExpiry() - 600n;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Generates a new 32-byte secret to be used as pre-image for lightning network invoice & HTLC swap\
|
|
39
|
-
*
|
|
40
|
-
* @private
|
|
41
37
|
* @returns Hash pre-image & payment hash
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
42
40
|
*/
|
|
43
41
|
getSecretAndHash() {
|
|
44
42
|
const secret = (0, Utils_1.randomBytes)(32);
|
|
@@ -48,10 +46,12 @@ class IFromBTCLNWrapper extends IFromBTCWrapper_1.IFromBTCWrapper {
|
|
|
48
46
|
/**
|
|
49
47
|
* Pre-fetches intermediary's LN node capacity, doesn't throw, instead returns null
|
|
50
48
|
*
|
|
51
|
-
* @param pubkeyPromise Promise that resolves when we receive "lnPublicKey" param from the intermediary
|
|
49
|
+
* @param pubkeyPromise Promise that resolves when we receive "lnPublicKey" param from the intermediary through
|
|
52
50
|
* streaming
|
|
53
|
-
*
|
|
51
|
+
*
|
|
54
52
|
* @returns LN Node liquidity
|
|
53
|
+
*
|
|
54
|
+
* @internal
|
|
55
55
|
*/
|
|
56
56
|
preFetchLnCapacity(pubkeyPromise) {
|
|
57
57
|
return pubkeyPromise.then(pubkey => {
|
|
@@ -68,13 +68,14 @@ class IFromBTCLNWrapper extends IFromBTCWrapper_1.IFromBTCWrapper {
|
|
|
68
68
|
*
|
|
69
69
|
* @param lp Intermediary
|
|
70
70
|
* @param decodedPr Decoded bolt11 lightning network invoice
|
|
71
|
-
* @param amountIn Amount to be paid for the swap in sats
|
|
72
71
|
* @param lnCapacityPrefetchPromise Pre-fetch for LN node capacity, preFetchLnCapacity()
|
|
73
|
-
* @param abortSignal
|
|
74
|
-
*
|
|
72
|
+
* @param abortSignal Abort signal
|
|
73
|
+
*
|
|
75
74
|
* @throws {IntermediaryError} if the lightning network node doesn't have enough inbound liquidity
|
|
76
75
|
* @throws {Error} if the lightning network node's inbound liquidity might be enough, but the swap would
|
|
77
76
|
* deplete more than half of the liquidity
|
|
77
|
+
*
|
|
78
|
+
* @internal
|
|
78
79
|
*/
|
|
79
80
|
async verifyLnNodeCapacity(lp, decodedPr, lnCapacityPrefetchPromise, abortSignal) {
|
|
80
81
|
if (decodedPr.payeeNodeKey == null)
|
|
@@ -84,6 +85,8 @@ class IFromBTCLNWrapper extends IFromBTCWrapper_1.IFromBTCWrapper {
|
|
|
84
85
|
const _result = await lnCapacityPrefetchPromise ?? await this.lnApi.getLNNodeLiquidity(decodedPr.payeeNodeKey);
|
|
85
86
|
if (_result === null)
|
|
86
87
|
throw new IntermediaryError_1.IntermediaryError("LP's lightning node not found in the lightning network graph!");
|
|
88
|
+
if (abortSignal != null)
|
|
89
|
+
abortSignal.throwIfAborted();
|
|
87
90
|
lp.lnData = _result;
|
|
88
91
|
if (decodedPr.payeeNodeKey !== _result.publicKey)
|
|
89
92
|
throw new IntermediaryError_1.IntermediaryError("Invalid pr returned - payee pubkey");
|
|
@@ -97,19 +100,31 @@ class IFromBTCLNWrapper extends IFromBTCWrapper_1.IFromBTCWrapper {
|
|
|
97
100
|
* Parses and fetches lnurl withdraw params from the specified lnurl
|
|
98
101
|
*
|
|
99
102
|
* @param lnurl LNURL to be parsed and fetched
|
|
100
|
-
* @param abortSignal
|
|
101
|
-
*
|
|
103
|
+
* @param abortSignal Abort signal
|
|
104
|
+
*
|
|
102
105
|
* @throws {UserError} if the LNURL is invalid or if it's not a LNURL-withdraw
|
|
106
|
+
*
|
|
107
|
+
* @internal
|
|
103
108
|
*/
|
|
104
109
|
async getLNURLWithdraw(lnurl, abortSignal) {
|
|
105
110
|
if (typeof (lnurl) !== "string")
|
|
106
111
|
return lnurl;
|
|
107
|
-
const res = await LNURL_1.LNURL.getLNURL(lnurl, true, this.
|
|
112
|
+
const res = await LNURL_1.LNURL.getLNURL(lnurl, true, this._options.getRequestTimeout, abortSignal);
|
|
108
113
|
if (res == null)
|
|
109
114
|
throw new UserError_1.UserError("Invalid LNURL");
|
|
110
115
|
if (res.tag !== "withdrawRequest")
|
|
111
116
|
throw new UserError_1.UserError("Not a LNURL-withdrawal");
|
|
112
117
|
return res;
|
|
113
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Returns the swap expiry, leaving enough time for the user to claim the HTLC
|
|
121
|
+
*
|
|
122
|
+
* @param data Parsed swap data
|
|
123
|
+
*
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
126
|
+
_getHtlcTimeout(data) {
|
|
127
|
+
return data.getExpiry() - 600n;
|
|
128
|
+
}
|
|
114
129
|
}
|
|
115
130
|
exports.IFromBTCLNWrapper = IFromBTCLNWrapper;
|
|
@@ -6,88 +6,153 @@ import { IEscrowSelfInitSwap, IEscrowSelfInitSwapDefinition, IEscrowSelfInitSwap
|
|
|
6
6
|
import { FeeType } from "../../../enums/FeeType";
|
|
7
7
|
import { TokenAmount } from "../../../types/TokenAmount";
|
|
8
8
|
import { BtcToken, SCToken } from "../../../types/Token";
|
|
9
|
+
import { IClaimableSwap } from "../../IClaimableSwap";
|
|
9
10
|
export type IFromBTCSelfInitDefinition<T extends ChainType, W extends IFromBTCWrapper<T, any>, S extends IFromBTCSelfInitSwap<T>> = IEscrowSelfInitSwapDefinition<T, W, S>;
|
|
10
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Base class for legacy escrow-based Bitcoin (on-chain & lightning) -> Smart chain swaps,
|
|
13
|
+
* which require the user to manually initiate the escrow on the destination smart chain
|
|
14
|
+
*
|
|
15
|
+
* @category Swaps
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class IFromBTCSelfInitSwap<T extends ChainType = ChainType, D extends IFromBTCSelfInitDefinition<T, IFromBTCWrapper<T, D>, IFromBTCSelfInitSwap<T, D, S>> = IFromBTCSelfInitDefinition<T, IFromBTCWrapper<T, any>, IFromBTCSelfInitSwap<T, any, any>>, S extends number = number> extends IEscrowSelfInitSwap<T, D, S> implements IAddressSwap, IClaimableSwap<T, D, S> {
|
|
18
|
+
/**
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
11
21
|
protected abstract readonly inputToken: BtcToken;
|
|
12
22
|
protected constructor(wrapper: D["Wrapper"], init: IEscrowSelfInitSwapInit<T["Data"]>);
|
|
13
23
|
protected constructor(wrapper: D["Wrapper"], obj: any);
|
|
14
24
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @
|
|
25
|
+
* @inheritDoc
|
|
26
|
+
* @internal
|
|
17
27
|
*/
|
|
18
28
|
protected tryRecomputeSwapPrice(): void;
|
|
19
29
|
/**
|
|
20
|
-
*
|
|
30
|
+
* @inheritDoc
|
|
21
31
|
*/
|
|
22
32
|
abstract getAddress(): string;
|
|
23
33
|
/**
|
|
24
|
-
*
|
|
25
|
-
* (with bitcoin: or lightning: prefix)
|
|
34
|
+
* @inheritDoc
|
|
26
35
|
*/
|
|
27
36
|
abstract getHyperlink(): string;
|
|
37
|
+
/**
|
|
38
|
+
* @inheritDoc
|
|
39
|
+
*/
|
|
28
40
|
abstract isClaimable(): boolean;
|
|
29
41
|
/**
|
|
30
42
|
* Returns if the swap can be committed
|
|
43
|
+
* @internal
|
|
31
44
|
*/
|
|
32
45
|
protected abstract canCommit(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* @inheritDoc
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
33
50
|
_getInitiator(): string;
|
|
51
|
+
/**
|
|
52
|
+
* @inheritDoc
|
|
53
|
+
*/
|
|
34
54
|
getOutputTxId(): string | null;
|
|
55
|
+
/**
|
|
56
|
+
* @inheritDoc
|
|
57
|
+
*/
|
|
35
58
|
getOutputAddress(): string | null;
|
|
59
|
+
/**
|
|
60
|
+
* @inheritDoc
|
|
61
|
+
*/
|
|
36
62
|
requiresAction(): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Returns the swap output amount in destination token based units without any fees, this
|
|
65
|
+
* value is therefore always higher than the actual received output.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
37
69
|
protected getOutAmountWithoutFee(): bigint;
|
|
70
|
+
/**
|
|
71
|
+
* Returns the swap fee charged by the intermediary (LP) on this swap
|
|
72
|
+
*
|
|
73
|
+
* @internal
|
|
74
|
+
*/
|
|
38
75
|
protected getSwapFee(): Fee<T["ChainId"], BtcToken, SCToken<T["ChainId"]>>;
|
|
76
|
+
/**
|
|
77
|
+
* @inheritDoc
|
|
78
|
+
*/
|
|
39
79
|
getFee(): Fee;
|
|
80
|
+
/**
|
|
81
|
+
* @inheritDoc
|
|
82
|
+
*/
|
|
40
83
|
getFeeBreakdown(): [{
|
|
41
84
|
type: FeeType.SWAP;
|
|
42
85
|
fee: Fee<T["ChainId"], BtcToken, SCToken<T["ChainId"]>>;
|
|
43
86
|
}];
|
|
87
|
+
/**
|
|
88
|
+
* @inheritDoc
|
|
89
|
+
*/
|
|
44
90
|
getOutputToken(): SCToken<T["ChainId"]>;
|
|
91
|
+
/**
|
|
92
|
+
* @inheritDoc
|
|
93
|
+
*/
|
|
45
94
|
getOutput(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
|
|
95
|
+
/**
|
|
96
|
+
* @inheritDoc
|
|
97
|
+
*/
|
|
46
98
|
abstract getInput(): TokenAmount<T["ChainId"], BtcToken>;
|
|
99
|
+
/**
|
|
100
|
+
* @inheritDoc
|
|
101
|
+
*/
|
|
47
102
|
getInputWithoutFee(): TokenAmount<T["ChainId"], BtcToken>;
|
|
48
|
-
|
|
49
|
-
|
|
103
|
+
/**
|
|
104
|
+
* @inheritDoc
|
|
105
|
+
*/
|
|
50
106
|
hasEnoughForTxFees(): Promise<{
|
|
51
107
|
enoughBalance: boolean;
|
|
52
108
|
balance: TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
|
|
53
109
|
required: TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
|
|
54
110
|
}>;
|
|
55
111
|
/**
|
|
56
|
-
* Returns the
|
|
57
|
-
*
|
|
112
|
+
* Returns the amount of native token of the destination chain locked up during initialization of the escrow
|
|
113
|
+
* to act as a security deposit that can be taken by the intermediary (LP) if the user doesn't go through
|
|
114
|
+
* with the swap
|
|
115
|
+
*/
|
|
116
|
+
getSecurityDeposit(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
|
|
117
|
+
/**
|
|
118
|
+
* Returns the total amount of native token of the destination chain locked up during initialization of the escrow.
|
|
119
|
+
* This covers the security deposit and the watchtower fee (if applicable), it is calculated a maximum of those
|
|
120
|
+
* two values.
|
|
121
|
+
*/
|
|
122
|
+
getTotalDeposit(): TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
|
|
123
|
+
/**
|
|
124
|
+
* Creates the escrow on the destination smart chain side, pre-locking the tokens from the intermediary (LP)
|
|
125
|
+
* into an escrow.
|
|
126
|
+
*
|
|
127
|
+
* @inheritDoc
|
|
58
128
|
*
|
|
59
|
-
* @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
|
|
60
|
-
* (this is handled when swap is created (quoted), if you commit right after quoting, you can use skipChecks=true)
|
|
61
129
|
* @throws {Error} When in invalid state to commit the swap
|
|
62
130
|
*/
|
|
63
131
|
txsCommit(skipChecks?: boolean): Promise<T["TX"][]>;
|
|
64
132
|
/**
|
|
65
|
-
*
|
|
133
|
+
* Creates the escrow on the destination smart chain side, pre-locking the tokens from the intermediary (LP)
|
|
134
|
+
* into an escrow.
|
|
135
|
+
*
|
|
136
|
+
* @inheritDoc
|
|
66
137
|
*
|
|
67
|
-
* @param signer Signer to sign the transactions with, must be the same as used in the initialization
|
|
68
|
-
* @param abortSignal Abort signal to stop waiting for the transaction confirmation and abort
|
|
69
|
-
* @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
|
|
70
|
-
* (this is handled when swap is created (quoted), if you commit right after quoting, you can use skipChecks=true)
|
|
71
138
|
* @throws {Error} If invalid signer is provided that doesn't match the swap data
|
|
72
139
|
*/
|
|
73
140
|
abstract commit(signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, skipChecks?: boolean): Promise<string>;
|
|
74
|
-
|
|
75
|
-
|
|
141
|
+
/**
|
|
142
|
+
* Returns the transaction fee required for the claim transaction to settle the escrow on the destination
|
|
143
|
+
* smart chain
|
|
144
|
+
*/
|
|
145
|
+
getClaimNetworkFee(): Promise<TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>>;
|
|
146
|
+
/**
|
|
147
|
+
* @inheritDoc
|
|
148
|
+
*/
|
|
76
149
|
abstract txsClaim(signer?: T["Signer"]): Promise<T["TX"][]>;
|
|
77
150
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
* @param signer Signer to sign the transactions with, can also be different to the initializer
|
|
81
|
-
* @param abortSignal Abort signal to stop waiting for transaction confirmation
|
|
151
|
+
* @inheritDoc
|
|
82
152
|
*/
|
|
83
153
|
abstract claim(signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal): Promise<string>;
|
|
84
154
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* @param maxWaitTimeSeconds Maximum time in seconds to wait for the swap to be settled
|
|
88
|
-
* @param abortSignal AbortSignal
|
|
89
|
-
* @throws {Error} If swap is in invalid state (must be COMMIT)
|
|
90
|
-
* @returns {boolean} whether the swap was claimed in time or not
|
|
155
|
+
* @inheritDoc
|
|
91
156
|
*/
|
|
92
157
|
abstract waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
|
|
93
158
|
}
|