@atomiqlabs/sdk 8.6.6 → 8.6.7

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.
Files changed (225) hide show
  1. package/dist/SmartChainAssets.d.ts +181 -181
  2. package/dist/SmartChainAssets.js +181 -181
  3. package/dist/bitcoin/coinselect2/accumulative.d.ts +6 -6
  4. package/dist/bitcoin/coinselect2/accumulative.js +52 -51
  5. package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -6
  6. package/dist/bitcoin/coinselect2/blackjack.js +38 -37
  7. package/dist/bitcoin/coinselect2/index.d.ts +19 -17
  8. package/dist/bitcoin/coinselect2/index.js +69 -69
  9. package/dist/bitcoin/coinselect2/utils.d.ts +77 -75
  10. package/dist/bitcoin/coinselect2/utils.js +123 -123
  11. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +130 -128
  12. package/dist/bitcoin/wallet/BitcoinWallet.js +322 -322
  13. package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +78 -78
  14. package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -20
  15. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +101 -99
  16. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +176 -176
  17. package/dist/enums/FeeType.d.ts +15 -15
  18. package/dist/enums/FeeType.js +19 -19
  19. package/dist/enums/SwapAmountType.d.ts +15 -15
  20. package/dist/enums/SwapAmountType.js +19 -19
  21. package/dist/enums/SwapDirection.d.ts +15 -15
  22. package/dist/enums/SwapDirection.js +19 -19
  23. package/dist/enums/SwapSide.d.ts +15 -15
  24. package/dist/enums/SwapSide.js +19 -19
  25. package/dist/enums/SwapType.d.ts +75 -75
  26. package/dist/enums/SwapType.js +79 -79
  27. package/dist/errors/IntermediaryError.d.ts +13 -13
  28. package/dist/errors/IntermediaryError.js +27 -27
  29. package/dist/errors/RequestError.d.ts +32 -32
  30. package/dist/errors/RequestError.js +54 -54
  31. package/dist/errors/UserError.d.ts +8 -8
  32. package/dist/errors/UserError.js +16 -16
  33. package/dist/events/UnifiedSwapEventListener.d.ts +23 -23
  34. package/dist/events/UnifiedSwapEventListener.js +130 -130
  35. package/dist/http/HttpUtils.d.ts +27 -27
  36. package/dist/http/HttpUtils.js +91 -90
  37. package/dist/http/paramcoders/IParamReader.d.ts +8 -8
  38. package/dist/http/paramcoders/IParamReader.js +2 -2
  39. package/dist/http/paramcoders/ParamDecoder.d.ts +44 -42
  40. package/dist/http/paramcoders/ParamDecoder.js +137 -137
  41. package/dist/http/paramcoders/ParamEncoder.d.ts +20 -18
  42. package/dist/http/paramcoders/ParamEncoder.js +36 -36
  43. package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
  44. package/dist/http/paramcoders/SchemaVerifier.js +145 -145
  45. package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
  46. package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
  47. package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -11
  48. package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
  49. package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -16
  50. package/dist/http/paramcoders/client/StreamingFetchPromise.js +174 -173
  51. package/dist/index.d.ts +85 -85
  52. package/dist/index.js +158 -158
  53. package/dist/intermediaries/Intermediary.d.ts +157 -157
  54. package/dist/intermediaries/Intermediary.js +142 -142
  55. package/dist/intermediaries/IntermediaryDiscovery.d.ts +199 -198
  56. package/dist/intermediaries/IntermediaryDiscovery.js +406 -406
  57. package/dist/intermediaries/apis/IntermediaryAPI.d.ts +439 -437
  58. package/dist/intermediaries/apis/IntermediaryAPI.js +603 -603
  59. package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
  60. package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
  61. package/dist/lnurl/LNURL.d.ts +102 -102
  62. package/dist/lnurl/LNURL.js +321 -321
  63. package/dist/prices/RedundantSwapPrice.d.ts +110 -110
  64. package/dist/prices/RedundantSwapPrice.js +222 -222
  65. package/dist/prices/SingleSwapPrice.d.ts +34 -34
  66. package/dist/prices/SingleSwapPrice.js +44 -44
  67. package/dist/prices/SwapPriceWithChain.d.ts +107 -107
  68. package/dist/prices/SwapPriceWithChain.js +128 -128
  69. package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
  70. package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
  71. package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
  72. package/dist/prices/abstract/IPriceProvider.js +74 -74
  73. package/dist/prices/abstract/ISwapPrice.d.ts +168 -168
  74. package/dist/prices/abstract/ISwapPrice.js +279 -279
  75. package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
  76. package/dist/prices/providers/BinancePriceProvider.js +30 -30
  77. package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
  78. package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
  79. package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
  80. package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
  81. package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
  82. package/dist/prices/providers/CustomPriceProvider.js +35 -35
  83. package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
  84. package/dist/prices/providers/KrakenPriceProvider.js +45 -45
  85. package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
  86. package/dist/prices/providers/OKXPriceProvider.js +29 -29
  87. package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
  88. package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
  89. package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
  90. package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
  91. package/dist/storage/IUnifiedStorage.d.ts +85 -85
  92. package/dist/storage/IUnifiedStorage.js +2 -2
  93. package/dist/storage/UnifiedSwapStorage.d.ts +114 -114
  94. package/dist/storage/UnifiedSwapStorage.js +116 -116
  95. package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
  96. package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
  97. package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
  98. package/dist/storage-browser/LocalStorageManager.js +93 -93
  99. package/dist/swapper/Swapper.d.ts +687 -686
  100. package/dist/swapper/Swapper.js +1603 -1603
  101. package/dist/swapper/SwapperFactory.d.ts +135 -135
  102. package/dist/swapper/SwapperFactory.js +162 -162
  103. package/dist/swapper/SwapperUtils.d.ts +200 -200
  104. package/dist/swapper/SwapperUtils.js +467 -467
  105. package/dist/swapper/SwapperWithChain.d.ts +404 -404
  106. package/dist/swapper/SwapperWithChain.js +469 -469
  107. package/dist/swapper/SwapperWithSigner.d.ts +322 -322
  108. package/dist/swapper/SwapperWithSigner.js +318 -318
  109. package/dist/swaps/IAddressSwap.d.ts +22 -22
  110. package/dist/swaps/IAddressSwap.js +14 -13
  111. package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
  112. package/dist/swaps/IBTCWalletSwap.js +18 -17
  113. package/dist/swaps/IClaimableSwap.d.ts +49 -49
  114. package/dist/swaps/IClaimableSwap.js +15 -14
  115. package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
  116. package/dist/swaps/IClaimableSwapWrapper.js +2 -2
  117. package/dist/swaps/IRefundableSwap.d.ts +43 -43
  118. package/dist/swaps/IRefundableSwap.js +14 -13
  119. package/dist/swaps/ISwap.d.ts +387 -386
  120. package/dist/swaps/ISwap.js +346 -346
  121. package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
  122. package/dist/swaps/ISwapWithGasDrop.js +12 -11
  123. package/dist/swaps/ISwapWrapper.d.ts +285 -283
  124. package/dist/swaps/ISwapWrapper.js +353 -353
  125. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
  126. package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
  127. package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +135 -133
  128. package/dist/swaps/escrow_swaps/IEscrowSwap.js +169 -169
  129. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +115 -114
  130. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +134 -134
  131. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +101 -98
  132. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +130 -130
  133. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
  134. package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
  135. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +58 -58
  136. package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +78 -78
  137. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +531 -529
  138. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
  139. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +184 -181
  140. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +418 -418
  141. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +583 -581
  142. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
  143. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +228 -225
  144. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +506 -506
  145. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +458 -458
  146. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1126 -1126
  147. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +191 -190
  148. package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +378 -378
  149. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +403 -403
  150. package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +924 -924
  151. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +62 -62
  152. package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +112 -112
  153. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +127 -125
  154. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
  155. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +242 -241
  156. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +520 -520
  157. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
  158. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
  159. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +128 -127
  160. package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +278 -278
  161. package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +630 -630
  162. package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1443 -1443
  163. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +214 -213
  164. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +756 -756
  165. package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +261 -261
  166. package/dist/swaps/trusted/ln/LnForGasSwap.js +511 -511
  167. package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
  168. package/dist/swaps/trusted/ln/LnForGasWrapper.js +82 -82
  169. package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +342 -342
  170. package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +715 -715
  171. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +69 -68
  172. package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +92 -92
  173. package/dist/types/AmountData.d.ts +10 -10
  174. package/dist/types/AmountData.js +2 -2
  175. package/dist/types/CustomPriceFunction.d.ts +11 -11
  176. package/dist/types/CustomPriceFunction.js +2 -2
  177. package/dist/types/PriceInfoType.d.ts +28 -28
  178. package/dist/types/PriceInfoType.js +57 -56
  179. package/dist/types/SwapExecutionAction.d.ts +88 -88
  180. package/dist/types/SwapExecutionAction.js +2 -2
  181. package/dist/types/SwapStateInfo.d.ts +5 -5
  182. package/dist/types/SwapStateInfo.js +2 -2
  183. package/dist/types/SwapWithSigner.d.ts +17 -17
  184. package/dist/types/SwapWithSigner.js +43 -42
  185. package/dist/types/Token.d.ts +99 -99
  186. package/dist/types/Token.js +76 -76
  187. package/dist/types/TokenAmount.d.ts +69 -69
  188. package/dist/types/TokenAmount.js +60 -59
  189. package/dist/types/fees/Fee.d.ts +50 -50
  190. package/dist/types/fees/Fee.js +2 -2
  191. package/dist/types/fees/FeeBreakdown.d.ts +11 -11
  192. package/dist/types/fees/FeeBreakdown.js +2 -2
  193. package/dist/types/fees/PercentagePPM.d.ts +17 -17
  194. package/dist/types/fees/PercentagePPM.js +18 -17
  195. package/dist/types/lnurl/LNURLPay.d.ts +61 -61
  196. package/dist/types/lnurl/LNURLPay.js +31 -30
  197. package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
  198. package/dist/types/lnurl/LNURLWithdraw.js +27 -26
  199. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
  200. package/dist/types/wallets/LightningInvoiceCreateService.js +15 -14
  201. package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
  202. package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
  203. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
  204. package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
  205. package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
  206. package/dist/utils/AutomaticClockDriftCorrection.js +70 -69
  207. package/dist/utils/BitcoinUtils.d.ts +14 -12
  208. package/dist/utils/BitcoinUtils.js +102 -101
  209. package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
  210. package/dist/utils/BitcoinWalletUtils.js +14 -13
  211. package/dist/utils/Logger.d.ts +7 -7
  212. package/dist/utils/Logger.js +12 -11
  213. package/dist/utils/RetryUtils.d.ts +22 -22
  214. package/dist/utils/RetryUtils.js +67 -66
  215. package/dist/utils/SwapUtils.d.ts +88 -88
  216. package/dist/utils/SwapUtils.js +72 -72
  217. package/dist/utils/TimeoutUtils.d.ts +17 -17
  218. package/dist/utils/TimeoutUtils.js +55 -54
  219. package/dist/utils/TokenUtils.d.ts +19 -19
  220. package/dist/utils/TokenUtils.js +37 -36
  221. package/dist/utils/TypeUtils.d.ts +7 -7
  222. package/dist/utils/TypeUtils.js +2 -2
  223. package/dist/utils/Utils.d.ts +58 -56
  224. package/dist/utils/Utils.js +194 -193
  225. package/package.json +1 -1
@@ -1,133 +1,135 @@
1
- import { ISwap, ISwapInit } from "../ISwap";
2
- import { ChainType, SwapCommitState, SwapData, SwapExpiredState, SwapNotCommitedState, SwapPaidState } from "@atomiqlabs/base";
3
- import { IEscrowSwapDefinition, IEscrowSwapWrapper } from "./IEscrowSwapWrapper";
4
- import { Buffer } from "buffer";
5
- export type IEscrowSwapInit<T extends SwapData> = ISwapInit & {
6
- data?: T;
7
- };
8
- export declare function isIEscrowSwapInit<T extends SwapData>(obj: any): obj is IEscrowSwapInit<T>;
9
- /**
10
- * Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives)
11
- *
12
- * @category Swaps/Abstract
13
- */
14
- 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> {
15
- /**
16
- * @internal
17
- */
18
- _data?: T["Data"];
19
- /**
20
- * Transaction IDs for the swap on the smart chain side
21
- * @internal
22
- */
23
- _commitTxId?: string;
24
- /**
25
- * @internal
26
- */
27
- _refundTxId?: string;
28
- /**
29
- * @internal
30
- */
31
- _claimTxId?: string;
32
- protected constructor(wrapper: D["Wrapper"], obj: any);
33
- protected constructor(wrapper: D["Wrapper"], swapInit: IEscrowSwapInit<T["Data"]>);
34
- /**
35
- * Returns the swap escrow data for this swap
36
- *
37
- * @internal
38
- */
39
- protected abstract getSwapData(): T["Data"];
40
- /**
41
- * Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
42
- * lightning swaps the identifier hash is used instead of claim data hash
43
- *
44
- * @internal
45
- */
46
- protected getIdentifierHash(): Buffer;
47
- /**
48
- * Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
49
- * lightning swaps the identifier hash is used instead of claim data hash
50
- *
51
- * @internal
52
- */
53
- protected getIdentifierHashString(): string;
54
- /**
55
- * @inheritDoc
56
- * @internal
57
- */
58
- _getEscrowHash(): string | null;
59
- /**
60
- * Returns the escrow hash - i.e. hash of the escrow data
61
- */
62
- getEscrowHash(): string | null;
63
- /**
64
- * Returns the claim data hash specifying the claim path of the escrow - i.e. hash passed to the claim handler
65
- */
66
- getClaimHash(): string;
67
- /**
68
- * @inheritDoc
69
- */
70
- getId(): string;
71
- /**
72
- * Returns the smart chain transaction ID of the tx that initiated the escrow
73
- */
74
- getEscrowInitTxId(): string | undefined;
75
- /**
76
- * Returns the smart chain transaction ID of the tx that claimed (settled) the escrow
77
- */
78
- getEscrowClaimTxId(): string | undefined;
79
- /**
80
- * Returns the smart chain transaction ID of the tx that refunded the escrow
81
- */
82
- getEscrowRefundTxId(): string | undefined;
83
- /**
84
- * Periodically checks the chain to see whether the swap is committed
85
- *
86
- * @param intervalSeconds How often to check (in seconds), default to 5s
87
- * @param abortSignal
88
- * @internal
89
- */
90
- protected watchdogWaitTillCommited(intervalSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
91
- /**
92
- * Periodically checks the chain to see whether the swap was finished (claimed or refunded)
93
- *
94
- * @param intervalSeconds How often to check (in seconds), default to 5s
95
- * @param abortSignal
96
- * @internal
97
- */
98
- protected watchdogWaitTillResult(intervalSeconds?: number, abortSignal?: AbortSignal): Promise<SwapPaidState | SwapExpiredState | SwapNotCommitedState>;
99
- /**
100
- * Whether on-chain state should be fetched for this swap
101
- * @internal
102
- */
103
- abstract _shouldFetchOnchainState(): boolean;
104
- /**
105
- * Whether expiration status of the swap quote should be checked for this swap
106
- * @internal
107
- */
108
- abstract _shouldFetchExpiryStatus(): boolean;
109
- /**
110
- * @inheritDoc
111
- *
112
- * @param save Whether to save the new swap state or not
113
- * @param quoteDefinitelyExpired Optionally pass whether the quote is definitely expired from a batch pre-fetch,
114
- * fetched on-demand if not provided
115
- * @param commitStatus Optionally pass the quote on-chain state from a batch pre-fetch, fetched on-demand if
116
- * not provided
117
- *
118
- * @internal
119
- */
120
- abstract _sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState): Promise<boolean>;
121
- /**
122
- * Forcibly overrides current swap state from fetched on-chain swap state
123
- *
124
- * @param commitStatus Swap state fetched from the smart chain
125
- *
126
- * @internal
127
- */
128
- abstract _forciblySetOnchainState(commitStatus: SwapCommitState): Promise<boolean>;
129
- /**
130
- * @inheritDoc
131
- */
132
- serialize(): any;
133
- }
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { ISwap, ISwapInit } from "../ISwap";
4
+ import { ChainType, SwapCommitState, SwapData, SwapExpiredState, SwapNotCommitedState, SwapPaidState } from "@atomiqlabs/base";
5
+ import { IEscrowSwapDefinition, IEscrowSwapWrapper } from "./IEscrowSwapWrapper";
6
+ import { Buffer } from "buffer";
7
+ export type IEscrowSwapInit<T extends SwapData> = ISwapInit & {
8
+ data?: T;
9
+ };
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/Abstract
15
+ */
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> {
17
+ /**
18
+ * @internal
19
+ */
20
+ _data?: T["Data"];
21
+ /**
22
+ * Transaction IDs for the swap on the smart chain side
23
+ * @internal
24
+ */
25
+ _commitTxId?: string;
26
+ /**
27
+ * @internal
28
+ */
29
+ _refundTxId?: string;
30
+ /**
31
+ * @internal
32
+ */
33
+ _claimTxId?: string;
34
+ protected constructor(wrapper: D["Wrapper"], obj: any);
35
+ protected constructor(wrapper: D["Wrapper"], swapInit: IEscrowSwapInit<T["Data"]>);
36
+ /**
37
+ * Returns the swap escrow data for this swap
38
+ *
39
+ * @internal
40
+ */
41
+ protected abstract getSwapData(): T["Data"];
42
+ /**
43
+ * Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
44
+ * lightning swaps the identifier hash is used instead of claim data hash
45
+ *
46
+ * @internal
47
+ */
48
+ protected getIdentifierHash(): Buffer;
49
+ /**
50
+ * Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
51
+ * lightning swaps the identifier hash is used instead of claim data hash
52
+ *
53
+ * @internal
54
+ */
55
+ protected getIdentifierHashString(): string;
56
+ /**
57
+ * @inheritDoc
58
+ * @internal
59
+ */
60
+ _getEscrowHash(): string | null;
61
+ /**
62
+ * Returns the escrow hash - i.e. hash of the escrow data
63
+ */
64
+ getEscrowHash(): string | null;
65
+ /**
66
+ * Returns the claim data hash specifying the claim path of the escrow - i.e. hash passed to the claim handler
67
+ */
68
+ getClaimHash(): string;
69
+ /**
70
+ * @inheritDoc
71
+ */
72
+ getId(): string;
73
+ /**
74
+ * Returns the smart chain transaction ID of the tx that initiated the escrow
75
+ */
76
+ getEscrowInitTxId(): string | undefined;
77
+ /**
78
+ * Returns the smart chain transaction ID of the tx that claimed (settled) the escrow
79
+ */
80
+ getEscrowClaimTxId(): string | undefined;
81
+ /**
82
+ * Returns the smart chain transaction ID of the tx that refunded the escrow
83
+ */
84
+ getEscrowRefundTxId(): string | undefined;
85
+ /**
86
+ * Periodically checks the chain to see whether the swap is committed
87
+ *
88
+ * @param intervalSeconds How often to check (in seconds), default to 5s
89
+ * @param abortSignal
90
+ * @internal
91
+ */
92
+ protected watchdogWaitTillCommited(intervalSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
93
+ /**
94
+ * Periodically checks the chain to see whether the swap was finished (claimed or refunded)
95
+ *
96
+ * @param intervalSeconds How often to check (in seconds), default to 5s
97
+ * @param abortSignal
98
+ * @internal
99
+ */
100
+ protected watchdogWaitTillResult(intervalSeconds?: number, abortSignal?: AbortSignal): Promise<SwapPaidState | SwapExpiredState | SwapNotCommitedState>;
101
+ /**
102
+ * Whether on-chain state should be fetched for this swap
103
+ * @internal
104
+ */
105
+ abstract _shouldFetchOnchainState(): boolean;
106
+ /**
107
+ * Whether expiration status of the swap quote should be checked for this swap
108
+ * @internal
109
+ */
110
+ abstract _shouldFetchExpiryStatus(): boolean;
111
+ /**
112
+ * @inheritDoc
113
+ *
114
+ * @param save Whether to save the new swap state or not
115
+ * @param quoteDefinitelyExpired Optionally pass whether the quote is definitely expired from a batch pre-fetch,
116
+ * fetched on-demand if not provided
117
+ * @param commitStatus Optionally pass the quote on-chain state from a batch pre-fetch, fetched on-demand if
118
+ * not provided
119
+ *
120
+ * @internal
121
+ */
122
+ abstract _sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState): Promise<boolean>;
123
+ /**
124
+ * Forcibly overrides current swap state from fetched on-chain swap state
125
+ *
126
+ * @param commitStatus Swap state fetched from the smart chain
127
+ *
128
+ * @internal
129
+ */
130
+ abstract _forciblySetOnchainState(commitStatus: SwapCommitState): Promise<boolean>;
131
+ /**
132
+ * @inheritDoc
133
+ */
134
+ serialize(): any;
135
+ }
@@ -1,169 +1,169 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IEscrowSwap = void 0;
4
- exports.isIEscrowSwapInit = isIEscrowSwapInit;
5
- const ISwap_1 = require("../ISwap");
6
- const base_1 = require("@atomiqlabs/base");
7
- const buffer_1 = require("buffer");
8
- const TimeoutUtils_1 = require("../../utils/TimeoutUtils");
9
- function isIEscrowSwapInit(obj) {
10
- return typeof obj === 'object' &&
11
- (obj.data == null || typeof obj.data === 'object') &&
12
- (0, ISwap_1.isISwapInit)(obj);
13
- }
14
- /**
15
- * Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives)
16
- *
17
- * @category Swaps/Abstract
18
- */
19
- class IEscrowSwap extends ISwap_1.ISwap {
20
- constructor(wrapper, swapInitOrObj) {
21
- super(wrapper, swapInitOrObj);
22
- if (isIEscrowSwapInit(swapInitOrObj)) {
23
- this._data = swapInitOrObj.data;
24
- }
25
- else {
26
- if (swapInitOrObj.data != null)
27
- this._data = new wrapper._swapDataDeserializer(swapInitOrObj.data);
28
- this._commitTxId = swapInitOrObj.commitTxId;
29
- this._claimTxId = swapInitOrObj.claimTxId;
30
- this._refundTxId = swapInitOrObj.refundTxId;
31
- }
32
- }
33
- //////////////////////////////
34
- //// Identifiers
35
- /**
36
- * Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
37
- * lightning swaps the identifier hash is used instead of claim data hash
38
- *
39
- * @internal
40
- */
41
- getIdentifierHash() {
42
- const claimHashBuffer = buffer_1.Buffer.from(this.getClaimHash(), "hex");
43
- if (this._randomNonce == null)
44
- return claimHashBuffer;
45
- return buffer_1.Buffer.concat([claimHashBuffer, buffer_1.Buffer.from(this._randomNonce, "hex")]);
46
- }
47
- /**
48
- * Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
49
- * lightning swaps the identifier hash is used instead of claim data hash
50
- *
51
- * @internal
52
- */
53
- getIdentifierHashString() {
54
- const identifierHash = this.getIdentifierHash();
55
- return identifierHash.toString("hex");
56
- }
57
- /**
58
- * @inheritDoc
59
- * @internal
60
- */
61
- _getEscrowHash() {
62
- return this._data?.getEscrowHash() ?? null;
63
- }
64
- /**
65
- * Returns the escrow hash - i.e. hash of the escrow data
66
- */
67
- getEscrowHash() {
68
- return this._getEscrowHash();
69
- }
70
- /**
71
- * Returns the claim data hash specifying the claim path of the escrow - i.e. hash passed to the claim handler
72
- */
73
- getClaimHash() {
74
- return this.getSwapData().getClaimHash();
75
- }
76
- /**
77
- * @inheritDoc
78
- */
79
- getId() {
80
- return this.getIdentifierHashString();
81
- }
82
- /**
83
- * Returns the smart chain transaction ID of the tx that initiated the escrow
84
- */
85
- getEscrowInitTxId() {
86
- return this._commitTxId;
87
- }
88
- /**
89
- * Returns the smart chain transaction ID of the tx that claimed (settled) the escrow
90
- */
91
- getEscrowClaimTxId() {
92
- return this._claimTxId;
93
- }
94
- /**
95
- * Returns the smart chain transaction ID of the tx that refunded the escrow
96
- */
97
- getEscrowRefundTxId() {
98
- return this._refundTxId;
99
- }
100
- //////////////////////////////
101
- //// Watchdogs
102
- /**
103
- * Periodically checks the chain to see whether the swap is committed
104
- *
105
- * @param intervalSeconds How often to check (in seconds), default to 5s
106
- * @param abortSignal
107
- * @internal
108
- */
109
- async watchdogWaitTillCommited(intervalSeconds, abortSignal) {
110
- if (this._data == null)
111
- throw new Error("Tried to await commitment but data is null, invalid state?");
112
- intervalSeconds ??= 5;
113
- let status = { type: base_1.SwapCommitStateType.NOT_COMMITED };
114
- while (status?.type === base_1.SwapCommitStateType.NOT_COMMITED) {
115
- await (0, TimeoutUtils_1.timeoutPromise)(intervalSeconds * 1000, abortSignal);
116
- try {
117
- status = await this.wrapper._contract.getCommitStatus(this._getInitiator(), this._data);
118
- if (status?.type === base_1.SwapCommitStateType.NOT_COMMITED &&
119
- await this._verifyQuoteDefinitelyExpired())
120
- return false;
121
- }
122
- catch (e) {
123
- this.logger.error("watchdogWaitTillCommited(): Error when fetching commit status or signature expiry: ", e);
124
- }
125
- }
126
- if (abortSignal != null)
127
- abortSignal.throwIfAborted();
128
- return status?.type !== base_1.SwapCommitStateType.EXPIRED;
129
- }
130
- /**
131
- * Periodically checks the chain to see whether the swap was finished (claimed or refunded)
132
- *
133
- * @param intervalSeconds How often to check (in seconds), default to 5s
134
- * @param abortSignal
135
- * @internal
136
- */
137
- async watchdogWaitTillResult(intervalSeconds, abortSignal) {
138
- if (this._data == null)
139
- throw new Error("Tried to await result but data is null, invalid state?");
140
- intervalSeconds ??= 5;
141
- let status = { type: base_1.SwapCommitStateType.COMMITED };
142
- while (status?.type === base_1.SwapCommitStateType.COMMITED || status?.type === base_1.SwapCommitStateType.REFUNDABLE) {
143
- await (0, TimeoutUtils_1.timeoutPromise)(intervalSeconds * 1000, abortSignal);
144
- try {
145
- status = await this.wrapper._contract.getCommitStatus(this._getInitiator(), this._data);
146
- }
147
- catch (e) {
148
- this.logger.error("watchdogWaitTillResult(): Error when fetching commit status: ", e);
149
- }
150
- }
151
- if (abortSignal != null)
152
- abortSignal.throwIfAborted();
153
- return status;
154
- }
155
- /**
156
- * @inheritDoc
157
- */
158
- serialize() {
159
- return {
160
- ...super.serialize(),
161
- data: this._data != null ? this._data.serialize() : null,
162
- commitTxId: this._commitTxId,
163
- claimTxId: this._claimTxId,
164
- refundTxId: this._refundTxId
165
- };
166
- }
167
- ;
168
- }
169
- exports.IEscrowSwap = IEscrowSwap;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IEscrowSwap = exports.isIEscrowSwapInit = void 0;
4
+ const ISwap_1 = require("../ISwap");
5
+ const base_1 = require("@atomiqlabs/base");
6
+ const buffer_1 = require("buffer");
7
+ const TimeoutUtils_1 = require("../../utils/TimeoutUtils");
8
+ function isIEscrowSwapInit(obj) {
9
+ return typeof obj === 'object' &&
10
+ (obj.data == null || typeof obj.data === 'object') &&
11
+ (0, ISwap_1.isISwapInit)(obj);
12
+ }
13
+ exports.isIEscrowSwapInit = isIEscrowSwapInit;
14
+ /**
15
+ * Base class for escrow-based swaps (i.e. swaps utilizing PrTLC and HTLC primitives)
16
+ *
17
+ * @category Swaps/Abstract
18
+ */
19
+ class IEscrowSwap extends ISwap_1.ISwap {
20
+ constructor(wrapper, swapInitOrObj) {
21
+ super(wrapper, swapInitOrObj);
22
+ if (isIEscrowSwapInit(swapInitOrObj)) {
23
+ this._data = swapInitOrObj.data;
24
+ }
25
+ else {
26
+ if (swapInitOrObj.data != null)
27
+ this._data = new wrapper._swapDataDeserializer(swapInitOrObj.data);
28
+ this._commitTxId = swapInitOrObj.commitTxId;
29
+ this._claimTxId = swapInitOrObj.claimTxId;
30
+ this._refundTxId = swapInitOrObj.refundTxId;
31
+ }
32
+ }
33
+ //////////////////////////////
34
+ //// Identifiers
35
+ /**
36
+ * Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
37
+ * lightning swaps the identifier hash is used instead of claim data hash
38
+ *
39
+ * @internal
40
+ */
41
+ getIdentifierHash() {
42
+ const claimHashBuffer = buffer_1.Buffer.from(this.getClaimHash(), "hex");
43
+ if (this._randomNonce == null)
44
+ return claimHashBuffer;
45
+ return buffer_1.Buffer.concat([claimHashBuffer, buffer_1.Buffer.from(this._randomNonce, "hex")]);
46
+ }
47
+ /**
48
+ * Returns the identification hash of the swap, usually claim data hash, but can be overriden, e.g. for
49
+ * lightning swaps the identifier hash is used instead of claim data hash
50
+ *
51
+ * @internal
52
+ */
53
+ getIdentifierHashString() {
54
+ const identifierHash = this.getIdentifierHash();
55
+ return identifierHash.toString("hex");
56
+ }
57
+ /**
58
+ * @inheritDoc
59
+ * @internal
60
+ */
61
+ _getEscrowHash() {
62
+ return this._data?.getEscrowHash() ?? null;
63
+ }
64
+ /**
65
+ * Returns the escrow hash - i.e. hash of the escrow data
66
+ */
67
+ getEscrowHash() {
68
+ return this._getEscrowHash();
69
+ }
70
+ /**
71
+ * Returns the claim data hash specifying the claim path of the escrow - i.e. hash passed to the claim handler
72
+ */
73
+ getClaimHash() {
74
+ return this.getSwapData().getClaimHash();
75
+ }
76
+ /**
77
+ * @inheritDoc
78
+ */
79
+ getId() {
80
+ return this.getIdentifierHashString();
81
+ }
82
+ /**
83
+ * Returns the smart chain transaction ID of the tx that initiated the escrow
84
+ */
85
+ getEscrowInitTxId() {
86
+ return this._commitTxId;
87
+ }
88
+ /**
89
+ * Returns the smart chain transaction ID of the tx that claimed (settled) the escrow
90
+ */
91
+ getEscrowClaimTxId() {
92
+ return this._claimTxId;
93
+ }
94
+ /**
95
+ * Returns the smart chain transaction ID of the tx that refunded the escrow
96
+ */
97
+ getEscrowRefundTxId() {
98
+ return this._refundTxId;
99
+ }
100
+ //////////////////////////////
101
+ //// Watchdogs
102
+ /**
103
+ * Periodically checks the chain to see whether the swap is committed
104
+ *
105
+ * @param intervalSeconds How often to check (in seconds), default to 5s
106
+ * @param abortSignal
107
+ * @internal
108
+ */
109
+ async watchdogWaitTillCommited(intervalSeconds, abortSignal) {
110
+ if (this._data == null)
111
+ throw new Error("Tried to await commitment but data is null, invalid state?");
112
+ intervalSeconds ??= 5;
113
+ let status = { type: base_1.SwapCommitStateType.NOT_COMMITED };
114
+ while (status?.type === base_1.SwapCommitStateType.NOT_COMMITED) {
115
+ await (0, TimeoutUtils_1.timeoutPromise)(intervalSeconds * 1000, abortSignal);
116
+ try {
117
+ status = await this.wrapper._contract.getCommitStatus(this._getInitiator(), this._data);
118
+ if (status?.type === base_1.SwapCommitStateType.NOT_COMMITED &&
119
+ await this._verifyQuoteDefinitelyExpired())
120
+ return false;
121
+ }
122
+ catch (e) {
123
+ this.logger.error("watchdogWaitTillCommited(): Error when fetching commit status or signature expiry: ", e);
124
+ }
125
+ }
126
+ if (abortSignal != null)
127
+ abortSignal.throwIfAborted();
128
+ return status?.type !== base_1.SwapCommitStateType.EXPIRED;
129
+ }
130
+ /**
131
+ * Periodically checks the chain to see whether the swap was finished (claimed or refunded)
132
+ *
133
+ * @param intervalSeconds How often to check (in seconds), default to 5s
134
+ * @param abortSignal
135
+ * @internal
136
+ */
137
+ async watchdogWaitTillResult(intervalSeconds, abortSignal) {
138
+ if (this._data == null)
139
+ throw new Error("Tried to await result but data is null, invalid state?");
140
+ intervalSeconds ??= 5;
141
+ let status = { type: base_1.SwapCommitStateType.COMMITED };
142
+ while (status?.type === base_1.SwapCommitStateType.COMMITED || status?.type === base_1.SwapCommitStateType.REFUNDABLE) {
143
+ await (0, TimeoutUtils_1.timeoutPromise)(intervalSeconds * 1000, abortSignal);
144
+ try {
145
+ status = await this.wrapper._contract.getCommitStatus(this._getInitiator(), this._data);
146
+ }
147
+ catch (e) {
148
+ this.logger.error("watchdogWaitTillResult(): Error when fetching commit status: ", e);
149
+ }
150
+ }
151
+ if (abortSignal != null)
152
+ abortSignal.throwIfAborted();
153
+ return status;
154
+ }
155
+ /**
156
+ * @inheritDoc
157
+ */
158
+ serialize() {
159
+ return {
160
+ ...super.serialize(),
161
+ data: this._data != null ? this._data.serialize() : null,
162
+ commitTxId: this._commitTxId,
163
+ claimTxId: this._claimTxId,
164
+ refundTxId: this._refundTxId
165
+ };
166
+ }
167
+ ;
168
+ }
169
+ exports.IEscrowSwap = IEscrowSwap;