@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
|
@@ -10,9 +10,24 @@ export type IEscrowSelfInitSwapInit<T extends SwapData> = IEscrowSwapInit<T> & {
|
|
|
10
10
|
};
|
|
11
11
|
export declare function isIEscrowSelfInitSwapInit<T extends SwapData>(obj: any): obj is IEscrowSelfInitSwapInit<T>;
|
|
12
12
|
export type IEscrowSelfInitSwapDefinition<T extends ChainType, W extends IEscrowSwapWrapper<T, any>, S extends IEscrowSelfInitSwap<T>> = SwapTypeDefinition<T, W, S>;
|
|
13
|
+
/**
|
|
14
|
+
* Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives) where the
|
|
15
|
+
* user needs to initiate the escrow on the smart chain side
|
|
16
|
+
*
|
|
17
|
+
* @category Swaps
|
|
18
|
+
*/
|
|
13
19
|
export declare abstract class IEscrowSelfInitSwap<T extends ChainType = ChainType, D extends IEscrowSelfInitSwapDefinition<T, IEscrowSwapWrapper<T, D>, IEscrowSelfInitSwap<T, D, S>> = IEscrowSwapDefinition<T, IEscrowSwapWrapper<T, any>, IEscrowSelfInitSwap<T, any, any>>, S extends number = number> extends IEscrowSwap<T, D, S> {
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Fee rate to be used for the escrow initiation transaction
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
protected readonly feeRate: string;
|
|
25
|
+
/**
|
|
26
|
+
* Signature data received from the intermediary (LP) allowing the user
|
|
27
|
+
* to initiate the swap escrow
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
protected signatureData?: SignatureData;
|
|
16
31
|
protected constructor(wrapper: D["Wrapper"], obj: any);
|
|
17
32
|
protected constructor(wrapper: D["Wrapper"], swapInit: IEscrowSelfInitSwapInit<T["Data"]>);
|
|
18
33
|
/**
|
|
@@ -20,27 +35,52 @@ export declare abstract class IEscrowSelfInitSwap<T extends ChainType = ChainTyp
|
|
|
20
35
|
*
|
|
21
36
|
* @param intervalSeconds How often to check (in seconds), default to 5s
|
|
22
37
|
* @param abortSignal
|
|
23
|
-
* @
|
|
38
|
+
* @internal
|
|
24
39
|
*/
|
|
25
40
|
protected watchdogWaitTillSignatureExpiry(intervalSeconds?: number, abortSignal?: AbortSignal): Promise<void>;
|
|
26
41
|
/**
|
|
27
42
|
* Get the estimated smart chain fee of the commit transaction
|
|
43
|
+
* @internal
|
|
28
44
|
*/
|
|
29
45
|
protected getCommitFee(): Promise<bigint>;
|
|
30
46
|
/**
|
|
31
|
-
* Returns the transaction fee paid on the smart chain
|
|
47
|
+
* Returns the transaction fee paid on the smart chain side to initiate the escrow
|
|
32
48
|
*/
|
|
33
49
|
getSmartChainNetworkFee(): Promise<TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>>;
|
|
34
50
|
/**
|
|
35
|
-
* Checks if the initiator/sender has enough balance
|
|
51
|
+
* Checks if the initiator/sender has enough balance on the smart chain side
|
|
52
|
+
* to cover the transaction fee for processing the swap
|
|
36
53
|
*/
|
|
37
54
|
abstract hasEnoughForTxFees(): Promise<{
|
|
38
55
|
enoughBalance: boolean;
|
|
39
56
|
balance: TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
|
|
40
57
|
required: TokenAmount<T["ChainId"], SCToken<T["ChainId"]>, true>;
|
|
41
58
|
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Returns transactions for initiating (committing) the escrow on the smart chain side
|
|
61
|
+
*
|
|
62
|
+
* @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
|
|
63
|
+
* (this is handled on swap creation, if you commit right after quoting, you can use `skipChecks=true`)
|
|
64
|
+
*/
|
|
42
65
|
abstract txsCommit(skipChecks?: boolean): Promise<T["TX"][]>;
|
|
66
|
+
/**
|
|
67
|
+
* Initiates (commits) the escrow on the smart chain side
|
|
68
|
+
*
|
|
69
|
+
* @param _signer Signer to sign the transactions with, must be the same as used in the initialization
|
|
70
|
+
* @param abortSignal Abort signal
|
|
71
|
+
* @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
|
|
72
|
+
* (this is handled on swap creation, if you commit right after quoting, you can use `skipChecks=true`)
|
|
73
|
+
* @param onBeforeTxSent Callback called before the transactions are broadcasted
|
|
74
|
+
*/
|
|
43
75
|
abstract commit(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, skipChecks?: boolean, onBeforeTxSent?: (txId: string) => void): Promise<string>;
|
|
76
|
+
/**
|
|
77
|
+
* Waits till a swap is initiated (committed) on-chain, should be called after sending the commit
|
|
78
|
+
* transactions ({@link txsCommit}) manually to wait till the SDK processes the escrow
|
|
79
|
+
* initialization and updates the swap state accordingly
|
|
80
|
+
*
|
|
81
|
+
* @param abortSignal AbortSignal
|
|
82
|
+
*/
|
|
83
|
+
abstract waitTillCommited(abortSignal?: AbortSignal): Promise<void>;
|
|
44
84
|
/**
|
|
45
85
|
* Checks if the swap's quote is expired for good (i.e. the swap strictly cannot be committed on-chain anymore)
|
|
46
86
|
*/
|
|
@@ -48,6 +88,9 @@ export declare abstract class IEscrowSelfInitSwap<T extends ChainType = ChainTyp
|
|
|
48
88
|
/**
|
|
49
89
|
* Checks if the swap's quote is still valid
|
|
50
90
|
*/
|
|
51
|
-
|
|
91
|
+
_verifyQuoteValid(): Promise<boolean>;
|
|
92
|
+
/**
|
|
93
|
+
* @inheritDoc
|
|
94
|
+
*/
|
|
52
95
|
serialize(): any;
|
|
53
96
|
}
|
|
@@ -15,6 +15,12 @@ function isIEscrowSelfInitSwapInit(obj) {
|
|
|
15
15
|
(0, IEscrowSwap_1.isIEscrowSwapInit)(obj);
|
|
16
16
|
}
|
|
17
17
|
exports.isIEscrowSelfInitSwapInit = isIEscrowSelfInitSwapInit;
|
|
18
|
+
/**
|
|
19
|
+
* Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives) where the
|
|
20
|
+
* user needs to initiate the escrow on the smart chain side
|
|
21
|
+
*
|
|
22
|
+
* @category Swaps
|
|
23
|
+
*/
|
|
18
24
|
class IEscrowSelfInitSwap extends IEscrowSwap_1.IEscrowSwap {
|
|
19
25
|
constructor(wrapper, swapInitOrObj) {
|
|
20
26
|
super(wrapper, swapInitOrObj);
|
|
@@ -39,17 +45,17 @@ class IEscrowSelfInitSwap extends IEscrowSwap_1.IEscrowSwap {
|
|
|
39
45
|
*
|
|
40
46
|
* @param intervalSeconds How often to check (in seconds), default to 5s
|
|
41
47
|
* @param abortSignal
|
|
42
|
-
* @
|
|
48
|
+
* @internal
|
|
43
49
|
*/
|
|
44
50
|
async watchdogWaitTillSignatureExpiry(intervalSeconds, abortSignal) {
|
|
45
|
-
if (this.
|
|
51
|
+
if (this._data == null || this.signatureData == null)
|
|
46
52
|
throw new Error("Tried to await signature expiry but data or signature is null, invalid state?");
|
|
47
53
|
intervalSeconds ??= 5;
|
|
48
54
|
let expired = false;
|
|
49
55
|
while (!expired) {
|
|
50
56
|
await (0, TimeoutUtils_1.timeoutPromise)(intervalSeconds * 1000, abortSignal);
|
|
51
57
|
try {
|
|
52
|
-
expired = await this.wrapper.
|
|
58
|
+
expired = await this.wrapper._contract.isInitAuthorizationExpired(this._data, this.signatureData);
|
|
53
59
|
}
|
|
54
60
|
catch (e) {
|
|
55
61
|
this.logger.error("watchdogWaitTillSignatureExpiry(): Error when checking signature expiry: ", e);
|
|
@@ -62,18 +68,19 @@ class IEscrowSelfInitSwap extends IEscrowSwap_1.IEscrowSwap {
|
|
|
62
68
|
//// Amounts & fees
|
|
63
69
|
/**
|
|
64
70
|
* Get the estimated smart chain fee of the commit transaction
|
|
71
|
+
* @internal
|
|
65
72
|
*/
|
|
66
73
|
getCommitFee() {
|
|
67
|
-
return this.wrapper.
|
|
74
|
+
return this.wrapper._contract.getCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate);
|
|
68
75
|
}
|
|
69
76
|
/**
|
|
70
|
-
* Returns the transaction fee paid on the smart chain
|
|
77
|
+
* Returns the transaction fee paid on the smart chain side to initiate the escrow
|
|
71
78
|
*/
|
|
72
79
|
async getSmartChainNetworkFee() {
|
|
73
|
-
const swapContract = this.wrapper.
|
|
80
|
+
const swapContract = this.wrapper._contract;
|
|
74
81
|
return (0, TokenAmount_1.toTokenAmount)(await (swapContract.getRawCommitFee != null ?
|
|
75
82
|
swapContract.getRawCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate) :
|
|
76
|
-
swapContract.getCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate)), this.wrapper.
|
|
83
|
+
swapContract.getCommitFee(this._getInitiator(), this.getSwapData(), this.feeRate)), this.wrapper._getNativeToken(), this.wrapper._prices);
|
|
77
84
|
}
|
|
78
85
|
//////////////////////////////
|
|
79
86
|
//// Quote verification
|
|
@@ -81,18 +88,18 @@ class IEscrowSelfInitSwap extends IEscrowSwap_1.IEscrowSwap {
|
|
|
81
88
|
* Checks if the swap's quote is expired for good (i.e. the swap strictly cannot be committed on-chain anymore)
|
|
82
89
|
*/
|
|
83
90
|
async _verifyQuoteDefinitelyExpired() {
|
|
84
|
-
if (this.
|
|
91
|
+
if (this._data == null || this.signatureData == null)
|
|
85
92
|
throw new Error("data or signature data are null!");
|
|
86
|
-
return this.wrapper.
|
|
93
|
+
return this.wrapper._contract.isInitAuthorizationExpired(this._data, this.signatureData);
|
|
87
94
|
}
|
|
88
95
|
/**
|
|
89
96
|
* Checks if the swap's quote is still valid
|
|
90
97
|
*/
|
|
91
|
-
async
|
|
92
|
-
if (this.
|
|
98
|
+
async _verifyQuoteValid() {
|
|
99
|
+
if (this._data == null || this.signatureData == null)
|
|
93
100
|
throw new Error("data or signature data are null!");
|
|
94
101
|
try {
|
|
95
|
-
await this.wrapper.
|
|
102
|
+
await this.wrapper._contract.isValidInitAuthorization(this._getInitiator(), this._data, this.signatureData, this.feeRate);
|
|
96
103
|
return true;
|
|
97
104
|
}
|
|
98
105
|
catch (e) {
|
|
@@ -102,6 +109,9 @@ class IEscrowSelfInitSwap extends IEscrowSwap_1.IEscrowSwap {
|
|
|
102
109
|
throw e;
|
|
103
110
|
}
|
|
104
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* @inheritDoc
|
|
114
|
+
*/
|
|
105
115
|
serialize() {
|
|
106
116
|
return {
|
|
107
117
|
...super.serialize(),
|
|
@@ -8,43 +8,74 @@ export type IEscrowSwapInit<T extends SwapData> = ISwapInit & {
|
|
|
8
8
|
data?: T;
|
|
9
9
|
};
|
|
10
10
|
export declare function isIEscrowSwapInit<T extends SwapData>(obj: any): obj is IEscrowSwapInit<T>;
|
|
11
|
+
/**
|
|
12
|
+
* Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives)
|
|
13
|
+
*
|
|
14
|
+
* @category Swaps
|
|
15
|
+
*/
|
|
11
16
|
export declare abstract class IEscrowSwap<T extends ChainType = ChainType, D extends IEscrowSwapDefinition<T, IEscrowSwapWrapper<T, D>, IEscrowSwap<T, D, S>> = IEscrowSwapDefinition<T, IEscrowSwapWrapper<T, any>, IEscrowSwap<T, any, any>>, S extends number = number> extends ISwap<T, D, S> {
|
|
12
|
-
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
_data?: T["Data"];
|
|
13
21
|
/**
|
|
14
22
|
* Transaction IDs for the swap on the smart chain side
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
_commitTxId?: string;
|
|
26
|
+
/**
|
|
27
|
+
* @internal
|
|
15
28
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
29
|
+
_refundTxId?: string;
|
|
30
|
+
/**
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
_claimTxId?: string;
|
|
19
34
|
protected constructor(wrapper: D["Wrapper"], obj: any);
|
|
20
35
|
protected constructor(wrapper: D["Wrapper"], swapInit: IEscrowSwapInit<T["Data"]>);
|
|
36
|
+
/**
|
|
37
|
+
* Returns the swap escrow data for this swap
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
21
41
|
protected abstract getSwapData(): T["Data"];
|
|
22
42
|
/**
|
|
23
43
|
* Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
|
|
24
44
|
* lightning swaps the identifier hash is used instead of claim data hash
|
|
45
|
+
*
|
|
46
|
+
* @internal
|
|
25
47
|
*/
|
|
26
48
|
protected getIdentifierHash(): Buffer;
|
|
27
49
|
/**
|
|
28
50
|
* Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
|
|
29
51
|
* lightning swaps the identifier hash is used instead of claim data hash
|
|
52
|
+
*
|
|
53
|
+
* @internal
|
|
30
54
|
*/
|
|
31
55
|
protected getIdentifierHashString(): string;
|
|
56
|
+
/**
|
|
57
|
+
* @inheritDoc
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
32
60
|
_getEscrowHash(): string | null;
|
|
33
61
|
/**
|
|
34
62
|
* Returns the escrow hash - i.e. hash of the escrow data
|
|
35
63
|
*/
|
|
36
64
|
getEscrowHash(): string | null;
|
|
37
65
|
/**
|
|
38
|
-
* Returns the claim data hash - i.e. hash passed to the claim handler
|
|
66
|
+
* Returns the claim data hash specifying the claim path of the escrow - i.e. hash passed to the claim handler
|
|
39
67
|
*/
|
|
40
68
|
getClaimHash(): string;
|
|
69
|
+
/**
|
|
70
|
+
* @inheritDoc
|
|
71
|
+
*/
|
|
41
72
|
getId(): string;
|
|
42
73
|
/**
|
|
43
74
|
* Periodically checks the chain to see whether the swap is committed
|
|
44
75
|
*
|
|
45
76
|
* @param intervalSeconds How often to check (in seconds), default to 5s
|
|
46
77
|
* @param abortSignal
|
|
47
|
-
* @
|
|
78
|
+
* @internal
|
|
48
79
|
*/
|
|
49
80
|
protected watchdogWaitTillCommited(intervalSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
|
|
50
81
|
/**
|
|
@@ -52,19 +83,41 @@ export declare abstract class IEscrowSwap<T extends ChainType = ChainType, D ext
|
|
|
52
83
|
*
|
|
53
84
|
* @param intervalSeconds How often to check (in seconds), default to 5s
|
|
54
85
|
* @param abortSignal
|
|
55
|
-
* @
|
|
86
|
+
* @internal
|
|
56
87
|
*/
|
|
57
88
|
protected watchdogWaitTillResult(intervalSeconds?: number, abortSignal?: AbortSignal): Promise<SwapPaidState | SwapExpiredState | SwapNotCommitedState>;
|
|
58
89
|
/**
|
|
59
|
-
*
|
|
90
|
+
* Whether on-chain state should be fetched for this swap
|
|
91
|
+
* @internal
|
|
60
92
|
*/
|
|
61
|
-
abstract
|
|
93
|
+
abstract _shouldFetchOnchainState(): boolean;
|
|
62
94
|
/**
|
|
63
|
-
*
|
|
95
|
+
* Whether expiration status of the swap quote should be checked for this swap
|
|
96
|
+
* @internal
|
|
64
97
|
*/
|
|
65
|
-
abstract verifyQuoteValid(): Promise<boolean>;
|
|
66
|
-
abstract _shouldFetchCommitStatus(): boolean;
|
|
67
98
|
abstract _shouldFetchExpiryStatus(): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* @inheritDoc
|
|
101
|
+
*
|
|
102
|
+
* @param save Whether to save the new swap state or not
|
|
103
|
+
* @param quoteDefinitelyExpired Optionally pass whether the quote is definitely expired from a batch pre-fetch,
|
|
104
|
+
* fetched on-demand if not provided
|
|
105
|
+
* @param commitStatus Optionally pass the quote on-chain state from a batch pre-fetch, fetched on-demand if
|
|
106
|
+
* not provided
|
|
107
|
+
*
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
68
110
|
abstract _sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState): Promise<boolean>;
|
|
111
|
+
/**
|
|
112
|
+
* Forcibly overrides current swap state from fetched on-chain swap state
|
|
113
|
+
*
|
|
114
|
+
* @param commitStatus Swap state fetched from the smart chain
|
|
115
|
+
*
|
|
116
|
+
* @internal
|
|
117
|
+
*/
|
|
118
|
+
abstract _forciblySetOnchainState(commitStatus: SwapCommitState): Promise<boolean>;
|
|
119
|
+
/**
|
|
120
|
+
* @inheritDoc
|
|
121
|
+
*/
|
|
69
122
|
serialize(): any;
|
|
70
123
|
}
|
|
@@ -11,18 +11,23 @@ function isIEscrowSwapInit(obj) {
|
|
|
11
11
|
(0, ISwap_1.isISwapInit)(obj);
|
|
12
12
|
}
|
|
13
13
|
exports.isIEscrowSwapInit = isIEscrowSwapInit;
|
|
14
|
+
/**
|
|
15
|
+
* Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives)
|
|
16
|
+
*
|
|
17
|
+
* @category Swaps
|
|
18
|
+
*/
|
|
14
19
|
class IEscrowSwap extends ISwap_1.ISwap {
|
|
15
20
|
constructor(wrapper, swapInitOrObj) {
|
|
16
21
|
super(wrapper, swapInitOrObj);
|
|
17
22
|
if (isIEscrowSwapInit(swapInitOrObj)) {
|
|
18
|
-
this.
|
|
23
|
+
this._data = swapInitOrObj.data;
|
|
19
24
|
}
|
|
20
25
|
else {
|
|
21
26
|
if (swapInitOrObj.data != null)
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
27
|
+
this._data = new wrapper._swapDataDeserializer(swapInitOrObj.data);
|
|
28
|
+
this._commitTxId = swapInitOrObj.commitTxId;
|
|
29
|
+
this._claimTxId = swapInitOrObj.claimTxId;
|
|
30
|
+
this._refundTxId = swapInitOrObj.refundTxId;
|
|
26
31
|
}
|
|
27
32
|
}
|
|
28
33
|
//////////////////////////////
|
|
@@ -30,23 +35,31 @@ class IEscrowSwap extends ISwap_1.ISwap {
|
|
|
30
35
|
/**
|
|
31
36
|
* Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
|
|
32
37
|
* lightning swaps the identifier hash is used instead of claim data hash
|
|
38
|
+
*
|
|
39
|
+
* @internal
|
|
33
40
|
*/
|
|
34
41
|
getIdentifierHash() {
|
|
35
42
|
const claimHashBuffer = buffer_1.Buffer.from(this.getClaimHash(), "hex");
|
|
36
|
-
if (this.
|
|
43
|
+
if (this._randomNonce == null)
|
|
37
44
|
return claimHashBuffer;
|
|
38
|
-
return buffer_1.Buffer.concat([claimHashBuffer, buffer_1.Buffer.from(this.
|
|
45
|
+
return buffer_1.Buffer.concat([claimHashBuffer, buffer_1.Buffer.from(this._randomNonce, "hex")]);
|
|
39
46
|
}
|
|
40
47
|
/**
|
|
41
48
|
* Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
|
|
42
49
|
* lightning swaps the identifier hash is used instead of claim data hash
|
|
50
|
+
*
|
|
51
|
+
* @internal
|
|
43
52
|
*/
|
|
44
53
|
getIdentifierHashString() {
|
|
45
54
|
const identifierHash = this.getIdentifierHash();
|
|
46
55
|
return identifierHash.toString("hex");
|
|
47
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* @inheritDoc
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
48
61
|
_getEscrowHash() {
|
|
49
|
-
return this.
|
|
62
|
+
return this._data?.getEscrowHash() ?? null;
|
|
50
63
|
}
|
|
51
64
|
/**
|
|
52
65
|
* Returns the escrow hash - i.e. hash of the escrow data
|
|
@@ -55,11 +68,14 @@ class IEscrowSwap extends ISwap_1.ISwap {
|
|
|
55
68
|
return this._getEscrowHash();
|
|
56
69
|
}
|
|
57
70
|
/**
|
|
58
|
-
* Returns the claim data hash - i.e. hash passed to the claim handler
|
|
71
|
+
* Returns the claim data hash specifying the claim path of the escrow - i.e. hash passed to the claim handler
|
|
59
72
|
*/
|
|
60
73
|
getClaimHash() {
|
|
61
74
|
return this.getSwapData().getClaimHash();
|
|
62
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* @inheritDoc
|
|
78
|
+
*/
|
|
63
79
|
getId() {
|
|
64
80
|
return this.getIdentifierHashString();
|
|
65
81
|
}
|
|
@@ -70,17 +86,17 @@ class IEscrowSwap extends ISwap_1.ISwap {
|
|
|
70
86
|
*
|
|
71
87
|
* @param intervalSeconds How often to check (in seconds), default to 5s
|
|
72
88
|
* @param abortSignal
|
|
73
|
-
* @
|
|
89
|
+
* @internal
|
|
74
90
|
*/
|
|
75
91
|
async watchdogWaitTillCommited(intervalSeconds, abortSignal) {
|
|
76
|
-
if (this.
|
|
92
|
+
if (this._data == null)
|
|
77
93
|
throw new Error("Tried to await commitment but data is null, invalid state?");
|
|
78
94
|
intervalSeconds ??= 5;
|
|
79
95
|
let status = { type: base_1.SwapCommitStateType.NOT_COMMITED };
|
|
80
96
|
while (status?.type === base_1.SwapCommitStateType.NOT_COMMITED) {
|
|
81
97
|
await (0, TimeoutUtils_1.timeoutPromise)(intervalSeconds * 1000, abortSignal);
|
|
82
98
|
try {
|
|
83
|
-
status = await this.wrapper.
|
|
99
|
+
status = await this.wrapper._contract.getCommitStatus(this._getInitiator(), this._data);
|
|
84
100
|
if (status?.type === base_1.SwapCommitStateType.NOT_COMMITED &&
|
|
85
101
|
await this._verifyQuoteDefinitelyExpired())
|
|
86
102
|
return false;
|
|
@@ -98,17 +114,17 @@ class IEscrowSwap extends ISwap_1.ISwap {
|
|
|
98
114
|
*
|
|
99
115
|
* @param intervalSeconds How often to check (in seconds), default to 5s
|
|
100
116
|
* @param abortSignal
|
|
101
|
-
* @
|
|
117
|
+
* @internal
|
|
102
118
|
*/
|
|
103
119
|
async watchdogWaitTillResult(intervalSeconds, abortSignal) {
|
|
104
|
-
if (this.
|
|
120
|
+
if (this._data == null)
|
|
105
121
|
throw new Error("Tried to await result but data is null, invalid state?");
|
|
106
122
|
intervalSeconds ??= 5;
|
|
107
123
|
let status = { type: base_1.SwapCommitStateType.COMMITED };
|
|
108
124
|
while (status?.type === base_1.SwapCommitStateType.COMMITED || status?.type === base_1.SwapCommitStateType.REFUNDABLE) {
|
|
109
125
|
await (0, TimeoutUtils_1.timeoutPromise)(intervalSeconds * 1000, abortSignal);
|
|
110
126
|
try {
|
|
111
|
-
status = await this.wrapper.
|
|
127
|
+
status = await this.wrapper._contract.getCommitStatus(this._getInitiator(), this._data);
|
|
112
128
|
}
|
|
113
129
|
catch (e) {
|
|
114
130
|
this.logger.error("watchdogWaitTillResult(): Error when fetching commit status: ", e);
|
|
@@ -118,13 +134,16 @@ class IEscrowSwap extends ISwap_1.ISwap {
|
|
|
118
134
|
abortSignal.throwIfAborted();
|
|
119
135
|
return status;
|
|
120
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* @inheritDoc
|
|
139
|
+
*/
|
|
121
140
|
serialize() {
|
|
122
141
|
return {
|
|
123
142
|
...super.serialize(),
|
|
124
|
-
data: this.
|
|
125
|
-
commitTxId: this.
|
|
126
|
-
claimTxId: this.
|
|
127
|
-
refundTxId: this.
|
|
143
|
+
data: this._data != null ? this._data.serialize() : null,
|
|
144
|
+
commitTxId: this._commitTxId,
|
|
145
|
+
claimTxId: this._claimTxId,
|
|
146
|
+
refundTxId: this._refundTxId
|
|
128
147
|
};
|
|
129
148
|
}
|
|
130
149
|
;
|
|
@@ -10,10 +10,21 @@ import { SwapType } from "../../enums/SwapType";
|
|
|
10
10
|
import { IEscrowSwap } from "./IEscrowSwap";
|
|
11
11
|
import { Intermediary } from "../../intermediaries/Intermediary";
|
|
12
12
|
export type IEscrowSwapDefinition<T extends ChainType, W extends IEscrowSwapWrapper<T, any>, S extends IEscrowSwap<T>> = SwapTypeDefinition<T, W, S>;
|
|
13
|
+
/**
|
|
14
|
+
* Base class for wrappers of escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives)
|
|
15
|
+
*
|
|
16
|
+
* @category Swaps
|
|
17
|
+
*/
|
|
13
18
|
export declare abstract class IEscrowSwapWrapper<T extends ChainType, D extends IEscrowSwapDefinition<T, IEscrowSwapWrapper<T, D>, IEscrowSwap<T, D>>, O extends ISwapWrapperOptions = ISwapWrapperOptions> extends ISwapWrapper<T, D, O> {
|
|
14
19
|
readonly abstract TYPE: SwapType;
|
|
15
|
-
|
|
16
|
-
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
readonly _contract: T["Contract"];
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
readonly _swapDataDeserializer: new (data: any) => T["Data"];
|
|
17
28
|
constructor(chainIdentifier: string, unifiedStorage: UnifiedSwapStorage<T>, unifiedChainEvents: UnifiedSwapEventListener<T>, chain: T["ChainInterface"], contract: T["Contract"], prices: ISwapPrice, tokens: WrapperCtorTokens, swapDataDeserializer: new (data: any) => T["Data"], options: O, events?: EventEmitter<{
|
|
18
29
|
swapState: [ISwap];
|
|
19
30
|
}>);
|
|
@@ -21,8 +32,9 @@ export declare abstract class IEscrowSwapWrapper<T extends ChainType, D extends
|
|
|
21
32
|
* Pre-fetches signature verification data from the server's pre-sent promise, doesn't throw, instead returns null
|
|
22
33
|
*
|
|
23
34
|
* @param signDataPrefetch Promise that resolves when we receive "signDataPrefetch" from the LP in streaming mode
|
|
24
|
-
* @protected
|
|
25
35
|
* @returns Pre-fetched signature verification data or null if failed
|
|
36
|
+
*
|
|
37
|
+
* @internal
|
|
26
38
|
*/
|
|
27
39
|
protected preFetchSignData(signDataPrefetch: Promise<any | null>): Promise<T["PreFetchVerification"] | undefined>;
|
|
28
40
|
/**
|
|
@@ -34,47 +46,65 @@ export declare abstract class IEscrowSwapWrapper<T extends ChainType, D extends
|
|
|
34
46
|
* @param feeRatePromise Pre-fetched fee rate promise
|
|
35
47
|
* @param preFetchSignatureVerificationData Pre-fetched signature verification data
|
|
36
48
|
* @param abortSignal
|
|
37
|
-
* @protected
|
|
38
49
|
* @returns Swap initialization signature expiry
|
|
39
50
|
* @throws {SignatureVerificationError} when swap init signature is invalid
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
40
53
|
*/
|
|
41
54
|
protected verifyReturnedSignature(initiator: string, data: T["Data"], signature: SignatureData, feeRatePromise: Promise<any>, preFetchSignatureVerificationData: Promise<any>, abortSignal?: AbortSignal): Promise<number>;
|
|
42
55
|
/**
|
|
43
56
|
* Processes InitializeEvent for a given swap
|
|
44
57
|
* @param swap
|
|
45
58
|
* @param event
|
|
46
|
-
* @protected
|
|
47
59
|
* @returns Whether the swap was updated/changed
|
|
60
|
+
*
|
|
61
|
+
* @internal
|
|
48
62
|
*/
|
|
49
63
|
protected abstract processEventInitialize(swap: D["Swap"], event: InitializeEvent<T["Data"]>): Promise<boolean>;
|
|
50
64
|
/**
|
|
51
65
|
* Processes ClaimEvent for a given swap
|
|
52
66
|
* @param swap
|
|
53
67
|
* @param event
|
|
54
|
-
* @protected
|
|
55
68
|
* @returns Whether the swap was updated/changed
|
|
69
|
+
*
|
|
70
|
+
* @internal
|
|
56
71
|
*/
|
|
57
72
|
protected abstract processEventClaim(swap: D["Swap"], event: ClaimEvent<T["Data"]>): Promise<boolean>;
|
|
58
73
|
/**
|
|
59
74
|
* Processes RefundEvent for a given swap
|
|
60
75
|
* @param swap
|
|
61
76
|
* @param event
|
|
62
|
-
* @protected
|
|
63
77
|
* @returns Whether the swap was updated/changed
|
|
78
|
+
*
|
|
79
|
+
* @internal
|
|
64
80
|
*/
|
|
65
81
|
protected abstract processEventRefund(swap: D["Swap"], event: RefundEvent<T["Data"]>): Promise<boolean>;
|
|
66
82
|
/**
|
|
67
83
|
* Processes a single SC on-chain event
|
|
68
|
-
* @private
|
|
69
84
|
* @param event
|
|
70
85
|
* @param swap
|
|
86
|
+
*
|
|
87
|
+
* @internal
|
|
71
88
|
*/
|
|
72
89
|
protected processEvent(event: SwapEvent<T["Data"]>, swap: D["Swap"]): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* @inheritDoc
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
73
94
|
protected _checkPastSwaps(pastSwaps: D["Swap"][]): Promise<{
|
|
74
95
|
changedSwaps: D["Swap"][];
|
|
75
96
|
removeSwaps: D["Swap"][];
|
|
76
97
|
}>;
|
|
77
|
-
|
|
98
|
+
/**
|
|
99
|
+
* Recovers a swap from smart chain on-chain data, please note that not all values for the recovered
|
|
100
|
+
* swaps might be populated, as some data is purely off-chain and can never be recovered purely
|
|
101
|
+
* from on-chain data.
|
|
102
|
+
*
|
|
103
|
+
* @param init Swap escrow initialization transaction and swap data
|
|
104
|
+
* @param state Current on-chain state of the swap
|
|
105
|
+
* @param lp Intermediary (LP) used as a counterparty for the swap
|
|
106
|
+
*/
|
|
107
|
+
abstract recoverFromSwapDataAndState(init: {
|
|
78
108
|
data: T["Data"];
|
|
79
109
|
getInitTxId: () => Promise<string>;
|
|
80
110
|
getTxBlock: () => Promise<{
|