@atomiqlabs/sdk 8.9.1 → 8.9.2

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