@atomiqlabs/sdk 8.6.5 → 8.6.6

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 (227) 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 +51 -52
  5. package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -6
  6. package/dist/bitcoin/coinselect2/blackjack.js +37 -38
  7. package/dist/bitcoin/coinselect2/index.d.ts +17 -19
  8. package/dist/bitcoin/coinselect2/index.js +69 -69
  9. package/dist/bitcoin/coinselect2/utils.d.ts +75 -77
  10. package/dist/bitcoin/coinselect2/utils.js +123 -123
  11. package/dist/bitcoin/wallet/BitcoinWallet.d.ts +128 -130
  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 +20 -21
  15. package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +99 -101
  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 +90 -91
  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 +42 -44
  40. package/dist/http/paramcoders/ParamDecoder.js +137 -137
  41. package/dist/http/paramcoders/ParamEncoder.d.ts +18 -20
  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 +11 -13
  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 +173 -174
  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 +198 -199
  56. package/dist/intermediaries/IntermediaryDiscovery.js +406 -406
  57. package/dist/intermediaries/apis/IntermediaryAPI.d.ts +437 -438
  58. package/dist/intermediaries/apis/IntermediaryAPI.js +603 -602
  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 +686 -687
  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 +13 -14
  111. package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
  112. package/dist/swaps/IBTCWalletSwap.js +17 -18
  113. package/dist/swaps/IClaimableSwap.d.ts +49 -49
  114. package/dist/swaps/IClaimableSwap.js +14 -15
  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 +13 -14
  119. package/dist/swaps/ISwap.d.ts +386 -387
  120. package/dist/swaps/ISwap.js +346 -346
  121. package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
  122. package/dist/swaps/ISwapWithGasDrop.js +11 -12
  123. package/dist/swaps/ISwapWrapper.d.ts +283 -285
  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 +133 -135
  128. package/dist/swaps/escrow_swaps/IEscrowSwap.js +169 -169
  129. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +114 -115
  130. package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +134 -134
  131. package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +98 -101
  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 +529 -531
  138. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
  139. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +181 -184
  140. package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +418 -418
  141. package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +581 -583
  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 +225 -228
  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 +190 -191
  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 +125 -127
  154. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
  155. package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +241 -242
  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 +127 -128
  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 +213 -207
  164. package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +756 -755
  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 +68 -69
  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 +56 -57
  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 +42 -43
  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 +59 -60
  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 +17 -18
  195. package/dist/types/lnurl/LNURLPay.d.ts +61 -61
  196. package/dist/types/lnurl/LNURLPay.js +30 -31
  197. package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
  198. package/dist/types/lnurl/LNURLWithdraw.js +26 -27
  199. package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
  200. package/dist/types/wallets/LightningInvoiceCreateService.js +14 -15
  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 +69 -70
  207. package/dist/utils/BitcoinUtils.d.ts +12 -14
  208. package/dist/utils/BitcoinUtils.js +101 -102
  209. package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
  210. package/dist/utils/BitcoinWalletUtils.js +13 -14
  211. package/dist/utils/Logger.d.ts +7 -7
  212. package/dist/utils/Logger.js +11 -12
  213. package/dist/utils/RetryUtils.d.ts +22 -22
  214. package/dist/utils/RetryUtils.js +66 -67
  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 +54 -55
  219. package/dist/utils/TokenUtils.d.ts +19 -19
  220. package/dist/utils/TokenUtils.js +36 -37
  221. package/dist/utils/TypeUtils.d.ts +7 -7
  222. package/dist/utils/TypeUtils.js +2 -2
  223. package/dist/utils/Utils.d.ts +56 -58
  224. package/dist/utils/Utils.js +193 -194
  225. package/package.json +1 -1
  226. package/src/intermediaries/apis/IntermediaryAPI.ts +4 -2
  227. package/src/swaps/spv_swaps/SpvFromBTCWrapper.ts +8 -0
@@ -1,531 +1,529 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { FromBTCLNDefinition, FromBTCLNWrapper } from "./FromBTCLNWrapper";
4
- import { IFromBTCSelfInitSwap } from "../IFromBTCSelfInitSwap";
5
- import { SwapType } from "../../../../enums/SwapType";
6
- import { ChainType, SignatureData, SwapCommitState, SwapData } from "@atomiqlabs/base";
7
- import { Buffer } from "buffer";
8
- import { MinimalLightningNetworkWalletInterface } from "../../../../types/wallets/MinimalLightningNetworkWalletInterface";
9
- import { IClaimableSwap } from "../../../IClaimableSwap";
10
- import { IAddressSwap } from "../../../IAddressSwap";
11
- import { IEscrowSelfInitSwapInit } from "../../IEscrowSelfInitSwap";
12
- import { TokenAmount } from "../../../../types/TokenAmount";
13
- import { BtcToken, SCToken } from "../../../../types/Token";
14
- import { LoggerType } from "../../../../utils/Logger";
15
- import { LNURLWithdraw } from "../../../../types/lnurl/LNURLWithdraw";
16
- import { SwapExecutionAction } from "../../../../types/SwapExecutionAction";
17
- /**
18
- * State enum for legacy Lightning -> Smart chain swaps
19
- * @category Swaps/Legacy/Lightning → Smart chain
20
- */
21
- export declare enum FromBTCLNSwapState {
22
- /**
23
- * Swap has failed as the user didn't settle the HTLC on the destination before expiration
24
- */
25
- FAILED = -4,
26
- /**
27
- * Swap has expired for good and there is no way how it can be executed anymore
28
- */
29
- QUOTE_EXPIRED = -3,
30
- /**
31
- * A swap is almost expired, and it should be presented to the user as expired, though
32
- * there is still a chance that it will be processed
33
- */
34
- QUOTE_SOFT_EXPIRED = -2,
35
- /**
36
- * Swap HTLC on the destination chain has expired, it is not safe anymore to settle (claim) the
37
- * swap on the destination smart chain.
38
- */
39
- EXPIRED = -1,
40
- /**
41
- * Swap quote was created, use {@link FromBTCLNSwap.getAddress} or {@link FromBTCLNSwap.getHyperlink}
42
- * to get the bolt11 lightning network invoice to pay to initiate the swap, then use the
43
- * {@link FromBTCLNSwap.waitForPayment} to wait till the lightning network payment is received
44
- * by the intermediary (LP)
45
- */
46
- PR_CREATED = 0,
47
- /**
48
- * Lightning network payment has been received by the intermediary (LP), the user can now settle
49
- * the swap on the destination smart chain side with {@link FromBTCLNSwap.commitAndClaim} (if
50
- * the underlying chain supports it - check with {@link FromBTCLNSwap.canCommitAndClaimInOneShot}),
51
- * or by calling {@link FromBTCLNSwap.commit} and {@link FromBTCLNSwap.claim} separately.
52
- */
53
- PR_PAID = 1,
54
- /**
55
- * Swap escrow HTLC has been created on the destination chain. Continue by claiming it with the
56
- * {@link FromBTCLNSwap.claim} or {@link FromBTCLNSwap.txsClaim} function.
57
- */
58
- CLAIM_COMMITED = 2,
59
- /**
60
- * Swap successfully settled and funds received on the destination chain
61
- */
62
- CLAIM_CLAIMED = 3
63
- }
64
- export type FromBTCLNSwapInit<T extends SwapData> = IEscrowSelfInitSwapInit<T> & {
65
- pr?: string;
66
- secret?: string;
67
- initialSwapData: T;
68
- lnurl?: string;
69
- lnurlK1?: string;
70
- lnurlCallback?: string;
71
- };
72
- export declare function isFromBTCLNSwapInit<T extends SwapData>(obj: any): obj is FromBTCLNSwapInit<T>;
73
- /**
74
- * Legacy escrow (HTLC) based swap for Bitcoin Lightning -> Smart chains, requires manual settlement
75
- * of the swap on the destination network once the lightning network payment is received by the LP.
76
- *
77
- * @category Swaps/Legacy/Lightning Smart chain
78
- */
79
- export declare class FromBTCLNSwap<T extends ChainType = ChainType> extends IFromBTCSelfInitSwap<T, FromBTCLNDefinition<T>, FromBTCLNSwapState> implements IAddressSwap, IClaimableSwap<T, FromBTCLNDefinition<T>, FromBTCLNSwapState> {
80
- protected readonly TYPE = SwapType.FROM_BTCLN;
81
- /**
82
- * @internal
83
- */
84
- protected readonly swapStateName: (state: number) => string;
85
- /**
86
- * @internal
87
- */
88
- protected readonly swapStateDescription: {
89
- [-4]: string;
90
- [-3]: string;
91
- [-2]: string;
92
- [-1]: string;
93
- 0: string;
94
- 1: string;
95
- 2: string;
96
- 3: string;
97
- };
98
- /**
99
- * @internal
100
- */
101
- protected readonly logger: LoggerType;
102
- /**
103
- * @internal
104
- */
105
- protected readonly inputToken: BtcToken<true>;
106
- private readonly lnurlFailSignal;
107
- private readonly usesClaimHashAsId;
108
- private readonly initialSwapData;
109
- /**
110
- * In case the swap is recovered from on-chain data, the pr saved here is just a payment hash,
111
- * as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
112
- * data
113
- * @private
114
- */
115
- private pr?;
116
- private secret?;
117
- private lnurl?;
118
- private lnurlK1?;
119
- private lnurlCallback?;
120
- private prPosted?;
121
- /**
122
- * Sets the LNURL data for the swap
123
- *
124
- * @internal
125
- */
126
- _setLNURLData(lnurl: string, lnurlK1: string, lnurlCallback: string): void;
127
- constructor(wrapper: FromBTCLNWrapper<T>, init: FromBTCLNSwapInit<T["Data"]>);
128
- constructor(wrapper: FromBTCLNWrapper<T>, obj: any);
129
- /**
130
- * @inheritDoc
131
- * @internal
132
- */
133
- protected getSwapData(): T["Data"];
134
- /**
135
- * @inheritDoc
136
- * @internal
137
- */
138
- protected upgradeVersion(): void;
139
- /**
140
- * @inheritDoc
141
- * @internal
142
- */
143
- protected getIdentifierHash(): Buffer;
144
- /**
145
- * Returns the payment hash of the swap and lightning network invoice, or `null` if not known (i.e. if
146
- * the swap was recovered from on-chain data, the payment hash might not be known)
147
- *
148
- * @internal
149
- */
150
- protected getPaymentHash(): Buffer | null;
151
- /**
152
- * @inheritDoc
153
- * @internal
154
- */
155
- protected canCommit(skipQuoteExpiryChecks?: boolean): boolean;
156
- /**
157
- * @inheritDoc
158
- */
159
- getInputAddress(): string | null;
160
- /**
161
- * @inheritDoc
162
- */
163
- getInputTxId(): string | null;
164
- /**
165
- * Returns the lightning network BOLT11 invoice that needs to be paid as an input to the swap.
166
- *
167
- * In case the swap is recovered from on-chain data, the address returned might be just a payment hash,
168
- * as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
169
- * data.
170
- */
171
- getAddress(): string;
172
- /**
173
- * A hyperlink representation of the address + amount that the user needs to sends on the source chain.
174
- * This is suitable to be displayed in a form of QR code.
175
- *
176
- * @remarks
177
- * In case the swap is recovered from on-chain data, the address returned might be just a payment hash,
178
- * as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
179
- * data.
180
- */
181
- getHyperlink(): string;
182
- /**
183
- * Returns the timeout time (in UNIX milliseconds) when the swap will definitelly be considered as expired
184
- * if the LP doesn't make it expired sooner
185
- */
186
- getDefinitiveExpiryTime(): number;
187
- /**
188
- * Returns timeout time (in UNIX milliseconds) when the swap htlc will expire
189
- */
190
- getHtlcTimeoutTime(): number | null;
191
- /**
192
- * Returns timeout time (in UNIX milliseconds) when the LN invoice will expire
193
- */
194
- getTimeoutTime(): number;
195
- /**
196
- * @inheritDoc
197
- */
198
- isFinished(): boolean;
199
- /**
200
- * @inheritDoc
201
- */
202
- isClaimable(): boolean;
203
- /**
204
- * @inheritDoc
205
- */
206
- isSuccessful(): boolean;
207
- /**
208
- * @inheritDoc
209
- */
210
- isFailed(): boolean;
211
- /**
212
- * @inheritDoc
213
- */
214
- isInProgress(): boolean;
215
- /**
216
- * @inheritDoc
217
- */
218
- isQuoteExpired(): boolean;
219
- /**
220
- * @inheritDoc
221
- */
222
- isQuoteSoftExpired(): boolean;
223
- /**
224
- * @inheritDoc
225
- * @internal
226
- */
227
- _verifyQuoteDefinitelyExpired(): Promise<boolean>;
228
- /**
229
- * @inheritDoc
230
- * @internal
231
- */
232
- _verifyQuoteValid(): Promise<boolean>;
233
- /**
234
- * @inheritDoc
235
- */
236
- getInputToken(): BtcToken<true>;
237
- /**
238
- * @inheritDoc
239
- */
240
- getInput(): TokenAmount<BtcToken<true>>;
241
- /**
242
- * @inheritDoc
243
- */
244
- getSmartChainNetworkFee(): Promise<TokenAmount<SCToken<T["ChainId"]>, true>>;
245
- /**
246
- * @inheritDoc
247
- */
248
- hasEnoughForTxFees(): Promise<{
249
- enoughBalance: boolean;
250
- balance: TokenAmount<SCToken<T["ChainId"]>, true>;
251
- required: TokenAmount<SCToken<T["ChainId"]>, true>;
252
- }>;
253
- private isValidSecretPreimage;
254
- /**
255
- * Sets the secret preimage for the swap, in case it is not known already
256
- *
257
- * @param secret Secret preimage that matches the expected payment hash
258
- *
259
- * @throws {Error} If an invalid secret preimage is provided
260
- */
261
- setSecretPreimage(secret: string): void;
262
- /**
263
- * Returns whether the secret preimage for this swap is known
264
- */
265
- hasSecretPreimage(): boolean;
266
- /**
267
- * Executes the swap with the provided bitcoin lightning network wallet or LNURL
268
- *
269
- * @param dstSigner Signer on the destination network, needs to have the same address as the one specified when
270
- * quote was created, this is required for legacy swaps because the destination wallet needs to actively claim
271
- * the swap funds on the destination (this also means you need native token to cover gas costs)
272
- * @param walletOrLnurlWithdraw Bitcoin lightning wallet to use to pay the lightning network invoice, or an LNURL-withdraw
273
- * link, wallet is not required and the LN invoice can be paid externally as well (just pass null or undefined here)
274
- * @param callbacks Callbacks to track the progress of the swap
275
- * @param options Optional options for the swap like feeRate, AbortSignal, and timeouts/intervals
276
- * @param options.secret A swap secret to use for the claim transaction, generally only needed if the swap
277
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
278
- */
279
- execute(dstSigner: T["Signer"] | T["NativeSigner"], walletOrLnurlWithdraw?: MinimalLightningNetworkWalletInterface | LNURLWithdraw | string | null | undefined, callbacks?: {
280
- onSourceTransactionReceived?: (sourceTxId: string) => void;
281
- onDestinationCommitSent?: (destinationCommitTxId: string) => void;
282
- onDestinationClaimSent?: (destinationClaimTxId: string) => void;
283
- onSwapSettled?: (destinationTxId: string) => void;
284
- }, options?: {
285
- abortSignal?: AbortSignal;
286
- secret?: string;
287
- lightningTxCheckIntervalSeconds?: number;
288
- delayBetweenCommitAndClaimSeconds?: number;
289
- }): Promise<boolean>;
290
- /**
291
- * @inheritDoc
292
- *
293
- * @param options
294
- * @param options.skipChecks Skip checks like making sure init signature is still valid and swap
295
- * wasn't commited yet (this is handled on swap creation, if you commit right after quoting, you
296
- * can use `skipChecks=true`)
297
- * @param options.secret A swap secret to use for the claim transaction, generally only needed if the swap
298
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
299
- */
300
- txsExecute(options?: {
301
- skipChecks?: boolean;
302
- secret?: string;
303
- }): Promise<{
304
- name: "Payment";
305
- description: string;
306
- chain: "LIGHTNING";
307
- txs: {
308
- type: "BOLT11_PAYMENT_REQUEST";
309
- address: string;
310
- hyperlink: string;
311
- }[];
312
- }[] | ({
313
- name: "Commit";
314
- description: string;
315
- chain: T["ChainId"];
316
- txs: T["TX"][];
317
- } | {
318
- name: "Claim";
319
- description: string;
320
- chain: T["ChainId"];
321
- txs: T["TX"][];
322
- })[]>;
323
- /**
324
- * @inheritDoc
325
- *
326
- * @param options
327
- * @param options.skipChecks Skip checks like making sure init signature is still valid and swap
328
- * wasn't commited yet (this is handled on swap creation, if you commit right after quoting, you
329
- * can use `skipChecks=true`)
330
- * @param options.secret A swap secret to use for the claim transaction, generally only needed if the swap
331
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
332
- */
333
- getCurrentActions(options?: {
334
- skipChecks?: boolean;
335
- secret?: string;
336
- }): Promise<SwapExecutionAction<T>[]>;
337
- /**
338
- * Checks whether the LP received the LN payment and we can continue by committing & claiming the HTLC on-chain
339
- *
340
- * @param save If the new swap state should be saved
341
- *
342
- * @internal
343
- */
344
- _checkIntermediaryPaymentReceived(save?: boolean): Promise<boolean | null>;
345
- /**
346
- * Checks the data returned by the intermediary in the payment auth request
347
- *
348
- * @param signer Smart chain signer's address initiating the swap
349
- * @param data Parsed swap data as returned by the intermediary
350
- * @param signature Signature data as returned by the intermediary
351
- *
352
- * @throws {IntermediaryError} If the returned are not valid
353
- * @throws {SignatureVerificationError} If the returned signature is not valid
354
- * @throws {Error} If the swap is already committed on-chain
355
- *
356
- * @internal
357
- */
358
- protected checkIntermediaryReturnedAuthData(signer: string, data: T["Data"], signature: SignatureData): Promise<void>;
359
- /**
360
- * Waits till a lightning network payment is received by the intermediary and client
361
- * can continue by initiating (committing) & settling (claiming) the HTLC by calling
362
- * either the {@link commitAndClaim} function (if the underlying chain allows commit
363
- * and claim in a single transaction - check with {@link canCommitAndClaimInOneShot}).
364
- * Or call {@link commit} and then {@link claim} separately.
365
- *
366
- * If this swap is using an LNURL-withdraw link as input, it automatically posts the
367
- * generated invoice to the LNURL service to pay it.
368
- *
369
- * @param onPaymentReceived Callback as for when the LP reports having received the ln payment
370
- * @param abortSignal Abort signal to stop waiting for payment
371
- * @param checkIntervalSeconds How often to poll the intermediary for answer (default 5 seconds)
372
- */
373
- waitForPayment(onPaymentReceived?: (txId: string) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
374
- /**
375
- * @inheritDoc
376
- *
377
- * @throws {Error} If invalid signer is provided that doesn't match the swap data
378
- */
379
- commit(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, skipChecks?: boolean, onBeforeTxSent?: (txId: string) => void): Promise<string>;
380
- /**
381
- * @inheritDoc
382
- */
383
- waitTillCommited(abortSignal?: AbortSignal): Promise<void>;
384
- /**
385
- * Unsafe txs claim getter without state checking!
386
- *
387
- * @param _signer
388
- * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
389
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
390
- *
391
- * @internal
392
- */
393
- private _txsClaim;
394
- /**
395
- * @inheritDoc
396
- *
397
- * @param _signer Optional signer address to use for claiming the swap, can also be different from the initializer
398
- * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
399
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
400
- *
401
- * @throws {Error} If in invalid state (must be {@link FromBTCLNSwapState.CLAIM_COMMITED})
402
- */
403
- txsClaim(_signer?: string | T["Signer"] | T["NativeSigner"], secret?: string): Promise<T["TX"][]>;
404
- /**
405
- * @inheritDoc
406
- *
407
- * @param _signer
408
- * @param abortSignal
409
- * @param onBeforeTxSent
410
- * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
411
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
412
- */
413
- claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, onBeforeTxSent?: (txId: string) => void, secret?: string): Promise<string>;
414
- /**
415
- * @inheritDoc
416
- *
417
- * @throws {Error} If swap is in invalid state (must be {@link FromBTCLNSwapState.CLAIM_COMMITED})
418
- * @throws {Error} If the LP refunded sooner than we were able to claim
419
- */
420
- waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
421
- /**
422
- * Estimated transaction fee for commit & claim transactions combined, required
423
- * to settle the swap on the smart chain destination side.
424
- */
425
- getCommitAndClaimNetworkFee(): Promise<TokenAmount<SCToken<T["ChainId"]>, true>>;
426
- /**
427
- * Returns whether the underlying chain supports calling commit and claim in a single call,
428
- * such that you can use the {@link commitAndClaim} function. If not you have to manually
429
- * call {@link commit} first and then {@link claim}.
430
- */
431
- canCommitAndClaimInOneShot(): boolean;
432
- /**
433
- * Returns transactions for both commit & claim operation together, such that they can be signed all at once by
434
- * the wallet. **WARNING**: transactions must be sent sequentially, such that the claim (2nd) transaction is only
435
- * sent after the commit (1st) transaction confirms. Failure to do so can reveal the HTLC pre-image too soon,
436
- * opening a possibility for the LP to steal funds!
437
- *
438
- * @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
439
- * (this is handled when swap is created (quoted), if you commit right after quoting, you can use skipChecks=true)
440
- * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
441
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
442
- *
443
- * @throws {Error} If in invalid state (must be PR_PAID or CLAIM_COMMITED)
444
- */
445
- txsCommitAndClaim(skipChecks?: boolean, secret?: string): Promise<T["TX"][]>;
446
- /**
447
- * Commits and claims the swap, in a way that the transactions can be signed together by the provided signer and
448
- * then automatically sent sequentially by the SDK. To check if the underlying chain supports this flow check
449
- * the {@link canCommitAndClaimInOneShot} function.
450
- *
451
- * @param _signer Signer to sign the transactions with, must be the same as used in the initialization
452
- * @param abortSignal Abort signal to stop waiting for the transaction confirmation and abort
453
- * @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
454
- * (this is handled when swap is created (quoted), if you commit right after quoting, you can use skipChecks=true)
455
- * @param onBeforeCommitTxSent Optional callback called before the initialization (commit) transaction is
456
- * broadcasted
457
- * @param onBeforeClaimTxSent Optional callback called before the settlement (claim) transaction is
458
- * broadcasted
459
- * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
460
- * was recovered from on-chain data, or the pre-image was generated outside the SDK
461
- *
462
- * @throws {Error} If in invalid state (must be PR_PAID or CLAIM_COMMITED)
463
- * @throws {Error} If invalid signer is provided that doesn't match the swap data
464
- */
465
- commitAndClaim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, skipChecks?: boolean, onBeforeCommitTxSent?: (txId: string) => void, onBeforeClaimTxSent?: (txId: string) => void, secret?: string): Promise<string[]>;
466
- /**
467
- * Whether this swap uses an LNURL-withdraw link
468
- */
469
- isLNURL(): boolean;
470
- /**
471
- * Gets the used LNURL or `null` if this is not an LNURL-withdraw swap
472
- */
473
- getLNURL(): string | null;
474
- /**
475
- * Pay the generated lightning network invoice with an LNURL-withdraw link, this
476
- * is useful when you want to display a lightning payment QR code and also want to
477
- * allow payments using LNURL-withdraw NFC cards.
478
- *
479
- * Note that the swap needs to be created **without** an LNURL to begin with for this function
480
- * to work. If this swap is already using an LNURL-withdraw link, this function throws.
481
- */
482
- settleWithLNURLWithdraw(lnurl: string | LNURLWithdraw): Promise<void>;
483
- /**
484
- * @inheritDoc
485
- */
486
- serialize(): any;
487
- /**
488
- * Checks the swap's state on-chain and compares it to its internal state, updates/changes it according to on-chain
489
- * data
490
- *
491
- * @private
492
- */
493
- private syncStateFromChain;
494
- /**
495
- * @inheritDoc
496
- * @internal
497
- */
498
- _shouldFetchExpiryStatus(): boolean;
499
- /**
500
- * @inheritDoc
501
- * @internal
502
- */
503
- _shouldFetchOnchainState(): boolean;
504
- /**
505
- * Whether an intermediary (LP) should be contacted to get the state of this swap.
506
- *
507
- * @internal
508
- */
509
- _shouldCheckIntermediary(): boolean;
510
- /**
511
- * @inheritDoc
512
- * @internal
513
- */
514
- _sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState, skipLpCheck?: boolean): Promise<boolean>;
515
- /**
516
- * @inheritDoc
517
- * @internal
518
- */
519
- _forciblySetOnchainState(commitStatus: SwapCommitState): Promise<boolean>;
520
- /**
521
- * @inheritDoc
522
- * @internal
523
- */
524
- _tick(save?: boolean): Promise<boolean>;
525
- /**
526
- * Forcibly sets the swap secret pre-image from on-chain data
527
- *
528
- * @internal
529
- */
530
- _setSwapSecret(secret: string): void;
531
- }
1
+ import { FromBTCLNDefinition, FromBTCLNWrapper } from "./FromBTCLNWrapper";
2
+ import { IFromBTCSelfInitSwap } from "../IFromBTCSelfInitSwap";
3
+ import { SwapType } from "../../../../enums/SwapType";
4
+ import { ChainType, SignatureData, SwapCommitState, SwapData } from "@atomiqlabs/base";
5
+ import { Buffer } from "buffer";
6
+ import { MinimalLightningNetworkWalletInterface } from "../../../../types/wallets/MinimalLightningNetworkWalletInterface";
7
+ import { IClaimableSwap } from "../../../IClaimableSwap";
8
+ import { IAddressSwap } from "../../../IAddressSwap";
9
+ import { IEscrowSelfInitSwapInit } from "../../IEscrowSelfInitSwap";
10
+ import { TokenAmount } from "../../../../types/TokenAmount";
11
+ import { BtcToken, SCToken } from "../../../../types/Token";
12
+ import { LoggerType } from "../../../../utils/Logger";
13
+ import { LNURLWithdraw } from "../../../../types/lnurl/LNURLWithdraw";
14
+ import { SwapExecutionAction } from "../../../../types/SwapExecutionAction";
15
+ /**
16
+ * State enum for legacy Lightning -> Smart chain swaps
17
+ * @category Swaps/Legacy/Lightning → Smart chain
18
+ */
19
+ export declare enum FromBTCLNSwapState {
20
+ /**
21
+ * Swap has failed as the user didn't settle the HTLC on the destination before expiration
22
+ */
23
+ FAILED = -4,
24
+ /**
25
+ * Swap has expired for good and there is no way how it can be executed anymore
26
+ */
27
+ QUOTE_EXPIRED = -3,
28
+ /**
29
+ * A swap is almost expired, and it should be presented to the user as expired, though
30
+ * there is still a chance that it will be processed
31
+ */
32
+ QUOTE_SOFT_EXPIRED = -2,
33
+ /**
34
+ * Swap HTLC on the destination chain has expired, it is not safe anymore to settle (claim) the
35
+ * swap on the destination smart chain.
36
+ */
37
+ EXPIRED = -1,
38
+ /**
39
+ * Swap quote was created, use {@link FromBTCLNSwap.getAddress} or {@link FromBTCLNSwap.getHyperlink}
40
+ * to get the bolt11 lightning network invoice to pay to initiate the swap, then use the
41
+ * {@link FromBTCLNSwap.waitForPayment} to wait till the lightning network payment is received
42
+ * by the intermediary (LP)
43
+ */
44
+ PR_CREATED = 0,
45
+ /**
46
+ * Lightning network payment has been received by the intermediary (LP), the user can now settle
47
+ * the swap on the destination smart chain side with {@link FromBTCLNSwap.commitAndClaim} (if
48
+ * the underlying chain supports it - check with {@link FromBTCLNSwap.canCommitAndClaimInOneShot}),
49
+ * or by calling {@link FromBTCLNSwap.commit} and {@link FromBTCLNSwap.claim} separately.
50
+ */
51
+ PR_PAID = 1,
52
+ /**
53
+ * Swap escrow HTLC has been created on the destination chain. Continue by claiming it with the
54
+ * {@link FromBTCLNSwap.claim} or {@link FromBTCLNSwap.txsClaim} function.
55
+ */
56
+ CLAIM_COMMITED = 2,
57
+ /**
58
+ * Swap successfully settled and funds received on the destination chain
59
+ */
60
+ CLAIM_CLAIMED = 3
61
+ }
62
+ export type FromBTCLNSwapInit<T extends SwapData> = IEscrowSelfInitSwapInit<T> & {
63
+ pr?: string;
64
+ secret?: string;
65
+ initialSwapData: T;
66
+ lnurl?: string;
67
+ lnurlK1?: string;
68
+ lnurlCallback?: string;
69
+ };
70
+ export declare function isFromBTCLNSwapInit<T extends SwapData>(obj: any): obj is FromBTCLNSwapInit<T>;
71
+ /**
72
+ * Legacy escrow (HTLC) based swap for Bitcoin Lightning -> Smart chains, requires manual settlement
73
+ * of the swap on the destination network once the lightning network payment is received by the LP.
74
+ *
75
+ * @category Swaps/Legacy/Lightning Smart chain
76
+ */
77
+ export declare class FromBTCLNSwap<T extends ChainType = ChainType> extends IFromBTCSelfInitSwap<T, FromBTCLNDefinition<T>, FromBTCLNSwapState> implements IAddressSwap, IClaimableSwap<T, FromBTCLNDefinition<T>, FromBTCLNSwapState> {
78
+ protected readonly TYPE = SwapType.FROM_BTCLN;
79
+ /**
80
+ * @internal
81
+ */
82
+ protected readonly swapStateName: (state: number) => string;
83
+ /**
84
+ * @internal
85
+ */
86
+ protected readonly swapStateDescription: {
87
+ [-4]: string;
88
+ [-3]: string;
89
+ [-2]: string;
90
+ [-1]: string;
91
+ 0: string;
92
+ 1: string;
93
+ 2: string;
94
+ 3: string;
95
+ };
96
+ /**
97
+ * @internal
98
+ */
99
+ protected readonly logger: LoggerType;
100
+ /**
101
+ * @internal
102
+ */
103
+ protected readonly inputToken: BtcToken<true>;
104
+ private readonly lnurlFailSignal;
105
+ private readonly usesClaimHashAsId;
106
+ private readonly initialSwapData;
107
+ /**
108
+ * In case the swap is recovered from on-chain data, the pr saved here is just a payment hash,
109
+ * as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
110
+ * data
111
+ * @private
112
+ */
113
+ private pr?;
114
+ private secret?;
115
+ private lnurl?;
116
+ private lnurlK1?;
117
+ private lnurlCallback?;
118
+ private prPosted?;
119
+ /**
120
+ * Sets the LNURL data for the swap
121
+ *
122
+ * @internal
123
+ */
124
+ _setLNURLData(lnurl: string, lnurlK1: string, lnurlCallback: string): void;
125
+ constructor(wrapper: FromBTCLNWrapper<T>, init: FromBTCLNSwapInit<T["Data"]>);
126
+ constructor(wrapper: FromBTCLNWrapper<T>, obj: any);
127
+ /**
128
+ * @inheritDoc
129
+ * @internal
130
+ */
131
+ protected getSwapData(): T["Data"];
132
+ /**
133
+ * @inheritDoc
134
+ * @internal
135
+ */
136
+ protected upgradeVersion(): void;
137
+ /**
138
+ * @inheritDoc
139
+ * @internal
140
+ */
141
+ protected getIdentifierHash(): Buffer;
142
+ /**
143
+ * Returns the payment hash of the swap and lightning network invoice, or `null` if not known (i.e. if
144
+ * the swap was recovered from on-chain data, the payment hash might not be known)
145
+ *
146
+ * @internal
147
+ */
148
+ protected getPaymentHash(): Buffer | null;
149
+ /**
150
+ * @inheritDoc
151
+ * @internal
152
+ */
153
+ protected canCommit(skipQuoteExpiryChecks?: boolean): boolean;
154
+ /**
155
+ * @inheritDoc
156
+ */
157
+ getInputAddress(): string | null;
158
+ /**
159
+ * @inheritDoc
160
+ */
161
+ getInputTxId(): string | null;
162
+ /**
163
+ * Returns the lightning network BOLT11 invoice that needs to be paid as an input to the swap.
164
+ *
165
+ * In case the swap is recovered from on-chain data, the address returned might be just a payment hash,
166
+ * as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
167
+ * data.
168
+ */
169
+ getAddress(): string;
170
+ /**
171
+ * A hyperlink representation of the address + amount that the user needs to sends on the source chain.
172
+ * This is suitable to be displayed in a form of QR code.
173
+ *
174
+ * @remarks
175
+ * In case the swap is recovered from on-chain data, the address returned might be just a payment hash,
176
+ * as it is impossible to retrieve the actual lightning network invoice paid purely from on-chain
177
+ * data.
178
+ */
179
+ getHyperlink(): string;
180
+ /**
181
+ * Returns the timeout time (in UNIX milliseconds) when the swap will definitelly be considered as expired
182
+ * if the LP doesn't make it expired sooner
183
+ */
184
+ getDefinitiveExpiryTime(): number;
185
+ /**
186
+ * Returns timeout time (in UNIX milliseconds) when the swap htlc will expire
187
+ */
188
+ getHtlcTimeoutTime(): number | null;
189
+ /**
190
+ * Returns timeout time (in UNIX milliseconds) when the LN invoice will expire
191
+ */
192
+ getTimeoutTime(): number;
193
+ /**
194
+ * @inheritDoc
195
+ */
196
+ isFinished(): boolean;
197
+ /**
198
+ * @inheritDoc
199
+ */
200
+ isClaimable(): boolean;
201
+ /**
202
+ * @inheritDoc
203
+ */
204
+ isSuccessful(): boolean;
205
+ /**
206
+ * @inheritDoc
207
+ */
208
+ isFailed(): boolean;
209
+ /**
210
+ * @inheritDoc
211
+ */
212
+ isInProgress(): boolean;
213
+ /**
214
+ * @inheritDoc
215
+ */
216
+ isQuoteExpired(): boolean;
217
+ /**
218
+ * @inheritDoc
219
+ */
220
+ isQuoteSoftExpired(): boolean;
221
+ /**
222
+ * @inheritDoc
223
+ * @internal
224
+ */
225
+ _verifyQuoteDefinitelyExpired(): Promise<boolean>;
226
+ /**
227
+ * @inheritDoc
228
+ * @internal
229
+ */
230
+ _verifyQuoteValid(): Promise<boolean>;
231
+ /**
232
+ * @inheritDoc
233
+ */
234
+ getInputToken(): BtcToken<true>;
235
+ /**
236
+ * @inheritDoc
237
+ */
238
+ getInput(): TokenAmount<BtcToken<true>>;
239
+ /**
240
+ * @inheritDoc
241
+ */
242
+ getSmartChainNetworkFee(): Promise<TokenAmount<SCToken<T["ChainId"]>, true>>;
243
+ /**
244
+ * @inheritDoc
245
+ */
246
+ hasEnoughForTxFees(): Promise<{
247
+ enoughBalance: boolean;
248
+ balance: TokenAmount<SCToken<T["ChainId"]>, true>;
249
+ required: TokenAmount<SCToken<T["ChainId"]>, true>;
250
+ }>;
251
+ private isValidSecretPreimage;
252
+ /**
253
+ * Sets the secret preimage for the swap, in case it is not known already
254
+ *
255
+ * @param secret Secret preimage that matches the expected payment hash
256
+ *
257
+ * @throws {Error} If an invalid secret preimage is provided
258
+ */
259
+ setSecretPreimage(secret: string): void;
260
+ /**
261
+ * Returns whether the secret preimage for this swap is known
262
+ */
263
+ hasSecretPreimage(): boolean;
264
+ /**
265
+ * Executes the swap with the provided bitcoin lightning network wallet or LNURL
266
+ *
267
+ * @param dstSigner Signer on the destination network, needs to have the same address as the one specified when
268
+ * quote was created, this is required for legacy swaps because the destination wallet needs to actively claim
269
+ * the swap funds on the destination (this also means you need native token to cover gas costs)
270
+ * @param walletOrLnurlWithdraw Bitcoin lightning wallet to use to pay the lightning network invoice, or an LNURL-withdraw
271
+ * link, wallet is not required and the LN invoice can be paid externally as well (just pass null or undefined here)
272
+ * @param callbacks Callbacks to track the progress of the swap
273
+ * @param options Optional options for the swap like feeRate, AbortSignal, and timeouts/intervals
274
+ * @param options.secret A swap secret to use for the claim transaction, generally only needed if the swap
275
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
276
+ */
277
+ execute(dstSigner: T["Signer"] | T["NativeSigner"], walletOrLnurlWithdraw?: MinimalLightningNetworkWalletInterface | LNURLWithdraw | string | null | undefined, callbacks?: {
278
+ onSourceTransactionReceived?: (sourceTxId: string) => void;
279
+ onDestinationCommitSent?: (destinationCommitTxId: string) => void;
280
+ onDestinationClaimSent?: (destinationClaimTxId: string) => void;
281
+ onSwapSettled?: (destinationTxId: string) => void;
282
+ }, options?: {
283
+ abortSignal?: AbortSignal;
284
+ secret?: string;
285
+ lightningTxCheckIntervalSeconds?: number;
286
+ delayBetweenCommitAndClaimSeconds?: number;
287
+ }): Promise<boolean>;
288
+ /**
289
+ * @inheritDoc
290
+ *
291
+ * @param options
292
+ * @param options.skipChecks Skip checks like making sure init signature is still valid and swap
293
+ * wasn't commited yet (this is handled on swap creation, if you commit right after quoting, you
294
+ * can use `skipChecks=true`)
295
+ * @param options.secret A swap secret to use for the claim transaction, generally only needed if the swap
296
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
297
+ */
298
+ txsExecute(options?: {
299
+ skipChecks?: boolean;
300
+ secret?: string;
301
+ }): Promise<{
302
+ name: "Payment";
303
+ description: string;
304
+ chain: "LIGHTNING";
305
+ txs: {
306
+ type: "BOLT11_PAYMENT_REQUEST";
307
+ address: string;
308
+ hyperlink: string;
309
+ }[];
310
+ }[] | ({
311
+ name: "Commit";
312
+ description: string;
313
+ chain: T["ChainId"];
314
+ txs: T["TX"][];
315
+ } | {
316
+ name: "Claim";
317
+ description: string;
318
+ chain: T["ChainId"];
319
+ txs: T["TX"][];
320
+ })[]>;
321
+ /**
322
+ * @inheritDoc
323
+ *
324
+ * @param options
325
+ * @param options.skipChecks Skip checks like making sure init signature is still valid and swap
326
+ * wasn't commited yet (this is handled on swap creation, if you commit right after quoting, you
327
+ * can use `skipChecks=true`)
328
+ * @param options.secret A swap secret to use for the claim transaction, generally only needed if the swap
329
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
330
+ */
331
+ getCurrentActions(options?: {
332
+ skipChecks?: boolean;
333
+ secret?: string;
334
+ }): Promise<SwapExecutionAction<T>[]>;
335
+ /**
336
+ * Checks whether the LP received the LN payment and we can continue by committing & claiming the HTLC on-chain
337
+ *
338
+ * @param save If the new swap state should be saved
339
+ *
340
+ * @internal
341
+ */
342
+ _checkIntermediaryPaymentReceived(save?: boolean): Promise<boolean | null>;
343
+ /**
344
+ * Checks the data returned by the intermediary in the payment auth request
345
+ *
346
+ * @param signer Smart chain signer's address initiating the swap
347
+ * @param data Parsed swap data as returned by the intermediary
348
+ * @param signature Signature data as returned by the intermediary
349
+ *
350
+ * @throws {IntermediaryError} If the returned are not valid
351
+ * @throws {SignatureVerificationError} If the returned signature is not valid
352
+ * @throws {Error} If the swap is already committed on-chain
353
+ *
354
+ * @internal
355
+ */
356
+ protected checkIntermediaryReturnedAuthData(signer: string, data: T["Data"], signature: SignatureData): Promise<void>;
357
+ /**
358
+ * Waits till a lightning network payment is received by the intermediary and client
359
+ * can continue by initiating (committing) & settling (claiming) the HTLC by calling
360
+ * either the {@link commitAndClaim} function (if the underlying chain allows commit
361
+ * and claim in a single transaction - check with {@link canCommitAndClaimInOneShot}).
362
+ * Or call {@link commit} and then {@link claim} separately.
363
+ *
364
+ * If this swap is using an LNURL-withdraw link as input, it automatically posts the
365
+ * generated invoice to the LNURL service to pay it.
366
+ *
367
+ * @param onPaymentReceived Callback as for when the LP reports having received the ln payment
368
+ * @param abortSignal Abort signal to stop waiting for payment
369
+ * @param checkIntervalSeconds How often to poll the intermediary for answer (default 5 seconds)
370
+ */
371
+ waitForPayment(onPaymentReceived?: (txId: string) => void, checkIntervalSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
372
+ /**
373
+ * @inheritDoc
374
+ *
375
+ * @throws {Error} If invalid signer is provided that doesn't match the swap data
376
+ */
377
+ commit(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, skipChecks?: boolean, onBeforeTxSent?: (txId: string) => void): Promise<string>;
378
+ /**
379
+ * @inheritDoc
380
+ */
381
+ waitTillCommited(abortSignal?: AbortSignal): Promise<void>;
382
+ /**
383
+ * Unsafe txs claim getter without state checking!
384
+ *
385
+ * @param _signer
386
+ * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
387
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
388
+ *
389
+ * @internal
390
+ */
391
+ private _txsClaim;
392
+ /**
393
+ * @inheritDoc
394
+ *
395
+ * @param _signer Optional signer address to use for claiming the swap, can also be different from the initializer
396
+ * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
397
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
398
+ *
399
+ * @throws {Error} If in invalid state (must be {@link FromBTCLNSwapState.CLAIM_COMMITED})
400
+ */
401
+ txsClaim(_signer?: string | T["Signer"] | T["NativeSigner"], secret?: string): Promise<T["TX"][]>;
402
+ /**
403
+ * @inheritDoc
404
+ *
405
+ * @param _signer
406
+ * @param abortSignal
407
+ * @param onBeforeTxSent
408
+ * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
409
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
410
+ */
411
+ claim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, onBeforeTxSent?: (txId: string) => void, secret?: string): Promise<string>;
412
+ /**
413
+ * @inheritDoc
414
+ *
415
+ * @throws {Error} If swap is in invalid state (must be {@link FromBTCLNSwapState.CLAIM_COMMITED})
416
+ * @throws {Error} If the LP refunded sooner than we were able to claim
417
+ */
418
+ waitTillClaimed(maxWaitTimeSeconds?: number, abortSignal?: AbortSignal): Promise<boolean>;
419
+ /**
420
+ * Estimated transaction fee for commit & claim transactions combined, required
421
+ * to settle the swap on the smart chain destination side.
422
+ */
423
+ getCommitAndClaimNetworkFee(): Promise<TokenAmount<SCToken<T["ChainId"]>, true>>;
424
+ /**
425
+ * Returns whether the underlying chain supports calling commit and claim in a single call,
426
+ * such that you can use the {@link commitAndClaim} function. If not you have to manually
427
+ * call {@link commit} first and then {@link claim}.
428
+ */
429
+ canCommitAndClaimInOneShot(): boolean;
430
+ /**
431
+ * Returns transactions for both commit & claim operation together, such that they can be signed all at once by
432
+ * the wallet. **WARNING**: transactions must be sent sequentially, such that the claim (2nd) transaction is only
433
+ * sent after the commit (1st) transaction confirms. Failure to do so can reveal the HTLC pre-image too soon,
434
+ * opening a possibility for the LP to steal funds!
435
+ *
436
+ * @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
437
+ * (this is handled when swap is created (quoted), if you commit right after quoting, you can use skipChecks=true)
438
+ * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
439
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
440
+ *
441
+ * @throws {Error} If in invalid state (must be PR_PAID or CLAIM_COMMITED)
442
+ */
443
+ txsCommitAndClaim(skipChecks?: boolean, secret?: string): Promise<T["TX"][]>;
444
+ /**
445
+ * Commits and claims the swap, in a way that the transactions can be signed together by the provided signer and
446
+ * then automatically sent sequentially by the SDK. To check if the underlying chain supports this flow check
447
+ * the {@link canCommitAndClaimInOneShot} function.
448
+ *
449
+ * @param _signer Signer to sign the transactions with, must be the same as used in the initialization
450
+ * @param abortSignal Abort signal to stop waiting for the transaction confirmation and abort
451
+ * @param skipChecks Skip checks like making sure init signature is still valid and swap wasn't commited yet
452
+ * (this is handled when swap is created (quoted), if you commit right after quoting, you can use skipChecks=true)
453
+ * @param onBeforeCommitTxSent Optional callback called before the initialization (commit) transaction is
454
+ * broadcasted
455
+ * @param onBeforeClaimTxSent Optional callback called before the settlement (claim) transaction is
456
+ * broadcasted
457
+ * @param secret A swap secret to use for the claim transaction, generally only needed if the swap
458
+ * was recovered from on-chain data, or the pre-image was generated outside the SDK
459
+ *
460
+ * @throws {Error} If in invalid state (must be PR_PAID or CLAIM_COMMITED)
461
+ * @throws {Error} If invalid signer is provided that doesn't match the swap data
462
+ */
463
+ commitAndClaim(_signer: T["Signer"] | T["NativeSigner"], abortSignal?: AbortSignal, skipChecks?: boolean, onBeforeCommitTxSent?: (txId: string) => void, onBeforeClaimTxSent?: (txId: string) => void, secret?: string): Promise<string[]>;
464
+ /**
465
+ * Whether this swap uses an LNURL-withdraw link
466
+ */
467
+ isLNURL(): boolean;
468
+ /**
469
+ * Gets the used LNURL or `null` if this is not an LNURL-withdraw swap
470
+ */
471
+ getLNURL(): string | null;
472
+ /**
473
+ * Pay the generated lightning network invoice with an LNURL-withdraw link, this
474
+ * is useful when you want to display a lightning payment QR code and also want to
475
+ * allow payments using LNURL-withdraw NFC cards.
476
+ *
477
+ * Note that the swap needs to be created **without** an LNURL to begin with for this function
478
+ * to work. If this swap is already using an LNURL-withdraw link, this function throws.
479
+ */
480
+ settleWithLNURLWithdraw(lnurl: string | LNURLWithdraw): Promise<void>;
481
+ /**
482
+ * @inheritDoc
483
+ */
484
+ serialize(): any;
485
+ /**
486
+ * Checks the swap's state on-chain and compares it to its internal state, updates/changes it according to on-chain
487
+ * data
488
+ *
489
+ * @private
490
+ */
491
+ private syncStateFromChain;
492
+ /**
493
+ * @inheritDoc
494
+ * @internal
495
+ */
496
+ _shouldFetchExpiryStatus(): boolean;
497
+ /**
498
+ * @inheritDoc
499
+ * @internal
500
+ */
501
+ _shouldFetchOnchainState(): boolean;
502
+ /**
503
+ * Whether an intermediary (LP) should be contacted to get the state of this swap.
504
+ *
505
+ * @internal
506
+ */
507
+ _shouldCheckIntermediary(): boolean;
508
+ /**
509
+ * @inheritDoc
510
+ * @internal
511
+ */
512
+ _sync(save?: boolean, quoteDefinitelyExpired?: boolean, commitStatus?: SwapCommitState, skipLpCheck?: boolean): Promise<boolean>;
513
+ /**
514
+ * @inheritDoc
515
+ * @internal
516
+ */
517
+ _forciblySetOnchainState(commitStatus: SwapCommitState): Promise<boolean>;
518
+ /**
519
+ * @inheritDoc
520
+ * @internal
521
+ */
522
+ _tick(save?: boolean): Promise<boolean>;
523
+ /**
524
+ * Forcibly sets the swap secret pre-image from on-chain data
525
+ *
526
+ * @internal
527
+ */
528
+ _setSwapSecret(secret: string): void;
529
+ }